Sunteți pe pagina 1din 100

Modelos E/R y UML

C
Curso 2017 18
2017-18

1
Indice

1. Definición de Modelo de Datos


2 Modelo E/R
2.
3. Transformación Modelo E/R al Modelo Relacional
4. Modelo E/R extendido (E/R+)
5. Transformación Modelo E/R extendido al Modelo
Relacional
6. Modelo UML

2
1. Definición de Modelo de Datos

• Una de las características de la aproximación de BD es Abstracción.


– Esto se consigue mediante una herramienta: MODELOS DE DATOS.
• MODELO
– Instrumento que permite representar los datos de una organismo. Los
modelos se sitúan a un nivel más abstracto que los esquemas.

• COMPONENTES DE UN MODELO:
– ESTRUCTURAS DE DATOS
• Los datos forman estructuras.
– OPERACIONES
• Para manejar las estructuras.
– REGLAS DE INTEGRIDAD
• Especifican los estados consistentes de la BD.

3
Familias de Modelos. Características Generales
• Los modelos se clasifican en familias:
– PRE-RELACIONAL /LEGADOS (Modelo Jerárquico, Modelo en Red).
– RELACIONAL
– POST-RELACIONAL (Modelo Semántico, Modelo Orientado a Objetos,
NoSQL).

• Clasificación según los conceptos que proporcionan para describir la BD.


– Modelos de datos de Alto Nivel o Conceptuales
• Conceptos cercanos a la forma en el que los usuarios ven los datos.
Ej: Modelo E/R, UML
– Modelos de datos de Bajo Nivel o Físicos
• Conceptos que describen detalles sobre almacenamiento de los datos.
– Modelos de datos de Representación o Implementación
• Oculta algunos detalles sobre el almacenamiento pero se pueden
implementar en el ordenador. Ej: Modelo Relacional, Orientado a
Objetos (cercano al modelo de Alto Nivel).
4
Modelos Conceptuales para el diseño
de BDs. Ventajas
j
 Al no incluir detalles de implementación, los diseños son
más fáciles de entender y pueden utilizarse para la
comunicación con los usuarios no técnicos.
 Un esquema conceptual se puede utilizar como referencia
para comprobar que todos los requerimientos han sido
considerados y no hayy conflictos.
 Permiten centrarse en los aspectos de diseño lógico y
posponer las características de implementación.

5
Modelo E/R

ENTIDAD/Tipo Entidad

ATRIBUTO

RELACION/
C ON/ Tipo
po Relación
e ac ó

6
Modelo E/R

• Ventajas
– Simplicidad
– Representación Visual
– Herramienta de comunicación efectiva
– Integrado al modelo de bases de datos relacional

• Desventajas
– Representación de restricciones limitada
– Representación de relaciones limitada
– Representación limitada de la semántica del S.I.
– Ningún lenguaje de manipulación de datos

7
Mini-
Fases del diseño de BD
mundo

Requisitos funcionales OBTENCIÓN Y


ANÁLISIS DE REQUISITOS
IIndepen-
d
diente ANÁLISIS FUNCIONAL Requisitos de la BD
del SGBD
DISEÑO CONCEPTUAL
Especificación de
transacciones
Esquema conceptual (ER)

DISEÑO DE DISEÑO LÓGICO


PROGRAMAS DE APLICACIÓN
Ó (Transformación al modelo de datos)
Específico
Esquema lógico (ej. relacional)
para cada
IMPLEMENTACIÓN
SGBD
DE TRANSACCIONES
DISEÑO FÍSICO

Programas de aplicación Esquema interno


DBD
Ejemplo: requisitos de la BD “Empresa”
Requisitos
de la BD
• La empresa está organizada en departamentos. Cada uno con nombre y
número único.
único Tiene un director,
director su fecha de inicio y el número de empleados
que trabaja en él. Puede estar distribuido en varias localidades.

• Cada
C d ddepartamento
t t controla
t l cierto
i t número
ú d
de proyectos.t C d uno con
Cada
nombre y número únicos y se realiza en una sola localidad.

• De cada empleado se guarda su nombre, número de seguridad social,


dirección, salario, sexo y fecha de nacimiento. Departamento al que
pertenece. Proyectos en los que trabaja (pueden estar controlados por
departamentos distintos al que pertenece el empleado). Nº horas semanales
dedicadas a cada proyecto y quién es su supervisor.

• De cada subordinado al número de seguridad social de un empleado


interesa su nombre, sexo, fecha de nacimiento y parentesco (hijo, esposa,
...).
)
Ejemplo: esquema conceptual (ER)
para la BD “Empresa” Esquema
q conceptual
p
(ER)

FechaNcto Nombre Nombre Inicial Apellido

Parc Nss Nom FechaNcto Dirección Sexo Salario

supervisor (0 N)
(0,N)
(1,1) (0,N)
SUBORDINADO SUBORD_DE EMPLEADO
SUPERVISIÓN

Sexo Parentesco supervisado


p ((0,1)
, )

(1,N) (1,1) (0,1)


FechaInic
Horas TRABAJA_EN TRABAJA_PARA DIRIGE

(1,N) (1,N) (1,1)


(1 1)
(1,1) (0 N)
(0,N)
PROYECTO CONTROLA DEPARTAMENTO

N b
Nombre Nú
Número L
Localidad
lid d Localidades NºEmpleados
N Empleados

Número Nombre
Qué es un esquema conceptual
Esquema
q conceptual
p
(ER)

• Descripción concisa de los requisitos de información de los usuarios.

• Contiene descripciones de:


– Tipos de entidad:

– Relaciones y sus restricciones: ((1,N)


, ) ((0,N)
, ) ((0,N)
, ) ((1,1)
, )

• No incluyen detalles de implementación (como tipos de datos, etc.).


• Podría servir para comunicarse con usuarios NO técnicos sobre el contenido
que tendrá la BD.
Ejemplo: esquema lógico (relacional)
para la BD “Empresa”
Empresa Esquema
q lógico
g
(relacional)
Primary key (transformado a partir del ER anterior)
Unique

EMPLEADO
NSS
SS NOMBRE
O INIC
C APELLIDO
O FECHA
C _NCTO
C O DIRECCIÓN
CC Ó SSEXO
OSSALARIO
O SU
SUPERV DPTO
O
CF:EM- CF:DEPAR-
PLEADO TAMENTO
DEPARTAMENTO
NÚMERO NOMBRE DIRECTOR F_INIC_DIRECTOR
F INIC DIRECTOR LOCALIDADES DEPTO
LOCALIDADES_DEPTO
CF:EMPLEADO NÚMERO LOCALIDAD
PROYECTO
NÚMERO NOMBRE LOCALIDAD DEPTO CF:DEPAR-
TAMENTO
CF:DEPAR-
TAMENTO
SUBORDINADO TRABAJA_EN
EMPLEADO FECHA_NCTO
FECHA NCTO NOMBRE SEXO PARENTESCO EMPLEADO NP HORAS
CF:EM- CF:EM- CF: PRO-
PLEADO PLEADO YECTO

Normalizada
en FNBC
Ejemplo: esquema interno
para la BD “Empresa”
p p Esquema
q interno
(simplificado a una propuesta de índices) (índices)

• Depende de las transacciones (consultas


(consultas, inserciones
inserciones, modificaciones
modificaciones, ...))
más comunes sobre la BD. Según sean, podríamos haber llegado a la
siguiente definición de índices:
ÍNDICE
TABLA ÍNDICES SECUNDARIOS
PRIMARIO/AGRUPACIÓN
IS(APELLIDO, NOMBRE)
EMPLEADO IP(NSS)
IS(SUPERV), IS(DPTO)
DEPARTAMENTO IP(NÚMERO) IS(DIRECTOR)
PROYECTO IP(NÚMERO) IS(DEPTO)
IP(EMPLEADO,
SUBORDINADO
FECHA NCTO NOMBRE)
FECHA_NCTO,
IP(NÚMERO,
LOCALIZACIONES_DEPTO
LOCALIZACIÓN)
TRABAJA_EN IP(NP, EMPLEADO)
Conceptos del modelo ER (1/2)

