tema 2: modelo entidad-asociación...

54
Bases de datos 1 Tema 2: Modelo Entidad Tema 2: Modelo Entidad - - Asociación (E Asociación (E - - A) A) Conjuntos entidad Conjuntos asociación Cuestiones de diseño Restricciones de asociaciones Claves Diagrama E-A Características del modelo E-A ampliado Diseño de un esquema E-A de base de datos Reducción de un esquema E-A a tablas (relaciones)

Upload: others

Post on 24-Mar-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tema 2: Modelo Entidad-Asociación (E-A)gssi.det.uvigo.es/users/mramos/public_html/bd/tema2-1.pdf · P.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como

Bases de datos 1

Tema 2: Modelo EntidadTema 2: Modelo Entidad--Asociación (EAsociación (E--A)A)

Conjuntos entidadConjuntos asociaciónCuestiones de diseñoRestricciones de asociacionesClavesDiagrama E-ACaracterísticas del modelo E-A ampliadoDiseño de un esquema E-A de base de datosReducción de un esquema E-A a tablas (relaciones)

Page 2: Tema 2: Modelo Entidad-Asociación (E-A)gssi.det.uvigo.es/users/mramos/public_html/bd/tema2-1.pdf · P.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como

Bases de datos 2

Conjuntos entidadConjuntos entidad

Una base de datos se puede modelar como:Un conjunto de entidades,Asociaciones entre entidades.

Una entidad es un objeto que existe y es distinguible de otros objetos.

Ejemplo: una persona, compañía, evento o planta determinada

Las entidades tienen atributosEjemplo: las personas tienen nombres y direcciones.

Un conjunto entidad es un conjunto de entidades del mismo tipo que comparten las mismas propiedades.

Ejemplo: el conjunto de todas las personas, compañías, árboles, vacaciones

Page 3: Tema 2: Modelo Entidad-Asociación (E-A)gssi.det.uvigo.es/users/mramos/public_html/bd/tema2-1.pdf · P.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como

Bases de datos 3

Conjuntos entidad Conjuntos entidad clientecliente y y prestamoprestamo

ciudad-cliente

calle-cliente

nombre-cliente

Id-cliente

OurenseMiñoRubio335-57-7991

CoruñaLugoFraga963-96-3963

VigoNorteSánchez244-66-8800

SantiagoAlmaVeiga555-55-5555

MadridPrincipeVázquez677-89-9011

VigoNorteLópez019-20-3746

MadridPríncipeGómez321-12-3123

cantidadnumero-prestamo

1300L-16

900L-11

500L-19

1500L-14

1500L-15

2000L-23

1000L-17

cliente prestamo

Page 4: Tema 2: Modelo Entidad-Asociación (E-A)gssi.det.uvigo.es/users/mramos/public_html/bd/tema2-1.pdf · P.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como

Bases de datos 4

AtributosAtributosUna entidad se representa por un conjunto de atributos, que son propiedades descriptivas que tienen todos los miembros de un conjunto entidad.

Dominio – el conjunto de valores permitidos para cada atributoTipos de atributo:

Atributos simples y compuestos.Atributos monovalorados y multivalorados

P.e. atributo multivalorado : numeros-telefonoAtributos derivados

Se pueden calcular a partir de otros atributosP.e. edad, dada la fecha de nacimiento

Ejemplo: cliente = (id-cliente, nombre-cliente,

direccion-cliente, ciudad-cliente)prestamo = (numero-prestamo, cantidad)

Page 5: Tema 2: Modelo Entidad-Asociación (E-A)gssi.det.uvigo.es/users/mramos/public_html/bd/tema2-1.pdf · P.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como

Bases de datos 5

Atributos compuestosAtributos compuestos

Atributoscompuestos

Atributoscomponentes

nombre completo direccion

primer apellidonombre segundo apellido provincia C.P.calle ciudad

numero nombre piso

Page 6: Tema 2: Modelo Entidad-Asociación (E-A)gssi.det.uvigo.es/users/mramos/public_html/bd/tema2-1.pdf · P.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como

Bases de datos 6

Conjuntos asociaciónConjuntos asociación

Una asociación es una relación entre varias entidadesEjemplo:

López deposita A-102entidad cliente conjunto asociación entidad cuenta

Un conjunto asociación es una relación matemática entre n ≥ 2 entidades, cada una perteneciente a un conjunto entidad

{(e1, e2, … en) | e1 ∈ E1, e2 ∈ E2, …, en ∈ En}

donde (e1, e2, …, en) es una asociaciónEjemplo:

(López, A-102) ∈ depositos

