Sie sind auf Seite 1von 27

Tema 2: Modelo Entidad-Relacin(ER)

Fernando Cano Espinosa


Universidad de Oviedo. Departamento de Informtica

Contenido
1. Introduccin al modelo de datos ER 2. Conjuntos de entidades y de relaciones 3. Cuestiones de diseo 4. Especializacin 5. Agregacin 6. Reduccin a tablas

Contenido

Introduccin al modelos de datos ER


Modelos de datos ER: herramienta conceptual para describir los datos que van a constituir nuestra BD. Podremos representar los propios datos vistos como entidades las caractersticas (atributos) de dichas entidades las relaciones entre ellas cierta semntica del problema ciertas restricciones Se generara un diagrama que nos permite entender el problema de forma rpida. Podremos traducir este diagrama a tablas del modelo relacional (casi directamente implementable en SQL)

Introduccin al modelos de datos ER

Conjuntos de Entidades y de Relaciones


Conjunto de Entidades Una entidad es un objeto del mundo real que es distinguible de todos los dems (una persona, una empresa, un informe, un estado, un vicio, etc.) Las entidades tiene atributos o propiedades (nombre, edad, descripcin, peso, fecha, etc.) Un conjunto de entidades esta formado por entidades del mismo tipo que comparten las mismas propiedades o atributos (personas, empresas, vicios, alumnas, etc.)

Conjuntos de Entidades y de Relaciones

Los atributos Los atributos describen propiedades que posee cada miembro de un conjunto de entidades. Podemos distingir diferentes tipos de atributos Simples (edad, sexo, nombre, fecha) y compuestos (da-mes-ao, nombre-apellidos, calle-nmero-portal-piso-letra) Monovalorados (altura) y multivalorados (hijos, amantes) Derivados: se obtienen a partir de otros (N ota = 0, 6 T + 0, 4 P ) PERO para nosotros todos van a ser simples.

Conjuntos de Entidades y de Relaciones

Conjuntos de Relaciones Una relacin es una asociacin entre varias entidades. Por ejemplo propietario-coche, alumno-asignatura, etc. Un conjunto de relaciones es una relacin matemtica entre n entidades. Sean 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 relacin.

Conjuntos de Entidades y de Relaciones

Conjuntos de Relaciones: Grado Se entiende por grado de una relacin al nmero de entidades que participan en ella. Este siempre es mayor o igual que 2, aunque no necesariamente distintas. Es decir, que ms de una entidad del mismo conjunto pueden participar en una relacin. Para estos casos se determina el papel o roll que juega cada una. El grado ms frecuente es 2, es decir, relaciones binarias. Incluso en algunos casos relaciones de mayor grado puede ser convertidas en una serie de relaciones binarias.

Conjuntos de Entidades y de Relaciones

Conjuntos de Relaciones: Cardinalidad La Cardinalidad expresa el nmero de entidades a las que se puede asociar otra entidad a travs de un conjunto de relaciones. Para un conjunto de relaciones binario, la correspondencia de cardinalidades debe ser de uno de los tipos siguientes: Uno a uno 1 : 1 Uno a varios 1 : N Varios a varios N : M Podemos ser an ms nos y expresar la aparicin mxima y mnima de una entidad en una relacin. Lo veremos ms tarde en un ejemplo.

Conjuntos de Entidades y de Relaciones

Conjuntos de Relaciones: Cardinalidad Para expresar la cardinalidad en relaciones de grado mayor que seguiremos la frase: dado uno del contario (ya sea una pareja de entidades, un tro, etc.) con cuntas entidades de las mas se puede relacionar. Por ejemplo: dado un determinado coche y un determinado conductor, cuntos accidentes pueden tener. Mostraremos esto con un ejemplo.

Conjuntos de Entidades y de Relaciones

Conjunto de relaciones: atributos descriptivos La relaciones tambin pueden tener atributos que nos describen la relacin que se establece entre diferentes entidades. Por ejemplo, la nota nos describe la relacin que se establece entre un alumno y un examen.