ATRIBUTOS
TIPOS DE ENTIDAD SIMPLE
FUERTE
CLAVE

DÉBIL CLAVE PARCIAL

... COMPUESTO

TIPOS DE RELACIÓN
DERIVADO
NORMAL
MULTIVALOR
U O

IDENTIFICADOR

... COMPLEJO
Conceptos del modelo ER (2/2)

GRADO DE TIPO
RESTRICCIONES
DE RELACIÓN

(1, ) R ternario
PARTICIPACIÓN
TOTAL DE B EN R R B
A R B
( ,N)
CARDINALIDAD
N (VARIOS) DE B EN R R B C

RESTRICCIONES OTROS
NOTACIÓN
Ó ALTERNATIVA
•Dominio (tipo de datos)
(0,N) (1,1)
E1 R E2 •Valor
Valor nulo
•Conjunto de entidades
1 N
E1 R E2 y de relaciones
•Atributos de tipo de relación:
Tipo de entidad y su conjunto de entidades

LIBRO
Código Título NºCopias
Código Título NºCopias
Tolk-1 El Sr. de los Anillos 3
LIBRO
Orw-1 1984 2
Sh 1
Shar-1 Wilt 1
Tipo de entidad
o intensión
Conjunto de entidades del tipo de Al ser conjunto no puede
entidad LIBROO o extensión
ó h b entidades
haber tid d
repetidas
• Tipo
p de entidad es un conjuntoj de entidades q
que pposee el mismo conjunto
j
de atributos.
• Cada entidad del tipo de entidades contiene un valor para cada uno de los
atributos definidos en el tipo
p de entidades
• Para cada tipo de entidad (como LIBRO):
– Se describe con su nombre y lista de atributos
– Sus
S entidades
tid d son ell conjunto
j t ded entidades
tid d o extensión.
t ió
– El t. de entidad se llama intensión de su conjunto de entidades
Entidades y valores de atributos

Código=“Tolk-1”
Entidad 1 de LIBRO Título= “El sr. De los anillos”
Nº Copias=“3”

• Entidad: “cosa”
cosa del mundo real con existencia independiente
independiente. Ejemplos:
– Algo físico: una persona (Alberto), una casa, un automóvil, un empleado, ...
– Algo
g conceptual:
p una compañía
p ((ACME),), un p
puesto de trabajo
j ((secretario
de centro), un curso universitario (2º A), ...

• Atributo: Es una p
propiedad
p de las entidades del tipo
p de entidad.
• Valor de atributo: es el valor asignado en una entidad para un atributo.

j
• Toda entidad se describe mediante su conjunto de atributos. No p
puede haber
tipos de entidad sin ningún atributo definido.
Tipos de atributos

• Simple (o atómico): Salario • Complejos:


NomPila anidaciones arbitrarias
A llid 1
Apellido1 de atributos compuestos
• Compuesto: Nombre
y multivalor
Apellido2
– Pueden formar una jerarquía de varios niveles
– Representa la concatenación de todas sus
componentes simples

• Monovalor: Salario

Por ejemplo puede contener:


• Multivalor: Localidades
(Logroño, Navarrete, Ventosa)

• Almacenado: FechaN

Calculado a p
partir de la fecha de
• Derivado: Ed d
Edad nacimiento FechaN
Atributos clave
PROYECTO PROYECTO2
Nombre
Clave Localización
Nombre Número Localización Número

• Atributo clave de un t. de entidad:


– Tiene
Ti un valor
l único
ú i para cada d entidad
tid d del
d l tt. d
de entidad
tid d ((restricción
t i ió
de clave o unicidad). Se deberá cumplir para cualquier extensión.
– Ejemplo
j p claro: atributo Matrícula del tipo
p de entidad VEHÍCULO.
– Debe ser mínima: sin atributos superfluos
– Puede ser un atributo compuesto (como en PROYECTO2).
– Algunos t. de entidad (como PROYECTO) pueden tener más de un
atributo clave
– Puede haber t. de entidad sin clave: t. de entidad débil

• ¿Claves del tipo de entidad PROYECTO? ¿Y las de PROYECTO2?


• CONFUSIÓN FRECUENTE: pensar que la clave de PROYECTO
significa lo mismo que la de PROYECTO2.
Atributos con valor nulo y dominio de un atributo

• Se puede asignar valor nulo a atributos:


– Sin valor aplicable: por ejemplo el atributo titulo_universitario para
personas que no tenga
t este
t tipo
ti ded título.
tít l
– De valor desconocido:
• Porque falta: por ejemplo el atributo altura para una persona. Es
seguro que toda persona tiene un valor de altura.
• Porque no se sabe si existe: por ejemplo el atributo teléfono de una
persona p
persona, puede
ede qquee no tenga o qque e sí tenga pero no se cono
conozca.
ca
• Hay algunos atributos que no deberían contener valor nulo. Por ejemplo los
atributos clave que sirven para distinguir
g una entidad de las demás.

• Dominio de un atributo es el conjunto de todos los posibles valores que


puede tomar el atributo (su tipo de datos
datos, en términos de lenguajes de
programación).
Identificando tipos de entidad y sus atributos
para la BD “Empresa” (1/2)

a
EMPLEADO
Director FechaInic
“departamentos. Cada uno con nombre y
número único.
único Tiene un director,
director su fecha
DEPARTAMENTO de inicio y el número de empleados que
NºEmpleado trabaja en él. Puede estar distribuido en
Localidades varias localidades.
localidades.”
s
Número Nombre

DptoControlador
“Cada departamento controla cierto número de
proyectos. Cada uno con nombre y número PROYECTO
únicos y se realiza en una sola localidad.”
Nombre Número Localidad
Identificando tipos de entidad y sus atributos
para la BD “Empresa” (2/2)

Nombre Inicial Apellido


“De cada empleado se guarda su nombre,
número de seguridad social, dirección, salario,
Nss Nom FechaNcto Dirección
sexo y fecha de nacimiento. Departamento al
Sexo que p
q pertenece. Proyectos
y en los q
que trabaja
j
EMPLEADO (pueden estar controlados por departamentos
Salario
distintos al que pertenece el empleado). Nº
horas semanales dedicadas a cada proyecto y
Jefe Trabaja_en Depto
quién es su supervisor.”

Proyecto Horas a
a DEPARTAMENTO Empleado FechaNcto Nombre
PROYECTO
Clave
“De cada
“D d subordinado
b di d all número
ú
de seguridad social de un empleado
SUBORDINADO
interesa su nombre, sexo, fecha de
nacimiento y parentesco (hijo,
Sexo Parentesco
esposa, ...).”
Relaciones implícitas en el ejemplo
• Relación implícita: atributo que hace referencia a otro tipo de entidad.
• En el ejemplo anterior hemos marcado las relaciones implícitas en rojo y
con flechas de línea discontinua
discontinua. Como en el caso de:
DptoControlador Relación implícita
Con el tipo
p de entidad
DEPARTAMENTO PROYECTO DEPARTAMENTO

• En el modelo ER estas referencias hay que representarlas como tipos de


relación:
Eliminamos
DEPARTAMENTO CONTROLA PROYECTO el atributo
DptoControlador

• En un primer paso podemos capturar las relaciones mediante estos atributos


a los que hemos llamado relaciones implícitas.
• Pero en un segundo paso hay que sustituir todos estos atributos por tipos de
relación.
Tipo de relación y su conjunto de relaciones

Tipo de
relación
Código Título NºCopias (i t
(intensión)
ió ) Código Nombre

(0,N) (0,N)
LIBRO PRESTADO LECTOR

LIBRO LECTOR
Código Título NºCopias Código Nombre
Tolk-1 El Sr. de los Anillos 3 PRESTADO 11 Joseba
Orw-1 1984 2 LIBRO LECTOR 22 Miren
Shar-1 Wilt 1 Tolk-1 11
Tolk-1 22 Conjunto de
relaciones
Al ser conjunto no puede haber Orw-1 11 (extensión).
relaciones repetidas. del tipo de
Shar-1 22 relación
Por eso ponemos como clave la
concatenación de LIBRO+LECTOR PRESTADO
Tipo de relación y grado

LIBRO PRESTADO LECTOR

• Acabamos de ver que un tipo de relación, como PRESTADO, entre varios


tipos
p de entidad ((LIBRO Y LECTOR)) define un conjuntoj de asociaciones ó
conjunto de relaciones entre las entidades de los tipos de entidad.
• Cada relación r PRESTADO es una asociación de entidades que incluye
una única entidad de cada tipo de entidad que participa en el tipo de relación
PRESTADO:
(Tolk-1, 11), (Tolk-1, 22), (Orw-1, 11)

• Grado de un tipo de relación es el número de tipos de entidad que participan.


PRESTADO es de grado dos o binario
binario. Los más comunes son los binarios
binarios.
• En el ejemplo, R es un tipo de relación ternaria: A R B

C
Restricciones estructurales en tipos de relación binarios:
cardinalidad
( ,1) ( ,N)
1:N
EMPLEADO TRABAJA_PARA DEPARTAMENTO

• ¿Clave de
Razón de cardinalidad: nº de relaciones en las que puede participar TRABAJA
una entidad. _PARA?
• Cada entidad de DEPARTAMENTO puede participar en varias (N)
relaciones de TRABAJA_PARA.
• Cada entidad de EMPLEADO p puede p participar
p como mucho en una ((1))
relación de TRABAJA_PARA.

• En tipos de relación binarios la razón de cardinalidad puede ser 1:1


1:1, 1:N
ó N:M. ¿Clave
de
DIRIGE?
( ,1)
, ) ( ,1)
, )
11
1:1
EMPLEADO DIRIGE DEPARTAMENTO