Page 7: Tema 2: Modelo Entidad-Asociación (E-A)gssi.det.uvigo.es/users/mramos/public_html/bd/tema2-1.pdf · P.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como

Bases de datos 7

Conjunto asociación Conjunto asociación prestatarioprestatario

ciudad-cliente

calle-cliente

nombre-cliente

Id-cliente

OurenseMiñoRubio335-57-7991

CoruñaLugoFraga963-96-3963

VigoNorteSánchez244-66-8800

SantiagoAlmaVeiga555-55-5555

MadridPrincipeVázquez677-89-9011

VigoNorteLópez019-20-3746

MadridPríncipeGómez321-12-3123

cantidadnumero-prestamo

1300L-16

900L-11

500L-19

1500L-14

1500L-15

2000L-23

1000L-17

cliente prestamo

Page 8: Tema 2: Modelo Entidad-Asociación (E-A)gssi.det.uvigo.es/users/mramos/public_html/bd/tema2-1.pdf · P.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como

Bases de datos 8

Conjuntos asociación (Cont.)Conjuntos asociación (Cont.)Un atributo también puede ser propiedad de un conjunto asociación.Por ejemplo, el conjunto asociación depositante entre los conjuntos entidad cliente y cuenta puede tener el atributo fecha-acceso

López

Gómez

Paz

Sánchez

Veiga

Pérez

cliente (nombre-cliente)

A-101

A-102

A-305

A-201

A222

A-215

cuenta (numero-cuenta)

A217

depositante (fecha-acceso)

24 mayo 2002

3 junio 2002

21 junio 2002

10 junio 2002

17junio 2002

28 mayo 2002

28 mayo 2002

24 junio 2002

23 mayo 2002

Page 9: Tema 2: Modelo Entidad-Asociación (E-A)gssi.det.uvigo.es/users/mramos/public_html/bd/tema2-1.pdf · P.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como

Bases de datos 9

Grado de un conjunto asociaciónGrado de un conjunto asociación

Indica el número de conjuntos entidad que pueden participar en un conjunto asociación.Los conjuntos asociación en que participan dos conjuntos entidadse denominan binarias (o de grado dos). Normalmente, la mayoría de los conjuntos asociación son binarias.En un conjuntos asociación pueden participar mas de dos conjuntos entidad.

Las asociaciones entre más de dos conjuntos entidad no son comunes, La mayoría de las asociaciones son binarias.

P.e. Supongamos que los empleados de un banco pueden tener puestos (responsabilidades) en varias sucursales, con diferentes responsabilidades en cada sucursal. Entonces habrá una asociación ternaria entre los conjuntos entidad empleado, puesto y sucursal

Page 10: Tema 2: Modelo Entidad-Asociación (E-A)gssi.det.uvigo.es/users/mramos/public_html/bd/tema2-1.pdf · P.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como

Bases de datos 10

Cardinalidad de un conjunto asociaciónCardinalidad de un conjunto asociación

Indica el número de entidades a las que se puede asociar otra entidad mediante el conjunto asociación.Fundamentalmente es útil para conjuntos asociación binarios.La cardinalidad de un conjunto asociación binario puede ser de cuatro tipos:

Uno a uno (1:1)Uno a varios (1:M)Varios a uno (M:1)Varios a varios (M:N)

Page 11: Tema 2: Modelo Entidad-Asociación (E-A)gssi.det.uvigo.es/users/mramos/public_html/bd/tema2-1.pdf · P.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como

Bases de datos 11

CardinalidadesCardinalidades

Nota: Algunos elementos en A y B pueden no estar asociados a ningún elemento del otro conjunto

a1

a2

a3

a4

A

b1

b2

b3

b4

B

b1

b2

b3

b4

B

a1

a2

a3

A

(a) Uno a uno (b) Uno a varios

b5

Page 12: Tema 2: Modelo Entidad-Asociación (E-A)gssi.det.uvigo.es/users/mramos/public_html/bd/tema2-1.pdf · P.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como

Bases de datos 12

CardinalidadesCardinalidades

Nota: Algunos elementos en A y B pueden no estar asociados a ningún elemento del otro conjunto

A B

(a) Varios a uno (b) Varios a varios

BA

a1

a2

a3

a4

b1

b2

b3

b4

a1

b1

b2

b3

a2

a3

a4

a5

Page 13: Tema 2: Modelo Entidad-Asociación (E-A)gssi.det.uvigo.es/users/mramos/public_html/bd/tema2-1.pdf · P.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como

Bases de datos 13

La cardinalidad afecta al diseño ELa cardinalidad afecta al diseño E--AAPodemos hacer fecha-apertura un atributo de cuenta, en vez de un atributo de asociación, si cada cuenta sólo puede pertenecer a un único cliente

