El modelo entidad / relación - WordPress.com · Web viewSe diferencia unívocamente de cualquier...
Transcript of El modelo entidad / relación - WordPress.com · Web viewSe diferencia unívocamente de cualquier...
El Modelo Entidad / Relación (MER)Es un modelo de datos de alto nivel. Está basado en una percepción de un
mundo real que consiste en una colección de objetos básicos, denominados
entidades, y de relaciones entre estos objetos.
Se desarrolló para facilitar el diseño de BD, permitiendo la especificación de un
esquema de la empresa que representa la estructura lógica completa de una
BD. De esta forma, dentro del diseño de BD, se utiliza en la etapa de diseño
conceptual, después de la etapa de análisis y conocida ya la especificación de
requerimientos. El esquema generado es un esquema conceptual, el que
representa la realidad requerida.
Fue propuesto por Peter P. Chen entre 1976 y 1977. Posteriormente se fueron
proponiendo nuevas aportaciones al modelo, lo cual explica que no exista uno
sólo, sino distintos modelos o variaciones según los autores.
Algunos de los objetivos que debe cumplir un esquema conceptual, en este
caso generado a través del MER, son (Piattini y De Miguel):
Captar y almacenar el universo del discurso mediante una descripción
rigurosa.
Aislar la representación de la información de los requisitos de máquina y
exigencias de cada usuario en particular.
A continuación se describirán los elementos básicos que emplea el MER:
entidades, relaciones y atributos, además de otros componentes
complementarios no menos importantes. Ya se ha hablado de aquellos
principales en la unidad anterior, y corresponde ahora conocer cómo se
representan y emplean para generar una realidad empresa.
1. EntidadUna entidad es "una persona, lugar, cosa, concepto o suceso, real o abstracto,
de interés para la empresa" (ANSI 1977).
Se diferencia unívocamente de cualquier otro objeto o cosa, incluso siendo del
mismo tipo, o una misma entidad. Por ejemplo:
Una persona: se diferencia de cualquier otra persona, incluso siendo
gemelos.
Un automóvil: aunque sean de la misma marca, el mismo modelo, tendrán
atributos diferentes, p.e., el número de chasis o la patente).
Una casa: aunque sea exactamente igual a otra, se diferenciarán en su
dirección.
Una entidad se representa por sus características o atributos.
P.e., la entidad Persona puede llevar consigo las características: Nombre,
Apellido, Género, Estatura, Peso, Fecha de nacimiento, etc...
En el MER, la entidad se representa por un rectángulo, con el nombre de dicha
entidad escrito en la parte interior.
Entidades Persona, Préstamo, Asignatura y Auto respectivamente.
2. AtributosUn atributo es cualquier característica que describe a una entidad. Son
propiedades que permiten describir cada instancia de una entidad específica.
Ejemplo.
Entidad Alumno, con el sgte. conjunto de atributos:
(id, nombre, edad, semestre)
(1, Sofia, 18, 2 ) Instancia 1
(2, Josefa, 19, 5 ) Instancia 2
(3, Gabriela, 20, 2 ) Instancia 3
(4, Josefa, 19, 3 ) Instancia 4
...
Una instancia de entidad tiene valores específicos asignados para cada uno de
sus atributos, de esta forma, es posible su identificación unívoca.
Cada una de las instancias de entidad se diferencia de las demás por el valor
de sus atributos. Nótese que dos o más instancias de entidades diferentes
pueden tener los mismos valores para algunos de sus atributos, pero nunca
para todos.
Debe haber uno o más atributos que permitan diferenciar a una instancia de
otra distinta. Por ejemplo, el atributo identificativo que distingue a un alumno de
otro es su número de id.
El atributo se representa de la siguiente manera:
Ejemplos en entidad Persona y entidad Auto:
2.1 DominioCada atributo tiene un dominio. Éste indica el tipo de datos que será
almacenado o a restricciones en los valores que el atributo puede tomar
(Cadenas de caracteres, números, solo dos letras, sólo números mayores que
cero, solo números enteros...).
Algunas consideraciones de atributos:
2.2 Simples y Compuestos: Los atributos simples son no divisibles, en cambio
los compuestos se pueden dividir en subpartes pudiendo formar jerarquías. Por
ejemplo, nombre-cliente podría estar estructurado como un atributo compuesto
consistente en nombre, primer-apellido y segundo-apellido. Otro ejemplo:
atributo compuesto dirección-cliente, con los atributos calle, ciudad, provincia, y
código-postal. A su vez, su componente calle puede ser a su vez dividido en
número-calle, nombre-calle y piso.
Usar atributos compuestos en un esquema de diseño es una buena elección si
el usuario desea referirse a un atributo completo en algunas ocasiones y, en
otras, a algún componente.
Se representa de la siguiente manera:
En el ejemplo Persona y Nombre:
2.3 Monovalorados y Multivalorados. Los atributos vistos en los pasados
ejemplos asumen todos sólo un valor para alguna entidad concreta. Por
ejemplo, el atributo fecha_nacimiento para una entidad persona, referencia a
una fecha única, puesto que una persona tiene un solo nacimiento. Tales
atributos se llaman monovalorados: tienen un solo valor para una entidad en
particular.
Puede haber ocasiones en las que un atributo tiene un conjunto de valores
para una entidad específica. Consideremos la entidad empleado con el atributo
número-teléfono. Cualquier empleado particular puede tener cero, uno o más
números de teléfono. Este tipo de atributo se llama multivalorado; son atributos
que tienen límites inferior y superior en el número de valores para una entidad.
Por ejemplo, un banco puede limitar el número de números de teléfono
almacenados para un único cliente a dos. Colocando límites en este caso, se
expresa que el atributo número-teléfono de la entidad cliente puede tener entre
cero y dos valores.
Se representa como se ve a continuación:
2.4 Almacenados y derivados. Los atributos almacenados son aquellos
guardados en la BD. Los derivados son aquellos que es posible calcular o
derivar a partir de algunos datos almacenados.
Por ejemplo, la entidad cliente tiene un atributo préstamos que representa
cuántos préstamos tiene un cliente en el banco. Ese atributo se puede derivar
contando el número de entidades préstamo asociadas con ese cliente.
Otro ejemplo, la entidad cliente tiene un atributo edad, que indica la edad del
cliente. Si la entidad cliente tiene también un atributo fecha-de-nacimiento, se
puede calcular edad a partir de fecha-de-nacimiento y de la fecha actual. Así,
edad es un atributo derivado (de fecha de nacimiento) y fecha de nacimiento
uno almacenado.
El valor de un atributo derivado no se almacena; se calcula cuando sea
necesario.
Se representa de la siguiente manera:
Aplicado al problema de cliente, fecha de nacimiento y edad, tenemos:
2.5 Atributos con valor nulo. Se puede asignar valor nulo a algunos atributos:
Sin valor aplicable: por ejemplo el atributo titulo_universitario para personas
que no tengan este tipo de título.
De valor desconocido :
Falta: por ejemplo el atributo altura para una persona. Es seguro que toda
persona tiene un valor de altura.
Existe?: por ejemplo el atributo teléfono de una persona, puede que no
tenga o que sí tenga pero no se conozca.
Hay algunos atributos que no deben contener valor nulo: los atributos clave.
3. ClavesLa clave de una entidad es un atributo o conjunto de atributos de dicha entidad,
capaces de identificar unívocamente una instancia de la misma. Es decir, si
conocemos el valor de dichos atributos, seremos capaces de conocer a qué
ocurrencia de entidad, entre todas las posibles, hace referencia. Esto implica
que los valores de los atributos clave no se pueden repetir para dos instancias
de la misma entidad.
En nuestro ejemplo, seremos capaces de identificar de qué automóvil estamos
hablando, con sólo conocer el valor del atributo patente, ya que no existe una
misma patente para dos automóviles distintos. Los atributos marca, modelo o
color no identifican unívocamente una ocurrencia de la entidad, ya que pueden
existir dos automóviles distintos de la misma marca, modelo o color. Por ende,
patente es la clave de la entidad automovil.
En el modelo E/R, un atributo clave se representa de la siguiente forma:
En nuestro ejemplo:
Automovil (sin clave): resulta imposible identificar a alguno de los 2 autos
marca Peugeot que aparecen en la tabla.
Marca Modelo Motor Color
Peugeot 207 1.6 Rojo
Mercedes W116 3.0 Verde
Peugeot 207 1.6 Rojo
Automovil (con clave): a través de la clave, es posible identificar cualquiera de
los autos que aparecen en la tabla.
Patente Marca Modelo Motor Color
GF6534 Peugeot 207 1.6 Rojo
DE8743 Mercedes W116 3.0 Verde
MU8732 Peugeot 207 1.6 Rojo
La clave puede estar conformada por más de un atributo, así como puede ser
un atributo compuesto.
Esta clave es elegida por el diseñador dentro de un conjunto de atributos que
cumplen con la condicion de identificar una instancia de entidad. A estos
atributos les llamaremos claves candidatas y la clave elegida sera la clave
primaria.
4. RelacionesUna relación representa, como su nombre indica, una correspondencia entre
dos entidades.
Se representa por un rombo que une mediante una línea las entidades que se
asocian:
Si tenemos dos entidades automóvil y persona, podemos tener una relación
entre ellas:
La relación debe tener un nombre que sea capaz de identificar el tipo de
correspondencia entre ambas entidades. Generalmente estos nombres son
verbos:
Dicha relación se puede establecer en ambos sentidos:
Persona posee auto.
Auto pertenece a persona.
Podría haber sido tb de la siguiente forma:
Lo que semánticamente dice exactamente lo mismo que en el caso anterior.
Luego, el nombre que usemos dependerá de cada diseñador, pero debe ser
significativo y se debe mantener durante toda la etapa de diseño su coherencia.
4.1 Atributos en relaciones
Una relación también puede tener atributo(s) asociado(s).
A veces los atributos no son propios de ninguna de las 2 entidades
participantes en la relación, sino del hecho mismo de la relación.
Se representan igual que los atributos de las entidades.
Un ejemplo típico son las relaciones de tipo "histórico" donde debe constar una
fecha o una hora. Por ejemplo, supongamos que es necesario hacer constar la
fecha de compra en que persona compró el auto: la fecha es de la compra, no
de la persona, ni del auto. En tal caso, el atributo "Fecha de compra" debería
colocarse en la relación "compra".
5. Cardinalidad de una relaciónEs una forma de representar más rigurosamente una relación y a la vez aplicar
ciertas restricciones a las relaciones.
La cardinalidad de una relación representa el número de ocurrencias que se
pueden dar de una relación: va a especificar con cuantas ocurrencias de B se
puede relacionar A y con cuantas ocurrencias de A se puede relacionar B.
Ejemplo: Una persona puede comprar muchos autos y un auto es comprado
por una sola persona. Llevándolo al diagrama, tendríamos que una ocurrencia
de A (Persona) se puede relacionar con muchas ocurrencias de B (Auto) y que
una ocurrencia de B (Auto) se puede relacionar con sólo una ocurrencia de A
(Persona).
La cardinalidad puede ser de tres tipos:
Cardinalidad 1-1: cada ocurrencia de una entidad se relaciona con una
ocurrencia de otra entidad.
Ej.: una persona posee un automóvil.
Cardinalidad 1-N: también llamada uno a muchos. Cada ocurrencia de una
entidad puede relacionarse con varias ocurrencias de otra entidad.
Encontramos tambien la cardinalidad N-1: varias ocurrencias de una entidad
pueden relacionarse con una de otra entidad.
Ej.: una persona posee varios automóviles. (ejemplo más arriba).
Cardinalidad N-M: también llamada muchos a muchos. Cada ocurrencia de
una entidad puede relacionarse con varias ocurrencias de otra entidad y
viceversa.
Ej.: una persona posee varios automóviles y un automóvil puede pertenecer
a varias personas.
Sin embargo es posible restringir aún más esta relación:
Cardinalidad máxima de una relación: representa el número máximo de
ocurrencias de una entidad con las que se puede relacionar otra ocurrencia de
entidad. Ej.: una persona puede tener como máximo tres automóviles.
Cardinalidad mínima de una relación: representa el número mínimo de
ocurrencias de una entidad con las que se puede relacionar otra entidad. Ej.:
un automóvil debe pertenecer como mínimo a una persona.
Ejemplo:
Una ocurrencia de A se relaciona con mínimo una ocurrencia de B y máximo
varias ocurrencias de B, una ocurrencia de B se relaciona con mínimo una
ocurrencia de A y máximo una ocurrencia de A. Aplicado a un ejemplo:
Una persona puede comprar mínimo 1, máximo varios automóviles. Un auto
puede ser comprado por mínimo 1 persona y máximo 1 persona:
Se lee de izquierda a derecha y luego de derecha a izquierda (o al revés): Una
persona compra uno o más autos, y un auto es comprado por sólo una
persona.
Nota: N ó M también se puede definir como un número entero específico: Una
persona puede comprar mínimo 0, máximo 4 autos.
6. Entidad débil Se dice que una entidad es débil, cuando depende de otra para su existencia,
sin la cual no tienen sentido.
Una entidad débil es una entidad cuyos atributos no la identifican
completamente, sino que sólo la identifican de forma parcial. Esta entidad debe
participar en una relación que ayuda a identificarla. Para toda entidad débil,
siempre debe haber una única interrelación que permita completar su
identificación. Esta interrelación debe ser binaria con conectividad 1:N, y la
entidad débil debe estar en el lado N.
Se representan de la siguiente manera:
Si se elimina una ocurrencia de la entidad fuerte, se debe eliminar las
ocurrencias de la entidad débil asociadas.
Ejemplo: un libro tiene uno o más ejemplares, y un ejemplar es de solo un libro.
El ejemplar en si no dice mucho semánticamente, solo podría saber algo mas
de el sabiendo de que libro es el ejemplar. Por otro lado, si eliminamos un libro,
desaparecen sus ejemplares.
Aplicando la notación se vería de la siguiente forma:
Otro ejemplo: tenemos las entidades edificio (con el atributo clave
codigo_edificio) y despacho (con el atributo codigo_despacho), ésta última es
una entidad débil, ya que no somos capaces de identificar un despacho con
sólo conocer su código, sino que además se necesita conocer el código del
edificio al que se hace referencia, para determinar en qué edificio está el
despacho. Claramente si eliminamos el edificio, desaparece el despacho.
7. Generalización.En una generalización existe una jerarquía de tipos en la que se definen
sucesivos niveles de subtipos que corresponden a un supertipo.
Ejemplo: el tipo de entidad vehículo es una generalización del tipo de entidad
bicicleta, ya que todas las bicicletas son vehículos. El tipo de entidad persona
es una generalización de las entidades hombre y mujer.
Son subtipos de la generalización o supertipo (Es_un o Es_parte_de). Lo
representaremos de la siguiente forma:
Herencia de atributos
Una propiedad es la herencia de atributos. Los atributos de los supertipos se
dice que son heredados por los subtipos. Por ejemplo, cliente y empleado
heredan los atributos de persona. Así, cliente se describe mediante sus
atributos C.I., nombre y ciudad y adicionalmente por el atributo dirección;
empleado se describe mediante sus atributos C.I, nombre y ciudad y
adicionalmente por el atributo sueldo.
Cobertura total o parcial
La cobertura parcial o total permite especificar una restricción entre el supertipo
y sus subtipos, donde todos los elementos del supertipo deben pertenecer a
alguno de sus subtipos (si es total), o no (si es parcial).
En el caso anterior, la cobertura es total (t) porque una persona puede ser u
hombre o mujer, pero nada mas. Si tenemos el supertipo empleado y los
subtipos docente y administrativo, puede ser parcial (p), porque dentro de los
empleados tb hay directivos.
Cobertura exclusiva o superpuesta
La cobertura exclusiva o superpuesta permite especificar una restricción entre
los subtipos, donde los elementos que pertenecen a un subtipo pueden