• No se han encontrado resultados

INTRODUCCIÓN BASE DE DATOS

N/A
N/A
Protected

Academic year: 2020

Share "INTRODUCCIÓN BASE DE DATOS"

Copied!
60
0
0

Texto completo

(1)

Introducción

al diseño de bases

de datos

Dolors Costal Costa

(2)
(3)

Índice

Introducción... 5

Objetivos... 5

1. Introducción al diseño de bases de datos... 7

1.1. Etapas del diseño de bases de datos... 7

2. Diseño conceptual: el modelo ER... 10

2.1. Construcciones básicas ... 11

2.1.1. Entidades, atributos e interrelaciones ... 11

2.1.2. Grado de las interrelaciones... 13

2.1.3. Interrelaciones binarias ... 16

2.1.4. Ejemplo: base de datos de casas de colonias... 18

2.1.5. Interrelaciones n-arias ... 21

2.1.6. Interrelaciones recursivas ... 23

2.1.7. Entidades débiles... 25

2.2. Extensiones del modelo ER ... 26

2.2.1. Generalización/especialización ... 26

2.2.2. Entidades asociativas... 28

2.3. Ejemplo: base de datos del personal de una entidad bancaria ... 30

3. Diseño lógico: la transformación del modelo ER al modelo relacional... 35

3.1. Introducción a la transformación de entidades e interrelaciones... 35

3.2. Transformación de entidades ... 35

3.3. Transformación de interrelaciones binarias ... 36

3.3.1. Conectividad 1:1 ... 36

3.3.2. Conectividad 1:N ... 37

3.3.3. Conectividad M:N ... 38

3.3.4. Influencia de la dependencia de existencia en la transformación de las interrelaciones binarias ... 39

3.4. Transformación de interrelaciones ternarias... 40

3.4.1. Conectividad M:N:P ... 40

3.4.2. Conectividad M:N:1 ... 41

3.4.3. Conectividad N:1:1 ... 42

3.4.4. Conectividad 1:1:1 ... 43

3.5. Transformación de interrelaciones n-arias ... 44

3.6. Transformación de interrelaciones recursivas... 44

3.7. Transformación de entidades débiles ... 46

(4)

3.9. Transformación de entidades asociativas... 48

3.10. Resumen de la transformación del modelo ER al modelo relacional ... 49

3.11. Ejemplo: base de datos del personal de una entidad bancaria ... 49

Resumen... 51

Ejercicios de autoevaluación... 53

Solucionario... 55

Glosario... 59

(5)

Introducción al diseño de bases de datos

Introducción

En otras unidades didácticas se estudian las bases de datos relacionales y un lenguaje relacional, SQL, que nos proporciona mecanismos para crear, actua-lizar y consultar estas bases de datos.

Es necesario complementar estos conocimientos con un aspecto que es funda-mental para poder utilizar adecuadamente la tecnología de las bases de datos re-lacionales: el diseño. Éste será el objeto de estudio de esta unidad, que tratará el

diseño de bases de datos para el caso específico del modelo relacional.

Concretamente, en esta unidad explicaremos en qué consiste el diseño de una base de datos, analizaremos las etapas en las que se puede descomponer y des-cribiremos con detalle las etapas del diseño conceptual y lógico de una base de datos relacional.

Objetivos

En los materiales didácticos de esta unidad encontraréis las herramientas indispensables para alcanzar los siguientes objetivos:

1. Conocer las etapas que integran el proceso del diseño de una base de datos.

2. Conocer las estructuras del modelo ER.

3. Saber hacer el diseño conceptual de los datos de un sistema de información mediante el modelo ER.

(6)
(7)

1. Introducción al diseño de bases de datos

En otras unidades hemos aprendido cómo es una base de datos relacional y hemos estudiado un lenguaje, el SQL, que nos proporciona mecanismos para crear estas bases de datos, así como para actualizarlas y consultarlas.

Sin embargo, todavía debemos resolver algunas cuestiones fundamentales para poder emplear la tecnología de las bases de datos relacionales; por ejem-plo, cómo se puede decidir qué relaciones debe tener una base de datos deter-minada o qué atributos deben presentar las relaciones, qué claves primarias y qué claves foráneas se deben declarar, etc. La tarea de tomar este conjunto de decisiones recibe el nombre de diseñar la base de datos.

Una base de datos sirve para almacenar la información que se utiliza en un sis-tema de información determinado. Las necesidades y los requisitos de los fu-turos usuarios del sistema de información se deben tener en cuenta para poder tomar adecuadamente las decisiones anteriores.

Si recordáis los tres mundos presentados –el real, el conceptual y el de las re-presentaciones–, observaréis que el diseño de una base de datos consiste en la obtención de una representación informática concreta a partir del estudio del mundo real de interés.

1.1. Etapas del diseño de bases de datos

El diseño de una base de datos no es un proceso sencillo. Habitualmente, la complejidad de la información y la cantidad de requisitos de los sistemas de información hacen que sea complicado. Por este motivo, cuando se diseñan bases de datos es interesante aplicar la vieja estrategia de dividir para vencer.

Por lo tanto, conviene descomponer el proceso del diseño en varias etapas; en cada una se obtiene un resultado intermedio que sirve de punto de partida de la etapa siguiente, y en la última etapa se obtiene el resultado deseado. De este modo no hace falta resolver de golpe toda la problemática que plantea el di-seño, sino que en cada etapa se afronta un solo tipo de subproblema. Así se divide el problema y, al mismo tiempo, se simplifica el proceso.

En resumen, el diseño de una base de datos consiste en definir la es-tructura de los datos que debe tener la base de datos de un sistema de información determinado. En el caso relacional, esta estructura será un conjunto de esquemas de relación con sus atributos, dominios de atri-butos, claves primarias, claves foráneas, etc.

(8)

Descompondremos el diseño de bases de datos en tres etapas:

1) Etapa del diseño conceptual: en esta etapa se obtiene una estructura de la información de la futura BD independiente de la tecnología que hay que em-plear. No se tiene en cuenta todavía qué tipo de base de datos se utilizará –rela-cional, orientada a objetos, jerárquica, etc.–; en consecuencia, tampoco se tiene en cuenta con qué SGBD ni con qué lenguaje concreto se implementará la base de datos. Así pues, la etapa del diseño conceptual nos permite concentrarnos únicamente en la problemática de la estructuración de la información, sin tener que preocuparnos al mismo tiempo de resolver cuestiones tecnológicas.

El resultado de la etapa del diseño conceptual se expresa mediante algún mo-delo de datos de alto nivel. Uno de los más empleados es el modelo entidad-interrelación (entity-relationship), que abreviaremos con la sigla ER.

2) Etapa del diseño lógico: en esta etapa se parte del resultado del diseño conceptual, que se transforma de forma que se adapte a la tecnología que se debe emplear. Más concretamente, es preciso que se ajuste al modelo del SGBD con el que se desea implementar la base de datos. Por ejemplo, si se trata de un SGBD relacional, esta etapa obtendrá un conjunto de relaciones con sus atributos, claves primarias y claves foráneas.

Esta etapa parte del hecho de que ya se ha resuelto la problemática de la es-tructuración de la información en un ámbito conceptual, y permite concen-trarnos en las cuestiones tecnológicas relacionadas con el modelo de base de datos.

Más adelante explicaremos cómo se hace el diseño lógico de una base de datos relacional, tomando como punto de partida un diseño conceptual expresado con el modelo ER; es decir, veremos cómo se puede transformar un modelo ER en un modelo relacional.

3) Etapa del diseño físico: en esta etapa se transforma la estructura obtenida en la etapa del diseño lógico, con el objetivo de conseguir una mayor eficien-cia; además, se completa con aspectos de implementación física que depende-rán del SGBD.

Por ejemplo, si se trata de una base de datos relacional, la transformación de la estructura puede consistir en lo siguiente: tener almacenada alguna relación que sea la combinación de varias relaciones que se han obtenido en la etapa del diseño lógico, partir una relación en varias, añadir algún atributo calcula-ble a una relación, etc. Los aspectos de implementación física que hay que completar consisten normalmente en la elección de estructuras físicas de im-plementación de las relaciones, la selección del tamaño de las memorias inter-medias (buffers) o de las páginas, etc.

El resultado del diseño conceptual