Es decir, la asociación de cuenta a cliente es varios a uno, o, los que es equivalente, cliente a cuenta es uno a varios

cliente (nombre-cliente)

24 mayo 2002

3 junio 2002

10 junio 2002

28 mayo 2002

17 junio 2002

24 junio 2002

23 mayo 2002

cuenta (numero-cuenta, fecha-acceso)

depositante

López

Gómez

Paz

Sánchez

Veiga

Pérez

A-101

A-102

A-305

A-201

A222

A-215

A217

Page 14: Tema 2: Modelo Entidad-Asociación (E-A)gssi.det.uvigo.es/users/mramos/public_html/bd/tema2-1.pdf · P.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como

Bases de datos 14

Diagramas EDiagramas E--AA

Rectángulos: representan conjuntos entidad.Rombos: representan conjuntos asociación.Líneas: unen los atributos con los conjuntos entidad y los conjuntos entidad con los conjuntos asociación.Elipses: representan atributos

Elipses dobles: representan atributos multivaluados.Elipses discontinuas: denotan atributos derivados.

Subrayado: indica que un atributo es una clave primaria.

clientes prestamosprestatario

nombre-cliente calle-cliente

id-cliente ciudad-cliente

numero-prestamo cantidad

Page 15: Tema 2: Modelo Entidad-Asociación (E-A)gssi.det.uvigo.es/users/mramos/public_html/bd/tema2-1.pdf · P.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como

Bases de datos 15

Diagrama EDiagrama E--A con atributos compuestos, A con atributos compuestos, multivaluados y derivadosmultivaluados y derivados

cliente

Id-cliente

nombre

nombre-propio segundo-apellido

primer-apellido

numero-telefono fecha-nacimiento edad

direccion

calle ciudad

provincia

C.P.

nombre-calle

numero-calle piso-calle

Page 16: Tema 2: Modelo Entidad-Asociación (E-A)gssi.det.uvigo.es/users/mramos/public_html/bd/tema2-1.pdf · P.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como

Bases de datos 16

ConjutosConjutos asociación con atributosasociación con atributos

clientes cuenta

nombre-cliente calle-cliente

id-cliente ciudad-cliente

numero-cuenta saldofecha-acceso

depositante

Page 17: Tema 2: Modelo Entidad-Asociación (E-A)gssi.det.uvigo.es/users/mramos/public_html/bd/tema2-1.pdf · P.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como

Bases de datos 17

RolesRolesLos conjuntos entidad que participan en una asociación no tienen por que ser distintosLas etiquetas “director” y “trabajador” se denominan roles; indican cómo interactúan las entidades a través del conjunto asociación “trabaja-para”.En los diagramas E-A los roles se indican etiquetando lal líneas que unen rombos y rectángulos.Las etiquetas de rol son opcionales y se utilizan para clarificar la semántica de la asociación.

nombre-empleado

Id-empleado numero-telefono

empleado trabaja-para

director

trabajador

Page 18: Tema 2: Modelo Entidad-Asociación (E-A)gssi.det.uvigo.es/users/mramos/public_html/bd/tema2-1.pdf · P.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como

Bases de datos 18

Restricciones de cardinalidadRestricciones de cardinalidadLas restricciones de cardinalidad se indican dibujando o bien una flecha (→), que significa “uno,” o bien un extremo sin flecha (—), que significa “varios,” entre el conjunto asociación y el conjunto entidad correspondiente.P.e.: Asociación uno-a-uno:

Un cliente se asocia con, como máximo un préstamo mediante la asociación prestatarioUn préstamo se asocia con como máximo un cliente mediante prestatario

clientes prestamosprestatario

nombre-cliente calle-cliente

id-cliente ciudad-cliente

numero-prestamo cantidad

Page 19: Tema 2: Modelo Entidad-Asociación (E-A)gssi.det.uvigo.es/users/mramos/public_html/bd/tema2-1.pdf · P.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como

Bases de datos 19

Asociaciones unoAsociaciones uno--aa--variosvarios

En una asociación uno-a-varios un préstamo se asocia con, como mucho, un cliente a través de prestatario, y un cliente se asocia con varios (incluido 0) prestamos a través de prestatario

clientes prestamosprestatario

nombre-cliente calle-cliente

id-cliente ciudad-cliente

numero-prestamo cantidad

Page 20: Tema 2: Modelo Entidad-Asociación (E-A)gssi.det.uvigo.es/users/mramos/public_html/bd/tema2-1.pdf · P.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como

Bases de datos 20

Asociaciones variosAsociaciones varios--aa--unouno

