Tema 2: Modelo Entidad-Relación(ER) · PDF filepuede ser convertidas en una serie de...

27
Tema 2: Modelo Entidad-Relación(ER) Fernando Cano Espinosa Universidad de Oviedo. Departamento de Informática 1

Transcript of Tema 2: Modelo Entidad-Relación(ER) · PDF filepuede ser convertidas en una serie de...

Page 1: Tema 2: Modelo Entidad-Relación(ER) · PDF filepuede ser convertidas en una serie de relaciones binarias. Conjuntos de Entidades y de Relaciones 7. Conjuntos de Relaciones: Cardinalidad

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

Fernando Cano Espinosa

Universidad de Oviedo. Departamento de Informáticaf ano�epsig.uniovi.es1

Page 2: Tema 2: Modelo Entidad-Relación(ER) · PDF filepuede ser convertidas en una serie de relaciones binarias. Conjuntos de Entidades y de Relaciones 7. Conjuntos de Relaciones: Cardinalidad

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

Page 3: Tema 2: Modelo Entidad-Relación(ER) · PDF filepuede ser convertidas en una serie de relaciones binarias. Conjuntos de Entidades y de Relaciones 7. Conjuntos de Relaciones: Cardinalidad

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

Page 4: Tema 2: Modelo Entidad-Relación(ER) · PDF filepuede ser convertidas en una serie de relaciones binarias. Conjuntos de Entidades y de Relaciones 7. Conjuntos de Relaciones: Cardinalidad

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

Page 5: Tema 2: Modelo Entidad-Relación(ER) · PDF filepuede ser convertidas en una serie de relaciones binarias. Conjuntos de Entidades y de Relaciones 7. Conjuntos de Relaciones: Cardinalidad

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

(Nota = 0, 6 ∗ T + 0, 4 ∗ P )

• PERO para nosotros todos van a ser simples.

Conjuntos de Entidades y de Relaciones 5

Page 6: Tema 2: Modelo Entidad-Relación(ER) · PDF filepuede ser convertidas en una serie de relaciones binarias. Conjuntos de Entidades y de Relaciones 7. Conjuntos de Relaciones: Cardinalidad

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

Page 7: Tema 2: Modelo Entidad-Relación(ER) · PDF filepuede ser convertidas en una serie de relaciones binarias. Conjuntos de Entidades y de Relaciones 7. Conjuntos de Relaciones: Cardinalidad

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

Page 8: Tema 2: Modelo Entidad-Relación(ER) · PDF filepuede ser convertidas en una serie de relaciones binarias. Conjuntos de Entidades y de Relaciones 7. Conjuntos de Relaciones: Cardinalidad

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

Page 9: Tema 2: Modelo Entidad-Relación(ER) · PDF filepuede ser convertidas en una serie de relaciones binarias. Conjuntos de Entidades y de Relaciones 7. Conjuntos de Relaciones: Cardinalidad

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

Page 10: Tema 2: Modelo Entidad-Relación(ER) · PDF filepuede ser convertidas en una serie de relaciones binarias. Conjuntos de Entidades y de Relaciones 7. Conjuntos de Relaciones: Cardinalidad

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

Page 11: Tema 2: Modelo Entidad-Relación(ER) · PDF filepuede ser convertidas en una serie de relaciones binarias. Conjuntos de Entidades y de Relaciones 7. Conjuntos de Relaciones: Cardinalidad

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

Page 12: Tema 2: Modelo Entidad-Relación(ER) · PDF filepuede ser convertidas en una serie de relaciones binarias. Conjuntos de Entidades y de Relaciones 7. Conjuntos de Relaciones: Cardinalidad

EMPLEADO

id_empleado nombre

INF_PRO

1:N

(0, n)

(1, 1)

TAREA

id_tarea

descripcion

INFORME

id_informe fecha

REG_TAREAS

M:N:P tiempo

(0, p) (0, m)

(0, n)

PROYECTO

id_proyecto nombre

DIRIGE

1:N

(1,1) (0, n)

Conjuntos de Entidades y de Relaciones 12

Page 13: Tema 2: Modelo Entidad-Relación(ER) · PDF filepuede ser convertidas en una serie de relaciones binarias. Conjuntos de Entidades y de Relaciones 7. Conjuntos de Relaciones: Cardinalidad

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

Page 14: Tema 2: Modelo Entidad-Relación(ER) · PDF filepuede ser convertidas en una serie de relaciones binarias. Conjuntos de Entidades y de Relaciones 7. Conjuntos de Relaciones: Cardinalidad

• 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