Si retomamos la idea de los tres mundos, podemos afirmar que la etapa del diseño conceptual obtiene un resultado que se sitúa en el mundo de las concepciones, y no en el mundo de las representaciones.

La forma de elaborar un diseño conceptual expresado con el modelo ER se explica en el apartado 2 de esta unidad.

El resultado del diseño lógico

El resultado del diseño lógico se sitúa ya en el mundo de las representaciones.

El diseño lógico de una base de datos relacional se explica en el apartado 3 de esta unidad didáctica.

El resultado del diseño físico

(9)
(10)

2. Diseño conceptual: el modelo ER

En este apartado trataremos el diseño conceptual de una base de datos

me-diante el modelo ER. Lo que explicaremos es aplicable al diseño de cualquier tipo de bases de datos –relacional, jerárquica, etc.–, porque, como ya hemos dicho, en la etapa del diseño conceptual todavía no se tiene en cuenta la

tec-nología concreta que se utilizará para implementar la base de datos.

El modelo ER es uno de los enfoques de modelización de datos que más se uti-liza actualmente por su simplicidad y legibilidad. Su legibilidad se ve favoreci-da porque proporciona una notación diagramática muy comprensiva. Es una

herramienta útil tanto para ayudar al diseñador a reflejar en un modelo con-ceptual los requisitos del mundo real de interés como para comunicarse con el usuario final sobre el modelo conceptual obtenido y, de este modo, poder

verificar si satisface sus requisitos.

El modelo ER resulta fácil de aprender y de utilizar en la mayoría de las aplica-ciones. Además, existen herramientas informáticas de ayuda al diseño

(herra-mientas CASE*) que utilizan alguna variante del modelo ER para hacer el diseño de los datos.

El nombre completo del modelo ER es entity-relationship, y proviene del hecho de que los principales elementos que incluye son las entidades y las interrelaciones

(entities y relationships). Traduciremos este nombre por ‘entidad-interrelación’.

El origen del modelo ER se encuentra en trabajos efectuados por Peter Chen en

1976. Posteriormente, muchos otros autores han descrito variantes y/o exten-siones de este modelo. Así pues, en la literatura se encuentran muchas formas

diferentes del modelo ER que pueden variar simplemente en la notación diagra-mática o en algunos de los conceptos en que se basan para modelizar los datos.

Cuando se quiere utilizar el modelo ER para comunicarse con el usuario, es

re-comendable emplear una variante del modelo que incluya sólo sus elementos más simples –entidades, atributos e interrelaciones– y, tal vez, algunas cons-trucciones adicionales, como por ejemplo entidades débiles y dependencias de

existencia. Éstos eran los elementos incluidos en el modelo original propuesto por Chen. En cambio, para llevar a cabo la tarea de modelizar propiamente

di-cha, suele ser útil usar un modelo ER más completo que incluya construccio-nes más avanzadas que extienden el modelo original.

Según la noción de modelo de datos que hemos utilizado en los otros módulos, un modelo de datos tiene en cuenta tres aspectos de los datos: la estructura, la manipulación y la integridad. Sin embargo, el modelo ER habitualmente se

* La sigla CASE corresponde al término inglés Computer Aided

Software Engineering.

El modelo entidad-interrelación

Algunos autores denominan entidad-relación al modelo ER, pero en nuestro caso hemos preferido traducir relationship por ‘interrelación’ y no por ‘relación’, con el objetivo de evitar confusiones entre este concepto y el de relación que se utiliza en el modelo relacional.

(11)

utiliza para reflejar aspectos de la estructura de los datos y de su integridad, pero no de su manipulación.

2.1. Construcciones básicas

2.1.1. Entidades, atributos e interrelaciones

Ejemplos de entidad

Algunos ejemplos de entidad son un empleado, un producto o un despacho. También son entidades otros elementos del mundo real de interés, menos tangibles pero igualmente dife-renciables del resto de objetos; por ejemplo, una asignatura impartida en una universidad, un préstamo bancario, un pedido de un cliente, etc.

Ejemplos de atributo

Sobre una entidad empleado nos puede interesar, por ejemplo, tener registrados su DNI, su NSS, su nombre, su apellido y su sueldo como atributos.

El término entidad se utiliza tanto para denominar objetos individuales como para hacer referencia a conjuntos de objetos similares de los que nos interesan los mismos atributos; es decir, que, por ejemplo, se utiliza para designar tanto a un empleado concreto de una empresa como al conjunto de todos los em-pleados de la empresa. Más concretamente, el término entidad se puede referir a instancias u ocurrencias concretas (empleados concretos) o a tipos o cla-ses de entidades (el conjunto de todos los empleados).

El modelo ER proporciona una notación diagramática para representar grá-ficamente las entidades y sus atributos:

• Las entidades se representan con un rectángulo. El nombre de la entidad se escribe en mayúsculas dentro del rectángulo.

• Los atributos se representan mediante su nombre en minúsculas unido con un guión al rectángulo de la entidad a la que pertenecen. Muchas ve-ces, dado que hay muchos atributos para cada entidad, se listan todos apar-te del diagrama para no complicarlo.

Cada uno de los atributos de una entidad toma valores de un cierto dominio o conjunto de valores. Los valores de los dominios deben ser atómicos; es decir,

Por entidad entendemos un objeto del mundo real que podemos dis-tinguir del resto de objetos y del que nos interesan algunas propiedades.

Las propiedades de los objetos que nos interesan se denominan atributos.

Notación diagramática de entidades y atributos

(12)

no deben poder ser descompuestos. Además, todos los atributos tienen que ser univaluados. Un atributo es univaluado si tiene un único valor para cada ocu-rrencia de una entidad.

Ejemplo de atributo univaluado

El atributo sueldo de la entidad empleado, por ejemplo, toma valores del dominio de los reales y únicamente toma un valor para cada empleado concreto; por lo tanto, ningún empleado puede tener más de un valor para el sueldo.

Como ya hemos comentado anteriormente, una entidad debe ser distinguible del resto de objetos del mundo real. Esto hace que para toda entidad sea posi-ble encontrar un conjunto de atributos que permitan identificarla. Este con-junto de atributos forma una clave de la entidad.

Ejemplo de clave

La entidad empleado tiene una clave que consta del atributo dni porque todos los empleados tienen números de DNI diferentes.

Una determinada entidad puede tener más de una clave; es decir, puede tener varias claves candidatas.

Ejemplo de clave candidata

La entidad empleado tiene dos claves candidatas, la que está formada por el atributo dni y la que está constituida por el atributo nss, teniendo en cuenta que el NSS también será diferente para cada uno de los empleados.

El diseñador elige una clave primaria entre todas las claves candidatas. En la notación diagramática, la clave primaria se subraya para distinguirla del resto de las claves.

Ejemplo de clave primaria

En el caso de la entidad empleado, podemos elegir dni como clave primaria. En la figura del margen vemos que la clave primaria se subraya para distinguirla del resto.

Las interrelaciones se representan en los diagramas del modelo ER mediante un rombo. Junto al rombo se indica el nombre de la interrelación con letras mayúsculas.

Ejemplo de interrelación

Consideremos una entidad empleado y una entidad despacho y supongamos que a los emplea-dos se les asignan despachos donde trabajar. Entonces hay una interrelación entre la entidad empleado y la entidad despacho.

Esta interrelación, que podríamos denominar asignación, asocia a los empleados con los des-pachos donde trabajan. La figura del margen muestra la interrelación asignación entre las en-tidades empleado y despacho.

El término interrelación se puede utilizar tanto para denominar asociaciones concretas u ocurrencias de asociaciones como para designar conjuntos o clases de asociaciones similares.

Se define interrelación como una asociación entre entidades.

Recordad que los valores de los atributos de las relaciones también deben ser atómicos, tal y como se ha explicado en la unidad “El modelo relacional y el álgebra relacional”.

Los conceptos de clave candidata

y clave primaria de una entidad son similares a los conceptos de

(13)

Ejemplo

Una interrelación se aplica tanto a una asociación concreta entre el empleado de DNI ‘50.455.234’ y el despacho ‘Diagonal, 20’ como a la asociación genérica entre la entidad em-pleado y la entidad despacho.

Los atributos de las interrelaciones se representan mediante su nombre en minús-culas unido con un guión al rombo de la interrelación a la que pertenecen.