En una asociación varios-a-uno un préstamo se asocia con varios (incluido 0) clientes a través de prestatario y un cliente se asocia con como mucho un préstamo a través de prestatario

clientes prestamosprestatario

nombre-cliente calle-cliente

id-cliente ciudad-cliente

numero-prestamo cantidad

Page 21: Tema 2: Modelo Entidad-Asociación (E-A)gssi.det.uvigo.es/users/mramos/public_html/bd/tema2-1.pdf · P.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como

Bases de datos 21

Asociaciones variosAsociaciones varios--aa--variosvarios

Un cliente se asocia con varios (incluido 0) préstamos a través de prestatarioUn préstamo se asocia con varios (incluido 0) clientes a través de prestatario

clientes prestamosprestatario

nombre-cliente calle-cliente

id-cliente ciudad-cliente

numero-prestamo cantidad

Page 22: Tema 2: Modelo Entidad-Asociación (E-A)gssi.det.uvigo.es/users/mramos/public_html/bd/tema2-1.pdf · P.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como

Bases de datos 22

Participación de un conjunto entidad en un Participación de un conjunto entidad en un conjunto asociaciónconjunto asociación

Participación total (se indica mediante una línea doble): cada entidad del conjunto entidad participa en al menos una asociación del conjunto asociación

P.e. la participación de prestamo en prestatario es totalcada préstamo debe tener un cliente asociado a través de prestatario

Participación parcial: algunas entidades pueden no participar en ninguna asociación del conjunto asociación

P.e. la participación de cliente en prestatario es parcial

clientes prestamosprestatario

nombre-cliente calle-cliente

id-cliente ciudad-cliente

numero-prestamo cantidad

Page 23: Tema 2: Modelo Entidad-Asociación (E-A)gssi.det.uvigo.es/users/mramos/public_html/bd/tema2-1.pdf · P.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como

Bases de datos 23

Notación alternativa para límites de Notación alternativa para límites de cardinalidadcardinalidad

Los límites de cardinalidad también pueden expresar restricciones de participación

clientes prestamosprestatario

nombre-cliente calle-cliente

id-cliente ciudad-cliente

numero-prestamo cantidad

0..* 1..1

Page 24: Tema 2: Modelo Entidad-Asociación (E-A)gssi.det.uvigo.es/users/mramos/public_html/bd/tema2-1.pdf · P.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como

Bases de datos 24

ClavesClaves

Una superclave de un conjunto entidad es un conjunto de uno o más atributos cuyos valores determinan de manera única cada entidad.Una clave candidata de un conjunto entidad es una superclave mínima

Id-clente es una clave candidata de clientenumero-cuenta es una clave candidata de cuenta

Aunque pueden existir varias claves candidatas en un conjunto entidad, una de ellas se debe elegir como clave primaria.

Page 25: Tema 2: Modelo Entidad-Asociación (E-A)gssi.det.uvigo.es/users/mramos/public_html/bd/tema2-1.pdf · P.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como

Bases de datos 25

Claves para conjuntos asociaciónClaves para conjuntos asociación

El conjunto de claves primarias de los conjuntos entidad participantes forman una superclave del conjunto asociación.

(id-cliente, numero-cuenta) es una superclave de depositanteNOTA: esto significa que un par de conjuntos entidad pueden tener como mucho una asociación en un determinado conjunto asociación.

P.e. si queremos guardar todas las fechas-de-acceso a cada cuenta por cada cliente, no podemos utilizar una asociación paracada acceso. Aunque podemos utilizar un atributo multivalorado

Debemos considerar la cardinalidad de los conjuntos asociación cuando decidimos cuales son las claves candidatasNecesitamos considerar la semántica de los conjuntos asociación a la hora de elegir la clave primaria en caso de que haya más de una clave candidata

Page 26: Tema 2: Modelo Entidad-Asociación (E-A)gssi.det.uvigo.es/users/mramos/public_html/bd/tema2-1.pdf · P.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como

Bases de datos 26

Diagramas EDiagramas E--A con asociaciones ternariasA con asociaciones ternarias

empleados

nombre-empleado calle

id-empleado ciudadnombre-sucursal activos

ciudad_sucursal

sucursal

nombre-puestol nivel

puesto

trabaja-en

Page 27: Tema 2: Modelo Entidad-Asociación (E-A)gssi.det.uvigo.es/users/mramos/public_html/bd/tema2-1.pdf · P.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como

Bases de datos 27

Restricciones de cardinalidad en Restricciones de cardinalidad en asociaciones ternariasasociaciones ternarias

Se permite como máximo una flecha saliente de una asociación ternaria (o de grado superior) para indicar restricciones de cardinalidadP.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como mucho un puesto en cualquier sucursal.Si hay más de una flecha, hay dos formas de definir el significado.

