Sistemas de Gestión de B ases de dato s Tercera edición Ramakrishnan (cid:127) Gehrke ´ SISTEMAS DE GESTION DE BASES DE DATOS Tercera Edici´on ´ SISTEMAS DE GESTION DE BASES DE DATOS Tercera Edici´on Raghu Ramakrishnan Universidad de Wisconsin Madison, Wisconsin, EE.UU. Johannes Gehrke Universidad de Cornell Ithaca, Nueva York, EE.UU. Traducci´on Jesu´s Correas Ferna´ndez Antonio Garc´ıa Cordero Carolina Lo´pez Mart´ınez Revisio´n t´ecnica Fernando Sa´enz P´erez Universidad Complutense de Madrid MADRID BOGOTA´ BUENOS AIRES CARACAS GUATEMALA LISBOA ME´XICO NUEVA YORK PANAMA´ SAN JUAN SANTIAGO SAO PAULO AUCKLAND HAMBURGO LONDRES MILA´N MONTREAL NUEVA DELHI PAR´IS SAN FRANCISCO SIDNEY SINGAPUR ST. LOUIS TOKIO TORONTO Lainformaci´oncontenidaenestelibroprocededeunaobraoriginalpublicadaporMcGraw-Hill.Noobstante, McGraw-Hill/InteramericanadeEspan˜anogarantizalaexactitudoperfecci´ondelainformaci´onpublicada.Tampoco asumeningu´ntipodegarant´ıasobreloscontenidosylasopinionesvertidasendichostextos. Estetrabajosepublicaconelreconocimientoexpresodequeseest´aproporcionandounainformaci´on,perono tratandodeprestarningu´ntipodeservicioprofesionalot´ecnico.Losprocedimientosylainformaci´onquesepresentan enestelibrotienens´ololaintenci´ondeservircomogu´ıageneral. McGraw-Hillhasolicitadolospermisosoportunosparalarealizaci´onyeldesarrollodeestaobra. Sistemas de gesti´on de bases de datos, Tercera Edici´on Noest´apermitidalareproducci´ontotaloparcialdeestelibro,nisutratamientoinform´atico,nila transmisi´ondeningunaformaoporcualquiermedio,yaseaelectr´onico,mec´anico,porfotocopia,por registrouotrosm´etodos,sinelpermisoprevioyporescritodelostitularesdelCopyright. McGraw-Hill/Interamericana de Espan˜a, S.A.U. DERECHOSRESERVADOS(cid:1)c 2007,respectoalaterceraedici´onenespan˜ol,por McGRAW-HILL/INTERAMERICANADEESPAN˜A,S.A.U. EdificioValrealty,1a planta Basauri,17 28023Aravaca(Madrid) http://www.mcgraw-hill.es [email protected] Traducidodelaterceraedici´oneningl´esde Database Management Systems ISBN:0-07-246563-8 Copyright2003porTheMcGraw-HillCompanies,Inc. ISBN: 978-84-481-5638-1 Depo´sito legal: M. Editor:CarmeloS´anchezGonz´alez T´ecnicoeditorial:IsraelSebasti´an Compuestopor:FernandoS´aenzP´erez Impresoen: IMPRESOENESPAN˜A—PRINTEDINSPAIN Para Apu, Ketan y Vivek con amor. Para Keiko y Elisa. CONTENIDO PREFACIO xix Parte I FUNDAMENTOS 1 1 INTRODUCCIO´N A LOS SISTEMAS DE BASES DE DATOS 3 1.1 Gesti´on de datos 4 1.2 Perspectiva hist´orica 5 1.3 Sistemas de archivos y SGBD 7 1.4 Ventajas de los SGBD 8 1.5 Descripci´on y almacenamiento de datos en los SGBD 10 1.5.1 El modelo relacional 10 1.5.2 Niveles de abstracci´on en los SGBD 12 1.5.3 Independencia con respecto a los datos 14 1.6 Las consultas en los SGBD 15 1.7 Gesti´on de transacciones 16 1.7.1 Ejecuci´on concurrente de las transacciones 16 1.7.2 Las transacciones no completadas y los fallos del sistema 17 1.7.3 Puntos a destacar 18 1.8 Arquitectura de los SGBD 18 1.9 Usuarios de las bases de datos 20 1.10 Preguntas de repaso 21 2 INTRODUCCIO´N AL DISEN˜O DE BASES DE DATOS 25 2.1 Disen˜o de bases de datos y diagramas ER 26 2.1.1 M´as all´a del disen˜o ER 27 2.2 Entidades, atributos y conjuntos de entidades 28 2.3 Las relaciones y los conjuntos de relaciones 29 2.4 Otras caracter´ısticas del modelo ER 32 2.4.1 Restricciones de clave en relaciones 32 2.4.2 Restricciones de participaci´on 34 2.4.3 Entidades d´ebiles 35 2.4.4 Jerarqu´ıas de clases 37 vii viii Sistemas de gesti´on de bases de datos 2.4.5 Agregaci´on 39 2.5 Disen˜o conceptual del modelo ER 41 2.5.1 Entidades y atributos 41 2.5.2 Entidades y relaciones 42 2.5.3 Relaciones binarias y ternarias 43 2.5.4 Agregaci´on y relaciones ternarias 45 2.6 Disen˜o conceptual para grandes empresas 46 2.7 El lenguaje unificado de modelado 47 2.8 Estudio de un caso: la tienda en Internet 49 2.8.1 An´alisis de requisitos 49 2.8.2 Disen˜o conceptual 49 2.9 Preguntas de repaso 50 3 EL MODELO RELACIONAL 57 3.1 Introduccio´n al modelo relacional 59 3.1.1 Creaci´on y modificaci´on de relaciones mediante SQL 61 3.2 Restricciones de integridad sobre relaciones 63 3.2.1 Restricciones de clave 64 3.2.2 Restricciones de clave externa 66 3.2.3 Restricciones generales 67 3.3 Cumplimiento de las restricciones de integridad 68 3.3.1 Transacciones y restricciones 71 3.4 Consultas de datos relacionales 72 3.5 Disen˜o l´ogico de bases de datos: del modelo ER al relacional 73 3.5.1 De los conjuntos de entidades a las tablas 73 3.5.2 De los conjuntos de relaciones (sin restricciones) a las tablas 74 3.5.3 Traduccio´n de conjuntos de relaciones con restricciones de clave 76 3.5.4 Traduccio´n de los conjuntos de relaciones con restricciones de par- ticipacio´n 78 3.5.5 Traduccio´n de los conjuntos de entidades d´ebiles 80 3.5.6 Traduccio´n de las jerarqu´ıas de clase 81 3.5.7 Traduccio´n de los diagramas ER con agregaci´on 82 3.5.8 Del modelo ER al relacional: ma´s ejemplos 83 3.6 Introduccio´n a las vistas 84 3.6.1 Vistas, independencia de datos y seguridad 85 3.6.2 Actualizaciones de las vistas 85 3.7 Eliminacio´n y modificaci´on de tablas y vistas 89 3.8 Estudio de un caso: la tienda en Internet 89 3.9 Preguntas de repaso 91 Contenido ix 4 A´LGEBRA Y CA´LCULO RELACIONALES 97 4.1 Preliminares 98 4.2 A´lgebra relacional 98 4.2.1 Selecci´on y proyeccio´n 99 4.2.2 Operaciones con conjuntos 101 4.2.3 Renombramiento 103 4.2.4 Reuniones (join) 103 4.2.5 Divisio´n 105 4.2.6 M´as ejemplos de consultas algebraicas 106 4.3 C´alculo relacional 112 4.3.1 C´alculo relacional de tuplas 112 4.3.2 C´alculo relacional de dominios 117 4.4 Potencia expresiva del a´lgebra y del c´alculo 119 4.5 Preguntas de repaso 120 5 SQL: CONSULTAS, RESTRICCIONES Y DISPARADORES 125 5.1 Introduccio´n 126 5.1.1 Organizacio´n del cap´ıtulo 127 5.2 Forma de las consultas SQL ba´sicas 128 5.2.1 Ejemplos de consultas ba´sicas de SQL 132 5.2.2 Expresiones y cadenas de caracteres en la orden SELECT 133 5.3 UNION, INTERSECT y EXCEPT 135 5.4 Consultas anidadas 138 5.4.1 Introduccio´n a las consultas anidadas 138 5.4.2 Consultas anidadas correlacionadas 140 5.4.3 Operadores para la comparacio´n de conjuntos 141 5.4.4 M´as ejemplos de consultas anidadas 142 5.5 Operadores de agregaci´on 143 5.5.1 Las cl´ausulas GROUP BY y HAVING 146 5.5.2 M´as ejemplos de consultas de agregaci´on 150 5.6 Valores nulos 153 5.6.1 Comparaciones que emplean valores nulos 154 5.6.2 Las conectivas l´ogicas AND, OR y NOT 154 5.6.3 Consecuencias para las estructuras de SQL 154 5.6.4 Reuniones externas 155 5.6.5 Desactivaci´on de los valores nulos 156 5.7 Restricciones de integridad complejas en SQL 156 5.7.1 Restricciones sobre una sola tabla 156