Ejemplo de atributo de una interrelación

Observemos la entidad estudiante y la entidad asignatura que se muestran en la figura siguiente:

Entre estas dos entidades se establece la interrelación evaluación para indicar de qué asigna-turas han sido evaluados los estudiantes. Esta interrelación tiene el atributo nota, que sirve para especificar qué nota han obtenido los estudiantes de las asignaturas evaluadas.

Conviene observar que el atributo nota deber ser forzosamente un atributo de la interrelación evaluación, y que no sería correcto considerarlo un atributo de la entidad estudiante o un atri-buto de la entidad asignatura. Lo explicaremos analizando las ocurrencias de la interrelación evaluación que se muestran en la figura anterior.

Si nota se considerase un atributo de estudiante, entonces para el estudiante ‘E1’ de la figura necesitaríamos dos valores del atributo, uno para cada asignatura que tiene el estudiante; por lo tanto, no sería univaluado. De forma similar, si nota fuese atributo de asignatura tampoco podría ser univaluado porque, por ejemplo, la asignatura ‘A1’ requeriría tres valores de nota, una para cada estudiante que se ha matriculado en ella. Podemos concluir que el atributo nota está relacionado al mismo tiempo con una asignatura y con un estudiante que la cursa y que, por ello, debe ser un atributo de la interrelación que asocia las dos entidades.

2.1.2. Grado de las interrelaciones

En ocasiones interesa reflejar algunas propiedades de las interrelacio-nes. Por este motivo, las interrelaciones pueden tener también atribu-tos. Los atributos de las interrelaciones, igual que los de las entidades, tienen un cierto dominio, deben tomar valores atómicos y deben ser univaluados.

(14)

Interrelaciones de grado dos

Las interrelaciones evaluación y asignación de los ejemplos anteriores tienen grado dos:

• La interrelación evaluación asocia la entidad estudiante y la entidad asignatura; es decir, aso-cia dos entidades.

• De forma análoga, la interrelación asignación asocia empleado y despacho.

Las interrelaciones de grado dos se denominan también interrelaciones

bina-rias. Todas las interrelaciones de grado mayor que dos se denominan, en con-junto, interrelaciones n-arias. Así pues, una interrelación n-aria puede tener

grado tres y ser una interrelación ternaria, puede tener grado cuatro y ser una interrelación cuaternaria, etc.

A continuación presentaremos un ejemplo que nos ilustrará el hecho de que,

en ocasiones, las interrelaciones binarias no nos permiten modelizar correcta-mente la realidad y es necesario utilizar interrelaciones de mayor grado.

Consideremos la interrelación evaluación de la figura anterior, que tiene un

atributo nota. Este atributo permite registrar la nota obtenida por cada estu-diante en cada asignatura de la que ha sido evaluado. Una interrelación permite

establecer una sola asociación entre unas entidades individuales determinadas. En otras palabras, sólo se puede interrelacionar una vez al estudiante ‘E1’ con la

asignatura ‘A1’ vía la interrelación evaluación.

Observad que, si pudiese haber más de una interrelación entre el estudiante ‘E1’ y la asignatura ‘A1’, no podríamos distinguir estas diferentes ocurrencias de la interrelación. Esta restricción hace que se registre una sola nota por

estu-diante y asignatura.

Supongamos que deseamos registrar varias notas por cada asignatura y estu-diante correspondientes a varios semestres en los que un mismo estuestu-diante ha

(15)

anterior no nos permitiría reflejar este caso. Sería necesario aumentar el grado de la interrelación, tal y como se muestra en la figura siguiente:

La interrelación ternaria evaluación-semestral asocia estudiantes, asignaturas y una tercera entidad que denominamos semestre. Su atributo nota nos permite

reflejar todas las notas de una asignatura que tiene un estudiante correspon-dientes a diferentes semestres.

De hecho, lo que sucede en este caso es que, según los requisitos de los

usua-rios de esta BD, una nota pertenece al mismo tiempo a un estudiante, a una asignatura y a un semestre y, lógicamente, debe ser un atributo de una

inte-rrelación ternaria entre estas tres entidades.

Este ejemplo demuestra que una interrelación binaria puede no ser suficiente para satisfacer los requisitos de los usuarios, y puede ser necesario aplicar una

interrelación de mayor grado. Conviene observar que esto también puede ocu-rrir en interrelaciones que no tienen atributos.

Ejemplo de interrelación ternaria sin atributos

Consideremos un caso en el que deseamos saber para cada estudiante qué asignaturas ha cur-sado cada semestre, a pesar de que no queremos registrar la nota que ha obtenido. Entonces aplicaríamos también una interrelación ternaria entre las entidades estudiante, asignatura y se-mestre que no tendría atributos, tal y como se muestra en la figura siguiente:

(16)

real. Es preciso remarcar que, de forma similar, a veces puede ser necesario uti-lizar interrelaciones de grado todavía mayor: cuaternarias, etc.

En el subapartado siguiente analizaremos con detalle las interrelaciones bina-rias, y más adelante, las interrelaciones n-arias.

2.1.3. Interrelaciones binarias

Conectividad de las interrelaciones binarias

Una interrelación binaria entre dos entidades puede tener tres tipos de co-nectividad:

• Conectividad uno a uno (1:1). La conectividad 1:1 se denota poniendo un 1 a lado y lado de la interrelación.

• Conectividad uno a muchos (1:N). La conectividad 1:N se denota po-niendo un 1 en un lado de la interrelación y una N en el otro.

• Conectividad muchos a muchos: (M:N). La conectividad M:N se denota poniendo una M en uno de los lados de la interrelación, y una N en el otro.

Ejemplos de conectividad en una interrelación binaria

A continuación analizaremos un ejemplo de cada una de las conectividades posibles para una interrelación binaria:

a) Conectividad 1:1

La conectividad de una interrelación expresa el tipo de corresponden-cia que se establece entre las ocurrencorresponden-cias de entidades asocorresponden-ciadas con la interrelación. En el caso de las interrelaciones binarias, expresa el nú-mero de ocurrencias de una de las entidades con las que una ocurrencia de la otra entidad puede estar asociada según la interrelación.

(17)

La interrelación anterior tiene conectividad 1:1. Esta interrelación asocia las delegaciones de una empresa con las ciudades donde están situadas. El hecho de que sea 1:1 indica que una ciudad tiene sólo una delegación, y que una delegación está situada en una única ciudad.

b) Conectividad 1:N

La interrelación asignación entre la entidad empleado y la entidad despacho tiene conectividad 1:N, y la N está en el lado de la entidad empleado. Esto significa que un empleado tiene un solo despacho asignado, pero que, en cambio, un despacho puede tener uno o más emplea-dos asignaemplea-dos.

c) Conectividad M:N

Para analizar la conectividad M:N, consideramos la interrelación evaluación de la figura ante-rior. Nos indica que un estudiante puede ser evaluado de varias asignaturas y, al mismo tiem-po, que una asignatura puede tener varios estudiantes por evaluar.

Es muy habitual que las interrelaciones binarias M:N y todas las n-arias tengan

atributos. En cambio, las interrelaciones binarias 1:1 y 1:N no tienen por qué tenerlos. Siempre se pueden asignar estos atributos a la entidad del lado N, en el caso de las 1:N, y a cualquiera de las dos entidades interrelacionadas en el

(18)

Dependencias de existencia en las interrelaciones binarias

En el modelo ER, un círculo en la línea de conexión entre una entidad y una interrelación indica que la entidad es opcional en la interrelación. La obligato-riedad de una entidad a una interrelación se indica con una línea perpendicular. Si no se consigna ni un círculo ni una línea perpendicular, se considera que la dependencia de existencia es desconocida.

Ejemplo de dependencias de existencia

La figura siguiente nos servirá para entender el significado práctico de la dependencia de exis-tencia. La entidad empleado es obligatoria en la interrelación dirección. Esto indica que no pue-de existir un pue-departamento que no tenga un empleado que actúa pue-de director pue-del departamento. La entidad departamento, en cambio, es opcional en la interrelación dirección. Es posible que haya un empleado que no está interrelacionado con ningún departamento: puede haber –y es el caso más frecuente– empleados que no son directores de departamento.

Aplicaremos la dependencia de existencia en las interrelaciones binarias, pero no en las n-arias.