P.e. una asociación ternaria R entre A, B y C con flechas a B y C puede significar1. cada entidad A se asocia con una única entidad de B y C, o2. cada par de entidades de (A, B) se asocia con una única entidad C,

y cada par (A, C) se asocia con una única de BCada alternativa se ha utilizado en distintos formalismosPara evitar confusiones no permitiremos más que una flecha

Page 28: Tema 2: Modelo Entidad-Asociación (E-A)gssi.det.uvigo.es/users/mramos/public_html/bd/tema2-1.pdf · P.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como

Bases de datos 28

Asociaciones binarias vs. no binariasAsociaciones binarias vs. no binariasAlgunas asociaciones que parecen ser no binarias se pueden representar mejor utilizando asociaciones binarias

P.e. Una asociación ternaria padres, relacionando un niño con su padre y madre. Es mejor reemplazarla por dos asociaciones binarias: padre y madre

Utilizando dos asociaciones binarias podemos representar información parcial (p.e. sólo se conoce la madre)

Pero hay algunas asociaciones que son no binarias por naturalezaP.e. trabaja-en

Page 29: Tema 2: Modelo Entidad-Asociación (E-A)gssi.det.uvigo.es/users/mramos/public_html/bd/tema2-1.pdf · P.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como

Bases de datos 29

Convirtiendo asociaciones no binarias en Convirtiendo asociaciones no binarias en binariasbinarias

En general, cualquier asociación no binaria se puede representar mediante asociaciones binarias creando un conjunto entidad artificial:

Reemplazar R entre los conjuntos entidad A, B and C por un conjunto entidad E, y tres conjuntos asociación:

1. RA, asociando E y A 2.RB, asociando E y B3. RC, asociando E y C

Crear un atributo identificador especial para EAñadir todos los atributos de R a E Para cada asociación (ai , bi , ci) en R,

1.crear una nueva entidad ei en el conjunto E 2. añadir (ei , ai ) a RA

3. añadir (ei , bi ) a RB 4. añadir (ei , ci ) a RC

A

CB E

A

B CR

RA

RB RC

Page 30: Tema 2: Modelo Entidad-Asociación (E-A)gssi.det.uvigo.es/users/mramos/public_html/bd/tema2-1.pdf · P.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como

Bases de datos 30

Convirtiendo asociaciones no binarias Convirtiendo asociaciones no binarias (Cont.)(Cont.)

También es necesario convertir las restriccionesNo siempre es posible transformar todas las restriccionesPuede haber instancias en el nuevo esquema que no se corresponden con ninguna instancia de R

Ejercicio: añadir restricciones a las asociaciones RA, RB y RC para asegurar que una nueva entidad corresponda exactamente a una entidad en cada uno de los conjuntos entidad A, B y C

Podemos evitar crear un atributo identificativo haciendo que E sea un conjunto entidad débil identificado por los tres conjuntos asociación

Page 31: Tema 2: Modelo Entidad-Asociación (E-A)gssi.det.uvigo.es/users/mramos/public_html/bd/tema2-1.pdf · P.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como

Bases de datos 31

Cuestiones de diseñoCuestiones de diseño

Uso de conjuntos entidad vs. atributosLa elección depende principalmente de la estructura del mundo que modelamos y de la semántica asociada con el atributo en cuestión.Uso de conjuntos entidad vs. conjuntos asociaciónAyuda: definir conjuntos asociación para definir una acción que ocurre entre entidadesConjuntos asociación binarios vs n-ariosAunque se puede reemplazar cualquier conjunto asociación no binario (n-ario, para n > 2) por un conjunto de asociaciones binarias, un conjunto asociación n-ario muestra de manera más clara que varias entidades participan en una única asociación.Incluir atributos en las asociaciones

Page 32: Tema 2: Modelo Entidad-Asociación (E-A)gssi.det.uvigo.es/users/mramos/public_html/bd/tema2-1.pdf · P.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como

Bases de datos 32

Conjuntos entidad débilesConjuntos entidad débiles

Un conjunto entidad que no tiene una clave primaria se denomina conjunto entidad débil.La existencia de un conjunto entidad débil depende de la existencia de un conjunto entidad identificador

debe estar relacionado con el conjunto entidad identificador mediante un conjunto asociación uno-a-varios total desde el conjunto entidad identificador al conjunto entidad débilLa asociación identificadora se representa mediante un rombo doble

El discriminador (o clave parcial) de un conjunto entidad débil es el conjunto de atributos que diferencian las entidades del conjunto entidad débil.La clave primaria de un conjunto entidad débil está formada por la clave primaria del conjunto entidad fuerte del que depende existencialmente el conjunto entidad débil junto con el discriminador del propio conjunto entidad débil.