( ,,N)) ( ,,N))
M:N LIBRO PRESTADO
S O LECTOR
C O
Restricciones estructurales en tipos de relación binarios:
participación

(0, ) (1, )
EMPLEADO DIRIGE DEPARTAMENTO

• Restricción de participación:
– Total
T t l (dependencia
(d d i d
de existencia):
i t i ) ttoda
d entidad
tid d d
de DEPARTAMENTO
debe participar al menos en una (1) relación de DIRIGE (porque todo
departamento debe tener un director).
– Parcial: algunas entidades de EMPLEADO no participan (0) en ninguna
relación de DIRIGE y otras si (no todos los empleados son directores de
departamento).

• La notación mínimo-máximo (mín, max): admite poner otros números


además de 0 ó 1 para el mínimo (participación) y 1 ó N para el máximo
(cardinalidad):
(..., ...) (22,28)
JUGADOR JUEGA PARTIDO FUTBOL
PARTIDO_FUTBOL
Roles y tipos de relación recursivos

(1,1) (1,N)
EMPLEADO TRABAJA_PARA DEPARTAMENTO
trabajador contratante

• Rol: indica el papel desempeñado por las entidades en las relaciones.


• En el ejemplo: las entidades de EMPLEADO desempeñan el rol de “trabajador”
en las relaciones de TRABAJA_PARA.
• Los roles NO son necesarios si los tipos de entidad relacionados son
distintos En el ejemplo: si NO hubiera rol
distintos. rol, los empleados desempeñarían el rol
de “el empleado” en las relaciones de TRABAJA_PARA.

EMPLEADO Sin roles ... ¿cómo


se sabe a qué se
jefe (0,N) (0,1) subalterno refiere el (0,N) y el
DIRIGE (0,1)?

• Los roles son obligatorios si se repiten tipos de entidad en el tipo de relación.


p de relación ((como DIRIGE),
• Los tipos ), donde un mismo tipo
p de entidad p participa
p
varias veces, se llaman tipos de relación recursivos.
Atributos de un tipo de relación

EMPLEADO EMPLEADO EMPLEADO


(0,1) FechaInic (1,1) FechaInic (1,N) Horas
DIRIGE TRABAJA_PARA TRABAJA_EN
(1,1) (1,N) (1,N)
DEPARTAMENTO DEPARTAMENTO PROYECTO

• Estos atributos NO pueden ser clave:


• La
L clave
l d llos titipos d
de de relación
l ió 1:1
1 1 puede
d ser cualquiera
l i d
de llos d
dos titipos d
de
entidad. En 1:N el tipo de entidad con cardinalidad 1 y en N:M ambos tipos
de entidad de manera conjunta.
• Estos atributos no modifican la clave de un tipo de relación.
• Según sea 1:1, 1:N ó N:M el atributo del tipo de vínculo puede situarse
alternativamente en alguno de los tipos de entidad participantes,
participantes como
muestran las flechas en los ejemplos.
Tipo de entidad débil (1/2) Tema

Asignatura NºHojas APUNTES NºHojas


Id APUNTES (1,1)
Tema Autor Autor
uto
PERTENECEN
Titulación Código
Código
g ASIGNATURA (1,N)
Curso ASIGNATURA Titulación

Curso
• La clave de APUNTES es compuesta
compuesta. Una de sus componentes es una
relación implícita al tipo de entidad ASIGNATURA.
• Al transformar la relación implícita al tipo de relación PERTENECEN, el tipo
de entidad APUNTES se queda sin clave clave.
• Para seguir representando la clave se usan los tipos de entidad débil:
– El trozo de clave que queda en APUNTES (Tema) se marca como clave
parcial (subrayado
( discontinuo).
)
– El tipo de relación que completa la clave se marca con línea doble y se
llama tipo de relación identificador.
– El tipo de entidad relacionado mediante el tipo de relación identificador
se llama tipo de entidad propietario ó identificador.
Tipo de entidad débil (2/2)

Tipo de relación Código


Clave
parcial identificador
Tema Titulación
(1 1)
(1,1) (1 N)
(1,N)
NºHojas APUNTES PERTENECEN ASIGNATURA Curso

Autor Tipo de entidad débil


é Tipo de entidad propietario
ó identificador

• Un tipo de entidad débil no tiene atributos clave propios.


propios
• Sus entidades se identifican por la clave parcial concatenada con la clave
de la entidad relacionada mediante el tipo de relación identificador.
• Eso
E supone que la l participación
ti i ió con este
t titipo d
de relación
l ió d debe
b ser siempre
i
(1,1), para que haya siempre un valor que complete la clave y sólo uno.

• La N de ASIGNATURA sólo tiene sentido si APUNTES tiene clave parcial


parcial. Si
no hay clave parcial significa que la clave de APUNTES es la misma que la
de ASIGNATURA. Así, una ASIGNATURA solo puede prestar su clave a una
entidad de APUNTES (si no no, encontraríamos en APUNTES valores de clave
repetidos).
Tipo de entidad débil:
varios niveles y ausencia de clave parcial

Núm ... Núm ... Código


(1,1) (1,N) (1,1) (1,N)
PC ESTÁ SALA ESTÁ EDIFICIO
...
• Puede haber varios niveles de tipo de entidad débil
débil. Aquí la clave de PC está
compuesta de las claves de EDIFICIO y de SALA más su clave parcial.

FechaNct Nombre
Salario Sexo Dirección
o Nss Nom
Apellido1
(1,1) (1,1)
RESTO_EMPLEADO EMPLEADO Apellido2

• Podemos encontrarnos con tiposp de entidad débil sin clave p


parcial. Por
ejemplo, si EMPLEADO tiene muchos atributos podemos separar los usados
con menos frecuencia en la tabla RESTO_EMPLEADO.
• En este caso
caso, la cardinalidad de EMPLEADO en el tipo de relación
identificador no puede ser N (precisamente porque no hay clave parcial).
Tipo de entidad débil:
con varios tipos de relación identificador
Código En este caso, si
Fecha ... (1,1) (1,N) no hubiera clave
ITINERARIO parcial,
i l
EXCURSIÓN ... ITINERARIO y
Id GUÍA también
GUÍA tendrían
(1,1) (1,N) cardinalidad N
...
• Un tipo
p de entidad débil p
puede tener varios tipos
p de entidad p
propietarios.
p En
este caso la clave de EXCURSIÓN está compuesta del Código de itinerario,
el Id de GUÍA y la Fecha de la EXCURSIÓN.
• El esquema de arriba es equivalente al que se muestra a continuación:
Código
Fecha ...
(1 N) ITINERARIO
(1,N)
(1,1) ...
EXCURSIÓN Id
(1 N) GUÍA
(1,N) Í