2.1.4. Ejemplo: base de datos de casas de colonias

En este punto, y antes de continuar explicando construcciones más complejas del modelo ER, puede resultar muy ilustrativo ver la aplicación práctica de las construcciones que hemos estudiado hasta ahora. Por este motivo, analizare-mos un caso práctico de diseño con el modelo ER que corresponde a una base de datos destinada a la gestión de las inscripciones en un conjunto de casas de colonias. El modelo ER de esta base de datos será bastante sencillo e incluirá sólo entidades, atributos e interrelaciones binarias (no incluirá interrelaciones

n-arias ni otros tipos de estructuras).

(19)

La descripción siguiente explica con detalle los requisitos de los usuarios que hay que tener en cuenta al hacer el diseño conceptual de la futura base de datos:

a) Cada casa de colonias tiene un nombre que la identifica. Se desea saber de cada una, aparte del nombre, la capacidad (el número de niños que se pueden alojar en cada una como máximo), la comarca donde está situada y las ofertas de actividades que proporciona. Una casa puede ofrecer actividades como por ejemplo natación, esquí, remo, pintura, fotografía, música, etc.

b) Es necesario tener en cuenta que en una casa de colonias se pueden practi-car varias actividades (de hecho, cada casa debe ofrecer como mínimo una), y también puede ocurrir que una misma actividad se pueda llevar a cabo en va-rias casas. Sin embargo, toda actividad que se registre en la base de datos debe ser ofertada como mínimo en una de las casas.

c) Interesa tener una evaluación de las ofertas de actividades que proporcio-nan las casas. Se asigna una calificación numérica que indica el nivel de cali-dad que tiene cada una de las activicali-dades ofertadas.

d) Las casas de colonias alojan niños que se han inscrito para pasar en ellas unas pequeñas vacaciones. Se quiere tener constancia de los niños que se alojan en cada una de las casas en el momento actual. Se debe suponer que hay casas que están vacías (en las que no se aloja ningún niño) durante algunas temporadas.

e) De los niños que se alojan actualmente en alguna de las casas, interesa cono-cer un código que se les asigna para identificarlos, su nombre, su apellido, el nú-mero de teléfono de sus padres y su comarca de residencia.

f) De las comarcas donde hay casas o bien donde residen niños, se quiere te-ner registrados la superficie y el número de habitantes. Se debe considerar que puede haber comarcas donde no reside ninguno de los niños que se alojan en un momento determinado en las casas de colonias, y comarcas que no dispo-nen de ninguna casa.

La figura siguiente muestra un diagrama ER que satisface los requisitos anterio-res. Los atributos de las entidades no figuran en el diagrama y se listan aparte.

Es posible, ...

(20)

Los atributos de las entidades que figuran en el diagrama son los siguientes (las claves primarias están subrayadas):

A continuación comentamos los aspectos más relevantes de este modelo ER:

1) Una de las dificultades que en ocasiones se presenta durante la modeliza-ción conceptual es decidir si una informamodeliza-ción determinada debe ser una enti-dad o un atributo. En nuestro ejemplo, puede resultar difícil decidir si comarca

se debe modelizar como una entidad o como un atributo.

A primera vista, podría parecer que comarca debe ser un atributo de la entidad

casa-colonias para indicar dónde está situada una casa de colonias, y también un atributo de la entidad niño para indicar la residencia del niño. Sin embargo, esta solución no sería adecuada, porque se quieren tener informaciones adicio-nales asociadas a la comarca: la superficie y el número de habitantes. Es preciso que comarca sea una entidad para poder reflejar estas informaciones adicionales como atributos de la entidad.

La entidad comarca tendrá que estar, evidentemente, interrelacionada con las entidades niño y casa-colonias. Observad que de este modo, además, se hace pa-tente que las comarcas de residencia de los niños y las comarcas de situación de las casas son informaciones de un mismo tipo.

2) Otra decisión que hay que tomar es si el concepto actividad se debe mode-lizar como una entidad o como un atributo. Actividad no tiene informaciones adicionales asociadas; no tiene, por lo tanto, más atributos que los que for-man la clave. Aun así, es necesario que actividad sea una entidad para que, me-diante la interrelación oferta, se pueda indicar que una casa de colonias ofrece actividades.

Observad que las actividades ofertadas no se pueden expresar como un atribu-to de casa-colonias, porque una casa puede ofrecer muchas actividades y, en este caso, el atributo no podría tomar un valor único.

3) Otra elección difícil, que con frecuencia se presenta al diseñar un modelo ER, consiste en modelizar una información determinada como una entidad o

CASA-COLONIAS

nombre-casa, capacidad ACTIVIDAD

nombre-actividad NIÑO

código-niño, nombre, apellido, teléfono COMARCA

(21)

como una interrelación. Por ejemplo, podríamos haber establecido que oferta, en lugar de ser una interrelación, fuese una entidad; lo habríamos hecho así:

La entidad oferta representada en la figura anterior tiene los atributos que

pre-sentamos a continuación:

Esta solución no acaba de reflejar adecuadamente la realidad. Si analizamos la

clave de oferta, podemos ver que se identifica con nombre-casa, que es la clave de la entidad casa-colonias, y con nombre-actividad, que es la clave de la entidad

actividad. Esto nos debe hacer sospechar que oferta, de hecho, corresponde a

una asociación o interrelación entre casas y actividades. En consecuencia, re-flejaremos la realidad con más exactitud si modelizamos oferta como una

in-terrelación entre estas entidades.

4) Finalmente, un aspecto que hay que cuidar durante el diseño conceptual es el de evitar las redundancias. Por ejemplo, si hubiésemos interrelacionado

comarca con actividad para saber qué actividades se realizan en las casas de

cada una de las comarcas, habríamos tenido información redundante. La in-terrelación oferta junto con la interrelación situación ya permiten saber, de for-ma indirecta, qué actividades se hacen en las cofor-marcas.

2.1.5. Interrelaciones n-arias

Las interrelaciones n-arias, igual que las binarias, pueden tener diferentes tipos

de conectividad. En este subapartado analizaremos primero el caso particular de las interrelaciones ternarias y, a continuación, trataremos las conectivida-des de las interrelaciones n-arias en general.

Conectividad de las interrelaciones ternarias

OFERTA

nombre-casa, nombre-actividad, nivel

Cada una de las tres entidades asociadas con una interrelación ternaria puede estar conectada con conectividad “uno” o bien con conectividad “muchos”. En consecuencia, las interrelaciones ternarias pueden tener

(22)

Analizaremos cómo se decide cuál es la conectividad adecuada de una inte-rrelación ternaria mediante el siguiente ejemplo. Consideremos una interre-lación que denominamos clase y que asocia las entidades asignatura, aula y

hora-semanal. Esta interrelación permite registrar clases presenciales. Una clase corresponde a una asignatura determinada, se imparte en un aula de-terminada y a una hora de la semana dede-terminada. Por ejemplo, podemos registrar que se hace clase de la asignatura IBD en el aula D222 el martes a las 9, tal y como se muestra en la figura de la página siguiente. El atributo

duración nos permite saber cuántas horas dura la clase.

Para decidir si el lado de la entidad asignatura se conecta con “uno” o con “mu-chos” , es necesario preguntarse si, dadas un aula yuna hora-semanal, se puede hacer clase de sólo una o bien de muchas asignaturas en aquellas aula y hora. La respuesta sería que sólo se puede hacer clase de una asignatura en una mis-ma aula y hora. Esto nos indica que asignatura se conecta con “uno”, tal y como reflejamos en la figura siguiente:

Como nos indica este ejemplo, para decidir cómo se debe conectar una de las en-tidades, es necesario preguntarse si, ya fijadas ocurrencias concretas de las otras dos, es posible conectar sólo “una” o bien “muchas” ocurrencias de la primera entidad.

(23)

entidad aula se conecta con “uno”, teniendo en cuenta que, fijadas una natura y una hora de la semana, sólo se puede hacer una clase de aquella asig-natura a aquella hora. La conectividad resultante, de este modo, es N:1:1.

Caso general: conectividad de las interrelaciones n-arias

Lo que hemos explicado sobre la conectividad para las interrelaciones terna-rias es fácilmente generalizable a interrelaciones n-arias.