Page 33: Tema 2: Modelo Entidad-Asociación (E-A)gssi.det.uvigo.es/users/mramos/public_html/bd/tema2-1.pdf · P.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como

Bases de datos 33

Conjuntos entidad débiles (Cont.)Conjuntos entidad débiles (Cont.)Un conjunto entidad débil se representa mediante un rectángulo doble.El discriminador de un conjunto entidad débil se subraya con una línea discontinua.Numero-pago: discriminador del conjunto entidad pagoClave primaria para pago – (numero-prestamo, numero-pago)

prestamo pago

numero-prestamo cantidad

numero-pago

fecha-pago

cantidad-pago

pago-prestamo

Page 34: Tema 2: Modelo Entidad-Asociación (E-A)gssi.det.uvigo.es/users/mramos/public_html/bd/tema2-1.pdf · P.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como

Bases de datos 34

Conjuntos entidad débiles (Cont.)Conjuntos entidad débiles (Cont.)

Nota: la clave primaria de un conjunto entidad fuerte no se almacena explícitamente en el conjunto entidad débil, dado que está implícita en la asociación identificadora.Si numero-prestamo se almacenara explícitamente, pago se podría convertir en entidad fuerte, pero entonces la asociación entre pago y prestamo debería duplicarse por la asociación implícita definida por el atributo numero-prestamo común a pagoy prestamo

Page 35: Tema 2: Modelo Entidad-Asociación (E-A)gssi.det.uvigo.es/users/mramos/public_html/bd/tema2-1.pdf · P.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como

Bases de datos 35

Ejemplos de conjunto entidad débilesEjemplos de conjunto entidad débiles

En una universidad, una asignatura es una entidad fuerte y una oferta-de-asignatura se puede modelar como una entidad débilEl discriminador de oferta-de-asignatura debería ser cuatrimestre (incluyendo año)Si modelamos oferta-de-curso como una entidad fuerte debemos introducir como atributo codigo-asignatura. Entonces la relación con asignatura debería estar implícita en el atributo codigo-asignatura

Page 36: Tema 2: Modelo Entidad-Asociación (E-A)gssi.det.uvigo.es/users/mramos/public_html/bd/tema2-1.pdf · P.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como

Bases de datos 36

EspecializaciónEspecialización

Proceso de diseño arriba-abajo; creamos subgrupos con un conjunto de entidades que se distinguen de las demás entidades del conjunto.Estos subgrupos se convierten en conjuntos entidad de más bajo nivel que tiene atributos o participan en asociaciones que no son aplicables al conjunto entidad de nivel superior.Se representa mediante un triángulo con la etiqueta ISA (P.e. cliente “es una” persona).Herencia de atributos – un conjunto entidad de nivel más bajo hereda todos los atributos y participaciones en asociaciones delconjunto entidad de nivel superior al que está enlazado.

Page 37: Tema 2: Modelo Entidad-Asociación (E-A)gssi.det.uvigo.es/users/mramos/public_html/bd/tema2-1.pdf · P.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como

Bases de datos 37

Ejemplo de especialización Ejemplo de especialización

persona

empleado cliente

oficinista vendedor secretario

ISA

ISA

salario

numero-despacho

numero-ventanilla horas-trabajadas

horas-trabajadas

nombre calle ciudad

tipo

Page 38: Tema 2: Modelo Entidad-Asociación (E-A)gssi.det.uvigo.es/users/mramos/public_html/bd/tema2-1.pdf · P.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como

Bases de datos 38

GeneralizaciónGeneralización

Proceso de diseño abajo-arriba – combinar una serie de conjuntos entidad que comparten las mismas características en un conjunto entidad de más alto nivel.La especialización y la generalización son procedimientos opuestos. Por ello se representan de la misma forma en los diagramas E-A.Los términos especialización y generalización se pueden utilizarcomo sinónimos.

Page 39: Tema 2: Modelo Entidad-Asociación (E-A)gssi.det.uvigo.es/users/mramos/public_html/bd/tema2-1.pdf · P.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como

Bases de datos 39

Especialización y generalización (Cont.)Especialización y generalización (Cont.)

Puede haber varias especializaciones de un conjunto entidad en base a diferentes características. P.e. empleados-temporales vs. empleados-fijos, además de oficinistas vs. secretarios vs. vendedoresCada empleado debe ser:

Miembro de empleados-.temporales o de empleados fijos, y también miembro de uno de los siguientes grupos: oficinistas, secretarios, o vendedores

La asociación ISA también se denomina asociación superclase -subclase