...
Diseño alternativo al tipo de entidad débil: atributo complejo
Sin otros tipos de relación
Tema

APUNTES Tema NºHojas


N Hojas Autor
NºH j
NºHojas
(1,1)
Autor Apuntes
PERTENECEN Código
Código
(1,N) Titulación ASIGNATURA
Titulación ASIGNATURA
Curso
Curso

• Esta solución NO se puede adoptar si existen otros tipos de relación,


diferentes al tipo de relación identificador, en los que participe APUNTES.
• Hay que tener en cuenta que los rombos sólo unen rectángulos. Por tanto,
NO se puede dibujar un rombo que una el atributo multivalor Apuntes con un
rectángulo.
Diseño alternativo al tipo de entidad débil: inventar un código

Tema Identificador
Tema
NºHojas APUNTES APUNTES
NºHojas
(1,1) (1,1)
Autor Autor
PERTENECEN
PERTENECEN
Código Código
(1,N) (1,N)
Tit l ió
Titulación ASIGNATURA Titulación ASIGNATURA
Curso Curso

• Esta es una solución artificial. El identificador nos lo hemos inventado, no se


trata de un dato que se maneje en el mini-mundo
mini mundo.

En esta asignatura evitaremos usar esta alternativa


Restricciones estructurales: notación alternativa

PC PC

(1 ,1) N

SITUADO SITUADO

(0,N) 1

SALA SALA

• En la notación mínimo-máximo (mín, max) usada hasta aquí:


– mín y max indican respectivamente el mínimo y máximo de relaciones en
las que participa una entidad.
– 0 <= mín <= máx >= 1
– mín=0 indica participación parcial y mín>0 participación total. total
• La notación alternativa es menos precisa. Hay que tener en cuenta que la
información sobre una entidad se encuentra repartida a ambos lados del tipo
de relación: la participación al lado y la cardinalidad en el lado opuesto.
Convenio para los nombres de los elementos
de los esquemas ER
• Se siguen las siguientes pautas:
– Tipos
pos de eentidad:
t dad nombres
o b es e
en ssingular
gu a ... e
en MAYÚSCULA
ÚSCU
– Tipos de relación: verbos ... en MAYÚSCULA
– Atributos: nombres en singular ... primera letra en MAYÚSCULA
– Roles: ... en minúscula

– Tipos de relación: ordenado de izda a dcha


dcha, o de arriba hacia abajo
abajo, de
manera que se pueda leer con sentido. En los siguientes ejemplos se lee
PC ... SITUADO_EN ... SALA
PC
(1,1)
((1,1)
, ) ((0,N)
, )
SITUADO_EN
PC SITUADO_EN SALA
(0,N)
SALA
Transformaciones interesantes

(1) B A B
A AB B
(2) B A A B

• Las transformaciones (1) y (2) ya se han visto anteriormente. En la (2) los


atributos A y B son referencias inversas entre sí.

A
Z A Z C
(3) B Z Z
Z B
C Después podrían
surgir nuevos
atributos para Z

((4)) A Z Z A Z

Si Z sólo tiene un atributo


Restricciones estructurales
en tipos de relación de grado mayor que 2

Dorsal (0,N) (0,N) Número


CICLISTA LLEVA ETAPA
Nombre 1 M Km
(0,N) N
Color
MAILLOT
Premio

• Se utiliza un doble etiquetado.


q
• La notación mínimo-máximo se mantiene con el mismo significado que para
las binarias (la alternativa no se puede utilizar).
• Recordemos
R d lla iinterpretación.
t t ió P Por ejemplo
j l lla N de
d ciclista
i li t significa
i ifi que cadad
entidad de CICLISTA puede participar en varias relaciones de LLEVA.
• La otra notación (1:N:M en el ejemplo),
j p ) añade la idea de clave. Por tanto la
clave del tipo de relación LLEVA la forman la entidad de MAILLOT y la de
ETAPA, ya que en una etapa sólo se puede imponer un determinado maillot a
un único ciclista.
• Si NO se indica esta segunda notación se entiende que es: M:N:P.
Conjunto de relaciones de un tipo de relación ternario

Dorsal (0,N) (0,N) Número


CICLISTA LLEVA ETAPA
Nombre 1 M Km
(0,N) N
Color
MAILLOT
Premio

CICLISTA LLEVA ETAPA


Dorsal Nombre Maillot Etapa Ciclista Número Km
10 A.Contador amarillo 1 10 1 100
11 S Sánchez
S. puntos
t 1 13 2 110
12 J.Rodríguez rojo 1 13 MAILLOT
13 D. Moreno
amarillo 2 10 C l
Color P
Premio
i
14 I. Antón
puntos 2 11 amarillo general
15 D. Arroyo
rojo 2 13 puntos
pu tos montaña
o ta a
12 H Zubeldia
H.Zubeldia
rojo puntos
Un tipo de relación ternario
NO representa lo mismo que varios binarios
Apellido
(0,N)
SUMINISTRADOR Apellido SUMINISTRADOR ENVIA
(0,N) N (0,N) (0,N)
(0,N)
PROVEE M PROYECTO TIENE Nombre PROYECTO
(0 N)
(0,N) P (0 N)
(0,N) (0 N)
(0,N)
Nombre (0,N)
COMPONENTE Número COMPONENTE USA

Número
• Ejercicio: para los suministradores s1 y s2, los componentes c1 y c2 y los
proyectos p1 y p2, obtener los tríos de PROVEE y los pares de las relaciones
c
binarias en los siguientes dos estados de la BD, donde s p
representa que el suministrador s suministra el componente c al proyecto p.
c1
1 c2
2
Estado 1 s1 p1 Estado 2 s1 p1 Si un tipo de relación
de la BD: c2 de la BD: c1 ternaria representa lo
mismo que varias binarias
c2 c1 nos quedaremos
d con lla
s2 p2 s2 p2 segunda opción
c1 c2
Transformación de tipo de relación ternario
en un tipo de entidad débil
Dorsal Nombre
Dorsal Nombre
CICLISTA
S
CICLISTA
Número (1,N)
(0,N) 1 Número
(0,N) (1,1) (1,1) (1,N)
LLEVA ETAPA VISTE ETAPA
M
(0,N) N (1,1)
Km (1,N) Km
MAILLOT
MAILLOT
Premio Color
Premio Color

• El tipo de entidad débil VISTE representa lo mismo que el tipo de relación


ternario LLEVA.
• El tipo de relación entre VISTE y CICLISTA no es identificador porque no
forma parte de la clave de LLEVA (pero el tipo de relación con CICLISTA es
necesario)
• Obsérvese que en este caso VISTE no precisa usar clave parcial.
Es posible tener un tipo de relación ternario
y los tres binarios correspondientes pero...

(0,N) (1,N)
DA CLASE
DA_CLASE

(0,N) (0,N) Cuatrim


Código PROFESOR IMPARTE CUATRIMESTRE Id
M N Añ
Año
(1,N) P (0,N) (1,N)
CONOCE ASIGNATURA OFRECIDA
(0 N)
(0,N) (0 N)
(0,N)
Número

• Es preciso definir restricciones de manera que haya coherencia entre los tríos
de IMPARTE y los pares de CONOCE, DA CLASE y OFRECIDA.
• Por ejemplo si (Alfredo
(Alfredo,1º-2013)
1º 2013) es una relación de DA CLASE
CLASE, deberá haber
al menos un trío en IMPARTE en los que el profesor sea “Alfredo” y el
cuatrimestre “1º-2013”: (Alfredo,1º-2013, ...)
Ejemplo de diseño conceptual: Camiones

