Está en la página 1de 27

Tema 2: Modelo Entidad-Relación(ER)

Fernando Cano Espinosa


Universidad de Oviedo. Departamento de Informática
f anoepsig.uniovi.es

1
Contenido
1. Introducción al modelo de datos ER

2. Conjuntos de entidades y de relaciones

3. Cuestiones de diseño

4. Especialización

5. Agregación

6. Reducción a tablas

Contenido 2
Introducción 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 características (atributos) de dichas entidades
– las relaciones entre ellas
– cierta semántica del problema
– ciertas restricciones
• Se generara un diagrama que nos permite entender el
problema de forma rápida.
• Podremos traducir este diagrama a tablas del modelo
relacional (casi directamente implementable en SQL)

Introducción al modelos de datos ER 3


Conjuntos de Entidades y de Relaciones
Conjunto de Entidades

• Una entidad es un objeto del mundo real que es


distinguible de todos los demás (una persona, una
empresa, un informe, un estado, un vicio, etc.)

• Las entidades tiene atributos o propiedades (nombre,


edad, descripción, 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 4


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
(día-mes-año, nombre-apellidos,
calle-número-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 5


Conjuntos de Relaciones

• Una relación es una asociación entre varias entidades. Por


ejemplo propietario-coche, alumno-asignatura, etc.

• Un conjunto de relaciones es una relación matemática


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 relación.

Conjuntos de Entidades y de Relaciones 6


Conjuntos de Relaciones: Grado

• Se entiende por grado de una relación al número de


entidades que participan en ella. Este siempre es mayor o
igual que 2, aunque no necesariamente distintas. Es decir,
que más de una entidad del mismo conjunto pueden
participar en una relación. Para estos casos se determina
el papel o roll que juega cada una.

• El grado más 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 7


Conjuntos de Relaciones: Cardinalidad

• La Cardinalidad expresa el número de entidades a las que


se puede asociar otra entidad a través 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 aún más finos y expresar la aparición máxima


y mínima de una entidad en una relación. Lo veremos más
tarde en un ejemplo.

Conjuntos de Entidades y de Relaciones 8


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 trío, etc.) con cuántas
entidades de las mías se puede relacionar’. Por ejemplo:
dado un determinado coche y un determinado
conductor, cuántos accidentes pueden tener.

• Mostraremos esto con un ejemplo.

Conjuntos de Entidades y de Relaciones 9


Conjunto de relaciones: atributos descriptivos

• La relaciones también pueden tener atributos que nos


describen la relación que se establece entre diferentes
entidades.

• Por ejemplo, la nota nos describe la relación 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 información sobre los
proyectos que realiza una empresa. Los datos a tener en cuenta son:

• Cada proyecto tiene asociado un identificador numérico y un nombre.


Además se guardará qué empleado es el director de dicho proyecto.

• También se quiere guardar información sobre los informes trimestrales que


se hacen de cada proyecto. Para ello se guardará la fecha del informe y
se detallará cuáles han sido las tareas realizadas en el trimestre, quién 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. Además un mismo
empleado puede realizar distintas tareas en el mismo trimestre y una
tarea puede ser desarrollada por más de un empleado.

• De los empleados se guardará un identificador y su nombre.

Conjuntos de Entidades y de Relaciones 11


fecha id_informe M:N:P tiempo id_tarea
1:N
(0, n) (0, m) (0, p)
INF_PRO INFORME REG_TAREAS TAREA

(1, 1) descripcion

nombre id_proyecto (0, n)


nombre id_empleado
1:N
PROYECTO (0, n) (1,1)
DIRIGE EMPLEADO

Conjuntos de Entidades y de Relaciones 12


Claves de entidades y de relaciones
Conceptualmente cada entidad y cada relación, son
distintas, pero dentro de una base de datos, la diferencia
entre distintas entidades y distintas relaciones debe expresarse
en términos de sus atributos.

• Una Superclave es un onjunto de atributos que nos permite


identificar a una entidad (relación) dentro del conjunto de
entidades (relaciones) de forma única.

• Una Clave candidata es una superclave que no contiene


ningún subconjunto propio que sea superclave

• Una Clave primaria es la clave candidata elegida por el


diseñador de la base de datos.

Conjuntos de Entidades y de Relaciones 13


• La clave primaria para una relación depende de la
cardinalidad de asignación y de los atributos descriptivos
de dicha relación 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 formación de la


clave primaria depende de la cardinalidad y de la
semántica asociada a esa relación.

Conjuntos de Entidades y de Relaciones 14


Entidades dependientes y débiles
• Algunas entidades dependen existencialmente de otras.
Por ejemplo la existencia de un informe depende de que
exista el proyecto sobre el que se informa.
• Además pueden no tener atributos suficientes para formar
una clave y necesitan chupar la clave de la entidad de la
que dependen para formar la suya.
• Si es necesario añadir algún atributo más para formar la
clave se dice que ese atributo(s) funciona como
discriminador.
• Este tipo de entidades se suele representar con un doble
rectángulo.
• Vamos a mostrar esto con un ejemplo

Conjuntos de Entidades y de Relaciones 15


nombre id_proyecto fecha numero
N:1
(0, 1) (0, n)
PROYECTO INF_PRO INFORME

Conjuntos de Entidades y de Relaciones 16


Papeles

• Como ya comentamos un mismo tipo de entidad puede


participar más de una vez en una relación.

• En estos casos se suele etiquetar la linae que une la


entidad con la relación para mostar el papel que juega.

jefe
(1, 1) 1:N
Empleados Dirige
(0, m)
subordinado

Nombre
ID_Operario

Dni

Conjuntos de Entidades y de Relaciones 17


Especialización-Generalización: Relaciones ISA

• Especialización: Si identificamos 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.

• Generalización: Si identificamos 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 relación entre la entidad superior y las entidaes
subordinadas se representan por medio de un triángulo y
se suelen denominar relaciones ISA (’es un’).
nombre id_empleado

PERSONAL

ISA

INVESTIGADOR DOCENTE

Grado Años
Espec. europeo

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 más 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
nombre
totalidad ISA

sin solapamiento

INVESTIGADOR DOCENTE

Grado Años
Espec. europeo

Conjuntos de Entidades y de Relaciones 21


Agregación
La agregación surge cuando más 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
unión, se puede relacionar con otras entidades (Gran Premio,
hipoteca, etc.). Se representa enmarcando la relación en un
rectángulo.
dni

edad id_pensi

loca
PENSIONISTA
nombre id_balneario id_ttmto
M:N
(1, n)
nombre (1, n) (1, m)
BALNEARIO OFERTA TRATAMIENTO
M:N aceptada
num_c
(1, m)
SOLICITUD

Conjuntos de Entidades y de Relaciones 22


Otro ejemplo.

dni

edad id_pensi

loca
PENSIONISTA
nombre id_balneario id_ttmto
M:N
(1, n)
nombre (1, n) (1, m)
BALNEARIO OFERTA TRATAMIENTO
M:N aceptada
num_c
(1, m)
SOLICITUD

Conjuntos de Entidades y de Relaciones 23


Reducción 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 débil 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 más los
atributos que funcionan como discriminadores (si los hay).

Reducción 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 más los aributos
descriptivos de la relación. En general la clave de esta
tabla es la unión de estas claves, aunque dependiendo
del caso los atributos descriptivos también pueden formar
parte de la clave.

Reducción 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 específicos más la clave de la
entidad superior.
2. Una tabla para cada una de la entidades inferiores con
los atributos comunes a todas más los específicos de
cada una. La clave será la de la entidad superior.

Reducción a tablas 26
• Las agregaciones no generan una tabla especial. Se utiliza
la tabla de la relación (N : M normalmente), y para hacer
referencia a la nueva entidad se toma la clave de dicha
relación.

Estas normas son generales, pero pueden aparecer casos


concretos en los que sigamos otras altenativas, generalmente
motivadas por temas de implementación (velocidad, espacio,
sencillez, etc.). Veremos casos concretos en diferentes
ejemplos.

Reducción a tablas 27

También podría gustarte