Para decidir si una de las entidades se conecta con “uno” o con “muchos”, es necesario preguntarse si, fijadas ocurrencias concretas de las otras n – 1 entidades, es posible conectar sólo una o bien muchas ocurrencias de la primera entidad:

• Si la respuesta es que sólo una, entonces se conecta con “uno”. • Si la respuesta es que muchas, la entidad se conecta con “muchos”.

2.1.6. Interrelaciones recursivas

Ejemplo de interrelación recursiva

Si, para una entidad persona, queremos tener constancia de qué personas están actualmente casadas entre ellas, será necesario definir la siguiente interrelación, que asocia dos veces la en-tidad persona:

Una interrelación n-aria puede tener n + 1 tipos de conectividad, tenien-do en cuenta que cada una de las n entidades puede estar conectada con “uno” o con “muchos” en la interrelación*.

Una interrelación recursiva es una interrelación en la que alguna en-tidad está asociada más de una vez.

* Recordad que para las interrelaciones ternarias

(24)

Una interrelación recursiva puede ser tanto binaria como n-aria:

1) Interrelación recursiva binaria: interrelación en la que las ocurrencias asocian dos instancias de la misma entidad*. Las interrelaciones binarias re-cursivas pueden tener conectividad 1:1, 1:N o M:N, como todas las binarias. En esta interrelación también es posible expresar la dependencia de existencia igual que en el resto de las interrelaciones binarias.

Ejemplo de interrelación recursiva binaria

La interrelación boda tiene conectividad 1:1 porque un marido está casado con una sola mu-jer y una mumu-jer está casada con un solo marido. También tiene un círculo en los dos lados (según la dependencia de existencia), porque puede haber personas que no estén casadas.

En una interrelación recursiva, puede interesar distinguir los diferentes pa-peles que una misma entidad tiene en la interrelación. Con este objetivo, se puede etiquetar cada línea de la interrelación con un rol. En las interrelacio-nes no recursivas normalmente no se especifica el rol; puesto que todas las entidades interrelacionadas son de clases diferentes, sus diferencias de rol se sobreentienden.

Roles diferentes

Una ocurrencia de la interrelación boda asocia a dos personas concretas. Para reflejar el papel diferente que tiene cada una de ellas en la interrelación, una de las personas tendrá el rol de marido y la otra tendrá el rol de mujer.

Algunas interrelaciones recursivas no presentan diferenciación de roles; en-tonces, las líneas de la interrelación no se etiquetan.

No-diferencia de roles

Consideremos una interrelación amistad que asocia a personas concretas que son amigas. A diferencia de lo que sucedía en la interrelación boda, donde una de las personas es el marido y la otra la mujer, en este caso no hay diferenciación de roles entre las dos personas interre-lacionadas. A continuación se muestra esta interrelación. Observad que su conectividad es M:N, teniendo en cuenta que una persona puede tener muchos amigos y, al mismo tiempo, puede haber muchas personas que la consideran amiga.

(25)

2) Interrelación recursiva n-aria: interrelación recursiva en la que las ocu-rrencias asocian más de dos instancias.

Ejemplo de interrelación recursiva ternaria

Consideremos una interrelación que registra todas las bodas que se han producido a lo largo del tiempo entre un conjunto de personas determinado. Esta interrelación permite tener constancia no sólo de las bodas vigentes, sino de todas las bodas realizadas en un cierto periodo de tiempo.

Esta interrelación es recursiva y ternaria. Una ocurrencia de la interrelación asocia a una per-sona que es el marido, a otra que es la mujer y la fecha de su boda. La conectividad es N:1:1. A los lados del marido y de la mujer les corresponde un 1, porque un marido o una mujer, en una fecha determinada, se casa con una sola persona. Al lado de la entidad fecha le corres-ponde una N, porque se podría dar el caso de que hubiese, en fechas diferentes, más de una boda entre las mismas personas.

2.1.7. Entidades débiles

Las entidades que hemos considerado hasta ahora tienen un conjunto de

atribu-tos que forman su claves primarias y que permiten identificarlas completamente. Estas entidades se denominan, de forma más específica, entidades fuertes. En

este subapartado consideraremos otro tipo de entidades que denominaremos en-tidades débiles.

Una entidad débil se representa con un rectángulo doble, y la interrelación que ayuda a identificarla se representa con una doble línea.

Ejemplo de entidad débil

Consideremos las entidades edificio y despacho de la figura siguiente. Supongamos que puede haber despachos con el mismo número en edificios diferentes. Entonces, su número no iden-tifica completamente un despacho. Para ideniden-tificar completamente un despacho, es necesa-rio tener en cuenta en qué edificio está situado. De hecho, podemos identificar un despacho mediante la interrelación situación, que lo asocia a un único edificio. El nombre del edificio donde está situado junto con el número de despacho lo identifican completamente.

(26)

En el ejemplo anterior, la interrelación situación nos ha permitido completar

la identificación de los despachos. Para toda entidad débil, siempre debe haber una única interrelación que permita completar su identificación. Esta interre-lación debe ser binaria con conectividad 1:N, y la entidad débil debe estar en

el lado N. De este modo, una ocurrencia de la entidad débil está asociada con una sola ocurrencia de la entidad del lado 1, y será posible completar su iden-tificación de forma única. Además, la entidad del lado 1 debe ser obligatoria en la interrelación porque, si no fuese así, alguna ocurrencia de la entidad dé-bil podría no estar interrelacionada con ninguna de sus ocurrencias y no se po-dría identificar completamente.

2.2. Extensiones del modelo ER

En este subapartado estudiaremos algunas construcciones avanzadas que ex-tienden el modelo ER estudiado hasta ahora.

2.2.1. Generalización/especialización

En algunos casos, hay ocurrencias de una entidad que tienen características pro-pias específicas que nos interesa modelizar. Por ejemplo, puede ocurrir que se

quiera tener constancia de qué coche de la empresa tienen asignado los emplea-dos que son directivos; también que, de los empleaemplea-dos técnicos, interese tener una interrelación con una entidad proyecto que indique en qué proyectos trabajan

y se desee registrar su titulación. Finalmente, que convenga conocer la antigüedad de los empleados administrativos. Asímismo, habrá algunas características comu-nes a todos los empleados: todos se identifican por un DNI, tienen un nombre, un apellido, una dirección y un número de teléfono.

(27)

Denotamos la generalización/especialización con una flecha que parte de las entidades subclase y que se dirige a la entidad superclase.

Ejemplo de entidades superclase y subclase

En la figura siguiente están representadas la entidad superclase, que corresponde al empleado del ejemplo anterior, y las entidades subclase, que corresponden al directivo, al técnico y al administrativo del mismo ejemplo.

En la generalización/especialización, las características (atributos o interrela-ciones) de la entidad superclase se propagan hacia las entidades subclase. Es lo que se denomina herencia de propiedades.

En el diseño de una generalización/especialización, se puede seguir uno de los dos procesos siguientes:

1) Puede ocurrir que el diseñador primero identifique la necesidad de la enti-dad superclase y, posteriormente, reconozca las características específicas que hacen necesarias las entidades subclase. En estos casos se dice que ha seguido un proceso de especialización.

2) La alternativa es que el diseñador modelice en primer lugar las entidades sub-clase y, después, se dé cuenta de sus características comunes e identifique la en-tidad superclase. Entonces se dice que ha seguido un proceso de generalización.

a) La entidad superclase nos permite modelizar las características co-munes de la entidad vista de una forma genérica.

b) Las entidades subclase nos permiten modelizar las características propias de sus especializaciones.

(28)

La generalización/especialización puede ser de dos tipos:

a) Disjunta. En este caso no puede suceder que una misma ocurrencia

apa-rezca en dos entidades subclase diferentes. Se denota gráficamente con la etiqueta D.

b) Solapada. En este caso no tiene lugar la restricción anterior. Se denota grá-ficamente con la etiqueta S.

Además, una generalización/especialización también puede ser:

1) Total. En este caso, toda ocurrencia de la entidad superclase debe

pertene-cer a alguna de las entidades subclase. Esto se denota con la etiqueta T.

2) Parcial. En este caso no es necesario que se cumpla la condición anterior. Se

denota con la etiqueta P.

La generalización/especialización de los empleados

La generalización/especialización de los empleados es total porque suponemos que todo em-pleado debe ser directivo, técnico o administrativo. Se denota con la etiqueta T.