requisitos de la BD
• Una compañía de transportes recoge pedidos de los almacenes de una
cadena y los entrega a las tiendas de la misma cadena.
• Actualmente hay 6 almacenes y 45 tiendas
tiendas. Cada tienda tiene su propio
nombre, y conocemos también su dirección y teléfono. Cada almacén tiene
un número diferente además de la dirección y teléfono.
• Un camión puede transportar varios pedidos en el mismo viaje y entregar
cada pedido a la tienda que lo solicitó. Cada viaje se identifica por un número.
Cada ped
pedido
do se identifica
de t ca po
por u
un número
ú e o e incluye
c uye datos sob
sobree peso,
volumen y tienda de destino.
• Cada camión tiene el número de matrícula y su propio límite máximo de
volumen y peso transportado
transportado. La flota de la compañía de transportes consta
de 150 vehículos y cada uno realiza entre 3 y 4 viajes semanales.
• Esta BD la usarán conjuntamente las dos empresas para
– Controlar el uso de los camiones (fechas).
– Controlar las entregas (pedidos entregados)
– Programar los viajes (conocer los pedidos hechos
hechos, de qué almacén a qué
tiendas y los viajes asignados a camiones)
Ejemplo de diseño conceptual:
identificación de tipos de entidad

Nombre

Número P
Peso V l
Volumen Vi j
Viaje TIENDA Dirección
PEDIDO Tienda Matrícula Tfno
Número Almacén PesoMax CAMIÓN
Número
Dirección ALMACÉN VolumenMax
VIAJE F h
Fecha
Tfno
Camión
Almacén
Suposiciones:
• Un pedido se toma completo de un almacén y se entrega también completo a
una sola tienda.
• En un viaje interviene solo un camión, toma varios pedidos de un almacén y
los entrega a una o varias tiendas
tiendas.
Ejemplo de diseño conceptual:
identificar y transformar relaciones implícitas

Almacén PEDIDO SOLICITADO ALMACÉN


É

Tienda PEDIDO A_ENTREGAR TIENDA

Camión VIAJE REALIZADO_POR CAMIÓN

Viaje PEDIDO TRANSPORTADO VIAJE

Almacén VIAJE RECOGE ALMACÉN

• Cada relación implícita la transformamos en un tipo de relación explícito (un


rombo).
Ejemplo de diseño conceptual:
asignar restricciones a los tipos de relación
(0,N)
Matrícula CAMIÓN REALIZA

P
PesoMax
M (1 1)
(1,1)
(1,1) Número
VIAJE
VolumenMax Fecha
((1,N)
, )

RECOGE TRANSPORTA
(0,1) Número
(0 N)
(0,N)
(1,1)
SOLICITADO PEDIDO Peso

(0,N) (1,1) Volumen Nombre


ALMACÉN ENTREGAR TIENDA Dirección
(0,N)
Número Tfno Dirección Tfno

Suposiciones:
• Los pedidos se introducen antes de organizar el viaje.
• En
E bbase a llos d
datos
t d de pedidos
did y ocupación
ió dde camiones
i ell programa d
de aplicación
li ió
puede organizar los viajes.
Ejemplo de diseño conceptual:
otras consideraciones
• Atributos de tipo de relación: al identificar los tipos de relación han podido
quedar descolgados atributos.
• Tipos de entidad débiles: los que han perdido su clave. Indicar su tipo de
relación identificador y su clave parcial, si la tiene.
• Si algún tipo de entidad débil ha quedado sin apenas atributos, quizá se
pueda sustituir por un tipo de relación.
• Considerar las alternativas de diseño comentadas:
– Tipos
p de relación de g
grado mayor
y q que tres p
por tipos
p de entidad débiles.
– Tipos de entidad débiles por atributos multivalor y compuestos.
– Atributo que aparece en varios tipos de entidad situado en tipo de
entidad independiente (o lo contrario)
Transformación E/R a relacional (1/4)
• Paso 1: Tipos de entidad normales (fuertes)

E5 E E2
E1 E
E4 E1 E2 E3 E5 E6 E3
E6 E2 E3 E4
E3 E4 E
E
Los derivados
L d i d son
E2 E1 fórmulas que parecen
atributos de tablas

• Paso 2: Tipos de entidad débil

D D
D2 D1 E1 E2 E1 E2
E1 D1 D2 D2 D1 E1 F1 D1 D2
D E CE: E E CE:E CE:F
E D
F E F
E1 E2 E1 E2 F1 F2
F1 F2
Notación E
equivalente D
(faltan los F
atributos)
Transformación E/R a relacional (2/4)
• Pasos 3 y 4: herencias simple y múltiple (EER)
Los estudiaremos al final pero se realizan en este punto.

• P
Paso 5:
5 Ti
Tipos de
d vínculo
í l 1:1
11

E2 E1 R1 F1 F2 E2 E1 F1 F2 E_F
( ,1)
E
( ,1) F (1,1) (1,1)
E E1 E2 F1 R1 E F E1 E2 F1 F2 R1
(1,1) (0,1) CE F
CE:F R1
E F F Opción posible cuando se da
F1 F2 el caso (véase
Mejor CE en tabla E “desnormalizar”)

• Paso 6: Tipos de vínculo 1:N