Conjuntos de Entidades y de Relaciones

10

Ejemplo Proyectos
Se pretende crear una base de datos para almacenar informacin sobre los proyectos que realiza una empresa. Los datos a tener en cuenta son: Cada proyecto tiene asociado un identicador numrico y un nombre. Adems se guardar qu empleado es el director de dicho proyecto. Tambin se quiere guardar informacin sobre los informes trimestrales que se hacen de cada proyecto. Para ello se guardar la fecha del informe y se detallar cules han sido las tareas realizadas en el trimestre, quin las realiz y el tiempo que dedic a cada una de ellas. Las tareas dentro de los proyectos suelen ser casi siempre las mismas, aunque las realicen distintas personas y le dediquen tiempos distintos. Adems un mismo empleado puede realizar distintas tareas en el mismo trimestre y una tarea puede ser desarrollada por ms de un empleado. De los empleados se guardar un identicador y su nombre.

Conjuntos de Entidades y de Relaciones

11

1:N
INF_PRO

fecha

id_informe

M:N:P
REG_TAREAS

tiempo

id_tarea

(0, n)

INFORME

(0, m)

(0, p)

TAREA

(1, 1)
nombre id_proyecto

descripcion

(0, n)

1:N
PROYECTO

nombre

id_empleado

(0, n)

DIRIGE

(1,1)

EMPLEADO

Conjuntos de Entidades y de Relaciones

12

Claves de entidades y de relaciones Conceptualmente cada entidad y cada relacin, son distintas, pero dentro de una base de datos, la diferencia entre distintas entidades y distintas relaciones debe expresarse en trminos de sus atributos. Una Superclave es un onjunto de atributos que nos permite identicar a una entidad (relacin) dentro del conjunto de entidades (relaciones) de forma nica. Una Clave candidata es una superclave que no contiene ningn subconjunto propio que sea superclave Una Clave primaria es la clave candidata elegida por el diseador de la base de datos.

Conjuntos de Entidades y de Relaciones

13

La clave primaria para una relacin depende de la cardinalidad de asignacin y de los atributos descriptivos de dicha relacin R. Si en R no existen atributos descriptivos Cardinalidad N : M : la clave primaria son todos los atributos de R Cardinalidad 1 : N de A a B : la clave primaria ser la clave primaria de B Si en R existen atributos descriptivos la formacin de la clave primaria depende de la cardinalidad y de la semntica asociada a esa relacin.

Conjuntos de Entidades y de Relaciones

14

Entidades dependientes y dbiles Algunas entidades dependen existencialmente de otras. Por ejemplo la existencia de un informe depende de que exista el proyecto sobre el que se informa. Adems pueden no tener atributos sucientes para formar una clave y necesitan chupar la clave de la entidad de la que dependen para formar la suya. Si es necesario aadir algn atributo ms para formar la clave se dice que ese atributo(s) funciona como discriminador. Este tipo de entidades se suele representar con un doble rectngulo. Vamos a mostrar esto con un ejemplo

Conjuntos de Entidades y de Relaciones

15

nombre

id_proyecto

N:1
(0, 1)
INF_PRO

fecha

numero

PROYECTO

(0, n)

INFORME

Conjuntos de Entidades y de Relaciones

16

Papeles Como ya comentamos un mismo tipo de entidad puede participar ms de una vez en una relacin. En estos casos se suele etiquetar la linae que une la entidad con la relacin para mostar el papel que juega.
jefe Empleados
(1, 1) (0, m)

Dirige

1:N

subordinado Nombre Dni

ID_Operario

Conjuntos de Entidades y de Relaciones

17

Especializacin-Generalizacin: Relaciones ISA Especializacin: Si identicamos un subconjunto de entidades dentro de un conjunto de entidades que tienen algunos atributos particulares, entonces estos subgrupos se convierten en conjuntos de entidades de nivel inferior que tienen atributos o participan en relaciones que no son aplicables al conjunto de entidades de nivel superior. Generalizacin: Si identicamos atributos comunes a ciertas entidades, podemos crear: una entiad de nivel superiror que las contenga, y otras entidades de nivel inferiro con los atributos particulares. El resultado es el mismo. Y es dice que las entidades de nivel inferior heredan los atributos de la de nivel superior.