Page 15: Tema 2: Modelo Entidad-Relación(ER) · PDF filepuede ser convertidas en una serie de relaciones binarias. Conjuntos de Entidades y de Relaciones 7. Conjuntos de Relaciones: Cardinalidad

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

Page 16: Tema 2: Modelo Entidad-Relación(ER) · PDF filepuede ser convertidas en una serie de relaciones binarias. Conjuntos de Entidades y de Relaciones 7. Conjuntos de Relaciones: Cardinalidad

INF_PRO

N:1

(0, n) PROYECTO

id_proyecto nombre

(0, 1) INFORME

fecha numero

Conjuntos de Entidades y de Relaciones 16

Page 17: Tema 2: Modelo Entidad-Relación(ER) · PDF filepuede ser convertidas en una serie de relaciones binarias. Conjuntos de Entidades y de Relaciones 7. Conjuntos de Relaciones: Cardinalidad

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.

ID_Operario

Dni

1:N

Nombre

Dirige Empleados

subordinado (0, m)

(1, 1)

jefe

Conjuntos de Entidades y de Relaciones 17

Page 18: Tema 2: Modelo Entidad-Relación(ER) · PDF filepuede ser convertidas en una serie de relaciones binarias. Conjuntos de Entidades y de Relaciones 7. Conjuntos de Relaciones: Cardinalidad

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

Page 19: Tema 2: Modelo Entidad-Relación(ER) · PDF filepuede ser convertidas en una serie de relaciones binarias. Conjuntos de Entidades y de Relaciones 7. Conjuntos de Relaciones: Cardinalidad

• 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’).

INVESTIGADOR

Espec. europeo

ISA

id_empleado nombre

PERSONAL

DOCENTE

Grado Años

Conjuntos de Entidades y de Relaciones 19

Page 20: Tema 2: Modelo Entidad-Relación(ER) · PDF filepuede ser convertidas en una serie de relaciones binarias. Conjuntos de Entidades y de Relaciones 7. Conjuntos de Relaciones: Cardinalidad

• 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

Page 21: Tema 2: Modelo Entidad-Relación(ER) · PDF filepuede ser convertidas en una serie de relaciones binarias. Conjuntos de Entidades y de Relaciones 7. Conjuntos de Relaciones: Cardinalidad

INVESTIGADOR

Espec. europeo

ISA

PERSONAL

DOCENTE

Grado Años

id_empleado nombre

totalidad

sin solapamiento

Conjuntos de Entidades y de Relaciones 21

Page 22: Tema 2: Modelo Entidad-Relación(ER) · PDF filepuede ser convertidas en una serie de relaciones binarias. Conjuntos de Entidades y de Relaciones 7. Conjuntos de Relaciones: Cardinalidad

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.

OFERTA

M:N

(1, m) (1, n) TRATAMIENTO

id_ttmto

BALNEARIO

id_balneario nombre

loca

num_c

PENSIONISTA

id_pensi edad

dni

nombre

SOLICITUD

M:N

(1, m)

(1, n)

aceptada

Conjuntos de Entidades y de Relaciones 22

Page 23: Tema 2: Modelo Entidad-Relación(ER) · PDF filepuede ser convertidas en una serie de relaciones binarias. Conjuntos de Entidades y de Relaciones 7. Conjuntos de Relaciones: Cardinalidad

Otro ejemplo.

OFERTA

M:N

(1, m) (1, n) TRATAMIENTO

id_ttmto

BALNEARIO

id_balneario nombre

loca

num_c

PENSIONISTA

id_pensi edad

dni

nombre

SOLICITUD

M:N

(1, m)

(1, n)

aceptada

Conjuntos de Entidades y de Relaciones 23

Page 24: Tema 2: Modelo Entidad-Relación(ER) · PDF filepuede ser convertidas en una serie de relaciones binarias. Conjuntos de Entidades y de Relaciones 7. Conjuntos de Relaciones: Cardinalidad

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

Page 25: Tema 2: Modelo Entidad-Relación(ER) · PDF filepuede ser convertidas en una serie de relaciones binarias. Conjuntos de Entidades y de Relaciones 7. Conjuntos de Relaciones: Cardinalidad

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

Page 26: Tema 2: Modelo Entidad-Relación(ER) · PDF filepuede ser convertidas en una serie de relaciones binarias. Conjuntos de Entidades y de Relaciones 7. Conjuntos de Relaciones: Cardinalidad

• 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

Page 27: Tema 2: Modelo Entidad-Relación(ER) · PDF filepuede ser convertidas en una serie de relaciones binarias. Conjuntos de Entidades y de Relaciones 7. Conjuntos de Relaciones: Cardinalidad

• 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