2.2.2. Entidades asociativas

En este subapartado veremos un mecanismo que nos permite considerar una interrelación entre entidades como si fuese una entidad.

La utilidad de una entidad asociativa consiste en que se puede interrelacionar

con otras entidades y, de forma indirecta, nos permite tener interrelaciones en las que intervienen interrelaciones. Una entidad asociativa se denota recua-drando el rombo de la interrelación de la que proviene.

La entidad que resulta de considerar una interrelación entre entidades como si fuese una entidad es una entidad asociativa, y tendrá el mismo nombre que la interrelación sobre la que se define.

Nuestro ejemplo de los empleados...

(29)

Ejemplo de entidad asociativa

La figura siguiente muestra un ejemplo de entidad asociativa:

Recorrido es una interrelación de conectividad M:N que registra las ciudades por donde han pasado los diferentes viajes organizados por una empresa de reparto de paquetes. Considera-mos recorrido una entidad asociativa con el fin de interrelacionarla con la entidad cliente; de este modo nos será posible reflejar por orden de qué clientes se han hecho repartos en una ciudad del recorrido de un viaje, así como el número de paquetes cargados y descargados si-guiendo sus indicaciones.

El mecanismo de las entidades asociativas subsume el de las entidades débiles y resulta todavía más potente. Es decir, siempre que utilicemos una entidad débil podremos sustituirla por una entidad asociativa, pero no al revés.

Ejemplo de sustitución de una entidad débil por una asociativa

A continuación se muestra la entidad débil despacho, que tiene la interrelación asignación con la entidad empleado.

(30)

Aunque las entidades débiles se puedan sustituir por el mecanismo de las

en-tidades asociativas, es adecuado mantenerlas en el modelo ER porque resultan

menos complejas y son suficientes para modelizar muchas de las situaciones que se producen en el mundo real.

2.3. Ejemplo: base de datos del personal de una entidad bancaria

En este subapartado veremos un ejemplo de diseño conceptual de una base de datos mediante el modelo ER.

Se trata de diseñar una base de datos para la gestión del personal de una

enti-dad bancaria determinada que dispone de muchos empleados y de una amplia red de agencias. La siguiente descripción resume los requisitos de los usuarios

de la futura base de datos:

a) Los empleados se identifican por un código de empleado, y también desea-mos conocer su DNI, su NSS, su nombre y su apellido. Será importante

regis-trar su ciudad de residencia, considerando que hay ciudades donde no reside ningún empleado.

b) Interesa saber en qué ciudades están ubicadas las diversas agencias de la

entidad bancaria. Estas agencias bancarias se identifican por la ciudad donde están y por un nombre que permite distinguir las agencias de una misma

(31)

consi-derar que la base de datos también incluye ciudades donde no hay ninguna agencia.

c) Un empleado, en un momento determinado, trabaja en una sola agencia, lo cual no impide que pueda ser trasladado a otra o, incluso, que vuelva a tra-bajar en una agencia donde ya había trabajado anteriormente. Se quiere tener

constancia del historial del paso de los empleados por las agencias.

d) Los empleados pueden tener títulos académicos (aunque no todos los tie-nen). Se quiere saber qué títulos tienen los empleados.

e) Cada empleado tiene una categoría laboral determinada (auxiliar, oficial

de segunda, oficial de primera, etc.). A cada categoría le corresponde un sueldo base determinado y un precio por hora extra también determinado. Se quiere

tener constancia de la categoría actual de cada empleado, y del sueldo base y el precio de la hora extra de cada categoría.

f) Algunos empleados (no todos) están afiliados a alguna central sindical. Se ha llegado al pacto de descontar de la nómina mensual la cuota sindical a los

afiliados a cada central. Esta cuota es única para todos los afiliados a una cen-tral determinada. Es necesario almacenar las afiliaciones a una cencen-tral de los

empleados y las cuotas correspondientes a las diferentes centrales sindicales.

g) Hay dos tipos de empleados diferentes:

• Los que tienen contrato fijo, cuya antigüedad queremos conocer.

• Los que tienen contrato temporal, de los cuales nos interesa saber las fechas de inicio y finalización de su último contrato.

Si un empleado temporal pasa a ser fijo, se le asigna un nuevo código de

emplea-do; consideraremos que un empleado fijo nunca pasa a ser temporal. Todo lo que se ha indicado hasta ahora (traslados, categorías, afiliación sindical, etc.) es

aplicable tanto a empleados fijos como a temporales.

h) Los empleados fijos tienen la posibilidad de pedir diferentes tipos preesta-blecidos de préstamos (por matrimonio, por adquisición de vivienda, por

es-tudios, etc.), que pueden ser concedidos o no. En principio, no hay ninguna limitación a la hora de pedir varios préstamos a la vez, siempre que no se pida

más de uno del mismo tipo al mismo tiempo. Se quiere registrar los préstamos pedidos por los empleados, y hacer constar si han sido concedidos o no. Cada tipo de préstamo tiene establecidas diferentes condiciones; de estas

(32)

La siguiente figura muestra un diagrama ER que satisface los requisitos an-teriores:

Los atributos de las entidades que figuran en el diagrama son los siguientes (las claves primarias se han subrayado):

EMPLEADO

código-emplado, dni, nss, nombre, apellido FIJO (entidad subclase de empleado)

código-empleado, antigüedad

TEMPORAL (entidad subclase de empleado)

código-empleado, fecha-inicio-cont, fecha-final-cont CIUDAD

(33)

A continuación, comentaremos los aspectos que pueden resultar más comple-jos de este modelo ER:

1) La entidad agencia se ha considerado una entidad débil porque su atributo

nombre-agencia sólo permite distinguir las agencias situadas en una misma ciu-dad, pero para identificar de forma total una agencia, es necesario saber en qué ciudad está situada. De este modo, la interrelación situación es la que nos per-mite completar la identificación de la entidad agencia.

2) La interrelación petición es ternaria y asocia a empleados fijos que hacen pe-ticiones de préstamos, tipos de préstamos pedidos por los empleados y fechas en las que se hacen estas peticiones.

3) El lado de la entidad fecha se conecta con “muchos” porque un mismo em-pleado puede pedir un mismo tipo de préstamo varias veces en fechas distin-tas. La entidad fijo se conecta con “muchos” porque un tipo de préstamo determinado puede ser pedido en una misma fecha por varios empleados. También la entidad tipo-préstamo se conecta con “muchos” porque es posible que un empleado en una fecha determinada pida más de un préstamo de tipo diferente.

4) El atributo concedido/no indica si el préstamo se ha concedido o no. Es un atributo de la interrelación porque su valor depende al mismo tiempo del em-pleado fijo que hace la petición, del tipo de préstamo pedido y de la fecha de petición.

5) La interrelación traslado también es una interrelación ternaria que permite re-gistrar el paso de los empleados por las distintas agencias. Un traslado concreto asocia a un empleado, una agencia donde él trabajará y una fecha inicial en la que empieza a trabajar en la agencia. El atributo de la interrelación fecha-fin indica en qué fecha finaliza su asignación a la agencia (fecha-fin tendrá el valor nulo cuando

AGENCIA (entidad débil: nombre-agencia la identifica parcialmente, se identifica completamente con la ciudad de situación) nombre-agencia, dirección, teléfono

TÍTULO

nombre-título CATEGORÍA

nombre-categ, sueldo-base, hora-extra CENTRAL-SINDICAL

central, cuota TIPO-PRÉSTAMO

código-préstamo, tipo-interés, período-vigencia FECHA

(34)

un empleado trabaja en una agencia en el momento actual y no se sabe cuándo se le trasladará). Observad que fecha-fin debe ser un atributo de la interrelación. Si se colocase en una de las tres entidades interrelacionadas, no podría ser un atribu-to univaluado.

Conviene observar que esta interrelación no registra todas y cada una de las fechas en las que un empleado está asignado a una agencia, sino sólo la fecha inicial y la fecha final de la asignación. Es muy habitual que, para informacio-nes que son ciertas durante todo un periodo de tiempo, se registre en la base de datos únicamente el inicio y el final del periodo.

Notad que la entidad agencia se ha conectado con “uno” en la interrelación

traslado, porque no puede ocurrir que, en una fecha, un empleado determina-do sea trasladadetermina-do a más de una agencia.

