fundamentos de sistemas de bases de datos

1014

Upload: jose-tomas-vergara-diaz

Post on 26-Sep-2015

387 views

Category:

Documents


288 download

DESCRIPTION

l kmñ,

TRANSCRIPT

  • Fundamentos de Sistemas de Bases de Datos

    PRINCIPIOS_ELMASRI.qxd 10/05/2007 10:31 Pgina I

  • PRINCIPIOS_ELMASRI.qxd 10/05/2007 10:31 Pgina II

  • Fundamentos de Sistemas de Bases de Datos

    Quinta Edicin

    RAMEZ ELMASRIDepartment of Computer Science and Engineering

    The University of Texas at Arlington

    SHAMKANT B. NAVATHECollege of Computing

    Georgia Institute of Technology

    Traduccin Jos Manuel Daz

    Boston Q San Francisco Q Nueva York Q LondresToronto Q Sydney Q Tokio Q Singapur Q Madrid Q Ciudad de Mxico

    Munich Q Pars Q Ciudad del Cabo Q Hong Kong Q Montreal

    PRINCIPIOS_ELMASRI.qxd 10/05/2007 10:31 Pgina III

  • Todos los derechos reservados.Queda prohibida, salvo excepcin prevista en la Ley, cualquier forma de reproduccin, distri-bucin, comunicacin pblica y transformacin de esta obra sin contar con autorizacin de los titulares de propiedad intelectual. La infraccin de los derechos mencionados puede ser constitu-tiva de delito contra la propiedad intelectual (arts. 270 y sgts. Cdigo Penal).

    DERECHOS RESERVADOS 2007 por PEARSON EDUCACIN S.A.Ribera del Loira, 2828042 Madrid

    Fundamentos de Sistemas de Bases de DatosRamez Elmasri y Shamkant B. Navathe

    ISBN: 978-84-7829-085-7

    Deposito Legal: ADDISON WESLEY es un sello editorial autorizado de PEARSON EDUCACIN S.A.

    Authorized translation from the English language edition, entitled FUNDAMENTALS OFDATABASE SYSTEMS, 5th Edition by ELMASRI, RAMEZ; NAVATHE, SHAMKANT B.,published by Pearson Education, Inc, publishing as Addison Wesley, Copyright 2007

    EQUIPO EDITORIALEditor: Miguel Martn-RomoTcnico editorial: Marta Caicoya

    EQUIPO DE PRODUCCIN:Director: Jos A. ClaresTcnico: Diego Marn

    Diseo de Cubierta: Equipo de diseo de Pearson Educacin S.A.

    Impreso por:

    IMPRESO EN ESPAA - PRINTED IN SPAINEste libro ha sido impreso con papel y tintas ecolgicos

    Fundamentos de Sistemas de Bases de DatosRamez Elmasri y Shamkant B. NavathePEARSON EDUCACIN S.A., Madrid, 2007

    ISBN: 978-84-7829-085-7

    Materia: Informtica, 004.4

    Formato: 195 x 250 mm. Pginas: 1012

    Datos de catalogacin bibliogrfica

    PRINCIPIOS_ELMASRI.qxd 10/05/2007 10:31 Pgina IV

  • A la artista, la abogada y a la msica de mi vida.

    R. E.

    A Aruna y a Amol, Manisha y por su amor y apoyo.

    S. B. N.

    PREFACIO_ELMASRI.qxd 10/05/2007 10:14 Pgina V

  • PREFACIO_ELMASRI.qxd 10/05/2007 10:14 Pgina VI

  • Prefacio

    Este libro introduce los conceptos fundamentales necesarios para disear, utilizar e implementar sistemasy aplicaciones de bases de datos. Nuestra presentacin acenta los principios bsicos del modelado yel diseo de una base de datos, as como los lenguajes y servicios proporcionados por los sistemasgestores de bases de datos, sin olvidar las tcnicas de implementacin del sistema. El libro est pensado paraser utilizado como libro de texto para un curso (de nivel principiante, medio o avanzado) sobre sistemas debases de datos de uno o dos semestres, o como libro de referencia. Asumimos que el lector est familiarizadocon los conceptos elementales sobre programacin y estructura de los datos.Empezamos en la Parte 1 con una introduccin y una presentacin de los conceptos y la terminologa bsicos,y los principios del modelado conceptual de una base de datos. Concluimos en las Partes 7 y 8 con una intro-duccin a las tecnologas emergentes, como la minera de datos, XML, la seguridad y las bases de datos web.Por el camino (en las Partes 2 a 6) proporcionamos un tratamiento en profundidad de los aspectos ms impor-tantes de los fundamentos de las bases de datos.En la quinta edicin hemos incluido las siguientes caractersticas: Una organizacin flexible e independiente que puede ajustarse a las necesidades individuales. Un captulo nuevo de introduccin a las tcnicas de programacin en SQL para aplicaciones web uti-

    lizando PHP, el popular lenguaje de scripting.

    Un conjunto actualizado y ampliado de ejercicios al final de cada captulo. Una explicacin actualizada sobre seguridad, bases de datos mviles, GIS y la manipulacin de datos

    en bioinformtica.

    Un sitio web complementario (www.librosite.net/elmasri) que incluye datos que pueden cargarse endistintos tipos de bases de datos relacionales al objeto de conseguir unos ejercicios ms realistas.

    Un sencillo intrprete de clculo y lgebra relacionales. Los ejercicios propuestos al final de los captulos (del 3 al 12) versan sobre los temas del captulo y

    funcionan en combinacin con las bases de datos del sitio web complementario; estos ejercicios seamplan posteriormente a medida que se explica material nuevo.

    Una revisin significativa de los suplementos, incluyendo un robusto conjunto de materiales para losprofesores y los estudiantes, como diapositivas de PowerPoint, las figuras del texto y la gua del pro-fesor con las soluciones.

    PREFACIO_ELMASRI.qxd 10/05/2007 10:14 Pgina VII

  • PrefacioVIII

    Principales diferencias con la cuarta edicinLos cambios organizativos en la quinta edicin son mnimos. Las mejoras de esta edicin se han centrado enlos captulos individuales. Los principales cambios son los siguientes:

    Inclusin de nuevos ejercicios de prctica y la mejora de los ejercicios propuestos al final de los cap-tulos (Partes 1 a 3).

    Un nuevo Captulo 26, que es una introduccin a la programacin de bases de datos web utilizando ellenguaje de scripting PHP.

    Ejemplos nuevos que ilustran los algoritmos de normalizacin y diseo de una base de datos (Captulos10 y 11).

    Un Captulo 23 actualizado sobre seguridad. Un Captulo 30 revisado dedicado a las tecnologas y aplicaciones de bases de datos emergentes para

    reflejar lo ms actual sobre bases de datos mviles, GIS y la gestin de los datos del genoma.

    Un diseo nuevo que mejora la apariencia visual de las figuras, y el uso de fuentes especiales para losatributos y los tipos de entidades que mejoran la lectura y la comprensin.

    Contenidos de la quinta edicinLa Parte 1 describe los conceptos bsicos necesarios para un buen entendimiento del diseo y la implemen-tacin de bases de datos, as como las tcnicas de modelado conceptual utilizadas en los sistemas de bases dedatos. Los Captulos 1 y 2 son una introduccin a las bases de datos, los usuarios tpicos y los conceptos deDBMS, su terminologa y su estructura. En el Captulo 3 se presentan y utilizan los conceptos sobre el mode-lo ER (entidad-relacin) y los diagramas ER para ilustrar el diseo conceptual de una base de datos. ElCaptulo 4 se centra en la abstraccin de los datos y los conceptos de modelado semntico de los mismos, yampla la explicacin del modelo ER para incorporar estas ideas, lo que conduce al modelo de datos EER(modelo ER mejorado) y los diagramas EER. Los conceptos presentados incluyen los tipos de subclases, laespecializacin, la generalizacin y la unin (categoras). En los Captulos 3 y 4 tambin explicamos la nota-cin UML para los diagramas de clase.La Parte 2 describe el modelo de datos relacional y los DBMSs relacionales. El Captulo 5 describe el mode-lo relacional bsico, sus restricciones de integridad y las operaciones de actualizacin. El Captulo 6 describelas operaciones del lgebra relacional e introduce el clculo relacional. El Captulo 7 explica el diseo debases de datos relacionales utilizando el mapeado ER- y EER-a-relacional. El Captulo 8 ofrece una panor-mica detallada del lenguaje SQL, incluyendo el estndar SQL que se implementa en la mayora de los siste-mas relacionales. El Captulo 9 abarca temas de programacin en SQL, como SQLJ, JDBC y SQL/CLI.La Parte 3 abarca varios temas relacionados con el diseo de bases de datos. Los Captulos 10 y 11 estn dedi-cados a los formalismos, las teoras y los algoritmos desarrollados para el diseo de bases de datos relaciona-les. Este material incluye los tipos de dependencias funcionales, entre otros, y las formas normales de las rela-ciones. En el Captulo 10 se presentan una normalizacin intuitiva por pasos, mientras que en el Captulo 11se incluyen los algoritmos de diseo relacional con ejemplos. En este captulo tambin se definen otros tiposde dependencias, como las multivalor y las de concatenacin. El Captulo 12 presenta una visin general delas diferentes fases del proceso de diseo de una base de datos para aplicaciones de tamao medio y grande,utilizando UML.La Parte 4 empieza con una descripcin de las estructuras fsicas de los ficheros y de los mtodos de accesoque se utilizan en los sistemas de bases de datos. El Captulo 13 describe los principales mtodos para orga-nizar los ficheros de registros en el disco, incluyendo la dispersin (hashing) esttica y dinmica. El Captulo

    PREFACIO_ELMASRI.qxd 10/05/2007 10:14 Pgina VIII

  • Prefacio IX

    14 describe las tcnicas de indexacin para ficheros, como las estructuras de datos rbol B y rbol B+ y losficheros rejilla. El Captulo 15 ofrece una introduccin de los fundamentos bsicos del procesamiento y laoptimizacin de consultas, mientras que el Captulo 16 explica el diseo y la refinacin de una base de datosfsica.La Parte 5 explica el procesamiento de transacciones, el control de la concurrencia y las tcnicas de recupe-racin, adems de descripciones de cmo se materializan estos conceptos en SQL.La Parte 6 ofrece una introduccin global a los sistemas de bases de datos de objetos y de objetos relaciona-les. El Captulo 20 introduce los conceptos de orientacin a objetos. El Captulo 21 ofrece una panormicadetallada del modelo de objeto ODMG y sus lenguajes ODL y OQL asociados. El Captulo 22 describe cmolas bases de datos relacionales se estn ampliando con el fin de incluir conceptos de orientacin a objetos, ypresenta las caractersticas de los sistemas de objetos relacionales, as como una visin general de algunascaractersticas del estndar SQL3 y del modelo de datos relacional anidado.Las Partes 7 y 8 estn dedicadas a temas ms avanzados. El Captulo 23 ofrece una visin general de la segu-ridad en las bases de datos, incluyendo el modelo de control de acceso discrecional con comandos SQL paraotorgar y revocar privilegios, sin olvidar el modelo de control de acceso obligatorio con categoras de usua-rio y la instanciacin mltiple. Se explican ms en detalle las medidas de control de la seguridad, incluyendoel control del acceso, el control de la inferencia, el control del flujo y el cifrado de los datos, as como los pro-blemas relacionados con la privacidad. El Captulo 24 introduce varios modelos de bases de datos mejoradospara aplicaciones avanzadas, como las bases de datos activas y los triggers, as como las bases de datos detiempo, espaciales, multimedia y deductivas. El Captulo 25 ofrece una introduccin a las bases de datos dis-tribuidas y la arquitectura de tres niveles cliente/servidor. El Captulo 26 es un captulo nuevo que introducela programacin de bases de datos web mediante PHP. El Captulo 27 es una introduccin a XML; presentasus conceptos y compara el modelo XML con los modelos de bases de datos tradicionales. El Captulo 28sobre la minera de datos ofrece una visin general del proceso de minera y el descubrimiento del conoci-miento, adems de ofrecer una explicacin breve sobre distintos mtodos y herramientas comerciales. ElCaptulo 29 introduce los conceptos de almacenamiento de datos. Por ltimo, el Captulo 30 es una introduc-cin a las bases de datos mviles, las bases de datos multimedia, los sistemas GIS y la administracin de datosdel genoma en bioinformtica.El Apndice A ofrece algunas notaciones alternativas para visualizar un esquema ER o EER conceptual, quepueden sustituirse por la notacin que utilizamos nosotros, si as lo prefiere el profesor. El apndice B ofrecealgunos parmetros importantes de los discos. El Apndice C ofrece una visin general del lenguaje de con-sulta grfico QBE.Los apndices D y E (disponibles en el sitio web complementario del libro, www.librosite.net/elmasri) estndedicados a los sistemas de bases de datos heredados, basados en los modelos de bases de datos jerrquicosy de red. Se han utilizado durante ms de treinta aos como base de muchas de las aplicaciones de bases dedatos comerciales y sistemas de procesamiento de transacciones, y pasarn dcadas hasta que se reemplacencompletamente. Consideramos que es importante que los estudiantes de bases de datos conozcan estos mto-dos tan longevos.

    Directrices para utilizar este libroHay muchas formas diferentes de impartir un curso de bases de datos. Los captulos de las Partes 1 a 5 se pue-den utilizar, en el orden en que aparecen o en el orden deseado, como introduccin a los sistemas de bases dedatos. Los captulos y las secciones seleccionados se pueden omitir, y el profesor puede aadir otros captu-los del resto del libro, en funcin de los objetivos del curso. Al final de la seccin inicial de cada captulo, seenumeran las secciones candidatas a ser omitidas en caso de que se precise una explicacin menos detalladadel tema en cuestin. Sugerimos llegar hasta el Captulo 14 en un curso de introduccin a las bases de datos,e incluir las partes seleccionadas de otros captulos, en funcin de los conocimientos de los estudiantes y de

    PREFACIO_ELMASRI.qxd 10/05/2007 10:14 Pgina IX

  • los objetivos perseguidos. En el caso de que el curso abarque tambin las tcnicas de implementacin de sis-temas, habra que incluir los captulos de las Partes 4 y 5.Los Captulos 3 y 4, que abarcan el modelado conceptual mediante los modelos ER y EER, son importantespara un buen conocimiento de las bases de datos. No obstante, estos captulos se pueden ver parcialmente,verse ms tarde en el curso, u omitirse completamente si el objetivo de este ltimo es la implementacin deun DBMS. Los Captulos 13 y 14, dedicados a la organizacin e indexacin de ficheros, tambin se puedenver ms tarde o temprano en el curso, u omitirse completamente si el objetivo son los modelos de datos y loslenguajes. Los estudiantes que han completado un curso sobre organizacin de ficheros, ciertas partes de estoscaptulos pueden considerarse como material de lectura, o pueden asignarse algunos ejercicios como un repa-so de los conceptos.Un proyecto de diseo e implementacin de bases de datos completo abarca el diseo conceptual (Captulos3 y 4), el mapeado del modelo de datos (Captulo 7), la normalizacin (Captulo 10) y la implementacin enSQL (Captulo 9). Tambin es preciso considerar el Captulo 26 si el objetivo del curso abarca las aplicacio-nes de bases de datos web. Se precisa documentacin adicional sobre los lenguajes de programacin y losRDBMS utilizados.El libro est escrito para que sea posible abarcar temas en diferentes secuencias. El grfico de la siguientefigura muestra las principales dependencias entre los captulos. Como el diagrama ilustra, es posible empezar

    PrefacioX

    1, 2

    Introduccin

    13, 14

    Organizacin e

    indexacin de

    ficheros

    5, 6

    Modelo, lgebra y

    clculo relacional

    3, 4

    Modelo ER,

    modelo EER

    20

    Conceptos de

    orientacin a

    objetos

    10, 11

    Dependencias,

    normalizacin

    7

    ER- y EER-

    a-relacional

    12

    Diseo de BD,

    UML

    21

    ODMG,

    ODL, OQL

    25

    Servidor

    distribuido,

    cliente

    24

    Activas, de tiempo,

    deductivas

    23

    Seguridad

    28, 29

    Minera de datos,

    almacenamiento

    15, 16

    Procesamiento

    de consultas,

    refinacin de BD

    17, 18, 19

    Transacciones,

    concurrencia,

    recuperacin

    27

    XML

    9, 26

    Programacin

    de BD, web

    8

    SQL

    30

    Aplicaciones

    emergentes

    22

    Objetos

    relacionales

    PREFACIO_ELMASRI.qxd 10/05/2007 10:14 Pgina X

  • con varios temas diferentes a continuacin de los dos primeros captulos de introduccin. Aunque el grficopuede parecer complejo, es importante saber que si los captulos se cubren en orden, las dependencias no sepierden. El grfico lo pueden consultar los profesores que desean seguir un orden alternativo de presentacin.En un curso de un semestre basado en este libro, los captulos seleccionados pueden asignarse como materialde lectura. Las Partes 4, 7 y 8 se pueden considerar para este cometido. El libro tambin se puede utilizar parauna secuencia de dos semestres. El primer curso, Introduccin al diseo/sistemas de bases de datos, a un nivelde estudiante de segundo ao, medio o de ltimo ao, puede cubrir la mayora de los Captulos 1 a 14. Elsegundo curso, Tcnicas de diseo e implementacin de bases de datos, a un nivel de estudiante de ltimo aoo graduado de primer ao, puede abarcar los Captulos 15 a 30. Los Captulos de las Partes 7 y 8 se puedenutilizar selectivamente en cualquier semestre, y el material que describe el DBMS y que est disponible paralos estudiantes en la institucin local, se puede utilizar como complemento del material de este libro.

    Materiales suplementariosExiste material de apoyo para todos los usuarios de este libro, as como material adicional para los profeso-res cualificados.Las anotaciones de lectura y las figuras estn disponibles como diapositivas de PowerPoint en el sitio web deComputer Science: http://www.aw.com/cssupport.Un manual de prcticas, novedad en la quinta edicin, est disponible en el sitio web complementario del libro(www.librosite.net/elmasri). Este manual abarca las herramientas de modelado de datos ms populares, unintrprete de lgebra y clculo relacional, y ejemplos del libro implementados utilizando dos sistemas de ges-tin de bases de datos muy difundidos. Las prcticas de la parte final de los captulos de este libro estn corre-lacionadas con el manual.Los profesores cualificados tienen a su disposicin un manual de soluciones. Visite el centro de recursos paraprofesores de Addison-Wesley (http://www.aw.com/irc), o enve un mensaje de correo electrnico a [email protected] si desea informacin sobre cmo acceder a estas soluciones.

    Material de apoyo adicionalDatabase Place, de Addison-Wesley, contiene materiales interactivos de asistencia a los estudiantes durantesus estudios sobre modelado, normalizacin y SQL. Mediante un cdigo de acceso, que se incluye con cadacopia de este texto, se ofrece una suscripcin complementaria a Database Place. Las suscripciones tambinpueden adquirirse online. Si desea ms informacin, visite http://www.aw.com/databaseplace.

    AgradecimientosEs un gran placer reconocer la ayuda y contribucin de tantas personas a este proyecto. En primer lugar, que-remos dar las gracias a nuestros editores, Matt Goldstein y Katherine Harutunian. En particular, queremosreconocer el esfuerzo y la ayuda de Matt Goldstein, nuestro editor principal para la quinta edicin. Tambinqueremos dar las gracias a aquellas personas de Addison-Wesley que han contribuido con su esfuerzo a estaquinta edicin: Michelle Brown, Gillian Hall, Patty Mahtani, Maite Suarez-Rivas, Bethany Tidd y JoyceCosentino Wells. Estamos agradecidos a Gillian Hall por el diseo interior de esta edicin y por su detalladaatencin sobre los estilos, las fuentes y los elementos artsticos que tan cuidadosamente ha preparado para estelibro.Tambin queremos agradecer la contribucin de los siguientes revisores: Hani Abu-Salem, DePaulUniversity; Jamal R. Alsabbagh, Grand Valley State University; Ramzi Bualuan, University of Notre Dame;

    Prefacio XI

    PREFACIO_ELMASRI.qxd 10/05/2007 10:14 Pgina XI

  • Soon Chung, Wright State University; Sumali Conlon, University of Mississippi; Hasan Davulcu, ArizonaState University; James Geller, New Jersey Institute of Technology; Le Gruenwald, The University ofOklahoma; Latifur Khan, University of Texas at Dallas; Herman Lam, University of Florida; Byung S. Lee,University of Vermont; Donald Sanderson, East Tennessee State University; Jamil Saquer, Southwest MissouriState University; Costas Tsatsoulis, University of Kansas; y Jack C. Wileden, University of Massachusetts,Amherst. Queremos dar las gracias a Raj Sunderraman por trabajar con nosotros en las prcticas de este libroy en el diseo de los ejercicios. Salman Azar, de la Universidad de San Francisco, tambin contribuy conalgunos ejercicios.A Sham Navathe le gustara dar las gracias a sus estudiantes de la Georgia Tech: Saurav Sahay, Liora Sahar,Fariborz Farahmand, Nalini Polavarapu, Wanxia Xie, Ying Liu y Gaurav Bhatia. Ed Omiecinski tambinayud con valiosas sugerencias y correcciones.Nos gustara repetir nuestro agradecimiento a todas esas personas que revisaron y contribuyeron con su tra-bajo en las ediciones anteriores de este libro: Primera edicin. Alan Apt (editor), Don Batory, Seott Downing, Dennis Heimbinger, Julia Hodges,

    Yannis Ioannidis, Jim Larson, Dennis McLeod, Per-Ake Larson, Rahul Patel, Nicholas Roussopoulos,David Stemple, Michael Stonebraker, Frank Tompa y Kyu-YoungWhang.

    Segunda edicin. Dan Joraanstad (editor), Rafi Ahmed, Antonio Albano, David Beeeh, Jose Blakeley,Panos Chrysanthis, Suzanne Dietrich, Vic Ghorpadey, Goets Graefe, Eric Hanson, Junguk L. Kim,Roger King, Vram Kouramajian, Vijay Kumar, John Lowther, Sanjay Manchanda, Toshimi Minoura,Inderpal Mumick, Ed Omiecinski, Girish Pathak, Raghu Ramakrishnan, Ed Robertson, Eugene Sheng,David Stotts, Marianne Winslett y Stan Zdonick.

    Tercera edicin. Maite Suarez-Rivas y Katherine Harutunian (editoras); Suzanne Dietrieh, EdOmiecinski, Rafi Ahmed, Francois Bancilhon, Jose Blakeley, Rick Cattell, Ann Chervenak, David W.Embley, Henry A. Etlinger, Leonidas Fegaras, Dan Forsyth, Farshad Fotouhi, Michael Franklin,Sreejith Gopinath, Goetz Craefe, Richard Hull, Sushil Jajodia, Ramesh K. Karne, Harish Kotbagi,Vijay Kumar, Tarcisio Lima, Ramon A. Mata-Toledo, Jaek MeCaw, Dennis McLeod, Rokia Missaoui,Magdi Morsi, M. Narayanaswamy, Carlos Ordonez, Joan Peckham, Betty Salzberg, Ming-Chien Shan,Junping Sun, Rajshekhar Sunderraman, Aravindan Veerasamy y Emilia E. Villareal.

    Cuarta edicin. Maite Suarez-Rivas, Katherine Harutunian, Daniel Rausch y Juliet Silveri (editores);Phil Bernhard, Zhengxin Chen, Jan Chomicki, Hakan Ferhatosmanoglu, Len Fisk, William Hankley,Ali R. Hurson, Vijay Kumar, Peretz Shoval, Jason T. L. Wang (revisores); Ed Omiecinski (que contri-buy en el Captulo 27); Las personas de la Universidad de Texas en Arlington que contribuyeron enesta edicin fueron Hyoil Han, Babak Hojabri, Jack Fu, Charley Li, Ande Swathi y Steven Wu; Laspersonas de la Georgia Tech que contribuyeron en esta obra fueron Dan Forsythe, Weimin Feng,Angshuman Guin, Abrar Ul-Haque, Bin Liu, Ying Liu, Wanxia Xie y Waigen Yee.

    Por ltimo, pero no menos importante, queremos agradecer el apoyo, el nimo y la paciencia de nuestras fami-lias.

    R.E. S.B.N.

    PrefacioXII

    PREFACIO_ELMASRI.qxd 10/05/2007 10:14 Pgina XII

  • Contenido

    Parte 1 Introduccin y modelado conceptual 1

    Captulo 1 Bases de datos y usuarios de bases de datos 31.1 Introduccin 41.2 Un ejemplo 61.3 Caractersticas de la metodologa de bases de datos 81.4 Actores de la escena 131.5 Trabajadores entre bambalinas 151.6 Ventajas de utilizar una metodologa DBMS 151.7 Breve historia de las aplicaciones de bases de datos 201.8 Cundo no usar un DBMS 231.9 Resumen 24

    Preguntas de repaso 24Ejercicios 25Bibliografa seleccionada 25

    Captulo 2 Conceptos y arquitectura de los sistemas de bases de datos 272.1 Modelos de datos, esquemas e instancias 282.2 Arquitectura de tres esquemas e independencia de los datos 312.3 Lenguajes e interfaces de bases de datos 332.4 Entorno de un sistema de bases de datos 362.5 Arquitecturas cliente/servidor centralizadas para los DBMSs 402.6 Clasificacin de los sistemas de administracin de bases de datos 442.7 Resumen 47

    Preguntas de repaso 48Ejercicios 48Bibliografa seleccionada 48

    Captulo 3 Modelado de datos con el modelo Entidad-Relacin (ER) 513.1 Uso de modelos de datos conceptuales de alto nivel para el diseo de bases

    de datos 523.2 Un ejemplo de aplicacin de base de datos 54

    CONTENIDO_ELMASRI.qxd 10/05/2007 10:28 Pgina xiii

  • Contenidoxiv

    3.3 Tipos de entidad, conjuntos de entidades, atributos y claves 553.4 Tipos de relaciones, conjuntos de relaciones, roles y

    restricciones estructurales 613.5 Tipos de entidades dbiles 673.6 Perfeccionamiento del diseo ER para la base de datos EMPRESA 683.7 Diagramas ER, convenciones de denominacin y problemas de diseo 693.8 Ejemplo de otra notacin: diagramas de clase UML 723.9 Tipos de relacin con grado mayor que dos 753.10 Resumen 78

    Preguntas de repaso 79Ejercicios 80Ejercicios de prctica 86Bibliografa seleccionada 87

    Captulo 4 El modelo Entidad-Relacin mejorado (EER) 894.1 Subclases, superclases y herencia 904.2 Especializacin y generalizacin 914.3 Restricciones y caractersticas de las jerarquas de especializacin

    y generalizacin 944.4 Modelado de tipos UNION usando categoras 1004.5 Ejemplo EER de un esquema UNIVERSIDAD, diseos y definiciones

    formales 1024.6 Ejemplo de otra notacin: representacin de la especializacin

    y la generalizacin en diagramas de clase UML 105

    4.7 Abstraccin de datos, representacin del conocimiento y conceptos de ontologa 107

    4.8 Resumen 112Preguntas de repaso 112Ejercicios 113Ejercicios de prctica 119Bibliografa seleccionada 119

    Parte 2 Modelo relacional: conceptos, restricciones, lenguajes, diseo y programacin

    Captulo 5 El modelo de datos relacional y las restricciones de una base de datos relacional 123

    5.1 Conceptos del modelo relacional 1245.2 Restricciones del modelo relacional y esquemas de bases de

    datos relacionales 1295.3 Actualizaciones, transacciones y negociado de la violacin de una

    restriccin 1375.4 Resumen 140

    CONTENIDO_ELMASRI.qxd 10/05/2007 10:28 Pgina xiv

  • Contenido xv

    Preguntas de repaso 140Ejercicios 141Bibliografa seleccionada 144

    Captulo 6 El lgebra relacional y los clculos relacionales1456.1 Operaciones relacionales unarias: SELECCIN (SELECT)

    y PROYECCIN (PROJECT) 1466.2 Operaciones de lgebra relacional de la teora de conjuntos 1516.3 Operaciones relacionales binarias: CONCATENACIN (JOIN)

    y DIVISIN (DIVISION) 1556.4 Operaciones relacionales adicionales 1626.6 Clculos relacionales de tupla 1696.7 Los clculos relacionales de dominio 1776.8 Resumen 179

    Preguntas de repaso 180Ejercicios 180Ejercicios de prctica 185Bibliografa seleccionada 186

    Captulo 7 Diseo de bases de datos relacionales por mapeado ER- y EER-a-relacional 189

    7.1 Diseo de una base de datos relacionalutilizando el mapeado ER-a-relacional 189

    7.2 Mapeado de construcciones del modelo EER a las relaciones 1967.3 Resumen 200

    Preguntas de repaso 201Ejercicios 201Ejercicios de prctica 202Bibliografa seleccionada 202

    Captulo 8 SQL-99: definicin del esquema, restricciones, consultas y vistas 203

    8.1 Definicin de datos y tipos de datos de SQL 2058.2 Especificacin de restricciones en SQL 2098.3 Sentencias de SQL para cambiar el esquema 2128.4 Consultas bsicas en SQL 2138.5 Consultas SQL ms complejas 2228.6 Sentencias INSERT, DELETE y UPDATE de SQL 2358.7 Restricciones como aserciones y triggers 2388.8 Vistas (tablas virtuales) en SQL 2398.9 Caractersticas adicionales de SQL 2438.10 Resumen 244

    CONTENIDO_ELMASRI.qxd 10/05/2007 10:28 Pgina xv

  • Preguntas de repaso 244Ejercicios 244Ejercicios de prctica 248Bibliografa seleccionada 249

    Captulo 9 Introduccin a las tcnicas de programacin SQL 2519.1 Programacin de bases de datos: problemas y tcnicas 2529.2 SQL incrustado, SQL dinmico y SQLJ 2549.3 Programacin de bases de datos con llamadas a funciones: SQL/CLI y

    JDBC 2649.4 Procedimientos almacenados de bases de datos y SQL/PSM 2729.5 Resumen 274

    Preguntas de repaso 275Ejercicios 275Ejercicios de prctica 276Bibliografa seleccionada 277

    Parte 3 Teora y metodologa del diseo de bases de datos 279

    Captulo 10 Dependencias funcionales y normalizacin en bases de datos relacionales 281

    10.1 Directrices de diseo informales para los esquemas de relacin 28210.2 Dependencias funcionales 29110.3 Formas normales basadas en claves principales 29810.4 Definiciones generales de la segunda y tercera formas normales 30510.5 Forma normal de Boyce-Codd 30810.6 Resumen 311

    Preguntas de repaso 311Ejercicios 312Ejercicios de prctica 316Bibliografa seleccionada 316

    Captulo 11 Algoritmos de diseo de bases de datos relacionales y dependen-cias adicionales 317

    11.1 Propiedades de las descomposiciones relacionales 31811.2 Algoritmos para el diseo de un esquema de base de datos relacional 32311.3 Dependencias multivalor y cuarta forma normal 33211.4 Dependencias de concatenacin y quinta forma normal 33711.5 Dependencias de inclusin 33811.6 Otras dependencias y formas normales 33911.7 Resumen 341

    Preguntas de repaso 341

    Contenidoxvi

    CONTENIDO_ELMASRI.qxd 10/05/2007 10:28 Pgina xvi

  • Ejercicios 342Ejercicios de prctica 344Bibliografa seleccionada 344

    Captulo 12 Metodologa prctica de diseo de bases de datos y uso de los diagramas UML 345

    12.1 El papel de los sistemas de informacin en las empresas 34612.2 El diseo de la base de datos y el proceso de implementacin 34912.3 Uso de diagramas UML como ayuda a la especificacin del

    diseo de la base de datos 36612.4 Rational Rose, una herramienta de diseo basada en UML 37312.5 Herramientas automticas de diseo de bases de datos 37912.6 Resumen 381

    Preguntas de repaso 382Bibliografa seleccionada 383

    Parte 4 Almacenamiento de datos, indexacin, procesamiento de consultas y diseo fsico 387

    Captulo 13 Almacenamiento en disco, estructuras bsicas de ficheros y dispersin 389

    13.1 Introduccin 39013.2 Dispositivos de almacenamiento secundario 39313.3 Almacenamiento de bloques en el bfer 39813.4 Ubicacin de los registros de fichero en disco 39913.5 Operaciones sobre ficheros 40313.6 Ficheros de registros desordenados (ficheros heap) 40513.7 Ficheros de registros ordenados (ficheros ordenados) 40613.8 Tcnicas de dispersin 40913.9 Otras organizaciones principales de ficheros 41713.10 Paralelismo del acceso al disco mediante la tecnologa RAID 41813.11 Nuevos sistemas de almacenamiento 42313.12 Resumen 424

    Preguntas de repaso 425Ejercicios 426Bibliografa seleccionada 428

    Captulo 14 Estructuras de indexacin para los ficheros 42914.1 Tipos de ndices ordenados de un nivel 43014.2 ndices multinivel 43814.3 ndices multinivel dinmicos utilizando rboles B y B1 44214.4 ndices en claves mltiples 453

    Contenido xvii

    CONTENIDO_ELMASRI.qxd 10/05/2007 10:28 Pgina xvii

  • 14.5 Otros tipos de ndices 45614.6 Resumen 457

    Preguntas de repaso 458Ejercicios 458Bibliografa seleccionada 461

    Captulo 15 Algoritmos para procesamiento y optimizacin de consultas 46315.1 Traduccin de consultas SQL al lgebra relacional 46515.2 Algoritmos para ordenacin externa 46615.3 Algoritmos para las operaciones SELECT y JOIN 46815.4 Algoritmos para las operaciones de proyeccin y de conjunto 47715.5 Implementacin de las operaciones de agregacin y de OUTER JOIN 47815.6 Combinacin de operaciones mediante flujos 48015.7 Utilizacin de la heurstica en la optimizacin de consultas 48015.8 Utilizacin de la selectividad y la estimacin de costes en

    la optimizacin de consultas 48915.9 Revisin de la optimizacin de consultas en Oracle 49815.10 Optimizacin semntica de consultas 49915.11 Resumen 499

    Preguntas de repaso 500Ejercicios 500Bibliografa seleccionada 501

    Captulo 16 Diseo fsico y refinacin de la base de datos 50316.1 Diseo fsico de las bases de datos relacionales 50316.2 Visin general de la refinacin de una base de datos

    en los sistemas relacionales 50716.3 Resumen 512

    Preguntas de repaso 513Bibliografa seleccionada 513

    Parte 5 Conceptos del procesamiento de transacciones 515

    Captulo 17 Introduccin a los conceptos y la teora sobre el procesamiento de transacciones 517

    17.1 Introduccin al procesamiento de transacciones 51717.2 Conceptos de transaccin y sistema 52317.3 Propiedades deseables de las transacciones 52617.4 Clasificacin de las planificaciones en base a la recuperabilidad 52717.5 Clasificacin de las planificaciones basndose en la serializacin 53017.6 Soporte de transacciones en SQL 53817.7 Resumen 540

    Contenidoxviii

    CONTENIDO_ELMASRI.qxd 10/05/2007 10:28 Pgina xviii

  • Preguntas de repaso 541Ejercicios 541Bibliografa seleccionada 542

    Captulo 18 Tcnicas de control de la concurrencia 54518.1 Tcnicas de bloqueo en dos fases para controlar la concurrencia 54518.2 Control de la concurrencia basado en la ordenacin de

    marcas de tiempo 55518.3 Tcnicas multiversin para controlar la concurrencia 55718.4 Tcnicas de control de la concurrencia optimistas (validacin) 55918.5 Granularidad de los elementos de datos y bloqueo de la granularidad

    mltiple 56018.6 Uso de bloqueos para controlar la concurrencia en los ndices 56318.7 Otros problemas del control de la concurrencia 56518.8 Resumen 566

    Preguntas de repaso 567Ejercicios 568Bibliografa seleccionada 568

    Captulo 19 Tcnicas de recuperacin de bases de datos 57119.1 Conceptos de recuperacin 57119.2 Tcnicas de recuperacin basadas en la actualizacin diferida 57719.3 Tcnicas de recuperacin basadas en la actualizacin inmediata 58119.4 Paginacin en la sombra (shadowing) 58319.5 Algoritmo de recuperacin ARIES 58419.6 Recuperacin en sistemas multibase de datos 58719.7 Copia de seguridad de la base de datos y recuperacin ante

    fallos catastrficos 58819.8 Resumen 589

    Preguntas de repaso 590Ejercicios 591Bibliografa seleccionada 593

    Parte 6 Bases de datos de objetos y relacionales de objetos 595

    Captulo 20 Conceptos de las bases de datos de objetos 59720.1 Panormica de los conceptos de orientacin a objetos 59820.2 Identidad del objeto, estructura del objeto y constructores de tipos 60120.3 Encapsulamiento de operaciones, mtodos y persistencia 60420.4 Herencia y jerarquas de tipos y clases 61020.5 Objetos complejos 61320.6 Otros conceptos de orientacin a objetos 615

    Contenido xix

    CONTENIDO_ELMASRI.qxd 10/05/2007 10:28 Pgina xix

  • 20.7 Resumen 617Preguntas de repaso 618Ejercicios 618Bibliografa seleccionada 619

    Captulo 21 Estndares, lenguajes y diseo de bases de datos de objetos 621

    21.1 Visin general del modelo de objeto del ODMG 62221.2 El lenguaje de definicin de objetos ODL 63321.3 El lenguaje de consulta de objetos OQL 63821.4 Visin general de la vinculacin del lenguaje C++ 64521.5 Diseo conceptual de bases de datos de objetos 64721.6 Resumen 649

    Preguntas de repaso 650Ejercicios 651Bibliografa seleccionada 651

    Captulo 22 Sistemas de objetos relacionales y relacionales extendidos 65322.1 Visin general de SQL y sus caractersticas objeto-relacional 65422.2 Evolucin de los modelos de datos y tendencias actuales

    de la tecnologa de bases de datos 66022.3 Informix Universal Server 5 66122.4 Caractersticas objeto-relacional de Oracle 8 67122.5 Implementacin y problemas relacionados con los sistemas

    de tipos extendidos 67322.6 El modelo relacional anidado 67422.7 Resumen 676

    Bibliografa seleccionada 677

    Parte 7 Temas avanzados: seguridad, modelacin avanzada y distribucin 679

    Captulo 23 Seguridad en las bases de datos 68123.1 Introduccin a los temas de seguridad en las bases de datos 68123.2 Control de acceso discrecional basado en la concesin y

    revocacin de privilegios 68523.3 Control de acceso obligatorio y control de acceso basado en roles para la

    seguridad multinivel 68923.5 Introduccin al control de flujo 69623.6 Cifrado e infraestructuras de clave pblica 69723.7 Mantenimiento de la privacidad 69923.8 Retos en la seguridad en las bases de datos 700

    Contenidoxx

    CONTENIDO_ELMASRI.qxd 10/05/2007 10:28 Pgina xx

  • 23.9 Resumen 701Preguntas de repaso 702Ejercicios 702Bibliografa seleccionada 703

    Captulo 24 Modelos de datos mejorados para aplicaciones avanzadas 70524.1 Conceptos de bases de datos activas y triggers 70624.2 Conceptos de bases de datos de tiempo (temporales) 71524.3 Bases de datos multimedia y espaciales 72724.4 Introduccin a las bases de datos deductivas 73024.5 Resumen 742

    Preguntas de repaso 743Ejercicios 743Bibliografa seleccionada 746

    Captulo 25 Bases de datos distribuidas y arquitecturas cliente-servidor 74925.1 Conceptos de bases de datos distribuidas 75025.2 Tcnicas de fragmentacin, replicacin y asignacin de datos para el diseo

    de bases de datos distribuidas 75425.3 Tipos de sistemas de bases de datos distribuidas 75925.4 Procesamiento de consultas en bases de datos distribuidas 76225.5 El control de la concurrencia y la recuperacin en bases de datos

    distribuidas 76825.6 Una aproximacin a la arquitectura cliente-servidor de tres niveles 77025.7 Bases de datos distribuidas en Oracle 77225.8 Resumen 775

    Preguntas de repaso 775Ejercicios 776Bibliografa seleccionada 778

    Parte 8 Tecnologas emergentes 781

    Captulo 26 Programacin de una base de datos web usando PHP 78326.1 Datos estructurados, semiestructurados y no estructurados 78426.2 Un sencillo ejemplo PHP 78826.3 Visin general de las caractersticas bsicas de PHP 79026.4 Visin general de la programacin de bases de datos PHP 79526.5 Resumen 799

    Preguntas de repaso 799Ejercicios 800Ejercicios de prctica 800Bibliografa seleccionada 801

    Contenido xxi

    CONTENIDO_ELMASRI.qxd 10/05/2007 10:28 Pgina xxi

  • Captulo 27 XML: Lenguaje de marcado extensible 80327.1 Modelo de datos jerrquico (rbol) de XML 80327.2 Documentos XML, DTD y XML Schema 80527.3 Documentos XML y bases de datos 81327.4 Consulta XML 81927.5 Resumen 821

    Preguntas de repaso 821Ejercicios 821Bibliografa seleccionada 822

    Captulo 28 Conceptos de minera de datos 82328.1 Repaso a la tecnologa de minera de datos 82328.2 Reglas de asociacin 82728.3 Clasificacin 83628.4 Agrupamiento 83928.5 Planteamiento de otras cuestiones en minera de datos 84128.6 Aplicaciones de la minera de datos 84428.7 Herramientas comerciales de minera de datos 84428.8 Resumen 847

    Preguntas de repaso 847Ejercicios 847Bibliografa seleccionada 849

    Captulo 29 Visin general del almacenamiento de datos y OLAP 85129.1 Introduccin, definiciones y terminologa 85129.2 Caractersticas de los almacenes de datos 85229.3 Modelado de datos para los almacenes 85429.4 Construccin de una almacn de datos 85829.5 Funcionalidad tpica de un almacn de datos 86129.6 Almacenes de datos frente a vistas 86129.7 Problemas y problemas abiertos en los almacenes de datos 86229.8 Resumen 864

    Preguntas de repaso 864Bibliografa seleccionada 864

    Captulo 30 Tecnologas y aplicaciones emergentes de bases de datos 86530.1 Bases de datos mviles 86630.2 Bases de datos multimedia 87230.3 GIS (Sistemas de informacin geogrfica, Geographic Information

    Systems) 87830.4 Control de los datos del genoma 889

    Contenidoxxii

    CONTENIDO_ELMASRI.qxd 10/05/2007 10:28 Pgina xxii

  • Bibliografa seleccionada 897Crditos 899

    Apndice A Notaciones diagramticas alternativas para los modelos 901

    Apndice B Parmetros de disco 905

    Apndice C Introduccin al lenguaje QBE 909

    Bibliografa seleccionada 917

    ndice 955

    Contenido xxiii

    CONTENIDO_ELMASRI.qxd 10/05/2007 10:28 Pgina xxiii

  • CONTENIDO_ELMASRI.qxd 10/05/2007 10:28 Pgina xxiv

  • PARTE 1

    Introduccin y modelado conceptual

    CAP01_ELMASRI.qxd 09/04/2007 16:51 Pgina 1

  • CAP01_ELMASRI.qxd 09/04/2007 16:51 Pgina 2

  • CAPTULO 1Bases de datos y

    usuarios de bases de datos

    Las bases de datos y los sistemas de bases de datos son un componente esencial de la vida cotidiana en lasociedad moderna. Actualmente, la mayora de nosotros nos enfrentamos a diversas actividades queimplican cierta interaccin con una base de datos. Por ejemplo, ir al banco a depositar o retirar fondos,realizar una reserva en un hotel o una compaa area, acceder al catlogo computerizado de una bibliotecapara buscar un libro, o comprar algo online (un juguete o un computador, por ejemplo), son actividades queimplican que alguien o algn programa de computador acceda a una base de datos. Incluso la compra de pro-ductos en un supermercado, en muchos casos, provoca la actualizacin automtica de la base de datos quemantiene el stock de la tienda.Estas interacciones son ejemplos de lo que podemos llamar aplicaciones de bases de datos tradicionales, enlas que la mayor parte de la informacin que hay almacenada y a la que se accede es textual o numrica. Enlos ltimos aos, los avances en la tecnologa han conducido a excitantes aplicaciones y sistemas de bases dedatos nuevos. La tecnologa de los medios de comunicacin nuevos hace posible almacenar digitalmente im-genes, clips de audio y flujos (streams) de vdeo. Estos tipos de archivos se estn convirtiendo en un compo-nente importante de las bases de datos multimedia. Los sistemas de informacin geogrfica (GIS,Geographic information systems) pueden almacenar y analizar mapas, datos meteorolgicos e imgenes desatlite. Los almacenes de datos y los sistemas de procesamiento analtico en lnea (OLAP, online analy-tical processing) se utilizan en muchas compaas para extraer y analizar informacin til de bases de datosmucho ms grandes para permitir la toma de decisiones. Las tecnologas de tiempo real y bases de datosactivas se utilizan para controlar procesos industriales y de fabricacin. Y las tcnicas de bsqueda en lasbases de datos se estn aplicando a la WWW para mejorar la bsqueda de la informacin que los usuariosnecesitan para navegar por Internet.No obstante, para entender los fundamentos de la tecnologa de bases de datos debemos empezar por los prin-cipios bsicos de las aplicaciones de bases de datos tradicionales. En la Seccin 1.1 definiremos una base dedatos y, a continuacin, explicaremos otros trminos bsicos. En la Seccin 1.2 ofrecemos un ejemplo debases de datos sencillo, UNIVERSIDAD, a fin de ilustrar nuestra explicacin. La Seccin 1.3 describe algunasde las caractersticas principales de los sistemas de bases de datos, y las Secciones 1.4 y 1.5 clasifican los tiposde personal cuyos trabajos implican el uso e interaccin con sistemas de bases de datos. Las Secciones 1.6 a1.8 ofrecen una explicacin ms completa de las diferentes capacidades que los sistemas de bases de datosofrecen y explican algunas aplicaciones de bases de datos tpicas. La Seccin 1.9 es un resumen del captulo.

    CAP01_ELMASRI.qxd 09/04/2007 16:51 Pgina 3

  • El lector que desee una introduccin rpida a los sistemas de bases de datos slo tiene que estudiar lasSecciones 1.1 a 1.5, despus omitir u ojear rpidamente las Secciones 1.6 a 1.8, y pasar al Captulo 2.

    1.1 IntroduccinLas bases de datos y la tecnologa de bases de datos tienen mucha culpa del uso creciente de los computado-res. Es justo decir que las bases de datos juegan un papel fundamental en la mayora de las reas en las quese utilizan computadores, como en el mbito empresarial, en el comercio electrnico, ingeniera, medicina,justicia, educacin y bibliotecas. La expresin base de datos se utiliza tan a menudo que empezaremos pordefinir su significado. Nuestra primera definicin es muy general.Una base de datos es una coleccin de datos relacionados. Con la palabra datos nos referimos a los hechos(datos) conocidos que se pueden grabar y que tienen un significado implcito. Por ejemplo, piense en los nom-bres, nmeros de telfono y direcciones de las personas que conoce. Puede tener todos estos datos grabadosen un libro de direcciones indexado o los puede tener almacenados en el disco duro de un computador median-te una aplicacin como Microsoft Access o Excel. Esta coleccin de datos relacionados con un significadoimplcito es una base de datos.La definicin anterior de base de datos es muy genrica; por ejemplo, podemos pensar que la coleccin depalabras que compone esta pgina de texto es una coleccin de datos relacionados y que, por tanto, constitu-ye una base de datos. No obstante, el uso comn del trmino base de datos es normalmente ms restringido.Una base de datos tiene las siguientes propiedades implcitas:

    Una base de datos representa algn aspecto del mundo real, lo que en ocasiones se denomina mini-mundo o universo de discurso (UoD, Universe of discourse). Los cambios introducidos en el mini-mundo se reflejan en la base de datos.

    Una base de datos es una coleccin de datos lgicamente coherente con algn tipo de significado inhe-rente. No es correcto denominar base de datos a un surtido aleatorio de datos.

    Una base de datos se disea, construye y rellena con datos para un propsito especfico. Dispone de ungrupo pretendido de usuarios y algunas aplicaciones preconcebidas en las que esos usuarios estn inte-resados.

    En otras palabras, una base de datos tiene algn origen del que se derivan los datos, algn grado de interac-cin con eventos del mundo real y un pblico que est activamente interesado en su contenido. Los usuariosfinales de una base de datos pueden efectuar transacciones comerciales (por ejemplo, un cliente que comprauna cmara) o se pueden producir unos eventos (por ejemplo, un empleado tiene un hijo) que provoquen uncambio en la informacin almacenada en la base de datos. Al objeto de que una base de datos sea en todomomento precisa y fiable, debe ser un reflejo exacto del minimundo que representa; por consiguiente, en labase de datos deben reflejarse los cambios tan pronto como sea posible.Una base de datos puede ser de cualquier tamao y complejidad. Por ejemplo, la lista de nombres y direccio-nes a la que nos referamos anteriormente puede constar de nicamente unos cuantos cientos de registros, cadauno de ellos con una estructura sencilla. Por el contrario, el catlogo computerizado de una gran bibliotecapuede contener medio milln de entradas organizadas en diferentes categoras (por los apellidos del autorprincipal, por el tema, por el ttulo del libro), y cada categora ordenada alfabticamente. El Departamento detesorera de Estados Unidos (IRS, Internal Revenue Service) mantiene una base de datos de un tamao y com-plejidad an mayores para supervisar los formularios de impuestos presentados por los contribuyentes ameri-canos. Si asumimos que hay 100 millones de contribuyentes y que cada uno presenta una media de cinco for-mularios con aproximadamente 400 caracteres de informacin por cada uno, tenemos una base de datos de100 106 400 x 5 caracteres (bytes) de informacin. Si el IRS conserva las tres ltimas declaraciones decada contribuyente, adems de la actual, tenemos una base de datos de 8 x 1011 bytes (800 gigabytes). Esta

    Captulo 1 Bases de datos y usuarios de bases de datos4

    CAP01_ELMASRI.qxd 09/04/2007 16:51 Pgina 4

  • inmensa cantidad de informacin debe organizarse y administrarse para que los usuarios puedan buscar, recu-perar y actualizar los datos que necesiten. Amazon.com es un buen ejemplo de una gran base de datos comer-cial. Contiene datos de ms de 20 millones de libros, CDs, vdeos, DVDs, juegos, ropa y otros productos. Labase de datos ocupa ms de 2 terabytes (un terabyte es 1012 bytes de almacenamiento) y se almacena en 200computadores diferentes (denominados servidores). Cada da acceden a Amazon.com aproximadamente 15millones de visitantes que utilizan la base de datos para hacer compras. La base de datos se actualiza conti-nuamente a medida que se aaden libros y otros productos nuevos al inventario, mientras que el stock seactualiza al tiempo que se tramitan las compras. Alrededor de 100 personas son las responsables de manteneractualizada la base de datos de Amazon.

    Una base de datos se puede generar y mantener manualmente o estar computerizada. Por ejemplo, el catlo-go de cartas de una biblioteca es una base de datos que se puede crear y mantener de forma manual. Una basede datos computerizada se puede crear y mantener con un grupo de aplicaciones escritas especficamente paraesa tarea o mediante un sistema de administracin de bases de datos. En este libro slo nos ocuparemos de lasbases de datos computerizadas.Un sistema de administracin de datos (DBMS, database management system) es una coleccin de pro-gramas que permite a los usuarios crear y mantener una base de datos. El DBMS es un sistema de softwarede propsito general que facilita los procesos de definicin, construccin, manipulacin y comparticin debases de datos entre varios usuarios y aplicaciones. Definir una base de datos implica especificar los tipos dedatos, estructuras y restricciones de los datos que se almacenarn en la base de datos. La definicin o infor-macin descriptiva de una base de datos tambin se almacena en esta ltima en forma de catlogo o diccio-nario de la base de datos; es lo que se conoce como metadatos. La construccin de la base de datos es el pro-ceso consistente en almacenar los datos en algn medio de almacenamiento controlado por el DBMS. Lamanipulacin de una base de datos incluye funciones como la consulta de la base de datos para recuperardatos especficos, actualizar la base de datos para reflejar los cambios introducidos en el minimundo y gene-rar informes a partir de los datos. Compartir una base de datos permite que varios usuarios y programas acce-dan a la base de datos de forma simultnea.Una aplicacin accede a la base de datos enviando consultas o solicitudes de datos al DBMS. Una consulta1normalmente provoca la recuperacin de algunos datos; una transaccin puede provocar la lectura o la escri-tura de algunos datos en la base de datos.Otras funciones importantes ofrecidas por el DBMS son la proteccin de la base de datos y su mantenimien-to durante un largo periodo de tiempo. La proteccin incluye la proteccin del sistema contra el funciona-miento defectuoso del hardware o el software (cadas) y la proteccin de la seguridad contra el acceso noautorizado o malintencionado. Una gran base de datos tpica puede tener un ciclo de vida de muchos aos, porlo que el DBMS debe ser capaz de mantener el sistema de bases de datos permitiendo que el sistema evolu-cione segn cambian los requisitos con el tiempo.No es necesario utilizar software DBMS de propsito general para implementar una base de datos compute-rizada. Podramos escribir nuestro propio conjunto de programas para crear y mantener la base de datos; enrealidad, podramos crear nuestro propio software DBMS de propsito especial. En cualquier caso (utilice-mos o no un DBMS de propsito general), normalmente tenemos que implantar una cantidad considerable desoftware complejo. De hecho, la mayora de los DBMS son sistemas de software muy complejos.Como colofn de nuestras definiciones iniciales, denominaremos sistema de bases de datos a la combina-cin de base de datos y software DBMS. La Figura 1.1 ilustra algunos de los conceptos que hemos explicadohasta ahora.

    1 El trmino consulta, que inicialmente haca referencia a una pregunta o cuestin, se utiliza ampliamente para todos los tipos de intera-cciones con bases de datos, incluyendo la modificacin de datos.

    1.1 Introduccin 5

    CAP01_ELMASRI.qxd 09/04/2007 16:51 Pgina 5

  • Figura 1.1. Entorno de un sistema de bases de datos simplificado.

    1.2 Un ejemploVamos a ver un ejemplo con el que la mayora de los lectores estarn familiarizados: una base de datos UNIVERSIDAD para el mantenimiento de la informacin relativa a los estudiantes, cursos y calificaciones enun entorno universitario. La Figura 1.2 muestra la estructura de la base de datos y algunos datos a modo deejemplo. La base de datos est organizada en cinco archivos, cada uno de los cuales almacena registros de datosdel mismo tipo.2 El archivo ESTUDIANTE almacena los datos de todos los estudiantes, el archivo CURSOalmacena los datos de todos los curso, el archivo SECCIN almacena los datos de las secciones de un curso,el archivo INFORME_CALIF almacena las calificaciones que los estudiantes han obtenido en las distintas sec-ciones que han completado, y el archivo PRERREQUISITO almacena los prerrequisitos de cada curso.Para definir esta base de datos debemos especificar la estructura de los registros de cada archivo detallandolos diferentes tipos de elementos de datos que se almacenarn en cada registro. En la Figura 1.2, cada regis-tro ESTUDIANTE incluye los datos que representan el nombre, el nmero, la clase (como principiante o 1,estudiante de segundo ao o 2, etctera) y la especialidad (como, por ejemplo, matemticas o MAT, cien-cias de la computacin o CC); cada registro de CURSO incluye los datos que representan el nombre, elnmero y las horas de crdito del curso, as como el departamento que ofrece el curso; etctera. Tambin hayque especificar un tipo de datos para cada elemento de datos de un registro. Por ejemplo, podemos especifi-car que el Nombre de un ESTUDIANTE es una cadena de caracteres alfabticos, que NumEstudiante es

    2 El trmino archivo lo utilizamos aqu formalmente. A un nivel conceptual, un archivo es una coleccin de registros que pueden o noestar ordenados.

    Sistema de bases

    de datos

    Usuarios/Programadores

    Programas de aplicacin /Consultas

    Software para procesar

    consultas / Programas

    Software para acceder a

    los datos almacenados

    Base de datos

    almacenada

    Definicin de la base de datos almacenada (metadatos)

    Software

    DBMS

    Captulo 1 Bases de datos y usuarios de bases de datos6

    CAP01_ELMASRI.qxd 09/04/2007 16:51 Pgina 6

  • Figura 1.2. Base de datos que almacena la informacin de estudiantes y cursos.

    ESTUDIANTE

    CURSO

    SECCIN

    INFORME_CALIF

    PRERREQUISITO

    NumCurso NumPrerrequisito

    CC3380 CC3320

    CC3380 MAT2410

    CC3320 CC1310

    NumEstudiante IDSeccion Nota

    17 112 B

    17 119 C

    8 85 A

    8 92 A

    8 102 B

    8 135 A

    IDSeccion NumCurso Semestre Ao Profesor

    85 MAT2410 Otoo 04 Pedro

    92 CC1310 Otoo 04 Ana

    102 CC3320 Primavera 05 Elisa

    112 MAT2410 Otoo 05 Antonio

    119 CC1310 Otoo 05 Juan

    135 CC3380 Otoo 05 Enrique

    NombreCurso NumCurso Horas Departamento

    Introduccin a la computacin CC1310 4 CC

    Estructuras de datos CC3320 4 CC

    Matemticas discretas MAT2410 3 MAT

    Bases de datos CC3380 3 CC

    Nombre NumEstudiante Clase Especialidad

    Luis 17 1 CS

    Carlos 8 2 CS

    1.2 Un ejemplo 7

    CAP01_ELMASRI.qxd 09/04/2007 16:51 Pgina 7

  • un entero o que la Nota de INFORME_CALIF es un solo carcter del conjunto {A, B, C, D, F, I}.Tambin podemos utilizar un esquema de codificacin para representar los valores de un elemento de datos.Por ejemplo, en la Figura 1.2 representamos la Clase de un ESTUDIANTE como 1 para los principiantes, 2para los estudiantes de segundo ao, 3 para los junior, 4 para los snior y 5 para los estudiantes graduados.La construccin de la base de datos UNIVERSIDAD se realiza almacenando los datos que representan a todoslos estudiantes, cursos, secciones, informes de calificaciones y prerrequisitos a modo de registro en el archi-vo adecuado. Los registros de los distintos archivos se pueden relacionar. Por ejemplo, el registro correspon-diente a Luis en el archivo ESTUDIANTE est relacionado con dos registros del archivo INFORME_CALIF queespecifican las calificaciones de Luis en dos secciones. De forma parecida, cada registro del archivo PRERRE-QUISITO relaciona dos registros de curso: uno representa el curso y el otro representa el requisito previo. Lamayora de las bases de datos de medio y gran tamao cuentan con muchos tipos de registros y tienen muchasrelaciones entre los registros.La manipulacin de bases de datos implica la consulta y la actualizacin. A continuacin tiene algunos ejem-plos de consultas: Recuperar el certificado de estudios (listado de todos los cursos y calificaciones) de Luis. Listado con los nombres de los estudiantes que tomaron la seccin del curso Bases de datos ofrecida

    en otoo de 2005, as como sus calificaciones en esa seccin. Listado de los prerrequisitos del curso Bases de datos.

    Y estos son algunos ejemplos de actualizaciones: Cambiar la clase de Luis a estudiante de segundo ao. Crear una seccin nueva para el curso Bases de datos para este semestre. Introducir una nota A para Luis en la seccin Bases de datos del ltimo semestre.

    Estas consultas y modificaciones informales deben especificarse con exactitud en el lenguaje de consulta delDBMS antes de poder ser procesadas.A estas alturas, es til describir la base de datos como una parte de una tarea ms amplia conocida como sis-tema de informacin dentro de cualquier organizacin. El departamento de Tecnologa de la informacin (TI,Information Technology) de una empresa disea y mantiene un sistema de informacin compuesto por varioscomputadores, sistemas de almacenamiento, aplicaciones y bases de datos. El diseo de una aplicacin nuevapara una base de datos existente o el diseo de una base de datos nueva empieza con una fase denominadadefinicin de requisitos y anlisis. Estos requisitos son documentados en detalle y transformados en un dise-o conceptual que se puede representar y manipular mediante algunas herramientas computerizadas, de modoque en una implementacin de base de datos puedan mantenerse, modificarse y transformarse fcilmente. Enel Captulo 3 introduciremos un modelo denominado Entidad-Relacin que se utiliza con este propsito. Eldiseo despus se convierte en un diseo lgico que se puede expresar en un modelo de datos implementadoen un DBMS comercial. Del Captulo 5 en adelante destacaremos un modelo de datos conocido como mode-lo de Datos relacionales. Actualmente es la metodologa ms popular para disear e implementar bases dedatos utilizando DBMSs (relacionales). La etapa final es el diseo fsico, durante la que se proporcionan espe-cificaciones suplementarias para el almacenamiento y acceso a la base de datos. El diseo de base de datos seimplementa y rellena con datos reales y se realiza un mantenimiento continuado a fin de reflejar el estado delminimundo.

    1.3 Caractersticas de la metodologa de bases de datos

    Unas cuantas caractersticas distinguen la metodologa de bases de datos de la metodologa tradicional de pro-gramacin con archivos. En el procesamiento tradicional de archivos, cada usuario define e implementa los

    Captulo 1 Bases de datos y usuarios de bases de datos8

    CAP01_ELMASRI.qxd 09/04/2007 16:51 Pgina 8

  • archivos necesarios para una aplicacin concreta como parte de la programacin de esa aplicacin. Por ejem-plo, un usuario, la oficina de notificacin de calificaciones, puede encargarse del mantenimiento de un archi-vo con los estudiantes y sus calificaciones. Los programas encargados de imprimir el certificado de estudiosde un estudiante e introducir nuevas calificaciones en el archivo se implementan como parte de la aplicacin.Un segundo usuario, la oficina de contabilidad, puede encargarse del seguimiento de las cuotas de los estu-diantes y sus pagos. Aunque ambos usuarios estn interesados en datos relacionados con los estudiantes, cadauno mantiene archivos separados (y programas para la manipulacin de esos archivos), porque cada unorequiere algunos datos que no estn disponibles en los archivos del otro. Esta redundancia en la definicin yel almacenamiento de datos da como resultado un derroche de espacio de almacenamiento y unos esfuerzosredundantes por mantener al da datos comunes.En la metodologa de bases de datos se mantiene un nico almacn de datos, que se define una sola vez, y alque acceden varios usuarios. En los sistemas de archivos cada aplicacin tiene libertad para asignar un nom-bre independientemente a los elementos de datos. Por el contrario, en una base de datos, los nombres o eti-quetas de los datos se definen una vez, y son utilizados por consultas, transacciones y aplicaciones. Las prin-cipales caractersticas de la metodologa de bases de datos frente a la metodologa de procesamiento de archi-vos son las siguientes: Naturaleza autodescriptiva de un sistema de bases de datos. Aislamiento entre programas y datos, y abstraccin de datos. Soporte de varias vistas de los datos. Comparticin de datos y procesamiento de transacciones multiusuario.

    Explicaremos cada una de estas caractersticas en una seccin separada. En las Secciones 1.6 a 1.8 hablare-mos de otras caractersticas adicionales de los sistemas de bases de datos.

    1.3.1 Naturaleza autodescriptiva de un sistema de bases de datos

    Una caracterstica fundamental de la metodologa de bases de datos es que el sistema de bases de datos noslo contiene la propia base de datos, sino tambin una completa definicin o descripcin de la estructura dela base de datos y sus restricciones. Esta definicin se almacena en el catlogo DBMS, que contiene informa-cin como la estructura de cada archivo, el tipo y el formato de almacenamiento de cada elemento de datos,y distintas restricciones de los datos. La informacin almacenada en el catlogo se denomina metadatos ydescribe la estructura de la base de datos principal (vase la Figura 1.1).El software DBMS y los usuarios de la base de datos utilizan el catlogo cuando necesitan informacin sobrela estructura de la base de datos. Un paquete de software DBMS de propsito general no se escribe para unaaplicacin de base de datos especfica. Por consiguiente, debe referirse al catlogo para conocer la estructurade los archivos de una base de datos especfica, como el tipo y el formato de los datos a los que acceder. Elsoftware DBMS debe funcionar igual de bien con cualquier cantidad de aplicaciones de bases de datos (porejemplo, la base de datos de una universidad, la base de datos de un banco o la base de datos de una empre-sa), siempre y cuando la definicin de la base de datos est almacenada en el catlogo.En el procesamiento de archivos tradicional, normalmente la definicin de datos forma parte de los progra-mas de aplicacin. As pues, esas aplicaciones estn restringidas a trabajar slo con una base de datos espe-cfica, cuya estructura est declarada en dichas aplicaciones. Por ejemplo, una aplicacin escrita en C++ puedetener declaraciones struct o class, y un programa COBOL puede tener sentencias de data division para defi-nir sus archivos. Mientras el software de procesamiento de archivos slo puede acceder a bases de datos espe-cficas, el software DBMS puede acceder a distintas bases de datos extrayendo del catlogo las definicionesde las mismas y utilizando despus esas definiciones.Para el ejemplo de la Figura 1.2, el catlogo DBMS almacenar las definiciones de todos los archivos mos-trados. La Figura 1.3 muestra algunas entradas de ejemplo en un catlogo de base de datos. El diseador de

    1.3 Caractersticas de la metodologa de bases de datos 9

    CAP01_ELMASRI.qxd 09/04/2007 16:51 Pgina 9

  • Figura 1.3. Ejemplo de catlogo de base de datos para la base de datos de la Figura 1.2.

    RELACIONES

    COLUMNAS

    Nota: TipoEspecialidad se define como un tipo enumerado con todas las especialidades conoci-das. XXXXNNNN se utiliza para definir un tipo con cuatro caracteres alfanumricos seguidospor cuatro dgitos.

    la base de datos especifica estas definiciones antes de crear la base de datos y se almacenan en el catlogo.Siempre que se crea una solicitud para acceder, por ejemplo, al Nombre de un registro de ESTUDIANTE, elsoftware DBMS recurre al catlogo para determinar la estructura del archivo ESTUDIANTE y la posicin y eltamao del elemento de datos Nombre dentro de un registro ESTUDIANTE. Por el contrario, en una aplica-cin de procesamiento de archivos tpica, la estructura del archivo y, en caso extremo, la ubicacin exacta deNombre dentro de un registro ESTUDIANTE tambin estn codificadas dentro de cada programa que accedea dicho elemento de datos.

    1.3.2 Aislamiento entre programas y datos, y abstraccin de datos

    En el procesamiento de archivos tradicional, la estructura de los archivos de datos est incrustada en las apli-caciones, por lo que los cambios que se introducen en la estructura de un archivo pueden obligar a realizarcambios en todos los programas que acceden a ese archivo. Por el contrario, los programas que acceden a unDBMS no necesitan esos cambios en la mayora de los casos. La estructura de los archivos de datos se alma-cena en el catlogo DBMS, independientemente de los programas de acceso. Llamaremos a esta propiedadindependencia programa-datos.

    NombreColumna TipoDatos PerteneceARelacion

    Nombre Carcter (30) ESTUDIANTE

    NumEstudiante Carcter (4) ESTUDIANTE

    Clase Entero (1) ESTUDIANTE

    Especialidad TipoEspecialidad ESTUDIANTE

    NombreCurso Carcter (10) CURSO

    NumCurso XXXXNNNN CURSO

    .... .... .....

    .... .... .....

    .... .... .....

    NumPrerrequisito XXXXNNNN PRERREQUISITO

    NombreRelacion NumDeColumnas

    ESTUDIANTE 4

    CURSO 4

    SECCIN 5

    INFORME_CALIF 3

    PRERREQUISITO 2

    Captulo 1 Bases de datos y usuarios de bases de datos10

    CAP01_ELMASRI.qxd 09/04/2007 16:51 Pgina 10

  • Por ejemplo, un programa de acceso a archivos puede escribirse de modo que slo pueda acceder a los regis-tros ESTUDIANTE de la estructura mostrada en la Figura 1.4. Si queremos aadir otra porcin de datos a cadaregistro ESTUDIANTE, por ejemplo FechaNac, un programa semejante ya no funcionar y deber modificar-se. Por el contrario, en un entorno DBMS, slo tendremos que cambiar la descripcin de los registros ESTU-DIANTE en el catlogo (vase la Figura 1.3) para reflejar la inclusin del nuevo elemento de datos FechaNac;ningn programa cambia. La siguiente vez que un programa DBMS haga referencia al catlogo, se podr uti-lizar y acceder a la estructura nueva de los registros ESTUDIANTE.En algunos tipos de sistemas de bases de datos, como los sistemas orientados a objetos y los de objetos rela-cionales (consulte los Captulos 20 a 22), los usuarios pueden definir operaciones sobre los datos como partede las definiciones de la base de datos. Una operacin (tambin denominada funcin o mtodo) se puedeespecificar de dos formas. La interfaz (o firma) de una operacin incluye el nombre de la operacin y los tiposde datos de sus argumentos (o parmetros). La implementacin (o mtodo) de la operacin se especifica sepa-radamente y puede modificarse sin que la interfaz se vea afectada. Las aplicaciones de usuario pueden operarsobre los datos invocando estas operaciones por sus nombres y argumentos, independientemente de cmoestn implementadas las operaciones. Esto puede recibir el nombre de independencia programa-operacin.La caracterstica que permite la independencia programa-datos y la independencia programa-operacin sedenomina abstraccin de datos. Un DBMS proporciona a los usuarios una representacin conceptual delos datos que no incluye muchos de los detalles de cmo estn almacenados los datos o de cmo estn imple-mentadas las operaciones. Informalmente, un modelo de datos es un tipo de abstraccin de datos que se uti-liza para proporcionar esa representacin conceptual. El modelo de datos utiliza conceptos lgicos, comoobjetos, sus propiedades y sus relaciones, lo que para la mayora de los usuarios es ms fcil de entender quelos conceptos de almacenamiento en el computador. Por ello, el modelo de datos oculta los detalles del alma-cenamiento y de la implementacin que no resultan interesantes a la mayora de los usuarios de bases de datos.A modo de ejemplo, considere las Figuras 1.2 y 1.3. La implementacin interna de un archivo puede definir-se por la longitud de su registro (el nmero de caracteres o bytes de cada registro) y cada elemento de datospuede especificarse mediante su byte inicial dentro de un registro y su longitud en bytes. El registro ESTU-DIANTE se representara entonces como se muestra en la Figura 1.4. Pero un usuario tpico de una base dedatos no se preocupa por la ubicacin de cada elemento de datos dentro de un registro, ni por su longitud; msbien, la preocupacin del usuario est en que cuando haga una referencia al Nombre de un ESTUDIANTE quie-re obtener el valor correcto. En la Figura 1.2 se ofrece una representacin conceptual de los registros ESTU-DIANTE. El DBMS puede ocultar a los usuarios de la base de datos muchos otros detalles de la organizacindel almacenamiento de los datos (como las rutas de acceso especificadas en un archivo); los detalles sobre elalmacenamiento se explican en los Captulos 13 y 14.En la metodologa de bases de datos, la estructura detallada y la organizacin de cada archivo se almacenanen el catlogo. Los usuarios de bases de datos y los programas de aplicacin hacen referencia a la represen-tacin conceptual de los archivos y, cuando los mdulos de acceso al archivo DBMS necesita detalles sobreel almacenamiento del archivo, el DBMS los extrae del catlogo. Se pueden utilizar muchos modelos de datospara proporcionar esta abstraccin de datos a los usuarios de bases de datos. Una buena parte de este libro est

    Figura 1.4. Formato de almacenamiento interno de un registro ESTUDIANTE, basndose en el catlogo dela base de datos de la Figura 1.3.

    Nombre del elemento de datos Posicin inicial en el registro Longitud en caracteres (bytes)

    Nombre 1 30

    NumEstudiante 31 4

    Clase 35 1

    Especialidad 36 4

    1.3 Caractersticas de la metodologa de bases de datos 11

    CAP01_ELMASRI.qxd 09/04/2007 16:51 Pgina 11

  • dedicada a presentar distintos modelos de datos y los conceptos que utilizan para abstraer la representacinde los datos.En las bases de datos orientadas a objetos y de objetos relacionales, el proceso de abstraccin no slo inclu-ye la estructura de datos, sino tambin las operaciones sobre los datos. Estas operaciones proporcionan unaabstraccin de las actividades del minimundo normalmente entendidas por los usuarios. Por ejemplo, se puedeaplicar una operacin CALCULAR_CM a un objeto ESTUDIANTE para calcular la calificacin media. Dichasoperaciones pueden ser invocadas por las consultas del usuario o por las aplicaciones, sin necesidad de cono-cer los detalles de cmo estn implementadas esas operaciones. En este sentido, una abstraccin de la activi-dad del minimundo queda a disposicin de los usuarios como una operacin abstracta.

    1.3.3 Soporte de varias vistas de los datos

    Normalmente una base de datos tiene muchos usuarios, cada uno de los cuales puede necesitar una pers-pectiva o vista diferente de la base de datos. Una vista puede ser un subconjunto de la base de datos o puedecontener datos virtuales derivados de los archivos de la base de datos pero que no estn explcitamente alma-cenados. Algunos usuarios no tienen la necesidad de preocuparse por si los datos a los que se refieren estnalmacenados o son derivados. Un DBMS multiusuario cuyos usuarios tienen variedad de diferentes aplicacio-nes debe ofrecer facilidades para definir varias vistas. Por ejemplo, un usuario de la base de datos de la Figura1.2 puede estar interesado nicamente en acceder e imprimir el certificado de estudios de cada estudiante; laFigura 1.5(a) muestra la vista para este usuario. Un segundo usuario, que slo est interesado en comprobarque los estudiantes cumplen con todos los prerrequisitos de cada curso para poder registrarse, puede requerirla vista representada en la Figura 1.5(b).

    Figura 1.5. Dos vistas derivadas de la base de datos de la Figura 1.2. (a) Vista del certificado de estudios. (b)Vista de los prerrequisitos del curso.

    CERTIFICADO

    (a)

    PRERREQUISITO_CURSO

    (b)

    NombreCurso NumCurso Prerrequisitos

    Bases de datos CC3380 CC3320

    MAT2410

    Estructuras de datos CC3320 CC1310

    NombreEstudianteCertificadoEstudiante

    NumCurso Nota Semestre Ao IDSeccion

    Luis CC1310 C Otoo 05 119

    MAT2410 B Otoo 05 112

    Carlos

    MAT2410 A Otoo 04 85

    CC1310 A Otoo 04 92

    CC3320 B Primavera 05 102

    CC3380 A Otoo 05 135

    Captulo 1 Bases de datos y usuarios de bases de datos12

    CAP01_ELMASRI.qxd 09/04/2007 16:51 Pgina 12

  • 1.3.4 Comparticin de datos y procesamiento de transacciones multiusuario

    Un DBMS multiusuario, como su nombre indica, debe permitir que varios usuarios puedan acceder a la basede datos al mismo tiempo. Esto es esencial si los datos destinados a varias aplicaciones sern integrados ymantenidos en una sola base de datos. El DBMS debe incluir software de control de la concurrencia paraque esos varios usuarios que intentan actualizar los mismos datos, lo hagan de un modo controlado para queel resultado de la actualizacin sea correcto. Por ejemplo, si varios agentes de viajes intentan reservar unasiento en un vuelo, el DBMS debe garantizar que en cada momento slo un agente tiene acceso a la asig-nacin de ese asiento para un pasajero. Estos tipos de aplicaciones se denominan, por lo general, aplicacio-nes de procesamiento de transacciones en lnea (OLTP, online transaction processing). Un papel funda-mental del software DBMS multiusuario es garantizar que las transacciones concurrentes operan correcta yeficazmente.El concepto de transaccin es cada vez ms importante para las aplicaciones de bases de datos. Una transac-cin es un programa en ejecucin o proceso que incluye uno o ms accesos a la base de datos, como la lec-tura o la actualizacin de los registros de la misma. Se supone que una transaccin ejecuta un acceso lgica-mente correcto a la base de datos si lo ejecut ntegramente sin interferencia de otras transacciones. El DBMSdebe implementar varias propiedades de transaccin. La propiedad aislamiento garantiza que parezca quecada transaccin se ejecuta de forma aislada de otras transacciones, aunque puedan estar ejecutndose cien-tos de transacciones al mismo tiempo. La propiedad de atomicidad garantiza que se ejecuten o todas o nin-guna de las operaciones de bases de datos de una transaccin. En la Parte 5 se explican las transacciones msen profundidad.Las caractersticas anteriores son muy importantes para distinguir un DBMS del software de procesamientode archivos tradicional. En la Seccin 1.6 explicamos las caractersticas adicionales que caracterizan unDBMS. No obstante, en primer lugar clasificaremos los diferentes tipos de personas que trabajan en el entor-no de un sistema de bases de datos.

    1.4 Actores de la escenaEn el caso de una base de datos personal pequea, como la lista de direcciones mencionada en la Seccin 1.1,un usuario normalmente define, construye y manipula la base de datos, de modo que no se comparten datos.Sin embargo, en empresas grandes, muchas personas estn implicadas en el diseo, uso y mantenimiento deuna base de datos grande con cientos de usuarios. En esta seccin identificamos las personas cuyos trabajosimplican el uso diario de una base de datos grande; las denominaremos actores de la escena. En la Seccin1.5 hablaremos de las personas que podramos llamar trabajadores entre bambalinas (los que trabajan en elmantenimiento del entorno del sistema de bases de datos pero que no estn activamente interesados en la pro-pia base de datos).

    1.4.1 Administradores de las bases de datos

    En cualquier empresa donde muchas personas utilizan los mismo recursos, se necesita un administrador jefeque supervise y administre esos recursos. En un entorno de bases de datos, el recurso principal es la base dedatos en s misma, mientras que el recurso secundario es el DBMS y el software relacionado. La administra-cin de estos recursos es responsabilidad del administrador de la base de datos (DBA, database adminis-trator). El DBA es responsable del acceso autorizado a la base de datos, de la coordinacin y monitorizacinde su uso, y de adquirir los recursos software y hardware necesarios. El DBA tambin es responsable de pro-blemas como las brechas de seguridad o de unos tiempos de respuesta pobres. En las empresas grandes, elDBA est asistido por un equipo de personas que llevan a cabo estas funciones.

    1.4 Actores de la escena 13

    CAP01_ELMASRI.qxd 09/04/2007 16:51 Pgina 13

  • 1.4.2 Diseadores de las bases de datosLos diseadores de las bases de datos son los responsables de identificar los datos que se almacenarn en labase de datos y de elegir las estructuras apropiadas para representar y almacenar esos datos. Estas tareas seacometen principalmente antes de implementar y rellenar la base de datos. Es responsabilidad de los disea-dores comunicarse con todos los presuntos usuarios de la base de datos para conocer sus requisitos, a fin decrear un diseo que satisfaga sus necesidades. En muchos casos, los diseadores forman parte de la plantilladel DBA y se les pueden asignar otras responsabilidades una vez completado el diseo de la base de datos.Estos diseadores normalmente interactan con los grupos de usuarios potenciales y desarrollan vistas de labase de datos que satisfacen los requisitos de datos y procesamiento de esos grupos. Cada vista se analiza des-pus y se integra con las vistas de los otros grupos de usuarios. El diseo final de la base de datos debe sercapaz de soportar los requisitos de todos los grupos de usuarios.

    1.4.3 Usuarios finales

    Los usuarios finales son las personas cuyos trabajos requieren acceso a la base de datos para realizar consul-tas, actualizaciones e informes; la base de datos existe principalmente para ser utilizada. Los usuarios finalesse pueden clasificar en varias categoras:

    Los usuarios finales casuales acceden ocasionalmente a la base de datos, pero pueden necesitar unainformacin diferente en cada momento. Utilizan un sofisticado lenguaje de consulta de bases de datospara especificar sus peticiones y normalmente son administradores de nivel medio o alto u otros usua-rios interesados.

    Los usuarios finales principiantes o paramtricos constituyen una parte considerable de los usua-rios finales de las bases de datos. Su labor principal gira entorno a la consulta y actualizacin constan-tes de la base de datos, utilizando tipos de consultas y actualizaciones estndar (denominadastransacciones enlatadas) que se han programado y probado cuidadosamente. Las tareas que estosusuarios llevan a cabo son variadas: Los cajeros bancarios comprueban los balances de cuentas, as como las retiradas y los depsitos

    de fondos. Los agentes de viajes que reservan en aerolneas, hoteles y compaas de alquiler de automviles

    comprueban la disponibilidad de una solicitud dada y hacen la reserva. Los empleados de las estaciones receptoras de las compaas navieras introducen las identificacio-

    nes de los paquetes mediante cdigos de barras y dems informacin descriptiva a travs de boto-nes para actualizar una base de datos central de paquetes recibidos y en trnsito.

    Entre los usuarios finales sofisticados se encuentran los ingenieros, los cientficos, los analistascomerciales y otros muchos que estn completamente familiarizados con el DBMS a fin de implemen-tar sus aplicaciones y satisfacer sus complejos requisitos.

    Los usuarios finales independientes mantienen bases de datos personales utilizando paquetes de pro-gramas confeccionados que proporcionan unas interfaces fciles de usar y basadas en mens o grfi-cos. Un ejemplo es el usuario de un paquete de impuestos que almacena sus datos financieros perso-nales de cara a la declaracin de la renta.

    Un DBMS tpico proporciona muchas formas de acceder a una base de datos. Los usuarios finales principian-tes tienen que aprender muy poco sobre los servicios del DBMS; simplemente tienen que familiarizarse conlas interfaces de usuario de las transacciones estndar diseadas e implementadas para su uso. Los usuarioscasuales slo se aprenden unos cuantos servicios que pueden utilizar repetidamente. Los usuarios sofisticadosintentan aprender la mayora de los servicios del DBMS para satisfacer sus complejos requisitos. Los usua-rios independientes normalmente llegan a ser expertos en un paquete de software especfico.

    Captulo 1 Bases de datos y usuarios de bases de datos14

    CAP01_ELMASRI.qxd 09/04/2007 16:51 Pgina 14

  • 1.4.4 Analistas de sistemas y programadores de aplicaciones (ingenieros de software)

    Los analistas de sistemas determinan los requisitos de los usuarios finales, especialmente de los usuarios fina-les principiantes y paramtricos, as como las especificaciones de desarrollo para las transacciones enlatadasque satisfacen esos requisitos. Los programadores de aplicaciones implementan esas especificaciones comoprogramas; despus, verifican, depuran, documentan y mantienen esas transacciones enlatadas. Dichos ana-listas y programadores (normalmente conocidos como desarrolladores de software o ingenieros de softwa-re) deben familiarizarse con todas las posibilidades proporcionadas por el DBMS al objeto de desempear sustareas.

    1.5 Trabajadores entre bambalinasAdems de los que disean, utilizan y administran una base de datos, hay otros usuarios que estn asociadoscon el diseo, el desarrollo y el funcionamiento de un entorno de software y sistema DBMS. Estas personasnormalmente no estn interesadas en la base de datos propiamente dicha. Los denominaremos trabajadoresentre bambalinas y los dividiremos en las siguientes categoras:

    Diseadores e implementadores de sistemas DBMS. Disean e implementan los mdulos y las inter-faces DBMS como un paquete software. Un DBMS es un sistema software muy complejo compuestopor muchos componentes, o mdulos, incluyendo los destinados a implementar el catlogo, procesarel lenguaje de consulta, procesar la interfaz, acceder y almacenar los datos en un bfer, controlar laconcurrencia, y manipular la recuperacin y la seguridad de los datos. El DBMS debe interactuar conotro software de sistema, como el sistema operativo y los compiladores de diversos lenguajes de pro-gramacin.

    Desarrolladores de herramientas. Disean e implementan herramientas (paquetes de software quefacilitan el modelado y el diseo de la base de datos, el diseo del sistema de bases de datos y la mejo-ra del rendimiento). Las herramientas son paquetes opcionales que a menudo se compran por separa-do. Entre ellas podemos citar los paquetes para el diseo de bases de datos, la monitorizacin del ren-dimiento, las interfaces grficas o en otros idiomas, el prototipado, la simulacin y la generacin dedatos de prueba. En muchos casos, los fabricantes de software independiente desarrollan y comercia-lizan estas herramientas.

    Operadores y personal de mantenimiento (personal de administracin del sistema). Son los respon-sables de la ejecucin y el mantenimiento real del entorno hardware y software para el sistema de basesde datos.

    Aunque estas categoras de trabajadores entre bambalinas se encargan de que el sistema de bases de datos estdisponible para los usuarios finales, normalmente no utilizan la base de datos para sus propios fines.

    1.6 Ventajas de utilizar una metodologa DBMSEn esta seccin explicaremos algunas de las ventajas de utilizar un DBMS y las capacidades que un buenDBMS debe poseer. Estas capacidades se aaden a las cuatro caractersticas principales explicadas en laSeccin 1.3. El DBA debe utilizar estas capacidades para acometer una variedad de objetivos relacionados conel diseo, la administracin y el uso de una base de datos multiusuario grande.

    1.6.1 Control de la redundancia

    En el desarrollo tradicional de software que hace uso del procesamiento de archivos, cada grupo de usuariosmantiene sus propios archivos para manipular sus aplicaciones de procesamiento de datos. Por ejemplo,

    1.6 Ventajas de utilizar una metodologa DBMS 15

    CAP01_ELMASRI.qxd 09/04/2007 16:51 Pgina 15

  • vamos a retomar la base de datos UNIVERSIDAD de la Seccin 1.2; aqu, el personal que registra los cursosy la oficina de contabilidad podran ser los dos grupos de usuarios. En la metodologa tradicional, cada grupomantiene sus propios archivos de estudiantes. La oficina de contabilidad guarda datos sobre el registro y lainformacin de facturacin relacionada, mientras que la oficina de registro hace un seguimiento de los cursosy las calificaciones de los estudiantes. Aparte de estos dos grupos, puede haber otros que dupliquen parte otodos estos mismos datos en sus archivos propios.La redundancia resultante de almacenar los mismos datos varias veces conduce a serios problemas. En pri-mer lugar, las actualizaciones lgicas sencillas (como la introduccin de los datos de un estudiante nuevo) hayque hacerlas varias veces: una por cada archivo donde se almacenen los datos de los estudiantes. Esto lleva auna duplicacin del esfuerzo. En segundo lugar, se derrocha espacio de almacenamiento al guardar repetida-mente los mismos datos, y este problema puede llegar a ser muy serio en las bases de datos ms grandes. Entercer lugar, los archivos que representan los mismos datos pueden acabar siendo incoherentes, lo que puedeocurrir cuando una determinada actualizacin se aplica a unos archivos y a otros no. Incluso si una actualiza-cin (por ejemplo, la adicin de un estudiante nuevo) se aplica a todos los archivos adecuados, los datos rela-cionados con ese estudiante pueden ser incoherentes porque las actualizaciones han sido aplicadas por losdistintos grupos de usuarios. Por ejemplo, un grupo de usuarios puede introducir errneamente la fecha denacimiento del estudiante (19-ENE-1988), mientras que otro grupo la introduce correctamente (29-ENE-1988).En la metodologa de bases de datos, las vistas de los diferentes grupos de usuarios se integran durante el dise-o de la base de datos. Idealmente, debemos tener un diseo que almacene cada elemento de datos lgico(como el nombre o la fecha de nacimiento del estudiante) slo en un lugar de la base de datos. Este hechogarantiza la coherencia y ahorra espacio de almacenamiento. Sin embargo, en la prctica, a veces es necesa-rio recurrir a una redundancia controlada para mejorar el rendimiento de las consultas. Por ejemplo, pode-mos almacenar NombreEstudiante y NumCurso de forma redundante en un archivo INFORME_CALIF (vasela Figura 1.6[a]) porque siempre que recuperemos un registro de este ltimo, queremos recuperar el nombredel estudiante y el nmero del curso, junto con la calificacin, el nmero de estudiante y el identificador dela seccin. Al colocar todos los datos juntos, no tenemos que buscar en varios archivos para recopilarlos. Enestos casos, el DBMS debe tener la capacidad de controlar esta redundancia para evitar las incoherencias entre

    Figura 1.6. Almacenamiento redundante de NombreEstudiante y NumCurso en INFORME_CALIF. (a) Datoscoherentes. (b) Registro incoherente.

    (a) INFORME_CALIF

    (b) INFORME_CALIF

    NumEstudiante NombreEstudiante IDSeccion NumCurso Nota

    17 Carlos 112 MAT2410 B

    NumEstudiante NombreEstudiante IDSeccion NumCurso Nota

    17 Luis 112 MAT2410 B

    17 Luis 119 CC1310 C

    8 Carlos 85 MAT2410 A

    8 Carlos 92 CC1310 A

    8 Carlos 102 CC3320 B

    8 Carlos 135 CC3380 A

    Captulo 1 Bases de datos y usuarios de bases de datos16

    CAP01_ELMASRI.qxd 09/04/2007 16:51 Pgina 16

  • archivos. Esto se puede hacer automticamente comprobando que los valores NombreEstudiante-NumEstudiante de cualquier registro de INFORME_CALIF de la Figura 1.6(a) coincide con alguno de los valo-res Nombre-NumEstudiante del registro ESTUDIANTE (vase la Figura 1.2). De forma parecida, los valoresIDSeccion-NumCurso de INFORME_CALIF pueden compararse con los registros de SECCIN. Estas compro-baciones pueden especificarse en el DBMS durante el diseo de la base de datos y que el DBMS las ejecuteautomticamente siempre que se actualice el archivo INFORME_CALIF. La Figura 1.6(b) muestra un registrode INFORME_CALIF que es incoherente con el archivo ESTUDIANTE de la Figura 1.2, que puede introducir-se incorrectamente de no controlarse la redundancia.

    1.6.2 Restriccin del acceso no autorizado

    Cuando varios usuarios comparten una base de datos grande, es probable que la mayora de los mismos notengan autorizacin para acceder a toda la informacin de la base de datos. Por ejemplo, los datos financierosse consideran a menudo confidenciales, y slo las personas autorizadas pueden acceder a ellos. Adems, algu-nos usuarios slo pueden recuperar datos, mientras que otros pueden recuperarlos y actualizarlos. As pues,tambin hay que controlar el tipo de operacin de acceso (recuperacin o actualizacin). Normalmente, losusuarios o grupos de usuarios tienen nmeros de cuenta protegidos mediante contraseas, que pueden utilizarpara tener acceso a la base de datos. Un DBMS debe proporcionar seguridad y un subsistema de autoriza-cin, que el DBA utiliza para crear cuentas y especificar las restricciones de las mismas. Despus, el DBMSdebe implementar automticamente esas restricciones. Podemos aplicar controles parecidos al softwareDBMS. Por ejemplo, slo el personal del DBA puede utilizar cierto software privilegiado, como el que per-mite crear cuentas nuevas. De forma parecida, los usuarios paramtricos pueden acceder a la base de datosslo a travs de transacciones enlatadas desarrolladas para su uso.

    1.6.3 Almacenamiento persistente para los objetos del programa

    Las bases de datos se pueden utilizar para proporcionar almacenamiento persistente a los objetos de progra-ma y las estructuras de datos.