E
E2 E1 F1 F2
E1 E2 F1 R1
E (, 1) ( ,N) F
CE:F
F
R1
F1 F2
Transformación E/R a relacional (3/4)
• Paso 7: Tipos de vínculo M:N
– Se puede usar también para 1:1
R y 1:N ((donde la clave de R en
E2 E1 F1 F2
E1 F1 R1 1:N es la de la entidad del lado
( , N) ( , N) N y en 1:1 la del lado con
E R F CE:E CE:F
R1 participación total)
E F
E1 E2 F1 F2 – Mejor cuando haya pocos
vínculos (menos nulos)

• Paso 8: Atributos multivaluados


E2 E2
E1 E2 E4 E1 E4 E5
E2 E3 E3 E2 CE:E
CE:E E5
E1 E E E1 E E
E1 E3 E1 E3
Transformación E/R a relacional (4/4)
• Paso 9: Tipos de vínculo n-arios

E2 E1 F1 F2 R
M N E1 F1 G1 R1
E R F
P CE:E CE:F CE:G
R1
G E F G
G1 G2 E1 E2 F1 F2 G1 G2

E2 E1 F1 F2 R
M N E1 F1 G1 R1
E R F
1 CE:E CE:FCE:G
R1
G E F G
G1 G2 E1 E2 F1 F2 G1 G2
Herramienta de Diseño

Herramienta ERDPlus
(https://erdplus.com/#/)
54
Modelo E/R extendido (EER / ER+)

56
Introducción

• El modelo E/R es suficiente para aplicaciones “tradicionales” como el


procesamiento de datos en negocios e industria
• Sin embargo, existen S.I. con requisitos más complejos: CAD/CAM (diseño
asistido por ordenador), multimedia, telecomunicaciones, sist. de información
geográfica, indexación web, …
• EER añade al E/R:
– el mecanismo de herencia de atributos y relaciones
– los conceptos asociados a la herencia: superclase-subclase,
generalización-especialización, etc.
• El mecanismo de herencia se ha desarrollado en otras áreas de la informática
como los modelos semánticos de datos, el modelo orientado a objetos o la
representación del conocimiento
conocimiento.

57
Superclases y subclases
EMPLEADO
superclase
subclases
SECRETARIO TÉCNICO ASALARIADO

• Cada subclase representa a un subconjunto de las entidades de EMPLEADO.


• La relación entre una superclase y cualquiera de sus subclases se llama relación is-a
(es un).
• Toda entidad de una subclase será al mismo tiempo entidad de su superclase:
– Por ejemplo la TÉCNICO
É “Ana” es también una EMPLEADO. Aunque tiene un
papel diferente como TÉCNICO y como EMPLEADO genérico.
– Cuando se implementa la BD, “Ana” puede estar representada por una entidad en
TÉCNICO y otra en EMPLEADO
EMPLEADO, pero ambas representan a la misma persona
persona.
• Una entidad puede ser al mismo tiempo miembro de varias subclases: por ejemplo el
SECRETARIO “Fermín” puede ser también un ASALARIADO.
• Una entidad de la superclase no tiene por qué ser al mismo tiempo miembro de alguna
subclase. 58
Herencia
Heredada por las subclases
Heredados
por las Nombre (0,N) (0,N)
subclases PERSONA MATRICULADA CURSO
DNI
Atributo Atributo
p
específico de Salario BECARIO ALUMNO Carrera
específico de
los becarios los alumnos

• Es el mecanismo por el cual entidades más específicas (de subclases)


incorporan atributos y relaciones definidos para entidades más generales (de
superclases).
– Un BECARIO, por ejemplo “hereda” los atributos de PERSONA. Así pues las
entidades
tid d d de BECARIO tienen
ti los
l atributos
t ib t Nombre,
N b DNI y S Salario.
l i
– Tanto las entidades de BECARIO como las de ALUMNO pueden relacionarse
con entidades de CURSO por ser al mismo tiempo entidades de PERSONA.
• Se hereda de la superclase, pero además de la superclase de la primera y así
sucesivamente hasta la superclase raíz.
• Una subclase con sus atributos específicos más los atributos y relaciones
heredados es un tipo de entidades. Por eso se representan con rectángulo.
Generalización
P i
Precio Matríc la
Matrícula

Precio Precio VEHÍCULO

COCHE Matrícula CAMIÓN Matrícula Generalizar


Plazas Tonelaje COCHE CAMIÓN
Plazas Tonelaje
• Se identifican rasgos comunes entre varios tipos de entidad y se crea una
superclase para todos ellos.

• En el ejemplo los tipos de entidad COCHE y CAMIÓN de la izquierda se generalizan


a la derecha en la superclase VEHÍCULO con los atributos comunes.

• Se está realizando un refinamiento bottom-up o ascendente.

60
Especialización
Empleados Nombre EMPLEADO DNI
Técnicos
Secretarios Sueldo
E
Especializar
i li
SECRETARIO TÉCNICO ASALARIADO
Asalariados (0,1)
Pulsaciones Nivel AFILIADO
(1,N)

• Es el proceso de dividir un tipo de entidad en subclases. SINDICATO


• Es lo contrario a generali
generalizar:
ar aq
aquíí el refinamiento es top-down
top do n o descendente.
descendente
• Un conjunto de subclases se define a partir de alguna característica distintiva.
Podemos tener varias especializaciones sobre el mismo tipo de entidad:
– Por tipo de trabajo: Secretario,
Secretario Técnico
Técnico, Gerente
– Por método de pago: Asalariado, Por horas
• Por qué es necesaria la especialización/generalización:
– Atributos
A ib que se aplican
li sólo
ól a algunas
l entidades
id d d dell tipo
i d de entidades:
id d agrupar en
una subclase estas entidades y definir en ella los atributos. Por ejemplo si sólo se
almacenan las pulsaciones para los SECRETARIOS.
– Relaciones donde sólo pueden participar algunas entidades del tipo de entidades
entidades.
Por ejemplo si sólo los ASALARIADOS 61
pueden afiliarse a SINDICATO.
Especialización
• Proceso de definir un conjunto de subclases para una superclase.
• Una especialización Z=[S1,...,SN] es un conjunto de subclases con una misma
superclase.
superclase

• Propiedad de completitud (Total ó Parcial)


– TOTAL
• Cada entidad de la superclase tiene que formar parte de alguna
subclase.
– PARCIAL
• Algunas entidades de la superclase no aparecen en las subclases.
• Propiedad de disyunción o solapamiento
solapamiento.
– ESPECIALIZACIÓN DISJUNTA
• Una entidad de la superclase sólo podrá ser miembro de una
subclase.
– ESPECIALIZACIÓN SOLAPADA
• Una entidad de la superclase podrá ser miembro de varias subclases.
62
Especialización: disjunta vs. solapada

FIGURA ATLETA EMPLEADO

d o

POLÍGONO ELIPSE CIEN DOSCIENTOS TRES_MIL GERENTE

• Restricción de disyunción: d
– Cada entidad de la superclase FIGURA pueden ser miembro
como mucho de una de sus subclases.
– Si las subclases se definen por atributo, este será monovalor. A
• Restricción de solapamiento (overlapped): o A
o
– Es
E ell caso contrario
i a lla di
disyunción.
ió =
– Opción por defecto (si no se indica nada es solapada)
B C B C
– Una misma entidad de ATLETA puede ser miembro de varias de
sus subclases (por ejemplo, ser al mismo tiempo atleta de cien y
de doscientos metros).
• Caso especial: cuando el predicado da lugar a una sola subclase
subclase.
Subclases ‘definidas por condición’, ‘por atributo’
y ‘ por el usuario’
usuario
TipoTrabajo Nombre
EMPLEADO
Especialización
E i li ió ddefinida
fi id TipoTrabajo DNI
sobre el atributo de
EMPLEADO TipoTrabajo
‘Secretario’ ‘Técnico’ g
‘Ingeniero’
SECRETARIO TÉCNICO INGENIERO

Pulsaciones Nivel Tipo

• Definidas por condición: sólo aquellos EMPLEADOS cuyo atributo


TipoTrabajo=‘Secretario’
TipoTrabajo Secretario pertenecen a la subclase SECRETARIO.
– Encima del circulo se escribe la “condición”.
– Definidas por atributo: cuando TODAS las subclases de EMPLEADO
están definidas por una condición sobre el mismo atributo, como ocurre
en el ejemplo.
• Definidas por el usuario: cuando no existe una condición para determinar la
pertenencia a una subclase.
Especialización: total vs. parcial

PLANTILLA_UNIVERSIDAD ATLETA

total d parcial o

PROFESOR ADMINISTRACIÓN_SERVICIOS CIEN DOSCIENTOS TRES_MIL PÉRTIGA

• Especialización total:
– Toda entidad de la superclase debe ser miembro de alguna subclase de la
especialización.
– Cuando
C d lla superclase
l se extrae por generalización
li ió lla especialización
i li ió suele
l
ser total.

• Especialización parcial:
– Es el caso contrario a la especialización total.
– Puede
P d h haber
b entidades
tid d d de lla superclase
l que no pertenezcan
t a ninguna
i d
de
las subclases de la especialización
Reglas de inserción y eliminación de entidades
• Eliminación de una entidad c1 de una Eliminación de la entidad
C c1 de C
superclase C:
– Se elimina automáticamente de Si c1 también es miembro
todas las subclases a la que de P y Q también debe
pertenezca. desaparecer de esas
P Q R subclases

• Inserción de una entidad en una


superclase: Inserción de la entidad c1
A C
– Si sus subclases
b l están
tá ‘definidas
‘d fi id A en C con valor de su
atributo A=‘r’
‘r’
por una condición’ (o atributo) se
podría insertar automáticamente la ‘p’ ‘q’ ‘r’ La entidad c1 se puede
entidad en las subclases que le insertar automáticamente
corresponden. P Q R en R

– Se insertará al menos en una


C Inserción de la entidad c1
en C
subclase si la especialización es
total.
La entidad c1 se deberá
P Q R insertar en P, Q o en R
Jerarquías de herencia
Nombre Dirección
DNI EMPLEADO FechaNcto
Tres
d d especializaciones
de empleado

SECRETARIA TÉCNICO INGENIERO GERENTE ASALARIADO POR_HORAS


POR HORAS
(1,N) (0,1)
Pulsaciones Nivel Tipo DIRIGE Salario AFILIADO EscalaPago
(1,1) (1,N)

INFORMÁTICO PROYECTO SINDICATO

• Jerarquía: toda subclase participa en una única relación superclase/subclase.


Ello da lugar a una estructura en árbol.
• Las entidades de INFORMÁTICO son miembros de TÉCNICO. Por tanto
heredan todos los atributos y relaciones de TÉCNICO además de heredar los
atributos y relaciones de EMPLEADO.
Retículas de herencia
(con herencia múltiple)
DNI Dirección

N b
Nombre EMPLEADO F h N t
FechaNcto

d d

SECRETARIA TÉCNICO
É INGENIERO GERENTE ASALARIADO POR_HORAS

Pulsaciones Nivel Tipo Salario EscalaPago

GERENTE INGENIERÍA
GERENTE_INGENIERÍA Subclase compartida
(herencia múltiple)

• Retícula: hay alguna subclase que participa en más de una relación. En el ejemplo
GERENTE_INGENIERÍA.
• Estas subclases se llaman subclases compartidas y heredan los atributos y
relaciones de todas sus superclases (de INGENIERO, GERENTE y ASALARIADO).
Este mecanismo se llama herencia múltiple.
• Los atributos de EMPLEADO se heredan por varios caminos (INGENIERO, GERENTE y
ASALARIADO). Las reglas de herencia establecen que debería incluirse una sola vez
cada
d elemento
l t proveniente
i t dde EMPLEADO. NoN h hay conflicto.
fli t
• Algunos mecanismos de herencia no permiten la herencia múltiple.
Conflictos con la herencia múltiple

NºCamas Matrícula

Servicios CARAVANA VEHÍCULO Plazas


Precio
Precio
AUTOCARAVANA

• AUTOCARAVANA hereda de CARAVANA y de VEHÍCULO VEHÍCULO.


• El atributo “Precio” no está muy claro de dónde se hereda.
– En estos casos se produce un conflicto.
– EER no proporciona reglas de resolución de conflictos (tampoco UML:
“porque la experiencia muestra que el diseñador debería resolverlos
explícitamente ).
explícitamente”).
Categorías

Matrícula COCHE CAMIÓN Matrícula


Matrícula Matrícula
COCHE CAMIÓN Gama U Tonelaje
Gama (0,N) (0,N) Tonelaje
Subclase de
POSEE POSEE COCHE y VEHÍCULO_VENDIDO Categoría
(0,N) (0,N) de CAMIÓN (1,N)
Fecha Fecha POSEE
Compra PROPIETARIO Compra Reducir el nº de (1,N) Fecha
tipos de relación Compra
Nombre Dirección NIF PROPIETARIO

Nombre Dirección NIF


• Categoría o tipo unión (VEHÍCULO_VENDIDO):
– Subclase con más de una superclase
p (COCHE y CAMIÓN)).
– Tiene entidades de naturaleza distinta: unas entidades tienen Matrícula y
Tonelaje y otras Matrícula y Gama.
– Las entidades de VEHÍCULO_VENDIDO
VEHÍCULO VENDIDO son un subconjunto de la UNIÓN de
las entidades de COCHE y CAMIÓN. En este caso en VEHÍCULO_VENDIDO
están sólo los COCHES y CAMIONES vendidos y el resto no.
• E ell ejemplo
En j l se usa una categoría
t í para reducir
d i ell número
ú d
de relaciones.
l i H
Hay
diseños alternativos para conseguir lo mismo, algunos utilizando otras categorías.
Ejemplo de categorías
• Sin las categorías
Nombre Dirección PROPIETARIO y
NºPermiso
N Permiso N b
Nombre VEHÍCULO MATRICULADO
VEHÍCULO_MATRICULADO
PERSONA BANCO EMPRESA necesitaríamos definir varias
Dirección
Dirección
U relaciones POSEE con su
Nombre
atributo FechaCompra entre:
NSS PROPIETARIO – PERSONA-COCHE,
(0,N) PERSONA-CAMIÓN
POSEE F h C
FechaCompra BANCO COCHE,
– BANCO-COCHE
(0,N) BANCO-CAMIÓN
Matrícula VEHICULO_MATRICULADO – EMPRESA-COCHE,
EMPRESA-CAMIÓN

