El modelo Entidad-relaci´on Juan Ignacio Rodr´ıguez de Le´on
Resumen Presenta el modelo entidad-relaci´on. Visi´on de alto nivel de las cuestiones referentes a dise˜ no de bases de datos y los problemas encontrados al intentar reflejar la sem´antica de aplicaciones reales dentro de los confines de un modelo de datos. Conceptos b´asicos. Restricciones. Claves. Cuestiones de dise˜ no. Diagrama entidad-relaci´on. Conjuntos de entidades d´ebiles. Caracter´ısticas del modelo E-R extendido. Dise˜ no de un esquema de base de datos E-R. Reducci´on de un esquema E-R a tablas. El lenguaje de modelado unificado UML
0.1.
´ CONCEPTOS BASICOS
Este modelo representa el mundo real mediante una colecci´on de objetos b´asicos, que denominamos entidades, y las relaciones entre estos objetos. 0.1.1.
Conjunto de entidades
Una entidad es cualquier cosa o parte del mundo que es distinguible del resto. Por ejemplo, en un sistema bancario, las personas y las cuentas bancarias se podr´ıan interpretar como entidades. Las entidades pueden representar entes concretos, como una persona o un avi´on, o abstractas, como por ejemplo un pr´estamo o una reserva. El conjunto de todas las entidades del mismo tipo se denomina conjunto de entidades. Las entidades del mismo tipo tienen todas los mismos atributos. Las entidades tienen un conjunto de propiedades, que se denomina atributos (por ejemplo, n´ umero de cuenta, saldo y fecha de alta pueden ser atributos de la entidad cuenta). Cada entidad tiene un valor en cada uno de sus atributos. Habitualmente uno o m´as atributos sirven para identificar un´ıvocamente una entidad. Por ejemplo, el n´ umero de la Seguridad Social podr´ıa servir para identificar de manera un´ıvoca a una persona 1 . Un atributo, usado en un modelo E-R, se puede caracterizar por los siguientes tipos de atributos. 1
Y de hecho as´ı lo hace, en los sistemas inform´ aticos de la seguridad social (El NIF no se debe utilizar, debido a problemas como la existencia de n´ umeros duplicados, entre otros).
1
2 Atributos simples y compuestos. Los atributos simples no est´an divididos en subpartes, los compuestos si. Un ejemplo de atributo compuesto podr´ıa ser fecha, que se subdividir´ıa en fecha.dia, fecha.mes y fecha.anio. Los atributos compuestos ayudan a agrupar los atributos relacionados, haciendo el modelo m´as claro. Las subpartes de un atributo complejo no tienen por que ser atributos simples, pueden ser a su vez atributos complejos, formando una jerarqu´ıa. Atributos monovalorados y multivalorados. Los atributos que solo pueden tener un u ´nico valor se denominan monovalorados. Los que pueden tener simult´aneamente m´as de un valor se denominan multivalorados. Como ejemplo de un atributo multivalorado consid´erese el atributo tel´efono, que podr´ıa tener 0, 1 o N valores. Se pueden definir restricciones, tanto en el l´ımite inferior como en el l´ımite superior de los posibles valores simult´aneos. Atributos derivados. Se denomina atributo derivado a aquel cuyo valor puede ser obtenido de los valores de otros atributos o entidades relacionadas. Por ejemplo, el atributo nombre completo podr´ıa obtenerse de loa atributos nombre, primer apellido y segundo apellido. El valor de un atributo derivado normalmente no se almacena, sino que se calcula cuando sea necesario. Un atributo toma el valor nulo (NULL) cuando no tiene ning´ un valor, o cuando el valor del atributo se desconoce, ya sea porque est´a perdido (El valor existe pero se ignora cual es) o desconocido (no se sabe si el valor existe o no). El valor nulo tambi´en puede indicar “no aplicable”. 0.1.2.
Conjuntos de relaciones
Una relaci´ on es una asociaci´on entre varias entidades, y el conjunto de todas las relaciones del mismo tipo se denominan conjunto de relaciones. Formalmente, es una relaci´on matem´atica entre n conjuntos de entidades, siendo n ≥ 2. Sea E1 , E2 , . . . , En conjuntos de entidades, el conjunto de relaciones R es un subconjunto de: {(e1 , e2 , . . . , en )|e1 ∈ E1 , e2 ∈ E2 , . . . , en ∈ En } donde (e1 , e2 , . . . , en ) es una relaci´on. La asociaci´on entre conjuntos de entidades se conoce como participaci´ on, es decir, los conjuntos de entidades E1 , E2 , . . . , En participan en el conjunto de relaciones R. La funci´on que realiza una entidad en una relaci´on se llama papel de la entidad. Los papeles son u ´tiles cuando se necesita aclarar el significado
3 de una relaci´on.Un ejemplo podr´ıa ser cuando una entidad participa m´as de una vez en una relaci´on (conjunto de relaciones recursivo). En este caso es m´as claro hacer expl´ıcitos los papeles. Por ejemplo, consid´erese una conjunto de entidades empleado que almacena informaci´on acerca de todos los empleados del banco. Se puede tener un conjunto de relaciones trabaja-para que se modela mediante pares ordenados de entidades empleado. El primer empleado de un par toma el papel de trabajador, mientras el segundo toma el papel de jefe. Una relaci´on puede tener tambi´en atributos descriptivos. No obstante, Un ejemplar de relaci´on en un conjunto de relaciones determinado debe ser identificado un´ıvocamente a partir de sus entidades participantes, sin usar los atributos descriptivos. El n´ umero de conjuntos de entidades que participan en un conjunto de relaciones se denomina grado. La mayor parte de las relaciones en las bases de datos son binarias, es decir, de grado 2, pero ocasionalmente pueden aparecer conjuntos de relaciones en las cuales participan 3 o m´as conjuntos de entidades.
0.2.
Restricciones
Un modelo E-R puede definir ciertas restricciones que los contenidos de la base de datos deben acatar. 0.2.1.
Correspondencia de cardinalidades
La correspondencia de cardinalidades, o raz´ on de cardinalidad, expresa el n´ umero de entidades a las que otra entidad puede estar asociada v´ıa un conjunto de relaciones. Para un conjunto de relaciones binarias R entre los conjuntos de entidades A y B, la correspondencia de cardinalidades debe ser una de las siguientes: Uno a uno. Una entidad en A se asocia con a lo sumo una entidad en B, y una entidad en B se asocia con a lo sumo una entidad en A Uno a varios. Una entidad en A se asocia con cualquier n´ umero de entidades en B (ninguna, una o varias). Una entidad en B, sin embargo, se puede asociar con a lo sumo una entidad en A Varios a uno. Una entidad en A se asocia con a lo sumo una entidad en B. Una entidad en B, sin embargo, se puede asociar con cualquier n´ umero de entidades (ninguna o varias) en A. (Es la misma que la anterior, vista desde el otro extremo).
4 Varios a varios. Una entidad en A se asocia con cualquier n´ umero de entidades (ninguna o varias) en B, y una entidad en B se asocia con cualquier n´ umero de entidades (ninguna o varias) en A 0.2.2.
Restricciones de participaci´ on
La participaci´on de un conjunto de entidades E en un conjunto de relaciones R se dice que es total si cada entidad en E participa al menos en una relaci´on en R. Si s´olo algunas entidades en E participan en relaciones en R, la participaci´on del conjunto de entidades E en la relaci´on R se llama parcial.
0.3.
Claves
Es necesario tener una forma de identificar un´ıvocamente a la entidad. Para ello utilizaremos uno o varios atributos para formar una clave que nos permite distinguir las entidades entre s´ı. Dos entidades diferentes tendr´an, por tanto, claves diferentes. 0.3.1.
Conjuntos de entidades
Una superclave es un conjunto de uno o m´as atributos que, tomados colectivamente, permiten identificar de forma u ´nica una entidad en el conjunto de entidades. El concepto de una superclave no es suficiente para lo que aqu´ı se propone, ya que, como se ha visto, una superclave puede contener atributos innecesarios. Tal y como se ha definido, si K es una superclave, tambi´en lo es cualquier superconjunto de K. A menudo interesan las superclaves tales que los subconjuntos propios de ellas no son superclave. Tales superclaves m´ınimas se llaman claves candidatas. Pueden existir distintas claves candidatas. Se denominar´a clave primaria a aquella clave candidata que es elegida por el dise˜ nador de la base de datos como identificar principal. La clave primaria se deber´ıa elegir de manera que sus atributos nunca, o muy raramente, cambien. 0.3.2.
Conjuntos de relaciones
De igual manera que se defini´o una clave primaria para las entidades, se hace necesario definir un mecanismo similar para las relaciones. Sea R un conjunto de relaciones que involucra los conjuntos de entidades E1 , E2 , . . . , En , y sea clave prim(Ei) el conjunto de atributos que forma la clave primaria del conjunto de entidades Ei .
5 As´ umase, por el momento, que los nombres de los atributos de todas las claves primarias son u ´nicos y que cada conjunto de entidades participa s´olo una vez en la relaci´on. Si el conjunto de relaciones R no tiene atributos asociados, entonces el conjunto de atributos: clave prim(E1 ) ∪ clave prim(E2 ) ∪ . . . ∪ clave prim(En ) Identifica de forma univoca a una relaci´on individual en el conjunto R. Dicho de otra forma, la combinaci´on de las claves primarias de las entidades relacionadas forman la clave de la relaci´on. Si el conjunto de relaciones R tiene atributos a1 , a2 , . . . , am , asociados a ´el, entonces el conjunto de atributos: clave prim(E1 ) ∪ clave prim(E2 ) ∪ . . . ∪ clave prim(En ) ∪ {a1 , a2 , . . . , am } Describe una relaci´on individual en el conjunto R. En ambos casos, la clave primaria ser´a la misma. En el caso de que los nombres de atributos de las claves primarias no sean u ´nicos en todos los conjuntos de entidades, los atributos se renombran para distinguirlos. Si un conjunto de entidades participe m´as de una vez en un conjunto de relaciones se usa el nombre del papel en lugar del nombre del conjunto de entidades para formar un nombre u ´nico de atributo.
0.4.
Cuestiones de dise˜ no
A la hora de realizar un primer dise˜ no, la primera pregunta que surge es decidir que representaremos como entidades y que representaremos como atributos. No hay respuestas simples. Las distinciones depender´an de la estructura del problema que se est´e modelando y de la sem´antica asociada con el atributo en cuesti´on. Un error com´ un es usar la clave primaria de un conjunto de entidades como un atributo de otro conjunto de entidades, en lugar de usar una relaci´on. Por ejemplo, modelar id cliente como un atributo de pr´ estamo es incorrecto, incluso si cada pr´estamo tiene s´olo un cliente. Se debe hacer la conexi´on expl´ıcita, usando una relaci´on, en lugar de impl´ıcita, mediante un atributo. Otro error relacionado que se comete es incluir los atributos de la clave primaria de las entidades relacionados dentro del conjunto de relaciones. Esto no se deber´ıa hacer, ya que los atributos de la clave primaria son ya impl´ıcitos en la relaci´on. 0.4.1.
Uso de conjuntos de entidades o conjuntos de relaciones
una buena raz´on para elevar un atributo a la categor´ıa de entidad es detectar que determinados datos se almacenan varias veces. Esto es con-
6 traproducente, por dos razones: por el aumento de consumo de espacio de almacenamiento y, aun m´as grave, por que abre la posibilidad de que los datos est´en en un estado inconsistente, pudiendo tener diferentes valores un atributo que solo deber´ıa tener uno. 0.4.2.
Conjuntos de relaciones binarias o n-arias
Las relaciones en las bases de datos son generalmente binarias. De hecho, siempre es posible reemplazar un conjunto de relaciones no binarias (n-aria, para n > 2) por varios conjuntos de relaciones binarias. Algunas relaciones que parecen no ser binarias podr´ıan ser representadas mejor con varias relaciones binarias. Sin embargo, esta restricci´on no siempre es deseable. Un atributo de identificaci´on puede haber sido creado para el conjunto de entidades para representar el conjunto de relaciones. Este atributo, con los conjuntos de relaciones extra necesarios, incrementa la complejidad del dise˜ no y los requisitos de almacenamiento. Un conjunto de relaciones n-arias muestra m´as claramente que varias entidades participan en una relaci´on simple. Podr´ıa no haber una forma de traducir restricciones en la relaci´on ternaria en restricciones sobre relaciones binarias. Por ejemplo, consid´erese una restricci´on que dice que R es varios a uno de A, B a C; es decir, cada par de entidades de A y B se asocia con a lo sumo una entidad C. Esta restricci´on no se puede expresar usando restricciones de cardinalidad sobre los conjuntos de relaciones RA, RB y RC. 0.4.3.
Ubicaci´ on de los atributos de las relaciones
Los atributos de los conjuntos de relaciones uno a uno o uno a varios pueden estar asociados con uno de los conjuntos de entidades participantes, en lugar de con el conjunto de relaciones. Para los conjuntos de entidades uno a uno, los atributos de la relaci´on se pueden asociar con cualquiera de las entidades participantes. Por otra parte, Los atributos de un conjunto de relaciones uno a varios se pueden colocar s´olo en el conjunto de entidades de la parte ((varios)) de la relaci´on. Para relaciones varios a varios, si el atributo se determina mediante la combinaci´on de los conjuntos de entidades participantes, no se presenta ning´ un dilema, el atributo deber´a ir obligatoriamente en el conjunto de relaciones
7
Figura 1: Diagrama Entidad-Relaci´on correspondiente a clientes y pr´estamos
0.5.
Diagrama entidad-relaci´ on
Veremos ahora con mayor detalle los diagramas entidad-relaci´on o diagramas E-R que se presentaron en el tema 1. Los diagramas E-R se representan usando los siguientes componentes: s´ımbolos Rect´angulos Elipses Rombos L´ıneas
Elipses dobles Elipses discontinuas L´ıneas dobles Rect´angulos dobles
Representan Conjuntos de entidades Atributos Relaciones entre conjuntos de entidades Unen a los atributos con los conjuntos de entidades, y los conjuntos de entidades con las relaciones Atributos multivalorados Atributos derivados Participaci´on total de una entidad en un conjunto de relaciones Conjuntos de entidades d´ebiles
Consid´erese el diagrama E-R de la figura 1.
Los atributos de un conjunto de entidades que son miembros de la clave primaria est´an subrayados. El conjunto de relaciones prestatario puede ser varios a varios, uno a varios, varios a uno o uno a uno. Para distinguir entre estos tipos, se dibuja o una l´ınea dirigida (→) o una l´ınea no dirigida (—). Una l´ınea dirigida desde el conjunto de relaciones prestatario al conjunto de entidades pr´estamo especifica que prestatario es un conjunto de relaciones
1
´ CONJUNTOS DE ENTIDADES DEBILES
8
uno a uno, o bien varios a uno, desde cliente a pr´estamo; prestatario no puede ser un conjunto de relaciones varios a varios ni uno a varios, desde cliente a pr´estamo Por tanto, el esquema: @ @ @ −→ pr´ estamo
Cliente — @
@ @
Significa que un pr´estamo puede haber sido concedido a uno o a varios clientes, pero que un cliente s´olo puede tener asignado uno o ning´ un pr´estamo (Donde est´a la punta de la flecha solo puede haber uno). Si un conjunto de relaciones tiene tambi´en algunos atributos asociados a ´el, entonces se unen esos atributos a ese conjunto de relaciones. En los diagramas E-R se indican papeles mediante etiquetas en las l´ıneas que unen rombos con rect´angulos Los conjuntos de relaciones no binarias se pueden especificar f´acilmente en un diagrama E-R. En el diagrama E-R se usan las l´ıneas dobles para indicar que la participaci´on de un conjunto de entidades en un conjunto de relaciones es total ; es decir, cada entidad en el conjunto de entidades aparece al menos en una relaci´on en ese conjunto de relaciones. Los diagramas E-R tambi´en proporcionan una forma de indicar restricciones m´as complejas sobre el n´ umero de veces en que cada entidad participa en las relaciones de un conjunto de relaciones. Un segmento entre un conjunto de entidades y un conjunto de relaciones binarias puede tener una cardinalidad m´ınima y m´axima, mostrada de la forma m´ın..m´ax, donde m´ın es la m´ınima cardinalidad y m´ax es la m´axima. Un valor m´ınimo de 1 indica una participaci´on total del conjunto de entidades en el conjunto de relaciones. Un valor m´aximo de 1 indica que la entidad participa de a lo sumo una relaci´on, mientras que un valor m´aximo de * indica que no hay l´ımite. N´otese que una etiqueta 1..* en un segmento es equivalente a una l´ınea doble.
1.
Conjuntos de entidades d´ ebiles
Un conjunto de entidades puede no tener suficientes atributos para formar una clave primaria. Tal conjunto de entidades se denomina conjunto de entidades d´ebiles. Un conjunto de entidades que tiene una clave primaria se denomina conjunto de entidades fuertes. Para que un conjunto de entidades d´ebiles tenga sentido, debe estar asociada con otro conjunto de entidades, denominado el conjunto de entidades identificadoras o propietarias. Cada entidad d´ebil debe estar asociada con una entidad identificadora; es decir, se dice que el conjunto de entidades
2
CARACTER´ISTICAS DEL MODELO E-R EXTENDIDO
9
d´ebiles depende existencialmente del conjunto de entidades identificadoras. Se dice que el conjunto de entidades identificadoras es propietaria del conjunto de entidades d´ebiles que identifica. La relaci´on que asocia el conjunto de entidades d´ebiles con el conjunto de entidades identificadoras se denomina relaci´ on identificadora. La relaci´on identificadora es varios a uno del conjunto de entidades d´ebiles al conjunto de entidades identificadoras y la participaci´on del conjunto de entidades d´ebiles en la relaci´on es total. Ejemplos t´ıpicos de entidades fuertes y d´ebiles ser´ıan facturas y l´ıneas de factura, o prestamos y pagos. Para distinguir entre si a las entidades d´ebiles que dependen de una entidad fuerte se usa un discriminante, que ser´a un conjunto de atributos que permite diferenciar una entidad d´ebil de otra (Por ejemplo, el atributo n´ umero de linea en l´ınea de factura). El discriminante de un conjunto de entidades d´ebiles se denomina la clave parcial del conjunto de entidades La clave primaria de un conjunto de entidades d´ebiles se forma con la clave primaria del conjunto de entidades identificadoras, m´as la clave parcial del conjunto de entidades d´ebiles. (Por ejemplo, en el caso de las facturas, n´ umero de factura y n´ umero de l´ınea) Un conjunto de entidades d´ebiles se indica en los diagramas E-R mediante un rect´angulo dibujado con una l´ınea doble, y la correspondiente relaci´on de identificaci´on, mediante un rombo dibujado tambi´en con l´ınea doble. El discriminante del conjunto de entidades d´ebiles tambi´en est´a subrayado, pero con un l´ınea discontinua, en lugar de una continua. En algunos casos, el dise˜ nador de la base de datos puede elegir expresar un conjunto de entidades d´ebiles como un atributo compuesto multivalorado del conjunto de entidades propietarias.
2.
Caracter´ısticas del modelo E-R extendido
Existe una extensi´on del modelo E-R, el llamado Modelo E.R Extendido, que permite modelar ciertas caracter´ısticas de forma m´as sencilla. Estas caracter´ısticas son la especializaci´on/generalizaci´on y la agregaci´on.
2.1.
Especializaci´ on
Un conjunto de entidades puede incluir subgrupos de entidades que son similares entre si. Cada subgrupo se diferencia en algo de las otros. Por ejemplo, Consid´erese el conjunto de entidades persona con atributos nombre, calle y ciudad. Una persona puede clasificarse adem´as como cliente o empleado. Estos dos tipos de persona se describen mediante un conjunto de atributos que incluyen los atributos del conjunto de entidades persona y adem´as otros posibles atributos adicionales. Por ejemplo, las entidades cliente pueden a˜ nadir el atributo id-cliente, mientras que las entidades empleado podr´ıan a˜ nadir id-empleado y sueldo.
2
CARACTER´ISTICAS DEL MODELO E-R EXTENDIDO
10
El proceso de clasificaci´on de subgrupos dentro de un conjunto de entidades se denomina especializaci´ on. Se puede aplicar repetidamente la especializaci´on para refinar el esquema de dise˜ no. En t´erminos de un diagrama E-R, la especializaci´on se representa mediante un componente triangular etiquetado ES (por ejemplo, un empleado ES una persona. La relaci´on ES se puede llamar tambi´en relaci´on superclasesubclase. Los conjuntos de entidades de nivel m´as alto y m´as bajo se representan como conjuntos de entidades regulares, es decir, como rect´angulos que contienen el nombre del conjunto de entidades.
2.2.
Generalizaci´ on
Para todos los prop´ositos pr´acticos, la generalizaci´on es una inversi´on simple de la especializaci´on. En t´erminos del propio diagrama E-R no se distingue entre especializaci´on y generalizaci´on. La u ´nica diferencia es el punto de vista usado al realizar el dise˜ no o, en otros palabras, el punto de partida y el objetivo final.
2.3.
Herencia de atributos
Los atributos de los conjuntos de entidades de nivel m´as alto se dice que son heredados por los conjuntos de entidades de nivel m´as bajo. En el ejemplo anterior, cliente y empleado heredan los atributos de persona. El resultado final de una generalizaci´on/especializaci´on es: Un conjunto de entidades de nivel m´as alto con atributos y relaciones que se aplican a todos los conjuntos de entidades de nivel m´as bajo. Conjuntos de entidades de nivel m´as bajo con caracter´ısticas distintivas que se aplican s´olo en un conjunto de entidades particular. Las relaciones entre las superclases y las subclases pueden ser jer´ arquicas (Si se permite a una subclase derivar de una u ´nica superclase, de forma que u ´nicamente pueden formar un ´arbol) o reticulares (Si se permite herencia m´ ultiple, es decir, una subclase puede derivar de varias superclases)
2.4.
Restricciones sobre las generalizaciones
Para modelar una empresa m´as exactamente, el dise˜ nador de la base de datos puede establecer ciertas restricciones en una generalizaci´on particular. Un tipo de restricci´on implica determinar qu´e entidades pueden ser miembros de un conjunto de entidades de nivel m´as bajo dado. Tales relaciones de miembros pueden ser algunas de los siguientes: Definido por condici´ on. En los conjuntos de entidades de nivel m´as bajo, la relaci´on miembro se eval´ ua en funci´on de si una entidad satisface
2
CARACTER´ISTICAS DEL MODELO E-R EXTENDIDO
11
o no una condici´on expl´ıcita o predicado. Por ejemplo, todas las entidades persona se pueden evaluar utilizando atributo tipo-persona. S´olo aquellas entidades que satisfagan la condici´on tipo-persona = ((cliente)) podr´an pertenecer al conjunto de entidades cliente. Como todas las entidades de nivel m´as bajo se eval´ uan en funci´on del valor del mismo atributo, este tipo de generalizaci´on se denomina definido por atributo. Definido por el usuario. Los conjuntos de entidades de nivel m´as bajo definidos por el usuario no est´an restringidos mediante una condici´on de miembro; en cambio, las entidades se asignan expl´ıcitamente a un conjunto de entidades dado por el usuario de la base de datos. Las asignaci´on se implementa mediante una operaci´on que a˜ nade una entidad a un conjunto de entidades. Un segundo tipo de restricciones se define seg´ un si las entidades pueden pertenecer o no a m´as de un conjunto de entidades de nivel inferior. As´ı, los conjuntos de entidades pueden ser Disjunto. Una entidad s´olo pertenece a un conjunto de entidades de nivel m´as bajo (Una persona solo puede ser cliente o empleado). Solapado. Una misma entidad puede pertenecer a m´as de un conjunto de entidades de nivel m´as bajo (Una persona puede ser simult´aneamente cliente y empleado) Se puede identificar una restricci´on sobre el car´acter disjunto en un diagrama E-R a˜ nadiendo la palabra disjunto en el s´ımbolo del tri´angulo. Una restricci´on final, la restricci´ on de completitud , especifica si un conjunto de entidades de nivel m´as alto debe pertenecer o no al menos a uno de los conjuntos de entidades de nivel m´as bajo. Esta restricci´on de la Generalizaci´on o especializaci´on puede ser: Total . Cada entidad de nivel m´as alto debe pertenecer a un conjunto de entidades de nivel m´as bajo (toda persona es cliente o empleado). Parcial . Algunas entidades de nivel m´as alto pueden no pertenecer a alg´ un conjunto de entidades de nivel m´as bajo. (Pueden existir entidades persona que no sean ni cliente ni empleado) La generalizaci´on parcial es la predeterminada. Se puede especificar una generalizaci´on total en un diagrama E-R usando una l´ınea doble para conectar el rect´angulo que representa el conjunto de entidades de nivel m´as alto con el s´ımbolo del tri´angulo (esta notaci´on es similar a la notaci´on de participaci´on total en una relaci´on)
2
CARACTER´ISTICAS DEL MODELO E-R EXTENDIDO
12
Figura 2: Participaci´on total de un conjunto de entidades en un conjunto de relaciones.
ciertos requisitos de inserci´on y borrado son consecuencia de las restricciones que se aplican a una generalizaci´on o especializaci´on dada. Por ejemplo, con una restricci´on de completitud total, una entidad insertada en un conjunto de entidades de nivel m´as alto se debe insertar en al menos uno de los conjuntos de entidades de nivel m´as bajo.
2.5.
Agregaci´ on
Una limitaci´on del modelo E-R es que no resulta posible expresar relaciones entre relaciones. Para ilustrar la necesidad de tales construcciones consid´erese las entidades empleado, sucursal y trabajo, y la relaci´on ternaria trabaja-en (V´ease figura 2)
Sup´ongase ahora que se desean registrar los directores para las tareas realizadas por un empleado en una sucursal; es decir, se desean registrar directores por combinaciones (empleado, sucursal, trabajo). As´ umase que existe una entidad director. Una alternativa para representar esta relaci´on es crear una nueva relaci´on cuaternaria -dirige- entre empleado, sucursal, trabajo y director (se necesita una relaci´on cuaternaria; una relaci´on binaria entre director y empleado no permitir´ıa representar las combinaciones [sucursal, trabajo] de un empleado que est´an dirigidas por un director) Parece que los conjuntos de relaciones trabaja-en y dirige se pueden combinar en un u ´nico conjunto de relaciones. No obstante, no se deber´ıan combinar, dado que algunas combinaciones empleado, sucursal, trabajo pueden no tener director. Si no se combinan, por otro lado, obtenemos informaci´on redundante, ya que cada combinaci´on empleado, sucursal, trabajo en dirige tambi´en lo est´a en trabaja-en. La mejor forma de modelar una situaci´on como ´esta es usar la agregaci´on. La agregaci´ on es una abstracci´on a trav´es de la cual las relaciones se tratan
2
CARACTER´ISTICAS DEL MODELO E-R EXTENDIDO
13
Figura 3: Diagrama E-R con agregaci´on
como entidades de nivel m´as alto. As´ı, para este ejemplo, se considera el conjunto de relaciones trabaja-en (que relaciona los conjuntos de entidades empleado, sucursal y trabajo) como un conjunto de entidades de nivel m´as alto denominado trabaja-en. Ahora se puede crear una relaci´on binaria dirige entre trabaja-en y director para representar qui´en dirige las tareas. La representaci´on en el modelo E-R consiste en agrupar las entidades y la relaci´on entre ellas dentro de un rect´angulo, como si fuera una entidad en si misma, tal y como se ve en la figura 3.
2.6.
Fases de dise˜ no
La fase inicial del dise˜ no de bases de datos es caracterizar completamente las necesidades de datos esperadas por los usuarios de la misma. El resultado de esta fase es una especificaci´ on de requisitos del usuario. A continuaci´on, el dise˜ nador elige un modelo de datos y, aplicando los conceptos del modelo de datos elegido, traduce estos requisitos a un esquema conceptual de la base de datos.En t´erminos del modelo E-R, el esquema
3
´ DE UN ESQUEMA E-R A TABLAS REDUCCION
14
especifica todos los conjuntos de entidades, conjuntos de relaciones, atributos y restricciones de correspondencia. El dise˜ nador revisa el esquema para confirmar que todos los requisitos de datos se satisfacen realmente y no hay conflictos entre s´ı. Tambi´en se examina el dise˜ no para eliminar caracter´ısticas redundantes. Lo importante en este punto es describir los datos y las relaciones, m´as que especificar detalles del almacenamiento f´ısico. Un esquema conceptual indicar´a tambi´en los requisitos funcionales de la empresa. En una especificaci´on de requisitos funcionales los usuarios describen los tipos de operaciones (o transacciones) que se realizar´an sobre los datos. El proceso de trasladar un modelo abstracto de datos a la implementaci´on de la base de datos consta de dos fases de dise˜ no finales. En la fase de dise˜ no l´ogico, el dise˜ nador traduce el esquema conceptual de alto nivel al modelo de datos de la implementaci´on del sistema de base de datos que se usar´a. El dise˜ nador usa el esquema resultante espec´ıfico a la base de datos en la siguiente fase de dise˜ no f´ısico, en la que se especifican las caracter´ısticas f´ısicas de la base de datos.
3.
Reducci´ on de un esquema E-R a tablas
Un modelo de datos E-R se puede representar por una colecci´on de tablas. Para cada conjunto de entidades de la base de datos y para cada conjunto de relaciones de la base de datos hay una u ´nica tabla a la que se asigna el nombre del conjunto de entidades o del conjunto de relaciones correspondiente.
3.1.
Representaci´ on tabular de los conjuntos de entidades fuertes
Sea E un conjunto de entidades fuertes con los atributos descriptivos a1 , a2 , . . . , an . Esta entidad se representa mediante una tabla llamada E con n columnas distintas, cada una de las cuales corresponde a uno de los atributos de E. Cada fila de la tabla corresponde a una entidad de E.
3.2.
Representaci´ on tabular de los conjuntos de entidades d´ ebiles
Sea A un conjunto de entidades d´ebiles con los atributos a1 , a2 , . . . , am . Sea B el conjunto de entidades fuertes del que A depende. Si la clave primaria de B es el conjunto de atributos b1 , b2 , . . . , bn , se representar´a el conjunto de entidades A mediante una tabla llamada A con una columna por cada uno de los atributos del conjunto:
3
´ DE UN ESQUEMA E-R A TABLAS REDUCCION
15
{a1 , a2 , . . . , an } ∪ {b1 , b2 , . . . bm }
3.3.
Representaci´ on tabular de los conjuntos de relaciones
Sea R un conjunto de relaciones, sean a1 , a2 , . . . , am el conjunto de atributos formados por la uni´on de las claves primarias de cada uno de los conjuntos de entidades que participan en R, y sean b1 , b2 , . . . , bn los atributos descriptivos de R (si los hay). El conjunto de relaciones se representa mediante una tabla llamada R con una columna por cada uno de los atributos del conjunto: {a1 , a2 , . . . , am } ∪ {b1 , b2 , . . . bn } 3.3.1.
Redundancia de tablas
Las relaciones entre entidades fuertes y d´ebiles son un caso especial. En general, la tabla para el conjunto de relaciones que une un conjunto de entidades d´ebiles con su correspondiente conjunto de entidades fuertes es redundante y no necesita estar presente en una representaci´on tabular de un diagrama E-R. Esto se debe a que estas relaciones no tienen atributos descriptivos y ,adem´as, la clave primaria del conjunto de entidades d´ebiles incluye la clave primaria del conjunto de entidades fuertes. 3.3.2.
Combinaci´ on de tablas
Consid´erese un conjunto AB de relaciones varios a uno del conjunto de entidades A al conjunto de entidades B. Usando el esquema de construcci´on de tablas descrito previamente se consiguen tres tablas: A, B y AB. Sup´ongase adem´as que la participaci´on de A en la relaci´on es total; es decir, cada entidad a en el conjunto de entidades A debe participar en la relaci´on AB. Entonces se pueden combinar las tablas A y AB para formar una u ´nica tabla consistente en la uni´on de las columnas de ambas tablas.
3.4.
Atributos multivalorados
para los atributos multivalorados se crean tablas nuevas. Para un atributo multivalorado M se crea una tabla T con una columna C que corresponde a la clave primaria del conjunto de entidades o conjunto de relaciones del que M es atributo.
3.5.
Representaci´ on tabular de la generalizaci´ on
Hay dos m´etodos diferentes para transformar a forma tabular un diagrama E-R
4
EL LENGUAJE DE MODELADO UNIFICADO UML
16
1.
Crear una tabla para el conjunto de entidades de nivel m´as alto. Para cada conjunto de entidades de nivel m´as bajo, crear una tabla que incluya una columna para cada uno de sus atributos, m´as una columna por cada atributo de la clave primaria del conjunto de entidades de nivel m´as alto.
2.
Es posible una representaci´on alternativa si la generalizaci´on es disjunta y completa2 . Aqu´ı no se crea una tabla para el conjunto de entidades de nivel m´as alto. En su lugar, para cada conjunto de entidades de nivel m´as bajo se crea una tabla que incluya una columna por cada uno de sus atributos m´as una columna por cada atributo del conjunto de entidades de nivel m´as alto.
3.6.
Representaci´ on tabular de la agregaci´ on
Transformar a forma tabular un diagrama E-R que incluya agregaci´on es sencillo. Consid´erese el diagrama de la Figura 3. La tabla para el conjunto de relaciones dirige entre la agregaci´on de trabaja-en y el conjunto de entidades director incluye una columna para cada atributo de la clave primaria del conjunto de entidades director y del conjunto de relaciones trabaja-en. Tambi´en incluir´ıa una columna para los atributos descriptivos, si los hubiera, del conjunto de relaciones dirige. Por tanto, se transforman los conjuntos de relaciones y los conjuntos de entidades dentro de la entidad agregada.
4.
El lenguaje de modelado unificado UML
El lenguaje de modelado unificado (UML, Unified Modeling Language) es un est´andar propuesto para la creaci´on de especificaciones de varios componentes de un sistema software. Algunas de las partes de UML son: Diagrama de clase. Un diagrama de clase es similar a un diagrama E-R. Diagrama de caso de uso. Los diagramas de caso de uso muestran la interacci´on entre los usuarios y el sistema, en particular los pasos de las tareas que realiza el usuario Diagrama de actividad. Los diagramas de actividad describen el flujo de tareas entre varios componentes de un sistema. Diagrama de implementaci´ on. Los diagramas de implementaci´on muestran los componentes del sistema y sus interconexiones tanto en el nivel del componente software como el hardware. 2
No se debe usar este segundo m´etodo para una generalizaci´ on solapada, porque algunos valores se almacenar´ıan varias veces innecesariamente. Si la generalizaci´ on no fuera completa se necesitar´ıa una tabla extra para los conjuntos de entidades de nivel superior.
4
EL LENGUAJE DE MODELADO UNIFICADO UML
17
UML muestra los conjuntos de entidades como cuadros y, a diferencia de E-R, muestra los atributos dentro del cuadro en lugar de como elipses separadas. UML modela realmente objetos, mientras que E-R modela entidades. Los objetos son como entidades y tienen atributos, pero adem´as proporcionan un conjunto de funciones (denominadas m´etodos) que se pueden invocar para calcular valores en t´erminos de los atributos de los objetos, o para modificar el propio objeto. Los conjuntos de relaciones binarias se representan en UML dibujando simplemente una l´ınea que conecte los conjuntos de entidades. Se escribe el nombre del conjunto de relaciones adyacente a la l´ınea. Tambi´en se puede especificar el papel que juega un conjunto de entidades en un conjunto de relaciones escribiendo el nombre del papel en un cuadro, junto con los atributos del conjunto de relaciones, y conectar el cuadro con una l´ınea discontinua a la l´ınea que describe el conjunto de relaciones. Este cuadro se puede tratar entonces como un conjunto de entidades, de la misma forma que una agregaci´on en los diagramas E-R La relaciones no binarias no se pueden representar directamente en UML, se deben convertir en relaciones binarias La generalizaci´on y especializaci´on se representan en el diagrama E-R conectando conjuntos de entidades por una l´ınea con un tri´angulo al final correspondiente al conjunto de entidades m´as general. Los diagramas UML tambi´en pueden representar expl´ıcitamente las restricciones de generalizaciones disjuntas y solapadas.
5
PREGUNTAS HABITUALES
5. 1.
2.
3.
4.
18
Preguntas habituales ¿Cu´al de las siguientes afirmaciones no es v´alida en un modelo EntidadRelaci´on? a)
La especializaci´on total es una restricci´on de completitud
b)
La agregaci´on es una abstracci´on mediante la cual se tratan a las relaciones como entidades
c)
La clave primaria es una superclave m´axima
d)
Todas son v´alidas
En el modelo E-R, las entidades d´ebiles: a)
Se reducen a tablas con el mismo n´ umero de atributos que la entidad
b)
Se reducen a tablas con mayor n´ umero de atributos que la entidad
c)
Se reducen a tablas con menor n´ umero de atributos que la entidad
d)
Las entidades d´ebiles no se pueden reducir a tablas.
¿Qu´e es una entidad subordinada? a)
Una entidad de clave exterior similar a una entidad fuerte.
b)
Una entidad que se relaciona con otra seg´ un una cardinalidad de asignaci´on de una a muchas.
c)
Una entidad d´ebil.
d)
Una entidad que depende por existencia de otra entidad.
¿Qu´e forma la clave primaria de un conjunto de entidades d´ebiles? a)
La clave primaria del conjunto de entidades fuertes de la que depende su existencia y su discriminador.
b)
Una clave candidata del conjunto de entidades d´ebiles y el discriminador de la entidad fuerte.
c)
Cualquiera de las claves candidatas.
d)
Un conjunto de entidades d´ebiles no tiene clave primaria.