Diplomado Administración de bases de datos Microsoft SQL Server Las empresas necesitan contar con sistemas de información modernos, ágiles y de calidad para alcanzar sus objetivos y ser cada vez más competitivos en el entorno económico actual. Estas organizaciones frecuentemente enfrentan una problemática en la administración de sus bases de datos Microsoft SQL Server debida principalmente a la carencia de profesionales especializados en el área de Administración de Base de Datos (DBA). Esto ocasiona fallas y problemas operacionales e ineficiencias que pueden verse reducidos de manera significativa aplicando las mejores prácticas de administración de base de datos. Objetivo General: Preparar a los asistentes para poder llevar a cabo el análisis, diseño, construcción y administración de bases de datos sobre la plataforma Microsoft SQL Server, así como conocer y utilizar los fundamentos del lenguaje SQL (structured-query-language) para el acceso a las mismas. Conocer la arquitectura del manejador de base de datos Microsoft SQL Server y sus utilerías para respaldo, recuperación e integridad de información. Dirigido a: Nivel educativo Superior (carrera terminada, trunca o en proceso). Nivel jerárquico Ingenieros de sistemas; desarrolladores de aplicaciones en bases de datos; gerentes de soporte de sistemas; gerentes de infraestructura; administradores de base de datos. Experiencia Recomendable: mínimo 2 a 3 años trabajando en el área de sistemas. Sector empresarial Cualquier organización Contenido: Módulo I: Introducción a los conceptos de modelado de datos utilizando la metodología de Entidad-Relación. Objetivo específico: Explicar los conceptos de análisis y diseño de bases de datos utilizando la metodología Entidad-Relación. Contenido 1. Introducción al proceso de planeación de datos. Requerimientos de información del negocio Distinción de datos vs. Información Archivos convencionales vs. Base de datos 2. Modelado de entidad y relación. Entidades. Atributos. Relaciones. Llaves primarias. Llaves foráneas. Modelado de subtipo y supertipos. http://actualizacion.itesm.mx 3. Estandarización. Recomendaciones de estandarización de nomenclatura de entidades, atributos y relaciones 4. Proceso de normalización. Fundamentos teóricos del proceso de normalización Objetivos de la normalización Anomalías de actualización Proceso de normalización Formas normales i. 1a. Forma normal ii. 2a. Forma normal iii. 3a. Forma normal 5. Análisis de uso de las entidades. Relación entre las vistas del usuario y las entidades Análisis del tipo de acceso a la entidades (Online vs. Batch vs. Query) 6. Diseño físico de base de datos. Mapeo de entidades del modelo ER a tablas en una base de datos Selección de tipos de datos apropiados dependiendo de la plataforma de base de datos Estimación de volúmenes Posibles problemas de contención (locking) Consideraciones según el tipo de acceso i. Online vs. Batch vs. Query Consideraciones de Performance i. Desnormalización ii. Tablas de resumen iii. Almacenamiento de datos derivables Errores comunes de diseño que provocan problemas de rendimiento Consideraciones de Implantación para los diferentes manejadores de base de datos i. Oracle ii. Sybase iii. DB2 UDB for LUW iv. Microsoft SQL Server Duración: 24 horas Módulo II: Microsoft SQL Server 2008 fundamentos y taller de SQL. Objetivo específico: Conocer y utilizar las características principales del manejador de base de datos Microsoft SQL Server, crear tablas en la base de datos y escribir queries para consultar los datos contenidos en las mismas. Contenido Parte 1: Introducción 1. Panorama de Microsoft SQL Server Explorando la arquitectura y los componentes de SQL Server http://actualizacion.itesm.mx i. Características de SQL Server ii. Arquitectura de SQL Server iii. Componentes de SQL Server iv. Servicios de SQL Server v. Estructura de una base de datos SQL Server vi. Identificando las bases de datos de “Default” y las tablas del Sistema Herramientas para trabajar con SQL Server i. Utilería SQLCMD ii. SQL Server Management Studio iii. Creando y trabajando con un diagrama de base de datos Parte 2: SQL básico 2. Introducción al lenguaje SQL Entendiendo conceptos básicos del lenguaje SQL Clasificación de instrucciones de SQL (DML, DDL, DCL) 3. Creación y modificación de tablas Instrucción CREATE TABLE Tipos de datos en Microsoft SQL Server i. Carácter ii. Numéricos iii. DATE/TIME Integridad Referencial Declarativa i. Primary Key ii. Foreign Key iii. Check Constraints iv. Triggers Instrucción ALTER TABLE Instrucción DROP TABLE 4. Ejecutando queries por medio de la instrucción SELECT Panorama de la instrucción SELECT Cláusula SELECT Cláusula FROM Cláusula WHERE Operadores i. Operadores básicos (=, <, <=, >, >=) ii. Operadores “booleanos” (AND, OR) iii. Operadores de rangos (BETWEEN) iv. Búsquedas parciales (LIKE) v. Listas de valores (IN) vi. Operadores negados (<>, NOT LIKE, NOT BETWEEN, NOT IN) Cláusula ORDER BY Llevando a cabo cálculos en el SELECT 5. Funciones escalares http://actualizacion.itesm.mx Funciones sobre datos tipo carácter i. CHAR ii. NCHAR iii. LOWER/UPPER iv. LEN v. LTRIM/RTRIM vi. SUBSTRING Funciones de fecha i. GETDATE ii. DATEADD iii. DATEDIFF iv. DATENAME v. DATEPART vi. DAY vii. MONTH viii. YEAR Funciones sobre datos numéricos i. ABS ii. ROUND iii. FLOOR iv. CEILING Funciones para manejo de tipos de datos i. CAST/CONVERT ii. COALESCE iii. ISNULL iv. ISNUMERIC 6. Agregación y sumarización de datos Funciones de agregación i. SUM ii. MAX iii. MIN iv. AVG v. COUNT Cláusula DISTINCT Cláusula GROUP BY Cláusula COMPUTE Cláusula HAVING i. Comparación de las cláusulas WHERE y HAVING Funciones de RANKING “Crosstab” Queries i. Cláusula PIVOT ii. Cláusula UNPIVOT http://actualizacion.itesm.mx Definiendo múltiples niveles de agrupamiento i. Cláusula GROUP BY ROLLUP ii. Cláusula GROUP BY CUBE 7. JOIN’s Join Básico Inner Join Outer Join i. Right outer join ii. Left outer join iii. Full outer join 8. Instrucciones para manejo de conjuntos Uniendo múltiples result sets con UNION i. Cláusula UNION ii. Cláusula UNION ALL Manejo de result sets i. Cláusula EXCEPT ii. Cláusula INTERCEPT 9. Subqueries Subqueries correlacionados Subqueries no-correlacionados Predicado IN Predicado ALL Predicados ANY y SOME Predicado EXISTS Common table expressions 10. Inserción de Datos Instrucción INSERT Inserción de múltiples renglones Cláusula SELECT … INTO 11. Actualizando y eliminando datos Instrucción UPDATE Instrucción DELETE Eliminando todo el contenido de una tabla i. Instrucción TRUNCATE ii. TRUNCATE vs. DELETE Transacciones en SQL Server 12. XML Panorama de XML Efectuando consultas sobre metadatos Ejecutando queries sobre datos XML Índices full-text http://actualizacion.itesm.mx 13. Control de Datos (DCL) Instrucción CREATE Instrucción ALTER Instrucción DROP 14. Vistas Consideraciones de vistas Jerarquía de vistas Instrucción CREATE VIEW Vistas de solo lectura Cláusula CHECK OPTION Instrucción DROP VIEW 15. Índices Introducción a índices Tipos de índices Instrucción CREATE INDEX Instrucción DROP INDEX Parte 3: SQL Avanzado. 16. Expresiones de Tablas Expresiones anidadas de tablas (Nested Table Expressions) SQL recursivo Instrucción CASE 17. Objetos de programación: stored procedures, funciones y tipos de datos definidos por el usuario Stored procedures Funciones definidas por el usuario i. Tipos de datos definidos por usuario Consideraciones sobre seguridad y rendimiento Duración: 32 horas Módulo III: Desarrollo de aplicaciones con Transact-SQL en Microsoft SQL Server 2008. Objetivo específico: Conocer y utilizar las características del lenguaje Transact-SQL de Microsoft SQL Server 2008 para el desarrollo de aplicaciones basadas en el servidor, incluyendo stored procedures, funciones y triggers. Contenido 1. Introducción al Transact-SQL Ambiente del Transact-SQL Posicionamiento del Transact-SQL dentro del contexto de las demás herramientas de desarrollo de SQL Server Tipos de instrucciones de Transact-SQL Instrucciones de Transact-SQL 2. Elementos del lenguaje Transact-SQL Identificadores Referencia a objetos de SQL Server http://actualizacion.itesm.mx Utilizando operadores de T-SQL Tipos de datos de SQL Utilizando directivas batch Utilización de comentarios en T-SQL Usando tablas temporales en Transact-SQL Usando variables en Transact-SQL i. Declaración de variables y constantes ii. Utilización de variables del sistema Uso de funciones en Transact-SQL Uso de expresiones en Transact-SQL 3. Transacciones en Transact-SQL Entendiendo las transacciones en Transact-SQL La prueba ACID Transacciones implícitas vs. Transacciones explícitas Definiendo transacciones explícitas Entendiendo escenarios especiales de ROLLBACK Obteniendo información sobre las transacciones Introducción al LOCKING en SQL Server Definiendo el ISOLATION LEVEL de una transacción 4. Estructuras de Control en Transact-SQL Tipos de estructuras de control y su utilización i. Construcción IF... END ii. Construcción BEGIN... END iii. Cláusula RETURN Control de “loops” en Transact-SQL i. Cláusula WHILE ii. Cláusula BREAK/CONTINUE iii. Cláusula GOTO Manejo de esperas i. Construcción WAITFOR Control de flujo por medio de etiquetas 5. Introducción a Stored Procedures en SQL Server Panorama de stored procedures en SQL Server Cómo se ejecutan los stored procedures en SQL Server Ventajas de los stored procedures Instrucción CREATE PROCEDURE i. Opciones de la instrucción CREATE PROCEDURE ii. Parámetros de entrada y salida de un stored procedure Invocando un stored procedure por medio de la instrucción EXEC Contextos de ejecución del stored procedure i. LOGIN ii. USER iii. CALLER Instrucción ALTER PROCEDURE Instrucción DROP PROCEDURE Compilación y recompilación de stored procedures 6. Manejo de excepciones en Transact-SQL Panorama de manejo de excepciones en Transact-SQL http://actualizacion.itesm.mx Captura y manejo de errores Estructura TRY...CATCH Instrucción RAISERROR Propagación de excepciones en bloques anidados Manejo de errores del sistema i. Función XACT_STATE ii. Función XACT_ABORT 7. Cursores Panorama sobre cursores en SQL Server Cursores vs. “SET-BASED-OPERATIONS” Instrucción DECLARE CURSOR Opciones de cursor i. FAST FORWARD ii. STATIC iii. KEYSET iv. DYNAMIC Uso de Cursores para procesar conjuntos de renglones i. Recuperando renglones por medio de la instrucción FECTH en sus diferentes variantes ii. Control de la iteración Actualización de datos vía cursor i. Instrucción UPDATE... WHERE CURRENT ii. Instrucción DELETE... WHERE CURRENT Cerrando cursores i. Instrucción CLOSE CURSOR ii. Instrucción DEALLOCATE CURSOR COMMIT vs Close Cursor 8. Introducción a Funciones de Transact-SQL Uso y limitaciones de las funciones definidas por el usuario en SQL Server Diferencias entre stored procedures y funciones Instrucción CREATE FUNCTION Invocando funciones en SQL Server Recuperando datos de una función Eliminación de funciones 9. Triggers Panorama sobre uso de los Triggers en SQL Server Tipos diferentes de Triggers i. DML triggers ii. DDL y triggers iii. Login triggers http://actualizacion.itesm.mx iv. Server vs database triggers Instrucción CREATE TRIGGER Reglas de ejecución de triggers Eliminación de Triggers 10. Optimización de queries Procesamiento Lógico de Queries Breve descripción de las fases de procesamiento de Queries Visualización del Plan Cache i. Planes compilados ii. Planes de ejecución iii. Planes en Cache Estadísticas IO / Estadísticas TIME i. Trabajando con planes de ejecución ii. Full (table) scans iii. Scans & seeks iv. Bookmark lookup v. Nested loops join vi. Full outer joins vii. Merge join viii. Hash join ix. Resumen de propiedades de joins x. Aggregations xi. Sort xii. Paralelismo xiii. Query Hints Duración: 16 horas Módulo IV: Fundamentos de administración de base de datos Microsoft SQL Server 2008 Objetivo específico: Explicar los conceptos básicos de administración del manejador de base de datos Microsoft SQL Server en su versión 2008. Conocer la administración de seguridad, el respaldo y recuperación de datos y los parámetros de configuración de la instancia SQL Server y las funciones del producto Microsoft SQL Server Management Studio, enfocadas a la administración de la base de datos. Contenido 1. Instalación de Microsoft SQL Server Pre-requisitos de hardware y software Instalación en el server y los clientes Procedimiento de instalación de Microsoft SQL Server Opciones de configuración durante la instalación Creación y configuración de archivos y bases de datos del sistema i. Base de datos MASTER ii. Base de datos TEMPDB iii. Base de datos MODEL iv. LOG v. Filegroups http://actualizacion.itesm.mx Arranque y paro del sistema 2. Herramientas nativas para administración de Microsoft SQL Server Utilería SQLCMD SQL Server Management Studio 3. Administrando databases y archivos en SQL Server Planeación de las databases Creación de databases Creación de “database snapshots” Creación de filegroups i. Estimaciones de espacio ii. Monitoreo del uso de los filegroups Creación de políticas de administración 4. Creación de objetos de esquema Jerarquía de objetos en Microsoft SQL Server Instrucción CREATE TABLE Tipos de datos en Microsoft SQL Server i. Carácter ii. Numéricos iii. DATE/TIME iv. Tablas con datos tipo “large-value” Integridad Referencial i. Primary Keys ii. Foreign Keys iii. Unique Constraints iv. Check Constraints v. Triggers Índices i. Tipos de índices ii. Instrucción CREATE INDEX iii. Índices particionados Vistas i. Consideraciones de vistas ii. Jerarquía de vistas iii. Instrucción CREATE VIEW iv. Vistas de solo lectura v. Cláusula CHECK OPTION vi. Instrucción DROP VIEW vii. Vistas indexadas viii. Vistas particionadas Tipos de datos y funciones definidos por el usuario i. Tipos de datos definidos por el usuario (UDT’s) ii. Instrucción CREATE TYPE iii. Funciones definidas por el usuario (UDF’s) iv. UDF’s “sourced” & “external” 5. XML Mapeo de datos relacionales con XML Almacenando datos XML de manera nativa en la base de datos Utilizando Xquery con métodos XML Creación de índices XML Implementación de esquemas XML 6. Stored procedures y funciones Implementación de stored procedures i. Creando stored procedures parametrizados ii. Ejecución de stored procedures iii. Análisis de planes de ejecución Implementación de funciones en SQL Server i. Creación de funciones http://actualizacion.itesm.mx ii. Trabajando con funciones iii. Control del contexto de ejecución 7. Utilerías para mover datos Panorama de utilerías disponibles en SQL Server para mover datos Export Import i. Utilizando el “Export/Import Wizard” Carga de datos masiva por medio del “Bulk Load” SQL Server Integration Services 8. Respaldo y recuperación Panorama de mecanismos de respaldo y recuperación disponibles en SQL Server i. Logging en Microsoft SQL Server ii. Planeación de procedimientos de respaldo y recuperación Utilería BACKUP i. Respaldando una database completa ii. Respaldando filegroups individuales iii. Respaldando el log de transacciones iv. Backups diferenciales Recuperación de la base de datos i. Restaurando una base de datos por medio de la utilería RESTORE ii. Llevando a cabo operaciones de respaldo y recuperación a nivel “PEACEMEAL” Escenarios de recuperación de la base de datos i. Pérdida de log de transacciones ii. Pérdida de la base de datos MASTER 9. Administración de seguridad Panorama general de seguridad en Microsoft SQL Server Resumen sobre niveles de acceso a Microsoft SQL Server i. Privilegios a nivel servidor ii. Privilegios a nivel database iii. Privilegios sobre objetos Administración de “Logins” i. Creación de “Logins” ii. Modificación de “Logins” iii. Eliminación de “Logins” Otorgar y Retirar privilegios i. Instrucción GRANT ii. Instrucción REVOKE iii. Instrucción DENY Utilizando llaves y certificados para proteger objetos de SQL Server Auditoría de la actividad en la base de datos 10. Automatización de tareas de administración Panorama de automatización de tareas en SQL Server Configuración del SQL Server Agent Creación de OPERATORS y JOBS Creación y configuración de alertas 11. Concurrencia Bloqueo de objetos en SQL Server Modos y duración de Bloqueos i. Bloqueos a nivel de tabla ii. Bloqueos a nivel de renglón Matrices de compatibilidad de bloqueos Otros factores que influencian el LOCKING i. Instrucción LOCK TABLE ii. Detección y causas de Deadlocks 12. Implementación de funciones de replicación Panorama del ambiente replicación en SQL Server Replicación utilizando SNAPSHOTS http://actualizacion.itesm.mx Implementación de replicación transaccional Peer-to-Peer Replicación de tipo MERGE HTTP 13. Alta disponibilidad (HA) Panorama de alta disponibilidad en SQL Server Configuración de LOG SHIPPING Configuración de DATABASE MIRRORING Implementación de CLUSTERS en SQL Server 14. Monitoreo, afinación del sistema y determinación de problemas Herramientas de diagnóstico de SQL Server Resolución de problemas i. Problemas de conectividad ii. Problemas de concurrencia Herramientas de monitoreo de SQL Server Usando el DATABASE ENGINE TUNING ADVISOR Implementación del RESOURCE GOVERNOR Implementación del DATA COLLECTOR 15. Introducción a la optimización de aplicaciones en SQL Server Procesamiento Lógico de Queries Breve descripción de las fases de procesamiento de queries Visualización del Plan Cache i. Planes compilados ii. Planes de ejecución iii. Planes en cache Estadísticas IO / Estadísticas TIME i. Trabajando con planes de ejecución ii. Full (table) scans iii. Scans & seeks iv. Bookmark lookup v. Nested loops join vi. Full outer joins vii. Merge join viii. Hash join ix. Resumen de propiedades de joins x. Aggregations xi. Sort xii. Paralelismo xiii. Query Hints Duración: 32 horas Módulo V: SQL Server 2008 afinación del rendimiento y optimización de aplicaciones utilizando el producto Embarcadero DBOptimizer Objetivo específico: Explicar los conceptos básicos sobre la afinación y rendimiento de la base de datos Microsoft SQL Server 2008. Conocer la arquitectura del motor de base de datos, sus diferentes componentes, áreas de trabajo y los algoritmos para el manejo de memoria. Trabajar con las herramientas disponibles en SQL Server para el monitoreo del rendimiento de la base de datos y aplicaciones como el SQL Server Management Studio, las funciones de Tracing y el Performance Monitor y describir la utilización de índices para mejorar el rendimiento de aplicaciones en SQL Server. . Contenido 1. Observando el comportamiento del motor de base de datos Vistas Dinámicas y funciones para Administración i. Vistas Relacionadas con Ejecución ii. Vistas Relacionadas con SQLOS iii. Vistas Relacionadas con Transacciones iv. Vistas Relacionadas con el IO http://actualizacion.itesm.mx v. Vistas Relacionadas con las Databases vi. Vistas Relacionadas con Índices 2. Monitoreo de rendimiento Reportes del SQL Server Management Studio Tracing i. Resolución de problemas y análisis de rendimiento por medio de Traces Performance Monitor i. Cuellos de botella por CPU ii. Cuellos de botella por memoria iii. Cuellos de botella por I/O iv. Cuellos de botella causados por la base de datos TempDB SQLDIAG (PSSDIAG) Esperas de SQL Server TempDB Database Engine Tuning Advisor 3. Tablas e índices Estructura de archivos en la base de datos Alojamiento de espacio Estructura básica de páginas Organización de tablas e índices i. Particiones ii. Heap iii. Índices Clustered iv. Índices No Clustered Selección de Índices i. Índices altamente efectivos para clusterización ii. Hacer que los índices NO CLUSTER sean selectivos Opciones de indices Mantenimiento de Índices Administración de Índices Mejores prácticas de Índices 4. Locking y concurrencia Modelos de concurrencia i. Pesimista ii. Optimista La prueba ACID i. Atomicidad ii. Consistencia iii. Aislamiento (Isolation) iv. Durabilidad Isolation Levels i. Actualizaciones perdidas ii. Lecturas “sucias” (dirty reads) iii. Lecturas no repetibles iv. Fantasmas Granularidad de locks Locking Read Uncommitted Scan Locking Read Committed Scan Locking Repeatable Read Scan Locking Serializable Read Scan Modos de Lock i. Locks compartidos ii. Locks exclusivos iii. Locks de actualización iv. Locks de intención (intent lock) Duración de Locks Escalación de Locks i. Umbrales para escalación de Locks http://actualizacion.itesm.mx ii. Umbral de escalación para una instrucción de iii. Transact-SQL iv. Umbral de Escalation para una Instancia del v. Engine de base de datos vi. Escalando tipos de Lock mezclados vii. Reduciendo Locking y Escalación 5. Optimización de queries Procesamiento lógico de Queries Breve descripción de las fases de procesamiento de queries Visualización del plan cache i. Planes compilados ii. Planes de ejecución iii. Planes en cache Estadísticas IO / estadísticas TIME Trabajando con planes de ejecución i. Full (table) scans ii. Scans & Seeks iii. Bookmark Lookup iv. Nested Loops Join v. Full Outer Joins vi. Merge Join vii. Hash Join viii. Resumen de propiedades de Join ix. Aggregations x. Sort xi. Paralelismo xii. Query Hints 6. Introducción al producto Embarcadero DBOptimizer Interfase del producto Explorador de fuentes de datos Creación de profiles de fuente de datos i. Inicio de una sesión de profile de fuente de ii. datos iii. Análisis de los datos recolectados por la sesión iv. de profile de fuente de datos v. Línea del tiempo de la sesión de profile de fuente de datos vi. Detalles de la sesión vii. Detección de instrucciones de SQL altamente consumidoras de recursos viii. Lab1: Creación de profiles y detección de instrucciones problemáticas de SQL Afinación de instrucciones de SQL (SQL Tuning) i. Creación de jobs de afinación ii. Agregando instrucciones de SQL al job de afinación iii. Ejecución del trabajo de afinación iv. Análisis de los resultados del job de afinación v. Detección de índices faltantes vi. Identificación de problemas en el SQL http://actualizacion.itesm.mx Productos cartesianos Relaciones de muchos-a-muchos vii. Lab2: Afinación de instrucciones problemáticas de SQL por medio de Jobs de afinación 7. Apéndice: Mejores Prácticas Performance assessment Stored Procedures y Compilación Mejores prácticas para codificación de Queries Queries Ad Hoc Cursores Tablas Temporales Recomendaciones de diseño de base de datos i. Recomendación para las convenciones de ii. nombres iii. Recomendaciones sobre los tipos de datos iv. Recomendaciones de normalización Duración: 16 horas Informes e inscripciones: Centro de atención norte en la zona metropolitana. Teléfono: 01 (55) 5864.5758 Fax: 01 (55) 5864.5798 ó 5864.5796 actualiza.cem@servicios.itesm.mx http://actualizacion.itesm.mx