U
• Las superclases de una
Modelo Modelo categoría pueden tener
COCHE Año Año CAMIÓN claves diferentes como en el
Marca Tonelaje Marca
Gama caso de PROPIETARIO, o no
Nº SerMotor Nº SerMotor
como en VEHÍCULO_MATRI-
CULADO
Categoría total vs. parcial

EDIFICIO PARCELA PERSONA EMPRESA


U P U E
total parcial
PROPIEDAD TITULAR_CTA TIENE BANCO

• Categoría total:
– La categoría contiene la unión de todas las entidades de sus superclases.
– En el ejemplo de la izda
izda, todas las entidades de EDIFICIO y de PARCELA
son miembros de la categoría PROPIEDAD.
• Categoría parcial:
– La categoría contiene un subconjunto de la unión de las entidades de sus
superclases.
– En el ejemplo de la dcha puede haber personas o empresas sin cuenta
bancaria. Modelando la categoría como parcial permitimos que entidades de
PERSONA o de EMPRESA puedan no estar en la categoría TITULAR_CTA.
– Si es necesario se pueden añadir predicados o atributos (P, E en el ejemplo).
Diferencia entre subclase compartida y categoría
• La subclase compartida GERENTE_INGENIERÍA:
– Cualquiera de sus entidades debe existir en
las tres superclases.
superclases
INGENIERO GERENTE ASALARIADO
– Por tanto es un subconjunto de la
intersección de las entidades de sus
superclases
superclases.
GERENTE_INGENIERÍA – Cada entidad hereda los atributos de todas
sus superclases.

• La categoría PROPIETARIO:
– Cualquier entidad de PROPIETARIO debe
PERSONA BANCO EMPRESA existir sólo en una de sus superclases.
U – Es un subconjunto de la unión de las
p
entidades de sus superclases.
PROPIETARIO – Cada entidad hereda los atributos de una
de sus superclases.
Equivalencia entre especialización y categoría

Plazas COCHE CAMIÓN Tonelaje Matrícula VEHÍCULO


U Precio d
Matrícula
Precio VEHÍCULO Plazas COCHE CAMIÓN Tonelaje

• Si una categoría es total puede representarse alternativamente como una


especialización
p total y disjunta.
j
• En el caso de que la categoría de la izda VEHÍCULO no incluyese a todos los
vehículos (porque unos están matriculados y otros no), la especialización de
la derecha no sería una alternativa válida
válida.

• Nota: entenderemos qque las siguientes


g P Q R P Q R
representaciones de categoría significan lo mismo: U U

C C
Ejemplo de diseño: UNIVERSIDAD
La universidad mantiene la sig. información: (grupo-sección) en las que está o estuvo
• Por cada alumno su carrera o carreras y matriculado.
las notas que ha recibido en cada • Interesa distinguir
g q qué alumnos han
asignatura. acabado la carrera (licenciados) y
cuáles son becarios (pueden serlo
• Proyectos de investigación realizados
alumnos de últimos cursos o
por el p
p profesorado y becarios. Para cada
licenciados) Cada becario tiene un
licenciados).
uno se guarda su nombre, código, fecha
profesor que es su tutor de tesis.
de inicio, subvención obtenida, entidad
que subvenciona, investigador principal • Para cada departamento se guarda su
(profesor) y profesores y becarios nombre teléfono y despacho de la
nombre,
participantes. secretaría y quién es su director (un
profesor).
• Para cada persona se guarda su
nombre nº
nombre, n de la seguridad social
social, • g
Por cada asignatura se mantiene su
dirección, sexo y fecha de nacimiento. nombre, código, descripción y
departamento. Cada nuevo cuatrimestre
• Para los profesores además se tiene su se pueden organizar varios grupos de la
rango (CU,
(CU TUTU, etc
etc.),
) nº
n de despacho
despacho, misma asignatura (secciones)
(secciones). Para
extensión, departamento y salario. cada uno se guarda la asignatura, el
• Para los alumnos se tiene el nº de años número de grupo, el profesor
que llevan haciendo cada carrera y las responsable
p ((único)) de la asignatura
g en
asignatura-grupo-cuatrimestre-año ese grupo junto al cuatrimestre y año en
75
el que se impartió.
Ejemplo de diseño: UNIVERSIDAD

76
4. Transformación Modelo E/R extendido al Modelo Relacional

• Especialización/generalización (4 Métodos)

• Subclase Compartida

• Categoría

77
Esplización/Gralización
Método A

D I
E N
P C
Entidad A K E L
Entidad A N U
D S
K+Entidad X E I
d N O

K+Entidad Y C N
I
A
Entidad X Entidad Y S

• Para todo tipo de esplización/gralización


• Clave de la superclase (K) en las subclases

• Operación de EQUIJOIN sobre la clave primaria, entre cualquier subclase y la superclase, produce todos los atributos específicos
y heredados de las entidades subclase

