604

Click here to load reader

Cap 1 20(completo y corregido)

Embed Size (px)

Citation preview

  • 1. Thomas M. Connolly Carolyn E. Begg PEARSON Addison Wesley

2. Sistemas de bases de datos UN ENFOQUE PRCTICO PARA DISEO, IMPLEMENTACIN y GESTIN Cuarta edicin THOMAS M. CONNOLLY CAROLYN E. BEGG University 01Paisley Traduccin Vuelapluma Madrid e Mxico e Santaf de Bogot e Buenos Aires e Caracas e Lima Montevideo e San Juan e San Jos e Santiago e Sao Paulo Reading e Massachusetts e Harlow e England 3. Datos de catalogacin bibliogrfica SISTEMAS DE BASES DE DATOS Connolly, T. M.; Begg, C. E. Pearson Educacin S.A., Madrid, 2005 ISBN: 84-7829-075-3 Materia: Informtica, 681.3 Formato: 195 x 250 mm. Pginas: 1320 Todos los derechos reservados. Queda prohibida, salvo excepcin prevista en la Ley, cualquier forma de reproduccin, distribucin, comunicacin pblica y transformacin de esta obra sin contar con autorizacin de los titulares de propiedad intelectual. La infraccin de los derechos mencionados puede ser constitutiva de delito contra la propiedad intelectual (arts. 270 y sgts. Cdigo Penal). DERECHOS RESERVADOS 2005 por PEARSON EDUCACIN S.A. Ribera del Loira, 28 28042 Madrid SISTEMAS DE BASES DE DATOS Connolly, T. M.; Begg, C. E. ISBN: 84-7829-075-3 Depsito Legal: M-30.815-2005 ADDISON WESLEY es un sello editorial autorizado de PEARSON EDUCACIN S.A. Pearson Education Limited 1995,2005 This translation ofDATABASE SYSTEMS -APRACTICALAPPROACH TO DESIGN, IMPLEMENTATION AND MANAGEMENT 04 Edition is published by arrangement with Pearson Education Limited, United Kingdom Equipo editorial Editor: Miguel Martn-Romo Tcnico editorial: Marta Caicoya Equipo de produccin Director: Jos A. Clares Tcnico:Tini Cardoso Diseo de cubierta: Equipo de diseo de Pearson Educacin S.A. Impreso por: Grficas Rgar IMPRESO EN ESPAA - PRlNTED IN SPAIN Este libro ha sido impreso con papel y tintas eco lgicos 4. Prefacio . Parte 1 Introduccin . Contenido XXXIII 1 Captulo 1 Introduccin a las bases de datos 3 1.1 Introduccin 4 1.2 Sistemas tradicionales basados en archivos 6 1.2.1 La tcnica basada en archivos .... 7 1.2.2 Limitaciones de la tcnica basada en archivos 11 1.3 Sistemas de bases de datos 13 1.3.1 La base de datos 14 1.3.2 Sistema de gestin de base de datos (SGBD) 15 1.3.3 Programa de aplicacin 16 1.3.4 Componentes de un entorno SGBD 17 1.3.5 Diseo de bases de datos: un cambio en el paradigma 19 1.4 Papeles en un entorno de base de datos 20 1.4.1 Administradores de datos y de la base de datos 20 1.4.2 Diseadores de bases de datos 20 1.4.3 Desarrolladores de aplicaciones 21 1.4.4 Usuarios finales 21 1.5 Historia de los sistemas de gestin de bases de datos 22 1.6 Ventajas y desventajas de los SGBD 24 Resumen 28 Cuestiones de repaso 29 Ejercicios 30 Captulo 2 El entorno de la base de datos 31 2.1 La arquitectura en tres niveles de ANSI-SPARC 32 2.1.1 Nivel externo 33 2.1.2 Nivel conceptual 33 2.1.3 Nivel interno 34 2.1.4 Esquemas, asignaciones e instancias 34 5. XII Sistemas de basesde datos 2.1.5 Independencia de los datos 36 2.2 Lenguajes de base de datos 37 2.2.1 El lenguaje de definicin de datos (DDL) 37 2.2.2 El lenguaje de manipulacin de datos (DML) 37 2.2.3 Lenguajes de cuarta generacin (4GL) -.-.- 39 2.3 Modelos de datos y modelado conceptual 40 2.3.1 Modelos de datos basados en objetos 41 2.3.2 Modelos de datos basados en registros 41 2.3.3 Modelos de datos fsicos 43 2.3.4 Modelado conceptual 43 2.4 Funciones de un SGBD 44 2.5 Componentes de un SGBD 48 2.6 Arquitecturas de SGBD multiusuario 51 2.6.1 Teleprocesamiento 51 2.6.2 Arquitectura de servidor de archivos 51 2.6.3 Arquitectura cliente-servidor tradicional en dos niveles 52 2.6.4 Arquitectura cliente-servidor en tres niveles 55 2.6.5 Monitores de procesamiento de transacciones 56 Resumen 57 Cuestiones de repaso 59 Ejercicios 59 Parte 2 El modelo relacional y los lenguajes relacionales 61 Captulo 3 Introduccin a las bases de datos 63 3.1 Breve historia del modelo relacional 64 3.2 Terminologa 65 3.2.1 Estructuras de datos relacionales 65 3.2.2 Relaciones matemticas 68 3.2.3 Relaciones en una base de datos 68 3.2.4 Propiedades de las relaciones 69 3.2.5 Claves relacionales 70 3.2.6 Representacin de esquemas de base de datos relacional 72 3.3 Restricciones de integridad 72 3.3.1 Valores nulos 72 3.3.2 Integridad de entidad 74 3.3.3 Integridad referencial 74 3.3.4 Restricciones generales 75 3.4 Vistas 75 3.4.1 Terminologa 75 3.4.2 Propsito de las vistas 76 3.4.3 Actualizacin de las vistas 76 6. Contenido XIII Resumen 77 Cuestiones de repaso 77 Ejercicios 78 Captulo 4 lgebra relacional y clculo relacional _._._ 79 4.1 El lgebra relacional 80 4.1 .1 Operaciones unarias 80 4.1.2 Operaciones de conjuntos 82 4.1.3 Operaciones de combinacin .. 86 4.1.4 Operacin de divisin 89 4.1.5 Operaciones de agregacin y de agrupamiento 90 4.1.6 Resumen de las operaciones de lgebra relacional 92 4.2 El clculo relacional 93 4.2.1 Clculo relacional de tuplas . 93 4.2.2 Clculo relacional de dominios 96 4.3 Otros lenguajes 98 Resumen 98 Cuestiones de repaso 99 Ejercicios 99 Captulo 5 SQL: manipulacin de datos 101 5.1 Introduccin a SOL 102 5.1.1 Objetivos de SOL 102 5.1.2 Historia de SOL 103 5.1.3 Importancia de SOL 104 5.1.4 Terminologa 105 5.2 Escritura de comandos SOL 105 5.3 Manipulacin de datos 106 5.3.1 Consultas simples 107 5.3.2 Ordenacin de los resultados (clusula ORDER BY) 114 5.3.3 Utilizacin de las funciones de agregacin de SOL 116 5.3.4 Agrupacin de resultados (clusula GROUP BY) 118 5.3.5 Subconsultas 121 5.3.6 ANY Y ALL 123 5.3.7 Consultas multitabla 125 5.3.8 EXISTS y NOT EXISTS 130 5.3.9 Combinacin de tablas de resultados (UNION, INTERSECT, EXCEPT) 131 5.3.10 Actualizaciones de la base de datos 134 Resumen 138 Cuestiones de repaso 139 Ejercicios 139 7. XIV Sistemas de bases de datos 6.4 Vistas 6.4.1 Creacin de una vista (CREA TE VIEW) . 6.4.2. Eliminacin de una vista (DROP VIEW) 6.4.3 Resolucin de vistas . 6.4.4 Restricciones de las vistas . 6.4.5 Actualizacin de vistas . 6.4.6 WITH CHECK OPTION . 6.4.7 Ventajas y desventajas de las vistas . 6.4.8 Materializacin de vistas . 6.5 Transacciones . 6.5.1 Restricciones de integridad inmediatas e inferidas . 6.6 Control de acceso discrecional . 6.6.1 Concesin de privilegios a otros usuarios (GRANTI . 6.6.2 Revocacin de privilegios de los usuarios (REVOKE) . Resumen . Cuestiones de repaso . Ejercicios . Captulo 6 SOL: definicin de datos ~. 6.1 Tipos de datos SOL de ISO . 6.1.1 Identificadores SOL . 6.1.2 Tipos de datos SOL escalares . 6.1.3 Datos numricos exactos . 6.2 Caractersticas de mejora de la integridad . 6.2.1 Datos requeridos . 6.2.2 Restricciones de dominio . 6.2.3 Integridad de entidades . 6.2.4 Integridad referencial . 6.2.5 Restricciones generales . 6.3 Definicin de datos . 6.3.1 Creacin de una base de datos . 6.3.2 Creacin de una tabla (CREATE TABLE) . 6.3.3 Modificacin de la definicin de una tabla (ALTER TABLE) . 6.3.4 Eliminacin de una tabla (DROP TABLE) . 6.3.5 Creacin de un ndice (CREATE INDEX) . 6.3.6 Eliminacin de un ndice (DROP INDEX) . Captulo 7 7.1 7.2 OSE Introduccin a las consultas en Microsoft Of?ce Access . Diseo de consultas de seleccin mediante OBE . 7.2.1 Especificacin de criterios . 7.2.2 Creacin de consultas multitabla . 141 142 142 143 144 147 147 147 149 149 150 151 151 152 155 156 157 158 158 158 161 161 162 163 164 165 167 168 169 169 171 172 174 175 175 179 180 182 182 186 8. Contenido 7.2.3 Clculo de totales . 7.3 Utilizacin de consultas avanzadas 7.3.1 Consultas paramtricas 7.3.2 Consulta matricial ... 7.3.3 Consultas de localizacin de duplicados 7.3.4 Consulta de localizacin de no correspondencias 7.3.5 Consultas de autobsqueda . 7.4 Modificacin del contenido de las tablas mediante consultas de accin 7.4.1 Consultas de accin para creacin de tablas 7.4.2 Consulta de accin de borrado . 7.4.3 Consulta de accin de actualizacin 7.4.4 Consulta de accin de adicin . Ejercicios " . Captulo 8 Bases de datos comerciales: Office Access y Oracle . 8.1 Microsoft Office Access 2003 8.1.1 Objetos . 8.1.2 Arquitectura de Microsoft Of?ce Access 8.1.3 Definicin de tablas . 8.1.4 Definicin de relaciones y de integridad referencial . 8.1.5 Definicin de restricciones generales . 8.1.6 Formularios . 8.1.7 Informes . 8.1.8 Macros . 8.1 .9 Dependencias entre objetos . 8.2 Oracle9i . 8.2.1 Objetos . 8.2.2 Arquitectura de Oracle 8.2.3 Definicin de tablas .... 8.2.4 Definicin de restricciones generales 8.2.5 PL/SQL . 8.2.6 Subprogramas, procedimientos almacenados, funciones y paquetes 8.2.7 Disparadores . 8.2.8 Oracle Internet Developer Suite 8.2.9 Otras funcionalidades de Oracle 8.2.10 Oracle10g . Resumen . Cuestiones de repaso . Parte 3 Tcnicas de anlisis y diseo de bases de datos .... Captulo 9 Planificacin, diseo y administracin de bases de datos . xv 186 188 189 190 192 194 195 195 195 199 199 199 202 205 205 206 206 208 213 213 215 217 218 221 221 223 224 230 233 233 239 240 244 248 248 252 253 255 257 9. Contenido XVII 10.4 Ejemplo de utilizacin de tcnicas de determinacin de hechos 293 10.4.1 El caso de estudio de DreamHome: panormica 293 10.4.2 El caso de estudio de DreamHome: planificacin de la base de datos 298 10.4.3 El caso de estudio de DreamHome: definicin del sistema 302 10.4.4 El caso de estudio de DreamHome: recopilacin y anlisis de requisitos 303 10.4.5 El caso de estudio de DreamHome: diseo de la base de datos .. 311 Resumen 311 Cuestiones de repaso 311 Ejercicios 312 Captulo 11 Modelado entidad-relacin 313 11.1 Tipos de entidad 314 11.2 Tipos de relacin 316 11.2.1 Grado de un tipo de relacin 318 11.2.2 Relacin recursiva 318 11.3 Atributos 319 11.3.1 Atributos simples y compuestos 320 11.3.2 Atributos univaluados y multivaluados 321 11.3.3 Atributos derivados 321 11.3.4 Claves 322 11.4 Tipos de entidad fuertes y dbiles 323 11.5 Atributo~de las relaciones 324 11.6 Restricciones estructurales 324 11.6.1 Relaciones uno a uno (1: 1) 325 11.6.2 Relaciones uno a muchos (1: *) 326 11.6.3 Relaciones muchos a muchos (*:*) 328 11.6.4 Multiplicidad para relaciones complejas 329 .11.6.5 Restricciones de cardinalidad y de participacin 330 11.7 Problemas con los modelos ER 331 11.7.1 Trampas multiplicativas 331 11.7.2 Trampas de corte 333 Resumen 334 Cuestiones de repaso 336 Ejercicios 336 Captulo 12 Modelado entidad-relacin avanzado 339 12.1 Especializacin/Generalizacin 340 12.1.1 Superclases y subclases 340 12.1.2 Relaciones superclase y subclase 340 12.1.3 Herencia de atributo 341 10. XVIII Sistemas de bases de datos 12.1.4 Proceso de especializacin 342 12.1.5 Proceso de generalizacin 342 12.1.6 Restricciones a la especializacin/generalizacin 344 12.1.7 Utilizacin de las tcnicas de especializacin/generalizacin para modelar la vista Branch del caso de estudio DreamHome 346 12.2 Agregacin 350 12.3 Composicin 350 Resumen 352 Cuestiones de repaso 352 Ejercicios 352 Captulo 13 13.1 13.2 13.3 13.4 13.5 13.6 13.7 13.8 13.9 Normalizacin . El propsito de la normalizacin . Cmo ayuda la normalizacin al diseo de bases de datos Redundancia de los datos y anomalas de actualizacin 13.3.1 Anomalas de insercin 13.3.2 Anomalas de borrado . 13.3.3 Anomalas de modificacin . Dependencias funcionales . 13.4.1 Caractersticas de las dependencias funcionales. 13.4.2 Identificacin de dependencias funcionales .... 13.4.3 Identificacin de la clave primaria de una relacin utilizando las dependencias funcionales El proceso de normalizaclPn . Primera forma normal (1NF) . Segunda forma normal (2NF) Tercera forma normal (3NF) . Definiciones generales de las formas 2NF y 3NF . Resumen . Cuestiones de r@paso . Ejercicios . 353 354 354 355 356 357 357 358 358 362 364 365 367 370 372 374 375 376 376 Captulo 14 Normalizacin avanzada . 14.1 Ms aspectos relativos a las dependencias funcionales 14.1.1 Reglas de inferencia para dependencias funcionales 14.1.2 Conjuntos mnimos de dependencias funcionales 14.2 Forma normal de Boyce-Codd (BCNF) . 14.2.1 Definicin de la forma normal de Boyce-Codd 14.3 Revisin del proceso de normalizacin hasta BCNF 14.4 Cuarta forma normal (4NF) . 14.4.1 Dependencia multivaluada . 14.4.2 Definicin de cuarta forma normal . 379 380 380 382 383 383 385 391 391 392 11. Contenido XIX 14.5 Quinta forma normal (5NF) 393 14.5.1 Dependencia de combinacin sin prdidas 393 14.5.2 Definicin de quinta forma normal 393 Resumen 395 Cuestiones de repaso 395 Ejercicios _.. 395 Parte 4 Metodologa . 397 Captulo 15 Metodologa: diseo conceptual de la base de datos 399 15.1 Introduccin a la metodologa de diseo de bases de datos 400 15.1.1 Qu es una metodologa de diseo? 400 15.1.2 Diseo conceptual, lgico y fsico de una base datos 400 15.1.3 Factores crticos en el diseo de una base de datos 401 15.2 Panormica de la metodologa de diseo de la base de datos 401 15.3 Metodologa de diseo conceptual de la base de datos 404 Resumen 41 7 Cuestiones de repaso 418 Ejercicios 4 19 Captulo 16 Metodologa: diseo lgico de bases de datos para el modelo relacional . 421 16.1 Metodologa de diseo lgico de bases de datos para el modelo relacional 422 .". Paso 2 Construir y validar el modelo lgico de datos 422 Resumen 447 Cuestiones de repaso 448 Ejercicios 449 Captulo 17 Metodologa: diseo fsico de bases de datos relacionales 451 17.l Comparacin del diseo lgico y el diseo fsico de bases de datos 452 17.2 Panormica de la metodologa de diseo fsico de bases de datos 452 17.3 Metodologa de diseo fsico de bases de datos relacionales 454 Resumen 471 Cuestiones de repaso 471 Ejercicios 472 Captulo 18 Metodologa: monitorizacin y optimizacin del sistema final 473 18.1 Desnormalizacin e introduccin de redundancia controlada 473 18.2 Monitorizacin del sistema para mejorar el rendimiento 485 Resumen 489 Cuestiones de repaso 489 Ejercicios 490 12. XX Sistemas de bases de datos Parte 5 Problemas fundamentales en las bases de datos Captulo 19 Seguridad . 19.1 Seguridad de la base de datos . 19.1.1 Amenazas . 19.2 Contramedidas: controles informatizados . 19.2.1 Autorizacin . 19.2.2 Controles de acceso . 19.2.3 Vistas . 19.2.4 Copia de seguridad y recuperacin . 19.2.5 Integridad . 19.2.6 Cifrado . 19.2.7 RAID (Redundant Array of Independent Disks) . 19.3 Seguridad en el SGBD de Microsoft Office Access . 19.4 Seguridad en el SGBD de Oracle . 19.5 Seguridad de un SGBD en entornos web .' . 19.5.1 Servidores proxy . 19.5.2 Cortafuegos . 19.5.3 Algoritmos de compendio de mensajes y firmas digitales . 19.5.4 Certificados digitales . 19.5.5 Kerberos . 19.5.6 Secure Sockets Layer y Secure HTTP . 19.5.7 Secure Electronic Transactions y Secure Transaction T echnology . 19.5.8 Seguridad Java . 19.5.9 Seguridad ActiveX . Resumen . Cuestiones de repaso . Ejercicios . Captulo 20 Gestin de transacciones . 20.1 Soporte de transacciones . 20.1.1 Propiedades de las transacciones 20.1.2 Arquitectura de la base de datos 20.2 Control de concurrencia . 20.2.1 La necesidad del control de concurrencia 20.2.2 Serializabilidad y recuperabilidad 20.2.3 Mtodos de bloqueo . 20.2.4 Interbloqueos . 20.2.5 Mtodos de marca temporal . 20.2.6 Ordenacin de marcas temporales multiversin 20.2.7 Tcnicas optimistas . 491 493 494 495 495 497 499 501 501 502 502 503 504 508 512 512 513 514 514 514 515 515 516 518 518 519 520 521 522 524 524 525 525 528 535 541 544 547 548 13. Contenido XXI 20.2.8 Granularidad de los elementos de datos 20.3 Recuperacin de la base de datos ..... 20.3.1 La necesidad de la recuperacin . 20.3.2 Transacciones y recuperacin . 20.3.3 Funcionalidades de recuperacin . 20.3.4 Tcnicas de recuperacin . 20.3.5 Recuperacin en un SGBD distribuida . 20.4 Modelos avanzados de transacciones . 20.4.1 Modelo de transacciones anidadas . 20.4.2 Sagas . 20.4.3 Modelo de transacciones multinivel .. 20.4.4 Reestructuracin dinmica . 20.4.5 Modelos de flujo de trabajo . 20.5 Control de concurrencia y recuperacin en Oracle 20.5.1 Niveles de aislamiento en Oracle . 20.5.2 Coherencia de lectura multiversin . 20.5.3 Deteccin interbloqueos . 20.5.4 Copia de seguridad y recuperacin . Resumen . Cuestiones de repaso . Ejercicios . 549 552 552 553 555 558 560 561 562 564 564 565 566 567 567 568 569 569 570 571 572 21.5 Numeracin de las estrategias de ejecucin alternativas . 21 .5. 1 Pipelining . 21 .5.2 rboles lineales . 21.5.3 Operadores fsicos y estrategias de ejecucin 21.5.4 Reduccin del espacio de bsqueda . 583 588 589 589 590 596 603 605 606 606 607 608 609 575 576 579 583 Procesamiento de consultas . Panormica del procesamiento de consultas . Descomposicin de consultas . Mtodo heurstico de optimizacin de consultas . 21.3.1 Reglas de transformacin para las operaciones del lgebra relacional . 21.3.2 Estrategias de procesamiento heurstico . 21.4 Estimacin de costes para las operaciones del lgebra relacional 21.4.1 Estadsticas de la base de datos . 21.4.2 Operacin de seleccin (S = 'almacenamiento, y explicando cuando debe introducirse redundancia contro- lada. Parte 5 Problemas fundamentales en las bases de datos La Parte 5 del libro examina cuatro temas especficos que los autores consideran necesarios para cualquier curso moderno dedicado a la gestin de bases de datos. El Captulo 19 analiza el tema de la seguridad en las bases de datos, no slo en el contexto de la seguridad del SGBD sino tambin en el de la seguridad del entorno del SGBD. Se ilustra cmo proporcionar seguridad con Microsoft Office Access y Oracle. El captulo examina tambin los problemas de seguridad que pueden surgir en un entorno web y presenta algunas tcnicas dedicadas a prevenir estos problemas. El Captulo 20 se concentra en tres funciones que todo sistema de gestin de bases de datos debe proporcio- nar: la gestin de transacciones, el control de concurrencia y la recuperacin. Estas funciones tratan de garan- tizar que la base de datos sea viable y permanezca en un estado coherente cuando mltiples usuarios estn accediendo a la base de datos, y en presencia de fallos tanto de los componentes hardware como software. El captulo tambin explica los modelos avanzados de transacciones que resultan ms apropiados para las trans- acciones de larga duracin. Se concluye el captulo examinando el tema de la gestin de transacciones en Oracle. El Captulo 21 examina las cuestiones del procesamiento y optimizacin de consultas. En el captulo se pre- sentan las dos tcnicas principales de optimizacin de consultas: utilizacin de reglas heursticas que ordenen las operaciones de la consulta, y otra tcnica que compara diferentes estrategias basndose en sus costes rela- tivos y selecciona aquella que minimiza el uso de recursos. El captulo concluye examinando el procesamien~ to de consultas en Oracle. 32. XL Sistemas de bases de datos Parte 6 Bases de datos distribuidas y replicacin La Parte 6 del libro examina los SGBD distribuidos y los SGBD basados en objeto. La tecnologa de sistemas de gestin de bases de datos distribuidas (SGBDD) constituye uno de los desarrollos principales en la actua- lidad dentro del rea de los sistemas de base de datos. Los captulos anteriores del libro se centran en los sis- temas de bases de datos centralizados, es decir, sistemas con una nica base de datos lgica ubicada en una plataforma bajo control de un nico SGBD. El Captulo 22 explica los conceptos y problemas de los SGBD distribuidos, en los que los usuarios pueden acceder a la base de datos situada en su propia plataforma y tambin a los datos almacenados en otros sitios remotos. E! Captulo 23 examina varios conceptos avanzados asociados con los SGBD distribuidos. En particular, se concentran los protocolos asociados con la gestin de transacciones distribuidas, el control de concurrencia, la gestin de interbloqueos y la recuperacin de la base de datos. El captulo examina tambin el protocolo DTP (Distributed Transaction Processing) de X/Open. Se concluye el captulo examinando la cuestin de la distribucin de datos en Oracle. El Captulo 24 presenta los servidores de replicacin como alternativa a los SGBD distribuidos y examina los problemas asociados con las bases de datos mviles. En el captulo se analizan tambin las funcional ida- des de replicacin de datos de Oracle. Parte 7 Bases de datos orientadas a objetos Los captulos anteriores del libro se centran en el modelo relacional y en los sistemas relacionales. La justifi- cacin es que tales sistemas son actualmente el tipo de SGBD predominante para las aplicaciones tradiciona- les de base de datos en el mbito empresaria!. Sin embargo, los sistemas relacionales no carecen de desven- tajas, y los SGBD basados en objetos constituyen uno de los principales desarrollos en el rea de los sistemas de base de datos, tratando precisamente de resolver dichas desventajas. Los Captulos 25-28 examinan esta tecnologa con un cierto grado de detalle. El Captulo 25 sirve como introduccin a los SGJ3D basados en objetos y examina en primer lugar los tipos de aplicaciones avanzadas de base de datos que estn comenzando a surgir, explicando las desventajas del modelo de datos relacional que hacen que ste no resulte adecuado para dichos tipos de aplicaciones. El cap- tulo presenta a continuacin los conceptos principales de la orientacin a objetos y analiza los problemas de almacenar objetos en una base de datos relaciona!. El Captulo 26 examina los SGBD orientados a objetos (SGBDOO) y comienza proporcionando una intro- duccin a los modelos de datos orientados a objetos y a los lenguajes de programacin persistente. El captu- lo explica la diferencia entre el modelo de almacenamiento en dos niveles utilizado por los SGBD tradiciona- les y el modelo de almacenamiento en mi nico nivel utilizado por los SGBDOO, explicando cmo afecta esto al acceso a los datos. Tambin se analizan las distintas tcnicas para proporcionar persistencia en los lengua- jes de programacin y las distintas alternativas para transformacin de punteros, examinando las cuestiones de la gestin de versiones, la evolucin del esquema y de las arquitecturas de los SGBDOO. El captulo con- cluye mostrando brevemente cmo puede emplearse la metodologa presentada en la Parte 4 del libro para las bases de datos orientadas a objetos. El Captulo 27 contempla el modelo de objetos propuesto por ODMG (Object Data Management Group), que se ha convertido en un estndar de Jacto para los SGBDOO. El captulo tambin examina ObjectStore, un SGBDOO comercial El Captulo 28 analiza los SGBD objeto-relacionales, proporcionando una panormica detallada de las carac- tersticas de gestin de objetos que se han aadido a la nueva versin del estndar SQL, SQL:2003. El cap- tulo tambin explica cmo es necesario ampliar el procesamiento y la optimizacin de consultas para gestio- nar de manera eficiente la extensibilidad de los tipos de datos. El captulo concluye examinando algunas de las caractersticas objeto-relacionales de Oracle. 33. Prefacio XLI Parte 8 las bases de datos y la World Wide Web La Parte 8 del libro trata del tema de la integracin de los SGBD en los entornos web, as como sobre los datos semiestructurados y su relacin con XML, los lenguajes de consulta XML y la integracin de XML con las bases de datos. El Captulo 29 examina la integracin de los SGBD en los entorno s web. Despus de proporcionar una breve introduccin a Internet y a la tecnologa web, el captulo examina la adecuacin de la Web como plataforma de aplicacin de bases de datos y explica las ventajas y desventajas de esta tcnica. A continuacin se presen- tan diversas alternativas para la integracin de los SGBD en los entorno s web, incluyendo los lenguajes de script, COI, las extensiones de servidor, Java, ADO y ADO.NET y la plataforma Internet de Oracle. El Captulo 30 examina el tema de los datos semiestructurados y explica el lenguaje XML y por qu este len- guaje se est convirtiendo en un estndar cada vez ms aceptado para la representacin de datos y el inter- cambio de datos a travs de la Web. El captulo explica a continuacin una serie de tecnologas relacionadas con XML, como los espacios de nombres, XSL, XPath, XPointer, XLink, SOAP, WSDL y UDDI. Tambin examina cmo puede utilizarse XML Schema para definir el modelo de contenido de un documento XML y el modo en que RDF (Resource Description Framework) proporciona un marco de trabajo para el intercam- bio de metadatos. En el captulo se examinan los lenguajes de consulta para XML, centrndose en particular en XQuery, propuesto por W3C. Tambin se examinan las extensiones aadidas a SQL:2003 para permitir la publicacin de datos XML y, con carcter ms general, la integracin de XML con las bases de datos con el fin de almacenar en stas informacin XML. Parte 9 Inteligencia empresarial La parte final del libro trata el tema de los almacenes de datos, el procesamiento analtico en lnea (OLAP) y la minera de datos. El Captulo 31 presenta los almacenes de datos, lo que son, cmo han evolucionado y cules son los poten- ciales beneficios y problemas asociados con este tipo de sistemas. En el captulo se examinan la arquitectura, los componentes principales y las herramientas y tecnologas asociadas con un almacn de datos. El captulo explica tambin los mercados.,.de datos y los problemas relativos al desarrollo y gestin de este tipo de siste- mas. Se concluye el captulo describiendo las funcionalidades de almacn de datos proporcionadas por el SGBD de Oracle. El Captulo 32 proporciona una tcnica para el diseo de la base de datos de un almacn/mercado de datos diseado para soportar los procesos de toma de decisiones. El captulo describe los conceptos bsicos asocia- dos con el modelado de dimensionalidad y compara esta tcnica con el modelado entidad-relacin (ER) tra- dicional. Tambin describe e ilustra una metodologa paso a paso para el diseo de almacenes de datos, utili- zando ejemplos resueltos tomados de la versin ampliada del caso de estudio de DreamHome. El captulo concluye describiendo cmo disear un almacn de datos utilizando Oracle Warehouse Builder. El Captulo 33 describe el tema del procesamiento analtico en lnea (OLAP, Online Analytical Processing). Explica lo que es OLAP y las principales caractersticas de las aplicaciones OLAP. En el captulos se analiza cmo pueden representarse datos multidimensionales y las principales categoras de herramientas OLAP. Tambin se explican las extensiones OLAP al estndar SQL y el modo en que Oracle soporta las tecnologas OLAP. El Captulo 34 describe el tema de la minera de datos. Se explica lo qu es la minera de datos y las princi- pales caractersticas de las aplicaciones de minera de datos. El captulo describe las caractersticas fundamen- tales de las operaciones de minera de datos y las tcnicas asociadas. Tambin se describe el proceso de mine- ra de datos y las principales caractersticas de las herramientas de minera de datos, y en especial el soporte que Oracle presta a este tipo de tecnologas. Apndices El Apndice A proporciona una descripcin de DreamHome, un caso de estudio que se utiliza ampliamente en todo el libro. 34. XLII Sistemas de bases de datos Parte 1 Parte 3 1 Introduccin a las bases de datos 2 El entorno de las bases de datos 9 Planificacin, diseo y administracin de bases de datos 12 Modelado Entidad-Relacin avanzado 10 Tcnicas de determinacin de hechos Parte 4 18 Metodologia: monitorizacin y optimizacin del sistema final 17 Metodologa: diseo fisico de bases de datos relaciona les 16 Metodologia: dseo lgico de bases de datos para el modelo relacional 14 Normalizacin avanzada 15 Metodologa: diseo conceptual de la base de datos 21 Procesamiento de consultas 26 Bases de datos orientadas a objetos: conceptos 32 Diseo de almacenes de datos 23 Bases de datos distribuidas: conceptos avanzados 30 Datos semiestructurados yXMl 24 Replicacin y bases de datos mviles 20 Gestin de transacciones 27 Bases de datos orientadas a objetos: estndares y sistemas 330lAP 19 Seguridad 34 Mineria de datos 28 Bases de datos objeto-relaciona les Parte 5 Parte 6 Parte 7 Parte 8 Parte 9 Figura P.1. Organizacin lgica del libro y formas recomendadas de lectura/imparticin. 35. Prefacio XLIII El Apndice B proporciona tres casos de estudio adicionales, que pueden utilizarse como proyectos de los estudiantes. El Apndice e proporciona infonnacin de referencia sobre organizacin de archivos y estructuras de alma- cenamiento, informacin que es necesaria para comprender la metodologa de diseo fisico de bases de datos presentada en el Captulo 17 y el tema del procesamiento de consultas del Captulo 21. El Apndice D describe las 12 reglas de Codd para un SGBD relacional, las cuales forman una comparativa con la que pueden identificarse los productos SGBD relaciona les 'reales'. El Apndice E examina la cuestin del SQL embebido y el SQL dinmico, con programas de ejemplo en len- guaje C. El captulo tambin examina el estndar ODBC (Open Database Connectivity), que se ha consolida- do como un estndar de Jacto del sector para el acceso a bases de datos SQL heterogneas. El Apndice F describe dos notaciones alternativas de modelado de datos que pueden emplearse en lugar de UML, que son la notacin de Chen y la notacin en pie de cuervo. El Apndice G resume los pasos de la metodologa presentada en los Captulos 15-18 para el diseo concep- tual, lgico y fisico de la base de datos. El Apndice H (vase el sitio web de acompaamiento) explica cmo estimar los requisitos de espacio de disco para una base de datos OracIe. El Apndice 1 (vase el sitio web de acompaamiento) proporciona algunas script web para complementar el Captulo 29, dedicado a la integracin de los SGBD y la Web. En la Figura P.1 se ilustra la organizacin lgica del libro y las formas de lectura e imparticin recomendadas. Correcciones y sugerencias Ya que un libro de texto de este tamao es tan vulnerable a los errores, desacuerdos, omisiones y confusio- nes, solicitamos al lector su opinin para futuras reimpresiones y ediciones. Los comentarios, las correccio- nes y las sugerencias constructivas deben enviarse a Pearson Education o por correo electrnico a: thomas.connoUy@paisl~.ac.uk 36. XLIV Sistemas de bases de datos Agradecimientos Este libro es el resultado de muchos aos de trabajo por parte de los autores en empresas, en la investigacin y en el mundo acadmico. Resulta por tanto dificil enumerar a todas las personas que nos han ayudado direc- ta o indirectamente en nuestros esfuerzos. Talo cual idea puede haber parecido insignificante en el momento en que la omos por primera vez y, sin embargo, habr tenido un efecto de gran importancia posteriormente. Pedimos de nuevo disculpas a todos aquellos a los que no mencionamos aqu. Sin embargo, nuestra gratitud y nuestras disculpas van dirigidas en primer lugar a nuestras familias, que a lo largo de los aos han sido rele- gadas e incluso ignoradas durante las pocas de mayor trabajo. A continuacin, para la primera edicin, queremos dar las gracias a nuestros editores Dr Simon Plumtree y Nicky Jaeger, por su ayuda, apoyo y profesionalidad durante la redaccin del libro; y a nuestro editor de produccin del libro Martin Tytler y al editor de copia Lionel Browne. Tambin queremos dar las gracias a los revisores de la primera edicin, que contribuyeron con sus comentarios, sugerencias y consejos. En parti- cular, queremos mencionar a: William H. Gwinn, Instructor, Texas Tech University; Adrian Lamer, De Montfort University, Leicester; Profesor Andrew McGettrick, University of Strathclyde; Dennis McLeod, Profesor de Informtica, University of Southern California; Josephine DeGuzman Mendoza, Profesor asocia- do, California State University; JeffNaughton, Profesor A. B. Schwarzkopf, University ofOklahoma; Junping Sun, Profesor ayudante, Nova Southeastern University; Donovan Young, Profesor asociado, Georgia Tech; Dr Barry Eaglestone, Catedrtico en Informtica, University of Bradford; John Wade, IBM. Tambin queremos dar las gracias a Anne Strachan por su contribucin a la primera edicin. Para la segunda edicin, queremos dar primero las gracias a Sally Mortimore, nuestro editor, y a Martin Klopstock y Dylan Reisenberger del equipo de produccin. Tambin queremos agradecer a los revisores de la segunda edicin, que contribuyeron con sus comentarios, sugerencias y consejos. En particular, queremos mencionar a: Stephano Ceri, Politecnico di Milano; Lars Gillberg, Mid Sweden University, Oestersund; Dawn JutIa, St Mary's University, Halifax, Canad; Julie McCann, City University, Londres; Munindar Singh, North Carolina State University; Hugh Darwen, Hursely, Reino Unido; Claude Delobel, Pars, Francia; Dennis Murray, Reading, Reino Unido; y de nuestro propio departamento a John Kawala y al Dr Peter Knaggs. Para la tercera y cuarta ediciones, queremos dar primero las gracias a Kate Brewin, nuestro editor, a Stuart Hay, Kay Holman y Mary Lince del equipo de produccin y a los editores de copia Robert Chaundy y Ruth Freestone King. Tambin queremos agradecer a los revisores de la segunda edicin, que contribuyeron con sus comentarios, sugerencias y consejos. En particular, queremos mencionar a: Richard Cooper, University of Glasgow, Reino Unido; Emma Eliason, University of Orebro, Suecia; Sari Hakkarainen, Stockholm University y the Royal Institute of Technology; Nenad Jukic, Loyola University Chicago, EE.UU; Jan Paredaens, University of Antwerp, Blgica; Stephen Priest, Daniel Webster College, EE.UU. Hay muchos otros que siguen siendo para nosotros annimos y a los que queremos dar las gracias por el tiempo que han invertido en la lectura del manuscrito .. Tambin queremos dar las gracias a MaIcolm Bronte-Stewart por el concepto de DreamHome, a Moira O'Donnell por garantizar la precisin de del caso de estudio Wellmeadows Hospital, a Alistair McMonnies, Richard Beeby y Pauline Robertson por su ayuda con el material para el sitio web y un agradecimiento espe- cial a la secretaria de Thomas, Lyndonne MacLeod y a la secretaria de Carolyn, June Blackburn, por su ayuda y soporte a lo largo de los aos. Thomas M. Connolly Carolyn E. Begg Glasgow, Marzo de 2004 37. Prefacio XLV Agradecimientos del editor Queremos dar las gracias a las siguientes organizaciones por su permiso para reproducir material incluido en el libro: The McGraw-Hill Companies, Inc., New York por la Figura 19.11, reproducida de BYTE Magazine, Junio 1997. Reproducida con permiso. by The McGraw-Hill Companies, Inc., New York, NY USA. Todos los derechos reservados; las Figuras 27.4 y 27.5 son diagramas de Common Warehouse Metamodel (CWM) Specification, Marzo 2003, Versin 1.1, Volumen 1, formaI/03-03-02. Reimpreso con permiso. Object Management, Inc. OMG 2003; capturas de pantalla reimpresas con permiso de Microsoft Corporation. En algunos casos no hemos podido determinar los propietarios de determinado material, y agradeceramos cualquier informacin que nos permita hacerlo. 38. XLVI Caractersticas del libro Captulo Cap;I.I.' Inll'Oducciadoialalknocab:>oatb.enan:hi>'O El Slg,urlCadodclltmullO'bucdelbl05' F.Jsop1lflCadodd ltrnuno 'siSlemadc pio6ndebasc$dc-"(SGBD) tu funcioncltipocu de un SGBO Los componcnlCl po-incipalca del enlOrTlOSGBO El personal ,mphcado en cl cntOflWlSGllD Lani,toriadcldesar",llodclosSGllD La- 'enlajasydesvenlajasdelosSGBD L.ahJSlOI;adelalnv~":lCiocnli>lcm:os"'bases"';("".,ru,!UOO. Con apmas 20 anos de ;IJIlICilabd como carJ1f!Ode: InVC>llp' clnCl(nlflCll.. III onvuupr:iocnbuc:sdc:daoos hapcnnlt.oocl ~,mlt"'o'" LInll,ndlWLlde Ios_ "1C_dc rOOtlllCOIIQIOCslooCnIosEsudoosUnodosrllCt"'llIIO$IOOOOmlllQnQde~poo-oi'io_ Losdlvtl'SCJ$loposcnbin,'~ia:acntcl:>nombrc.nlu" dclacoo,>ulla. La anlllilCc!UCd del scrv,""'dc atrh",,,, llCllC. 1"""lanr.1. 're. tlcsvelOlajasJ'rincip;11cs: 11) lby una gr.1Ocanlldad de u:lflCO de rctI. 21Sc n:qu~ una ropia complera del SGBO en cadaC"oCn)deUlOC'p1'>""""'veo.. 2.6.3 Arquitectura cliente-servidor tradicional en dos niveles Para rey:,l"crla, :>compOnCnlC' ",f1ware para ("'",ar el sistema. C(llllO el j)(Hnhrc sllllic..,.h.yunprlanlcron,un .nuuclC odorL"11unadel('nll"'adllubocacindcn'",tIcunaredolc-c~localylon. La hgwa 2.12 iluwalalf'llU"CC11r.i1docnfC.er.odryla hUr:lL13 n."'a1gu""'poI-Jbln eo.np"nen'co. El dicnlc (nrvcl Il ~ pnnc'{IlIh"oClltCre..I"","llO.micnlra,qucclscr .i: . (n,vcl ~lesJ'ri'lCil,"ln'cnICreSIX"'sablcde mni"ra' Se utilizan diagramas por todo el libro para clarificar y ampliar los conceptos. SalMna Una eolelcm ",dearehi vo "",nu,1l con los que to.xlos nosolros esl:uno< familianzOOos. Por: ejemplo. puk c~ un areh,vo m:mual cnun;lQq:an7.acinpQr.lalbcrga.-lodala~nc'aclucrnacintc:rna~lilIivaaunproyttlo.aunpro. dueto. a u larc.a. a un el......, o a "" cmplc3do. Nonn;dlll('nu:. uislm mucho!. de dicbos an:tli,-os. los cv.a. 1csC$nc ctlqUCIaryalmaccnar ...."ollr:OCe- siW'l1Of,esallD3lCCnarlo5oClllI3lCrIos.Sincmbarxo.Jossi$lL-masmanuaJesdearrlu>'OdejandeliCr~nlrsc-' dotenc:mosqueestablcccrrcfef'Cllciaor;~opn:a:sarlamfonnaci(lnCOOll"""''''lo6documcnoos.Por: eJCOllplo.UDlIagenciainmoblharialIpicapodadisp;lnerde arduvo..".,.sopancadaiNnucblcquedcscc vcnOe.-o iw. pan cada po:ucial comJ'W1lCb o i'"l"ihno y pu;Il cada mocmbro de su penonaI. P1CD5Cen eleoormeesfPCIIDq""f>Crequcnapal1lrcspondcrala~"guimtcscuo:s.1OnC$ .Qut vi~iccndas de 1= domutoriO$ hay disponibles para la 'Cnt.:Ique .engan jan:lin y ga"'Je1 ".Qu araJ1amcmQ; e.iSle~ para alquilar. mel101 de 5 km del ccmro de la eiuda.d? eu"1 es el precio medjo de alquiler Ix"a un pif'Oll,blcs.loquchattquebfC.Slll tadosCalllDllCbonlUe.lrsdetalJul . I'OI"OlroIado.>.IaJlCf'dcaly""debccamt>tarsc.Lapc11iOllaqucrenc""e1 l1On.:u1Opuc.dc lCIlC1la O(lCin de m.pondI:r 'S,' o 'No' aesta cuc.un. o puede d~1c I~ O(lCi6n de ck- gorcmrc:un3..L'QIOOporc;:mploMuyde'lCuerdo. OcllCucrdo. 'No lcngdaqllC' 'ICOICla cafcgor;~ dc ayudalllC" (A>S'lilanli). En la J'-igura 10.2 lr. un ejc"'pIo de la J'rimcca pgina de un inforrnrdrmrlcsc iooocan 100las, p>n..Ui~lodeh."hn .; (IaCOf11Jlllladon). Iktofl ..(el SGlm.cl-llSlMnJ.O(llif",ad" por lDS (lnlcgruc Dau Stre). ambo::.cnNoelenroq""dctralamienlodelnsdallladopla~lUp""siSl:ema.,ha.~cllarchi- vo< Jld>qucl".. la, p,-;ne,p~lcscar:CJen'Micasdcl ~nrnqlle dc basedc dalo,; y MlllprclMCOllla 1cnicu basa da cu archivos. 1.1. p,por~"'''~euMroeJC'''plosdesi'ICm"sdcba$ecemolO:relac;'-""'''ell!rc~r lb bphquccll'X'l'S: I~) ~m,uSlr3doo-dclosd:u (b ad,.nnislt3dordeb.bawdedaoos (e,OOtiIadorIi_dcb.basedeLblos (dlOOcadorfl$Ocodela'-edcdalco; le) dcsarroll~dc.p~~ (O u>U3I'>Or:o ,dacoonal. y .jecu.", die . ro;U.gia """" e~lr.lC:f los d:Yll$llOl- Poc$IOl/I'C hay mucha.. lrllnsform:lCioncs Cllha de .Iu') lIi,"n. ~iadc cdigoy.enonn. U;. pnmaas l=f:lr(:S pucdcnoal'l-"'""" IICmp:>dccompiu~bcurist;cassciDclu)"."la=l'-laci6ndcla.t,IIri6n.la";lilXi6ndcla:l.'iOC""'- ,odaddc b.opIClOIICSbonaoias 1"""'.--conJenulot< -.boo,~,x. modoqucaqudbquc""I3II1ao >elccnleopcr:toCit.O""t6mJCa.lr ."".~cn~ren ""dt1ta""'",.ulladoo.deu"'Q('Crac'6n."">olI,,,",abopcraclll .g"'cnl nCTC3lu n:I~OII'lcmpo- W~N>_('~w /wt .t""'01o~~"I" =r~::!:=~P?~~'tI~ bi..:..:. ~ ~~~~!i.:r~~_.ll"""1. . .-....~ ......,..-..-.......~ .......... _. Un resumen al final de cada captulo, donde se cubren los principales conceptos presentados. Un sitio web de acompaamiento en www. booksites.net/connbegg. En la pgina siguiente se proporcionan detalles adicionales sobre su contenido. 40. XLVIII Caractersticas del libro Cklpter 1- RebtionallVloflel Tutora} Whal kind of dala model is lhe relatonal. model? (11.) Explain lhe followingtelIllSinlhecomextoflherelalionaldrdalTlOdel Rtla.tion Attnbute 00""'" T"p" Degret Cardinality (b) UsetheSuwliers-Pattsdalabt.Setoprovideexamp]sofe&:h(&eeAppendix loflhislulorisl) (a) Explain lhe followin(; lenns in lhe COBen ofthe relatioMl. dala model CandidaleKey PrinwyKey ForeignKey (b) UselheSuppliers-PMlsdalahasetoprovidee=plesofeach Tutoriales sobre captulos seleccionados Aet;"!l.' PI-l Practise using the Microsoft Access help facilities. Search [(Ir help or ask questions 00 the following tapies: creatng tables, data types, primal)' key, referential integrity, data valdation and the web publsher wizard. OneIJU! a Dntabase A Microsoft Access database is a collecton of objects, not just a single table of data. Oue dalabase fiJe contains the tables as well as queries, forros, reports and other objects that he!p you use the information in the database When you f1rst oad Access, the Microsoft Access dia!og box is displayed, as shown in Figure Pl~1 Manual de laboratorio para Access 41. Parte Introduccin Captulo 1 Introduccin a las bases de datos Captulo 2 El entorno de la base de datos 42. Introduccin a las bases de datos Objetivos del captulo: En este captulo aprender: Algunos usos comunes de los sstemas de bases de datos. Las caracterstcas de los sistemas basados en archivos. Los problemas asociados a la tcnica basada en archivo. El significado del trmino 'base de datos'. El significado del trmino 'sistema de gestin de bases de datos' (SGBD). Las funciones tpicas de un SGBD. Los componentes principales del entorno SGBD. El personal implicado en el entorno SGBD. La historia del desarrollo de los SGBD. Las ventajas y desventajas de los SGBD. La historia de la investigacin en sistemas de bases de datos es de una excepcional productividad y ha teni- do un impacto econmico extraordinario. Con apenas 20 aos de antiguedad como campo de investiga- cin cientfica, la investigacin en bases de datos ha permitido el surgimiento de una industria de los ser- vicios de informacin que slo en los Estados Unidos factura unos 10.000 millones de dlares por ao. Los diversos logros en la investigacin relativa a las bases de datos han permitido realizar avances funda- mentales en los sistemas de comunicaciones, transporte y logstica, gestin financiera, sistemas de gestin del conocimiento, accesibilidad a la literatura tcnica y una mirada de otras aplicaciones tanto civiles como militares. Tambin han servido como base para permitir un progreso considerable en diversos cam- pos bsicos de la ciencia, desde la informtica a la biologa. (Silberschatz el al., 1990, 1996) Esta cita est tomada de una conferencia sobre sistemas de bases de datos celebrada a principios de la dcada de 1990 y que tuvo su continuacin en otra conferencia posterior en 1996, y nos sirve como moti- vacin para el estudio del tema de este libro: los sistemas de bases de datos. Desde la celebracin de estas conferencias, la importancia de los sistemas de bases de datos se ha incrementado todava ms, con significa- tivos desarrollos en lo que respecta a la capacidad del hardware, a la funcionalidad de ste y a las comuni- caciones, incluyendo la aparicin de Internet, del comercio electrnico, de los sistemas de inteligencia empresarial, de las comunicaciones mviles y de la informtica reticular. Los sistemas de bases de datos son, posiblemente, el desarrollo ms importante en el campo de la ingeniera del software y las bases de datos for- man ahora el marco de trabajo fundamental de los sistemas de formacin, habiendo cambiado de forma sig- 43. 4 Sistemas de bases de datos nificativa la manera en que muchas organizaciones operan. La tecnologa de bases de datos constituye un rea de enorme inters en la que trabaja y, desde su aparicin, ha actuado de catalizador para muchos desarrollos importantes en ingeniera del software. La conferencia a la que aludimos puso de manifiesto que los desarro- llos en sistemas de bases de datos no haban terminado, al contrario de lo que algunas personas opinaban. De hecho, parafraseando una antigua frase pronunciada por un poltico, puede que slo estemos al final del prin- cipio de los desarrollos. Las aplicaciones que ser preciso soportar en el futuro tienen un grado de compleji- dad tanto ms alto que nos veremos abocados a rehacer muchos de los algoritmo s que actualmente se utili- zan, como por ejemplo los algoritmo s para el almacenamiento y acceso a archivos y para la optimizacin de consultas. El desarrollo de estos algoritmo s originales ha tenido significativas ramificaciones en la ingeniera del software y el desarrollo de nuevos algoritmo s tendr, sin ninguna duda, efectos similares. En este primer captulo vamos a proporcionar una introduccin a los sistemas de bases de datos. Estructura del captulo En la Seccin 1.1 vamos a examinar algunas de las aplicaciones de los sistemas de bases de datos que pode- mos encontrar en nuestra vida cotidiana, pero de las que quiz no seamos conscientes. En las Secciones 1.2 y 1.3 compararemos la antigua tcnica basada en archivos para la informatizacin de sistemas de archivos manuales con la tcnica moderna, mucho ms adecuada, que se apoya en las bases de datos. En la Seccin lA hablaremos de los cuatro tipos de papeles que juegan las personas en un entorno de bases de datos, es decir: administradores de datos y de bases de datos, diseadores de bases de datos, desarrolladores de aplicaciones y usuarios finales. En la Seccin 1.5 proporcionamos una breve historia de los sistemas de bases de datos, la cual est seguida, en la Seccin 1.6, por un anlisis de las ventajas y desventajas de los sistemas de bases de datos. A lo largo del libro, ilustraremos los conceptos utilizando un caso de estudio basado en una empresa fic- ticia de gestin inmobiliaria denominada DreamHome. Proporcionamos una descripcin detallada de este caso de estudio en la Seccin 1004 Y en el Apndice A. En el Apndice B se presentan otros casos de estudio que pretenden proporcionar ms proyectos de carcter realista con los que pueda practica el lector. Al final de muchos captulos se incluyen ejercicios basados en estos casos de estudio. 1.1 Introduccin Las bases de datos forman hoy en da una parte integrante de nuestra vida cotidiana, hasta tal punto que muchas veces no somos conscientes de estar usando una base de datos. Para comenzar nuestras explicaciones sobre las bases de datos, vamos a examinar en esta seccin algunas explicaciones de este tipo de sistemas. En lo que res- pecta a las explicaciones siguientes, consideraremos que una base de datos es una coleccin de datos relacio- nados y que el Sistema de Gestin de Bases de Datos (SGBD) es el software que gestiona y controla el acce- so a la base de datos. Una aplicacin de bases de datos es simplemente un programa que interacta con la base de datos en algn punto de su ejecucin. Tambin utilizaremos el trmino ms inclusivo sistema de base de datos para referimos a una coleccin de programas de aplicacin que interactan con la base de datos, junto con el SQL y la propia base de datos. En la Seccin 1.3 proporcionaremos definiciones ms precisas. Las compras en el supermercado Cuando se compra cualquier tipo de producto en el supermercado local, lo ms probable es que se est acce- diendo a una base de datos. El cajero utiliza un lector de cdigos de barras para introducir en el sistema cada una de las compras. Este proceso de introduccin de datos est enlazado con un programa de aplicacin que utiliza el cdigo de barras para averiguar el precio del elemento, que se extrae de una base de datos de pro- ductos. El programa reduce a continuacin el nmero de elementos existentes y muestra el precio en la pan- talla del cajero. Si el nmero de productos existentes en almacn cae por debajo de un umbral especificado, el sistema de bases de datos puede emitir automticamente un pedido para tener ms existencias de dicho pro- ducto. Si un cliente telefonea al supermercado, un asistente puede comprobar si un cierto producto est dis- 44. Captulo 1 Introduccin a las basesde datos 5 ponible en almacn ejecutando el programa de aplicacin que determina la disponibilidad a partir de la base de datos. Compras utilizando una tarjeta de crdito Cuando se compran productos utilizando la tarjeta de crdito, el cajero comprueba normalmente si el cliente tiene disponible el crdito suficiente como para realizar la compra. Esta comprobacin puede llevarse a cabo telefnicamente o realizarse automticamente mediante un lector de tarjetas conectado a un sistema inform- tico. En cualquiera de los dos casos, en algn sitio existe una base de datos que contiene informacin acerca de las compras que el cliente ha realizado con su tarjeta de crdito. Para comprobar el nivel de crdito exis- tente, hay un programa de aplicacin que utiliza el nmero de la tarjeta de crdito para comprobar el precio de los productos que se pretende adquirir, aadindolo al total de las compras que se hayan realizado este mes y luego comprobando si el nuevo total es inferior al lmite de crdito predefinido. Una vez confirmada la com- pra, se aaden los detalles de la misma a esa base de datos. El programa de aplicacin tambin accede a la base de datos para comprobar que la tarjeta de crdito no se encuentre incluida en la lista de tarjetas robadas o perdidas, antes de realizar la compra. Hay otros programas de aplicacin que se encargan de enviar resme- nes mensuales a cada propietario de tarjeta de crdito y de cancelar las cuentas pendientes cuando se reciben los pagos. Reserva de un programa de vacaciones en una agencia de viajes Cuando se pide informacin acerca de un programa de vacaciones, la agencia de viajes puede acceder a diver- sas bases de datos que contienen los detalles sobre dichos programas y sobre los vuelos existentes. Cuando se reserva un cierto programa, el sistema de base de datos tiene que realizar todas las reservas necesarias. En este caso, el sistema debe garantizar que no haya dos agentes distintos que reserven el mismo programa de vaca- ciones y asegurarse de que no se vendan ms billetes de avin que los asientos disponibles en un vuelo. Por ejemplo, si slo queda un asiento en un vuelo de Londres a Nueva York y dos agentes tratan de reservar ese ltimo asiento al mismo tiempo, el sistema debe detectar dicha situacin, permitiendo que una de las reservas se confirme e informando al otro agente de que ya no queda ningn asiento disponible. La agencia de viajes puede disponer tambin de otra base de datos, usualmente separada, para el tema de facturacin. Utilizacin de la biblioteca local Cualquier biblioteca local dispone, probablemente, de una base de datos que contiene los detalles de los libros disponibles en la biblioteca, la informacin sobre los lectores, sobre las reservas, etc. Existir un ndice infor- matizado que permita a los lectores encontrar un libro a partir de su ttulo, de sus autores o de su tema. El sis- tema de bases de datos se encarga de gestionar las reservas para permitir que un lector reserve un libro y de informarle por correo cuando ste est disponible. El sistema tambin enva recordatorios a las personas jluetienen un libro prestado cuando stas no lo devuelven en la fecha prevista. Normalmente, el sistema diSpon- dr de un lector de cdigos de barras similar al que se utiliza en los supe_rmercados, cdigos de barras~ue se emplean para controlar los libros que entran y salen de la biblioteca. Contratacin de un seguro Cada vez que se quiere contratar un seguro, ya sea un seguro pers-rj.c _.:: ."(Jq(1l O"Ei("l Ul."o "O-g'"""'t._. oN(1l "O.;:l _."'ti(1l $P..O;:l p:'"""'t_ .~.~ Ul8o.. 0.."0(1l (1)~S" ("l_ ?)~ro 8."Ul r;;'~b 8 u-rpOtte psr Je las restr 3.4 V En la arqui aa como la palabra 'vit 'isuario ve, cho propio, rn modelo .as relacion ,a Seccin SQL. 3.4.1 Las relacio ciones base Relacit Podem Vista Una vir relacin ba ido en qu del sistem Las operac la vista se base que a lntegridad referencial Si hay una clave externa en una relacin, el valor de la clave externa debe corres- ponderse con el valor de una clave candidata de alguna tupla en su relacin de origen o el valor de la clave externa debe ser completamente nulo. Por ejemplo, branchNo en la relacin Staff es una clave externa que apunta al atributo , branchNo de la rela- cin de origen, Branch. No debe ser posible crear un registro de empleado con nmero de sucursal 8025, por 112. atribr-rto :s) si se resultar rnodelo aluada, . qulere luada o Jd con- onside- lo strfi- 't1rente, r5 ). pode- qlrema Restricciones generales Captulo 3 El modelo relacional 75 :lemplo, a menos que ya exista un registro para el nmero de sucursal 8025 en la relacin Branch. Sin embar- _:o. s que debemos poder crear un nuevo registro de empleado con un nmero de sucursal nulo, para contem- :jar la situacin en la que un nuevo empleado ingresa en la compaa pero todava no se le ha asignado a una ,*cursal concreta. 3.3.4 Restricciones generales Son reglas adicionales especificadas por los usuarios o administradores de la base de datos que definen o restringen algn aspecto de la organizacin. lanera 'a per- rne Lln lo que lacin valor a for- sertar r1o. r qu tarn- aclo- con- ,Of el rulos ; una 'esta oe- de ela- por Tambin es posible que los usuarios especifiquen restricciones adicionales que los datos deben satisfacer. Por ejemplo, si se ha impuesto un lmite superior de 20 al nmero de empleados que pueden trabajar en una sucursal, el usuario debe poder ser capaz de especificar esta restriccin general y el SGBD deber imponerla. En este caso, no debera ser posible aadir un nuevo empleado a una sucursal concreta en la relacin Staff si :1 nmero de empleados actualmente asignados a dicha sucursal es de 20. Desafortunadamente, el nivel de soporte para las restricciones generales vara entre unos sistemas y otros. Hablaremos de la implementacin Je las restricciones de integridad relacionales en los Captulos 6 y 17. 3.4 Vistas En la arquitectura ANSI-SPARC en tres niveles presentada en el Captulo 2, hemos descrito una vista exter- :ra como la estructura de la base de datos que se muestra a un usuario concreto. En el modelo relacional, la palabra 'vista' tiene un sig:rificado ligeramente distinto. En lugar de ser el modelo externo completo que un .suario ve, una vista es una relacin virtual o derivada: una relacin que no existe necesariamente por dere- ;ho propio, sino que puede que sea derivada dinmicamente a partir de una o ms relaciones base. Por tanto, :n modelo externo puede estar compuesto tanto por relaciones base (nivel conceptual) y vistas derivadas de -s relaciones base. En esta seccin, vamos a explicar brevemente las vistas en los esquemas relacionales. En - Seccin 6.4 examinaremos las vistas con ms detalle y mostraremos cmo se las puede crear y utilizar en SQL. 3.4.1 Terminologa - as relaciones con las que hemos estado tratando hasta ahora en el captulo se conocen con el nombre de rela- :iones base. Relacin base Una relacin nominada correspondiente a una entidad del esquema conceptual y cuyas tuplas estn almacenadas fsicamente en una base de datos. Podemos definir las vistas en trminos de las relaciones base: Vista El resultado dinmico de una o ms operaciones relacionales que operan sobre las relaciones base para producir otra relacin. Una vista es una relacin vitual que no tiene por qu existir necesariamente en la base de datos, sino que puede producirse cuando se solicite por parte de un usuario concreto, generndosela en el momento de la solicitud. Una vista es una relacin que al usuario le parece que existe, que puede manipularse como si fuera una ::lacin base, pero que no necesariamente tiene que existir en el espacio de almacenamiento en el mismo sen- ::Jo en que las relaciones base existen (aunque la definicin de la vista s que est almacenada en el catlogo :e1 sistema). Los contenidos de la vista se definen mediante una consulta sobre una o ms relaciones base. - as operaciones sobre las vistas se traducen automticamente en operaciones sobre las relaciones de las que - r'ista se deriva. Las vistas son dinmicas lo que significa que los cambios que se hagan en las relaciones rse que afecten a la vista se reflejan inmediatamente en sta. Cuando los usuarios realizan cambios autori- 113. 76 Sistemas de bases de datos zados en la vista, estos cambios se efectuan sobre las relaciones subyacentes. En esta seccin, vamos a des- cribir el propsito de las vistas y a examinar brevemente las relaciones que se aplican a las actualizaciones hechas mediante vistas. Sin embargo, diferiremos las explicaciones sobre el modo en que se definen y proce- san las vistas hasta la Seccin 6.4. 3.4.2 Propsito de las vistas El mecanismo de las vistas resulta deseable por diversas razones: I Proporciona un mecanismo de seguridad potente y flexible al ocultar pafes de la base de datos a ojos de ciertos usuarios. Los usuarios no son conscientes de la existencia de ningn atributo o tupla que no estn incluidos en la vista. I Permite a los usuarios acceder a los datos en una forma personalizada para sus necesidades, de modo que unos mismos datos pueden ser vistos de forma distinta por diferentes usuarios simultneamente. r Puede simplificar las operaciones complejas sobre las relaciones base. Por ejemplo, si se define una vista como combinacin de dos relaciones (vasela Seccin 4.1) los usuarios podnn realizar opera- ciones ms simples sobre la vista, que sern traducidas por el SGBD a una serie de operaciones equi- valentes sobre la combinacin de relaciones. Las vistas deben disearse para soportar el modelo externo que resulte familiar al usuario. Por ejemplo: I Un usuario puede necesitar tuplas de Branch que contengan los nombres de los gerentes, as como el resto de los atributos contenidos en Branch. Esta vista se crea combinando la relacin Branch con una forma restringida de la relacin aff en la que el puesto ocupado por el empleado sea 'Manager'. I Algunos empleados podran ver las tuplas de Staff sin el atributo salary. I Los atributos pueden ser renombrados, o tambin puede cambiarse el orden de los atributos. Por ejem- plo, el usuario acostumbrado a denominar al usuario branchNo de las sucursales mediante el nombre completo Branch Number podra ver dicho encabezado de columna, ms explcito. I Algunos empleados slo deben ver los registos de inmuebles para aquellos inmuebles que ellos estn gestionando. Aunque todos estos ejemplos ilustran que las listas proporcionan una independencia lgica de los datos (vase la Seccin 2.1.5),las vistas permiten un tipo ms significativo de independencia lgica de los datos que soporta lareorganrzacin del esquema conceptual. Por ejemplo, si se aade un nuevo atributo a una rela- cin, los usuarios existentes pueden no ser conscientes de su existencia si sus stas estn definidas para excluirlo. Si se reordena o se divide una relacin existente, podemos definir una vista pam que los usuarios puedan continuar tabajando con sus vistas originales. Veremos un ejemplo de esto en la Seccin 6.4.7, cuar- do hablemos de las ventajas y desventajas de las vistas con mayor detalle. 3.4.3 Actualizacin de las vistas Todas las actualizaciones efectuadas en una relacin base deben verse inmediatamente reflejadas en todas las stas que hagan referencia a esa relacin base. De forma similar, si se actualiza una vista, la relacin base subyacente debe reflejar el cambio. Sin embargo, esten restricciones en los tipos de modificaciones que pue- den efectuarse mediante vistas. A continuacin resumimos las condiciones que la mayora de los sistemas uti- lizan para determinar si est permitida una acttnlizacinmediante una vista: I Esin permitidas las actualizaciones mediante una vista que est definida utilizando una consulta sim- ple en la que est involucrada una nica relacin base y que contenga la clave principal o una clave candidata de la relacin base. I No se permiten las actualizaciones mediante vistas que impliquen multiples relaciones base. I No se permiten las actualizaciones mediante vistas que impliquen operaciones de agregacin o de agrupacin. Se han parcial.mel mica de la ' Resur I 'Los sisl cesami( prendid ventas ( enelm I Una rel de base atributc elige dr I Las reli individ La estr la intel extensj I Las prt co, los el orde I El gra Una rt una re I Una sl relacir candi clave otra rt I Unv aPlica I Lain clave colT9l pletat requ( nan r I Una de la segu zabk Cuesti 3.1. I ( 114. )s a des- zaclones y proce- )s a oJos I que no le modo rnente. ne una r opera- es equl- :rnplo: ;omo el con una 3r'. )r eJem- nombre rs estn ,s datos rs datos Lra rela- as para suanos , cuan- das las n base. re pLre- as utr- a slm- clave ode I I I I I Captulo 3 E! modelo relacional 77 Se han definido clases de vistas que son tericamente no actualizables, tericamente actualizables y parcialmente actualizables. El lector interesado puede encontrar en Furtado y Casanova (1985) una panor- mica de la acflualizacin de vistas relacionales. Resumen del captulo Los sistemas de gestin de bases de datos relacionales (SGBDR) se han convertido en el software de pro- cesamiento de datos dominante hoy en da, con un volumen estimado de ventas de nuevas licencias com- prendido entre 6.000 y 10.000 millones de dlares por ao (25.000 millones de dlares si inclmos las ventas de herramientas). Este software representa la segunda generacin de sistemas SGBD y est basado en el modelo de datos relacional propuesto por E. F. Codd. Una relacin matemtica es un subconjunto del producto cartesiano de dos o ms conjuntos. En trminos de bases de datos, una relacin es cualquier subconjunto del producto cartesiano de los dominios de los atributos. Una relacin se escribe normalmente como un conjunto de n-tuplas, en el que cada elemento se elige del dominio apropiado. I Las relaciones se representan fisicamente mediante tablas, en las que las filas se corresponden con tuplas individuales y las columnas, con atributos. I La estructura de la relacin, con las especificaciones de los dominios y otras restricciones, forma parte de la intensin de la base de datos, mientras que la relacin con todas sus tuplas representa una instancia o extensin de la base de datos. Las propiedades de las relaciones de bases de datos son: cada celda contiene exactamente un valor atmi- co, los nombres de los atributos son exclusivos, los valores de los atributos provienen del mismo dominio, el orden de los atributos es indiferente, el orden de las tuplas es indiferente y no existen tuplas duplicadas. El grado de una relacin es el nmero de atributos, mientras que la cardinalidad es el nmero de tuplas. Una relacin unaria tiene un atributo; una relacin binaria tiene dos, una relacin ternaria tiene tres y una relacin n-ariatiene n atributos. Una superclave es un atributo, o conjunto de atributos, que identiflrca de forma unvoca las teclas de una relacin, mientras que una clave candidata es una superclave mnima. Una clave principal es la clave candidata elegida para identificar las tuplas. Una relacin debe siempre tener una clave principal. Una clave externa es un atributo, o conjunto de atributos, dentro de una relacin que son la clave candidata de otra relacin. Un valor nulo representa un valor para un atributo que es desconocido en el momento actual o que no es aplicable para esta tupla concreta. La integridad de entidad es una restriccin que indica que en una relacin base ningn atributo de una clave principal puede ser nulo. La integridad referencial requiere que los valores de clave externa se correspondan con el valor de una clave candidata en alguna tupla de la relacin de origen, o que sean com- pletamente nulos. Adems de la integridad relacional, las restricciones de integridad incluyen los datos requeridos, los dominios y las restricciones de multiplicidad; otras restricciones de integridad se denomi- nan restricciones generales. Una vista en el modelo relacional es una relacin virtual o derivada que se crea dinmicamente a partir de la relacin o relaciones base subyacentes cuando es necesario. Las vistas proporcionan mecanismos de seguridad y permiten al diseador personalizar el modelo de los usuarios. No todas las vistas son actuali- zables. Cuestiones de repaso 3.1. Explique cada uno de los siguientes conceptos en el modelo de datos relacional: (a) relacin I I I 115. 78 Sistemas de bases de datos (b) atributo (c) dominio (d) tupla (e) intensin y extensin (f) grado y cardinalidad. 3.2. Describa la relacin entre relaciones matemticas y relaciones en el modelo de datos relacional. 3.3. Describa las diferencias entre una relacin y un esquema de relacin. Qu es un esquema de base de datos relacional? 3.4. Explique las propiedades de una relacin. 3.5. Explique las diferencias entre las claves candidatas y la clave principal de una relacin. Explique el concepto de clave extema. Cmo se relacionan las claves extemas de una relacin con las claves can- didatas? Proporcione ejemplos para ilustrar su respuesta. 3.6. Defina las dos principales reglas de integridad para el modelo relacional. Explique por qu es desea- ble imponer estas reglas. 3.7. Qu es una vista? Explique la diferencia entre una vista y una elacin base. Ejercicios Las siguientes tablas forman parte de una base de datos almacenada en un SGBD relaciona: Hotel (hotelNo, hotelName, city) Room (OOpNS, hotelNo, type, prce) Booking (hotelNo, guestNo, dateFrom, dateTo, roomNo. Guest (SUCslNg,guestName,guestAddress) donde Hotel contiene los detalles de un hotel y hotelNo (nrmero del hotel) es la clave principal; Room contiene los detalles de las habitaciones para cada hotel y (roomNo, hotelNo) forma la clave prin- cipal; Booking contiene los detalles de las reservas y (hotetNo, guestNo, dateFrom) tbrma la clave principal; Guest contiene los detalles de los huspedes y guestNo es la clave principal. 3.8. ldentifrque las claves extemas en est esquema. Explique cmo se aplican las reglas de integridad de entidad e integridad referencial a estas relaciones. 3.9 . Escriba algunas tablas de ejemplo para estas relaciones que cumplan con las reglas de integridad rela- cionales. Sugiera algunas restricciones de carcter empresarial que resultaran apropiadas para este esquerna. 3.10. Analice los SGBDR que est utilizando actualmente. Determine el grado de soporte que proporcione el sistema para las claves principales, claves altemativas, claves externas, reglas de integridad relacio- nal y vistas. 3.11. Implemente el esquema anterior en uno de los SGBDR que utilice actualmente. lmplemente, siempre que sea posible, las claves principales, alternativas y extemas y las apropiadas restricciones de integri- dad relacional. 0bje Er I I I I I - t5 _Jn0 r-3nl 116. ral. r base de rlique el ves can- s desea- ie prln- ?al; dad de d rela- ra este rcione :lacio- empre fegri- Algebra relacional y clculo relacional Obietivos del captulo: En este captulo aprender: I El significado del termino 'completud relacional'. I Cmo construir consultas en lgebra relacional. I Cmo construir consultas en el clculo relacional de tuplas. I Crno construir consultas en el clculo relacional de dominios. I Las categoras de lenguajes de manipulacin de datos (DML, Data Manipulation Language) relacio- nales. En el captulo anterior hemos introducido los principales componentes estructurales del modelo relacional. Como se explica en la Seccin 2.3, otra parte muy importante de un modelo de datos es el mecanismo de manipulacin , o lenguaje de consulta, que permite extraer y actualizar los datos subyacentes. En este captu- lo, vamos a examinar los lenguajes de consulta asociados con el modelo relacional. En particular, vamos a concentramos en el lgebra relacional y en el clculo relacional, segn fueron definidos por Codd (1971) como base para los lenguajes relacionales. De un modo informal, podemos describir el lgebra relacional como un lenguaje procedimental (de alto nivel). Puede utilizarse para decir al SGBD cmo construir una nueva relacin a partir de una o ms relaciones existentes ya en la base de datos. Tambin de una manera infor- mal, se puede describir el clculo relacional como un lenguaje no procedimental. Puede utilizarse para formu- lar la definicin de una relacin en trminos de una o ms relaciones de base de datos. Sin embargo, formal- mente, el lgebra relacional y el clculo relacional son equivalentes entre s: para toda expresin del lgebra, existe una expresin equivalente en el clculo (y viceversa). Tanto el lgebra como el clculo son lenguajes formales, que no resultan amigables para el usuario. Ambos se han utilizado como base para otros lenguajes de manipulacin de datos (DML, Data Manipulation Language) de ms alto nivel para bases de datos relaciones. Si resulta de inters su estudio es porque ilustran las operaciones bsicas requeridas en cualquier DML y porque sirven como estndar de comparacin para otros lenguajes relacionales. El clculo relacional se utiliza para medir la potencia selectiva de los lenguajes relacionales. Un lenguaje que pueda usarse para producir cualquier relacin que se pueda obtener mediante el clculo relacional se denomina relacionalmente completo. La mayora de los lenguajes de consulta relacionales son relacional- mente completos, aunque tienen mayor potencia expresiva que el lgebra relacional o que el clculo relacio- ,:Captulo 117. I 80 Sistemas de bases de datos nal, debido a que incluyen operaciones adicionales como funciones de clculo, funciones de totalizacin y funciones de ordenacin. Estructura del captulo En Ia Seccin 4. I vamos a examinar el lgebra relacional y en la Seccin 4.2 examinaremos dos formas del clculo relacional: el clculo relacional de tuplas y el clculo relacional de dominios. En la Seccin 4.3 se ana- lizan brevernente algunos otros lenguajes relacionales. Utiiizaremos la instancia de base de datos de alquile- res de DreamHome que se muestra en la Figura 3.3 para ilustrar las operaciones. En los Captulos 5 y 6 exa- minaremos SQL (Stmctured Query Language, lenguaje estructurado de consulta), el lenguaje estndar formal y de.facto para los SGBD, que tiene estructuras basadas en el clculo relacional de tuplas. En el Captulo 7 se examina QBE (Query-By-Examp1e, consulta mediante ejemplo), otro lenguaje de consulta visual mr"ry popu- lar para sistemas SGBD, que se basa parcialmente en el clculo relacional de dominios. 4.1 El lgebra relacional El lgebra relacional es un lenguaje terico con operaciones que se aplican a Lna o ms relaciones, con el fin de definir otra relacin sin modihcar las relaciones originales. Por tanto, tanto los operandos como los resul- tados son relaciones, de manera que la salida de una operacin puede utilizarse como entrada de otra ope- racin. Esto permite anidar las expresiones en e1 lgebra relacional, de la misma forma que podemos anidar operaciones aritmticas. Esta propiedad se denomina cierre: las relaciones exhiben la propiedad de cierre en el lgebra relacional, de la misma forma que los nurneros exhiben la propiedad de cierre con respecto a las operaciones ari tmticas. El lgebra relacional es un lenguaje de rnanipulacin de una relacin (o conjunto) cada vez, en la que todas las tr.rplas, posiblemente obtenidas a travs de varias relaciones, se rnanifiestan mediante una instruccin, sin que existan bucles. Existen diversas variantes sintcticas para los comandos del lgebra relacional y 1o que nosotros haremos en el texto es utilizar una notacin simblica comirn para los comandos y presentar stos de manera informal. Ei lector interesado puede consultar el libro de Uilman (1988), donde podr encontrar un tratarmiento ms formal. Existen mirltipies variaciones de las operaciones incluidas en el lgebra relacional. Codd (1972a) puso ori- ginalmente ocho operaciones, pero despus se han propuesto muchas otras. Las cinco operaciones fundamen- tales en el lgebra relacional, seleccin, proyeccin, producto cartesiano, unin y diferencia de conjuntos, penniten realizar la mayora de las operaciones de extraccin de datos que nos interesan. Adems, estn def-r- nidas las operaciones de combinacin, interseccin y divisin, que pueden expresarse en tnninos de las cinco operaciones bsicas. En la Figura 4.1 se ilustra la funcin de cada una de estas operaciones. Las operaciones de seleccin y proyeccin son operaciones unarias, ya que operan sobre una rnica rela- cin. Las otras operaciones se aplican a parejas de relaciones y se denonrinan, por tanto, operaciones bina- rias. En las siguientes definiciones, sean R y S dos relaciones definidas sobre los atributos A: (a,, 2, . . ., N) y B : (b,, b2. . . .. br). respectivamente. 4.1.1 Operaciones unaras Comenzamos nuestro anlisis del lgebra relacional examinando las dos operaciones unarias: seleccin y pro- yeccin. Seleccin (o Restriccin) La operacin de seleccin se aplica a una nica relacin R y define otra relacin que contiene nicamente aquellas tuplas de R que satisfacen la condicin (predica- do) especificada. r;Ent (r0."0,"","(R) 118. lc10n v "r *, ;e ana- lquile- 6 exa- brmal oTse popu- el fin esul- ope- ridar :e en a las rdas , sin que sde :un ori- en- tos, :fi- lCO ^ la- r*) T(a) Seleccin RUS [] !(d) Unin R El-*"1 [) Divisin T(b) Proyeccin RNS Ett E(e) lnterseccin Captulo 4 lgebra relacional y clculo relaconal 81 Producto cartesiano R-S PxQ [:l ] H PQ EH '1. {{= 7 :-:" U [_GTJ ffil,l,l,l l,l,l'l(i) Combinacin externa izquierda f; H E_l (f) Diferencia de conjuntos U T> 10000. La operacin de seleccin define una relacin que contiene nicamente aquellas tuplas de Staff con un salario superior a 10.000 eu:os. Combinacin natural R+S t--l lL_l (h) Semicombinacin VW l;t E A B a a b b 1 2 1 2 1 T>_ UB 119. AZ Sistemas de bases de datos El resultado de esta operacin se muestra en 1a Figura 4.2. Pueden generarse predicados ms comple- jos r-rtilizando los operadores lgicos A (AND), V (OR) y - (NOT). staffNo fName lName position sex DOB salary branchNo SL2 I SG37 SC 14 SG5 lohn Ann David Susan White Beech F'ord Brand Manager Assistant Supervisor Manager M F lvl F 1-Oct-45 10-Nov-60 24-Mar-58 3-lun-40 30000 r2000 r8000 24000 B005 8003 B003 u00l Figura 4.2 Seleccin de salarios > 10000 en la relacn Staff. Proyeccin ["r, ,""(R) La operacin de proyeccin se apllca a una nica relacin R y define otra relacin que contiene un subconjunto vertical de R, extrayendo los valores de los atributos especfcados y elminando los duplicados. t-I I Ejemplo 4.2 Operacin de proyeccn Generctr una lisla de salarios para todo el personal, mostrando solatnenfe los detalles re/'eridos a los atributos staffNo, fName, lName y salary. llsu'r.o, rr..ame, ^am.. ""r"ry(Staff ) En este ejemplo, la operacin de proyeccin det-rne una relacin que contiene rnicamente los atribr-rtos designados de Staff; staffNo, fName, lName y salary, en el orden especif,rcado. El resultado de esta opera- cin se muestra en ia Figura 4.3. staffNo fName lName salary SL2 I SG37 SGI4 SA9 SG5 SL4I Iohn Ann David Mary Susau Iulie White Beech Ford Howe Brand Lee 30000 12000 r8000 9000 24000 9000 Figura 4.3. Proyeccin de la relacin Staff sobre los atributos staffNo, fName, lName y salary. J 4.1.2 Operaciones de conjuntos Las operaciones de seleccin y proyeccin extraen informacin de una nica relacin. Sin embargo, existen obviarnente casos en los que nos gustara combinar informacin de diversas relaciones. En el resto de esta sec- cin, vamos a exalrinar las operaciones binarias del lgebra relacional, comenzando con las operaciones de conjuntos de unin, diferencia de conjuntos, interseccin y producto cartesiano. Unin La unin de dos relaciones R y S define una relacin que contiene todas las tuplas R, de S o tanto de R como de S, eliminndose las tuplas duplicadas. R y S deben ser compatibles con respecto a la unin. fL RUS r =:'s _ . :lil - -::r= ::-i,l'i1 , , .,1'n. I=I Eler Et:i, t P;r f lur) JL:pl. :1Ue Difert R- : -. : :Sf :- Iel ', 1- 120. omple- reiacin rtributos :t lo,s rrtos era- .isten I sec- :s de rias )en Captulo + lgebra relacional y clculo relacional 83 >r R y S tienen tuplas 1 y J, respectivamente, su unin se obtiene concatenndolas en una nica relacin con -n mximo de (1 + -/) tuplas. La unin es posible slo si los esquemas de las dos relaciones se corresponden, .i tienen el misro nmero de atributos y cada pareja de atributos correspondientes tiene el mismo dominio. :n otras palabras, las relaciones debe ser compatibles con respecto a la unin. Observe que no se utilizan -is nombres de los atributos al definir la compatibilidad con respecto a la unin. En algunos casos, la opera- ::n de proyeccin puede ulilizarse para hacer que las dos relaciones sean compatibles con respecto a la -nrn. I I Ejemplo 4.3 Operacin de unin Enumerar todas las ciudades en las Ere exista una sucursal o un inmueble en alquiler. lI",u(Branch) u fI",r(PropertyForRent) Para producir relaciones compatibles con respecto a 1a unin, primero utilizamos la operacin de proyeccin para proyectar las reiaciones Branch y PropertyForRent sobre el atributo city, eliminando los duplicados segn sea necesario. A continuacin, utilizamos 1a operacin de unin para combinar estas nuevas relaciones con e1 fin de producir ei resultado que se muestra en la Figura 4.4. Figura 4.4. Unin basada en el atributo city y generada a partir de las relaciones Branch y PropertyForRent. Diferencia de conjuntos R - S La operacin de diferencia de con.juntos define una relacin compuesta por las tuplas que encuentran en la relacin R, pero no en S. R y S deben ser compatibles con respecto a la unin. I I Elemplo 4.4 Operacin de diferencia de conjuntos Enumerar todas las ciudades en las que erista tota sucursctl, pero no haya inmttebles en alquiler. II",r(Branch) lI",,r(PropertyForRent) Corno en e1 ejemplo anterior, generamos relaciones compatibles con respecto a la unin proyectando ias relaciones Branch y PropertyForRent sobre e1 atributo city. A continuacin, utilizamos la operacin de diferencia de conjuntos para combinar estas nuevas relaciones con el fin de producir el resultado que se rnuestra en Ia Figura 4.5. Figura 4.5. Diferencia de conjuntos basada en el atributo city y generada a partir de las relaciones Branch y PropertyForRent. 121. 84 Sistemas de bases de datos lnterseccin RnS La operacin de interseccin define una relacin compuesta por el conjunto de todas las tuplas que existen tanto en R como en s. R y s deben ser compatibles con respecto a la unin. I I Ejemplo 4.5 Operacin de interseccin Ettutnerur toc/as las ciutlucles en las cpre eristo fanfo t.tna sucursal contt tl nteyos yn inmueble en ul- tluiler. fl",r(Branch) n Il",r(PropertyForRent) Como en el ejerriplo anterior, gereralnos sendas relaciones compalibles con respecto a la unin pro- yectando las relaciones Branch y PropertyForRent sobre el atributo city. A continuacin, utilizaruos la pe- racin de intersecciin para combinar estas nuevas relaciones con el fln de proclucir el resultado que se rnLrestrr en la Figura 4.6. Figura 4.6. lnterseccin basada en el atributo city y generada a partir de las relaciones Branch y propertyForRent. Observe que podemos expresar la operacin de interseccin en trminos de la operacin de diferencia de conjuntos: RnS:R-(R-S) Producto cartesiano RXS La operacin de producto cartesiano define una relacin que es la concatenacin de cada tupla de la relacin R con cada tupla de la relacin S. La operacin de producto cartesiano multiplica dos relaciones para definir otra relacin compuesta por todas las posibles parejas de tuplas de las dos relaciones. Por tanto, ii una de las relaciones tiene i tuplas y N atri- butos y la otra tiene -/ tuplas y Matributos, la relacin de producto carlesiano contendr (1 * J) iuplas con (N -f It4) attlbutos. Es posible que las dos relaciones tengan atributos con el mismo nombre. En este caso, se aade como prefijo a los nombres de los atributos el nombre de la relacin, con el frn de mantener Ia urici- dad de los nombres de atributo dentro de una misma relacin. I I Ejemplo 4.6 Operacin producto cartesiano Enumerctr los nombres y comentarios de todos los clientes que hayan visto un inmueble en alquiler Los nombres de los clientes estn almacenados en la relacin Client y los detalles sobre las visitas se conseryan en la relacin Viewing. Para obtener la lista de clientes y los comentarios sobre los inmuebles que han visitado, necesitamos combinar estas dos relaciones: (nclientNo, rlame, trua."(Client)) x (n.rienu,,:o, propenyo, "..*"n,(Viewing)) El resultado de esta operacin se muestra en ia Figura 4.7. En su forma actual, esta relacin contiene ms informacin de la que necesitamos. Por ejemplo, la primera tupla de esta relacin contiene dife- Sesc _.: _: ,... . .: ' : -:l -: :: 122. unto de patbles n al- pro- ope- re se acin todas y' atri- on (1/ lo, se .rnici- Jrcia de Gaptulo 4 Algebra relacional y clculo relacional 85 rentes valores clientNo. Para obtener la lista requerida, necesitamos llevar a cabo una operacin de seleccin sobre esta relacin para extraer aquellas tuplas en las que Client.clientNo : Viewing.clientNo. La operacin completa ser, por tanto: ocrient.crientNo . viewins.c ientNo(ndientNo, fName, tName(Client)) X (flctient'to, propenyruo, "orr"n,(Viewing)) El resultado de esta operacin se muestra en la Figura 4.8. client.clientNo fName lName Viewing.clientNo propertyNo comment CR76 CR76 CR76 CR76 CR76 CR56 CR56 CR56 CR56 CR56 CR74 CR74 CR74 CR74 CR74 CR62 CR62 CR62 CR62 CR62 Iohn John John John John AIine Aline Aline Aline AIine Mike Mike Mike Mike Mike Mary Mary Mary Mary Mary Kay Kay Kay Kay Kay Stewart Stewart Stewart Stewart Stewart Ritchie Ritchie Ritchie Ritchie Ritchie Tregear Tregear Tregear Tregear Tregear CR56 CR76 CR5 CR62 CR56 CR56 CR76 CR56 CR62 CR56 CR56 CR76 CR56 CR62 CR56 CR56 CR76 CR56 CR62 CR56 PAI4 PG4 PG4 PA14 PG36 PA14 PG4 PG4 PA14 PG36 PAI4 PG4 PG4 PAI4 PG36 PA14 PG4 PG4 PAI4 PG36 too small too remote no dining room too small too remote no dining room too small too remote no dining room too small too remote no dining room Figura 4.7. Producto cartesiano de las relaciones reducidas Client y Vewng. client.clientNo fName lName Mewing.clientNo propertyNo comment CR76 CR56 CR56 CR56 CR62 John Aline Aline Aline Mary Kay Stewart Stewart Stewart Tregear CR76 CR56 CR56 CR56 CR62 PG4 PAI4 PG4 PG36 PA14 too remote too small no dining room Figura 4.8. Producto cartesiano restringdo de las relaciones reducidas Client y Viewing. I Descomposcn de operaciones compleas -ls operaciones de lgebra relacional pueden tener una complejidad arbitrariamente grande. Podemos des- -,lmponer dichas operaciones en una serie de operaciones ms pequeas de lgebra relacional y proporcionar -r nombre a los resultados de las expresiones intermedias. Utilizamos la operacin de asignacin, denotada -iediante , ). La rclacin rcsultrnte contiene los atributos dc agr-r-rpacir-r, GA, junto con los rcsultados dc cada una dc las funciones cle agregacin. 4.2 En las e: vez impl cin de fugar de El c foma su las bases ginalmo En l mentos- proposir White ga daderos White); r Beech). Si un do para-r ralores, l John Wh prsona ( SiPr delafc {x Podel NNOT) pr 4-2-1 En el cl sea verd ble que 't &s son 1, Se el rar 51 Para e ecribir: {s ,F'se d onsulta' dos que g {s S.salar como sala {s 130. que satisfa- rayendo los ls que estn ser compa- luentran en tanto en R relacin R RySque RySque l). los comu- .pondien- :sultante. ornbina- as sobre ;plas de inir una parejas r luego n. AL :lacin Cos de Captulo 4 tgebra relaconal y clculo relaconat 93 4.2 El clculo relacional -: las expresiones del lgebra relacional siempre se especifica de forma explcita un cierto orden, 1o que a su :z implica una cierta estrategia para evaluar la consulta. En el clculo relacional, no existe ninguna descrip- ",n de cmo evaluar una consulta. Las consultas de clculo relacional especifican quhay que extraer, en --iar de cmo exlraerlo. El clculo relacional no est relacionado con el clculo diferencial e integral de las Matemticas, sino que ,:na su nombre de una rama de la lgica simblica denominada clculo de predicados. Cuando se aplica a .-. bases de datos, se 1o puede encontrar en dos formas: clculo relacional de tuplas, que fue el propuesto ori- ..:aimente por Codd (1912a), y clculo relacional de dominios, propuesto por Lacroix y Pirotte (1971). En la lgica de primer orden o clculo de predicados, un predicado es una ftlncin booleana con argu- r 3ntos. Cuando asignamos valores a los argumentos, la funcin nos proporciona una expresin, denominada :,roposicin que puede ser verdadera o falsa. Por ejemplo, las frases 'John White es un empleado'y 'John i. rite gana ms que Ann Beech'son ambas proposiciones, ya que podemos determinar si son enunciados ver- -'ieros o falsos. En el primer caso, tenemos una funcin, 'es un empleado', que tiene un argumento (John ,:te); en el segundo caso, tenemos una funcin, 'gana ms que', con dos argumentos (John White y Ann : .:ch). Si un predicado contiene una variable, como en la frase 'x es un empleado', debe existi un rango asocia- : - l3ra;r. Cuando sustituimos n por algunos valores de este rango, la proposicin puede ser cierta; para otros :-Jres, puede que sea falsa. Por ejemplo, si el rango es el conjunto de todas las personas y sustituimos x por . .:,r White, la proposicin 'John White es un empleado'es verdadera. Si sustituimos rr: por el nombre de una :isona que no sea un empleado, la proposicin ser falsa. Si P es un predicado, entonces podemos escribir el conjunto de todos los x tales que P es verdadero para ie la forma siguiente: {x lP(x)} Podemos conectar unos predicados con otros mediante los conectores lgicos A (AND), V (OR) y .- OT) para formar predicados compuestos. 4.2.1 Glculo relaconal de tuplas -: el clculo relacional de tuplas, 1o que nos interesa es iocalizar las tuplas para las que un cierto predicado .: verdadero. Este clculo est basado en el uso de variables de tuplas. Una variable de tupla es una varia- - -: que 'toma sus valores' en una determinada relacin. Es deci una variable cuyos nicos valores permiti- l,rs son las tuplas de Ia relacin. Por ejemplo, para especificar el rango de una variable de tupla S de forma --.re el rango sea la relacin Staff, escribiramos: Staff(S) Para expresar la consulta 'Extraer el conjunto de todas las tuplas S tales que F(S) sea verdadera', podemos =.,'ribir: is lF(s ,E se denomina frmula (frmula bien formad a, et la lgica matemtica). Por ejemplo, para expresar la - --nsulta 'Extraer los valores de staffNo, fName, lName, position, sex, DOB, salary y branchNo para todos los emplea- l,rs que ganen ms de 10.000 euros', podemos escribir: {S I Staff(S) A S.salary > 10000} S.salary significa el valor del atributo salary para la variable de tupla S. Para extraer un atributo concreto, :.rmo salary, escribiramos: {S.salary lStafr(S)A S.salary > 10000} 131. 94 Sistemas de bases de datos Los cuantificadores exstencial y universal Existen dos cuantificadores que podemos utlTizar con las frmulas para decir a cuntas instancias se aplica el predicado. El cuantificador existencial I ('existe') se utiliza en las formulas que deben ser ciertas pira al menos ua instancia, como en: Staff(S) A (lB) (Branch(B) A (B.branchNo : S.branchNo) A B.city : .London') Esta frmula significa: 'Existe una tupla de Branch que tiene el mismo valor de branchNo que el valor de branchNo correspondiente a la tupla actual de Staff, S, y cuya ciudad correspondiente es Londres'. El cuantifi- cador universal V ('para todo') se utiliza en enunciados que deben ser ciertos para todas las instancias, como en: (VB) (B.city # 'Paris') Este enunciado quiere decir: 'Para todas las tuplas de Branch, la direccin no coresponde a pars'. Podemos aplcar una generalizacin de las leyes de De Morgan a los cuantificaclores existencias y universal. Por ejemplo: (lxxF(x)) = - (VxX-G(x) (vxxF(x - - (lxx-(F(x))) (lxxFr(x) A F,(x - - (Vxx.-G,(x)) v -(Fz(x))) (vxxF,(x) A F2(x = - (]xx*(F,(x)) v -G,rx))) Utilizando estas reglas de equivalencia, podemos reescribir la frmula anterior como: -(3s) (e.city : 'Paris') que significa 'No existe ninguna sucursal situada en pars,. Las variables de tupla cualificadas mediante V o I se denominan variables legadas, mientras que si no estn cualificadas se denominan variables libres. Las nicas variables libres "rr,rrrui*p."rin de clculo rela- cional pueden ser aquellas que estn situadas en el lado izquierdo de la barra ( | ). Porijemplo, en la siguien- te consulta; {s.fruame, s.tName I staff(s) A (lB) (Branch(B) A (B.branchNo : s.branchNo) A B.city : ,London,)} S es la nica variable libre y S se liga a continuacin de forma sucesiva con cada tupla de Staff. Expresiones y frmulas AI igual que sucede con los caracteres de cualquier alfabeto, donde algunas secuencias de caracteres no for- man una frase correctamente estructurada, tambin en el clculo no todas las secuencias de frmulas son acep- tables. Frmulas son aquellos enunciados que sean no ambiguos y que tengan sentido. Una expresin del cl- culo relacional de tuplas tiene la siguiente forma general: {S,.a,,Sr.ar,...,Sn.nlF(Sr,Sr,...,S, m> n donde S,, Sr, . . ., S,, . . ., S. son variables de tupla, cada a,es un atributo de la relacin que acta como rango de s y F es una frmula. Una frmula (bien formada) est compuesta de uno o ms tomo^s, donde un tomo tiene una de las siguientes formas: r R(S), donde S, es una variable de tupla y R es una relacin. .a, 0 .ar, donde S, y S, son variables de tupla, a1 es un atributo de la relacin que acta como rango de , a, es un atributo de la relacin que acta como rango d" s, y es uno de loi operadores de com- paracin ((, ', ), =, :, *); los atributos a, y a, debentener dominios cuyos miembros puedan com- pararse mediante . 5,.a. 0 c, donde es una variable de tupla, a1 es un atributo de la relacin que acta como rango de , c es una constante del dominio del atributo a, y 0 es uno de los operadores de comparacin. Pod< rI rS r! (") r { (b) i { El al inmu que( valor Obse cutar order cion su c0 (c) E It l, urili, poder {r (d) E, {( Para r propi Glas (e) Et t1 Com Ejemt aqr. {E Com Ejemt 132. se aplica rs para al valor de )uantifi- ls, como , Pars'. riversal. lsrno o rela- guien- r for- acep- 1 cl- ango otno rngo om- om- 3 s,, Captulo + lgebra relacional y clculo relacional 95 Podemos construir recursivamente formulas a partir de los tomos utilizando las siguientes reglas: r Un tomo es una frmula. r Si,F, y ,F, son fnnulas, tambin lo son su conjuncin Ft A F2, su disyuncin Fty Fz y la negacin -Ft. I Si .F es una frmula con la variable libre X, entonces (IXXO y x)(F") tambin son frmulas. lTr'" 4.14 ctcuto retacionat de tuptas -l Enumerar los nombres de todos los gerentes que ganen ms de 25.000 euros. {S.fruame, S.lName I Staff(S) A S.position : 'Manager'A S.salary > 25000} b) Enumerctr los empleados que gestionen inmuebles en alquil