780 likes | 971 Views
Clase VII. DelioAlanis. Agenda. Bases de Datos Relacionales SQL Server 2005 Instalación Computer Manager SQL Server Management Studio Object Explorer Project Management Query Editor Assisted Editors SQLiMail Sentencias Transact-SQL. Agenda. Bases de Datos Relacionales
E N D
Clase VII DelioAlanis
Agenda • Bases de Datos Relacionales • SQL Server 2005 • Instalación • Computer Manager • SQL Server Management Studio • Object Explorer • Project Management • Query Editor • Assisted Editors • SQLiMail • Sentencias Transact-SQL
Agenda • Bases de Datos Relacionales • SQL Server 2005 • Instalación • Computer Manager • SQL Server Management Studio • Object Explorer • Project Management • Query Editor • Assisted Editors • SQLiMail • Sentencias Transact-SQL
Base de Datos Relacionales • Se organizan por Tablas • Contiene Filas y Columnas • Una columna representa un “campo” en la tabla • Los valores de una columna tienen un “tipo de dato” definido • Las tablas pueden contener Claves Primarias (Primary Key) y/o Claves Foraneas • Utilizando Claves entre tablas obtenemos una integridad referencial entre ellas • Utilización de Indices mejora el rendimiento en la búsqueda Bases de Datos Relacionales Ejemplo a continuación…
Base de Datos Relacionales Bases de Datos Relacionales
Base de Datos Relacionales • Tipos de Relaciones • Uno a uno • Uno a varios • Varios a varios • Integridad Referencial • Es un sistema de reglas • Mantiene la consistencia de los datos entre tablas relacionadas • Actualizar y/o eliminar registros en cascada • Indices • Estructura de datos que permite recuperar filas rápidamente • Proporciona ordenación • Se define sobre una columna o varias o conjunto de columnas Bases de Datos Relacionales
Agenda • Bases de Datos Relacionales • SQL Server 2005 • Instalación • Computer Manager • SQL Server Management Studio • Object Explorer • Project Management • Query Editor • Assisted Editors • SQLiMail • Sentencias Transact-SQL
SQLServer 2005 Instalación • Fácil de usar: Instalación basada en Windows Installer • Inspector de configuración del sistema para verificar la máquina destino • Utilidades Command-line para ejecución desatendida e instalación remota • Permite instalar o desinstalar componentes SQL Server 2005 desde Add/Remove. • Logging de error mejorado y reporte de fallas SQLServer 2005
SQLServer 2005 Computer Manager • Computer Manager combina la funcionalidad de las siguientes herramientas SQL Server en la versión anterior: • Server Network Utility • Client Network Utility • Server Manager • Los siguientes servicios son administrados por el “Computer Manager” : • SQL Server • SQL Server Agent • SQL Server Analysis Services • Report Server • Microsoft Search • Distributed Transaction Coordinator (DTC) • Full Text Search • El computer manager usa el WMI para cambiar los seteos del server y es parte del Microsoft Management Console (MMC) SQLServer 2005
SQLServer 2005 Computer Manager SQLServer 2005
SQLServer 2005 SQL Server Management Studio • Provee un entorno centralizado integrado para la gestión de múltiples servers, tareas y servicios • Las características incluyen: • Explorador de Objetos • Editores Asistidos • Ventana de resumen • Extensiones para Editor de Consultas de SQLCMD • Explorador de Templates • Manejo de errores mejorado • Administración de Proyectos • Dialog Boxes no modales • Scripting y Schedulling mejorado SQLServer 2005
SQLServer 2005 SQL Server Management Studio SQLServer 2005
SQLServer 2005 Object Explorer (Explorador de Objetos) • Muestra los componentes SQL en una jerarquía de árbol grafica • Permite al usuario expandir múltiples nodos del árbol simultáneamente. • Permite al usuario filtrar un nodo basado en uno o múltiples criterios de filtro. • Provee una interface de usuario amigable para la administración SQLServer 2005
SQLServer 2005 Project Management (Administrador de Proyectos) • Las funcionalidades disponibles para administrar un proyecto son: • Organiza scripts relacionados dentro de un único proyecto • Mantiene el control de versiones sobre scripts (Si VSS esta disponible) • Conexión almacenada y opciones resultantes con cada script SQLServer 2005
SQLServer 2005 Query Editor (Editor de consultas) • Permite la ejecución de scripts T-SQL y sentencias contra SQL Server y SQL Server Mobile Edition, • Permite ejecución de expresiones: • multidimensionales (MDX) • data mining (DMX) • XMLA • Escritura de scripts en modo desconectado • Ayuda dinámica • Display mejorado para resultados XML. • Resultados en forma XML cuando usa la columna XML • Funciones XML para Transact-SQL • Legibilidad mejorada por el uso de color-coding SQLServer 2005
SQLServer 2005 Assisted Editors & Templates (Editores Asistidos) • Editores asistidos para creación de objetos SQL Server con propiedades de texto como stored procedures, triggers y funciones • Ejemplo de cómo acceder a Editores asistidos: • Abrir SQL Server Management Studio • Explorar Object Browser. Seleccionar SQL Instance → Databases→ <database> →Programmability→ Stored Procedures • Click derecho sobre Stored Procedures → New Stored Procedure • Esto abrirá el editor asistido con información de cabecera para crear el stored procedure SQLServer 2005
SQLServer 2005 Assisted Editors & Templates SQLServer 2005
SQLServer 2005 SQLiMail • Usa SMTP para enviar mail. No necesita Outlook o MAPI extendida • Corre out-of-process desde SQL Server para confiabilidad • Provee background y entrega asíncrona para escalabilidad • Failover múltiple de cuentas SMTP y perfiles permitidos • Cluster y compatibilidad con 64-bit • Servicio esta off por default • Fuerza la seguridad para perfiles de usuario • El tamaño y tipo de adjuntos pueden ser configurados • Logs activity para SQL Server y monitores de rendimiento SQLServer 2005
SQLServer 2005 SQL-CLR • Beneficios del CLR • Beneficios para la Programación • Assemblies • La Nueva Arquitectura de SQL Server 2005 • Confiabilidad • Seguridad • Configuración del CLR en SQL Server 2005 • Creación y distribución • Functions • Tipos de datos definidos por el usuario • Triggers • Performance Tuning SQLServer 2005
SQLServer 2005 Beneficios del CLR • Modelo de programación mejorado • User Defined Types y Aggregates • Seguridad mejorada • Compatibilidad Cross-Language • Performance y Escalabilidad SQLServer 2005
SQLServer 2005 Beneficios para la Programación • Modelo de programación mejorado • Soporte en Visual Studio 2005 • Fácil construcción y distribución de soluciones utilizando el entorno de Visual Studio • Mejor debugging SQLServer 2005
SQLServer 2005 Assemblies • Assemblies archivos ejecutables que actúan como punto de entrada para una aplicación • Contienen el código que el CLR ejecuta • Estos no son creados si no poseen un manifest asociado (información de la metadata) • Contienen toda la información requerida acerca de tipos y recursos que la aplicación necesita para ejecutarse • Dependencia entre assemblies SQLServer 2005
SQLServer 2005 La Nueva Arquitectura de SQL Server 2005 • La Hosting layer provee coordinación para: • Carga de los Assembly • Manejo de Memoria • Modelo de Seguridad • Confiabilidad • Threads & Fibers • Deteccion de Deadlock • Contexto de Ejecución • SQL OS • Manejador de Conexiones • Manejo de Memoria • Manejo de Thread • Servicios de Sincronización SQL Engine CLR Hosting Layer SQL OS Windows SQLServer 2005
SQLServer 2005 Confiabilidad • AppDomain • AppDomain, el dominio de la aplicación, es un dominio aislado para la ejecución. • Todos los assemblies de un usuario en particular residen en un AppDomain • Assemblies de un usuario no pueden ser referenciados por ningun otro usuario • AppDomain aísla completamente todos los recursos que el código .NET desde los recursos de SQL Server SQLServer 2005
SQLServer 2005 Seguridad • La seguridad en el CLR es definida por Code Access Security (CAS) • En CAS, los permisos son seteados en tres niveles: • Políticas de Maquina: Son las políticas para todo el código manejado por la maquina que ejecuta el SQL Server • Políticas de Usuario: Son las políticas para el código manejado que sea hosteado por un proceso. En SQL Server, esta política es especifica para la cuenta de Windows que levanta los servicios para SQL Server • Políticas de Host : Son las políticas seteadas por el Host del CLR, concretamente para el código manejado ejecutándose en ese servidor SQLServer 2005
SQLServer 2005 Configuración del CLR en SQL Server 2005 • La configuración del CLR se encuentra en las opciones de advanced server configuration • Para deshabilitar la ejecución del CLR : sp_configure ‘show_advanced_options’, 1 GO RECONFIGURE GO sp_configure ‘clr enabled’, 0 GO RECONFIGURE GO SQLServer 2005
SQLServer 2005 Creación y distribución Build Assembly .NET database objects written in C#,VB.NET…. SQL Data Definition: create assembly … create function … create procedure … create trigger … create type … Load SQLServer 2005 SQL SERVER
SQLServer 2005 Manejando Assemblies • Cargar un Assembly • Para cargar una dll llamada ‘sqlclr.dll’ en un assembly con permisos ‘SAFE’ : CREATE ASSEMBLY SQLCLR FROM ‘C: \YukonApps\sqlclr.dll’ With PERMISSION_SET = SAFE SQLServer 2005
SQLServer 2005 Meta Data de los Assemblies Create Assembly Codigo fuente: Sys.assembly_files Referencias: Sys.assembly_references Detalles del Assembly: Sys.assemblies • Otra informacion en la metadata • SYS.OBJECTS • SYS.ASSEMBLY_MODULES • SYS.ASSEMBLY_TYPES SQLServer 2005
SQLServer 2005 Creando Stored Procedures CLR CREATE ASSEMBLY Module15_assembly FROM ‘\\MachineName\Module15\bin\Debug\Module15_library.dll’ GO CREATE PROCEDURE NewProc @name varchar(255) AS EXTERNAL NAME Module15_assembly.Class1.getSSNbasedOnName SQLServer 2005
SQLServer 2005 Functions • Tipos: • Scalar • Table Valued • Ejemplo de creacion de una UDF CREATE ASSEMBLY ValidateString FROM '\\MachineName\Module15\bin\Debug\validateString.dll'; GO CREATE FUNCTION ValidateAreaCode () RETURNS int AS EXTERNAL NAME ValidateString.StringcheckClass.validateString; GO SQLServer 2005
SQLServer 2005 Tipos de datos definidos por el usuario • Para extender los tipos de datos escalares • Soporte a indexado, queries distribuidos, integridad referencial, replicación y operaciones bcp sobre columnas definidas por UDTs • Para distribuir un UDT, se deben seguir los siguientes pasos en este orden: • Definir el UDT como una clase de lenguaje .NET • Distribuir el assembly que referencie el objeto CLR creado • Crear el tipo que referencie al assembly registrado CREATE ASSEMBLY GISmeasures FROM '\\MachineName\Module15\bin\Debug\GIS.dll' ; GO CREATE TYPE area EXTERNAL NAME GISmeasures.GISclass.latitudeLongitude ; GO SQLServer 2005
SQLServer 2005 Triggers • Standard: Fuerzan reglas de negocios e integridad referencial de datos • Insert, Delete, Update • DDL Triggers: Permiten al usuario prevenir cambios al schema de la base de datos o disparar algun otro cambio en el schema changes en respuesta a alguna otra modificacion de la base de datos • Create, Alter, Drop SQLServer 2005
SQLServer 2005 Performance - CLR Vs T-SQL • Performance • Puede reemplazar cursores T-SQL del lado del servidor • Grandes mejoras en la performance • Para llevar adelante grandes accesos a datos o implementar un spool de datos en estadios intermedios • Nota: Si no se usan las UDAgg, se debe considerar la escritura de stored procedures usando código manejado para un mejor aprovechamiento en la performance sobre T-SQL SQLServer 2005
SQLServer 2005 Performance Tuning • Utilizar la herramienta Profiler para monitorear los planes de ejecución y el funcionamiento de SQL con los objetos .NET • Observar los siguientes contadores • Contadores de SQL Server • Contadores de .NET CLR • Relacionar los contadores de performance con los datos del profiler SQLServer 2005
Agenda • Bases de Datos Relacionales • SQL Server 2005 • Instalación • Computer Manager • SQL Server Management Studio • Object Explorer • Project Management • Query Editor • Assisted Editors • SQLiMail • Sentencias Transact-SQL
Sentencias Transact-SQL • El Lenguaje de programación Transact-SQL • Tipos de intrucciones de Transact-SQL • Elementos de sintaxis del Transact-SQL Transact-SQL
Sentencias Transact-SQL • Implementa el estándar ISO de nivel básico de la especificación ANSI-SQL99 • Se pueden ejecutar desde cualquier producto que cumpla los requisitos básicos • Incluye una funcionalidad ampliada Transact-SQL
Sentencias Transact-SQL Tipos de intrucciones • Instrucciones del Lenguaje de definincion de datos (DDL) • Instrucciones del Lenguaje de Control de Datos (DCL) • Instrucciones del Lenguaje de tratamientos de datos (DML) Transact-SQL
Sentencias Transact-SQL Tipos de intrucciones Instruciones del Lenguaje de definicion de datos • Definen los objetos de la base de datos • CREATE nombreobjeto • ALTER nombreobjeto • DROP nombreobjeto • Deben tener los permisos adecuados Transact-SQL
Sentencias Transact-SQL Tipos de intrucciones Instruciones del Lenguaje de control de datos • Establecer o cambiar los permisos • GRANT • DENY • REVOKE • Deben tener los permisos adecuados Transact-SQL
Sentencias Transact-SQL Tipos de intrucciones Instrucciónes del Lenguaje de Tratamiento de datos • Las instrucciones DML se utilizan para cambiar datos o recuperar información • SELECT • INSERT • UPDATE • DELETE • Deben tener los permisos adecuados Transact-SQL
Sentencias Transact-SQL Elementos de la sintaxis de Transact-SQL Directivas de proceso por lotes • GO • Envia lotes de instrucciones de TSQL a las herramientas y utilidades • No se trata, realmente, de una instrucción de TSQL • EXEC • Ejecuta una funcion definida por el usuario, un prodecimiento de sistema, un prodecimiento definido por el usuario o un prodecimiento almacenado extendido • Controla la ejecución de una cadena de caracteres dentro de un lote de TSQL Transact-SQL
Sentencias Transact-SQL Elementos de la sintaxis de Transact-SQL Comentarios • Comentarios en línea • Comentarios en Bloque Transact-SQL
Sentencias Transact-SQL DataTypes • Números Enteros • Bigint • Números enteros entre -2E63 (-9.223.372.036.845.775.808) y 2E-63 (9.223.372.036.845.775.807) • Int • Números enteros entre -2E31 (-2,147,483,648 ) y 2E-31(2,147,483,647 ) • Smallint • Números enteros entre 2E15 (-32.768) y 2E-15 (32.767) • Tinyint • Números enteros entre 0 y 255 • Bit • Bit • Enteros entre 0 y 1 Transact-SQL
Sentencias Transact-SQL DataTypes • Decimal y númericos • Decimal • Dátos númericos con precisión fija de -10E38 a 10E-38 • Numeric • Función equivalente a decimal • Money & SmallMoney • Money • Valores monetarios entre -2E63 y 2E63-1 con precisión de hasta 10 dígitos. • SmallMoney • Valores monetarios entre -214.748,3648 y +214.748,3647 Transact-SQL
Sentencias Transact-SQL DataTypes • Números aproximádos • Float • Dátos numéricos de punto flotante entre -1.79E+308 y 1.79E+308 • Real • Dátos numéricos de punto flotante entre -3.40E+38 y 3.40E+38 • Datetime & Smalldatetime • Datetime • Fechas entre 1 de Enero del 1753 y 31 de diciembre de 9999 con una precisión de 3 milésimas de segúndo • Smalldatetime • Fechas entre 1 de Enero de 1900 y 6 de Junio de 2079, con una precisión de 1 minúto Transact-SQL
Sentencias Transact-SQL DataTypes • Caracteres • Char • Carácter de longitud fija (no unicode) con un máximo de 8000 caracteres • Varchar • Caracteres de longitud variable (no unicode) con un máximo de 8000 caracteres • Text • Caracteres de longitud variable (no unicode) con un máximo de 2.147.483.647 caracteres • Nchar • Carácter de longitud fija (unicode) con un máximo de 4000 caracteres • Nvarchar • Caracteres de longitud variable (unicode) con un máximo de 8000 caracteres • Ntext • Caracteres de longitud variable (unicode) con un máximo de 1,073,741,823 caracteres Transact-SQL
Sentencias Transact-SQL DataTypes • Binary • Binary • Datos binarios de longitud fija con un máximo de 8000 bytes • Varbinary • Datos binarios de longitud variable con un máximo de 8000 bytes • Image • Datos binarios de lóngitud variable con un máximo de 2.147.483.647 bytes Transact-SQL
Sentencias Transact-SQL Operadores • Operadores Aritméticos • Operadores de Asignación • Operadores Bitwise • Operadores de Comparación • Operadores Lógicos • Operadores de Concatenación • Operadores Unarios Transact-SQL