Page 40: Tema 2: Modelo Entidad-Asociación (E-A)gssi.det.uvigo.es/users/mramos/public_html/bd/tema2-1.pdf · P.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como

Bases de datos 40

Restricciones de diseño en una Restricciones de diseño en una especialización/generalizaciónespecialización/generalización

Restricciones sobre que entidades pueden ser miembros de un conjunto de entidades de nivel más bajo.

Definido por condicionesP.e. todos los clientes de más de 65 años son miembros del conjunto entidad mayor-de-edad; mayor-de-edad ISA persona.

Definido por el usuarioRestricciones sobre cuando o no las entidades pueden pertenecer a más de un conjunto entidad de nivel más bajo dentro de la misma generalización.

DisjuntoUna entidad puede pertenecer a un solo conjunto entidad de menornivelSe indica en el diagrama E-A escribiendo disjunto al lado del triángulo ISA

SolapadoUna entidad puede pertenecer a varios conjuntos entidad de menornivel

Page 41: Tema 2: Modelo Entidad-Asociación (E-A)gssi.det.uvigo.es/users/mramos/public_html/bd/tema2-1.pdf · P.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como

Bases de datos 41

Restricciones de diseño en una Restricciones de diseño en una especialización/generalización (Cont.)especialización/generalización (Cont.)

Restricción de completitud – especifica cuando o no una entidad del conjunto entidad de nivel superior debe pertenecer a al menos un conjunto entidad de menor nivel en la generalización.

total : una entidad siempre debe pertenecer a un conjunto entidad de menor nivelparcial: una entidad no necesita pertenecer a uno de los conjuntos entidad de menor nivel

Page 42: Tema 2: Modelo Entidad-Asociación (E-A)gssi.det.uvigo.es/users/mramos/public_html/bd/tema2-1.pdf · P.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como

Bases de datos 42

AgregaciónAgregaciónConsideremos la asociación ternaria trabaja-en.

Supongamos que queremos almacenar información sobre los directores de las tareas que realiza cada empleado en una sucursal

empleado

puesto

oficina

director

trabaja-en

dirige

Page 43: Tema 2: Modelo Entidad-Asociación (E-A)gssi.det.uvigo.es/users/mramos/public_html/bd/tema2-1.pdf · P.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como

Bases de datos 43

Agregación (Cont.)Agregación (Cont.)

Los conjuntos asociación trabaja-en y dirige representan información redundante

Cada asociación dirige corresponde a una asociación trabaja-enSin embargo, algunas asociaciones trabaja-en pueden no corresponderse con ninguna asociación dirige

Por eso no podemos descartar la asociación trabaja-en

Eliminamos esta redundancia mediante agregaciónTratamos la asociación como una entidad abstractaPermitimos asociaciones ente asociacionesAbstraemos la asociación en una nueva entidad

Sin introducir redundancia, el siguiente diagrama representa:Un empleado trabaja en un puesto concreto en una sucursal concretaUna combinación empleado, sucursal, puesto puede tener asociado un director

Page 44: Tema 2: Modelo Entidad-Asociación (E-A)gssi.det.uvigo.es/users/mramos/public_html/bd/tema2-1.pdf · P.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como

Bases de datos 44

Diagrama EDiagrama E--A con agregaciónA con agregación

empleado

puesto

oficina

director

dirige

trabaja-en

Page 45: Tema 2: Modelo Entidad-Asociación (E-A)gssi.det.uvigo.es/users/mramos/public_html/bd/tema2-1.pdf · P.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como

Bases de datos 45

Decisiones de diseño EDecisiones de diseño E--AA

El uso de un atributo o conjunto entidad para representar un objeto.Cuándo un concepto del mundo real se expresa mejor mediante un conjunto entidad o mediante un conjunto asociación.El uso de asociaciones terciarias vs. dos asociaciones binarias.El uso de conjuntos entidad fuertes o débiles.El uso de especialización/generalización – contribuye a la modularidad en el diseño.El uso de agregación – se puede tratar el conjunto entidad agregado como una sola unidad sin importar los detalles de su estructura interna.

Page 46: Tema 2: Modelo Entidad-Asociación (E-A)gssi.det.uvigo.es/users/mramos/public_html/bd/tema2-1.pdf · P.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como

Bases de datos 46

Diagrama EDiagrama E--A para una entidad bancariaA para una entidad bancaria

sucursal

nombre-sucursal

ciudad-sucursal

activo

prestamo-sucursal

cliente

Id-cliente

nombre-cliente

calle-cliente

ciudad-cliente

prestatario prestamo

numero-prestamo

cantidad

prestamo-pago pago

numero-pago cantidad-pago

fecha-pago