6) Finalmente, comentaremos la generalización/especialización de la entidad

(35)

3. Diseño lógico: la transformación del modelo ER

al modelo relacional

En este apartado trataremos el diseño lógico de una base de datos relacional. Partiremos del resultado de la etapa del diseño conceptual expresado median-te el modelo ER y veremos cómo se puede transformar en una estructura de datos del modelo relacional.

3.1. Introducción a la transformación de entidades e interrelaciones

En el caso de las interrelaciones, es necesario tener en cuenta su grado y su co-nectividad para poder decidir cuál es la transformación adecuada:

1) Las interrelaciones binarias 1:1 y 1:N dan lugar a claves foráneas.

2) Las interrelaciones binarias M:N y todas las n-arias se traducen en nuevas relaciones.

En los subapartados siguientes explicaremos de forma más concreta las trans-formaciones necesarias para obtener un esquema relacional a partir de un mo-delo ER. Más adelante proporcionamos una tabla que resume los aspectos más importantes de cada una de las transformaciones para dar una visión global sobre ello. Finalmente, describimos su aplicación en un ejemplo.

3.2. Transformación de entidades

Los elementos básicos del modelo ER son las entidades y las interre-laciones:

a) Las entidades, cuando se traducen al modelo relacional, originan re-laciones.

b) Las interrelaciones, en cambio, cuando se transforman, pueden dar lugar a claves foráneas de alguna relación ya obtenida o pueden dar lugar a una nueva relación.

Empezaremos el proceso transformando todas las entidades de un mo-delo ER adecuadamente. Cada entidad del momo-delo ER se transforma en una relación del modelo relacional. Los atributos de la entidad serán atributos de la relación y, de forma análoga, la clave primaria de la en-tidad será la clave primaria de la relación.

(36)

Ejemplo de transformación de una entidad

Según esto, la entidad de la figura del margen se transforma en la relación que tenemos a con-tinuación:

Si una entidad interviene en alguna interrelación binaria 1:1 o 1:N, puede ser

necesario añadir nuevos atributos a la relación obtenida a partir de la entidad. Estos atributos formarán claves foráneas de la relación.

3.3. Transformación de interrelaciones binarias

Para transformar una interrelación binaria es necesario tener en cuenta su co-nectividad, y si las entidades son obligatorias u opcionales en la interrelación.

3.3.1. Conectividad 1:1

Ejemplo de transformación de una interrelación binaria 1:1 EMPLEADO(DNI, NSS, nombre, apellido, sueldo)

Una vez transformadas todas las entidades en relaciones, es preciso trans-formar todas las interrelaciones en las que intervienen estas entidades.

Nuestro punto de partida es que las entidades que intervienen en la in-terrelación 1:1 ya se han transformado en relaciones con sus correspon-dientes atributos.

Entonces sólo será necesario añadir a cualquiera de estas dos relaciones una clave foránea que referencie a la otra relación.

(37)

Para la interrelación de la figura anterior, tenemos dos opciones de transformación:

• Primera opción:

• Segunda opción:

Ambas transformaciones nos permiten saber en qué ciudad hay una delegación, y qué dele-gación tiene una ciudad. De este modo, reflejan correctamente el significado de la interrela-ción situación del modelo ER.

En la primera transformación, dado que una delegación está situada en una sola ciudad, el atributo nombre-ciudad tiene un único valor para cada valor de la clave primaria {nombre-del}. Observad que, si pudiese tener varios valores, la solución no sería correcta según la teoría re-lacional.

En la segunda transformación, teniendo en cuenta que una ciudad tiene una sola delega-ción, el atributo nombre-del también toma un solo valor para cada valor de la clave primaria {nombre-ciudad}.

También es necesario tener en cuenta que, en las dos transformaciones, la clave foránea que se les añade se convierte en una clave alternativa de la relación porque no admite valores repetidos. Por ejemplo, en la segunda transformación no puede haber más de una ciudad con la misma delegación; de este modo, nombre-del debe ser diferente para todas las tuplas de CIUDAD.

3.3.2. Conectividad 1:N

Ejemplo de transformación de una interrelación binaria 1:N DELEGACIÓN(nombre-del, ..., nombre-ciudad)

donde {nombre-ciudad} referencia CIUDAD CIUDAD(nombre-ciudad, ...)

DELEGACIÓN(nombre-del, ...)

CIUDAD(nombre-ciudad, ..., nombre-del) donde {nombre-del} referencia DELEGACIÓN

(38)

La interrelación de la figura anterior se transforma en:

Esta solución nos permite saber en qué despacho está asignado cada empleado, y también nos permite consultar, para cada despacho, qué empleados hay. Es decir, refleja correctamen-te el significado de la incorrectamen-terrelación asignación.

Teniendo en cuenta que un empleado está asignado a un único despacho, el atributo desp tiene un valor único para cada valor de la clave primaria {emp}. Si hubiésemos puesto la clave foránea {emp} en la relación DESPACHO, la solución habría sido incorrecta, porque emp habría tomado varios valores, uno para cada uno de los distintos empleados que pue-den estar asignados a un despacho.

3.3.3. Conectividad M:N

Ejemplo de transformación de una interrelación binaria M:N

La interrelación de la figura anterior se transforma en:

Observad que la clave de evaluacion debe constar tanto de la clave de estudiante como de la clave de asignatura para identificar completamente la relación.

La solución que hemos presentado refleja correctamente la interrelación evaluación y su atri-buto nota. Permite saber, para cada estudiante, qué notas obtiene de las varias asignaturas y, para cada asignatura, qué notas tienen los diferentes estudiantes de aquella asignatura.

DESPACHO(desp, ...) EMPLEADO(emp, ..., desp)

donde {desp}referencia DESPACHO

Una interrelación M:N se transforma en una relación. Su clave primaria estará formada por los atributos de la clave primaria de las dos entidades interrelacionadas. Los atributos de la interrelación serán atributos de la nueva relación.

ESTUDIANTE(est, ...) ASIGNATURA(asig, ...) EVALUACIÓN(est,asig, nota)

(39)

En el caso M:N no podemos utilizar claves foráneas para transformar la inte-rrelación, porque obtendríamos atributos que necesitarían tomar varios valo-res, y esto no se permite en el modelo relacional.

3.3.4. Influencia de la dependencia de existencia

en la transformación de las interrelaciones binarias

La dependencia de existencia, o más concretamente, el hecho de que alguna de las entidades sea opcional en una interrelación se debe tener en cuenta al hacer la transformación de algunas relaciones binarias 1:1 y 1:N.

Ejemplo de transformación de una entidad opcional en la interrelación

En el ejemplo siguiente, la entidad departamento es opcional en dirección y, por lo tanto, pue-de haber empleados que no sean directores pue-de ningún pue-departamento.

En principio, hay dos opciones de transformación:

• Primera opción:

• Segunda opción:

La segunda transformación da lugar a una clave foránea que puede tomar valores nulos (por-que puede haber empleados (por-que no son directores de ningún departamento). Entonces será preferible la primera transformación, porque no provoca la aparición de valores nulos en la clave foránea y, de este modo, nos ahorra espacio de almacenamiento.

Si una de las entidades es opcional en la interrelación, y la transforma-ción ha consistido en poner una clave foránea en la relatransforma-ción que corres-ponde a la otra entidad, entonces esta clave foránea puede tomar valores nulos.

DEPARTAMENTO(dep, ..., emp-dir) donde {emp-dir} referencia EMPLEADO EMPLEADO(emp, ...)

DEPARTAMENTO(dep, ...) EMPLEADO(emp, ..., dep)

(40)

En las interrelaciones 1:N, el hecho de que la entidad del lado 1 sea opcional también provoca que la clave foránea de la transformación pueda tener valo-res nulos. En este caso, sin embargo, no se pueden evitar estos valovalo-res nulos porque hay una única transformación posible.

3.4. Transformación de interrelaciones ternarias

La transformación de las interrelaciones ternarias presenta similitudes impor-tantes con la transformación de las binarias M:N. No es posible representar la interrelación mediante claves foráneas, sino que es necesario usar una nueva relación. Para que la nueva relación refleje toda la información que modeliza la interrelación, es necesario que contenga las claves primarias de las tres en-tidades interrelacionadas y los atributos de la interrelación.

A continuación analizaremos cuál debe ser la clave primaria de la nueva rela-ción según la conectividad. Empezaremos por el caso M:N:P y acabaremos con el caso 1:1:1.

3.4.1. Conectividad M:N:P

Ejemplo de transformación de una interrelación ternaria M:N:P

Analizaremos la transformación con un ejemplo:

Así pues, la transformación de una interrelación ternaria siempre da lu-gar a una nueva relación, que tendrá como atributos las claves primarias de las tres entidades interrelacionadas y todos los atributos que tenga la interrelación. La clave primaria de la nueva relación depende de la co-nectividad de la interrelación.

(41)

La interrelación anterior se transforma en:

Para identificar completamente la relación, la clave debe constar de la clave de estudiante, de la clave de asignatura y de la clave de semestre. Si nos faltase una de las tres, la clave de la relación podría tener valores repetidos. Consideremos, por ejemplo, que no tuviésemos la clave de semestre. Dado que semestre está conectada con “muchos” en la interrelación, puede haber estudiantes que han sido evaluados de una misma asignatura en más de un semestre. Entonces, para estos casos habría valores repetidos en la clave de la relación EVALUACION-SEMESTRAL.

Observad que, del mismo modo que es necesaria la clave de semestre, también lo son la de estudiante y la de asignatura.

3.4.2. Conectividad M:N:1

Ejemplo de transformación de una interrelación ternaria M:N:1

Lo ilustraremos con un ejemplo:

Esta interrelación refleja los destinos que se dan a los maestros de escuela en los diferentes cursos. El 1 que figura en el lado de escuela significa que un maestro no puede ser destinado a más de una escuela en un mismo curso.

El ejemplo de la figura se transforma en: ESTUDIANTE(est, ...) ASIGNATURA(asig, ...) SEMESTRE(sem, ...)

EVALUACIÓN-SEMESTRAL(est, asig, sem, nota) donde {est} referencia ESTUDIANTE, {asig} referencia ASIGNATURA y {sem} referencia SEMESTRE

Cuando la conectividad de la interrelación es M:N:1, la relación que se obtiene de su transformación tiene como clave primaria todos los atri-butos que forman las claves primarias de las dos entidades de los lados de la interrelación etiquetados con M y con N.

MAESTRO(código-maestro, ...) CURSO(código-curso, ...) ESCUELA(código-esc, ...)

DESTINO(código-maestro, código-curso, código-esc) donde {código-maestro} referencia MAESTRO {código-curso} referencia CURSO

(42)

No es necesario que la clave incluya código-esc para identificar completamente la relación. Si se fijan un maestro y un curso, no puede haber más de una escuela de destino y, por lo tanto, no habrá claves repetidas.

3.4.3. Conectividad N:1:1

Así pues, hay dos posibles claves para la relación que se obtiene. Son dos claves candidatas entre las cuales el diseñador deberá escoger la primaria.

Ejemplo de transformación de una interrelación ternaria N:1:1

Veamos un ejemplo de ello:

1)Una posible transformación es la siguiente:

En este caso, la clave, a pesar de no incluir el atributo asig, identifica completamente la rela-ción porque para una hora-semanal y un aula determinadas hay una única asignatura de la que se hace clase a esa hora y en esa aula.

2) La segunda transformación posible es esta otra:

Cuando la conectividad de la interrelación es N:1:1, la relación que se consigue de su transformación tiene como clave primaria los atributos que forman la clave primaria de la entidad del lado N y los atributos que forman la clave primaria de cualquiera de las dos entidades que están conectadas con 1.

HORA-SEMANAL(código-hora, ...) AULA(código-aula, ...)

ASIGNATURA(asig, ...)

CLASE (código-hora, código-aula, asig, duración) donde {código-hora} referencia HORA-SEMANAL, {código-aula} referencia AULA

y {asig} referencia ASIGNATURA

HORA-SEMANAL(código-hora, ...) AULA(código-aula, ...)

ASIGNATURA(asig, ...)

CLASE (código-hora, código-aula, asig, duración) donde {código-hora} referencia HORA-SEMANAL, {código-aula} referencia AULA

(43)

Ahora la clave incluye el atributo asig y, en cambio, no incluye el atributo código-aula. La re-lación también queda completamente identificada porque, para una asignatura y hora-sema-nal determinadas, de aquella asignatura se da clase en una sola aula a aquella hora.

3.4.4. Conectividad 1:1:1

Así pues, hay tres claves candidatas para la relación.

Ejemplo de transformación de una interrelación ternaria 1:1:1

Veamos un ejemplo de ello:

Esta interrelación registra información de defensas de proyectos de fin de carrera. Intervienen en ella el estudiante que presenta el proyecto, el proyecto presentado y el tribunal evaluador.

La transformación del ejemplo anterior se muestra a continuación:

Para la nueva relación DEFENSA, tenemos las tres posibilidades siguientes:

• Primera opción:

• Segunda opción:

Cuando la conectividad de la interrelación es 1:1:1, la relación que se obtiene de su transformación tiene como clave primaria los atributos que forman la clave primaria de dos entidades cualesquiera de las tres interrelacionadas.

TRIBUNAL(trib, ...) ESTUDIANTE(est, ...)

PROYECTO-FIN-CARRERA(pro, ...)

DEFENSA(trib, est, pro, fecha-defensa) donde {trib} referencia TRIBUNAL, {est} referencia ESTUDIANTE

y {pro} referencia PROYECTO-FIN-CARRERA

DEFENSA(trib, pro, est, fecha-defensa) donde {trib} referencia TRIBUNAL, {est} referencia ESTUDIANTE

y {pro} referencia PROYECTO-FIN-CARRERA

Hemos considerado que, …

(44)

• Tercera opción:

En los tres casos, es posible comprobar que la clave identifica completamente la relación si se tiene en cuenta la conectividad de la interrelación defensa.

3.5. Transformación de interrelaciones n-arias

La transformación de las interrelaciones n-arias se puede ver como una gene-ralización de lo que hemos explicado para las ternarias.

Podemos distinguir los casos siguientes:

a) Si todas las entidades están conectadas con “muchos”, la clave primaria de la nueva relación estará formada por todos los atributos que forman las claves de las n entidades interrelacionadas.

b) Si una o más entidades están conectadas con “uno”, la clave primaria de la nueva relación estará formada por las claves de n – 1 de las entidades interre-lacionadas, con la condición de que la entidad, cuya clave no se ha incluido, debe ser una de las que está conectada con “uno”.

3.6. Transformación de interrelaciones recursivas

Las transformaciones de las interrelaciones recursivas son similares a las que hemos visto para el resto de las interrelaciones.

DEFENSA(est, pro, trib, fecha-defensa) donde {trib} referencia TRIBUNAL, {est} referencia ESTUDIANTE

y {pro} referencia PROYECTO-FIN-CARRERA

En todos los casos, la transformación de una interrelación n-aria consis-tirá en la obtención de una nueva relación que contiene todos los atribu-tos que forman las claves primarias de las n entidades interrelacionadas y todos los atributos de la interrelación.

Referencias

Documento similar

U-Ranking cuenta con la colaboración del Ministe- rio de Universidades, al permitirnos el acceso al Sistema Integrado de Información Universitaria (SIIU). El SIIU es

El valor agregado 6 del indicador por universidad se pre- senta en una escala de 0 (mínimo valor obtenido por una universidad del sistema en ese indicador) a 100 (correspondiente

Ambos conjuntos tienen igual número de elementos, dado que existe entre ellos la siguiente correspondencia biunívoca: (a,b,c,d,e,f) <-> (a,b-1,c-2,d-3,e-4,f-5) dónde

Cuando se realiza una revisión integrativa entorno a un tema como el de la sintomatología presente en los pacientes con enfermedad oncológica avanzada, que motivan el

 Clave ajena: sus valores deben coincidir con los de la clave primaria de otra relación  representa una relación entre datos a modo de referencia. 

BASES DE DATOS (IG18 Semipresencial) Diseño Físico de Bases de Datos Relacionales.. Lledó Museros /

Introducción a las Bases de Datos: Sistemas de Bases de Datos frente a Sistemas de Ficheros.. Lledó Museros /

Cuando la elección del usuario sea la de diseño, el programa se desplazará hasta la hoja siguiente la cual está destinada a la introducción de los datos más importantes para el