Modelo Entidad

Anuncio
Modelo Entidad-Relación
-1-
MODELO ENTIDAD-RELACIÓN
1. INTRODUCCIÓN
1.1. VISTA DE LA DATA A DIFERENTES NIVELES
En el estudio de un modelo de información se deben identificar los niveles de vista
1ógicos de la data con el cual está involucrado el modelo. Se pueden identificar cuatro
niveles de vista de data:
a) La información concerniente a las entidades y a las relaciones existentes entre
esas entidades.
b) La estructura de la información, o sea, la organización de la información mediante
la cual se representa la data correspondiente a las entidades y las relaciones.
c) El acceso independiente de la estructura de datos, aquellas que no están
involucradas en el esquema de búsqueda, indexado, etc.
d) El acceso dependiente de la estructura de datos.
El modelo Entidad-Relación corresponde a los dos primeros niveles. EL modelo llamado
de Redes corresponde al nivel cuatro. El llamado modelo Relacional corresponde a los
niveles dos y tres.
1.2. ENTIDADES
Una entidad es un objeto o evento que existe y es distinguible; es decir, podemos
distinguir una entidad de otra. Por ejemplo, cada libro es una entidad; así mismo lo son
cada persona, cada automóvil, cada escuela, lo mismo que cada venta en un
supermercado, o cada depósito en una cuenta bancaria. Pudiéramos considerar cada
hormiga como una entidad si pudiéramos diferenciar una de la otra; en otras palabras, no
podemos considerar las hormigas como entidades.
Un grupo de entidades similares forman un Conjunto de Entidades; las entidades están
a su vez clasificadas en diferentes grupos de entidades. Hay un predicado asociado con
cada conjunto de entidades para probar si una entidad pertenece o no a dicho conjunto.
Por ejemplo:
a)
b)
c)
d)
Todas las Personas
Todas las Personas Vivas
Todos los Automóviles
Todos los Camiones FORD
Ing. Nerio Villalobos Finol
Modelo Entidad-Relación
-2-
Si sabemos que una entidad está en el conjunto de entidades EMPLEADO, entonces
debemos saber que ésta tiene las propiedades comunes a las otras entidades del
conjunto de entidades EMPLEADO.
1.3. RELACIONES
Una relación es una asociación entre entidades. Un conjunto de relaciones R es una
relación matemática entre entidades. Por ejemplo, un matrimonio es una relación entre
dos entidades del conjunto de entidades PERSONA.
El rol de una entidad en una relación es la función que ésta realiza en la relación. En el
ejemplo anterior, esposo y esposa son roles de las entidades en la relación. Otro ejemplo
sería un conjunto de entidades PERSONA y un conjunto de relaciones MADRE-DE, que
asocia conjuntos de entidades PERSONAS y que incluye a todos los pares (p1, p2) tal que
la persona p1 es la madre de la persona p2.
La base de datos de una organización (empresa, institución, club, etc.) contiene
información relevante concerniente a entidades y relaciones, en la cual la organización
está interesada. Una descripción completa de una entidad o relación no debe ser grabada
en la base de datos de la organización. Es imposible (quizás innecesario) grabar todo
elemento de información disponible acerca de las entidades y relaciones. Debemos tomar
en cuenta solamente la información relevante para el diseño de la base de datos.
1.4. TIPOS DE RELACIONES
Para implementar una base de datos eficientemente, es necesario clasificar las relaciones
de acuerda a cuántas entidades de un conjunto de entidades pueden estar asociadas con
cuántas otras entidades de otros conjuntos de entidades. (Cardinalidad)
a. RELACION UNO A UNO (1:1). Es la forma más simple de relación entre dos
conjuntos de entidades. En ella se indica que para cada entidad de un conjunto de
entidades E1 existe un miembro asociado a otro conjunto de entidades E2..
b. RELACION UNO A MUCHOS (1:N). En ella se indica que para cada entidad en un
conjunto de entidades existen varias entidades en el otro conjunto asociadas a ella.
La relación es una función de un conjunto de entidades E1 a un conjunto de
entidades E2, donde una entidad en el conjunto E2 está asociada con cero a más
entidades del conjunto E1, pero cada entidad en E1, está asociada a lo sumo con
una entidad en E2.
c. RELACION MUCHOS A MUCHOS (M:N). En este tipo de relación, no hay
restricciones en los conjuntos de pares de entidades que puedan aparecer en un
conjunto de relaciones.
Ing. Nerio Villalobos Finol
Modelo Entidad-Relación
-3-
1.5. ATRIBUTOS, VALORES Y DOMINIOS
Las entidades tienen propiedades, llamadas atributos, que asocian un valor de un
conjunto de valores para ese atributo, llamado dominio, con cada entidad en un conjunto
de entidades. Generalmente, el dominio para un atributo sería un conjunto de enteros, de
números reales, o de cadenas de caracteres, pero no se descartan otros tipos de valores.
Por ejemplo, las entidades en el conjunto de entidades PERSONA tienen atributos tales
como Nombre (cadenas de caracteres), Estatura (Numérico), etc. Los valores para estos
atributos podrían ser "PEDRO”, "1.75", etc. Un valor en un dominio puede ser igual a otro
valor en un dominio diferente. Por ejemplo, 1000 en el dominio METROS es igual a 1 en el
dominio KILOMETROS.
Un atributo puede definirse formalmente como una función que proyecta de un conjunto
de entidades o relaciones a un dominio. Nótese que no sólo las entidades tienen atributos,
sino también las relaciones. En este caso, el significado del atributo no depende de un
conjunto de entidades, sino de todos los conjuntos de entidades involucrados en la
relación.
1.6. CLAVE PRIMARIA
Un atributo o conjunto de atributos cuyos valores identifican en forma única cada entidad
en un conjunto de entidades se llama clave para ese conjunto de entidades. En principio,
cada conjunto de entidades tiene una clave, ya que establecimos la hipótesis de que cada
entidad es distinguible de las demás. Pero si no escogemos una colección de atributos
que incluya una clave, no podemos distinguir una entidad de otra. En algunos casos un
número serial arbitrario se coloca como atributo para usarlo como clave. En el caso donde
varios atributos son claves, se selecciona una de ellas como la clave primaria del
conjunto de entidades.
La clave primaria de una relación puede representarse por las claves primarias de las
entidades asociadas por la relación. Teóricamente, puede usarse cualquier tipo de
relación para identificar entidades; sin embargo, se deben restringir a un sólo tipo de
relación: la relación binaria con 1:n proyecciones en las cuales la existencia de las n
entidades en un lado de la relación dependa de la existencia de una entidad al otro lado
de la relación.
Ing. Nerio Villalobos Finol
Modelo Entidad-Relación
-4-
2. ESTRUCTURA DE LA INFORMACIÓN
Ahora nos importa cómo organizar la información asociada con las entidades y las
relaciones. El método propuesto por Peter Pin-Shan Chen es el separar la información
acerca de las entidades de la información acerca de sus relaciones. Esta separación es
muy útil para identificar dependencias entre los datos.
2.1. DIAGRAMAS ENTIDAD-RELACIÓN
Es útil resumir la información en un diseño usando Diagramas Entidad-Relación (DER)
donde:
a. Los rectángulos representan conjuntos de entidades.
b. Los óvalos o círculos representan atributos. Están unidos a sus conjuntos de
entidades por las esquinas.
c. Los rombos representan las relaciones
d. La cardinalidad de la relación se representa mediante flechas con una o dos
puntas.
Ing. Nerio Villalobos Finol
Modelo Entidad-Relación
-5-
Departamento
Proveedor
Dept-Emp
Prov-Proy-Part
Dept-Emp
Empleado
Proyecto
Proy-Part
Parte
DeptGerente
Emp-Ayud
Proy-Part
Ayudante
Diagrama Entidad-Relación
Figura 1.
2.2. CARACTERÍSTICAS DE LOS DIAGRAMAS ENTIDAD-RELACIÓN.
a. Puede definirse un conjunto de relaciones sobre más de dos conjuntos de
entidades. Podríamos considerar, por ejemplo, el conjunto de relaciones
PROVEEDOR-PROYECTO-PARTE el cual está definido sobre tres conjuntos de
entidades: PROVEEDOR, PROYECTO y PARTE.
b. Puede definirse un conjunto de relaciones sobre un sólo conjunto de entidades. Por
ejemplo, el conjunto de relaciones COMPONENTE está definido sólo sobre el
conjunto de entidades PARTE.
c. Puede haber más de un conjunto de relaciones definidos en conjuntos de entidades
dadas. Por ejemplo, podemos tener los conjuntos de relaciones
PROYECTO-TRABAJADOR y PROYECTO-GERENTE definidos ambos sobre los
conjuntos de entidades PROYECTO y EMPLEADO.
d. El diagrama puede distinguir entre proyecciones 1:1, 1:N y M:N. El conjunto de
relaciones DEPARTAMENTO-EMPLEADO es una proyección I:N, esto es, un
DEPARTAMENTO puede tener N (N = 0, 1, 2...) empleados, y cada EMPLEADO
trabaja
para
un
sólo
departamento.
EL
conjunto
de
relaciones
PROYECTO-TRABAJADOR es una proyección M:N, esta es, cada PROYECTO
puede tener cero, uno o más empleados asignados a él, y cada EMPLEADO puede
ser asignado a cero, uno o más proyectos. También es posible expresar una
Ing. Nerio Villalobos Finol
Modelo Entidad-Relación
-6-
proyección 1:1, tal como el conjunto de relaciones MATRIMONIO. La información
acerca del número de entidades en cada conjunto de entidades a la cual está
designada en un conjunto de relaciones se indica con una punto de flecha para
signif1car UNO, y con doble punta de flecha para significar MUCHO.
e. El diagrama puede expresar la dependencia por existencia de un conjunto de
entidades con respecto a otra. Por ejemplo, el rectángulo inscrito en el conjunto de
entidades AYUDANTE, asociado mediante el conjunto de relaciones
EMPLEADOAYUDANTE con el conjunto de entidades EMPLEADO, indica que una
entidad en AYUDANTE depende de una entidad en EMPLEADO, de tal manera
que si un empleado deja la compañía todos sus ayudantes también se irán.
2.3. DISEÑO DE UNA BASE DE DATOS
Hay cuatro pasos para diseñar una base de datos usando el modelo Entidad-Relación:
a. Identificar los conjuntos de entidades y los conjuntos de relaciones de interés.
b. Identificar la información semántica en los conjuntos de relaciones, tales como si un
cierto conjunto de relaciones es una proyección 1:N.
c. Definir los dominios y los atributos.
d. Organizar la información dentro del Diagrama Entidad-Relación, y decidir las claves
primarias.
Hagamos ahora un análisis de un diseño de base de datos de una línea aérea usando el
modelo Entidad-Relación, reflejado en la figura 2.
Primero se listan los conjuntos de entidades y sus atributos. El dominio de cada atributo
se declara como en un lenguaje de programación típico.
CHAR(n) significa cadena de hasta n caracteres, y INT(n) significa un entero de n dígitos.
Los comentarios están delimitados por pares /* */
•
Conjunto de entidades PASAJERO con atributos
NOMBRE
DIRECCIÓN
TELEFONO
CHAR(30)
CHAR(30)
INT1110)
NOMBRE y DIRECCION juntos forman la clave primaria para este conjunto de entidades.
Ing. Nerio Villalobos Finol
Modelo Entidad-Relación
•
-7-
Conjunto de entidades VUELO con sus atributos
NUMERO
ORIGEN
DESTINO
HORA-SALIDA
HORA-LLEGADA
INT(3)
CHAR(3)
CHAR(3)
INT(4)
INT(4)
/*
/*
/*
/*
/*
Número de Vuelo
Aeropuerto de origen.
Aeropuerto de destino
Ejemplo 1340 = 1:40 pm
idem
*/
*/
*/
*/
*/
Todos los aeropuertos comerciales tienen un código de tres letras. Ejemplo: MAR, MQA,
SFO, etc.
Para simplificar, asumimos que los VUELOS no hacen paradas intermedias; aunque en la
práctica, las aerolíneas frecuentemente usan el mismo número de vuelo para las
diferentes paradas del mismo. El atributo NÚMERO es una clave candidata, así como
también lo es el par de atributos ORIGEN-HORA-SALIDA. En la práctica, una clave
candidata como NÚMERO, por ser un conjunto simple, sería escogida y referida como la
clave primaria.
•
Conjunto de entidades SALIDA con atributos
FECHA
INT(3)
Asumimos que las fechas están numeradas desde el principio del año y la información
sobre los vuelos no se guarda más de un
año. Por ejemplo, 33 = 2 de Febrero.
Cada entidad de este conjunto es un vuelo en particular en una fecha dada. El atributo
FECHA_INT por sí mismo no define una entidad en este conjunto. Posteriormente
introduciremos la relación INSTANCIA-DE entre SALIDA y VUELO para definir el conjunto
de entidades SALIDA en forma completa.
•
Conjunto de entidades AVION con los atributos
FABRICANTE
MODELO
CAPACIDAD
CHAR(10)
CHAR(10)
INT(3)
La combinación de los dos primeros atributos forman la clave primaria del conjunto de
entidades.
•
Conjunto de entidades APARATO con atributos
SIGLAS
NOMBRE
CHAR(8)
CHAR(15)
Ing. Nerio Villalobos Finol
Modelo Entidad-Relación
-8-
Asumimos que las siglas son asignadas por el gobierno y sirven como clave para cada
aparato que posee la aerolínea. Nótese que el conjunto AVION consiste de asignaciones
genéricas, tales como BOING 747, y no cada aparato individual como lo es en el conjunto
APARATO.
•
Conjunto de entidades PERSONAL con atributos
NUMERO_E
NOMBRE
DIRECCIÓN
SUELDO
INT(5)
CHAR(30)
CHAR(30)
INT(8)
/* Número de Empleado
*/
NUMERO-E es la clave para PERSONAL. El hecho de que tanto PERSONAL y
PASAJERO tengan atributos NOMBRE y DIRECCION no es significativo.
•
Conjunto de entidades PILOTO, sin atributos.
Tenemos la relación PILOTO ES-UN PERSONAL para identificar a los PILOTOS en forma
individual. El hecho de colocar los pilotos como conjunto de entidades separadas es para
que los pilotos sean relacionados con aviones en la relación PUEDEN-VOLAR, mientras
se pudiera perder información en la base de datos al retener esta información en el
personal que no vuela.
A continuación se listan los conjuntos de relaciones, además la relación ES-UN entre
PILOTO y PERSONAL.
•
Relación ANOTADOS-EN entre PASAJERO y SALIDA, indicando reservaciones. Esta
relación es MUCHOS A MUCHOS.
•
Relación INSTANCIA-DE entre SALIDA y VUELO. Esta relación es MUCHOS A UNO
entre SALIDA y VUELO, ya que cada salida tiene un único número de vuelo, aunque.
el mismo número de vuelo se use cada día.
•
Relación ASIGNADO-A entre PERSONAL y SALIDA, indicando la tripulación de vuelo
para cada salida. La relación es de MUCHOS A MUCHOS.
•
Relación PUEDEN-VOLAR entre PILOTO y AVION. Otra relación MUCHOS A
MUCHOS.
•
Relación TIPO entre AVION y APARATO, indicando el tipo genérico de cada aparato.
La relaci6n es MUCHOS A UNO de APARATO a AVION, ya que cada aparato es de
un tipo genérico, pero la aerolínea puede tener, por ejemplo, varios DC-10.
Ing. Nerio Villalobos Finol
Modelo Entidad-Relación
-9-
Figura 2.
Ing. Nerio Villalobos Finol
Modelo Entidad-Relación
- 10 -
2.4. IMPLICACIONES DE LA INTEGRIDAD DE LA DATA
Con los conceptos explícitos de entidad y relación, el modelo entidad-relación es muy útil
para entender y especificar restricciones para el mantenimiento de la integridad de la data.
Por ejemplo, hay tres tipos principales de restricciones sobre valores:
I. Restricciones sobre valores permitidos para un dominio
II. Restricciones sobre valores permitidos para un cierto atributo. En algunos casos, no
todos los valores permitidos en un dominio son permitidos para algunos atributos.
Por ejemplo, podríamos tener una restricción para que la edad de los empleados
esté entre 20 y 65 años, esto es,
EDAD(e) ∈ (20, 65), donde e ∈ EMPLEADO
III. Restricciones sobre valores existentes en la base de datos, las cuales pueden ser de
dos tipos:
a)
Restricciones entre conjuntos de valores existentes .Por ejemplo:
{NOMBRE(e) / e ∈ HOMBRE} ⊆ {NOMBRE(e) / e ∈ PERSONA}
b)
Restricciones entre valores particulares. Por ejemplo:
IMPUESTO(e) ≤ SUELDO(e), donde e ∈ EMPLEADO
2.5. SEMÁNTICA Y OPERACIONES DE CONSULTA DE INFORMACIÓN
Las consultas pueden ser consideradas como una combinación de los siguientes tipos
de operaciones básicas:
a. Selección de un. subconjunto de valores a partir de un dominio.
b. Selección de un subconjunto de entidades a partir de un conjunto de entidades. Las
entidades son seleccionadas dando los valores de ciertas atributos y/o sus
relaciones con otras entidades.
c. Selección de un subconjunto de relaciones a partir de un conjunto de relaciones.
Las relaciones se seleccionan dando los valores de ciertos atributos y/o
identificando ciertas entidades en la relación.
d. Selección de un subconjunto de atributos.
Un ejemplo de consulta podría ser la siguiente:
Ing. Nerio Villalobos Finol
Modelo Entidad-Relación
•
- 11 -
Cuáles son las edades de los empleados que pesan más de 100 kilos y quienes
están asignados al proyecto N° 254
La misma puede ser expresada como
{EDAD(e) / e ∈ EMPLEADO, PESO(e) > 100,
[e, ej] ∈ PROYECTO-OBRERO,
ej ∈ PROYECTO,
NUMERO_PROYECTO(eJ) = 254};
o también
{EDAD(EMPLEADO) / PESO(EMPLEADO) > 100,
[EMPLEADO, PROYECTO] ∈ PROYECTO-OBRERO,
NUMERO_PROYECTO(EMPLEADO) = 254};
Ing. Nerio Villalobos Finol
Descargar