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

Anuncio
Tema 2: Modelo Entidad-Relación(ER)
Fernando Cano Espinosa
Universidad de Oviedo. Departamento de Informática
fanoepsig.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
1:N
INF_PRO
(0, n)
id_informe
INFORME
(0, m)
M:N:P
REG_TAREAS
(0, p)
TAREA
descripcion
(1, 1)
nombre
id_tarea
tiempo
(0, n)
id_proyecto
nombre
1:N
PROYECTO
Conjuntos de Entidades y de Relaciones
(0, n)
DIRIGE
(1,1)
id_empleado
EMPLEADO
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
(0, 1)
PROYECTO
Conjuntos de Entidades y de Relaciones
INF_PRO
numero
fecha
N:1
(0, n)
INFORME
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
Empleados
(1, 1)
Dirige
1:N
(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
Espec.
Conjuntos de Entidades y de Relaciones
europeo
DOCENTE
Grado
Años
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
DOCENTE
INVESTIGADOR
Espec.
Conjuntos de Entidades y de Relaciones
europeo
Grado
Años
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
(1, n)
id_balneario
nombre
BALNEARIO
M:N
(1, n)
id_ttmto
M:N
OFERTA
(1, m)
TRATAMIENTO
aceptada
num_c
SOLICITUD
Conjuntos de Entidades y de Relaciones
(1, m)
22
Otro ejemplo.
dni
edad
id_pensi
loca
PENSIONISTA
nombre
(1, n)
id_balneario
nombre
BALNEARIO
M:N
(1, n)
id_ttmto
M:N
OFERTA
(1, m)
TRATAMIENTO
aceptada
num_c
SOLICITUD
Conjuntos de Entidades y de Relaciones
(1, m)
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
Descargar