empleado

Id-empleado nombre-empleado

numero-telefono

fecha-contratoduracion-contrato

nombre-empleado

trabaja-parajefe

trabajador

consejero tipo

depositante

fecha-acceso

cuenta

numero-cuenta saldo

ISA

cuenta-ahorro cuenta-corriente

tipo-interes descubierto

Page 47: Tema 2: Modelo Entidad-Asociación (E-A)gssi.det.uvigo.es/users/mramos/public_html/bd/tema2-1.pdf · P.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como

Bases de datos 47

Resumen de símbolos utilizados en la Resumen de símbolos utilizados en la notación Enotación E--AA

E

E

R

R

A

A

A

A

ER

A

Conjunto entidad

Conjunto entidaddébil

Asociación

Asociaciónidentificadorapara una entidaddébil

Clave primaria

Atributo

Atributomultivalorado

Atributo derivado

Participacióntotal de unaentidad en unaasociación

Atributodiscriminador deuna entidad débil

Page 48: Tema 2: Modelo Entidad-Asociación (E-A)gssi.det.uvigo.es/users/mramos/public_html/bd/tema2-1.pdf · P.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como

Bases de datos 48

Resumen de símbolos (Cont.)Resumen de símbolos (Cont.)

R Asociaciónvarios a varios

R Asociaciónuno a uno

R Asociaciónvarios a uno

ERrol

Indicador de rol

Generalización total

ER1..h

Límites decardinalidad

ISA ISA (Generalizacióno Especialización)

ISA Generalización disjunta

disjunta

ISA

Page 49: Tema 2: Modelo Entidad-Asociación (E-A)gssi.det.uvigo.es/users/mramos/public_html/bd/tema2-1.pdf · P.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como

Bases de datos 49

Notaciones ENotaciones E--A alternativasA alternativas

A3A2A1

RAsociaciónvarios a varios

* * R

RAsociaciónuno a uno

1 1 R

RAsociaciónvarios a uno

* 1 R

Entidad E con atributosA1, A2 y A3 y claveprimaria A1

Page 50: Tema 2: Modelo Entidad-Asociación (E-A)gssi.det.uvigo.es/users/mramos/public_html/bd/tema2-1.pdf · P.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como

Bases de datos 50

UMLUML

UML: Unified Modeling LanguageUML tiene muchos componentes para modelar gráficamente diferentes aspectos de un sistema softwareLos diagramas de clases UML se corresponden con diagramas E-A con algunas diferencias.

Page 51: Tema 2: Modelo Entidad-Asociación (E-A)gssi.det.uvigo.es/users/mramos/public_html/bd/tema2-1.pdf · P.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como

Bases de datos 51

Resumen de la notación de diagramas de Resumen de la notación de diagramas de clase UMLclase UML

cliente

Id-cliente

nombre-cliente calle-cliente

ciudad-cliente

1. Entidades yatributos

E1 E2rol1 rol2R

E1 E2rol1 rol2

a2

a1

R

2. Asociaciones RE1 E2rol1 rol2

RE1 E2rol1 rol2

a1 a2

Page 52: Tema 2: Modelo Entidad-Asociación (E-A)gssi.det.uvigo.es/users/mramos/public_html/bd/tema2-1.pdf · P.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como

Bases de datos 52

Notación de diagramas de clases UML (Cont.)Notación de diagramas de clases UML (Cont.)

E1 E20..1 0..*R3. Restriciionesde cardinalidad RE1 E20..* 0..1

4. Generalización yEspecialización

persona

cliente empleado

ISA

(generalizaciónsolapada)

persona

cliente empleado

ISA

(generalizacióndisjunta)

disjunta

persona

persona

cliente

cliente

empleado

empleado

disjunta

solapada

Page 53: Tema 2: Modelo Entidad-Asociación (E-A)gssi.det.uvigo.es/users/mramos/public_html/bd/tema2-1.pdf · P.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como

Bases de datos Manuel Ramos Cabrer 53

Fin del tema 2Fin del tema 2

Page 54: Tema 2: Modelo Entidad-Asociación (E-A)gssi.det.uvigo.es/users/mramos/public_html/bd/tema2-1.pdf · P.e. una flecha de trabaja-en a puesto indica que cad empleado trabaja en como

Bases de datos 54

Dependencia existencialDependencia existencial

Si la existencia de la entidad x depende de la existencia de la entidad y, entonces x es existencialmente dependiente de y.

y es la entidad dominante (p.e. prestamo)x es la entidad subordinada (p.e. pago)

prestamo-pago pagoprestamo

Si se elimina una entidad prestamo, entonces todas las entidades pago asociadas también de deben eliminar.