fundadlentos de sistedlas de bases de datos ramez elmasri 5ta

981  43 

Loading....

Loading....

Loading....

Loading....

Loading....

Texto completo

(1)

Ramez Elmasri

Shamkant B. N

(2)

Fundamentos de Sistemas

de Bases de Datos

(3)

FundaDlentos de SisteDlas

de Bases de Datos

Quinta Edición

RAMEZ ELMASRI

Department of Computer Science and Engineering

The University of Texas at Arlington

SHAMKANT B. NAVATHE

College of Computing

Georgia Institute of Technology

Traducción

José Manuel Díaz

PEARSON

Addison

Wesley

Boston

e

San Francisco

e

Nueva

York

e

Londres

Toronto

e

Sydney

e

Tokio

e

Singapur

e

Madrid

e

Ciudad de México

Munich

e

París

e

Ciudad del Cabo

e

Hong Kong

e

Montreal

(4)

/ Datos de catalogación bibtiogrtnu

fundamentus de Si ternas de 811Ses de Datos Ramez [Imusri y Shamkllut B. Na\'athe PEARSON EDUCACiÓN S.A .. Madrid. 2007

ISON: 978·84·7829·085·7 Moltria: lnfonnática. 004.4 ronnnlo: 195 x 250 mm.

Todos los derechos reservados.

Pnginlls: 1012

Queda prohibida, salvo excepción prevista en la Ley. cualquier forma de reproducción, distri·

bución, comunicación pública y transformación de esta obra sin contar con autorización de los

titulares de propiedad intelectual. La infracción de los derechos mencionados puede ser constitu· tiva de delilo contra la propiedad intelectual (01'1$. 270)1 sgls. Código Penal).

DERECHOS RESERVADOS

© 2007 por PEARSON EDUCACiÓN S.A. Ribera del Loira, 28

28042 Madrid

Fundamentos de Sistemas de Bases de Datos Ramez Elm •• ri y Shumkant B. Navathe ISBN: 978-84-7829-085-7

Deposito Legol: M. 26.370-2007

ADDlSON WESLEY es un sello editorial aulorizado de PEARSON EDUCACiÓN S.A. AU~lOrized translation from the English language edilion, entitled FUNDAMENTALS OF DATABASE SYSTEMS, 5tl.EditiW by ELMASRI. RAMEZ; NAVATHE, SHAMKANT B.,

published by Pearson Educalllr,t¡, l ,publishing a ddison Wesley, Copyright lO 2007 EQUlPO EDITORIAL • '. , - -. •

Editor: Miguel Martín-Rolno Técnico editorial: Marta Caicoya

EQUIPO DE PRODUCCIÓN: Director: José A. Ciares

Técnico: Diego Marin

Oí.elio de Cubierta: Equipo de diseño de Pea,.on Educación S.A. Impreso por: Lavel, S. A.

IMPRESO EN ESPAÑA· PRlNTED IN SPAIN

ESle libro ba sido Impreso con papel y linhU eoológicos

(5)

A la artista, la abogada y a la música de mi vida.

R.E.

A Aruna

ya

Amol, Manisha y Samir por su amor y apoyo.

S. B. N.

(6)

Prefacio

--.

ste libro introduce los conceptos fundamentales necesarios para diseñar, utilizar e implementar sistemas

y

aplicaciones de bases de datos. Nuestra presentación acentúa los principios básicos del modelado

y

_

~

el diseño de una base de datos, así como los lenguajes

y

servicios proporcionados por los sistemas

gestores de bases de datos

,

sin olvidar las técnicas de implementación del sistema. El libro está pensado para

ser utilizado como libro de texto para un curso (de nivel principiante

,

medio o avanzado) sobre sistemas de

bases de datos de uno o dos semestres

,

o como libro de referencia

.

Asumimos que el lector está familiarizado

con los conceptos elementales sobre programación

y

estructura de los datos.

E

mpezamos en la Parte 1 con una introducción y

una presentación de los conceptos y

la terminología básicos

,

y

los principios del modelado conceptual de una base de datos. Concluimos en las Partes 7 y 8 con una intro

-ducción a las tecnologías emergentes, como la minería 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 más

impor-tantes de los fundamentos de las bases de datos

.

E

n la quinta edición hemos incluido las siguientes características:

Una organización flexible e independiente que puede ajustarse a las necesidades individuales

.

Un capítulo nuevo de introducción a las técnicas de programación en SQL para aplicaciones web

uti-li

z

ando PHP

,

el popular lenguaje de

sc

ripting.

Un conjunto actualizado

y

ampliado de ejercicios al final de cada capítulo.

Una explicación actualizada sobre seguridad

,

bases de datos móviles, GIS y la manipulación de datos

en bioinformática.

Un sitio web complementario (www.librosite.ne

tl

elmasri) que incluye datos que pueden cargarse en

distintos tipos de bases de datos relacionales al objeto de conseguir unos ejercicios más realistas.

Un sencillo intérprete de cálculo

y

álgebra relacionales.

Los ejercicios propuestos al final de los capítulos (del 3 al 12

)

versan sobre los temas del capítulo

y

funcionan en combinación con las bases de datos del sitio web complementario

;

estos ejercicios s

e

amplían posteriormente a medida que se explica material nuevo.

Una revisión significativa de los suplementos

,

incluyendo un robusto conjunto de materiales para los

profesores y los estudiantes

,

como diapositivas de PowerPoint

,

las figuras del te

x

to y la guía del

pro-fesor con las soluciones

.

(7)

VIII Prefacio

Principales diferencias con la cuarta edición

Los cambios organizativos en la quinta edición son mínimos. Las mejoras de esta edición se han centrado en los capítulos individuales. Los principales cambios son los siguientes:

• Inclusión de nuevos ejercicios de práctica y la mejora de los ejercicios propuestos al final de los capí-tulos (Partes 1 a 3).

• Un nuevo Capítulo 26, que es una introducción a la programación de bases de datos web utilizando el lenguaje de scripting PHP.

• Ejemplos nuevos que ilustran los algoritmos de normalización y diseño de una base de datos (Capítulos lOyll).

• Un Capítulo 23 actualizado sobre seguridad.

• Un Capítulo 30 revisado dedicado a las tecnologías y aplicaciones de bases de datos emergentes para reflejar lo más actual sobre bases de datos móviles, GIS y la gestión de los datos del genoma.

• Un diseño nuevo que mejora la apariencia visual de las figuras, y el uso de fuentes especiales para los atributos y los tipos de entidades que mejoran la lectura y la comprensión.

Contenidos de la quinta edición

La Parte 1 describe los conceptos básicos necesarios para un buen entendimiento del diseño y la implemen-tación de bases de datos, así como las técnicas de modelado conceptual utilizadas en los sistemas de bases de datos. Los Capítulos 1 y 2 son una introducción a las bases de datos, los usuarios típicos y los conceptos de DBMS, su terminología y su estructura. En el Capítulo 3 se presentan y utilizan los conceptos sobre el mode-lo ER (entidad-relación) y mode-los diagramas ER para ilustrar el diseño conceptual de una base de datos. El Capítulo 4 se centra en la abstracción de los datos y los conceptos de modelado semántico de los mismos, y amplía la explicación 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, la especialización, la generalización y la unión (categorías). En los Capítulos 3 y 4 también explicamos la nota-ción UML para los diagramas de clase.

La Parte 2 describe el modelo de datos relacional y los DBMSs relacionales. El Capítulo 5 describe el mode-lo relacional básico, sus restricciones de integridad y las operaciones de actualización. El Capítumode-lo 6 describe las operaciones del álgebra relacional e introduce el cálculo relacional. El Capítulo 7 explica el diseño de bases de datos relacionales utilizando el mapeado ER- y EER-a-relacional. El Capítulo 8 ofrece una panorá-mica detallada del lenguaje SQL, incluyendo el estándar SQL que se implementa en la mayoría de los siste-mas relacionales. El Capítulo 9 abarca tesiste-mas de programación en SQL, como SQLJ, JDBC y SQL!CLI.

La Parte 3 abarca varios temas relacionados con el diseño de bases de datos. Los Capítulos 10 Y 11 están dedi-cados a los formalismos, las teorías y los algoritmos desarrollados para el diseño 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 Capítulo lOse presentan una normalización intuitiva por pasos, mientras que en el Capítulo 11 se incluyen los algoritmos de diseño relacional con ejemplos. En este capítulo también se definen otros tipos de dependencias, como las multivalor y las de concatenación. El Capítulo 12 presenta una visión general de las diferentes fases del proceso de diseño de una base de datos para aplicaciones de tamaño medio y grande, utilizando UML.

La Parte 4 empieza cap una descripción de las estructuras físicas de los ficheros y de los métodos de acceso que se utilizan en los sistemas de bases de datos. El Capítulo 13 describe los principales métodos para orga-nizar los ficheros de registros en el disco, incluyendo la dispersión (hashing) estática y dinámica. El Capítulo

\

(8)

Prefacio IX

14 describe las técnicas de indexación para ficheros, como las estructuras de datos árbol B y árbol B+ y los ficheros rejilla. El Capítulo 15 ofrece una introducción de los fundamentos básicos del procesamiento y la optimización de consultas, mientras que el Capítulo 16 explica el diseño y la refinación de una base de datos física.

La Parte 5 explica el procesamiento de transacciones, el control de la concurrencia y las técnicas de recupe-ración, además de descripciones de cómo se materializan estos conceptos en SQL.

La Parte 6 ofrece una introducción global a los sistemas de bases de datos de objetos y de objetos relaciona-les. El Capítulo 20 introduce los conceptos de orientación a objetos. El Capítulo 21 ofrece una panorámica detallada del modelo de objeto ODMG y sus lenguajes ODL y OQL asociados. El Capítulo 22 describe cómo las bases de datos relacionales se están ampliando con el fin de incluir conceptos de orientación a objetos, y presenta las características de los sistemas de objetos relacionales, así como una visión general de algunas características del estándar SQL3 y del modelo de datos relacional anidado.

Las Partes 7 y 8 están dedicadas a temas más avanzados. El Capítulo 23 ofrece una visión general de la segu-ridad en las-bases de datos, incluyendo el modelo de control de acceso discrecional con comandos SQL para otorgar y revocar privilegios, sin olvidar el modelo de control de acceso obligatorio con categorías de usua-rio y la instanciación múltiple. Se explican más en detalle las medidas de control de la seguridad, incluyendo el 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 Capítulo 24 introduce varios modelos de bases de datos mejorados para aplicaciones avanzadas, como las bases de datos activas y los triggers, así como las bases de datos de

tiempo, espaciales, multimedia y deductivas. El Capítulo 25 ofrece una introducción a las bases de datos dis-tribuidas y la arquitectura de tres niveles cliente/servidor. El Capítulo 26 es un capítulo nuevo que introduce la programación de bases de datos web mediante PHP. El Capítulo 27 es una introducción a XML; presenta sus conceptos y compara el modelo XML con los modelos de bases de datos tradicionales. El Capítulo 28 sobre la minería de datos ofrece una visión general del proceso de minería y el descubrimiento del conoci-miento, además de ofrecer una explicación breve sobre distintos métodos y herramientas comerciales. El Capítulo 29 introduce los conceptos de almacenamiento de datos. Por último, el Capítulo 30 es una introduc-ción a las bases de datos móviles, las bases de datos multimedia, los sistemas GIS y la administraintroduc-ción de datos del genoma en bioinformática.

El Apéndice A ofrece algunas notaciones alternativas para visualizar un esquema ER o EER conceptual, que pueden sustituirse por la notación que utilizamos nosotros, si así lo prefiere el profesor. El apéndice B ofrece algunos parámetros importantes de los discos. El Apéndice C ofrece una visión general del lenguaje de con-sulta gráfico QBE.

Los apéndices D y E (disponibles en el sitio web complementario del libro, www.librosite.net/elmasri) están dedicados a los sistemas de bases de datos heredados, basados en los modelos de bases de datos jerárquicos y de red. Se han utilizado durante más de treinta años como base de muchas de las aplicaciones de bases de datos comerciales y sistemas de procesamiento de transacciones, y pasarán décadas hasta que se reemplacen completamente. Consideramos que es importante que los estudiantes de bases de datos conozcan estos méto-dos tan longevos.

Directrices para utilizar este libro

Hay muchas formas diferentes de impartir un curso de bases de datos, Los capítulos de las Partes 1 a 5 se pue-den utilizar, en el orpue-den en que aparecen o en el orpue-den deseado, como introducción a los sistemas de bases de datos. Los capítulos y las secciones seleccionados se pueden omitir, y el profesor puede añadir otros capítu-los del resto del libro, en función de capítu-los objetivos del curso. Al final de la sección inicial de cada capítulo, se enumeran las secciones candidatas a ser omitidas en caso de que se precise una explicación menos detallada del tema en cuestión. Sugerimos llegar hasta el Capítulo 14 en un curso de introducción a las bases de datos, e incluir las partes seleccionadas de otros capítulos, en función de los conocimientos de los estudiantes y de

(9)

X Prefacio

los objetivos perseguidos. En el caso de que el curso abarque también las técnicas de implementación de sis-temas, habría que incluir los capítulos de las Partes 4 y 5.

Los Capítulos 3 y 4, que abarcan el modelado conceptual mediante los modelos ER y EER, son importantes para un buen conocimiento de las bases de datos. No obstante, estos capítulos se pueden ver parcialmente, verse más tarde en el curso, u omitirse completamente si el objetivo de este último es la implementación de un DBMS. Los Capítulos 13 y 14, dedicados a la organización e indexación de ficheros, también se pueden ver más tarde o temprano en el curso, u omitirse completamente si el objetivo son los modelos de datos y los lenguajes. Los estudiantes que han completado un curso sobre organización de ficheros, ciertas partes de estos capítulos pueden considerarse como material de lectura, o pueden asignarse algunos ejercicios como un repa-so de los conceptos.

Un proyecto de diseño e implementación de bases de datos completo abarca el diseño conceptual (Capítulos 3 y 4), el mapeado del modelo de datos (Capítulo 7), la normalización (Capítulo 10) y la implementación en SQL (Capítulo 9). También es preciso considerar el Capítulo 26 si el objetivo del curso abarca las aplicacio-nes de bases de datos web. Se precisa documentación adicional sobre los lenguajes de programación y los RDBMS utilizados.

El libro está escrito para que sea posible abarcar temas en diferentes secuencias. El gráfico de la siguiente figura muestra las principales dependencias entre los capítulos. Como el diagrama ilustra, es posible empezar

13,14

Organización e indexación de

ficheros

10, 11

Dependencias, normalización

15, 16

Procesamiento de consultas, refinación de BD

17, 18, 19

Transacciones,

28,29

Minería de datos, almacenamiento

5,6

Modelo, álgebra y cálculo relacional

7

ER-y

EER-a-relacional

(10)

r

f

I

f

);

I

I

i

Prefacio

con varios temas diferentes a continuación de los dos primeros capítulos de introducción. Aunque el gráfico puede parecer complejo, es importante saber que si los capítulos se cubren en orden, las dependencias no se pierden. El gráfico lo pueden consultar los profesores que desean seguir un orden alternativo de presentación.

En un curso de un semestre basado en este libro, los capítulos seleccionados pueden asignarse como material de lectura. Las Partes 4, 7 Y 8 se pueden considerar para este cometido. El libro también se puede utilizar para una secuencia de dos semestres. El primer curso, Introducción al diseño/sistemas de bases de datos, a un nivel de estudiante de segundo año, medio o de último año, puede cubrir la mayoría de los Capítulos 1 a 14. El segundo curso, Técnicas de diseño e implementación de bases de datos, a un nivel de estudiante de último año o graduado de primer año, puede abarcar los Capítulos 15 a 30. Los Capítulos de las Partes 7 y 8 se pueden utilizar selectivamente en cualquier semestre, y el material que describe el DBMS y que está disponible para los estudiantes en la institución local, se puede utilizar como complemento del material de este libro.

Materiales suplementarios

Existe 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 están disponibles como diapositivas de PowerPoint en el sitio web de Computer Science: http://www.aw.com/cssuppor(

Un manual de prácticas, novedad en la quinta edición, está disponible en el sitio web complementario del libro (www.librosite.net/elmasri). Este manual abarca las herramientas de modelado de datos más populares, un intérprete de álgebra y cálculo relacional, y ejemplos del libro implementados utilizando dos sistemas de ges-tión de bases de datos muy difundidos. Las prácticas de la parte final de los capítulos de este libro están corre-lacionadas con el manual.

Los profesores cualificados tienen a su disposición un manual de soluciones. Visite el centro de recursos para profesores de Addison-Wesley (http://www.aw.com/irc). o envíe un mensaje de correo electrónico a

compu-ting@aw.com si desea información sobre cómo acceder a estas soluciones.

Material de apoyo adicional

Database Place, de Addison-Wesley, contiene materiales interactivos de asistencia a los estudiantes durante sus estudios sobre modelado, normalización y SQL. Mediante un código de acceso, que se incluye con cada copia de este texto, se ofrece una suscripción complementaria a Database Place. Las suscripciones también pueden adquirirse online. Si desea más información, visite http://www.aw.com/databaseplace.

Agradecimientos

Es un gran placer reconocer la ayuda y contribución de tantas personas a este proyecto. En primer lugar, que-remos dar las gracias a nuestros editores, Matt Goldstein y Katherine Harutunian. En particular, queque-remos reconocer el esfuerzo y la ayuda de Matt Goldstein, nuestro editor principal para la quinta edición. También queremos dar las gracias a aquellas personas de Addison-Wesley que han contribuido con su esfuerzo a esta quinta edición: Michelle Brown, Gillian Hall, Patty Mahtani, Maite Suarez-Rivas, Bethany Tidd y Joyce Cosentino Wells. Estamos agradecidos a Gillian Hall por el diseño interior de esta edición y por su detallada atención sobre los estilos, las fuentes y los elementos artísticos que tan cuidadosamente ha preparado para este libro.

También queremos agradecer la contribución de los siguientes revisores: Hani Abu-Salem, DePaul

University; Jamal R. Alsabbagh, Grand Valley State University; Ramzi Bualuan, University

01

Notre Dame;

XI

(11)

xn

Prefacio

Soon Chung, Wright State University; Sumali Conlon, University of Mississippi; Hasan Davulcu, Arizona

State University; James Gel!er, New Jersey Institute of Technology; Le Gruenwald, The University of

Oklahoma; Latifur Khan, University ofTexas at DalIas; Herman Lam, University of Florida; Byung S. Lee,

University ofVermont; Donald Sanderson, East Tennessee State University; Jamil Saquer, Southwest Missouri

State Un iversity; 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 prácticas de este libro yen el diseño de los ejercicios. Salman Azar, de la Universidad de San Francisco, también contribuyó con algunos ejercicios.

A Sham Navathe le gustaría 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 también ayudó con valiosas sugerencias y correcciones.

Nos gustaría repetir nuestro agradecimiento a todas esas personas que revisaron y contribuyeron con su tra-bajo en las ediciones anteriores de este libro:

11 Primera edición. 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.

11 Segunda edición. 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.

11 Tercera edición. Maite Suarez-Rivas y Katherine Harutunian (editoras); Suzanne Dietrieh, Ed Omiecinski, Rafi Ahmed, Francois Bancilhon, Jose Blakeley, Rick Cattel!, 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. Kame, Harish Kotbagi, Vijay Kumar, Tarcisio Lima, RamonA. 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. Vil!areal.

11 Cuarta edición. Maite Suarez-Rivas, Katherine Harutunian, Daniel Rausch y Juliet Silveri (editores); Phil Bernhard, Zhengxin Chen, Jan Chomicki, Hakan Ferhatosmanoglu, Len Fisk, William Hankley, AIi R. Hurson, Vijay Kumar, Peretz Shoval, Jason T. L. Wang (revisores); Ed Omiecinski (que contri-buyó en el Capítulo 27); Las personas de la Universidad de Texas en Arlington que contribuyeron en esta edición fueron Hyoil Han, Babak Hojabri, Jack Fu, Charley Li, Ande Swathi y Steven Wu; Las personas 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.

(12)

l1li Parte 1

Capítulo 1

1 .1

1.2 1.3 1.4

1.5

1.6 1.7

1.8

1.9

Introducción y modelado conceptual 1

Bases de datos y usuarios de bases de datos 3

Introducción 4

Un ejemplo 6

Contenido

Características de la metodología de bases de datos 8 Actores de la escena 13

Trabajadores entre bambalinas 1 5

Ventajas de utilizar una metodología DBMS 15

Breve historia de las aplicaciones de bases de datos 20 Cuándo no usar un DBMS 23

Resumen 24

Preguntas de repaso 24 Ejercicios 25

Bibliografía seleccionada 25

Capítulo 2 Conceptos y arquitectura de los sistemas de bases de datos 27

2.1 Modelos de datos, esquemas e instancias 28

2.2 Arquitectura de tres esquemas e independencia de los datos 31 2.3 Lenguajes e interfaces de bases de datos 33

2.4 Entorno de un sistema de bases de datos 36

2.5 Arquitecturas cliente/servidor centralizadas para los DBMSs 40

2.6 Clasificación de los sistemas de administración de bases de datos 44

2.7 Resumen 47

Capítulo 3

3.1

3.2

Preguntas de repaso 48

Ejercicios 48

Bibliografía seleccionada 48

Modelado de datos con el modelo Entidad-Relación (ER) 51

Uso de modelos de datos conceptuales de alto nivel para el diseño de bases de datos 52

Un ejemplo de aplicación de base de datos 54

(13)

xiv Contenido

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

restricciones estructurales 61 3.5 Tipos de entidades débiles 67

3.6 Perfeccionamiento del diseño ER para la base de datos EMPRESA 68

3.7 Diagramas ER, convenciones de denominación y problemas de diseño 69 3.8 Ejemplo de otra notación: diagramas de clase UML 72

3.9 Tipos de relación con grado mayor que dos 75

3.10 Resumen 78

Preguntas de repaso 79

Ejercicios 80

Ejercicios de práctica 86 Bibliografía seleccionada 87

Capítulo 4 El modelo Entidad-Relación mejorado (EER) 89

4.1 Subclases, superclases y herencia 90 4.2 Especialización y generalización 91

4.3 Restricciones y características de las jerarquías de especialización y generalización 94

4.4 Modelado de tipos UNION usando categorías 100

4.5 Ejemplo EER de un esquema UNIVERSIDAD, diseños y definiciones formales 102

4.6 Ejemplo de otra notación: representación de la especialización y la generalización

en diagramas de clase UML 105

4.7 Abstracción de datos, representación del conocimiento y conceptos de ontología 107

4.8 Resumen 112

• Parte 2

Preguntas de repaso 112 Ejercicios 11 3

Ejercicios de práctica 11 9

Bibliografía seleccionada 119

Modelo relacional: conceptos, restricciones, lenguajes,

diseño y programación

Capítulo 5 El modelo de datos relacional y las restricciones

de una base de datos relacional 123

5.1 Conceptos del modelo relacional 124

5.2 Restricciones del modelo relacional y esquemas de bases de datos relacionales 129

5.3 Actualizaciones, transacciones y negociado de la violación de una restricción 137

5.4 Resumen 140

(14)

Capítulo 6

6.1

Preguntas de repaso 140 Ejercicios 141

Bibliografía seleccionada 144

El álgebra relacional y los cálculos relacionales145

Operaciones relacionales unarias: SELECCiÓN (SELECT) y PROYECCiÓN (PROJECT) 146

6.2 Operaciones de álgebra relacional de la teoría de conjuntos 151

6.3 Operaciones relacionales binarias: CONCATENACiÓN (JOIN) y DIVISiÓN (DIVISION) 155

6.4 Operaciones relacionales adicionales 162

6.6 Cálculos relacionales de tupla 169 6.7 Los cálculos relacionales de dominio 177

6.8 Resumen 179

Preguntas de repaso 180 Ejercicios 1 80

Ejercicios de práctica 185

Bibliografía seleccionada 186

Contenido xv

Capítulo 7 Diseño de bases de datos relacionales por mapeado ER-y

EER-a-relacional 189

7.1 Diseño de una base de datos relacional utilizando el mapeado ER-a-relacional 189

7.2 Mapeado de construcciones del modelo EER a las relaciones 196

7.3 Resumen 200

Preguntas de repaso 201

Ejercicios 201

Ejercicios de práctica 202

Bibliografía seleccionada 202

Capítulo 8 SOl-99: definición del esquema, restricciones,

consultas y vistas 203

8.1 Definición de datos y tipos de datos de SOL 205 8.2 Especificación de restricciones en SOL 209 8.3 Sentencias de SOL para cambiar el esquema 212

8.4 Consultas básicas en SOL 21 3 8.5 Consultas SOL más complejas 222

8.6 Sentencias INSERT, DELETE y UPDATE de SOL 235 8.7 Restricciones como aserciones y triggers 238

8.8 Vistas (tablas virtuales) en SOL 239 8.9 Características adicionales de SOL 243

8.10 Resumen 244

(15)

xvi Contenido

Capítulo 9

9.1 9.2

9.3

9.4 9.5

• Parte 3

Preguntas de repaso 244 Ejercicios 244

Ejercicios de práctica 248 Bibliografía seleccionada 249

Introducción a las técnicas de programación

Sal

251

Programación de bases de datos: problemas y técnicas 252 SOL incrustado, SOL dinámico y SOLJ 254

Programación de bases de datos con llamadas a funciones: SOL/CL! y JDBC 264

Procedimientos almacenados de bases de datos y SOL/PSM 272 Resumen 274

Preguntas de repaso 275 Ejercicios 275

Ejercicios de práctica 276 Bibliografía seleccionada 277

Teoría y metodología del diseño de bases de datos 279

Capítulo 10 Dependencias funcionales y normalización en

bases de datos relacionales 281

10.1 Directrices de diseño informales para los esquemas de relación 282 10.2 Dependencias funcionales 291

10.3 Formas normales basadas en claves principales 298

10.4 Definiciones generales de la segunda y tercera formas normales 305 10.5 Forma normal de Boyce-Codd 308

10.6 Resumen 311

Preguntas de repaso 311 Ejercicios 31 2

Ejercicios de práctica 31 6

Bibliografía seleccionada 316

Capítulo 11 Algoritmos de diseño de bases de datos relacionales y

dependen-cias adicionales 317

11 .1 Propiedades de las descomposiciones relacionales 318

11.2 Algoritmos para el diseño de un esquema de base de datos relacional 323 11.3 Dependencias multivalor y cuarta forma normal 332

11.4 Dependencias de concatenación y quinta forma normal 337 11.5 Dependencias de inclusión 338

11.6 Otras dependencias y formas normales 339

11 .7 Resumen 341

Preguntas de repaso 341

(16)

Ejercicios 342

Ejercicios de práctica 344

Bibliografía seleccionada 344

Capítulo 12 Metodología práctica de diseño de bases de datos y

uso de los diagramas UML 345

12.1 El papel de los sistemas de información en las empresas 346

12.2 El diseño de la base de datos y el proceso de implementación 349 12.3 Uso de diagramas UML como ayuda a la especificación del

diseño de la base de datos 366

12.4 Rational Rose, una herramienta de diseño basada en UML 373

12.5 Herramientas automáticas de diseño de bases de datos 379

12.6 Resumen 381

Preguntas de repaso 382 Bibliografía seleccionada 383

Contenido xvii

• Parte 4 Almacenamiento de datos, indexación, procesamiento de consultas

y diseño físico 387

Capítulo 13 Almacenamiento en disco, estructuras básicas

de ficheros y dispersión 389

13.1 Introducción 390

13.2 Dispositivos de almacenamiento secundario 393 13.3 Almacenamiento de bloques en el búfer 398

13.4 Ubicación de los registros de fichero en disco 399 13.5 Operaciones sobre ficheros 403

13.6 Ficheros de registros desordenados (ficheros heap) 405 13.7 Ficheros de registros ordenados (ficheros ordenados) 406 13.8

13.9

13.10 13.11

Técnicas de dispersión 409

Otras organizaciones principales de ficheros 417

Paralelismo del acceso al disco mediante la tecnología RAID 418 Nuevos sistemas de almacenamiento 423

13.12 Resumen 424

Preguntas de repaso 425 Ejercicios 426

Bibliografía seleccionada 428

Capítulo 14 Estructuras de indexación para los ficheros 429

14.1 Tipos de índices ordenados de un nivel 430 14.2 índices multinivel 438

14.3 índices multinivel dinámicos utilizando árboles B y B 1 442 14.4 índices en claves múltiples 453

(17)

xvüi Contenido

14.5 Otros tipos de índices 456

14.6 Resumen 457

Preguntas de repaso 458 Ejercicios 458

Bibliografía seleccionada 461

Capítulo 15 Algoritmos para procesamiento y optimización de consultas 463

15.1 Traducción de consultas SOL al álgebra relacional 465

15.2 15.3 15.4

15.5 15.6 15.7 15.8

15.9 15.10 15.11

Capítulo 16

16.1 16.2

16.3

Algoritmos para ordenación externa 466

Algoritmos para las operaciones SELECT y JOIN 468

Algoritmos para las operaciones de proyección y de conjunto 477

Implementación de las operaciones de agregación y de OUTER JOIN 478

Combinación de operaciones mediante flujos 480

Utilización de la heurística en la optimización de consultas 480 Utilización de la selectividad y la estimación de costes en la optimización de consultas 489

Revisión de la optimización de consultas en Oracle 498 Optimización semántica de consultas 499

Resumen 499

Preguntas de repaso 500

Ejercicios 500

Bibliografía seleccionada 501

Diseño físico y refinación de la base de datos 503

Diseño físico de las bases de datos relacionales 503 Visión general de la refinación de una base de datos en los sistemas relacionales 507

Resumen 512

Preguntas de repaso 513 Bibliografía seleccionada 513

Parte 5 Conceptos del procesamiento de transacciones 515

Capítulo 17 Introducción a los conceptos y la teoría sobre

el procesamiento de transacciones 517

17.1 Introducción al procesamiento de transacciones 517

17.2 Conceptos de transacción y sistema 523 17.3 Propiedades deseables de las transacciones 526

17.4 Clasificación de las planificaciones en base a la recuperabilidad 527 17.5 Clasificación de las planificaciones basándose en la serialización 530

17.6 Soporte de transacciones en SOL 538

17.7 Resumen 540

(18)

Preguntas de repaso 541

Ejercicios 541

Bibliografía seleccionada 542

Capítulo 18 Técnicas de control de la concurrencia 545

18.1 Técnicas de bloqueo en dos fases para controlar la concurrencia 545 18.2 Control de la concurrencia basado en la ordenación de

marcas de tiempo 555

18.3 Técnicas multiversión para controlar la concurrencia 557

18.4 Técnicas de control de la concurrencia optimistas (validación) 559 18.5 Granularidad de los elementos de datos y bloqueo de la granularidad

múltiple 560

18.6 Uso de bloqueos para controlar la concurrencia en los índices 563 18.7 Otros problemas del control de la concurrencia 565

18.8 Resumen 566

Preguntas de repaso 567 Ejercicios 568

Bibliografía seleccionada 568

Capítulo 19 Técnicas de recuperación de bases de datos 571

19.1 Conceptos de recuperación 571

19.2 Técnicas de recuperación basadas en la actualización diferida 577 19.3 Técnicas de recuperación basadas en la actualización inmediata 581 19.4 Paginación en la sombra (shadowing) 583

19.5 Algoritmo de recuperación ARIES 584

19.6 Recuperación en sistemas multibase de datos 587

19.7 Copia de seguridad de la base de datos y recuperación ante fallos catastróficos 588

19.8 Resumen 589

• Parte 6

Preguntas de repaso 590 Ejercicios 591

Bibliografía seleccionada 593

Bases de datos de objetos y relacionales de objetos 595

Capítulo 20 Conceptos de las bases de datos de objetos 597

20.1 Panorámica de los conceptos de orientación a objetos 598

Contenido xix

20.2 Identidad del objeto, estructura del objeto y constructores de tipos 601

20.3 Encapsulamiento de operaciones, métodos y persistencia 604 20.4 Herencia y jerarquías de tipos y clases 610

20.5 Objetos complejos 613

20.6 Otros conceptos de orientación a objetos 615

(19)

xx Contenido

20.7 Resumen 617

Preguntas de repaso 61 8 Ejercicios 61 8

Bibliografía seleccionada 619

Capítulo 21 Estándares, lenguajes y diseño de bases de datos

de objetos 621

21 .1 Visión general del modelo de objeto del ODMG 622

21.2 El lenguaje de definición de objetos ODL 633 21.3 El lenguaje de consulta de objetos OOL 638

21 .4 Visión general de la vinculación del lenguaje C

+ +

645

21.5 Diseño conceptual de bases de datos de objetos 647

21 .6 Resumen 649

Preguntas de repaso 650 Ejercicios 651

Bibliografía seleccionada 651

Capítulo 22 Sistemas de objetos relacionales y relacionales extendidos 653

22.1 Visión general de SOL y sus características objeto-relacional 654 22.2 Evolución de los modelos de datos y tendencias actuales

de la tecnología de bases de datos 660

22.3 Informix Universal Server 5 661

22.4 Características objeto-relacional de Oracle 8 671

22.5 Implementación y problemas relacionados con los sistemas de tipos extendidos 673

22.6 El modelo relacional anidado 674

22.7 Resumen 676

• Parte 7

Bibliografía seleccionada 677

Temas avanzados: seguridad, modelación avanzada

y distribución 679

Capítulo 23 Seguridad en las bases de datos 681

23.1 Introducción a los temas de seguridad en las bases de datos 681 23.2 Control de acceso discrecional basado en la concesión y

revocación de privilegios 685

23.3 Control de acceso obligatorio y control de acceso basado en roles para la seguridad multinivel 689

23.5 Introducción al control de flujo 696

23.6 Cifrado e infraestructuras de clave pública 697 23.7 Mantenimiento de la privacidad 699

23.8 Retos en la seguridad en las bases de datos 700

(20)

23.9 Resumen 701

Preguntas de repaso 702

Ejercicios 702

Bibliografía seleccionada 703

Contenido xxi

Capítulo 24

24.1 24.2 24.3 24.4

24.5

Modelos de datos mejorados para aplicaciones avanzadas 705

Conceptos de bases de datos activas y triggers 706

Conceptos de bases de datos de tiempo (temporales) 715 Bases de datos multimedia y espaciales 727

Introducción a las bases de datos deductivas 730 Resumen 742

Preguntas de repaso 743 Ejercicios 743

Bibliografía seleccionada 746

Capítulo 25 Bases de datos distribuidas y arquitecturas cliente-servidor 749

25.1 Conceptos de bases de datos distribuidas 750

25.2 Técnicas de fragmentación, replicación y asignación de datos para el diseño de bases de datos distribuidas 754

25.3 Tipos de sistemas de bases de datos distribuidas 759

25.4 Procesamiento de consultas en bases de datos distribuidas 762 25.5 El control de la concurrencia y la recuperación en bases de datos

distribuidas 768

25.6 Una aproximación a la arquitectura cliente-servidor de tres niveles 770 25.7 Bases de datos distribuidas en Oracle 772

25.8 Resumen 775

Preguntas de repaso 775 Ejercicios 776

Bibliografía seleccionada 778

• Parte 8 Tecnologías emergentes 781

Capítulo 26 Programación de una base de datos web usando PHP 783

26.1 Datos estructurados, semiestructurados y no estructurados 784 26.2 Un sencillo ejemplo PHP 788

26.3 Visión general de las características básicas de PHP 790 26.4 Visión general de la programación de bases de datos PHP 795

26.5 Resumen 799

Preguntas de repaso 799 Ejercicios 800

Ejercicios de práctica 800 Bibliografía seleccionada 801

(21)

xxii Contenido

Capítulo 27

27.1 27.2 27.3

27.4 27.5

XML: Lenguaje de marcado extensible 803

Modelo de datos jerárquico (árbol) de XML 803 Documentos XML, OTO y XML Schema 805

Documentos XML y bases de datos 813 Consulta XML 819

Resumen 821

Preguntas de repaso 821 Ejercicios 821

Bibliografía seleccionada 822

Capítulo 28 Conceptos de minería de datos 823

28.1 Repaso a la tecnología de minería de datos 823 28.2 Reglas de asociación 827

28.3 Clasificación 836

28.4 Agrupamiento 839

28.5 Planteamiento de otras cuestiones en minería de datos 841 28.6 Aplicaciones de la minería de datos 844

28.7 Herramientas comerciales de minería de datos 844

28.8 Resumen 847

Preguntas de repaso 847

Ejercicios 847

Bibliografía seleccionada 849

Capítulo 29 Visión general del almacenamiento de datos y OLAP 851

29.1 Introducción, definiciones y terminología 851 29.2 Características de los almacenes de datos 852

29.3 Modelado de datos para los almacenes 854 29.4 Construcción de una almacén de datos 858 29.5 Funcionalidad típica de un almacén de datos 861

29.6 Almacenes de datos frente a vistas 861

29.7 Problemas y problemas abiertos en los almacenes de datos 862

29.8 Resumen 864

Preguntas de repaso 864 Bibliografía seleccionada 864

Capítulo 30 Tecnologías y aplicaciones emergentes de bases de datos 865

30.1 Bases de datos móviles 866

30.2 Bases de datos multimedia 872

30.3 GIS (Sistemas de información geográfica, Geographic Information Systems) 878

30.4 Control de los datos del genoma 889

(22)

Bibliografía seleccionada 897

Créditos 899

Apéndice A Notaciones diagramáticas alternativas para los modelos 901

Apéndice B Parámetros de disco 905

Apéndice

e

Introducción al lenguaje aBE 909

Bibliografía seleccionada 917

índice 955

Contenido xxiü

(23)

PARTE

1

Introducción

y

modelado conceptual

(24)

CAPíTULO

1

Bases de datos

y

usuarios de bases de datos

as bases de datos y los sistemas de bases de datos son un componente esencial de la vida cotidiana en la

L

sociedad moderna. Actualmente, la mayoría de nosotros nos enfrentamos a diversas actividades que implican cierta interacción con una base de datos. Por ejemplo, ir al banco a depositar o retirar fondos, realizar una reserva en un hotel o una compañía aérea, acceder al catálogo computerizado de una biblioteca para buscar un libro, o comprar algo online (un juguete o un computador, por ejemplo), son actividades que implican que alguien o algún programa de computador acceda a una base de datos. Incluso la compra de pro-ductos en un supermercado, en muchos casos, provoca la actualización automática de la base de datos que mantiene el stock de la tienda.

Estas interacciones son ejemplos de lo que podemos llamar aplicaciones de bases de datos tradicionales, en las que la mayor parte de la información que hay almacenada y a la que se accede es textual o numérica. En los últimos años, los avances en la tecnología han conducido a excitantes aplicaciones y sistemas de bases de datos nuevos. La tecnología de los medios de comunicación nuevos hace posible almacenar digitalmente imá-genes, clips de audio y flujos (stl'eams) de vídeo. Estos tipos de archivos se están convirtiendo en un compo-nente importante de las bases de datos multimedia. Los sistemas de información geográfica (GIS,

Geographic biformatioll systems) pueden almacenar y analizar mapas, datos meteorológicos e imágenes de satélite. Los almacenes de datos y los sistemas de procesamiento analítico en línea (OLAP, online

analy-lical pl'ocessing) se utilizan en muchas compañías para extraer y analizar información útil de bases de datos mucho más grandes para permitir la toma de decisiones. Las tecnologías de tiempo real y bases de datos activas se utilizan para controlar procesos industriales y de fabricación. Y las técnicas de búsqueda en las bases de datos se están aplicando a la WWW para mejorar la búsqueda de la información que los usuarios necesitan para navegar por Internet.

No obstante, para entender los fundamentos de la tecnología de bases de datos debemos empezar por los prin-cipios básicos de las aplicaciones de bases de datos tradicionales. En la Sección 1.1 definiremos una base de datos y, a continuación, explicaremos otros términos básicos. En la Sección 1.2 ofrecemos un ejemplo de bases de datos sencillo, UNIVERSIDAD, a fin de ilustrar nuestra explicación. La Sección 1.3 describe algunas de las características principales de los sistemas de bases de datos, y las Secciones lA y 1.5 clasifican los tipos de personal cuyos trabajos implican el uso e interacción con sistemas de bases de datos. Las Secciones 1.6 a 1.8 ofrecen una explicación más completa de las diferentes capacidades que los sistemas de bases de datos ofrecen y explican algunas aplicaciones de bases de datos típicas. La Sección 1.9 es un resumen del capítulo.

(25)

4 Capítulo 1 Bases de datos y usuarios de bases de datos

El lector que desee una introducción rápida a los sistemas de bases de datos sólo tiene que estudiar las Secciones 1.1 a 1.5, después omitir u ojear rápidamente las Secciones 1.6 a 1.8, y pasar al Capítulo 2.

1. 1 Introducción

Las bases de datos y la tecnología 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 mayoría de las áreas en las que se utilizan computadores, como en el ámbito empresarial, en el comercio electrónico, ingeniería, medicina, justicia, educación y bibliotecas. La expresión base de datos se utiliza tan a menudo que empezaremos por definir su significado. Nuestra primera definición es muy general.

Una base de datos es una colección de datos relacionados. Con la palabra datos nos referimos a los hechos (datos) conocidos que se pueden grabar y que tienen un significado implícito. Por ejemplo, piense en los nom-bres, números de teléfono y direcciones de las personas que conoce. Puede tener todos estos datos grabados en un libro de direcciones indexado o los puede tener almacenados en el disco duro de un computador median-te una aplicación como Microsoft Access o Excel. Esta colección de datos relacionados con un significado implícito es una base de datos.

La definición anterior de base de datos es muy genérica; por ejemplo, podemos pensar que la colección de palabras que compone esta página de texto es una colección de datos relacionados y que, por tanto, constitu-ye una base de datos. No obstante, el uso común del término base de datos es normalmente más restringido. Una base de datos tiene las siguientes propiedades implícitas:

• Una base de datos representa algún aspecto del mundo real, lo que en ocasiones se denomina

mini-mundo o universo de discurso (UoD, Universe 01 discollrse). Los cambios introducidos en el mini-mundo se reflejan en la base de datos.

• Una base de datos es una colección de datos lógicamente coherente con algún tipo de significado inhe-rente. No es correcto denominar base de datos a un surtido aleatorio de datos.

• Una base de datos se diseña, construye y rellena con datos para un propósito específico. Dispone de un grupo pretendido de usuarios y algunas aplicaciones preconcebidas en las que esos usuarios están inte-resados.

En otras palabras, una base de datos tiene algún origen del que se derivan los datos, algún grado de interac-ción con eventos del mundo real y un público que está activamente interesado en su contenido. Los usuarios finales de una base de datos pueden efectuar transacciones comerciales (por ejemplo, un cliente que compra una cámara) o se pueden producir unos eventos (por ejemplo, un empleado tiene un hijo) que provoquen un cambio en la información almacenada en la base de datos. Al objeto de que una base de datos sea en todo momento precisa y fiable, debe ser un reflejo exacto del minimundo que representa; por consiguiente, en la base de datos deben reflejarse los cambios tan pronto como sea posible.

Una base de datos puede ser de cualquier tamaño y complejidad. Por ejemplo, la lista de nombres y direccio-nes a la que nos referíamos anteriormente puede constar de únicamente unos cuantos cientos de registros, cada uno de ellos con una estructura sencilla. Por el contrario, el catálogo computerizado de una gran biblioteca puede contener medio millón de entradas organizadas en diferentes categorías (por los apellidos del autor principal, por el tema, por el título del libro ), y cada categoría ordenada alfabéticamente. El Departamento de tesorería de Estados Unidos (IRS, Internal Revenue Service) mantiene una base de datos de un tamaño y com-plejidad aún 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 información por cada uno, tenemos una base de datos de 100 X 106 X 400 x 5 caracteres (bytes) de información. Si el IRS conserva las tres últimas declaraciones de cada contribuyente, además de la actuaL tenemos una base de datos de 8 x 1011 bytes (800 gigabytes). Esta

(26)

1.1 I nlroducción 5

inmensa cantidad de información 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 más de 20 millones de libros, CDs, vídeos, DVDs, juegos, ropa y otros productos. La base de datos ocupa más de 2 terabytes (un terabyte es 1012 bytes de almacenamiento) y se almacena en 200

computadores diferentes (denominados servidores). Cada día acceden a Amazon.com aproximadamente 15 millones de visitantes que utilizan la base de datos para hacer compras. La base de datos se actualiza conti-nuamente a medida que se añaden libros y otros productos nuevos al inventario, mientras que el stock se actualiza al tiempo que se tramitan las compras. Alrededor de 100 personas son las responsables de mantener actualizada la base de datos de Amazon.

Una base de datos se puede generar y mantener manualmente o estar computerizada. Por ejemplo, el catálo-go de cartas de una biblioteca es una base de datos que se puede crear y mantener de forma manual. Una base de datos computerizada se puede crear y mantener con un grupo de aplicaciones escritas específicamente para esa tarea o mediante un sistema de administración de bases de datos. En este libro sólo nos ocuparemos de las bases de datos computerizadas.

Un sistema de administración de datos (DBMS, database management system) es una colección de pro-gramas que permite a los usuarios crear y mantener una base de datos. El DBMS es un sistema de sofhvare

de propósito general que facilita los procesos de definición, construcción, manipulación y compartición de bases de datos entre varios usuarios y aplicaciones. Definir una base de datos implica especificar los tipos de datos, estructuras y restricciones de los datos que se almacenarán en la base de datos. La definición o infor-mación descriptiva de una base de datos también se almacena en esta última en forma de catálogo o diccio-nario de la base de datos; es lo que se conoce como metadatos. La construcción de la base de datos es el pro-ceso consistente en almacenar los datos en algún medio de almacenamiento controlado por el DBMS. La manipulación de una base de datos incluye funciones como la consulta de la base de datos para recuperar datos específicos, actualizar la base de datos para reflejar los cambios introducidos en el minimundo y gene-rar infonnes 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 simultánea.

Una aplicación accede a la base de datos enviando consultas o solicitudes de datos al DBMS. Una consulta! normalmente provoca la recuperación de algunos datos; una transacción 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 protección de la base de datos y su

mantenimien-to durante un largo periodo de tiempo. La protección incluye la protección del sistema contra el funciona-miento defectuoso del hardware o el software (caídas) y la protección de la seguridad contra el acceso no autorizado o malintencionado. Una gran base de datos típica puede tener un ciclo de vida de muchos años, por lo que el DBMS debe ser capaz de mantener el sistema de bases de datos permitiendo que el sistema evolu-cione según cambian los requisitos con el tiempo.

No es necesario utilizar software DBMS de propósito general para implementar una base de datos compute-rizada. Podríamos escribir nuestro propio conjunto de programas para crear y mantener la base de datos; en realidad, podríamos crear nuestro propio software DBMS de propósito especial. En cualquier caso (utilice-mos o no un DBMS de propósito general), normalmente tene(utilice-mos que implantar una cantidad considerable de software complejo. De hecho, la mayoría de los DBMS son sistemas de software muy complejos.

Como colofón de nuestras definiciones iniciales, denominaremos sistema de bases de datos a la combina-ción de base de datos y software DBMS. La Figura 1.1 ilustra algunos de los conceptos que hemos explicado hasta ahora.

1 El télmino consulta, que inicialmente hacía referencia a una pregunta o cuestión, se utiliza ampliamente para todos los tipos de intera-cciones con bases de datos, incluyendo la modificación de datos.

(27)

6 Capítulo 1 Bases de datos y usuarios de bases de datos

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

Usuarios/Programadores

Sistema de bases de datos

I

Programas de aplicación /Consultas

I

Software

DBMS Software para procesar

consultas / Programas

Software para acceder a los datos almacenados

/

"

/

~

"----

.----/ '--- .----/

Definición de la

base de datos Base de datos almacenada

(metadatos) almacenada

~ ~ ~ ~

1.2 Un ejemplo

Vamos a ver un ejemplo con el que la mayoría de los lectores estarán familiarizados: una base de datos UNIVERSIDAD para el mantenimiento de la infOlmación relativa a los estudiantes, cursos y calificaciones en un entorno universitario. La Figura 1.2 muestra la estructura de la base de datos y algunos datos a modo de ejemplo. La base de datos está organizada en cinco archivos, cada uno de los cuales almacena registros de datos del mismo tipo.2 El archivo ESTUDIANTE almacena los datos de todos los estudiantes, el archivo CURSO almacena los datos de todos los curso, el archivo SECCiÓN almacena los datos de las secciones de un curso, el archivo INFORME_CALlF 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 detallando

los diferentes tipos de elementos de datos que se almacenarán en cada registro. En la Figura 1.2, cada

regis-tro ESTUDIANTE incluye los datos que representan el nombre, el número, la clase (como principiante o '1', estudiante de segundo año o '2', etcétera) y la especialidad (como, por ejemplo, matemáticas o 'MAT', cien-cias de la computación o 'CC'); cada registro de CURSO incluye los datos que representan el nombre, el número y las horas de crédito del curso, así como el departamento que ofrece el curso; etcétera. También hay que 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 especifi-caracteres alfabéticos, que NumEstudiante es

2 El término archivo lo utilizamos aquí formalmente. A un nivel conceptual, un archivo es una colección de registros que pueden o no estar ordenados.

(28)

1.2 Un ejemplo 7

Figura 1.2. Base de datos que almacena la información de estudiantes y cursos.

ESTUDIANTE

Nombre NumEstudlante Clase Especialidad

Luis 17 1 CS

Carlos 8 2 CS

CURSO

NombreCurso NumCurso Horas Departamento

Introducción a la computación CC1310 4 CC

Estructuras de datos CC3320 4 CC

Matemáticas discretas MAT241O 3 MAT

Bases de datos CC3380 3 CC

SECCiÓN

IDSeccion NumCurso Semestre Año Profesor

85 MAT241O Otoño 04 Pedro

92 CC1310 Otoño 04 Ana

102 CC3320 Primavera 05 Elisa

112 MAT241O Otoño 05 Antonio

119 CC1310 Otoño 05 Juan

135 CC3380 Otoño 05 Enrique

INFORME_ CALlF

NumEstudiante IDSeccion Nota

17 112 B

17 119 C

8 85 A

8 92 A

8 102 B

8 135 A

PRERREQUISITO

NumCurso NumPrerrequisito

CC3380 CC3320

CC3380 MAT241O

CC3320 CC1310

(29)

8 Capítulo 1 Bases de datos y usuarios de bases de datos

un entero o que la Nota de INFORME_CALlF es un solo carácter del conjunto {'A', 'B', 'C', 'D', 'F', 'I'}. También podemos utilizar un esquema de codificación 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, 2 para los estudiantes de segundo año, 3 para los junior, 4 para los sénior y 5 para los estudiantes graduados. La construcción de la base de datos UNIVERSIDAD se realiza almacenando los datos que representan a todos los estudiantes, cursos, secciones, informes de calificaciones y prerrequisitos a modo de registro en el archi-vo adecuado. Los registros de los distintos archiarchi-vos se pueden relacionar. Por ejemplo, el registro correspon-diente a Luís en el archivo ESTUDIANTE está relacionado con dos registros del archivo INFORME_CALlF que especifican las calificaciones de Luís 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. La mayoría de las bases de datos de medio y gran tamaño cuentan con muchos tipos de registros y tienen muchas

relaciones entre los registros.

La manipulación de bases de datos implica la consulta y la actualización. A continuación 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 sección del curso 'Bases de datos' ofrecida en otoño de 2005, así como sus calificaciones en esa sección.

• 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 año.

• Crear una sección nueva para el curso 'Bases de datos' para este semestre.

• Introducir una nota 'A' para 'Luis' en la sección 'Bases de datos' del último semestre.

Estas consultas y modificaciones informales deben especificarse con exactitud en el lenguaje de consulta del DBMS antes de poder ser procesadas.

A estas alturas, es útil describir la base de datos como una parte de una tarea más amplia conocida como sis-tema de información dentro de cualquier organización. El departamento de Tecnología de la información (TI,

Information Technology) de una empresa diseña y mantiene un sistema de información compuesto por varios

computadores, sistemas de almacenamiento, aplicaciones y bases de datos. El diseño de una aplicación nueva para una base de datos existente o el diseño de una base de datos nueva empieza con una fase denominada

definición de requisitos y análisis. Estos requisitos son documentados en detalle y transformados en un

dise-ño conceptual que se puede representar y manipular mediante algunas herramientas computerizadas, de modo que en una implementación de base de datos puedan mantenerse, modificarse y transformarse fácilmente. En el Capítulo 3 introduciremos un modelo denominado Entidad-Relación que se utiliza con este propósito. El diseño despué~ se convierte en un diseño lógico que se puede expresar en un modelo de datos implementado en un DBMS comercial. Del Capítulo 5 en adelante destacaremos un modelo de datos conocido como mode-lo de Datos relacionales. Actualmente es la metodomode-logía más popular para diseñar e implementar bases de datos utilizando DBMSs (relacionales). La etapa final es el diseño físico, durante la que se proporcionan espe-cificaciones suplementarias para el almacenamiento y acceso a la base de datos. El diseño de base de datos se implementa y rellena con datos reales y se realiza un mantenimiento continuado a fin de reflejar el estado del minimundo.

1.3 Características de la metodología

de bases de datos

Unas cuantas características distinguen la metodología de bases de datos de la metodología tradicional de pro-gramación con archivos. En el procesamiento tradicional de archivos, cada usuario define e implementa los

(30)

1.3 Características de la metodología de bases de datos 9

archivos necesarios para una aplicación concreta como parte de la programación de esa aplicación. Por ejem-plo, un usuario, la oficina de notificación de calificaciones, puede encargarse del mantenimiento de un

archi-vo con los estudiantes y sus calificaciones. Los programas encargados de imprimir el certificado de estudios de un estudiante e introducir nuevas calificaciones en el archivo se implementan como parte de la aplicación. Un segundo usuario, la oficina de contabilidad, puede encargarse del seguimiento de las cuotas de los

estu-diantes y sus pagos. Aunque ambos usuarios están interesados en datos relacionados con los estuestu-diantes, cada uno mantiene archivos separados (y programas para la manipulación de esos archivos), porque cada uno requiere algunos datos que no están disponibles en los archivos del otro. Esta redundancia en la definición y el almacenamiento de datos da como resultado un derroche de espacio de almacenamiento y unos esfuerzos redundantes por mantener al día datos comunes.

En la metodología de bases de datos se mantiene un único almacén de datos, que se define una sola vez, y al que acceden varios usuarios. En los sistemas de archivos cada aplicación tiene libertad para asignar un nom-bre independientemente a los elementos de datos. Por el contrario, en una base de datos, los nomnom-bres o eti-quetas de los datos se definen una vez, y son utilizados por consultas, transacciones y aplicaciones. Las prin-cipales características de la metodología de bases de datos frente a la metodología de procesamiento de archi-vos son las siguientes:

• Naturaleza autodescriptiva de un sistema de bases de datos. • Aislamiento entre programas y datos, y abstracción de datos.

• Soporte de varias vistas de los datos.

• Compartición de datos y procesamiento de transacciones multiusuario.

Explicaremos cada una de estas características en una sección separada. En las Secciones l.6 a l.8 hablare-mos de otras características adicionales de los sistemas de bases de datos.

1.3.1 Naturaleza autodescriptiva de un sistema de bases de datos

Una característica fundamental de la metodología de bases de datos es que el sistema de bases de datos no sólo contiene la propia base de datos, sino también una completa definición o descripción de la estructura de la base de datos y sus restricciones. Esta definición se almacena en el catálogo DBMS, que contiene informa-ción 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 información almacenada en el catálogo se denomina metadatos y describe la estructura de la base de datos principal (véase la Figura 1.1).

El software DBMS y los usuarios de la base de datos utilizan el catálogo cuando necesitan información sobre la estructura de la base de datos. Un paquete de software DBMS de propósito general no se escribe para una aplicación de base de datos específica. Por consiguiente, debe referirse al catálogo para conocer la estructura de los archivos de una base de datos específica, como el tipo y el formato de los datos a los que accederá. El software DBMS debe funcionar igual de bien con cualquier cantidad de aplicaciones de bases de datos (por

ejemplo, 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 definición de la base de datos esté almacenada en el catálogo.

En el procesamiento de archivos tradicional, normalmente la definición de datos forma parte de los progra-mas de aplicación. Así pues, esas aplicaciones están restringidas a trabajar sólo con una base de datos espe-cífica, cuya estructura está declarada en dichas aplicaciones. Por ejemplo, una aplicación escrita en

c++

puede tener 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 sólo puede acceder a bases de datos espe-cíficas, el software DBMS puede acceder a distintas bases de datos extrayendo del catálogo las definiciones de las mismas y utilizando después esas definiciones.

Para el ejemplo de la Figura 1.2, el catálogo DBMS almacenará las definiciones de todos los archivos mos-trados. La Figura 1.3 muestra algunas entradas de ejemplo en un catálogo de base de datos. El diseñador de

Figure

Actualización...