El modelo relacional 1. Introducción 9 2. Recordatorio sobre el almacenamiento de datos 9 2.1 Las diferentes categorías de datos 10 2.1.1 Los datos básicos 10 2.1.2 Los datos cambiantes 10 2.1.3 Los datos de trabajo 11 2.1.4 Los datos almacenados 11 2.2 La organización de los datos 12 2.2.1 Directa 12 2.2.2 Secuencial 12 2.2.3 Secuencial indexada 13 2.2.4 Base de datos jerárquica 13 2.2.5 Base de datos relacional 14 3. El modelo relacional 14 3.1 Conceptos y definiciones 15 3.2 Reglas principales 17 3.3 Normalización del esquema relacional 19 4. El álgebra relacional 22 4.1 Operadores 22 4.2 Etapas de la resolución de un problema 31 Implementación de bases de datos 1. Presentación de SQL Server 41 2. Administrar una base de datos 45 2.1 Administrar el espacio de almacenamiento 46 1/9
2.2 Administrar el objeto DATABASE 48 2.2.1 Crear una base de datos 50 2.2.2 Modificar el tamaño de los archivos 54 2.2.3 Eliminar una base de datos 57 2.2.4 Renombrar una base de datos 58 2.2.5 Configurar una base de datos 58 2.3 Las bases de datos en memoria 65 2.3.1 Crear una base de datos en memoria 66 2.3.2 Crear una tabla en memoria 67 3. Administrar tablas e índices 69 3.1 Identificador 69 3.2 Los tipos de datos 70 3.2.1 Tipos de datos de sistema 70 3.2.2 Tipos de datos definidos por el usuario 78 3.3 Administrar las tablas 83 3.3.1 Crear una tabla 84 3.3.2 Modificar una tabla 88 3.3.3 Eliminar una tabla 90 3.3.4 Nombre completo de una tabla 91 3.3.5 Columnas calculadas 91 4. Implementación de la integridad de los datos 92 4.1 Los valores por defecto 93 4.2 Las reglas 94 4.3 La propiedad IDENTITY 94 4.4 Las restricciones de integridad 98 4.4.1 NOT NULL 98 4.4.2 PRIMARY KEY 99 4.4.3 UNIQUE 101 4.4.4 REFERENCIAS 103 4.4.5 DEFAULT 106 4.4.6 CHECK 108 5. Administrar los índices 110 2/9
5.1 Crear un índice 116 5.2 Eliminar un índice 122 5.3 Reconstruir un índice 122 5.4 Las estadísticas 124 5.5 Información sobre los índices 127 6. Monitorizar y verificar las bases de datos y los objetos 130 7. Los esquemas 130 8. Ejercicio 132 Las órdenes de SQL 1. Aspectos generales 139 1.1 Expresiones 140 1.2 Operadores 143 1.3 Funciones 147 1.3.1 Funciones de agregación 148 1.3.2 Funciones matemáticas 149 1.3.3 Funciones trigonométricas 150 1.3.4 Funciones logarítmicas 151 1.3.5 Funciones diversas 151 1.3.6 Funciones de tipo fecha 152 1.3.7 Funciones de tratamiento de cadenas de caracteres 155 1.3.8 Funciones de sistema 157 1.3.9 Funciones de conversión de tipos 161 1.3.10 Funciones lógicas 165 2. El SQL-DML 165 2.1 Creación de registros 165 2.2 Modificación de registros 171 2.3 Eliminar registros 174 3/9
2.4 Extracción de registros 177 2.5 Operaciones del álgebra relacional 183 2.5.1 Selección de columnas 183 2.5.2 Restricción 187 2.5.3 Cálculos sencillos 190 2.5.4 Proyección 191 2.5.5 Cálculos agregados 193 2.5.6 Producto cartesiano 195 2.5.7 Join 196 2.5.8 Join externo 199 2.5.9 ORDER BY 201 2.5.10 UNION 204 2.5.11 EXCEPT 205 2.5.12 INTERSECT 205 2.5.13 Extraer solo los primeros registros 206 2.6 Consulta de creación de tablas 209 2.7 Forzar el optimizador de consultas 211 2.8 Tablas CTE 211 2.9 Generación de registros estadísticos 213 2.10 Subconsultas 219 2.11 PIVOT y UNPIVOT 223 2.12 MERGE 227 2.13 Las secuencias 231 2.13.1 Crear una secuencia 231 2.13.2 Usar una secuencia 232 3. Gestión de las vistas 233 Transact SQL: el lenguaje procedimental 1. El SQL procedimental 247 1.1 Gestión de las variables de usuario 248 1.2 Variables de sistema 249 1.3 Las transacciones 253 4/9
1.4 Las transacciones de validación diferida 264 1.5 Gestión de los lotes y scripts 265 1.6 Control de flujo 266 1.6.1 RETURN 266 1.6.2 PRINT 267 1.6.3 CASE 268 1.6.4 BEGIN... END 269 1.6.5 IF 270 1.6.6 WHILE 270 1.6.7 OUTPUT 271 1.7 Gestión de cursores 273 1.7.1 DECLARE CURSOR 274 1.7.2 OPEN 276 1.7.3 FETCH 277 1.7.4 CLOSE 277 1.7.5 DEALLOCATE 278 1.8 Gestión de excepciones 279 1.8.1 Los mensajes de error 279 1.8.2 Activación de un error 281 1.8.3 Definir un mensaje de error 284 1.8.4 Gestión de errores 289 2. Gestión de los procedimientos almacenados 292 3. Las funciones definidas por el usuario 296 3.1 Creación de una función 297 3.2 Modificación de una función 301 3.3 Eliminar una función 302 3.4 CROSS APPLY y OUTER APPLY 303 4. Ejecutar procedimientos y funciones 304 5. El contexto de ejecución 307 5/9
6. Los triggers 313 7. La depuración del código 323 Gestión de los datos distribuidos 1. Introducción 333 2. SQL Server Integration Services 335 2.1 Principios básicos de funcionamiento 335 2.2 El asistente de importación y exportación 337 2.3 El resto de utilidades 348 2.3.1 Utilidad de ejecución de paquetes 348 2.3.2 Las utilidades en línea de comandos 349 3. Mover una base de datos 350 3.1 Desvincular una base de datos 351 3.1.1 Desde SQL Server Management Studio 351 3.1.2 Desde Transact SQL 353 3.2 Vincular una base de datos 354 3.2.1 Desde SQL Server Management Studio 355 3.2.2 Desde Transact SQL 356 3.3 Mover una base de datos o archivos 358 4. El programa BCP 358 5. Los servidores remotos 363 5.1 Gestión de los servidores remotos 364 5.1.1 Añadir un servidor vinculado 365 5.1.2 Eliminar un servidor vinculado 367 5.2 Gestión de los usuarios remotos 368 5.3 Uso de los recursos remotos 369 6/9
5.4 Los sinónimos 370 Los tipos avanzados 1. Introducción 373 2. Trabajar con el formato XML 373 2.1 El tipo XML 376 2.2 Trabajar con una columna de tipo XML 383 2.2.1 Las operaciones DML 383 2.2.2 Los métodos específicos 385 2.3 Indexar una columna de tipo XML 389 2.3.1 índice principal 390 2.3.2 índices secundarios 391 2.4 XQuery y Xpath 392 2.5 FOR XML 400 2.6 OpenXML 405 2.7 OPENROWSET 407 3. Tablas value parameter 409 4. Las estructuras jerárquicas 410 4.1 HierarchyId 410 4.2 Los índices 411 4.3 Los métodos 412 5. Los datos FILESTREAM 416 6. Los datos espaciales 423 Common Language Runtime (CLR) 7/9
1. SQL Server y CLR 427 1.1 Transact SQL o CLR? 428 1.2 Trabajar con el código CLR 430 1.2.1 Acceder a recursos externos 431 1.2.2 Las instrucciones SQL 431 1.2.3 Los tipos de datos 431 1.2.4 El acceso a los datos 432 1.2.5 Localización del código 432 2. Definir el código CLR gestionado en SQL Server 433 2.1 Activar el soporte del código CLR 433 2.2 Trabajar con Visual Studio 433 2.3 Tipos de datos personalizados 435 2.4 Procedimientos almacenados 438 2.5 Triggers de base de datos 441 2.6 Funciones de cálculo agregado 444 3. SMO y PowerShell 446 3.1 SMO 446 3.2 Generar un script de inserción de datos 449 3.3 Crear una base de datos con SMO 451 3.4 Crear una tabla con SMO 452 3.5 Modificar una tabla 454 Anexos 1. Diagrama de base de datos 457 2. Sitios de Internet 460 3. Script de creación de la base de datos 460 8/9
4. Glosario 463 índice 465 9/9