Conjuntos de Entidades y de Relaciones

18

La relacin entre la entidad superior y las entidaes subordinadas se representan por medio de un tringulo y se suelen denominar relaciones ISA (es un).
nombre id_empleado

PERSONAL

ISA

INVESTIGADOR

DOCENTE

Espec.

europeo

Grado

Aos

Conjuntos de Entidades y de Relaciones

19

Totalidad-Parcialidad: si toda entidad de nivel superior se relaciona con una de nivel inferior (Todo el personal o es docente o investigador). Se representa mediante un circulito. Solapamiento: si una entidad de nivel superior no puede aparecer en ms de una entidad de nivel inferior (El personal no puede ser a la vez docente e investigador). Se representa mediante un arco.

Conjuntos de Entidades y de Relaciones

20

PERSONAL

id_empleado
totalidad ISA

nombre

sin solapamiento

INVESTIGADOR

DOCENTE

Espec.

europeo

Grado

Aos

Conjuntos de Entidades y de Relaciones

21

Agregacin La agregacin surge cuando ms de una entidad (no necesariamente distintas) se asocian de tal forma que se las puede ver como a una nueva entidad (piloto-moto, marido-mujer, etc.). Esta nueva entidad, fruto de esa ntima unin, se puede relacionar con otras entidades (Gran Premio, hipoteca, etc.). Se representa enmarcando la relacin en un rectngulo.
dni edad id_pensi loca
PENSIONISTA

nombre (1, n) nombre


BALNEARIO

id_balneario

M:N
OFERTA

id_ttmto

(1, n)

(1, m)

TRATAMIENTO

M:N
SOLICITUD

aceptada

num_c (1, m)

Conjuntos de Entidades y de Relaciones

22

Otro ejemplo.
dni edad id_pensi loca
PENSIONISTA

nombre (1, n) nombre


BALNEARIO

id_balneario

M:N
OFERTA

id_ttmto

(1, n)

(1, m)

TRATAMIENTO

M:N
SOLICITUD

aceptada

num_c (1, m)

Conjuntos de Entidades y de Relaciones

23

Reduccin a tablas
Entidades Cada entidad genera una tabla en la que cada atributo (simple) ocupa una columna y la clave primaria ser la clave de la entidad. Una entidad dbil genera una tabla en la que cada atributo (simple) ocupa una columna y la clave primaria ser la clave de la entidad de la que depende ms los atributos que funcionan como discriminadores (si los hay).

Reduccin a tablas

24

Relaciones Las relaciones 1:1 no generan tabla. En muchos casos la entidad dependiente genera una tabla en la que la clave primaria ser la clave de la entidad de la que depende. Las relaciones N:M generan tabla que incluye las claves de la entidades que se relacionan ms los aributos descriptivos de la relacin. En general la clave de esta tabla es la unin de estas claves, aunque dependiendo del caso los atributos descriptivos tambin pueden formar parte de la clave.

Reduccin a tablas

25

Las relaciones ISA pueden generar dos esquemas diferentes 1. Una tabla para la entidad superior (con los atributos comunes) y otra para cada una de la entidades inferiores con los atributos especcos ms la clave de la entidad superior. 2. Una tabla para cada una de la entidades inferiores con los atributos comunes a todas ms los especcos de cada una. La clave ser la de la entidad superior.

Reduccin a tablas

26

Las agregaciones no generan una tabla especial. Se utiliza la tabla de la relacin (N : M normalmente), y para hacer referencia a la nueva entidad se toma la clave de dicha relacin. Estas normas son generales, pero pueden aparecer casos concretos en los que sigamos otras altenativas, generalmente motivadas por temas de implementacin (velocidad, espacio, sencillez, etc.). Veremos casos concretos en diferentes ejemplos.

Reduccin a tablas

27