78
Esplización/Gralización
Método B

Entidad A K Entidad A+Entidad X

Entidad A+Entidad Y
d
•Si solapada, redundancia (de los atributos heredados)
•Si parcial, elementos no representados
•La
La superclase se obtiene con OUTER UNION
Entidad X Entidad Y
• Para esplización/gralización disjuntas y totales
• No se representa la superclase (No se necesita EQUIJOIN).
EQUIJOIN) Siempre que busquemos una entidad arbitraria de la superclase
superclase,
deberemos buscar en todas las tablas de las subclases.
• Otros autores mejoran la propuesta con una vista

Vista p
para la Entidad A
79
Esplización/Gralización
Método C

K
Entidad A Entidad A+T+Entidad X + Entidad Y

•No se recomienda si X o Y tienen muchos atributos


d •Si tienen ppocos-> mejor
j (evitan
( JOIN o UNION))
•Si parcial T=NULL (y valores Nulos para los atributos
específicos de las subclases

Entidad X Entidad Y
• Para esplización/gralización disjuntas
• Aparece un nuevo atributo T que indica el tipo de la subclase que se utiliza

80
Esplización/Gralización
Método D

K
Entidad A
Entidad A+bbbbbbbbbb+Entidad X+Entidad Y
o •No se recomienda
i d sii X o Y tienen
i muchos
h atributos
ib
•Si tienen pocos-> mejor (evitan JOIN o UNION)

Entidad X Entidad Y
• Para esplización/gralización solapadas
• bb
bb=secuenciai d
de bit
bits (tantos
(t t como subclases)
b l ) que indica
i di sii los
l atributos
t ib t de
d X e Y son válidos
álid para lla iinstancia
t i
(m Campos de Tipo Booleano. Uno por cada subclase
1 Campo por cada M bits)

81
K K Categorias
Entidad X Entidad Y Entidad X Entidad Y

CLAVES
CLAVES U DIFERENTES U
IGUALES

Entidad A Entidad A
K+Entidad A Ks+Entidad A

Entidad
id d X E tid d X+Ks
Entidad X+K

Entidad Y Entidad Y+Ks


• Si X e Y comparten clave K, A la usa como clave
• Si no, se usa una clave sustituta Ks para A y clave extranjera en X e Y

82
Subclase compartida

Entidad X Entidad Y (1) (2)

K+Entidad A Ks+Entidad A

K+Entidad X Entidad X+Ks

Entidad A K+Entidad Y Entidad Y+Ks

• Si las superclases tienen la misma clave, entonces como especialización. Recomendada opción
A (1)
A.

• Si no, como una categoría. (2)

83
3 MODELO UML
3.

84
Bloques de construcción de UML

• Elementos. Abstracciones que son ciudadanos de primera clase


en un modelo.
d l
– Tipos: Estructurales (Clase), Comportamiento, etc.

• Relaciones. Conexiones entre elementos.

• Diagrama. Representación gráfica de un conjunto de


elementos,, visualizado la mayoría
y de las veces como un grafo
g
conexo de nodos (elementos) y arcos (relaciones).

85
Elementos Estructurales (UML)

• Son las partes estáticas de un modelo y representan cosas que


son conceptuales o materiales (hay 7 tipos).

– Tipos: Clase, interfaz, etc.

86
UML Clase
Clase (UML). Descripción de un conjunto de objetos que comparten los
mismos atributos, operaciones, relaciones y semántica.

Nombre
Atributos

O
Operaciones
i

87
UML Objeto y Atributo

• Objeto
j (UML).
( ) Manifestación concreta de una clase.

• Atributo (UML). Propiedad de una clase identificada con un


nombre. Representa alguna propiedad del elemento que se está
modelando que es compartida por todos los objetos de esa
clase

Juan:Cliente

88
UML Relaciones

• Relación (UML). Relación estructural que describe un conjunto de enlaces,


l cuales
los l son conexiones
i entre
t objetos.
bj t
– Tipos: Asociación, Generalización.

CLASE A CLASE B

susA suB

1..* 0..1

cardinalidades

¿Qué significa? Que interesa almacenar en el sistema la información de qué


objetos de la clase A están asociados/relacionados con qué objetos de la clase B.
Que cada objeto de A puede estar asociado con uno o con ninguno de B, y que
cada objeto
j de B ppuede estar asociado con varios objetos
j de la clase A ((mínimo
con 1)
89
Cardinalidades en UML

1 con uno
0..1 con uno o ninguno
* con cero, uno o varios
0 *
0..  con cero,
cero uno o varios
1..* con uno o varios

n  con n exactamente
n..m  mínimo con n y máximo con m
UML Relaciones Asociación.
• Relación Asociación (UML). Relación estructural que describe un conjunto
de enlaces los cuales son conexiones entre objetos.

– Grado (binarias,...)
– Multiplicidad (Cardinalidad
(Cardinalidad...)) Cuántos objetos pueden conectarse a través
de una instancia de una asociación (cuántos: multiplicidad del role)

propietario 0..*
CLIENTE INMUEBLE
1 posee
p
Un inmueble tiene Un cliente puede poseer
1 solo propietario varios inmuebles (o ninguno)

O bien dando un solo nombre a la relación


e indicando “cómo se lee”
Posee
0 *
0..*
CLIENTE INMUEBLE 91
1
Asociación n-aria en UML
CLASE A

CLASE C 0..* CLASE B

0..1 0..*

¿Qué significa? Que interesa almacenar en el sistema la información de


que existen triples <objeto de A, objeto de B, objeto de C> relacionados.
La cardinalidad hay que leerla de esta forma:
La multiplicidad colocada al lado de una clase K dice, fijados los objetos del resto
d clases
de l que participan
ti i en la
l asociación,
i ió cuántos
á t objetos
bj t de d la
l clase
l K pueded
haber.
Ejemplo de asociación n-aria en UML

ESTUDIANTE

PROFESOR * ASIGNATURA

0..1 *

par <est,asig> conocido  con 0 ó 1 prof.


Un estudiante se puede matricular en una
asignatura
g SÓLO CON UNO DE LOS
PROFESORES QUE LA IMPARTE, o no
matricularse, claro.
UML Relaciones Asociación.

• Agregación simple.
simple Tipo particular de asociación
asociación. Modela una relación todo/parte en
la cual una clase representa una cosa grande (el “todo”) que consta de elementos
más pequeños (las “partes”).
CLASE A CLASE B

1..*
0..1

• Composición. Variación de la agregación simple. Las partes una vez creadas viven y
mueren con la parte compuesta.
CLASE A CLASE B

La única cardinalidad con sentido es 1

1 1..*
94
Clases Asociación

• Asociación entre dos clases. La propia asociación puede tener propiedades.

CLASE A CLASE B
1..* 0..1

CLASE C
atributo Clase Asociación

95
Clase asociación n-aria en
UML
CLASE A

CLASE C 0 *
0..* CLASE B
0..1 0..*

CLASE D
UML Generalización/Especialización
UML

• Una generalización es una relación entre un elemento general (superclase o


padre)
d ) y un titipo más
á específico
ífi dde ese elemento
l t ((subclase
b l o hij
hijo).
)
• El hijo hereda la estructura y comportamiento del padre
• En una g generalización, las instancias del hijo
j ppueden usarse donde q quiera
que se puedan usar las instancias del padre (o sea, el hijo es un sustituto del
padre)
NOMBRE DE LA SUPERCLASE
atributo1, atributo2 ...

método1 (parámetros),…

NOMBRE DE LA SUBCLASE
atribSubClase1, atribSubClase2 ...
metSubc1 (parámetros),…

97
UML Generalización/Especialización
UML
• Hay cuatro restricciones estándar que se aplican a las relaciones de
g
generalización.

– Complete
– Incomplete
– Disjoint
– O l
Overlapping
i

98
UML Generalización/Especialización

• El hijo puede añadir nueva estructura y comportamiento, o modificar el


comportamiento
t i t del
d l padre.
d

• Existe la noción de herencia múltiple

99
UML v.s Entidad/Relación Extendido Especialización

• E/R+

• UML

100

S-ar putea să vă placă și