Sistema de Gestion
Sistema de Gestion
¿Qué son los bloqueos de los SGBD y por qué se emplean? ¿Qué es el registro previo
a la escritura y por qué se utiliza? ¿Qué son los puntos de control y por qué se usan?
(Apartado 1.7)
Identifı́quense los principales componentes de los SGBD y explı́quese brevemente lo que
hace cada uno de ellos. (Apartado 1.8)
Explı́quense los diferentes papeles de los administradores de bases de datos, los progra-
madores de aplicaciones y los usuarios finales de las bases de datos. ¿Quién necesita saber
más sobre los sistemas de bases de datos? (Apartado 1.9)
EJERCICIOS
Ejercicio 1.1 ¿Por qué elegir un sistema de bases de datos en lugar de limitarse a guardar los datos en los
archivos del sistema operativo? ¿Cuándo tendrı́a sentido no emplear un sistema de bases de datos?
Ramakrishnan, Raghu, and Johannes Gehrke. Sistemas de gestión de bases de datos (3a. ed.), McGraw-Hill España, 2007. ProQuest Ebook Central,
http://ebookcentral.proquest.com/lib/unadsp/detail.action?docID=3195347.
Created from unadsp on 2018-08-27 19:50:08.
22 Sistemas de gestión de bases de datos
Ejercicio 1.2 ¿Qué es la independencia lógica con respecto a los datos y por qué es importante?
Ejercicio 1.3 Explı́quese la diferencia entre la independencia lógica con respecto a los datos y la fı́sica.
Ejercicio 1.4 Explı́quense las diferencias entre los esquemas externo, interno y conceptual. ¿Cómo están
relacionadas estas capas de esquemas con los conceptos de independencia lógica y fı́sica con respecto a los
datos?
Ejercicio 1.5 ¿Cuáles son las responsabilidades de los DBA? Si se supone que el DBA no está interesado en
ejecutar nunca sus propias consultas, ¿sigue necesitando comprender la optimización de las consultas? ¿Por
qué?
Ejercicio 1.6 Avaro Puñocerrado desea guardar la información (nombres, direcciones, descripciones de mo-
mentos embarazosos, etc.) sobre las muchas vı́ctimas de su lista. Como era de esperar, el volumen de datos
le impulsa a comprar un sistema de bases de datos. Para ahorrar dinero, desea comprar uno con las mı́nimas
caracterı́sticas posibles, y piensa ejecutarlo como aplicación independiente en su ordenador personal. Por su-
puesto, Avaro no piensa compartir esa lista con nadie. Indı́quese por cuáles de las siguientes caracterı́sticas de
los SGBD debe pagar Avaro; en cada caso, indı́quese también el motivo de que Avaro deba (o no) pagar por
esa caracterı́stica del sistema que va a comprar.
1. Un dispositivo de seguridad.
2. Control de la concurrencia.
3. Recuperación de fallos.
4. Un mecanismo de vistas.
5. Un lenguaje de consultas.
Ejercicio 1.7 ¿Cuál de los elementos siguientes desempeña un papel importante en la representación de la
información sobre el mundo real en las bases de datos? Explı́quese brevemente.
1. El lenguaje de definición de datos.
2. El lenguaje de manipulación de datos.
3. El gestor de la memoria intermedia.
4. El modelo de datos.
Copyright © 2007. McGraw-Hill España. All rights reserved.
Ejercicio 1.8 Descrı́base la estructura de un SGBD. Si se actualiza el sistema operativo para que soporte
alguna función nueva en los archivos del sistema operativo (por ejemplo, la posibilidad de obligar a que se
guarde en disco alguna secuencia de bytes), ¿qué capa(s) del SGBD habrı́a que volver a escribir para aprovechar
esas funciones nuevas?
Ramakrishnan, Raghu, and Johannes Gehrke. Sistemas de gestión de bases de datos (3a. ed.), McGraw-Hill España, 2007. ProQuest Ebook Central,
http://ebookcentral.proquest.com/lib/unadsp/detail.action?docID=3195347.
Created from unadsp on 2018-08-27 19:50:08.
Introducción a los sistemas de bases de datos 23
NOTAS BIBLIOGRÁFICAS
La evolución de los sistemas de gestión de bases de datos se describe en [189]. El empleo de modelos de datos
para la descripción de los datos del mundo real se trata en [270], mientras que [271] contiene una taxonomı́a
de los modelos de datos. Los tres niveles de abstracción se introdujeron en [118, 432]. El modelo de datos en
red se describe en [118], mientras que [472] trata de varios sistemas comerciales basados en ese modelo. [438]
contiene un buen conjunto comentado de trabajos orientados a los sistemas sobre la gestión de las bases de
datos.
Entre los textos que tratan de los sistemas de gestión de bases de datos están [137, 157, 199, 220, 298,
347, 414, 455, 463]. En [136] se ofrece un estudio detallado del modelo relacional desde un punto de vista
conceptual y es destacable por su amplia bibliografı́a comentada. [346] presenta una perspectiva orientada al
rendimiento con referencias a varios sistemas comerciales. En [157] y [414] se ofrece una amplia cobertura de
los conceptos de los sistemas de bases de datos, incluido un estudio de los modelos de datos jerárquico y de
red. [220] pone el énfasis en la conexión entre los lenguajes de consultas para bases de datos y la programación
lógica. [463] se centra en los modelos de datos. De estos textos, [455] ofrece el tratamiento más detallado de
los aspectos teóricos. Entre los textos dedicados a los aspectos teóricos están [1, 29, 309]. El libro [452] incluye
un apartado sobre bases de datos que contiene artı́culos de investigación introductorios sobre diversos temas.
Copyright © 2007. McGraw-Hill España. All rights reserved.
Ramakrishnan, Raghu, and Johannes Gehrke. Sistemas de gestión de bases de datos (3a. ed.), McGraw-Hill España, 2007. ProQuest Ebook Central,
http://ebookcentral.proquest.com/lib/unadsp/detail.action?docID=3195347.
Created from unadsp on 2018-08-27 19:50:08.
Copyright © 2007. McGraw-Hill España. All rights reserved.
Ramakrishnan, Raghu, and Johannes Gehrke. Sistemas de gestión de bases de datos (3a. ed.), McGraw-Hill España, 2007. ProQuest Ebook Central,
http://ebookcentral.proquest.com/lib/unadsp/detail.action?docID=3195347.
Created from unadsp on 2018-08-27 19:50:08.
2
INTRODUCCIÓN AL DISEÑO
DE BASES DE DATOS
Los grandes hombres de éxito del mundo han empleado su imaginación. Se adelantan en su
pensamiento, crean su propia imagen mental y luego trabajan para materializar esa imagen en todos
sus detalles, rellenando aquı́, añadiendo un poco allá, alterando esa pizca y aquélla, pero trabajando
sin pausa, construyendo sin pausa.
— Robert Collier
El modelo de datos entidad-relación (ER) permite describir los datos implicados en empresas
reales en términos de objetos y de sus relaciones, y se emplea mucho para desarrollar el
diseño preliminar de las bases de datos. Aporta conceptos útiles que permiten pasar de una
descripción informal de lo que los usuarios desean de su base de datos a otra más detallada
y precisa que se pueda implementar en un SGBD. En este capı́tulo se presenta el modelo ER
Ramakrishnan, Raghu, and Johannes Gehrke. Sistemas de gestión de bases de datos (3a. ed.), McGraw-Hill España, 2007. ProQuest Ebook Central,
http://ebookcentral.proquest.com/lib/unadsp/detail.action?docID=3195347.
Created from unadsp on 2018-08-27 19:50:08.
25
26 Sistemas de gestión de bases de datos
y se estudia el modo en que sus caracterı́sticas permiten modelar fielmente una amplia gama
de datos.
Se comenzará con una introducción al diseño de bases de datos en el Apartado 2.1 con
objeto de motivar el estudio del modelo ER. Dentro del contexto más general del proceso
global de diseño, el modelo ER se emplea en la fase denominada diseño conceptual de bases
de datos. Luego se introducirá el modelo ER en los apartados 2.2, 2.3 y 2.4. En el Apartado
2.5 se estudian aspectos del diseño de bases de datos que afectan al modelo ER. El diseño
conceptual de bases de datos para grandes empresas se trata brevemente en el Apartado 2.6.
En el Apartado 2.7 se presenta una visión general de UML, un enfoque de diseño y modelado
de ámbito más general que el modelo ER.
En el Apartado 2.8 se presenta el estudio de un caso que se emplea como ejemplo a lo
largo de todo el libro. El caso que se estudia es el diseño de principio a fin de una base de
datos para una tienda en Internet. Se ilustran los dos primeros pasos del diseño de bases de
datos (análisis de requisitos y diseño conceptual) en el Apartado 2.8. En capı́tulos posteriores
se amplı́a este caso de estudio para tratar el resto de pasos del proceso de diseño.
Es de destacar que se han utilizado muchas variaciones de los diagramas ER y que no
se ha impuesto ninguna norma generalmente aceptada. La presentación de este capı́tulo es
representativa de la familia de modelos ER e incluye una selección de las caracterı́sticas más
populares.
de este capı́tulo. El modelo ER es uno de los modelos de datos de alto nivel, o semánticos,
empleados en el diseño de bases de datos. El objetivo es crear una descripción sencilla
de los datos que se acerque mucho a lo que los usuarios y los desarrolladores piensan de
los datos (y de la gente y de los procesos que se van a representar con esos datos). Esto
facilita la discusión entre todas las personas implicadas en el proceso de diseño, aunque
no tengan formación técnica. Al mismo tiempo, el diseño inicial debe ser lo bastante
preciso como para permitir una traducción directa a un modelo de datos soportado por
algún sistema comercial de bases de datos (lo que, en la práctica, significa el modelo
relacional).
3. Diseño lógico de bases de datos. Hay que escoger un SGBD que implemente nuestro
diseño de la base de datos y transformar el diseño conceptual de la base de datos en un
esquema de base de datos del modelo de datos del SGBD elegido. Sólo se considerarán
SGBD relacionales y, por tanto, la tarea en la etapa de diseño lógico es convertir el
esquema ER en un esquema de base de datos relacional. Este paso se examinará con
detalle en el Capı́tulo 3; el resultado es un esquema conceptual, a veces denominado
esquema lógico, del modelo de datos relacional.
El diagrama ER no es más que una descripción aproximada de los datos creada mediante la
evaluación subjetiva de la información reunida durante el análisis de requisitos. A menudo,
un análisis más detenido puede refinar el esquema lógico obtenido al final del Paso 3. Una
vez se dispone de un buen esquema lógico hay que tomar en consideración los criterios de
rendimiento y diseñar el esquema fı́sico. Finalmente, hay que abordar los aspectos de seguri-
dad y garantizar que los usuarios puedan tener acceso a los datos que necesiten, pero no a los
que se les desee ocultar. Las tres etapas restantes del diseño de bases de datos se describen
brevemente a continuación:
4. Refinamiento de los esquemas. El cuarto paso del diseño de bases de datos es el
análisis del conjunto de relaciones del esquema relacional de la base de datos para iden-
tificar posibles problemas y refinarlo. A diferencia de los pasos de análisis de requisitos
y de diseño conceptual, que son esencialmente subjetivos, el refinamiento del esquema se
puede guiar por una teorı́a elegante y potente. Esa teorı́a de normalización de relaciones
—reestructurarlas para garantizar propiedades deseables— se estudia en el Capı́tulo 12.
Ramakrishnan, Raghu, and Johannes Gehrke. Sistemas de gestión de bases de datos (3a. ed.), McGraw-Hill España, 2007. ProQuest Ebook Central,
http://ebookcentral.proquest.com/lib/unadsp/detail.action?docID=3195347.
Created from unadsp on 2018-08-27 19:50:08.
28 Sistemas de gestión de bases de datos
5. Diseño fı́sico de bases de datos. En este paso se toman en consideración las cargas
de trabajo tı́picas esperadas que deberá soportar la base de datos y se refinará aún más
el diseño de la base de datos para garantizar que cumple los criterios de rendimiento
deseados. Puede que este paso no implique más que la creación de ı́ndices para algunas
tablas y el agrupamiento de otras, o puede que suponga un rediseño sustancial de partes
del esquema de la base de datos obtenido de los pasos de diseño anteriores. El diseño
fı́sico y el ajuste de las bases de datos se estudia en el Capı́tulo 13.
6. Diseño de aplicaciones y de la seguridad. Cualquier proyecto de software que impli-
que a una base de datos debe tomar en consideración aspectos de su aplicación que van
más allá de la propia base de datos. Las metodologı́as de diseño como UML (Apartado
2.7) intentan abordar todo el ciclo de diseño y desarrollo del software. En resumen, hay
que identificar las entidades (por ejemplo, los usuarios, los grupos de usuarios, los de-
partamentos) y los procesos relacionados con la aplicación. Hay que describir el papel de
cada entidad en cada proceso que se refleje en una tarea de la aplicación, como parte del
flujo de trabajo completo de esa tarea. Para cada papel hay que identificar las partes de
la base de datos que debe tener accesibles y las que no debe tener accesibles, y adoptar
las medidas necesarias para que esas reglas de acceso se cumplan. Los SGBD ofrecen
varios mecanismos para ayudar en este paso, y se tratan en el Capı́tulo 14.
En la fase de implementación hay que codificar cada tarea en un lenguaje de programa-
ción (por ejemplo, Java) y emplear el SGBD para tener acceso a los datos. El desarrollo de
aplicaciones se estudia en los Capı́tulos 6 y 7.
En general, la división del proceso de diseños en varios pasos deberı́a verse como una
clasificación de los tipos de pasos relacionados con el diseño. De manera realista, aunque se
podrı́a comenzar con el proceso en seis etapas que se ha esbozado aquı́, el diseño completo
de una base de datos probablemente necesite una fase posterior de ajuste en la que los seis
tipos de etapas del diseño se entrelacen y se repitan hasta que el diseño sea satisfactorio.
DE ENTIDADES
Una entidad es un objeto del mundo real que puede distinguirse de otros objetos. Ejemplos
de entidades son: el juguete Dragón verde, el departamento de juguetes, el responsable del
departamento de juguetes o la dirección postal del responsable del departamento de juguetes.
Suele resultar útil identificar conjuntos de entidades similares. Un conjunto ası́ se denomina
conjunto de entidades. Obsérvese que no hace falta que los conjuntos de entidades sean
disjuntos; tanto el conjunto de empleados del departamento de juguetes como el conjunto de
empleados del departamento de electrodomésticos pueden contener al empleado Juanjo Dı́az
(que resulta que trabaja en los dos departamentos). También se podrı́a definir un conjunto
de entidades denominado Empleados que contuviera tanto al conjunto de empleados del
departamento de juguetes como al de los empleados del departamento de electrodomésticos.
Cada entidad se describe empleando un conjunto de atributos. Todas las entidades de
un conjunto de entidades dado tienen los mismos atributos; eso es lo que quiere decir similar.
(Esta afirmación es una simplificación excesiva, como se verá cuando se discutan las jerarquı́as
Ramakrishnan, Raghu, and Johannes Gehrke. Sistemas de gestión de bases de datos (3a. ed.), McGraw-Hill España, 2007. ProQuest Ebook Central,
http://ebookcentral.proquest.com/lib/unadsp/detail.action?docID=3195347.
Created from unadsp on 2018-08-27 19:50:08.
Introducción al diseño de bases de datos 29
de herencia en el Apartado 2.4.4, pero resulta suficiente por ahora y hace destacar la idea
principal.) La selección de los atributos refleja el nivel de detalle con el que se desea representar
la información relativa a las entidades. Por ejemplo, el conjunto de entidades Empleados
podrı́a utilizar el nombre, el número del documento nacional de identidad (DNI) y el número
de la plaza de aparcamiento de cada empleado. Sin embargo, no se guardará, por ejemplo, la
dirección del empleado (ni su sexo ni su edad).
Para cada atributo asociado con un conjunto de entidades hay que identificar el dominio
de valores posibles. Por ejemplo, el dominio asociado con el atributo nombre de Empleados
podrı́a ser el conjunto de cadenas de caracteres de longitud veinte1 . Como ejemplo adicional, si
la empresa califica a sus empleados según una escala del uno al diez y guarda las calificaciones
en un campo denominado calificaciones, el dominio asociado consistirá en los enteros del uno
al diez. Además, para cada conjunto de entidades, se escoge una clave. Una clave es un
conjunto mı́nimo de atributos cuyos valores identifican de manera unı́voca a cada entidad del
conjunto. Puede haber más de una clave candidata; en ese caso, se escogerá una de ellas
como clave principal. Por ahora se supondrá que cada conjunto de entidades contiene, como
mı́nimo, un conjunto de atributos que identifica de manera unı́voca a cada entidad de ese
conjunto; es decir, que el conjunto de entidades contiene una clave. Este punto se volverá a
tratar en el Apartado 2.4.3.
El conjunto de entidades Empleados con los atributos dni, nombre y plaza se muestra en la
Figura 2.1. Cada conjunto de entidades se representa por un rectángulo, y cada atributo por
un óvalo. Los atributos de la clave principal están subrayados. Se podrı́a indicar la información
sobre el dominio junto con el nombre de cada atributo, pero se ha omitido para que las figuras
sean más concisas. La clave es dni.
nombre
dni plaza
Empleados
Copyright © 2007. McGraw-Hill España. All rights reserved.
Ramakrishnan, Raghu, and Johannes Gehrke. Sistemas de gestión de bases de datos (3a. ed.), McGraw-Hill España, 2007. ProQuest Ebook Central,
http://ebookcentral.proquest.com/lib/unadsp/detail.action?docID=3195347.
Created from unadsp on 2018-08-27 19:50:08.
30 Sistemas de gestión de bases de datos
{(e1 , . . . , en ) | e1 ∈ E1 , . . . , en ∈ En }
Cada n-tupla denota una relación que implica a n entidades, e1 a en , donde la entidad ei
se halla en el conjunto de entidades Ei . En la Figura 2.2 puede verse el conjunto de relaciones
Trabaja en, en la que cada relación indica un departamento en el que trabaja ese empleado.
Obsérvese que puede que varios conjuntos de relaciones impliquen a los mismos conjuntos de
entidades. Por ejemplo, también se podrı́a tener un conjunto de relaciones Dirige que implique
a Empleados y Departamentos.
desde
nombre nombred
Las relaciones también pueden tener atributos descriptivos. Los atributos descriptivos
se emplean para registrar la información sobre la relación, más que sobre las entidades parti-
cipantes; por ejemplo, puede que se desee registrar que Avelino trabaja en el departamento
farmaceútico desde enero de 1991. Esta información se captura en la Figura 2.2 añadiendo
un atributo, desde, a Trabaja en. Cada relación debe identificarse de manera unı́voca por
sus entidades participantes, sin necesidad de referencia alguna a los atributos descriptivos.
En el conjunto de relaciones Trabaja en, por ejemplo, cada relación Trabaja en debe quedar
Copyright © 2007. McGraw-Hill España. All rights reserved.
Ramakrishnan, Raghu, and Johannes Gehrke. Sistemas de gestión de bases de datos (3a. ed.), McGraw-Hill España, 2007. ProQuest Ebook Central,
http://ebookcentral.proquest.com/lib/unadsp/detail.action?docID=3195347.
Created from unadsp on 2018-08-27 19:50:08.
Introducción al diseño de bases de datos 31
1/1/91
123.223.666 3/3/93
51
231.315.368
2/2/92
56
131.243.650
3/1/92
60
223.326.316
3/1/92
desde
Copyright © 2007. McGraw-Hill España. All rights reserved.
nombre nombred
Ramakrishnan, Raghu, and Johannes Gehrke. Sistemas de gestión de bases de datos (3a. ed.), McGraw-Hill España, 2007. ProQuest Ebook Central,
http://ebookcentral.proquest.com/lib/unadsp/detail.action?docID=3195347.
Created from unadsp on 2018-08-27 19:50:08.
32 Sistemas de gestión de bases de datos
No hace falta que los conjuntos de entidades que participan en un conjunto de relaciones
sean distintos; puede que a veces una relación implique a dos entidades del mismo conjunto
de entidades. Por ejemplo, considérese el conjunto de relaciones Informa a que puede verse
en la Figura 2.5. Como los empleados rinden cuentas a otros empleados, las relaciones de
Informa a son de la forma (emp1 , emp2 ), donde tanto emp1 como emp2 son entidades de
Empleados. Sin embargo, interpretan papeles diferentes: emp1 rinde cuentas al empleado
encargado emp2 , lo que se refleja en los indicadores de papeles supervisor y subordinado
en la Figura 2.5. Si un conjunto de entidades desempeña más de un papel, el indicador de
papeles concatenado con un nombre de atributo del conjunto de entidades da un nombre
único para cada atributo del conjunto de relaciones. Por ejemplo, el conjunto de relaciones
Informa a tiene los atributos correspondientes al dni del supervisor y al dni del subordinado,
y el nombre de esos atributos es dni supervisor y dni subordinado.
nombre
dni plaza
Empleados
supervisor subordinado
Informa_a
A continuación se examinarán algunas de las estructuras del modelo ER que permiten des-
cribir algunas propiedades sutiles de los datos. La expresividad del modelo ER es una razón
importante de su amplia utilización.
desde
nombre nombred
123.223.666 3/3/93
51
231.315.368
2/2/92
56
131.243.650
60
223.326.316 3/1/92
Copyright © 2007. McGraw-Hill España. All rights reserved.
Se dice a veces que los conjuntos de relaciones como Dirige son de una a varias, para
indicar que cada empleado se puede asociar con varios departamentos (en funciones de en-
cargado), mientras que cada departamento se puede asociar, como máximo, con un empleado
como encargado. Por el contrario, se dice que el conjunto de relaciones Trabaja en, en el que
se permite que cada empleado trabaje en varios departamentos y que cada departamento
tenga varios empleados, es de varias a varias.
Ramakrishnan, Raghu, and Johannes Gehrke. Sistemas de gestión de bases de datos (3a. ed.), McGraw-Hill España, 2007. ProQuest Ebook Central,
http://ebookcentral.proquest.com/lib/unadsp/detail.action?docID=3195347.
Created from unadsp on 2018-08-27 19:50:08.
34 Sistemas de gestión de bases de datos
Si se añade al conjunto de relaciones Dirige la restricción de que cada empleado pueda di-
rigir, como máximo, un departamento, lo que se indicarı́a añadiendo una flecha de Empleados
a Dirige en la Figura 2.6, se tendrá un conjunto de relaciones de una a una.
desde
nombre nombred
DEPARTAMENTOS
51
3/3/93 56
123.223.666
60
231.315.368 2/2/92
131.243.650
3/1/92
223.326.316 Roma
3/1/92
Delhi
De vuelta al conjunto de relaciones Trabaja en, resulta natural esperar que cada empleado
trabaje, como mı́nimo, en un departamento y que cada departamento tenga, como mı́nimo, un
empleado. Esto significa que tanto la participación de Empleados como la de Departamentos
en Trabaja en es total. El diagrama ER de la Figura 2.10 muestra tanto al conjunto de
relaciones Dirige como al conjunto de relaciones Trabaja en y a todas las restricciones dadas.
Si la participación de un conjunto de entidades en un conjunto de relaciones es total, ambos
se conectan mediante una lı́nea gruesa; de manera independiente, la presencia de una flecha
indica una restricción de clave. Los ejemplares de Trabaja en y Dirige mostrados en las
Copyright © 2007. McGraw-Hill España. All rights reserved.
desde
nombre nombred
Trabaja_en
desde
Beneficiarios podrı́an ser nombrep y edad. El atributo nombrep no identifica de manera unı́vo-
ca a cada persona que depende de un empleado. Recuérdese que la clave para Empleados es
dni; por tanto, se podrı́an tener dos empleados llamados Sánchez con un hijo llamado José.
Beneficiarios es un ejemplo de conjunto de entidades débiles. Cada entidad débil sólo se
puede identificar de manera unı́voca tomando en consideración alguno de sus atributos junto
con la clave principal de otra entidad, que se conoce como propietaria identificadora.
Se deben cumplir las restricciones siguientes:
El conjunto de entidades propietario y el conjunto de entidades débiles deben participar
Copyright © 2007. McGraw-Hill España. All rights reserved.
en un conjunto de relaciones de una a varias (cada entidad propietaria se asocia con una o
varias entidades débiles, pero cada entidad débil sólo tiene una propietaria). Este conjunto
de relaciones se denomina conjunto de relaciones identificadoras del conjunto de
entidades débiles.
El conjunto de entidades débiles debe tener participación total en el conjunto de relaciones
identificadoras.
Por ejemplo, cada entidad de Beneficiarios sólo se puede identificar de manera unı́voca si
se toma la clave de la entidad Empleados propietaria y nombrep de la entidad Beneficiarios.
El conjunto de atributos de un conjunto de entidades débiles que identifica de manera unı́voca
a una entidad débil para una entidad propietaria dada se denomina clave parcial del conjunto
de entidades débiles. En nuestro ejemplo, nombrep es una clave parcial de Beneficiarios.
El conjunto de entidades débiles Beneficiarios y su relación con Empleados se muestra
en la Figura 2.11. La participación total de Beneficiarios en Póliza se indica enlazándolos
mediante una lı́nea gruesa. La flecha que va de Beneficiarios a Póliza indica que cada entidad
Ramakrishnan, Raghu, and Johannes Gehrke. Sistemas de gestión de bases de datos (3a. ed.), McGraw-Hill España, 2007. ProQuest Ebook Central,
http://ebookcentral.proquest.com/lib/unadsp/detail.action?docID=3195347.
Created from unadsp on 2018-08-27 19:50:08.
Introducción al diseño de bases de datos 37
de Beneficiarios aparece, como máximo, en una relación de Póliza (en realidad, exactamente
en una, debido a la restricción de participación). Para subrayar el hecho de que Beneficiarios es
una entidad débil y Póliza es su relación identificadora se dibujan las dos con lı́neas oscuras.
Para indicar que nombrep es una clave parcial de Beneficiarios, se subraya con una lı́nea
discontinua. Esto significa que puede haber perfectamente dos personas que dependan de
empleados y tengan el mismo valor de nombrep.
nombre
coste nombrep edad
dni plaza
Empleados se heredan por el conjunto de entidades Empleados temp y que una entidad de
Empleados temp ES una entidad de Empleados. Además —y a diferencia de las jerarquı́as
de clases de los lenguajes de programación como C++— hay una restricción para las con-
sultas sobre los ejemplares de estos conjuntos de entidades: las consultas que pidan todas las
entidades Empleados también deben tomar en consideración las entidades Empleados temp
y Empleados fijos. La Figura 2.12 ilustra la jerarquı́a de clases.
El conjunto de entidades Empleados también se puede clasificar según un criterio diferente.
Por ejemplo, se puede identificar un subconjunto de empleados como Empleados veteranos.
Se puede modificar la Figura 2.12 para que refleje esta modificación añadiendo un segundo
nodo ES como hijo de Empleados y haciendo a Empleados veteranos hijo de ese nodo. Se
puede seguir clasificando cada uno de esos conjuntos de entidades y crear una jerarquı́a ES
multinivel.
Las jerarquı́as de clases se pueden considerar desde dos puntos de vista:
Empleados está especializada en subclases. La especialización es el proceso de identifi-
cación de subconjuntos de un conjunto de entidades dado (la superclase) que comparten
Ramakrishnan, Raghu, and Johannes Gehrke. Sistemas de gestión de bases de datos (3a. ed.), McGraw-Hill España, 2007. ProQuest Ebook Central,
http://ebookcentral.proquest.com/lib/unadsp/detail.action?docID=3195347.
Created from unadsp on 2018-08-27 19:50:08.
38 Sistemas de gestión de bases de datos
nombre
dni plaza
Empleado
ES
horas_trabajadas idcontrato
sueldo_hora
Empleados_temp Empleados_fijos
Hay dos motivos básicos para identificar subclases (por especialización o por generaliza-
ción):
1. Puede que se desee añadir atributos descriptivos que sólo tengan sentido para las enti-
dades de una subclase dada. Por ejemplo, sueldo hora no tiene sentido para una entidad
Empleados fijos, cuya paga se determina mediante un contrato individual.
2. Puede que se desee identificar el conjunto de entidades que participan en una relación
dada. Por ejemplo, puede que se desee definir la relación Dirige de modo que los conjuntos
de entidades participantes sean Empleados veteranos y Departamentos, para garantizar
que sólo los empleados veteranos puedan ser encargados. Como ejemplo adicional, pue-
de que Motoras y Coches tengan atributos descriptivos diferentes (por ejemplo, tonelaje
y número de puertas) pero, como entidades de Vehı́culos motorizados, deben estar ma-
triculados. La información sobre la matrı́cula se puede capturar mediante una relación
Matriculado por entre Vehı́culos motorizados y un conjunto de entidades denominado
Propietarios.
2.4.5 Agregación
Como se ha definido hasta ahora, un conjunto de relaciones es una asociación entre conjuntos
de entidades. A veces hay que modelar las relaciones entre un conjunto de entidades y de
relaciones. Supóngase que se tiene un conjunto de entidades denominado Proyectos y que
cada entidad de Proyectos está patrocinada por uno o varios departamentos. El conjunto de
relaciones Patrocina captura esa información. El departamento que patrocina un proyecto
puede asignar empleados para que controlen el patrocinio. De manera intuitiva, Controla
deberı́a ser un conjunto de relaciones que asocie relaciones Patrocina (en vez de entidades
Proyectos o Departamentos) con entidades Empleados. Sin embargo, las relaciones que se han
definido asocian dos o más entidades, no relaciones.
Para definir un conjunto de relaciones como Controla se introduce una nueva caracterı́stica
del modelo ER, denominada agregación. La agregación permite indicar que un conjunto
Copyright © 2007. McGraw-Hill España. All rights reserved.
Ramakrishnan, Raghu, and Johannes Gehrke. Sistemas de gestión de bases de datos (3a. ed.), McGraw-Hill España, 2007. ProQuest Ebook Central,
http://ebookcentral.proquest.com/lib/unadsp/detail.action?docID=3195347.
Created from unadsp on 2018-08-27 19:50:08.
40 Sistemas de gestión de bases de datos
nombre
dni plaza
Empleados
Controla hasta
desde
iniciado_el nombred
Ramakrishnan, Raghu, and Johannes Gehrke. Sistemas de gestión de bases de datos (3a. ed.), McGraw-Hill España, 2007. ProQuest Ebook Central,
http://ebookcentral.proquest.com/lib/unadsp/detail.action?docID=3195347.
Created from unadsp on 2018-08-27 19:50:08.
Introducción al diseño de bases de datos 41
desde hasta
nombre nombred
de un conjunto de entidades denominado Permanencia, por ejemplo, con los atributos desde
y hasta, como puede verse en la Figura 2.15.
nombre nombred
En algunas versiones del modelo ER se permite que los atributos adopten conjuntos como
Copyright © 2007. McGraw-Hill España. All rights reserved.
valores. Dada esta caracterı́stica, se podrı́a hacer de Permanencia un atributo de Trabaja en4,
en vez de un conjunto de entidades; asociado con cada relación Trabaja en4 tendrı́amos un
conjunto de intervalos. Este enfoque es, quizás, más intuitivo que el modelado de Permanencia
como conjunto de entidades. Pese a todo, cuando esos atributos de tipo conjunto se trasladan
al modelo relacional, que no los soporta, el esquema relacional resultante es muy parecido a
lo que se obtiene considerando Permanencia como conjunto de entidades.
Ramakrishnan, Raghu, and Johannes Gehrke. Sistemas de gestión de bases de datos (3a. ed.), McGraw-Hill España, 2007. ProQuest Ebook Central,
http://ebookcentral.proquest.com/lib/unadsp/detail.action?docID=3195347.
Created from unadsp on 2018-08-27 19:50:08.
Introducción al diseño de bases de datos 43
desde presupuestod
nombre nombred
Ramakrishnan, Raghu, and Johannes Gehrke. Sistemas de gestión de bases de datos (3a. ed.), McGraw-Hill España, 2007. ProQuest Ebook Central,
http://ebookcentral.proquest.com/lib/unadsp/detail.action?docID=3195347.
Created from unadsp on 2018-08-27 19:50:08.
44 Sistemas de gestión de bases de datos
nombre
Pólizas
idpóliza coste
relación identificadora que sea binaria (en esta versión de los diagramas ER, aunque hay
versiones en las que no es ése el caso).
Aun ignorando el tercer requisito, la mejor manera de modelar esta situación es emplear
dos relaciones binarias, como puede verse en la Figura 2.18.
Este ejemplo tiene realmente dos relaciones que implican a Pólizas, e intentar emplear una
sola relación ternaria (Figura 2.17) resulta inadecuado. Hay situaciones, no obstante, en las
que una relación asocia de manera inherente a más de dos entidades. Se ha visto un ejemplo
de ello en las Figuras 2.4 y 2.15.
Como ejemplo tı́pico de relación ternaria, considérense los conjuntos de entidades Repues-
tos, Proveedores y Departamentos, y el conjunto de relaciones Contratos (con el atributo
descriptivo cant) que los implica a todos ellos. Un contrato dado especifica que un determina-
do proveedor suministrará (una determinada cantidad de) un repuesto concreto a un cierto
departamento. Esta relación no puede capturarse de manera adecuada mediante un conjunto
de relaciones binarias (sin el empleo de la agregación). Con las relaciones binarias se puede
denotar que un proveedor “puede suministrar” determinados repuestos, que un departamento
Ramakrishnan, Raghu, and Johannes Gehrke. Sistemas de gestión de bases de datos (3a. ed.), McGraw-Hill España, 2007. ProQuest Ebook Central,
http://ebookcentral.proquest.com/lib/unadsp/detail.action?docID=3195347.
Created from unadsp on 2018-08-27 19:50:08.
Introducción al diseño de bases de datos 45
nombre
Empleados Beneficiarios
Suscriptor Beneficiario
Pólizas
idpóliza coste
“necesita” ciertos repuestos o que un departamento “trata con” un proveedor dado. Ninguna
combinación de estas relaciones expresa de manera adecuada el significado de un contrato, al
menos por dos razones:
El hecho de que el proveedor P pueda suministrar el repuesto R, de que el departamento
D necesite el repuesto R y de que D compre a P no implica necesariamente que el
departamento D compre realmente el repuesto R al proveedor P.
No se puede representar adecuadamente el atributo cant de los contratos.
ternaria viene determinada principalmente por la existencia de una relación que vincule un
conjunto de relaciones con un conjunto de entidades (o un segundo conjunto de relaciones).
Puede que la decisión también se guı́e por determinadas restricciones de integridad que se
deseen expresar. Por ejemplo, considérese el diagrama ER mostrado en la Figura 2.13. De
acuerdo con ese diagrama, cada proyecto puede ser patrocinado por varios departamentos,
cada departamento puede patrocinar uno o varios proyectos y cada patrocinio está controlado
por uno o varios empleados. Si no hace falta registrar el atributo hasta de Controla, puede
resultar razonable emplear una relación ternaria como, por ejemplo, Patrocina2, como puede
verse en la Figura 2.19.
Considérese la restricción de que cada patrocinio (de un proyecto por un departamento)
esté controlado, como máximo, por un empleado. No se puede expresar esa restricción en
términos del conjunto de relaciones Patrocina2. Por otro lado, esa restricción se puede expre-
sar fácilmente trazando una flecha desde la relación agregada Patrocina a la relación Controla
de la Figura 2.13. Por tanto, la presencia de una restricción ası́ es un motivo más para el
empleo de la agregación en lugar de un conjunto de relaciones ternarias.
Ramakrishnan, Raghu, and Johannes Gehrke. Sistemas de gestión de bases de datos (3a. ed.), McGraw-Hill España, 2007. ProQuest Ebook Central,
http://ebookcentral.proquest.com/lib/unadsp/detail.action?docID=3195347.
Created from unadsp on 2018-08-27 19:50:08.
46 Sistemas de gestión de bases de datos
nombre
dni plaza
Empleados
iniciado_el nombred
de que el diseño de alto nivel se puede representar mediante diagramas y lo puede comprender
fácilmente la gran cantidad de personas que deben ofrecer aportaciones al proceso de diseño.
Un aspecto importante del proceso de diseño es la metodologı́a empleada para estructurar
el desarrollo del diseño global y garantizar que tenga en cuenta todos los requisitos de usuario
y sea consistente. El enfoque habitual es que se tomen en consideración los requisitos de
diversos grupos de usuarios, se resuelvan de algún modo los que entren en conflicto y se
genere un conjunto único de requisitos globales al final de la fase de análisis de requisitos. La
generación de un conjunto único de requisitos globales es una labor difı́cil, pero permite que
la fase de diseño conceptual se continúe con el desarrollo de un esquema lógico que abarque
todos los datos y a todas las aplicaciones de la empresa.
Un enfoque alternativo es el desarrollo de esquemas conceptuales independientes para
los diferentes grupos de usuarios y su posterior integración. Para integrar varios esquemas
conceptuales hay que establecer correspondencias entre las entidades, las relaciones y los
atributos, y hay que resolver numerosos tipos de conflictos (por ejemplo, de denominaciones,
incoherencias de dominios, diferencias en las unidades de medida, etcétera). Esta tarea es
Ramakrishnan, Raghu, and Johannes Gehrke. Sistemas de gestión de bases de datos (3a. ed.), McGraw-Hill España, 2007. ProQuest Ebook Central,
http://ebookcentral.proquest.com/lib/unadsp/detail.action?docID=3195347.
Created from unadsp on 2018-08-27 19:50:08.
Introducción al diseño de bases de datos 47
de las opciones de diseño fı́sico de la base de datos, como la creación de espacios de tablas
y de ı́ndices. (El diseño fı́sico de la base de datos se discute en capı́tulos posteriores, pero
no ası́ las estructuras de UML correspondientes.)
Modelado del sistema de hardware. Los diagramas UML se pueden emplear para
describir la configuración de hardware empleada para la aplicación.
Hay muchas clases de diagramas UML. Los diagramas de casos de uso describen las
acciones llevadas a cabo por el sistema en respuesta a las solicitudes de los usuarios, y las
personas implicadas en esas acciones. Estos diagramas especifican la funcionalidad externa
que se espera que soporte el sistema.
Los diagramas de actividad muestran el flujo de acciones en los procesos comerciales.
Los diagramas de estado describen las interacciones dinámicas entre los diferentes objetos
del sistema. Estos diagramas, empleados en el modelado de la empresa y en el del sistema,
describen el modo en que se va a implementar la funcionalidad externa, de manera consistente
con las reglas del negocio y con los procesos de la empresa.
Ramakrishnan, Raghu, and Johannes Gehrke. Sistemas de gestión de bases de datos (3a. ed.), McGraw-Hill España, 2007. ProQuest Ebook Central,
http://ebookcentral.proquest.com/lib/unadsp/detail.action?docID=3195347.
Created from unadsp on 2018-08-27 19:50:08.
48 Sistemas de gestión de bases de datos
Los diagramas de clases son parecidos a los diagramas ER, aunque son más generales
en el sentido de que se pretende que modelen entidades de aplicación (de manera intuitiva,
componentes importantes del programa) y sus relaciones lógicas, además de las entidades de
datos y sus relaciones.
Tanto los conjuntos de entidades como los de relaciones pueden representarse en UML
como clases, junto con las restricciones de las claves, las entidades débiles y las jerarquı́as
de clase. El término relación se emplea en UML de manera ligeramente diferente, y las
relaciones de UML son binarias. Esto conduce a veces a confusión sobre si los conjuntos de
relaciones de los diagramas ER que implican a tres o más conjuntos de entidades se pueden
representar directamente en UML. La confusión desaparece una vez que se comprende que
todos los conjuntos de relaciones (en el sentido de ER) se representan en UML como clases;
las “relaciones” binarias de UML son, en esencia, precisamente los enlaces mostrados en los
diagramas ER entre los conjuntos de entidades y los de relaciones.
Los conjuntos de relaciones con restricciones de las claves se suelen omitir de los diagramas
UML, y la relación se indica enlazando directamente los conjuntos de entidades implicados.
Por ejemplo, considérese la Figura 2.6. La representación UML de ese diagrama ER tendrı́a
una clase para Empleados y otra para Departamentos, y la relación Dirige se mostrarı́a
mediante un enlace entre ambas clases. El enlace se puede etiquetar con un nombre y la
correspondiente información de cardinalidad para mostrar que cada departamento sólo puede
tener un encargado.
Como se verá en el Capı́tulo 3, los diagramas ER se traducen en el modelo relacional me-
diante la transformación de cada conjunto de entidades o de relaciones en una tabla. Además,
como se verá en el Apartado 3.5.3, las tablas correspondientes a los conjuntos de relaciones
de una a varias suelen omitirse mediante la inclusión de alguna información adicional sobre
cada una de esas relaciones en la tabla correspondiente a alguno de los conjuntos de entida-
des implicados en las mismas. Por tanto, los diagramas de clases en UML se corresponden
estrechamente con las tablas creadas mediante la transformación de los diagramas ER.
En realidad, cada clase de los diagramas UML se transforma en una tabla del diagrama
UML de la base de datos correspondiente. Los diagramas de bases de datos en UML
Copyright © 2007. McGraw-Hill España. All rights reserved.
muestran el modo en que se representan las clases en la base de datos y contienen detalles
adicionales sobre la estructura de la base de datos, como las restricciones de integridad y
los ı́ndices. Los enlaces (“relaciones” de UML) entre las clases de UML conducen a diversas
restricciones de integridad entre las tablas correspondientes. Muchos detalles especı́ficos del
modelo relacional (por ejemplo, las vistas, las claves externas, los campos que pueden tener
valores nulos) y que reflejan opciones del diseño fı́sico (por ejemplo, los campos indexados)
se pueden modelar en los diagramas de bases de datos en UML.
Los diagramas de componentes en UML describen los aspectos de almacenamiento de las
bases de datos, como los espacios de tablas y las particiones de las bases de datos, ası́ como las
interfaces con las aplicaciones que tienen acceso a la base de datos. Finalmente, los diagramas
de implantación muestran los aspectos hardware del sistema.
El objetivo de este libro es concentrarse en los datos almacenados en las bases de datos y
en los aspectos de diseño relacionados. Para ello se adoptará una visión simplificada de las
otras etapas del diseño y desarrollo del software. Más allá de la discusión concreta de UML,
se pretende que el material de este apartado sitúe los aspectos de diseño que se tratan en el
contexto más amplio del diseño de software. Los autores esperan que esto ayude a los lectores
Ramakrishnan, Raghu, and Johannes Gehrke. Sistemas de gestión de bases de datos (3a. ed.), McGraw-Hill España, 2007. ProQuest Ebook Central,
http://ebookcentral.proquest.com/lib/unadsp/detail.action?docID=3195347.
Created from unadsp on 2018-08-27 19:50:08.
Introducción al diseño de bases de datos 49
interesados en una discusión más general del diseño de software a complementar este estudio
mediante referencias a otros materiales de su enfoque preferido al diseño global de sistemas.
En la nueva Web los clientes se deberı́an identificar antes de nada por su número de
identificación de cliente, que debe ser único. Luego deberı́an poder examinar el catálogo y
formular pedidos en lı́nea.”
Los consultores de TiposBD están un poco sorprendidos por la rapidez con que se ha
completado la fase de requisitos —suelen hacer falta semanas de discusiones (y muchas comi-
das y muchas cenas) llevarla a buen puerto— pero vuelven a su oficina para analizar esta
información.
fecha_pedido tarjeta
nombrec
título precio
idc dirección
isbn año_publicación
y fecha de envı́o. En cuanto se envı́a un pedido, se establece la fecha de envı́o; hasta entonces,
la fecha de envı́o se define como nula, lo que indica que ese pedido no se ha enviado todavı́a.
TiposBD tiene en este momento una reunión interna para la revisión del diseño, y se
suscitan varias dudas. Para proteger sus identidades, nos referiremos al jefe del equipo de
diseño como Tipo 1 y al revisor del diseño como Tipo 2.
Tipo 2: ¿Qué ocurre si un cliente realiza dos pedidos del mismo libro el mismo dı́a?
Tipo 1: Se trata el primer pedido mediante la creación de una relación Pide y el segundo
mediante la actualización del valor del atributo cantidad de esa relación.
Tipo 2: ¿Qué ocurre si un cliente realiza dos pedidos para libros diferentes el mismo dı́a?
Tipo 1: No hay problema. Cada ejemplar del conjunto de relaciones Pide relaciona al cliente
con un libro diferente.
Tipo 2: Ah, ¿pero qué ocurre si un cliente realiza dos pedidos del mismo libro en dı́as dife-
rentes?
Tipo 1: Se puede emplear el atributo fecha de pedido de la relación Pide para distinguir los
Copyright © 2007. McGraw-Hill España. All rights reserved.
dos pedidos.
Tipo 2: Oh, no, no se puede. Los atributos de Clientes y de Libros deben contener una clave
de Pide conjuntamente. Por tanto, este diseño no permite que un cliente realice pedidos del
mismo libro en dı́as diferentes.
Tipo 1: Pues vaya, tienes razón. Oh, bueno, probablemente no le importe a B&N; ya veremos.
TiposBd decide pasar a la fase siguiente, el diseño lógico de la base de datos; volveremos
a verlos en el Apartado 3.8.