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.