Fundamentos de-bases-

787
FUNDAMENTOS DE BASES DE DATOS Cuarta edición

description

 

Transcript of Fundamentos de-bases-

  • 1. FUNDAMENTOS DE BASES DE DATOS Cuarta edicin
  • 2. FUNDAMENTOS DE BASES DE DATOS Cuarta edicin Abraham Silberschatz Bell Laboratories Henry F. Korth Bell Laboratories S. Sudarshan Instituto Indio de Tecnologa, Bombay Traduccin FERNANDO SENZ PREZ ANTONIO GARCA CORDERO CAROLINA LPEZ MARTNEZ LUIS MIGUEL SNCHEZ BREA OLGA MATA GMEZ M. a VICTORIA GONZLEZ DEL CAMPO RODRGUEZ BARBERO Universidad Complutense de Madrid Revisin tcnica LUIS GRAU FERNNDEZ Universidad Nacional de Educacin a Distancia MADRID BUENOS AIRES CARACAS GUATEMALA LISBOA MXICO NUEVA YORK PANAM SAN JUAN SANTAF DE BOGOT SANTIAGO SO PAULO AUCKLAND HAMBURGO LONDRES MILN MONTREAL NUEVA DELHI PARS SAN FRANCISCO SIDNEY SINGAPUR ST. LOUIS TOKIO TORONTO III
  • 3. FUNDAMENTOS DE BASES DE DATOS. Cuarta edicin No est permitida la reproduccin total o parcial de este libro, ni su tratamiento infor- mtico, ni la transmisin de ninguna forma o por cualquier medio, ya sea electrnico, mecnico, por fotocopia, por registro u otros mtodos, sin el permiso previo y por escrito de los titulares del Copyright.DERECHOS RESERVADOS 2002, respecto a la cuarta edicin en espaol, por McGRAW-HILL/INTERAMERICANA DE ESPAA, S. A. U. a Edicio Valrealty, 1. planta Basauri, 17 28023 Aravaca (Madrid)Traducido de la cuarta edicin en ingls deDatabase System Concepts Copyright MMI, por McGraw-Hill Inc. ISBN: 0-07-228363-7 ISBN: 84-481-3654-3 Depsito legal: M.Editora: Concepcin Fernndez MadridEditora de mesa: Susana Santos PrietoCubierta: DIMACompuesto en FERImpreso en:IMPRESO EN ESPAA - PRINTED IN SPAIN
  • 4. En memoria de mi padre, Joseph Silberschatz y de mis abuelos Stepha y Aaron Resenblum. Avi Silberschatz A mi esposa, Joan, mis hijos, Abigail y Joseph, y mis padres, Henry y Frances Hank Korth A mi esposa, Sita, mi hijo, Madhur, y mi madre, Indira. S. Sudarshan
  • 5. CONTENIDO BREVE PREFACIO, XVII CAPTULO 1 INTRODUCCIN, 1PARTE PRIMERA: MODELOS DE DATOS CAPTULO 2 MODELO ENTIDAD-RELACIN, 19 CAPTULO 3 EL MODELO RELACIONAL, 53PARTE SEGUNDA: BASES DE DATOS RELACIONALES CAPTULO 4 SQL, 87 CAPTULO 5 OTROS LENGUAJES RELACIONALES, 119 CAPTULO 6 INTEGRIDAD Y SEGURIDAD, 141 CAPTULO 7 DISEO DE BASES DE DATOS RELACIONALES, 161PARTE TERCERA: BASES DE DATOS BASADAS EN OBJETOS Y XML CAPTULO 8 BASES DE DATOS ORIENTADAS A OBJETOS, 193 CAPTULO 9 BASES DE DATOS RELACIONALES ORIENTADAS A OBJETOS, 211 CAPTULO 10 XML, 227PARTE CUARTA: ALMACENAMIENTO DE DATOS Y CONSULTAS CAPTULO 11 ALMACENAMIENTO Y ESTRUCTURA DE ARCHIVOS, 249 CAPTULO 12 INDEXACIN Y ASOCIACIN, 283 CAPTULO 13 PROCESAMIENTO DE CONSULTAS, 319 CAPTULO 14 OPTIMIZACIN DE CONSULTAS, 343PARTE QUINTA: GESTIN DE TRANSACCIONES CAPTULO 15 TRANSACCIONES, 367 CAPTULO 16 CONTROL DE CONCURRENCIA, 383 CAPTULO 17 SISTEMA DE RECUPERACIN, 413PARTE SEXTA: ARQUITECTURA DE LOS SISTEMAS DE BASES DE DATOS CAPTULO 18 ARQUITECTURAS DE LOS SISTEMAS DE BASES DE DATOS, 445 CAPTULO 19 BASES DE DATOS DISTRIBUIDAS, 463 CAPTULO 20 BASES DE DATOS PARALELAS, 493PARTE SPTIMA: OTROS TEMAS CAPTULO 21 DESARROLLO DE APLICACIONES Y ADMINISTRACIN, 511 CAPTULO 22 CONSULTAS AVANZADAS Y RECUPERACIN DE INFORMACIN, 537 CAPTULO 23 TIPOS DE DATOS AUTOMTICOS Y NUEVAS APLICACIONES, 569 CAPTULO 24 PROCESAMIENTO AVANZADO DE TRANSACCIONES, 589 CAPTULO 25 ORACLE, 611PARTE OCTAVA: ESTUDIO DE CASOS CAPTULO 26 DB2 DE IBM, 629 CAPTULO 27 SQL SERVER DE MICROSOFT, 645 BIBLIOGRAFA, 673 DICCIONARIO BILINGE, 695 NDICE, 771 VII
  • 6. ACERCA DEL AUTOR CONTENIDO PREFACIO, XVIICAPTULO 1: INTRODUCCIN 1.1. APLICACIONES DE LOS SISTEMAS DE BASES DE DATOS, 1 1.2. SISTEMAS DE BASES DE DATOS FRENTE A SISTEMAS DE ARCHIVOS, 2 1.3. VISIN DE LOS DATOS, 3 1.4. MODELOS DE LOS DATOS, 5 1.5 LENGUAJES DE BASES DE DATOS, 7 1.6. USUARIOS Y ADMINISTRADORES DE LA BASE DE DATOS, 8 1.7. GESTIN DE TRANSACCIONES, 10 1.8. ESTRUCTURA DE UN SISTEMA DE BASES DE DATOS, 10 1.9. ARQUITECTURAS DE APLICACIONES, 12 1.10. HISTORIA DE LOS SISTEMAS DE BASES DE DATOS, 13 1.11. RESUMEN, 14 TRMINOS DE REPASO, 15 EJERCICIOS, 15 NOTAS BIBLIOGRFICAS, 16 HERRAMIENTAS, 16PARTE PRIMERA: MODELOS DE DATOSCAPTULO 2: MODELO ENTIDAD-RELACIN 2.1. CONCEPTOS BSICOS, 19 2.2. RESTRICCIONES, 23 2.3. CLAVES, 24 2.4. CUESTIONES DE DISEO, 25 2.5. DIAGRAMA ENTIDAD-RELACIN, 28 2.6. CONJUNTOS DE ENTIDADES DBILES, 32 2.7. CARACTERSTICAS DEL MODELO E-R EXTENDIDO, 33 2.8. DISEO DE UN ESQUEMA DE BASE DE DATOS E-R, 39 2.9. REDUCCIN DE UN ESQUEMA E-R A TABLAS, 43 2.10. EL LENGUAJE DE MODELADO UNIFICADO UML, 46 2.11. RESUMEN, 48 TRMINOS DE REPASO, 49 EJERCICIOS, 49 NOTAS BIBLIOGRFICAS, 52 HERRAMIENTAS, 52CAPTULO 3: EL MODELO RELACIONAL 3.1. LA ESTRUCTURA DE LAS BASES DE DATOS RELACIONALES, 53 3.2. EL LGEBRA RELACIONAL, 59 3.3. OPERACIONES DEL LGEBRA RELACIONAL EXTENDIDA, 67 3.4. MODIFICACIN DE LA BASE DE DATOS, 71 3.5. VISTAS, 73 3.6. EL CLCULO RELACIONAL DE TUPLAS, 75 IX
  • 7. CONTENIDO 3.7. EL CLCULO RELACIONAL DE DOMINIOS, 78 3.8. RESUMEN, 80 TRMINOS DE REPASO, 81 EJERCICIOS, 81 NOTAS BIBLIOGRFICAS, 83 PARTE SEGUNDA: BASES DE DATOS RELACIONALES CAPTULO 4: SQL 4.1. INTRODUCCIN, 87 4.2. ESTRUCTURA BSICA, 88 4.3. OPERACIONES SOBRE CONJUNTOS, 92 4.4. FUNCIONES DE AGREGACIN, 93 4.5. VALORES NULOS, 95 4.6. SUBCONSULTAS ANIDADAS, 95 4.7. VISTAS, 98 4.8. CONSULTAS COMPLEJAS, 99 4.9. MODIFICACIN DE LA BASE DE DATOS, 100 4.10. REUNIN DE RELACIONES, 103 4.11. LENGUAJE DE DEFINICIN DE DATOS, 106 4.12. SQL INCORPORADO, 109 4.13. SQL DINMICO, 111 4.14. OTRAS CARACTERSTICAS DE SQL, 114 4.15. RESUMEN, 115 TRMINOS DE REPASO, 115 EJERCICIOS, 116 NOTAS BIBLIOGRFICAS, 117 CAPTULO 5: OTROS LENGUAJES RELACIONALES 5.1. QUERY-BY-EXAMPLE, 119 5.2. DATALOG, 127 5.3. INTERFACES DE USUARIO Y HERRAMIENTAS, 135 5.4. RESUMEN, 137 TRMINOS DE REPASO, 137 EJERCICIOS, 137 NOTAS BIBLIOGRFICAS, 139 HERRAMIENTAS, 139 CAPTULO 6: INTEGRIDAD Y SEGURIDAD 6.1. RESTRICCIONES DE LOS DOMINIOS, 141 6.2. INTEGRIDAD REFERENCIAL, 142 6.3. ASERTOS, 145 6.4. DISPARADORES, 146 6.5. SEGURIDAD Y AUTORIZACIN, 149 6.6. AUTORIZACIN EN SQL, 153 6.7. CIFRADO Y AUTENTICACIN, 155 6.8. RESUMEN, 156 TRMINOS DE REPASO, 157 EJERCICIOS, 157 NOTAS BIBLIOGRFICAS, 159 X
  • 8. CONTENIDOCAPTULO 7: DISEO DE BASES DE DATOS RELACIONALES 7.1. PRIMERA FORMA NORMAL, 161 7.2. DIFICULTADES EN EL DISEO DE BASES DE DATOS RELACIONALES, 162 7.3. DEPENDENCIAS FUNCIONALES, 163 7.4. DESCOMPOSICIN, 169 7.5. PROPIEDADES DESEABLES DE LA DESCOMPOSICIN, 171 7.6. FORMA NORMAL DE BOYCE-CODD, 174 7.7. TERCERA FORMA NORMAL, 177 7.8. CUARTA FORMA NORMAL, 180 7.9. OTRAS FORMAS NORMALES, 182 7.10. PROCESO GENERAL DEL DISEO DE BASES DE DATOS, 183 7.11. RESUMEN, 185 TRMINOS DE REPASO, 186 EJERCICIOS, 186 NOTAS BIBLIOGRFICAS, 188PARTE TERCERA: BASES DE DATOS BASADAS EN OBJETOS Y XMLCAPTULO 8: BASES DE DATOS ORIENTADAS A OBJETOS 8.1. NECESIDADES DE LOS DE TIPOS DE DATOS COMPLEJOS, 193 8.2. EL MODELO DE DATOS ORIENTADO A OBJETOS, 194 8.3. LENGUAJES ORIENTADOS A OBJETOS, 200 8.4. LENGUAJES DE PROGRAMACIN PERSISTENTE, 200 8.5. SISTEMAS C++ PERSISTENTES, 203 8.6. SISTEMAS JAVA PERSISTENTES, 207 8.7. RESUMEN, 208 TRMINOS DE REPASO, 208 EJERCICIOS, 209 NOTAS BIBLIOGRFICAS, 209CAPTULO 9: BASES DE DATOS RELACIONALES ORIENTADAS A OBJETOS 9.1. RELACIONES ANIDADAS, 211 9.2. TIPOS COMPLEJOS, 212 9.3. HERENCIA, 215 9.4. TIPOS DE REFERENCIA, 217 9.5. CONSULTAS CON TIPOS COMPLEJOS, 218 9.6. FUNCIONES Y PROCEDIMIENTOS, 220 9.7. COMPARACIN ENTRE LAS BASES DE DATOS ORIENTADAS A OBJETOS Y LAS BASES DE DATOS RELACIONALES ORIENTADAS A OBJETOS, 223 9.8. RESUMEN, 223 TRMINOS DE REPASO, 224 EJERCICIOS, 224 NOTAS BIBLIOGRFICAS, 225 HERRAMIENTAS, 226CAPTULO 10: XML 10.1. ANTECEDENTES, 227 10.2. ESTRUCTURA DE LOS DATOS XML, 228 10.3. ESQUEMA DE LOS DOCUMENTOS XML, 230 10.4. CONSULTA Y TRANSFORMACIN, 233 XI
  • 9. CONTENIDO 10.5. LA INTERFAZ DE PROGRAMACIN DE APLICACIONES, 238 10.6. ALMACENAMIENTO DE DATOS XML, 239 10.7. APLICACIONES XML, 240 10.8. RESUMEN, 242 TRMINOS DE REPASO, 243 EJERCICIOS, 244 NOTAS BIBLIOGRFICAS, 245 HERRMIENTAS, 245 PARTE CUARTA: ALMACENAMIENTO DE DATOS Y CONSULTAS CAPTULO 11: ALMACENAMIENTO Y ESTRUCTURA DE ARCHIVOS 11.1. VISIN GENERAL DE LOS MEDIOS FSICOS DE ALMACENAMIENTO, 249 11.2. DISCOS MAGNTICOS, 251 11.3. RAID, 255 11.4. ALMACENAMIENTO TERCIARIO, 260 11.5. ACCESO AL ALMACENAMIENTO, 262 11.6. ORGANIZACIN DE LOS ARCHIVOS, 264 11.7. ORGANIZACIN DE LOS REGISTROS EN ARCHIVOS, 268 11.8. ALMACENAMIENTO CON DICCIONARIOS DE DATOS, 271 11.9. ALMACENAMIENTO PARA LAS BASES DE DATOS ORIENTADAS A OBJETOS, 271 11.10. RESUMEN, 278 TRMINOS DE REPASO, 279 EJERCICIOS, 280 NOTAS BIBLIOGRFICAS, 281 CAPTULO 12: INDEXACIN Y ASOCIACIN 12.1. CONCEPTOS BSICOS, 283 12.2. NDICES ORDENADOS, 284 12.3. ARCHIVOS DE NDICES DE RBOL B+, 289 12.4. ARCHIVOS CON NDICES DE RBOL B, 297 12.5. ASOCIACIN ESTTICA, 298 12.6. ASOCIACIN DINMICA, 302 12.7. COMPARACIN DE LA INDEXACIN ORDENADA Y LA ASOCIACIN, 308 12.8. DEFINICIN DE NDICES EN SQL, 309 12.9. ACCESOS MULTICLAVE, 309 12.10. RESUMEN, 314 TRMINOS DE REPASO, 315 EJERCICIOS, 316 NOTAS BIBLIOGRFICAS, 317 CAPTULO 13: PROCESAMIENTO DE CONSULTAS 13.1. VISIN GENERAL, 319 13.2. MEDIDAS DEL COSTE DE UNA CONSULTA, 321 13.3. OPERACIN SELECCIN, 321 13.4. ORDENACIN, 324 13.5. OPERACIN REUNIN, 326 13.6. OTRAS OPERACIONES, 333 13.7. EVALUACIN DE EXPRESIONES, 335 13.8. RESUMEN, 339 XII
  • 10. CONTENIDO TRMINOS DE REPASO, 339 EJERCICIOS, 340 NOTAS BIBLIOGRFICAS, 341CAPTULO 14: OPTIMIZACIN DE CONSULTAS 14.1. VISIN GENERAL, 343 14.2. ESTIMACIN DE LAS ESTADSTICAS DE LOS RESULTADOS DE LAS EXPRESIONES, 344 14.3. TRANSFORMACIN DE EXPRESIONES RELACIONALES, 348 14.4. ELECCIN DE LOS PLANES DE EVALUACIN, 352 14.5. VISTAS MATERIALIZADAS, 358 14.6. RESUMEN, 361 TRMINOS DE REPASO, 362 EJERCICIOS, 362 NOTAS BIBLIOGRFICAS, 363PARTE QUINTA: GESTIN DE TRANSACIONESCAPTULO 15: TRANSACCIONES 15.1. CONCEPTO DE TRANSACCIN, 367 15.2. ESTADOS DE UNA TRANSACCIN, 369 15.3. IMPLEMENTACIN DE LA ATOMICIDAD Y LA DURABILIDAD, 371 15.4. EJECUCIONES CONCURRENTES, 372 15.5. SECUENCIALIDAD, 374 15.6. RECUPERABILIDAD, 377 15.7. IMPLEMENTACIN DEL AISLAMIENTO, 378 15.8. DEFINICIN DE TRANSACCIONES EN SQL, 378 15.9. COMPROBACIN DE LA SECUENCIALIDAD, 379 15.10. RESUMEN, 380 TRMINOS DE REPASO, 381 EJERCICIOS, 381 NOTAS BIBLIOGRFICAS, 382CAPTULO 16: CONTROL DE CONCURRENCIA 16.1. PROTOCOLOS BASADOS EN EL BLOQUEO, 383 16.2. PROTOCOLOS BASADOS EN MARCAS TEMPORALES, 390 16.3. PROTOCOLOS BASADOS EN VALIDACIN, 393 16.4. GRANULARIDAD MLTIPLE, 394 16.5. ESQUEMAS MULTIVERSIN, 396 16.6. TRATAMIENTO DE INTERBLOQUEOS, 398 16.7. OPERACIONES PARA INSERTAR Y BORRAR, 401 16.8. NIVELES DBILES DE CONSISTENCIA, 403 16.9. CONCURRENCIA EN ESTRUCTURAS DE NDICE, 404 16.10. RESUMEN, 406 TRMINOS DE REPASO, 408 EJERCICIOS, 409 NOTAS BIBLIOGRFICAS, 411CAPTULO 17: SISTEMA DE RECUPERACIN 17.1. CLASIFICACIN DE LOS FALLOS, 413 17.2. ESTRUCTURA DEL ALMACENAMIENTO, 414 17.3. RECUPERACIN Y ATOMICIDAD, 416 XIII
  • 11. CONTENIDO 17.4. RECUPERACIN BASADA EN EL REGISTRO HISTRICO, 417 17.5. PAGINACIN EN LA SOMBRA, 422 17.6. TRANSACCIONES CONCURRENTES Y RECUPERACIN, 425 17.7. GESTIN DE LA MEMORIA INTERMEDIA, 427 17.8. FALLO CON PRDIDA DE ALMACENAMIENTO NO VOLTIL, 430 17.9. TCNICAS AVANZADAS DE RECUPERACIN, 430 17.10. SISTEMAS REMOTOS DE COPIAS DE SEGURIDAD, 435 17.11. RESUMEN, 437 TRMINOS DE REPASO, 439 EJERCICIOS, 440 NOTAS BIBLIOGRFICAS, 441 PARTE SEXTA: ARQUITECTURA DE LOS SISTEMAS DE BASES DE DATOS CAPTULO 18: ARQUITECTURAS DE LOS SISTEMAS DE BASES DE DATOS 18.1. ARQUITECTURAS CENTRALIZADAS Y CLIENTE-SERVIDOR, 445 18.2. ARQUITECTURAS DE SISTEMAS SERVIDORES, 448 18.3. SISTEMAS PARALELOS, 451 18.4. SISTEMAS DISTRIBUIDOS, 455 18.5. TIPOS DE REDES, 458 18.6. RESUMEN, 459 TRMINOS DE REPASO, 460 EJERCICIOS, 461 NOTAS BIBLIOGRFICAS, 461 CAPTULO 19: BASES DE DATOS DISTRIBUIDAS 19.1. BASES DE DATOS HOMOGNEAS Y HETEROGNEAS, 463 19.2. ALMACENAMIENTO DISTRIBUIDO DE DATOS, 464 19.3. TRANSACCIONES DISTRIBUIDAS, 466 19.4. PROTOCOLOS DE COMPROMISO, 467 19.5. CONTROL DE LA CONCURRENCIA EN LAS BASES DE DATOS DISTRIBUIDAS, 472 19.6. DISPONIBILIDAD, 477 19.7. PROCESAMIENTO DISTRIBUIDO DE CONSULTAS, 480 19.8. BASES DE DATOS DISTRIBUIDAS HETEROGNEAS, 482 19.9. SISTEMAS DE DIRECTORIO, 484 19.10. RESUMEN, 487 TRMINOS DE REPASO, 488 EJERCICIOS, 489 NOTAS BIBLIOGRFICAS, 491 CAPTULO 20: BASES DE DATOS PARALELAS 20.1. INTRODUCCIN, 493 20.2. PARALELISMO DE E/S, 493 20.3. PARALELISMO ENTRE CONSULTAS, 496 20.4. PARALELISMO EN CONSULTAS, 497 20.5. PARALELISMO EN OPERACIONES, 497 20.6. PARALELISMO ENTRE OPERACIONES, 502 20.7. DISEO DE SISTEMAS PARALELOS, 504 20.8. RESUMEN, 505 TRMINOS DE REPASO, 505 XIV
  • 12. EJERCICIOS, 506 NOTAS BIBLIOGRFICAS, 507PARTE SPTIMA: OTROS TEMASCAPTULO 21: DESARROLLO DE APLICACIONES Y ADMINISTRACIN 21.1. INTERFACES WEB PARA BASES DE DATOS, 511 21.2. AJUSTE DEL RENDIMIENTO, 517 21.3. PRUEBAS DE RENDIMIENTO, 523 21.4. NORMALIZACIN, 525 21.5. COMERCIO ELECTRNICO, 528 21.6. SISTEMAS HEREDADOS, 530 21.7. RESUMEN, 531 TRMINOS DE REPASO, 531 EJERCICIOS, 532 SUGERENCIAS DE PROYECTOS, 533 NOTAS BIBLIOGRFICAS, 534 HERRAMIENTAS, 535CAPTULO 22: CONSULTAS AVANZADAS Y RECUPERACIN DE INFORMACIN 22.1. SISTEMAS DE AYUDA A LA TOMA DE DECISIONES, 537 22.2. ANLISIS DE DATOS Y OLAP, 538 22.3. RECOPILACIN DE DATOS, 546 22.4. ALMACENAMIENTO DE DATOS, 554 22.5. SISTEMAS DE RECUPERACIN DE LA INFORMACIN, 556 22.6. RESUMEN, 563 TRMINOS DE REPASO, 564 EJERCICIOS, 566 NOTAS BIBLIOGRFICAS, 567 HERRAMIENTAS, 567CAPTULO 23: TIPOS DE DATOS AUTOMTICOS Y NUEVAS APLICACIONES 23.1. MOTIVACIN, 569 23.2. EL TIEMPO EN LAS BASES DE DATOS, 570 23.3. DATOS ESPACIALES Y GEOGRFICOS, 571 23.4. BASES DE DATOS MULTIMEDIA, 579 23.5. COMPUTADORAS PORTTILES Y BASES DE DATOS PERSONALES, 581 23.6. RESUMEN, 584 TRMINOS DE REPASO, 585 EJERCICIOS, 586 NOTAS BIBLIOGRFICAS, 587CAPTULO 24: PROCESAMIENTO AVANZADO DE TRANSACCIONES 24.1. MONITORES DE PROCESAMIENTO DE TRANSACCIONES, 589 24.2. FLUJOS DE TRABAJO DE TRANSACCIONES, 592 24.3. BASES DE DATOS EN MEMORIA PRINCIPAL, 596 24.4. SISTEMAS DE TRANSACCIONES DE TIEMPO REAL, 598 24.5. TRANSACCIONES DE LARGA DURACIN, 599 24.6. GESTIN DE TRANSACCIONES EN VARIAS BASES DE DATOS, 603 24.7. RESUMEN, 605 TRMINOS DE REPASO, 606 EJERCICIOS, 607 NOTAS BIBLIOGRFICAS, 608 XV
  • 13. PARTE OCTAVA: ESTUDIO DE CASOSCAPTULO 25: ORACLE 25.1. HERRAMIENTAS PARA EL DISEO DE BASES DE DATOS Y LA CONSULTA, 611 25.2. VARIACIONES Y EXTENSIONES DE SQL, 612 25.3. ALMACENAMIENTO E INDEXACIN, 614 25.4. PROCESAMIENTO Y OPTIMIZACIN DE CONSULTAS, 619 25.5. CONTROL DE CONCURRENCIA Y RECUPERACIN, 623 25.6. ARQUITECTURA DEL SISTEMA, 625 25.7. RPLICAS, DISTRIBUCIN Y DATOS EXTERNOS, 626 25.8. HERRAMIENTAS DE GESTIN DE BASES DE DATOS, 627 NOTAS BIBLIOGRFICAS, 628CAPTULO 26: DB2 DE IBM 26.1. HERRAMIENTAS PARA EL DISEO DE BASES DE DATOS Y LA CONSULTA, 630 26.2. VARIACIONES Y EXTENSIONES DE SQL, 630 26.3. ALMACENAMIENTO E INDEXACIN, 631 26.4. PROCESAMIENTO Y OPTIMIZACIN DE CONSULTAS, 634 26.5. CONTROL DE CONCURRENCIA Y RECUPERACIN, 637 26.6. ARQUITECTURA DEL SISTEMA, 639 26.7. RPLICAS, DISTRIBUCIN Y DATOS EXTERNOS, 641 26.8. HERRAMIENTAS DE ADMINISTRACIN DE BASES DE DATOS, 641 26.9. RESUMEN, 642 NOTAS BIBLIOGRFICAS, 643CAPTULO 27: SQL SERVER DE MICROSOFT 27.1. HERRAMIENTAS PARA EL DISEO Y CONSULTA DE BASES DE DATOS, 645 27.2. VARIACIONES Y EXTENSIONES DE SQL, 650 27.3. ALMACENAMIENTO E INDEXACIN, 652 27.4. PROCESAMIENTO Y OPTIMIZACIN DE CONSULTAS, 654 27.5. CONCURRENCIA Y RECUPERACIN, 657 27.6. ARQUITECTURA DEL SISTEMA, 660 27.7. ACCESO A DATOS, 661 27.8. DISTRIBUCIN Y RPLICAS, 662 27.9. CONSULTAS DE TEXTO COMPLETO SOBRE DATOS RELACIONALES, 665 27.10. ALMACENES DE DATOS Y SERVICIOS DE ANLISIS, 666 27.11. XML Y SOPORTE DE WEB, 667 27.12. RESUMEN, 670 NOTAS BIBLIOGRFICAS, 670 BIBLIOGRAFA, 673 DICCIONARIO BILINGE, 695 NDICE, 771 XVI
  • 14. ACERCA DEL AUTOR PREFACIOL A gestin de bases de datos ha evolucionado desde una aplicacin informtica especia- lizada hasta una parte esencial de un entorno informtico moderno y, como resultado, el conocimiento acerca de los sistemas de bases de datos se ha convertido en una parteesencial en la enseanza de la informtica. En este libro se presentan los conceptos fundamen-tales de la administracin de bases de datos. Estos conceptos incluyen aspectos de diseo debases de datos, lenguajes de bases de datos e implementacin de sistemas de bases de datos. Este libro est orientado a un primer curso de bases de datos para niveles tcnicos y supe-riores. Adems del material bsico para un primer curso, el texto tambin contiene temas quepueden usarse como complemento del curso o como material introductorio de un curso avan-zado. En este libro se asume que se dispone de los conocimientos elementales sobre estructuras dedatos bsicas, organizacin de computadoras y un lenguaje de programacin de alto nivel (tipoPascal). Los conceptos se presentan usando descripciones intuitivas, muchas de las cuales estnbasadas en el ejemplo propuesto de una empresa bancaria. Se tratan los resultados tericosimportantes, pero se omiten las demostraciones formales. Las notas bibliogrcas contienenreferencias a artculos de investigacin en los que los resultados se presentaron y probaron, ytambin referencias a material para otras lecturas. En lugar de demostraciones, se usan gurasy ejemplos para sugerir por qu se espera que los resultados en cuestin sean ciertos. Los conceptos fundamentales y algoritmos tratados en este libro se basan habitualmente enlos que se usan en la actualidad en sistemas de bases de datos existentes, comerciales o expe-rimentales. Nuestro deseo es presentar estos conceptos y algoritmos como un conjunto generalque no est ligado a un sistema de bases de datos particular. En la Parte 8 se discuten detallesde sistemas de bases de datos comerciales. En esta cuarta edicin de Fundamentos de bases de datos se ha mantenido el estilo globalde las primeras tres ediciones, a la vez que se ha tenido en cuenta la evolucin de la gestin debases de datos. Se han aadido varios captulos nuevos para tratar nuevas tecnologas. Cadacaptulo se ha corregido y la mayora se ha modicado ampliamente. Se describirn los cam-bios con detalle en breve.ORGANIZACINEl texto est organizado en ocho partes principales ms dos apndices: Visin general (Captulo 1). En el Captulo 1 se proporciona una visin general de la natu- raleza y propsito de los sistemas de bases de datos. Se explica cmo se ha desarrollado el concepto de sistema de bases de datos, cules son las caractersticas usuales de los sistemas de bases de datos, lo que proporciona al usuario un sistema de bases de datos y cmo un sis- tema de bases de datos se comunica con los sistemas operativos. Tambin se introduce una aplicacin de bases de datos de ejemplo: una empresa bancaria que consta de muchas sucur- sales. Este ejemplo se usa a lo largo de todo el libro. Este captulo es histrico, explicativo y motivador por naturaleza. Modelos de datos (Captulos 2 y 3). En el Captulo 2 se presenta el modelo entidad-relacin. Este modelo proporciona una visin de alto nivel de los resultados de un diseo de base de datos y de los problemas que se encuentran en la captura de la semntica de las aplicaciones realistas que contienen las restricciones de un modelo de datos. El Captulo 3 se centra en el modelo de datos relacional, tratando la relevancia del lgebra relacional y el clculo rela- cional. Bases de datos relacionales (Captulos 4 al 7). El Captulo 4 se centra en el lenguaje rela- cional orientado al usuario de mayor inuencia: SQL. El Captulo 5 cubre otros dos lengua- jes relacionales, QBE y Datalog. En estos dos captulos se describe la manipulacin de datos: consultas, actualizaciones, inserciones y borrados. Los algoritmos y las cuestiones de diseo XVII
  • 15. PREFACIO se relegan a captulos posteriores. As, estos captulos son adecuados para aquellas personas o para las clases de nivel ms bajo en donde se desee aprender qu es un sistema de bases de datos, sin entrar en detalles sobre los algoritmos internos y estructuras que contienen. En el Captulo 6 se presentan las restricciones desde el punto de vista de la integridad de las bases de datos. En el Captulo 7 se muestra cmo se pueden usar las restricciones en el diseo de una base de datos relacional. En el Captulo 6 se presentan la integridad referen- cial; mecanismos para el mantenimiento de la integridad, tales como disparadores y asertos, y mecanismos de autorizacin. El tema de este captulo es la proteccin de las bases de datos contra daos accidentales y daos intencionados. En el Captulo 7 se introduce la teora del diseo de bases de datos relacionales. Se trata la teora de las dependencias funcionales y la normalizacin, con nfasis en la motivacin y el signicado intuitivo de cada forma normal. Tambin se describe en detalle el proceso de diseo de bases de datos. Bases de datos basadas en objetos y XML (Captulos 8 al 10). El Captulo 8 trata las bases de datos orientadas a objetos. En l se introducen los conceptos de la programacin orien- tada a objetos y se muestra cmo estos conceptos constituyen la base para un modelo de datos. No se asume un conocimiento previo de lenguajes orientados a objetos. El Captulo 9 trata las bases de datos relacionales de objetos, y muestra cmo la norma SQL:1999 extiende el modelo de datos relacional para incluir caractersticas de la programacin orientada a obje- tos, tales como la herencia, los tipos complejos y la identidad de objeto. En el Captulo 10 se trata la norma XML para representacin de datos, el cual est expe- rimentando un uso cada vez mayor en la comunicacin de datos y en el almacenamiento de tipos de datos complejos. El captulo tambin describe lenguajes de consulta para XML. Almacenamiento de datos y consultas (Captulos 11 al 14). En el Captulo 11 se estudian los discos, archivos y estructuras de un sistema de archivos y la correspondencia de datos relacio- nales y de objetos con un sistema de archivos. En el Captulo 12 se presentan varias tcnicas de acceso a los datos, incluyendo la asociacin, los ndices de rboles B+ y los ndices de archivos en retcula. Los captulos 13 y 14 tratan los algoritmos de evaluacin de consultas y optimiza- cin de consultas basados en transformacin de consultas preservando la equivalencia. Estos captulos estn orientados a personas que desean conocer los componentes de alma- cenamiento y consulta internos de una base de datos. Gestin de transacciones (Captulos 15 al 17). El Captulo 15 se centra en los fundamentos de un sistema de procesamiento de transacciones, incluyendo la atomicidad de las transaccio- nes, la consistencia, el aislamiento y la durabilidad, y tambin la nocin de secuencialidad. El Captulo 16 se centra en el control de concurrencia y se presentan varias tcnicas que aseguran la secuencialidad, incluyendo los bloqueos, las marcas temporales y tcnicas opti- mistas (de validacin). Los temas de interbloqueo se tratan tambin en este captulo. El Cap- tulo 17 aborda las tcnicas principales para asegurar la ejecucin correcta de transacciones a pesar de las cadas del sistema y los fallos de disco. Estas tcnicas incluyen el registro hist- rico, paginacin en la sombra, puntos de revisin y volcados de la base de datos. Arquitectura de un sistema de bases de datos (Captulos 18 al 20). El Captulo 18 trata la arquitectura de un sistema informtico y en l se describe la inuencia de los sistemas infor- mticos subyacentes en los sistemas de bases de datos. Se discuten los sistemas centraliza- dos, los sistemas cliente-servidor, las arquitecturas paralelas y distribuidas, y los tipos de redes. En el Captulo 19 se estudian los sistemas de bases de datos distribuidas, revisando los aspectos de diseo de bases de datos, gestin de las transacciones y evaluacin y optimiza- cin de consultas en el contexto de los sistemas de bases de datos distribuidas. El captulo tambin trata aspectos de la disponibilidad del sistema durante fallos y describe el sistema de directorios LDAP. En el captulo 20, acerca de las bases de datos paralelas, se exploran varias tcnicas de paralelizacin, incluyendo paralelismo de E/S, paralelismo entre consultas y en consultas, y paralelismo entre operaciones y en operaciones. Tambin se describe el diseo de sistemas paralelos. Otros temas (Captulos 21 al 24). El Captulo 21 trata el desarrollo y administracin de apli- caciones de bases de datos. Los temas incluyen las interfaces de las bases de datos, en par- ticular las interfaces Web, el ajuste de rendimiento, los programas de prueba, la estandariza- cin y los aspectos de las bases de datos en el comercio electrnico. El Captulo 22 presenta XVIII
  • 16. PREFACIO tcnicas de consulta, incluyendo sistemas de ayuda a la toma de decisiones y recuperacin de la informacin. Los temas tratados en el rea de la ayuda a la toma de decisiones incluyen las tcnicas de procesamiento analtico interactivo (OLAP, Online Analytical Processing), el soporte de SQL:1999 para OLAP, recopilacin de datos y almacenes de datos. El captulo tambin describe tcnicas de recuperacin de informacin para la consulta de datos textua- les, incluyendo tcnicas basadas en hipervnculos usadas en los motores de bsqueda Web. El Captulo 23 trata tipos de datos avanzados y nuevas aplicaciones, incluyendo datos tem- porales, datos espaciales y geogrcos, datos multimedia, y aspectos de la gestin de las bases de datos mviles y personales. Finalmente, el Captulo 24 trata el procesamiento avanzado de transacciones. Se estudian los monitores de procesamiento de transacciones, los sistemas de transacciones de alto rendimiento, los sistemas de transacciones de tiempo real, y los u- jos de datos transaccionales. Estudios de casos (Captulos 25 al 27). En esta parte presentamos estudios de casos de tres sistemas de bases de datos comerciales: Oracle, IBM DB2 y Microsoft SQL Server. Estos captulos esbozan caractersticas nicas de cada uno de los productos y describen su estruc- tura interna. Proporcionan una gran cantidad de informacin interesante sobre los productos respectivos, y ayudan a ver cmo las diferentes tcnicas de implementacin descritas en las partes anteriores se usan en sistemas reales. Tambin se tratan aspectos prcticos en el diseo de sistemas reales. Apndices en lnea. Aunque la mayora de las aplicaciones de bases de datos modernas usen, bien el modelo relacional o bien el modelo orientado a objetos, los modelos de datos de redes y jerrquico estn en uso todava. En beneficio de los lectores que deseen aprender estos modelos de datos se proporcionan apndices que describen los modelos de redes y jerrquico, en los Apndices A y B, respectivamente. Los apndices slo estn disponibles en Internet (http://www.bell-labs.com/topic/books/db-book). El Apndice C describe el diseo avanzado de bases de datos relacionales, incluyendo la teora de dependencias multivaloradas Multivaluadas?, las dependencias de reunin y las formas normales de proyeccin-reunin y dominio-clave. Este apndice es til para quienes deseen el tratamiento del diseo de bases de datos relacionales en ms detalle, y para profe- sores que deseen explicarlo en sus asignaturas. Este apndice est tambin slo disponible en Internet, en la pgina Web del libro.LA CUARTA EDICINLa produccin de esta cuarta edicin se ha guiado por muchos comentarios y sugerencias refe-ridos a las ediciones anteriores, junto con las propias observaciones en la enseanza en el IITde Bombay, y por el anlisis de las direcciones que la tecnologa de bases de datos est tomando. El procedimiento bsico fue reescribir el material en cada captulo, actualizando el materialms antiguo, aadiendo discusiones en desarrollos recientes en la tecnologa de bases de datos,y mejorando las descripciones de los temas que los estudiantes encontraron difciles de com-prender. Cada captulo tiene ahora una lista de trminos de repaso, que pueden ayudar a asi-milar los temas clave tratados en cada captulo. Se ha aadido tambin una nueva seccin alnal de la mayora de los captulos que proporciona informacin sobre herramientas softwarereferidas al tema del captulo. Tambin se han aadido nuevos ejercicios y se han actualizadolas referencias. Se ha incluido un nuevo captulo que trata XML, y tres captulos de estudio de los sistemasde bases de datos comerciales lderes: Oracle, IBM DB2 y Microsoft SQL Server. Los captulos se han organizado en varias partes y se han reorganizado los contenidos devarios de ellos. En benecio de aquellos lectores familiarizados con la tercera edicin se expli-can a continuacin los principales cambios. Modelo entidad-relacin. Se ha mejorado el tratamiento del modelo entidad-relacin (E-R). Se han aadido nuevos ejemplos y algunos se han cambiado para dar una mejor intuicin al lector. Se ha incluido un resumen de notaciones E-R alternativas, junto con un nuevo apar- tado sobre UML. Bases de datos relacionales. El tratamiento de SQL en el Captulo 4 ahora se reere al estn- dar SQL:1999, que se aprob despus de la publicacin de la tercera edicin de este libro. El XIX
  • 17. PREFACIO tratamiento de SQL se ha ampliado signicativamente para incluir la clusula with, para un tratamiento ampliado de SQL incorporado y el tratamiento de ODBC y JDBC, cuyo uso ha aumentado notablemente en los ltimos aos. La parte del captulo 5 dedicada a Quel se ha eli- minado, ya que no se usa ampliamente debido al poco uso que actualmente se hace de este lenguaje. El tratamiento de QBE se ha revisado para eliminar algunas ambigedades y para aadir el tratamiento de la versin de QBE usada en la base de datos Microsoft Access. El Captulo 6 trata ahora de las restricciones de integridad y de la seguridad. El tratamiento de la seguridad, ubicado en la edicin anterior en el Captulo 19, se ha trasladado al Captu- lo 6. El Captulo 6 tambin trata los disparadores. El Captulo 7 aborda el diseo de las bases de datos relacionales y las formas normales. La discusin de las dependencias funcionales, ubicada en la edicin anterior en el Captulo 6, se ha trasladado al Captulo 7. El Captulo 7 se ha remodelado signicativamente, proporcionando varios algoritmos para las dependen- cias funcionales y un tratamiento extendido del proceso general del diseo de bases de datos. Los axiomas para la inferencia de las dependencias multivaloradas, las formas normales FNRP y FNCD se han trasladado al apndice. Bases de datos basadas en objetos. Se ha mejorado el tratamiento de la orientacin a obje- tos del Captulo 8, y se ha actualizado la discusin de ODMG. Se ha actualizado el trata- miento de las bases de datos relacionales orientadas a objetos del Captulo 9 y, en particular, el estndar SQL:1999, reemplaza a SQL extendido usado en la tercera edicin. XML. El Captulo 10, que trata XML, es un nuevo captulo de la cuarta edicin. Almacenamiento, indexacin y procesamiento de consultas. Se ha actualizado el trata- miento del almacenamiento y de las estructuras de archivos del Captulo 11; este fue el Cap- tulo 10 en la tercera edicin. Muchas caractersticas de las unidades de disco y de otros mecanismos de almacenamiento han cambiado en gran medida con el paso de los aos, y su tratamiento se ha actualizado correspondientemente. El tratamiento de RAID se ha actuali- zado para reejar las tendencias tecnolgicas. El tratamiento de diccionarios de datos (cat- logos) se ha extendido. El Captulo 12, sobre indexacin, incluye ahora el estudio de los ndices de mapa de bits; este captulo fue el Captulo 11 en la tercera edicin. El algoritmo de insercin en rboles B+ se ha simplicado y se ha proporcionado un pseudocdigo para su examen. La asociacin dividida se ha eliminado, ya que no tiene un uso signicativo. El tratamiento del procesamiento de consultas se ha reorganizado, con el captulo anterior (Captulo 12 en la tercera edicin) dividido en dos captulos, uno sobre procesamiento de consultas (Captulo 13) y otro sobre optimizacin de consultas (Captulo 14). Todos los deta- lles referidos a la estimacin de costes y a la optimizacin de consultas se han trasladado al Captulo 14, permitiendo al Captulo 13 centrarse en los algoritmos de procesamiento de con- sultas. Se han eliminado varias frmulas detalladas (y tediosas) para el clculo del nmero exacto de operaciones de E/S para diferentes operaciones. El Captulo 14 se presenta ahora con un pseudocdigo para la optimizacin de algoritmos, y nuevos apartados sobre la opti- mizacin de subconsultas anidadas y sobre vistas materializadas. Procesamiento de transacciones. El Captulo 15, que proporciona una introduccin a las transacciones, se ha actualizado; este captulo era el Captulo 13 en la tercera edicin. Se han eliminado los tests de secuenciabilidad. El Captulo 16, sobre el control de concurrencia, incluye un nuevo apartado sobre la imple- mentacin de los gestores de bloqueo, y otro sobre los niveles dbiles de consistencia, que estaban en el Captulo 20 de la tercera edicin. Se ha ampliado el control de concurrencia de estructuras de ndices, proporcionando detalles del protocolo cangrejo, que es una alterna- tiva ms simple al protocolo de enlace B, y el bloqueo de siguiente clave para evitar el pro- blema fantasma. El Captulo 17, que trata sobre recuperacin, incluye ahora un estudio del algoritmo de recuperacin ARIES. Este captulo trata ahora los sistemas de copia de seguri- dad remota para proporcionar una alta disponibilidad a pesar de los fallos, caracterstica cada vez ms importante en las aplicaciones 247. Como en la tercera edicin, esta organizacin permite a los profesores elegir entre con- ceptos de procesamiento de transacciones introductorios nicamente (cubiertos slo en el Captulo 15) u ofrecer un conocimiento detallado (basado en los Captulos 15 al 17). Arquitecturas de sistemas de bases de datos. El Captulo 18, que proporciona una visin general de las arquitecturas de sistemas de bases de datos, se ha actualizado para tratar la tec- nologa actual; esto se encontraba en el Captulo 16 de la tercera edicin. El orden del cap- XX
  • 18. PREFACIO tulo de bases de datos paralelas y de los captulos de bases de datos distribuidas se ha inter- cambiado. Mientras que el tratamiento de las tcnicas de procesamiento de consultas de bases de datos del Captulo 20 (que fue el Captulo 16 en la tercera edicin) es de primordial inte- rs para quienes deseen aprender los interiores de las bases de datos, las bases de datos dis- tribuidas, ahora tratadas en el Captulo 19, son un tema ms fundamental con el que debera estar familiarizado cualquiera que trabaje con bases de datos. El Captulo 19 sobre bases de datos distribuidas se ha rehecho signicativamente para re- ducir el nfasis en la denominacin y la transparencia, y para aumentar el tratamiento de la operacin durante fallos, incluyendo las tcnicas de control de concurrencia para proporcio- nar alta disponibilidad. El tratamiento del protocolo de compromiso de tres fases se ha abre- viado, al tener deteccin distribuida de interbloqueos globales, ya que no se usa mucho en la prctica. El estudio de los aspectos de procesamiento de consultas se ha trasladado del Captu- lo 20 de la tercera edicin. Hay un nuevo apartado sobre los sistemas de directorio, en parti- cular LDAP, ya que se usan ampliamente como un mecanismo para hacer disponible la informacin en una conguracin distribuida. Otros temas. Aunque se ha modicado y actualizado el texto completo, nuestra presentacin del material que tiene relacin con el continuo desarrollo de bases de datos y las nuevas apli- caciones de bases de datos se tratan en cuatro nuevos captulos, del Captulo 21 al 24. El Captulo 21 es nuevo en la cuarta edicin y trata el desarrollo y administracin de apli- caciones. La descripcin de la construccin de interfaces Web para bases de datos, incluyendo servlets y otros mecanismos para las secuencias de comandos para el lado del servidor, es nueva. La seccin sobre ajuste de rendimiento, que estaba anteriormente en el Captulo 19, tiene nuevo material sobre la famosa regla de 5 minutos y sobre la regla de 1 minuto, as como algunos nuevos ejemplos. El tratamiento de la seleccin de vistas materializadas tambin es nuevo. El tratamiento de los programas de prueba y de los estndares se ha actualizado. Hay una nueva seccin sobre comercio electrnico, centrndose en los aspectos de las bases de datos en el comercio electrnico y un nuevo apartado que trata los sistemas heredados. El Captulo 22, que trata consultas avanzadas y recuperacin de la informacin, incluye nuevo material sobre OLAP, particularmente sobre las extensiones de SQL:1999 para anli- sis de datos. El estudio de los almacenes de datos y de la recopilacin de datos tambin se ha ampliado en gran medida. El tratamiento de la recuperacin de la informacin se ha aumen- tado signicativamente, en particular en el rea de la bsqueda Web. Las versiones anterio- res de este material estaban en el Captulo 21 de la tercera edicin. El Captulo 23, que trata tipos de datos avanzados y nuevas aplicaciones, contiene mate- rial sobre datos temporales, datos espaciales, datos multimedia y bases de datos mviles. Este material es una versin actualizada del material que se encontraba en el Captulo 21 de la ter- cera edicin. El Captulo 24, que trata el procesamiento de transacciones avanzado, contiene versiones actualizadas de los monitores TP, sistemas de flujo de datos, bases de datos en memoria principal y de tiempo real, transacciones de larga duracin y gestin de transaccio- nes en mltiples bases de datos, que aparecieron en el Captulo 20 de la tercera edicin.NOTA PARA EL PROFESOREl libro contiene tanto material bsico como material avanzado, que podra no ser abordado enun nico semestre. Se han marcado varios apartados como avanzados, usando el smbolo **.Estos apartados se pueden omitir, si se desea, sin prdida de continuidad. Es posible disear cursos usando varios subconjuntos de los captulos. A continuacin semuestran varias posibilidades: El Captulo 5 se puede omitir si los estudiantes no van a usar QBE o Datalog como parte del curso. Si la programacin orientada a objetos se va a tratar en un curso avanzado por separado, los Captulos 8 y 9 y el Apartado 11.9 se pueden omitir. Alternativamente, con ellos se puede constituir la base de un curso avanzado de bases de datos orientadas a objetos. El Captulo 10 (XML) y el Captulo 14 (optimizacin de consultas) se pueden omitir para un curso introductorio. XXI
  • 19. PREFACIO Tanto el tratamiento del procesamiento de transacciones (Captulos 15 al 17) como de la arqui- tectura de sistemas de bases de datos (Captulos 18 al 20) poseen un captulo de visin de conjunto (Captulos 15 y 18 respectivamente), seguidos de captulos ms detallados. Se podra elegir usar los Captulos 15 y 18, omitiendo los Captulos 16, 17, 19 y 20, si se relegan estos captulos para un curso avanzado. Los Captulos 21 al 24 son adecuados para un curso avanzado o para autoaprendizaje de los estudiantes, aunque el apartado 21.1 se puede tratar en un primer curso de bases de datos. Se puede encontrar un modelo de plan de estudios del curso, a partir del texto, en la pgina inicial Web del libro (vase el siguiente apartado). PGINA WEB Y SUPLEMENTOS PARA LA ENSEANZA Est disponible una pgina World Wide Web para este libro en el URL: http://www.bell-labs.com/topic/books/db-book La pgina Web contiene: Transparencias de todos los captulos del libro. Respuestas a ejercicios seleccionados. Los tres apndices. Una lista de erratas actualizada. Material suplementario proporcionado por usuarios del libro. Se puede proporcionar un manual completo de soluciones slo a las facultades. Para obte- ner ms informacin sobre cmo obtener una copia del manual de soluciones enve por favor un correo electrnico a [email protected]. En los Estados Unidos se puede llamar al 800-338-3987. La pgina Web de McGraw-Hill para este libro es: http://www.mcgraw-hill.es/olc/silberschatz CMO CONTACTAR CON LOS AUTORES Y OTROS USUARIOS Se ha creado una lista de correo electrnico con la que los usuarios de este libro pueden comu- nicarse entre s y con los autores. Si desea incorporarse a la lista, por favor mande un mensaje a [email protected], incluyendo su nombre, afiliacin, puesto y direccin de correo electrnico. Nos hemos esforzado para eliminar erratas y problemas del texto, pero, como en los nuevos desarrollos de software, probablemente queden fallos; hay una lista de erratas actualizada acce- sible desde la pgina inicial del libro*. Agradeceramos que se nos noticara cualquier error u omisin del libro que no se encuentre en la lista actual de erratas. Tambin desearamos recibir sugerencias sobre la mejora del libro. Damos la bienvenida a aquellas contribuciones a la pgina Web del libro que pudiesen ser usadas por otros lectores, como ejercicios de programacin, sugerencias sobre proyectos, laboratorios y tutoriales en lnea, y consejos de enseanza. El correo electrnico se deber dirigir a [email protected]. Cualquier otra correspondencia se debe enviar a Avi Silberschatz, Bell Laboratories, Room 2T-310, 600 Moun- tain Avenue, Murray Hill, NJ 07974, EE.UU. * N. del T. Todas las erratas de la versin original en ingls incluidas en esta pgina Web en el momento de na- lizar la traduccin se han corregido en este libro. XXII
  • 20. PREFACIOAGRADECIMIENTOSEsta edicin se ha beneciado de los muchos y tiles comentarios que nos han proporcionadolos muchos estudiantes que han usado la tercera edicin. Adems, gran cantidad de personasnos han escrito o hablado acerca del libro, y nos han ofrecido sugerencias y comentarios. Aun-que no podemos mencionar aqu a todas, agradecemos especialmente a las siguientes: Phil Bernhard, Instituto de Tecnologa de Florida; Eitan M. Gurari, Universidad del estado de Ohio; Irwin Levinstein, Universidad Old Dominion; Ling Liu, Instituto de Tecnologa de Georgia; Ami Motro, Universidad George Mason; Bhagirath Narahari, Meral Ozsoyoglu, Universidad Case Western Reserve; y Odinaldo Rodrguez, Kings College de Londres; que sirvieron como revisores del libro y cuyos comentarios nos ayudaron en gran medida en la formulacin de esta cuarta edicin. Soumen Chakrabarti, Sharad Mehrotra, Krithi Ramamritham, Mike Reiter, Sunita Sarawagi, N. L. Sarda y Dilys Thomas, por su amplia y valiosa realimentacin sobre varios captulos del libro. Phil Bohannon, por escribir el primer borrador del Captulo 10 describiendo XML. Hakan Jakobsson (Oracle), Sriram Padmanabbhan (IBM) y Csar Galindo-Legareia, Goetz Graefe, Jos A. Blakeley, Kalen Delaney, Michael Rys, Michael Zwilling, Sameet Agarwal, Thomas Casey (todos de Microsoft), por escribir los apndices sobre los sistemas de bases de datos Oracle, IBM DB2 y Microsoft SQL Server. Yuri Breitbart, por su ayuda con el captulo sobre bases de datos distribuidas; Mark Reiter, por su ayuda con los apartados de seguridad; y Jim Melton, por las aclaraciones sobre SQL:1999. Marilyn Turnamian y Nandprasad Joshi, cuya excelente asistencia secretarial fue esencial para terminar a tiempo esta cuarta edicin. La editora fue Betsy Jones. El editor de desarrollo senior fue Kelly Butcher. El director deproyecto fue Jill Peter. El director de marketing ejecutivo fue John Wannemacher. El ilustradorde la portada fue Paul Tumbaugh mientras que el diseador de la portada fue JoAnne Schopler.El editor de copia fue George Watson. El corrector de pruebas fue Marie Zartman. El produc-tor del material complementario fue Jodi Banowetz. El diseador fue Rick Noel. El indexadorfue Tobiah Waldron. Esta edicin est basada en las tres ediciones previas, as que los autores dan las gracias unavez ms a las muchas personas que ayudaron con las tres primeras ediciones, incluyendo a R.B.Abhyankar, Don Batory, Haran Boral, Paul Bourgeois, Robert Brazile, Michael Carey, J. Edwards,Christos Faloutsos, Homma Farian, Alan Fekete, Shashi Gadia, Jim Gray, Le Gruenwald, Yan-nis Ioannidis, Hyoung-Joo Kim, Henry Korth (padre de Henry F.), Carol Kroll, Gary Linds-trom, Dave Maier, Keith Marzullo, Fletcher Mattox, Alberto Mendelzon, Hctor Garca-Molina,Ami Motro, Anil Nigam, Cyril Orji, Bruce Porter, Jim Peterson, K.V. Raghavan, Mark Roth,Marek Rusinkiewicz, S. Seshadri, Shashi Shekhar, Amit Sheth, Nandit Soparkar, Greg Spee-gle y Marianne Winslett. Lyn Dupr edit y corrigi la tercera edicin del libro y Sara Strandt-man edit el texto de la tercera edicin. Greg Speegle, Dawn Bezviner y K. V. Raghavan nosayudaron a preparar el manual del profesor para ediciones anteriores. La nueva portada es unaevolucin de las portadas de las tres primeras ediciones. Marilyn Turnamian cre un primerboceto del diseo de la portada para esta edicin. La idea de usar barcos como parte del con-cepto de la portada fue sugerida originalmente por Bruce Stephan. Finalmente, Sudarshan deseara agradecer a su esposa, Sita, por su amor y apoyo, a su hijode dos aos Madhur por su amor, y a su madre, Indira, por su apoyo. Hank deseara agradecera su esposa, Joan, y a sus hijos, Abby y Joe, por su amor y comprensin. Avi deseara agrade-cer a su esposa Haya y a su hijo Aaron por su paciencia y apoyo durante la revisin de estelibro. A.S. H.F.K. S.S. XXIII
  • 21. CAPTULO 1 INTRODUCCIN U N sistema gestor de bases de datos (SGBD) consiste en una coleccin de datos inter- relacionados y un conjunto de programas para acceder a dichos datos. La coleccin de datos, normalmente denominada base de datos, contiene informacin relevante para una empresa. El objetivo principal de un SGBD es proporcionar una forma de almacenar y recu- perar la informacin de una base de datos de manera que sea tanto prctica como eciente. Los sistemas de bases de datos se disean para gestionar grandes cantidades de informacin. La gestin de los datos implica tanto la denicin de estructuras para almacenar la informacin como la provisin de mecanismos para la manipulacin de la informacin. Adems, los siste- mas de bases de datos deben proporcionar la abilidad de la informacin almacenada, a pesar de las cadas del sistema o los intentos de acceso sin autorizacin. Si los datos van a ser com- partidos entre diversos usuarios, el sistema debe evitar posibles resultados anmalos. Dado que la informacin es tan importante en la mayora de las organizaciones, los cient- cos informticos han desarrollado un amplio conjunto de conceptos y tcnicas para la gestin de los datos. En este captulo se presenta una breve introduccin a los principios de los siste- mas de bases de datos. 1.1. APLICACIONES DE LOS SISTEMAS DE BASES DE DATOSLas bases de datos son ampliamente usadas. Las si- Produccin. Para la gestin de la cadena de pro-guientes son algunas de sus aplicaciones ms repre- duccin y para el seguimiento de la produccin desentativas: elementos en las factoras, inventarios de elemen- tos en almacenes y pedidos de elementos. Banca. Para informacin de los clientes, cuentas Recursos humanos. Para informacin sobre los em- y prstamos, y transacciones bancarias. pleados, salarios, impuestos y benecios, y para la Lneas areas. Para reservas e informacin de pla- generacin de las nminas. nicacin. Las lneas areas fueron de los prime- ros en usar las bases de datos de forma distribui- Como esta lista ilustra, las bases de datos forman una da geogrficamente (los terminales situados en parte esencial de casi todas las empresas actuales. todo el mundo accedan al sistema de bases de A lo largo de las ltimas cuatro dcadas del siglo vein- datos centralizado a travs de las lneas telefni- te, el uso de las bases de datos creci en todas las empre- cas y otras redes de datos). sas. En los primeros das, muy pocas personas interac- Universidades. Para informacin de los estudian- tuaron directamente con los sistemas de bases de datos, tes, matrculas de las asignaturas y cursos. aunque sin darse cuenta interactuaron con bases de datos Transacciones de tarjetas de crdito. Para com- indirectamente (con los informes impresos como extrac- pras con tarjeta de crdito y generacin mensual tos de tarjetas de crdito, o mediante agentes como caje- de extractos. ros de bancos y agentes de reserva de lneas areas). Des- Telecomunicaciones. Para guardar un registro de pus vinieron los cajeros automticos y permitieron a los las llamadas realizadas, generacin mensual de usuarios interactuar con las bases de datos. Las interfaces facturas, manteniendo el saldo de las tarjetas tele- telefnicas con los computadores (sistemas de respuesta fnicas de prepago y para almacenar informacin vocal interactiva) tambin permitieron a los usuarios mane- sobre las redes de comunicaciones. jar directamente las bases de datos. Un llamador poda marcar un nmero y pulsar teclas del telfono para intro- Finanzas. Para almacenar informacin sobre gran- ducir informacin o para seleccionar opciones alternati- des empresas, ventas y compras de documentos vas, para determinar las horas de llegada o salida, por ejem- formales nancieros, como bolsa y bonos. plo, o para matricularse de asignaturas en una universidad. Ventas. Para informacin de clientes, productos y La revolucin de Internet a finales de la dcada de compras. 1990 aument significativamente el acceso directo del 1
  • 22. FUNDAMENTOS DE BASES DE DATOSusuario a las bases de datos. Las organizaciones con- los accesos Web pueden ser almacenados en una basevirtieron muchas de sus interfaces telefnicas a las de datos.bases de datos en interfaces Web, y pusieron disponi- As, aunque las interfaces de datos ocultan detallesbles en lnea muchos servicios. Por ejemplo, cuando del acceso a las bases de datos, y la mayora de la gen-se accede a una tienda de libros en lnea y se busca un te ni siquiera es consciente de que estn interactuandolibro o una coleccin de msica se est accediendo a con una base de datos, el acceso a las bases de datos for-datos almacenados en una base de datos. Cuando se ma una parte esencial de la vida de casi todas las per-solicita un pedido en lnea, el pedido se almacena en sonas actualmente.una base de datos. Cuando se accede a un banco en un La importancia de los sistemas de bases de datos sesitio Web y se consulta el estado de la cuenta y los puede juzgar de otra forma: actualmente, los vendedo-movimientos, la informacin se recupera del sistema res de sistemas de bases de datos como Oracle estnde bases de datos del banco. Cuando se accede a un entre las mayores compaas software en el mundo, ysitio Web, la informacin personal puede ser recupe- los sistemas de bases de datos forman una parte impor-rada de una base de datos para seleccionar los anun- tante de la lnea de productos de compaas ms diver-cios que se deberan mostrar. Ms an, los datos sobre sicadas, como Microsoft e IBM. 1.2. SISTEMAS DE BASES DE DATOS FRENTE A SISTEMAS DE ARCHIVOSConsidrese parte de una empresa de cajas de ahorros que Mantener informacin de la organizacin en un sis-mantiene informacin acerca de todos los clientes y cuen- tema de procesamiento de archivos tiene una serie detas de ahorros. Una manera de mantener la informacin inconvenientes importantes:en un computador es almacenarla en archivos del siste-ma operativo. Para permitir a los usuarios manipular la Redundancia e inconsistencia de datos. Debidoinformacin, el sistema tiene un nmero de programas a que los archivos y programas de aplicacin sonde aplicacin que manipula los archivos, incluyendo: creados por diferentes programadores en un largo Un programa para efectuar cargos o abonos en una perodo de tiempo, los diversos archivos tienen pro- cuenta. bablemente diferentes formatos y los programas pueden estar escritos en diferentes lenguajes. Ms Un programa para aadir una cuenta nueva. an, la misma informacin puede estar duplicada Un programa para calcular el saldo de una cuenta. en diferentes lugares (archivos). Por ejemplo, la Un programa para generar las operaciones men- direccin y nmero de telfono de un cliente parti- suales. cular puede aparecer en un archivo que contenga Estos programas de aplicacin se han escrito por pro- registros de cuentas de ahorros y en un archivo quegramadores de sistemas en respuesta a las necesidades contenga registros de una cuenta corriente. Estade la organizacin bancaria. redundancia conduce a un almacenamiento y cos- Si las necesidades se incrementan, se aaden nuevos te de acceso ms altos. Adems, puede conducir aprogramas de aplicacin al sistema. Por ejemplo, supn- inconsistencia de datos; es decir, las diversasgase que las regulaciones de un nuevo gobierno permi- copias de los mismos datos pueden no coincidir.ten a las cajas de ahorros ofrecer cuentas corrientes. Por ejemplo, un cambio en la direccin del clienteComo resultado se crean nuevos archivos permanentes puede estar reejado en los registros de las cuentasque contengan informacin acerca de todas las cuentas de ahorro pero no estarlo en el resto del sistema.corrientes mantenidas por el banco, y puede ser necesa- Dicultad en el acceso a los datos. Supngase querio escribir nuevos programas de aplicacin para tratar uno de los empleados del banco necesita averiguarsituaciones que no existan en las cuentas de ahorro, tales los nombres de todos los clientes que viven en elcomo manejar descubiertos. As, sobre la marcha, se aa- distrito postal 28733 de la ciudad. El empleado pideden ms archivos y programas de aplicacin al sistema. al departamento de procesamiento de datos que Este sistema de procesamiento de archivos tpico genere dicha lista. Debido a que esta peticin noque se acaba de describir se mantiene mediante un sis- fue prevista cuando el sistema original fue disea-tema operativo convencional. Los registros permanen- do, no hay un programa de aplicacin a mano parates son almacenados en varios archivos y se escriben satisfacerla. Hay, sin embargo, un programa de apli-diferentes programas de aplicacin para extraer regis- cacin que genera la lista de todos los clientes. Eltros y para aadir registros a los archivos adecuados. empleado del banco tiene ahora dos opciones: bienAntes de la llegada de los sistemas de gestin de bases obtener la lista de todos los clientes y obtener lade datos (SGBDs), las organizaciones normalmente han informacin que necesita manualmente, o bien pediralmacenado la informacin usando tales sistemas. al departamento de procesamiento de datos que haga 2
  • 23. CAPTULO 1 INTRODUCCIN que un programador de sistemas escriba el progra- ferencia de fondos debe ser atmica: sta debe ocu- ma de aplicacin necesario. Ambas alternativas son rrir en ellos por completo o no ocurrir en absoluto. obviamente insatisfactorias. Supngase que se escri- Es difcil asegurar esta propiedad en un sistema de be tal programa y que, varios das ms tarde, el mis- procesamiento de archivos convencional. mo empleado necesita arreglar esa lista para incluir Anomalas en el acceso concurrente. Conforme se slo aquellos clientes que tienen una cuenta con sal- ha ido mejorando el conjunto de ejecucin de los do de 10.000 o ms. Como se puede esperar, un sistemas y ha sido posible una respuesta en tiempo programa para generar tal lista no existe. De nue- ms rpida, muchos sistemas han ido permitiendo a vo, el empleado tiene que elegir entre dos opcio- mltiples usuarios actualizar los datos simultnea- nes, ninguna de las cuales es satisfactoria. mente. En tales sistemas un entorno de interaccin La cuestin aqu es que el entorno de procesa- de actualizaciones concurrentes puede dar lugar a miento de archivos convencional no permite que datos inconsistentes. Considrese una cuenta ban- los datos necesarios sean obtenidos de una forma caria A, que contiene 500 . Si dos clientes retiran prctica y eciente. Se deben desarrollar sistemas fondos (por ejemplo 50 y 100 respectivamen- de recuperacin de datos ms interesantes para un te) de la cuenta A en aproximadamente el mismo uso general. tiempo, el resultado de las ejecuciones concurrentes Aislamiento de datos. Debido a que los datos puede dejar la cuenta en un estado incorrecto (o estn dispersos en varios archivos, y los archivos inconsistente). Supongamos que los programas se pueden estar en diferentes formatos, es difcil escri- ejecutan para cada retirada y escriben el resultado bir nuevos programas de aplicacin para recupe- despus. Si los dos programas funcionan concu- rar los datos apropiados. rrentemente, pueden leer ambos el valor 500 , y Problemas de integridad. Los valores de los datos escribir despus 450 y 400 , respectivamente. almacenados en la base de datos deben satisfacer Dependiendo de cul escriba el ltimo valor, la cuen- ciertos tipos de restricciones de consistencia. Por ta puede contener bien 450 o bien 400 , en lugar ejemplo, el saldo de una cuenta bancaria no puede del valor correcto, 350 . Para protegerse contra esta nunca ser ms bajo de una cantidad predetermina- posibilidad, el sistema debe mantener alguna forma da (por ejemplo 25 ). Los desarrolladores hacen de supervisin. Sin embargo, ya que se puede acce- cumplir esas restricciones en el sistema aadiendo der a los datos desde muchos programas de aplica- el cdigo apropiado en los diversos programas de cin diferentes que no han sido previamente coor- aplicacin. Sin embargo, cuando se aaden nuevas dinados, la supervisin es difcil de proporcionar. restricciones, es difcil cambiar los programas para Problemas de seguridad. No todos los usuarios de hacer que se cumplan. El problema es complicado un sistema de bases de datos deberan poder acce- cuando las restricciones implican diferentes ele- der a todos los datos. Por ejemplo, en un sistema mentos de datos de diferentes archivos. bancario, el personal de nminas necesita ver slo Problemas de atomicidad. Un sistema de un com- esa parte de la base de datos que tiene informacin putador, como cualquier otro dispositivo mecni- acerca de varios empleados del banco. No necesi- co o elctrico, est sujeto a fallo. En muchas apli- tan acceder a la informacin acerca de las cuentas caciones es crucial asegurar que, una vez que un de clientes. Como los programas de aplicacin se fallo ha ocurrido y se ha detectado, los datos se res- aaden al sistema de una forma ad hoc, es difcil tauran al estado de consistencia que exista antes garantizar tales restricciones de seguridad. del fallo. Consideremos un programa para transfe- rir 50 desde la cuenta A a la B. Si ocurre un fallo Estas dicultades, entre otras, han motivado el desa- del sistema durante la ejecucin del programa, es rrollo de los sistemas de bases de datos. En este libro se posible que los 50 fueron eliminados de la cuen- vern los conceptos y algoritmos que han sido inclui- ta A pero no abonados a la cuenta B, resultando un dos en los sistemas de bases de datos para resolver los estado de la base de datos inconsistente. Clara- problemas mencionados anteriormente. En la mayor mente, es esencial para la consistencia de la base parte de este libro se usa una empresa bancaria como el de datos que ambos, el abono y el cargo tengan ejemplo de una aplicacin corriente de procesamiento lugar, o que ninguno tenga lugar. Es decir, la trans- de datos tpica encontrada en una empresa. 1.3. VISIN DE LOS DATOSUn sistema de bases de datos es una coleccin de archi- de bases de datos es proporcionar a los usuarios unavos interrelacionados y un conjunto de programas que visin abstracta de los datos. Es decir, el sistema escon-permitan a los usuarios acceder y modicar estos archi- de ciertos detalles de cmo se almacenan y mantienenvos. Uno de los propsitos principales de un sistema los datos. 3
  • 24. FUNDAMENTOS DE BASES DE DATOS1.3.1. Abstraccin de datos nivel de vistasPara que el sistema sea til debe recuperar los datos e- ... vista 1 vista 2 vista ncientemente. Esta preocupacin ha conducido al dise-o de estructuras de datos complejas para la represen-tacin de los datos en la base de datos. Como muchos nivelusuarios de sistemas de bases de datos no estn fami- lgicoliarizados con computadores, los desarrolladores escon-den la complejidad a los usuarios a travs de varios nive- nivelles de abstraccin para simplicar la interaccin de los fsicousuarios con el sistema: FIGURA 1.1. Los tres niveles de abstraccin de datos. Nivel fsico: El nivel ms bajo de abstraccin des- cribe cmo se almacenan realmente los datos. En Este cdigo dene un nuevo registro llamado clien- el nivel fsico se describen en detalle las estructu- te con cuatro campos. Cada campo tiene un nombre y ras de datos complejas de bajo nivel. un tipo asociado a l. Una empresa bancaria puede tener Nivel lgico: El siguiente nivel ms alto de abs- varios tipos de registros, incluyendo traccin describe qu datos se almacenan en la base de datos y qu relaciones existen entre esos cuenta, con campos nmero-cuenta y saldo datos. La base de datos completa se describe as empleado, con campos nombre-empleado y sueldo en trminos de un nmero pequeo de estructu- ras relativamente simples. Aunque la implemen- En el nivel fsico, un registro cliente, cuenta o emplea- tacin de estructuras simples en el nivel lgico do se puede describir como un bloque de posiciones puede involucrar estructuras complejas del nivel almacenadas consecutivamente (por ejemplo, palabras fsico, los usuarios del nivel lgico no necesitan o bytes). El compilador del lenguaje esconde este nivel preocuparse de esta complejidad. Los adminis- de detalle a los programadores. Anlogamente, el sis- tradores de bases de datos, que deben decidir la tema de base de datos esconde muchos de los detalles informacin que se mantiene en la base de datos, de almacenamiento de nivel inferior a los programado- usan el nivel lgico de abstraccin. res de bases de datos. Los administradores de bases de Nivel de vistas: El nivel ms alto de abstraccin datos pueden ser conscientes de ciertos detalles de la describe slo parte de la base de datos completa. organizacin fsica de los datos. A pesar del uso de estructuras ms simples en el En el nivel lgico cada registro de este tipo se des- nivel lgico, queda algo de complejidad, debido a cribe mediante una denicin de tipo, como se ha ilus- la variedad de informacin almacenada en una gran trado en el fragmento de cdigo previo, y se dene la base de datos. Muchos usuarios del sistema de base relacin entre estos tipos de registros. Los programa- de datos no necesitan toda esta informacin. En su dores, cuando usan un lenguaje de programacin, tra- lugar, tales usuarios necesitan acceder slo a una bajan en este nivel de abstraccin. De forma similar, los parte de la base de datos. Para que su interaccin administradores de bases de datos trabajan habitual- con el sistema se simplique, se dene la abstrac- mente en este nivel de abstraccin. cin del nivel de vistas. El sistema puede propor- Finalmente, en el nivel de vistas, los usuarios de com- cionar muchas vistas para la misma base de datos. putadores ven un conjunto de programas de aplicacin que esconden los detalles de los tipos de datos. Anlo- La Figura 1.1 muestra la relacin entre los tres nive- gamente, en el nivel de vistas se denen varias vistasles de abstraccin. de una base de datos y los usuarios de la misma ven ni- Una analoga con el concepto de tipos de datos en ca y exclusivamente esas vistas. Adems de esconderlenguajes de programacin puede clarificar la distin- detalles del nivel lgico de la base de datos, las vistascin entre los niveles de abstraccin. La mayora de tambin proporcionan un mecanismo de seguridad paralenguajes de programacin de alto nivel soportan la evitar que los usuarios accedan a ciertas partes de laestructura de tipo registro. Por ejemplo, en un len- base de datos. Por ejemplo, los cajeros de un banco venguaje tipo Pascal, se pueden declarar registros como nicamente la parte de la base de datos que tiene infor-sigue: macin de cuentas de clientes; no pueden acceder a la informacin referente a los sueldos de los empleados. type cliente = record nombre-cliente : string; 1.3.2. Ejemplares y esquemas id-cliente : string; calle-cliente : string; Las bases de datos van cambiando a lo largo del tiem- ciudad-cliente : string; po conforme la informacin se inserta y borra. La colec- end; cin de informacin almacenada en la base de datos en 4
  • 25. CAPTULO 1 INTRODUCCINun momento particular se denomina un ejemplar de la cribe el diseo de la base de datos en el nivel lgico. Unabase de datos. El diseo completo de la base de datos base de datos puede tener tambin varios esquemas ense llama el esquema de la base de datos. Los esquemas el nivel de vistas, a menudo denominados subesquemas,son raramente modicados, si es que lo son alguna vez. que describen diferentes vistas de la base de datos. El concepto de esquemas y ejemplares de bases de De stos, el esquema lgico es con mucho el msdatos se puede entender por analoga con un programa importante, en trminos de su efecto en los programasescrito en un lenguaje de programacin. Un esquema de aplicacin, ya que los programadores construyen lasde base de datos corresponde a las declaraciones de aplicaciones usando el esquema lgico. El esquema fsi-variables (junto con definiciones de tipos asociadas) co est oculto bajo el esquema lgico, y puede ser fcil-en un programa. Cada variable tiene un valor particu- mente cambiado usualmente sin afectar a los programaslar en un instante de tiempo. Los valores de las varia- de aplicacin. Los programas de aplicacin se dice quebles en un programa en un instante de tiempo corres- muestran independencia fsica de datos si no dependenponde a un ejemplar de un esquema de bases de datos. del esquema fsico y, por tanto, no deben ser modica- Los sistemas de bases de datos tiene varios esquemas dos si cambia el esquema fsico.divididos de acuerdo a los niveles de abstraccin que se Se estudiarn los lenguajes para la descripcin de loshan discutido. El esquema fsico describe el diseo fsi- esquemas, despus de introducir la nocin de modelosco en el nivel fsico, mientras que el esquema lgico des- de datos en el siguiente apartado. 1.4. MODELOS DE LOS DATOSBajo la estructura de la base de datos se encuentra el cin y ciudad. Se debe asignar un identificador nicomodelo de datos: una coleccin de herramientas con- de cliente a cada cliente. En los Estados Unidos, muchasceptuales para describir los datos, las relaciones, la empresas utilizan el nmero de la seguridad social desemntica y las restricciones de consistencia. Para ilus- una persona (un nmero nico que el Gobierno de lostrar el concepto de un modelo de datos, describimos dos Estados Unidos asigna a cada persona en los Estadosmodelos de datos en este apartado: el modelo entidad- Unidos) como identicador de cliente*.relacin y el modelo relacional. Los diferentes mode- Una relacin es una asociacin entre varias entida-los de datos que se han propuesto se clasican en tres des. Por ejemplo, una relacin impositor asocia un clien-grupos diferentes: modelos lgicos basados en objetos, te con cada cuenta que tiene. El conjunto de todas lasmodelos lgicos basados en registros y modelos fsicos. entidades del mismo tipo, y el conjunto de todas las rela- ciones del mismo tipo, se denominan respectivamente1.4.1. Modelo entidad-relacin conjunto de entidades y conjunto de relaciones. La estructura lgica general de una base de datos seEl modelo de datos entidad-relacin (E-R) est basado puede expresar grcamente mediante un diagrama E-en una percepcin del mundo real que consta de una R, que consta de los siguientes componentes:coleccin de objetos bsicos, llamados entidades, y derelaciones entre estos objetos. Una entidad es una cosa Rectngulos, que representan conjuntos de enti-u objeto en el mundo real que es distinguible de otros dades.objetos. Por ejemplo, cada persona es una entidad, y las Elipses, que representan atributos.cuentas bancarias pueden ser consideradas entidades. Rombos, que representan relaciones entre con- Las entidades se describen en una base de datos juntos de entidades.mediante un conjunto de atributos. Por ejemplo, los Lneas, que unen los atributos con los conjuntosatributos nmero-cuenta y saldo describen una cuenta de entidades y los conjuntos de entidades con lasparticular de un banco y pueden ser atributos del con- relaciones.junto de entidades cuenta. Anlogamente, los atributosnombre-cliente, calle-cliente y ciudad-cliente pueden Cada componente se etiqueta con la entidad o rela-describir una entidad cliente. cin que representa. Un atributo extra, id-cliente, se usa para identicar Como ilustracin, considrese parte de una base deunvocamente a los clientes (dado que puede ser posi- datos de un sistema bancario consistente en clientes yble que haya dos clientes con el mismo nombre, direc- cuentas que tienen esos clientes. En la Figura 1.2 se * N. del T. En Espaa, muchas empresas usan el D.N.I. como identi- cador unvoco, pero a veces encuentran problemas con los nme- ros de D.N.I. que por desgracia aparecen repetidos. Para resolverlo, o bien se usa otro identicador propio de la empresa o se aade un cdigo al nmero de D.N.I. 5
  • 26. FUNDAMENTOS DE BASES DE DATOS nombre-cliente calle-cliente nmero de cuenta saldo La primera tabla, la tabla cliente, muestra, por ejem- plo, que el cliente cuyo identicador es 19.283.746 se lla- id-cliente ma Gonzlez y vive en la calle Arenal sita en La Granja. ciudad-cliente La segunda tabla, cuenta, muestra que las cuentas C-101 tienen un saldo de 500 y la C-201 un saldo de 900 cliente impositor cuenta respectivamente. La tercera tabla muestra las cuentas que pertenecen a cada cliente. Por ejemplo, la cuenta C-101 perteneceFIGURA 1.2. Ejemplo de diagrama E-R. al cliente cuyo identicador es 19.283.746 (Gonzlez), y los clientes 19.283.746 (Gonzlez) y 01.928.374muestra el diagrama E-R correspondiente. El diagrama (Gmez) comparten el nmero de cuenta A-201 (pue-E-R indica que hay dos conjuntos de entidades cliente den compartir un negocio).y cuenta, con los atributos descritos anteriormente. El El modelo relacional es un ejemplo de un modelodiagrama tambin muestra la relacin impositor entre basado en registros. Los modelos basados en registroscliente y cuenta. se denominan as porque la base de datos se estructura Adems de entidades y relaciones, el modelo E-R en registros de formato jo de varios tipos. Cada tablarepresenta ciertas restricciones que los contenidos de la contiene registros de un tipo particular. Cada tipo debase de datos deben cumplir. Una restriccin importante registro dene un nmero jo de campos, o atributos.es la correspondencia de cardinalidades, que expresa Las columnas de la tabla corresponden a los atributosel nmero de entidades con las que otra entidad se pue- del tipo de registro.de asociar a travs de un conjunto de relaciones. Por No es difcil ver cmo se pueden almacenar las tablasejemplo, si cada cuenta puede pertenecer slo a un clien- en archivos. Por ejemplo, un carcter especial (comote, el modelo puede expresar esta restriccin. una coma) se puede usar para delimitar los diferentes El modelo entidad-relacin se utiliza habitualmente atributos de un registro, y otro carcter especial (comoen el proceso de diseo de bases de datos, y se estudia- un carcter de nueva lnea) se puede usar para delimitarr en produndidad en el Captulo 2. registros. El modelo relacional oculta tales detalles de implementacin de bajo nivel a los desarrolladores de1.4.2. Modelo relacional bases de datos y usuarios.En el modelo relacional se utiliza un grupo de tablas El modelo de datos relacional es el modelo de datospara representar los datos y las relaciones entre ellos.