SlideShare a Scribd company logo
1 of 298
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
1
15/01/2022
Modelo ER y modelo
relacional
Unidad 2
Material docente compilado por el profesor Ph.D. Franklin Parrales Bravo para
uso de los cursos de Bases de Datos
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
2
15/01/2022
Objetivo general de la Unidad 2
Realizar análisis a los Diagramas de Entidad Relación aplicando los
principios de normalización para construir bases de datos
correctamente relacionadas, sin redundancia y con un modelo óptimo
para su desempeño.
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
3
15/01/2022
Contenido
▪ Representación del problema
▪ El Modelo de Datos
▪ Diagramas de Entidad Relación
▪ Entidad
▪ Relación
▪ Dominios
▪ Atributos
▪ Tipos de Atributos
▪ Cardinalidad
▪ Cardinalidad de relaciones no
binarias
▪ Cardinalidad de relaciones
reflexivas
▪ El modelo Entidad Relación
ampliado
▪ Generalización y especificación
▪ Entidades Débiles
▪ Relaciones recursivas
▪ Agregación
▪ Clase membresía
▪ Construcción de un diagrama
Entidad Relación
▪ El modelo Relacional
▪ Claves y restricciones
▪ Transformación de un diagrama E/R a
modelo Relacional
▪ Normalización de Bases de Datos
▪ Álgebra Relacional
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
4
15/01/2022
Representación del problema
mediante el modelado.
▪ Simplificación del objeto en el mundo real, pero que es
suficientemente realista como para dar una idea de lo
que ocurrirá en la realidad y usarse como base del
desarrollo.
▪ ¿Qué es un modelo?: Un modelo es una abstracción
que se construye para entender y resolver problemas.
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
5
15/01/2022
¿Qué es un modelo?
▪ ¿Qué es un modelo?
▪ Un modelo es una representación
de la realidad. No sólo se modela
software sino prácticamente
cualquier actividad.
▪ ¿Para qué se modela?
▪ Para resolver un problema más
fácilmente
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
6
15/01/2022
Contenido
▪ Representación del problema
▪ El Modelo de Datos
▪ Diagramas de Entidad Relación
▪ Entidad
▪ Relación
▪ Dominios
▪ Atributos
▪ Tipos de Atributos
▪ Cardinalidad
▪ Cardinalidad de relaciones no
binarias
▪ Cardinalidad de relaciones
reflexivas
▪ El modelo Entidad Relación
ampliado
▪ Generalización y especificación
▪ Entidades Débiles
▪ Relaciones recursivas
▪ Agregación
▪ Clase membresía
▪ Construcción de un diagrama
Entidad Relación
▪ El modelo Relacional
▪ Claves y restricciones
▪ Transformación de un diagrama E/R a
modelo Relacional
▪ Normalización de Bases de Datos
▪ Álgebra Relacional
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
7
15/01/2022
Modelación de Datos
▪ La modelación de datos nos permiten abstraer de
problemas del mundo real los datos (objetos o
entidades) involucrados y las relaciones que
existen entre ellos.
▪ Los modelos de datos describen las relaciones entre los
datos que forman una base de datos.
▪ No se refieren en ningún momento a los valores
específicos que un elemento de datos debe tomar.
▪ Tratan a los datos como grupos genéricos, que pueden
tomar cualquier conjunto de valores específicos
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
8
15/01/2022
Conjunto de entidades
▪ Una base de datos puede ser modelada como
▪ Conjunto de entidades
▪ Relación entre entidades
▪ Una entidad es un objeto que existe, y es distinguible de otros
objetos
▪ Ejemplo: persona específica, compañía, evento, planta
▪ Las entidades tienen atributos
▪ Ejemplo: personas tienen nombre y dirección
▪ Un conjunto de entidades es un conjunto de entidades del mismo
tipo que comparten las mismas propiedades
▪ Ejemplo: conjunto de personas, compañías, árboles, días festivos.
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
9
15/01/2022
El Modelo de Datos
▪ Un modelo de datos es un lenguaje orientado a hablar de una base de
datos. Típicamente un modelo de datos permite describir:
▪ Las estructuras de datos de la base: El tipo de los datos que hay en la
base y la forma en que se relacionan.
▪ Las restricciones de integridad: Un conjunto de condiciones que deben
cumplir los datos para reflejar la realidad deseada.
▪ Operaciones de manipulación de los datos: típicamente, operaciones
de agregado, borrado, modificación y recuperación de los datos de la
base.
▪ Otro enfoque es pensar que un modelo de datos permite describir los
elementos de la realidad que intervienen en un problema dado y la forma
en que se relacionan esos elementos entre sí.
▪ No hay que perder de vista que una base de datos siempre está orientada
a resolver un problema determinado, por lo que los dos enfoques
propuestos son necesarios en cualquier desarrollo de software.
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
10
15/01/2022
Una clasificación de los modelos de datos
De acuerdo al nivel de abstracción que presentan:
▪ Modelos de Datos Conceptuales: orientados a la descripción de
estructuras de datos y restricciones de integridad. Se usan
fundamentalmente durante la etapa de Análisis de un problema dado y
están orientados a representar los elementos que intervienen en ese
problema y sus relaciones.
▪ El ejemplo más típico es el Modelo Entidad-Relación.
▪ Modelos de Datos Lógicos: orientados a las operaciones más que a la
descripción de una realidad. Usualmente están implementados en algún
sistema gestor de base de datos.
▪ El ejemplo más típico es el modelo relacional, que cuenta con la particularidad
de contar también con buenas características conceptuales (Normalización de
bases de datos).
▪ Modelos de Datos Físicos: estructuras de datos a bajo nivel
implementadas dentro del propio manejador.
▪ Ejemplos típicos de estas estructuras son los Árboles B+, las estructuras de
Hash, etc.
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
11
15/01/2022
Niveles de Abstracción
• Nivel de Vista: Describe una parte de la BD.
Puede esconder información por seguridad
• Nivel Lógico: Qué datos se almacenan en la
BD y qué relaciones existen entre esos datos.
• Nivel Físico: Cómo se almacenan los datos.
LÓGICO
FÍSICO
VISTA
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
12
15/01/2022
Niveles de Abstracción
ARQUITECTURA DE TRES NIVELES
• Nivel Externo (Lenguaje de Programación “tipo Pascal”)
tipo empleado = registro (no acceso al salario)
n_empleado: cadena(6);
n_depto: cadena(4);
fin;
• Nivel Conceptual (Lenguaje de definición de datos, DDL)
EMPLEADO (
NUMERO_EMPLEADO CARACTER(6) CLAVE PRINCIPAL,
NUMERO_DEPARTAMENTO CARACTER(4) NO NULO,
SALARIO NUMERICO(5) NO NULO )
• Nivel Interno EMP_ALMACENADO LONGITUD=20
PREFIJO TIPO=BYTE(6), DESPLAZAMIENTO=0
EMP# TIPO=BYTE(6), DESPLAZAMIENTO=6, INDICE=IEMP
DEPTO# TIPO=BYTE(4), DESPLAZAMIENTO=12
PAGA TIPO=PALABRA, DESPLAZAMIENTO=16
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
13
15/01/2022
Contenido
▪ Representación del problema
▪ El Modelo de Datos
▪ Diagramas de Entidad Relación
▪ Entidad
▪ Relación
▪ Dominios
▪ Atributos
▪ Tipos de Atributos
▪ Cardinalidad
▪ Cardinalidad de relaciones no
binarias
▪ Cardinalidad de relaciones
reflexivas
▪ El modelo Entidad Relación
ampliado
▪ Generalización y especificación
▪ Entidades Débiles
▪ Relaciones recursivas
▪ Agregación
▪ Clase membresía
▪ Construcción de un diagrama
Entidad Relación
▪ El modelo Relacional
▪ Claves y restricciones
▪ Transformación de un diagrama E/R a
modelo Relacional
▪ Normalización de Bases de Datos
▪ Álgebra Relacional
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
14
15/01/2022
Introducción e historia del modelo
Entidad-Relación
▪ Modelo de datos conceptual de alto nivel
▪ Propuesto por Peter P. Chen en 1976
▪ Extensiones/aportaciones de muchos otros autores
» No existe un único MER, sino una FAMILIA DE MODELOS
▪ Es un modelo semántico, surge por la necesidad de tener un
modelo más cercano al usuario
▪ Describe el “mundo real” como un conjunto de ENTIDADES y de
RELACIONES entre ellas
▪ Gran difusión
▪ Muy extendido en los métodos de diseño de bases de datos
▪ Soportado por herramientas software de diseño (CASE)
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
15
15/01/2022
▪ Descripción concisa de los requisitos de
información de los usuarios
▪ Descripciones detalladas de
▪ TIPOS DE DATOS
▪ RELACIONES ENTRE DATOS
▪ RESTRICCIONES que los DATOS deben cumplir
▪ Sin detalles de implementación
▪ Más fácil de entender
▪ Comunicación con el usuario no técnico
Esquema conceptual
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
16
15/01/2022
Elementos del Modelo ER
1. Entidad ( entity )
2. Atributo ( attribute )
3. Relación ( relationship )
4. Dominio ( values set )
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
17
15/01/2022
Elementos del Modelo ER
Entidad
Atributo
Atributo
Compuesto
Relacion
Enlace
Atributo
Derivado
Atributo
Llave
Relación de
Identificación
Entidad
Débil
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
18
15/01/2022
Modelo ER
E1 E2
R
E1 E2
R
E
R
1 n
(min, max)
Participacion Total de E2 en R
Relación de Cardinalidad 1:n para E1:E2 en R
Restriccion Estructural (min, max) en la participacion
de E en R
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
19
15/01/2022
Contenido
▪ Representación del problema
▪ El Modelo de Datos
▪ Diagramas de Entidad Relación
▪ Entidad
▪ Relación
▪ Dominios
▪ Atributos
▪ Tipos de Atributos
▪ Cardinalidad
▪ Cardinalidad de relaciones no
binarias
▪ Cardinalidad de relaciones
reflexivas
▪ El modelo Entidad Relación
ampliado
▪ Generalización y especificación
▪ Entidades Débiles
▪ Relaciones recursivas
▪ Agregación
▪ Clase membresía
▪ Construcción de un diagrama
Entidad Relación
▪ El modelo Relacional
▪ Claves y restricciones
▪ Transformación de un diagrama E/R a
modelo Relacional
▪ Normalización de Bases de Datos
▪ Álgebra Relacional
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
20
15/01/2022
ENTIDAD
▪ Cosa u objeto del mundo real con existencia propia y
distinguible del resto
▪ Objeto con existencia...
▪ física o real (una persona, un libro, un empleado)
▪ abstracta o conceptual (una asignatura, un viaje)
▪ “Persona, lugar, cosa, concepto o suceso, real o
abstracto, de interés para la empresa” (ANSI, 1977)
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
21
15/01/2022
Contenido
▪ Representación del problema
▪ El Modelo de Datos
▪ Diagramas de Entidad Relación
▪ Entidad
▪ Relación
▪ Dominios
▪ Atributos
▪ Tipos de Atributos
▪ Cardinalidad
▪ Cardinalidad de relaciones no
binarias
▪ Cardinalidad de relaciones
reflexivas
▪ El modelo Entidad Relación
ampliado
▪ Generalización y especificación
▪ Entidades Débiles
▪ Relaciones recursivas
▪ Agregación
▪ Clase membresía
▪ Construcción de un diagrama
Entidad Relación
▪ El modelo Relacional
▪ Claves y restricciones
▪ Transformación de un diagrama E/R a
modelo Relacional
▪ Normalización de Bases de Datos
▪ Álgebra Relacional
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
22
15/01/2022
RELACIÓN (relationship)
▪ También “interrelación”
▪ Asociación, vínculo o correspondencia
entre instancias de entidades relacionadas de alguna
manera en el “mundo real”
▪ el director “Alejandro Amenábar” ha rodado la película “Mar
adentro”
▪ el empleado 87654321 trabaja en el local de videoclub
“principal”
▪ la película “El imperio contraataca” es una continuación de
la película “La guerra de las galaxias”
El término “Relationship” suele traducirse también por “Interrelación”
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
23
15/01/2022
DIRECTOR HA_RODADO PELICULA
J. Médem
C. Saura
F. Trueba
S. Segura
A. Amenábar
Vacas
Tesis
Belle Epoque
Torrente
Tierra
Abre los ojos
Los otros
Tipo de Relación:
conjunto de instancias
Tipo de Entidad:
conjunto de instancias
Instancia
del tipo de
relación
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
24
15/01/2022
Grado de un tipo de relación
▪ Número de tipos de entidad que participan
en el tipo de relación
▪ Binaria: grado 2 (el más frecuente)
▪ Ternaria: grado 3
▪ Reflexiva (o recursiva): grado 1
ACTOR PELICULA
ACTUA_EN
CLIENTE PELICULA
LOCAL_VIDEOCLUB
ALQUILA
PELICULA
CONTINUACION
DE
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
25
15/01/2022
Nombres de Rol (papel)
▪ Todo tipo de entidad que participa en un tipo de relación
juega un papel específico en la relación
▪ Los nombres de rol se deben usar, sobre todo, en los tipos
de relación reflexivos, para evitar ambigüedad
original
versión
PELICULA
VERSION_DE
DIRECTOR PELICULA
HA_RODADO
realizador film
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
26
15/01/2022
Restricciones estructurales sobre tipos de
relación
▪ Limitan las posibles combinaciones de entidades que
pueden participar en las relaciones
▪ Extraídas de la situación real que se modela
“Una película debe haber sido dirigida por uno y sólo un
director”
“Un director ha dirigido al menos una película y puede haber
dirigido muchas”
▪ Clases de restricciones estructurales:
▪ Razón de cardinalidad (o tipo de correspondencia)
▪ Razón de participación
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
27
15/01/2022
Contenido
▪ Representación del problema
▪ El Modelo de Datos
▪ Diagramas de Entidad Relación
▪ Entidad
▪ Relación
▪ Dominios
▪ Atributos
▪ Tipos de Atributos
▪ Cardinalidad
▪ Cardinalidad de relaciones no
binarias
▪ Cardinalidad de relaciones
reflexivas
▪ El modelo Entidad Relación
ampliado
▪ Generalización y especificación
▪ Entidades Débiles
▪ Relaciones recursivas
▪ Agregación
▪ Clase membresía
▪ Construcción de un diagrama
Entidad Relación
▪ El modelo Relacional
▪ Claves y restricciones
▪ Transformación de un diagrama E/R a
modelo Relacional
▪ Normalización de Bases de Datos
▪ Álgebra Relacional
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
28
15/01/2022
DOMINIO (values set)
▪ Conjunto de valores
▪ Cada atributo simple está asociado a un dominio, que
especifica sus valores válidos
◼ No suele representarse,
aunque una forma de
hacerlo sería:
[MPM1999]
Atributo Dominio Descripción Dominio
nombre NOMBRES cadenas de hasta 30 caracteres alfabéticos
telefono TELEFONOS cadenas de hasta 9 caracteres numéricos
altura MEDIDAS números reales entre 0 y 2’5 (metros)
... ... ...
TELEFONOS
NOMBRES
telefono
nombre
MEDIDAS
altura
EMPLEADO
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
29
15/01/2022
Contenido
▪ Representación del problema
▪ El Modelo de Datos
▪ Diagramas de Entidad Relación
▪ Entidad
▪ Relación
▪ Dominios
▪ Atributos
▪ Tipos de Atributos
▪ Cardinalidad
▪ Cardinalidad de relaciones no
binarias
▪ Cardinalidad de relaciones
reflexivas
▪ El modelo Entidad Relación
ampliado
▪ Generalización y especificación
▪ Entidades Débiles
▪ Relaciones recursivas
▪ Agregación
▪ Clase membresía
▪ Construcción de un diagrama
Entidad Relación
▪ El modelo Relacional
▪ Claves y restricciones
▪ Transformación de un diagrama E/R a
modelo Relacional
▪ Normalización de Bases de Datos
▪ Álgebra Relacional
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
30
15/01/2022
ATRIBUTO
▪ Propiedad o característica de una entidad
▪ Una entidad particular es descrita por los valores de sus
atributos:
titulo = El alquimista impaciente
genero = Thriller
nacionalidad = España
añoestreno = 2002
p1
...
nss = 1122334455
dni = 87654321
nombre = Cristina Aliaga Gil
nacionalidad = España
e1
...
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
31
15/01/2022
Atributos en relaciones
▪ A veces los atributos no son propios de ninguna entidad…
▪ Sino del hecho mismo de la relación:
▪ Relaciones de tipo "histórico" donde debe constar una fecha o una
hora.
▪ Hacer constar la fecha de compra en que persona compró el auto: la
fecha es de la compra, no de la persona, ni del auto.
▪ Se representan igual que los atributos de las entidades.
▪ En tal caso, el atributo "Fecha de compra" debería colocarse en la
relación "compra".
compra
Persona Auto
Fecha_compra
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
32
15/01/2022
TIPO DE ENTIDAD (entity set)
▪ Define un conjunto de entidades que poseen los
mismos atributos
PELICULA: titulo, genero, nacionalidad, añoestreno,numcopias
EMPLEADO: dni, nss, nombre, fechanacim, direccion, telefono,
altura, nacionalidad, edad
▪ Notación
EMPLEADO
LOCAL
VIDEOCLUB
PELICULA DIRECTOR
ACTOR
CLIENTE
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
33
15/01/2022
Instancia de un tipo de entidad
▪ También...
▪ Ocurrencia
▪ Realización
▪ Ejemplar
▪ Entidad concreta o
individual
PELICULA
titulo = El señor de los anillos
genero = Fantasía
nacionalidad = EEUU
añoestreno = 2001
p2
...
titulo = Amelie
genero = Comedia
nacionalidad = Francia
añoestreno = 2001
p4
...
titulo = Amores perros
genero = Drama
nacionalidad = Méjico
añoestreno = 1999
p3
...
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
34
15/01/2022
Intensión y Extensión
▪ Un tipo de entidad describe el esquema o intensión
para un conjunto de entidades que poseen la misma
estructura
EMPLEADO: dni, nss, nombre, dirección, telefono, altura,
fechanacim, nacionalidad, edad
▪ Las instancias del tipo de entidad se agrupan en un
conjunto de entidades o extensión
e1 • (87654321, 1122334455, “Cristina Aliaga Gil”, “Libertad, 2. Yecla.
Murcia. 30510”, 968100200, 1’60, 28/07/1979, España, 23)
e2 • (12345678, 6677889900, “Antonio Gil Sánchez”, “Paz, 5. Murcia.
Murcia.30012”, 968111222, 1’76, 14/04/1944, España, 58)
e3 • (11223344, 1234567890, “Julia Sauce”, “Justicia, 20. Yecla. Murcia.
30510”, 968000222, 1’59, 23/05/1947, España, 55)
...
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
35
15/01/2022
Contenido
▪ Representación del problema
▪ El Modelo de Datos
▪ Diagramas de Entidad Relación
▪ Entidad
▪ Relación
▪ Dominios
▪ Atributos
▪ Tipos de Atributos
▪ Cardinalidad
▪ Cardinalidad de relaciones no
binarias
▪ Cardinalidad de relaciones
reflexivas
▪ El modelo Entidad Relación
ampliado
▪ Generalización y especificación
▪ Entidades Débiles
▪ Relaciones recursivas
▪ Agregación
▪ Clase membresía
▪ Construcción de un diagrama
Entidad Relación
▪ El modelo Relacional
▪ Claves y restricciones
▪ Transformación de un diagrama E/R a
modelo Relacional
▪ Normalización de Bases de Datos
▪ Álgebra Relacional
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
36
15/01/2022
Tipos de atributos
▪ Simples o Compuestos
▪ Almacenados o
Derivados
▪ Monovalorados o
Multivalorados
▪ Opcionales
multivalorados
Simples compuestos
derivados
Monovalorados
(0,1)
EMPLEADO altura
Almacenados
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
37
15/01/2022
Atributos Simples o Compuestos
▪ Atributos compuestos
▪ Pueden dividirse en otros con significado propio
▪ Valor compuesto = concatenación de valores de componentes
▪ Atributos simples
▪ No divisibles. Atómicos
fechanacim
dia mes año
direccion
calle ciudad provincia codpostal
genero
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
38
15/01/2022
Atributos Almacenados o Derivados
▪ Atributos derivados
▪ Valor calculado a partir de otra información ya existente
(atributos, entidades relacionadas)
▪ Son información redundante...
edad [de EMPLEADO], cálculo a partir de fechanacim
▪ atributo derivado del valor de otro atributo
numcopias [de una PELICULA], cuenta del número de entidades
COPIA relacionadas con cada película concreta
▪ atributo derivado de entidades relacionadas
▪ Atributos almacenados
fechanacim [de cada EMPLEADO]
nacionalidad [de una PELICULA]
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
39
15/01/2022
Atributos Monovalorados o Multivalorados
▪ Atributos monovalorados (monovaluados)
▪ sólo un valor para cada entidad
fechanacim [de un EMPLEADO particular]
añoestreno [de cada PELICULA concreta]
▪ Atributos multivalorados (multivaluados)
▪ más de un valor para la misma entidad
nacionalidad [ PELICULA coproducida por varios países ]
telefono [ EMPLEADO con varios teléfonos de contacto]
▪ pueden tener límites superior e inferior
del número de valores por entidad
nacionalidad (1-2)
telefono (0-3)
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
40
15/01/2022
Atributos Opcionales (nulos)
▪ El nulo (null value) es usado cuando...
▪ Se desconoce el valor de un atributo para cierta entidad
▪ El valor existe pero falta
altura [de un EMPLEADO]
▪ No se sabe si el valor existe o no
telefono [de un EMPLEADO]
▪ La entidad no tiene ningún valor aplicable para el atributo:
fechaalquiler [PELICULA sólo en vídeo-venta (no alquiler)]
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
41
15/01/2022
Notación para atributos
[EN2002]
(0,3)
dirección
(1,2)
(0,1)
EMPLEADO
nombre
fechanacim telefono
calle
provincia
ciudad
codpostal
edad
nss
dni
altura
nacionalidad
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
42
15/01/2022
Atributos Clave
▪ Atributo con valor distinto para cada instancia de un tipo
de entidad
dni en EMPLEADO
▪ Una clave identifica de forma única cada entidad concreta
 atributo identificador
▪ Notación
EMPLEADO
[EN2002]
dni
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
43
15/01/2022
Atributos Clave (ii)
▪ Una clave puede estar formada por
varios atributos  clave compuesta
▪ Combinación de valores distinta para cada instancia
(nombre, fechanacim) en el tipo de entidad EMPLEADO
▪ Una clave compuesta debe ser mínima
▪ Un tipo de entidad puede tener
más de una clave  claves candidatas
Claves o Identificadores Candidatos de EMPLEADO:
▪ dni
▪ nss
▪ (nombre, fechanacim)
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
44
15/01/2022
Atributos Clave (iii)
▪ Atributo identificador principal (IP)
▪ Clave Principal
▪ Elegido (por el diseñador) de entre los identificadores
candidatos (IC), para ser
el medio principal de identificación de
las instancias del tipo de entidad
▪ dni en EMPLEADO
▪ Atributos identificadores alternativos (IA)
▪ Claves Alternativas
▪ El resto de IC’s
▪ nss y (nombre, fechanacim) en EMPLEADO
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
45
15/01/2022
Notación para atributos clave
[EN2002]
◼ En el MER es obligatorio que todo tipo de
entidad tenga un identificador
(0,3)
(1,2)
(0,1)
EMPLEADO
nombre
fechanacim telefono
calle
provincia
ciudad
codpostal
edad
nss
dni
altura
nacionalidad
n-f
dirección
IP
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
46
15/01/2022
Contenido
▪ Representación del problema
▪ El Modelo de Datos
▪ Diagramas de Entidad Relación
▪ Entidad
▪ Relación
▪ Dominios
▪ Atributos
▪ Tipos de Atributos
▪ Cardinalidad
▪ Cardinalidad de relaciones no
binarias
▪ Cardinalidad de relaciones
reflexivas
▪ El modelo Entidad Relación
ampliado
▪ Generalización y especificación
▪ Entidades Débiles
▪ Relaciones recursivas
▪ Agregación
▪ Clase membresía
▪ Construcción de un diagrama
Entidad Relación
▪ El modelo Relacional
▪ Claves y restricciones
▪ Transformación de un diagrama E/R a
modelo Relacional
▪ Normalización de Bases de Datos
▪ Álgebra Relacional
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
47
15/01/2022
Razón de Cardinalidad
Notación [EN2002]
▪ Número máximo de instancias de tipo de relación en
las que puede participar una misma instancia de tipo
de entidad
▪ la cardinalidad de HA_RODADO es “1 a N”
▪ HA_RODADO es de tipo “1 a N”
▪ Notación
▪ etiqueta en la línea que
une entidad y relación
▪ Ojo: da la sensación de
que se representa “al revés”
1
N
DIRECTOR
PELICULA
HA_RODADO
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
48
15/01/2022
▪ Razones de cardinalidad más comunes:
▪ 1:1 (“uno a uno”)
▪ 1:N (“uno a muchos”)
▪ M:N (“muchos a muchos”)
Razón de Cardinalidad (ii)[EN2002]
ACTOR
PELICULA
personaje
film
M
ACTUA_EN
N
EMPLEADO
LOCAL_VIDEOCLUB
encargado
sucursal
1
trabajador
lugar trabajo
1
TRABAJA_EN SUPERVISA
N
1
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
49
15/01/2022
Relaciones con cardinalidad 1:1
▪ Una instancia de la entidad A está asociada con
0 o 1 instancia de la entidad B
▪ Una instancia de la entidad B está asociada con
0 o 1 instancia de la entidad A
B
A
RAB
1
1
a1 a2 a3 a4
b1 b2 b3
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
50
15/01/2022
Ejemplo Relación 1:1
1 curso es impartido por 1 profesor
1 profesor imparte 1 curso
TEACHES
COURSE TEACHER
1
1
CRSID
TITLE
TNAME
DEPT
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
51
15/01/2022
Relaciones con cardinalidad 1:N
▪ Una instancia de la entidad A está asociada
con 0 o más instancias de la entidad B
▪ Una instancia de la entidad B está asociada
con 0 o 1 instancia de la entidad A
B
A
RAB
1
N
a1 a2 a3
b4
b1 b2 b3
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
52
15/01/2022
Ejemplo relación 1:N
1 curso es impartido por máximo 1 profesor
1 profesor imparte CERO o MAS cursos
TEACHES
COURSE TEACHER
1
N
CRSID
TITLE
TNAME
DEPT
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
53
15/01/2022
Relaciones con cardinalidad M:N
▪ Una instancia de la entidad A está asociada con 0
o más instancias de la entidad B
▪ Una instancia de la entidad B está asociada con 0
o más instancias de la entidad A
B
A
RAB
M
N
a1 a2 a3
b4
b1 b2 b3
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
54
15/01/2022
Ejemplo Relación M:N
1 país exporta CERO o MAS productos
1 producto es exportado por CERO o MAS países
1 país exporta máximo N productos
1 producto es exportado por máximo N países
EXPORT
COUNTRY PRODUCT
N
M
ID
NAME
PNUM
PDESCRPTION
QTY
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
55
15/01/2022
Contenido
▪ Representación del problema
▪ El Modelo de Datos
▪ Diagramas de Entidad Relación
▪ Entidad
▪ Relación
▪ Dominios
▪ Atributos
▪ Tipos de Atributos
▪ Cardinalidad
▪ Cardinalidad de relaciones no
binarias
▪ Cardinalidad de relaciones
reflexivas
▪ El modelo Entidad Relación
ampliado
▪ Generalización y especificación
▪ Entidades Débiles
▪ Relaciones recursivas
▪ Agregación
▪ Clase membresía
▪ Construcción de un diagrama
Entidad Relación
▪ El modelo Relacional
▪ Claves y restricciones
▪ Transformación de un diagrama E/R a
modelo Relacional
▪ Normalización de Bases de Datos
▪ Álgebra Relacional
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
56
15/01/2022
Tipos de relación con grado superior a dos
▪ Tipo de relación ternaria
[EN2002]
CLIENTE
CINTA
VIDEO
LOCAL
VIDEOCLUB
ALQUILA
(0,1)
(0,n)
(0,m)
• Cardinalidad de los tipos de entidad
fecha
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
57
15/01/2022
Tipos de relación con grado superior a dos (ii)
▪ Equivalencia ternaria – varias binarias
[EN2002]
CLIENTE
CINTA
VIDEO
LOCAL
VIDEOCLUB
ALQUILA
(0,1)
(0,n)
(0,m)
fecha
LOCAL
VIDEOCLUB
ALQUILA
(1,m) (0,1)
(1,n)
(0,n)
(1,1)
(1,n)
CONTIENE
fecha
ALQUILA_EN
CINTA
VIDEO
CLIENTE
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
58
15/01/2022
Tipos de relación con grado superior a dos (iii)
▪ Ternaria no equivalente a varias binarias
[EN2002]
TIENDA
(1,m) (1,m)
(1,n)
(1,n)
(0,n)
(1,m)
VENDE
PROVEE
PUEDE
SUMINISTRAR
PRODUCTO
PROVEEDOR
PRODUCTO
TIENDA
(0,m)
(1,n)
(1,p)
SUMINISTRA
idprov
codpr
nombre
cantidad
fecha
PROVEEDOR
• Pérdida de semántica...
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
59
15/01/2022
Convertir relaciones no binarias a
binarias
▪ En general cualquier relación puede ser representada usando
relaciones binarias crenado un conjunto de entidades artificial.
▪ Reemplace R entre los conjuntos de entidades A, B y C con un conjunto de
entidades E, y tres conjuntos de relaciones:
▪ 1. RA, entre E y A 2. RB entre E y B 3. RC entre E y C
▪ Cree un atributo especial identificado por E
▪ Agregue cualquier atributo de R a E
▪ Para cualquier relación (ai, bi, ci) en R, cree
▪ 1. una nueva entidad ei en el conjunto de entidades E
▪ 2. agregue (ei, ai) a RA
▪ 3. agregue (ei, ai) a RB
▪ 4. agregue (ei, ci) a RC
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
60
15/01/2022
Convertir relaciones no binarias a
binarias
▪ También es necesario traducir las restricciones
▪ Traducir todas las restricciones puede ser imposible
▪ Puede haber instancias en el esquema traducido que puedan no
corresponder a ninguna instancia de R
▪ Ejercicio: agregue restricciones a las relaciones RA, RB, RC para asegurar que la
entidad creada corresponda exactamente a cada una de los conjuntos de
entidades A, B y C.
▪ Podemos evitar crear un atributo identificado haciendo E una
conjunto de entidades débiles identificado por los tres conjuntos
de relaciones.
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
61
15/01/2022
Contenido
▪ Representación del problema
▪ El Modelo de Datos
▪ Diagramas de Entidad Relación
▪ Entidad
▪ Relación
▪ Dominios
▪ Atributos
▪ Tipos de Atributos
▪ Cardinalidad
▪ Cardinalidad de relaciones no
binarias
▪ Cardinalidad de relaciones
reflexivas
▪ El modelo Entidad Relación
ampliado
▪ Generalización y especificación
▪ Entidades Débiles
▪ Relaciones recursivas
▪ Agregación
▪ Clase membresía
▪ Construcción de un diagrama
Entidad Relación
▪ El modelo Relacional
▪ Claves y restricciones
▪ Transformación de un diagrama E/R a
modelo Relacional
▪ Normalización de Bases de Datos
▪ Álgebra Relacional
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
62
15/01/2022
Cardinalidad de tipo de entidad recursivos
▪ Cardinalidad de tipos de entidad recursivos(reflexivos)
[EN2002]
N
1
subalterno
superior
(0,1)
(0,n)
EMPLEADO JEFE DE
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
63
15/01/2022
Relación 1:1
▪ No se crea una tabla para la relación. La clave de la
entidad se repite, con lo que la tabla resultante
tendrá ese atributo dos veces, una como clave
primaria y otra como clave ajena de ella misma.
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
64
15/01/2022
Relación 1:N
▪ En este caso hay que tener en cuenta la cardinalidad
del lado muchos:
1. Si no es obligatoria se crea una nueva tabla cuya
clave será la de la entidad del lado muchos
(Cod_tema_S) y se propaga la clave a la nueva tabla
como clave ajena.
2. Si es siempre obligatoria no se crea una nueva tabla
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
65
15/01/2022
Relación M:N
▪ La tabla que resulta de la relación
contendrá dos veces la clave primaria de la
entidad del lado muchos, más los atributos
de la relación, si los hay. La clave de esta
nueva tabla será la combinación de las dos.
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
66
15/01/2022
Contenido
▪ Representación del problema
▪ El Modelo de Datos
▪ Diagramas de Entidad Relación
▪ Entidad
▪ Relación
▪ Dominios
▪ Atributos
▪ Tipos de Atributos
▪ Cardinalidad
▪ Cardinalidad de relaciones no
binarias
▪ Cardinalidad de relaciones
reflexivas
▪ El modelo Entidad Relación
ampliado
▪ Generalización y especificación
▪ Entidades Débiles
▪ Relaciones recursivas
▪ Agregación
▪ Clase membresía
▪ Construcción de un diagrama
Entidad Relación
▪ El modelo Relacional
▪ Claves y restricciones
▪ Transformación de un diagrama E/R a
modelo Relacional
▪ Normalización de Bases de Datos
▪ Álgebra Relacional
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
67
15/01/2022
• Aportaciones de diversos autores al modelo
Entidad-Relación «básico».
• Permiten representar...
– Relaciones exclusivas entre sí
– Jerarquías de Especialización/Generalización
Modelo Entidad-Relación Extendido, MERE
Enhanced Entity-Relationship model, EER
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
68
15/01/2022
• Dos (o más) tipos de relación son exclusivos,
respecto de un tipo de entidad que participa en
ambos, si cada instancia del tipo de entidad sólo
puede participar en uno de los tipos de relación
GASOLINA
GASTA
CONSUME
GASOIL
Relaciones Exclusivas
• CONSUME y GASTA son exclusivas respecto del tipo de
entidad VEHICULO
VEHÍCULO
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
69
15/01/2022
▪ Otro ejemplo sería el de un ARTÍCULO que pudiera
publicarse en un PERIÓDICO o en una REVISTA, pero
nunca en ambos.
▪ Un ejemplo más sería el de los domicilios de los
estudiantes universitarios durante el curso académico.
Un ESTUDIANTE se puede alojar en un
DOMICILIO_FAMILIAR, una
RESIDENCIA_ESTUDIANTES o en un
PISO_COMPARTIDO. Las tres relaciones que unen a
ESTUDIANTE con las tres entidades serían exclusivas
entre sí.
Relaciones Exclusivas
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
70
15/01/2022
Contenido
▪ Representación del problema
▪ El Modelo de Datos
▪ Diagramas de Entidad Relación
▪ Entidad
▪ Relación
▪ Dominios
▪ Atributos
▪ Tipos de Atributos
▪ Cardinalidad
▪ Cardinalidad de relaciones no
binarias
▪ Cardinalidad de relaciones
reflexivas
▪ El modelo Entidad Relación
ampliado
▪ Generalización y especificación
▪ Entidades Débiles
▪ Relaciones recursivas
▪ Agregación
▪ Clase membresía
▪ Construcción de un diagrama
Entidad Relación
▪ El modelo Relacional
▪ Claves y restricciones
▪ Transformación de un diagrama E/R a
modelo Relacional
▪ Normalización de Bases de Datos
▪ Álgebra Relacional
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
71
15/01/2022
• Caso especial de relación entre un tipo de entidad y
varios otros tipos de entidad
• La jerarquía o relación que se establece entre uno y
otros corresponde a la noción de “es_un” o de
“es_un_tipo_de”
• Estas jerarquías pueden formarse por
especialización o bien por generalización
Especialización/Generalización (E/G)
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
72
15/01/2022
• Agrupación de instancias dentro de un tipo de
entidad, que debe representarse explícitamente
debido a su importancia para el diseño o aplicación
– Subtipos del tipo de entidad VEHÍCULO:
• CAMIÓN
• TURISMO
• AUTOBÚS
• CICLOMOTOR
– Subtipos del tipo de entidad EMPLEADO:
• SECRETARIO
• GERENTE
• COMERCIAL
• El tipo de entidad que se especializa en otros se
llama supertipo ( VEHICULO, EMPLEADO )
E/G: Subtipo de un tipo de entidad
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
73
15/01/2022
• Es la relación que se establece entre un supertipo y
cada uno de sus subtipos (noción es_un o es_un_tipo_de)
• Notación:
EMPLEADO [EN2002]
E/G: Relación Supertipo/Subtipo
SECRETARIO GERENTE COMERCIAL
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
74
15/01/2022
• La extensión de un subtipo es un subconjunto de la
extensión del supertipo
– Una instancia de subtipo también es instancia del supertipo y es
la misma instancia, pero con un papel específico distinto
– Una instancia no puede existir sólo por ser miembro de un
subtipo: también debe ser miembro del supertipo
– Una instancia del supertipo puede no ser miembro de ningún
subtipo
E/G: Relación Supertipo/Subtipo (ii)
VEHÍCULO
CICLOMOTOR
CAMIÓN TURISMO
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
75
15/01/2022
• Un subtipo puede tener atributos propios (específicos)
y participar en relaciones por separado
• Un subtipo hereda todos los atributos del supertipo,
y toda relación en la que participa el supertipo
– Un subtipo, con sus atributos y relaciones específicos, más
los atributos y relaciones que hereda del supertipo, es un
tipo de entidad por derecho propio
VEHÍCULO
CAMIÓN
FABRICANTE
SIDECAR
FABRICA
LLEVA
numBastidor
precio
numEjes
tonelaje
numPuer numPlazas cilindrada
(1,1) (1,n)
(1,1)
(0,1)
TURISMO
N:1
1:1
MOTOCICLETA
E/G: Herencia de tipo
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
76
15/01/2022
• Proceso de definición de un conjunto de subtipos
de un tipo de entidad (» supertipo)
• Subtipos suelen estar definidos según característica
distintiva de las entidades del supertipo
– Discriminante de la especialización
E/G: Especialización
EMPLEADO
actividad
SECRETARIO GERENTE COMERCIAL
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
77
15/01/2022
• Varias especializaciones de un tipo de entidad,
con base en diferentes discriminantes
PELÍCULA
color
género
[EN2002]
E/G: Especialización (ii)
COLOR
BLANCO_Y_NEGRO
COMEDIA
DRAMA TERROR
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
78
15/01/2022
• Conviene incluir relaciones subtipo/supertipo si hay...
– Atributos que sólo tienen sentido para algunas instancias de
un tipo y no para todas (atributos específicos)
especialidadMédica «no es aplicable» a CELADOR
– Tipos de relación en los que sólo participan algunas
entidades de un tipo y no todas (relaciones específicas)
Relación SUPERVISA entre CELADOR y SECCIÓN_HOSPITAL
SUPERVISA
(1,1)
(1,1)
E/G: Especialización (iii)
CELADOR SECCIÓN_HOSPITAL
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
79
15/01/2022
• Proceso inverso de la especialización
• Suprimir diferencias entre varios tipos de entidad:
identificar atributos y relaciones comunes, y formar
un supertipo que los incluya
numBastidor
precio
numEjes
TURISMO
fechaFab
numBastidor
precio
numEjes tonelaje
numPuer
fechaFab
numBastidor
precio
fechaFab
CAMIÓN
TURISMO
CAMIÓN
numPuer
tonelaje
VEHÍCULO
[EN2002]
G
E/G: Generalización
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
80
15/01/2022
 Generalización
• Énfasis en las similitudes
• Cada instancia del supertipo es también una
instancia de alguno de los subtipos
 Especialización
• Énfasis en las diferencias
• Alguna instancia del supertipo puede no ser
instancia de ningún subtipo
E/G: Generalización vs. Especialización
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
81
15/01/2022
• Definición
¿Qué instancias del supertipo pertenecen a cada subtipo?
• Disyunción/Solapamiento
¿A cuántos subtipos puede pertenecer (a la vez) una instancia del
supertipo?
• Completitud/Parcialidad
¿Debe toda instancia del supertipo pertenecer a algún subtipo?
Restricciones sobre la E/G
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
82
15/01/2022
• Subtipos definidos por predicado o condición
– Condición de pertenencia a cada subtipo
con base en el valor de algún atributo del supertipo
– Restricción que especifica que...
• Las instancias del subtipo deben satisfacer la condición
• Todas las instancias del supertipo que cumplen la
condición, deben pertenecer al subtipo
PERSONA
EMPLEADO ESTUDIANTE
estadoLaboral=en_activo matriculado=true
[EN2002]
Restricciones sobre la E/G: Definición
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
83
15/01/2022
• Subtipos definidos por atributo
– Todas las subclases definen la condición de pertenencia en
términos del mismo atributo
– ... es el discriminante de la especialización
en_activo en_paro
estadoLaboral
claseTrabajo
médico celador
limpiador
enfermero
[EN2002]
Restricciones sobre la E/G: Definición (ii)
PERSONA
EMPLEADO PARADO
EMPLEADO_HOSPITAL
ENFERMERO
MÉDICO CELADOR LIMPIADOR
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
84
15/01/2022
• Subtipos definidos por el usuario
– No existe (o no interesa definir) ninguna condición de
pertenencia a los subtipos
– El usuario, al insertar una instancia, elige a qué subtipo
pertenece
Restricciones sobre la E/G: Definición (iii)
PROFESOR
TITULAR AYUDANTE ASOCIADO
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
85
15/01/2022
• Subtipos disjuntos si una
instancia del supertipo
puede ser miembro de,
como máximo, uno de los
subtipos
VEHÍCULO
TURISMO CAMIÓN
d
[EN2002]
Restricciones sobre la E/G:
Disyunción/Solapamiento
• Subtipos solapados si
una instancia del
supertipo puede ser, a
la vez, miembro de
más de un subtipo
• Es la opción «por
defecto»
PERSONA
EMPLEADO ESTUDIANTE
o
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
86
15/01/2022
• Especialización total
(completa) indica que
toda instancia del
supertipo también debe
ser instancia de algún
subtipo
ANIMAL
d
Restricciones sobre la E/G: Completitud/Parcialidad
MACHO HEMBRA HERMAFRODITA
•Especialización parcial indica que
es posible que alguna instancia del
supertipo no pertenezca a ninguno
de los subtipos
•Es la opción «por defecto»
•La unión de las extensiones de los
subtipos no es la extensión del
supertipo en su totalidad
ALIMENTO
d
LACTEO FRUTA VERDURA
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
87
15/01/2022
• Las restricciones de disyunción y completitud son
independientes entre sí
• Dan lugar a 4 tipos de especialización:
– Disjunta y Total
– Disjunta y Parcial
– Solapada y Total
– Solapada y Parcial
• Lo veremos con un ejemplo de una base de datos de
una Universidad
E/G: Tipos de Especialización
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
88
15/01/2022
EMPLEADO
claseTrabajo
ESTUDIANTE
tipo
E/G: Especialización Disjunta y Total
DOCENTE BECARIO BECARIO NO_BECARIO
ADMON_Y_SERV
Especialización Disjunta y Parcial
DOCENTE
TITULAR
AYUDANTE CATEDRÁTICO
cuerpoDocente
d d
d
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
89
15/01/2022
E/G: Especialización Solapada y Total
Especialización Solapada y Parcial
EMPLEADO
ocupación
ESTUDIANTE
PERSONA
EMPLEADO
DOCENTE INVESTIGADOR
dedicación
O
O
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
90
15/01/2022
• Deben aplicarse a la Especialización y la
Generalización, debido a las restricciones definidas
❑ Insertar una instancia en un supertipo implica
insertarla en todos los subtipos definidos por predicado
o por atributo, para los cuales satisface el predicado de
definición
❑ Insertar una instancia en un supertipo de una
especialización total implica insertarla en, al menos,
un subtipo
Y si la especialización es disjunta, entonces la
instancia se insertará en un único subtipo
E/G: Reglas de inserción y eliminación
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
91
15/01/2022
❑ Eliminar una instancia de un supertipo implica
eliminarla de todos los subtipos a los que pertenece
❑ Eliminar una instancia de un subtipo implica
eliminarla del supertipo si la especialización es ...
– disjunta y total, o bien
– solapada y total, y la instancia ya sólo pertenece
al subtipo (se eliminó del resto)
En el resto de casos, la instancia sólo se elimina del
subtipo
– No del supertipo ( lo haría el usuario, si fuese necesario)
E/G: Reglas de inserción y eliminación (ii)
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
92
15/01/2022
Contenido
▪ Representación del problema
▪ El Modelo de Datos
▪ Diagramas de Entidad Relación
▪ Entidad
▪ Relación
▪ Dominios
▪ Atributos
▪ Tipos de Atributos
▪ Cardinalidad
▪ Cardinalidad de relaciones no
binarias
▪ Cardinalidad de relaciones
reflexivas
▪ El modelo Entidad Relación
ampliado
▪ Generalización y especificación
▪ Entidades Débiles
▪ Relaciones recursivas
▪ Agregación
▪ Clase membresía
▪ Construcción de un diagrama
Entidad Relación
▪ El modelo Relacional
▪ Claves y restricciones
▪ Transformación de un diagrama E/R a
modelo Relacional
▪ Normalización de Bases de Datos
▪ Álgebra Relacional
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
93
15/01/2022
Tipo de Entidad Débil
Notación [EN2002]
▪ No tiene atributos clave propios
▪ Una instancia se identifica por su relación con una
instancia de otro tipo de entidad
▪ Tipo de relación identificador
▪ Relaciona un tipo de entidad débil y un tipo de entidad regular
(fuerte, dominante, padre, propietaria)
▪ Clave parcial (o discriminante)
▪ Atributos de la entidad débil, que identifican de forma única cada
instancia, siempre que esté relacionada con una instancia del tipo
de entidad regular
▪ Clave = (clave_entidad_regular, clave_parcial)
▪ Notación COPIA
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
94
15/01/2022
Entidades débiles
▪ Entidades débiles: Una entidad débil solo puede ser
identificada de manera única al considerar la llave primaria
de otra entidad (dueña)
Dependent’s primary key: {empid, dname, birthdate}
EMPLOYEE
EMPID
NAME
DISC
SEX
rel
DEPOF DEPENDENT
DNAME
BDATE
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
95
15/01/2022
Entidades débiles
▪ Ejemplo: un libro tiene uno o más ejemplares, y un ejemplar es de
solo un libro. El ejemplar en si no dice mucho semánticamente, solo
podría saber algo mas de el sabiendo de que libro es el ejemplar.
▪ Por otro lado, si eliminamos un libro, desaparecen sus ejemplares.
tiene
Libro Ejemplar
(1,N)
(1,1)
Código
Nombre
Nr_hojas
Editorial
Número
Estado
Posición
Ejemplar
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
96
15/01/2022
Entidades débiles
▪ Ejemplo: Cada hospital tiene varias salas. Cada una de ellas
pertenece a un solo hospital. En distintos hospitales puede haber
salas con el mismo código, pero esto no puede ocurrir dentro de un
hospital.
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
97
15/01/2022
Tipo de entidad débil (ii)[EN2002]
PELICULA
numcopia
titulo
1
N
COPIA
TIENE
PACIENTE
VISITA_MEDICA diahora
1
nss
N
MEDICO ncolegiado
nombre
N
1
especialidad
ACUDE
ASISTIDA
POR
Tipo de
Relación
Identificador
Clave parcial o
Discriminante
Tipo de
Entidad
Regular
Dependencia
en existencia
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
98
15/01/2022
Tipo de entidad débil
▪ Dependencia en existencia (entre entidades)
▪ Si desaparece una instancia del tipo de entidad regular deben
desaparecer las instancias de la entidad débil que dependen
de ella
▪ Etiqueta “E” en el tipo de relación débil
▪ Dependencia en identificación
▪ Además de la dependencia en existencia...
▪ Una instancia del tipo de entidad débil no se puede identificar
por sí misma
▪ Su clave es (clave_entidad_regular, clave_parcial)
▪ Etiqueta “ID” en el tipo de relación débil
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
99
15/01/2022
Tipo de entidad débil
PERMISO_CONDUCCION es
débil, pues depende en
existencia de EMPLEADO,
pero no depende en
identificación
COPIA es débil, pues depende
en existencia de PELICULA, y
también depende en
identificación
numcopia
titulo
COPIA
1:N
TIENE
ID
PELICULA
idcopia
numlicencia
EMPLEADO
PERMISO
CONDUCCION
POSEE
1:N
E
dni
tipo
Tipo de
Relación
Débil
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
100
15/01/2022
Tipo de entidad débil (iii) [EN2002]
▪ No toda participación total (o dependencia en existencia)
implica un tipo de entidad débil
EMPLEADO
numlicencia
dni
1
N
PERMISO
CONDUCCION
POSEE
tipo
PERMISO_CONDUCCIÓN no es débil: depende en existencia de
EMPLEADO, pero tiene clave primaria propia
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
101
15/01/2022
Representación de entidades débiles
▪ Dibujamos el conjunto de entidades débil con un doble rectángulo.
▪ Se subraya con líneas punteadas el discriminador del conjunto de
entidades débil
▪ Discriminador payment-number del conjunto de entidades payment.
▪ Clave primaria para payment – (loan-number, payment-number)
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
102
15/01/2022
Representación de entidades débiles
▪ Nota: La clave primaria del conjunto de entidades fuerte no
se almacena explícitamente con el conjunto de entidades
débil, ya que está implícito en la relación identificadora.
▪ Si loan-number fuera explícitamente almacenada, payment
sería una entidad fuerte, pero la relación entre payment y
loan estaría duplicada por la relación implícita definida por
el atributo loan-number común a payment y loan.
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
103
15/01/2022
Más ejemplos de conjuntos de
entidades débiles
▪ En una universidad, un curso es una entidad fuerte y
oferta-curso puede ser modelado como una entidad débil.
▪ El discriminador de oferta-curso sería semestre (incluyendo
el año) y número-sección (si hay mas de una sección).
▪ Si modelamos oferta-curso como entidad fuerte
modelaríamos número-curso como un atributo. Luego la
relación con curso estaría implícita en el atributo número-
curso.
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
104
15/01/2022
Contenido
▪ Representación del problema
▪ El Modelo de Datos
▪ Diagramas de Entidad Relación
▪ Entidad
▪ Relación
▪ Dominios
▪ Atributos
▪ Tipos de Atributos
▪ Cardinalidad
▪ Cardinalidad de relaciones no
binarias
▪ Cardinalidad de relaciones
reflexivas
▪ El modelo Entidad Relación
ampliado
▪ Generalización y especificación
▪ Entidades Débiles
▪ Relaciones recursivas
▪ Agregación
▪ Clase membresía
▪ Construcción de un diagrama
Entidad Relación
▪ El modelo Relacional
▪ Claves y restricciones
▪ Transformación de un diagrama E/R a
modelo Relacional
▪ Normalización de Bases de Datos
▪ Álgebra Relacional
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
105
15/01/2022
Autorelaciones
▪ Ejemplo: En una empresa
existen funcionarios y se
sabe que unos son
funcionarios de otros. Un
funcionario puede ser jefe
de varios funcionarios y un
subordinado es controlado
por un único jefe.
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
106
15/01/2022
Contenido
▪ Representación del problema
▪ El Modelo de Datos
▪ Diagramas de Entidad Relación
▪ Entidad
▪ Relación
▪ Dominios
▪ Atributos
▪ Tipos de Atributos
▪ Cardinalidad
▪ Cardinalidad de relaciones no
binarias
▪ Cardinalidad de relaciones
reflexivas
▪ El modelo Entidad Relación
ampliado
▪ Generalización y especificación
▪ Entidades Débiles
▪ Relaciones recursivas
▪ Agregación
▪ Clase membresía
▪ Construcción de un diagrama
Entidad Relación
▪ El modelo Relacional
▪ Claves y restricciones
▪ Transformación de un diagrama E/R a
modelo Relacional
▪ Normalización de Bases de Datos
▪ Álgebra Relacional
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
107
15/01/2022
Agregaciones
▪ Representa asociaciones entre elementos de
relaciones y de otros conjuntos de entidades
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
108
15/01/2022
Contenido
▪ Representación del problema
▪ El Modelo de Datos
▪ Diagramas de Entidad Relación
▪ Entidad
▪ Relación
▪ Dominios
▪ Atributos
▪ Tipos de Atributos
▪ Cardinalidad
▪ Cardinalidad de relaciones no
binarias
▪ Cardinalidad de relaciones
reflexivas
▪ El modelo Entidad Relación
ampliado
▪ Generalización y especificación
▪ Entidades Débiles
▪ Relaciones recursivas
▪ Agregación
▪ Clase membresía/participación
▪ Construcción de un diagrama
Entidad Relación
▪ El modelo Relacional
▪ Claves y restricciones
▪ Transformación de un diagrama E/R a
modelo Relacional
▪ Normalización de Bases de Datos
▪ Álgebra Relacional
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
109
15/01/2022
Razón de Participación
Notación [EN2002]
▪ Especifica si toda la extensión de un tipo de entidad
participa en un tipo de relación, o sólo parte de la
extensión
▪ Indica si hay dependencia en existencia de un tipo de
entidad respecto de un tipo de relación
▪ Clases de participación:
▪ Participación total (dependencia en existencia)
▪ Participación parcial
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
110
15/01/2022
Razón de Participación
▪ Participación: Determina la dependencia de uns instancia
de una entidad con respecto a las instancias de la otra
entidad.
▪ Total: Ej. Un empleado debe trabajar en un
departamento (doble línea en el diagrama ER)
▪ Parcial: Ej. Un empleado puede ser administrador (línea
sencilla en el diagrama ER)
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
111
15/01/2022
Razón de Participación (ii)[EN2002]
▪ Notación
▪ Líneas dobles o
simples
EMPLEADO
LOCAL_VIDEOCLUB
encargado
sucursal
1
trabajador
lugar trabajo
1
TRABAJA_EN SUPERVISA
N
1
DIRECTOR
PELICULA
HA_ RODADO
1
N
PELICULA
personaje
film
M
ACTUA_EN
N
ACTOR
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
112
15/01/2022
Razón de Participación (iii)[EN2002]
▪ Participación total: Todo empleado trabaja en un local
(sucursal) del vídeo-club.
▪ Toda instancia de EMPLEADO DEBE estar relacionada con alguna
instancia de LOCAL
▪ NO tiene sentido que EXISTA un empleado que NO trabaje en algún local,
es decir que NO participe en una relación de tipo TRABAJA_EN
▪ Participación parcial: NO todo empleado es encargado de
un local del vídeo-club, sino sólo algunos de ellos
▪ NO NECESARIAMENTE TODAS las instancias EMPLEADO
están relacionadas con instancias de LOCAL, sino las de un
subconjunto del conjunto total de empleados
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
113
15/01/2022
Razón de Participación
▪ Participación total
▪ Se representa con doble línea del lado de la entidad en
la que todas sus instancias deben estar asociadas con
alguna instancia de la otra entidad.
▪ 1 país exporta CERO o MAS productos
▪ 1 producto es exportado por UNO o MAS países
EXPORT
COUNTRY PRODUCT
N
M
ID
NAME
PNUM
PDESCRPTION
QTY
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
114
15/01/2022
Contenido
▪ Representación del problema
▪ El Modelo de Datos
▪ Diagramas de Entidad Relación
▪ Entidad
▪ Relación
▪ Dominios
▪ Atributos
▪ Tipos de Atributos
▪ Cardinalidad
▪ Cardinalidad de relaciones no
binarias
▪ Cardinalidad de relaciones
reflexivas
▪ El modelo Entidad Relación
ampliado
▪ Generalización y especificación
▪ Entidades Débiles
▪ Relaciones recursivas
▪ Agregación
▪ Clase membresía
▪ Construcción de un diagrama
Entidad Relación
▪ El modelo Relacional
▪ Claves y restricciones
▪ Transformación de un diagrama E/R a
modelo Relacional
▪ Normalización de Bases de Datos
▪ Álgebra Relacional
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
115
15/01/2022
Construcción de un diagrama
Entidad Relación
1. Se parte de una descripción textual del problema o
sistema de información a automatizar (los requisitos).
2. Se hace una lista de los sustantivos y verbos que aparecen.
3. Los sustantivos son posibles entidades o atributos.
4. Los verbos son posibles relaciones.
5. Analizando las frases se determina la cardinalidad de las
relaciones y otros detalles.
6. Se elabora el diagrama (o diagramas) entidad-relación.
7. Se completa el modelo con listas de atributos y una
descripción de otras restricciones que no se pueden
reflejar en el diagrama.
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
116
15/01/2022
Ejercicio
▪ Se tiene una empresa que desarrolla varios proyectos,
a los que son asignados varios empleados, pero cada
empleado solo esta vinculado a un proyecto, en un
momento dado.
▪ Cada proyecto consume diferentes recursos en
cantidades determinadas: los empleados están a cargo
de un supervisor, que es un empleado también.
▪ Los empleados pueden tener personas beneficiarias
(hijos, esposas, padres, etc.).
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
117
15/01/2022
Ejercicio
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
118
15/01/2022
Analizar el diagrama COMPANY
Tomado de Elmasri R, Navathe S
Fundamentals of Database Systems
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
119
15/01/2022
Interpretación de ER company
▪ Empleado
▪ Trabaja exactamente en un dept.
▪ Puede o no administrar un solo
departamento.
▪ Trabaja en al menos 1 proyecto y
máximo en n proyectos
▪ Puede o no tener dependientes pero
máximo n dependientes
▪ Puede o no ser supervisor y si
supervisa, supervisa a máximo n
empleados
▪ Puede o no ser supervisado por un
solo supervisor.
▪ Departamento
▪ Tiene al menos 1 empleado (max N)
▪ Tiene exactamente un administrador
▪ Puede o no controlar proyectos (max
N)
▪ Proyecto
▪ Controlado por exactamente 1
departamento
▪ Tiene al menos 1 empleado
asignado (max N)
▪ Dependiente
▪ Depende de exactamente un
empleado
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
120
15/01/2022
Contenido
▪ Representación del problema
▪ El Modelo de Datos
▪ Diagramas de Entidad Relación
▪ Entidad
▪ Relación
▪ Dominios
▪ Atributos
▪ Tipos de Atributos
▪ Cardinalidad
▪ Cardinalidad de relaciones no
binarias
▪ Cardinalidad de relaciones
reflexivas
▪ El modelo Entidad Relación
ampliado
▪ Generalización y especificación
▪ Entidades Débiles
▪ Relaciones recursivas
▪ Agregación
▪ Clase membresía
▪ Construcción de un diagrama
Entidad Relación
▪ El modelo Relacional
▪ Claves y restricciones
▪ Transformación de un diagrama E/R a
modelo Relacional
▪ Normalización de Bases de Datos
▪ Álgebra Relacional
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
121
15/01/2022
▪ Introducido por Codd, 1970
▪ Es un Modelo de Datos Lógico - de Representación -
(basado en registros)
▪ El modelo más usado en las aplicaciones comerciales de
procesamiento de datos convencional
▪ Dividido en 3 partes:
1. Estructura de Datos
2. Integridad de Datos (características generales)
3. Manipulación de Datos
Presentación y orígenes del MR
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
122
15/01/2022
Base de Datos = Conjunto de Relaciones
• Relación
– Estructura de datos fundamental del modelo
– Tiene un nombre y representa una entidad genérica
– Conjunto de tuplas
• Cada tupla representa una entidad concreta
– Compuesta de atributos con nombre (y dominio)
• Cada atributo representa un atributo de la entidad
– Representada mediante una tabla con filas y columnas
• Modelo basado en Teoría matemática
– Analogía entre “Relación” (concepto matemático) y “Tabla”
– Teoría de Conjuntos y Lógica de Predicados de 1er orden
» Sólida Base Formal
Estructura de datos relacional
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
123
15/01/2022
Estructura de datos relacional
título director género rodaje nacionalidad duración
Amores Perros A. González Drama 2000 México 145
The Matrix A. Wachowsky Ciencia-ficción 1999 EEUU 138
Torrente S. Segura Comedia 1997 España 110
Nos miran N. López Policiaco 2001 España 118
Amelie J. P. Jeunet Comedia 2001 Francia 122
Los lunes al sol F. León Drama 2002 España 117
tuplas
cardinalidad
grado
atributos
La relación PELICULA
--- ---
--- ---
Ciencia-ficción,
Drama,Thriller,
Comedia...
--- ---
--- ---
2002, 1997,
1999, 2001,
1994, 1972...
Italia,Argentina,
España, EEUU,
Francia,Japón..
--- ---
--- ---
dominios
Títulos Nombres
Géneros Años Países
Tiempo
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
124
15/01/2022
Términos básicos
Modelo Relacional
Procesamiento
de Ficheros
Formal SQL-92
Relación Tabla Fichero
Tupla
Si la tupla t está en la relación
R, entonces tR
Fila Registro concreto
Atributo
Debe tener un nombre único
dentro de cada relación
cabecera de
Columna
Nombre de
Campo de registro
Cardinalidad nº de tuplas en una relación =
Grado nº atributos en una relación =
Dominio
colección de valores permitidos
para ciertos atributos
=
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
125
15/01/2022
• Conjunto de valores atómicos del mismo tipo, donde
toman su valor los atributos
– La definición de dominios forma parte de la definición de la BD
– Cada atributo definido sobre un ÚNICO dominio OBLIGATORIO
– Si A, B representan un mismo concepto, A y B con mismo dominio
– Dominio D puede contener valores no tomados por ningún atributo
{valores de A}  Dominio(A)
• Comparaciones Restringidas a Dominio
– La comparación de dos atributos sólo tiene sentido si ambos toman
valores del mismo dominio
– Si el SGBD soporta dominios, podrá detectar este tipo de errores
Definiciones formales: DOMINIO
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
126
15/01/2022
Una relación R, sobre conjunto de dominios D1, D2 ... Dn
se compone de dos partes:
• Esquema o Cabecera
Conjunto de pares Atributo:Dominio
{ (A1:D1), (A2:D2) ... (An:Dn) }
– Cada Aj tiene asociado sólo un Dj
– Los Di no tienen por qué ser distintos entre sí
• Estado, Cuerpo o Instancia
– Conjunto de tuplas que contiene en un instante concreto
– tupla = conjunto de pares Atributo:Valor
{ { (A1:vi1), (A2:vi2) ... (An:vin) } }, donde i=1..m
Definiciones formales: RELACIÓN (1)
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
127
15/01/2022
Un esquema de relación:
PELICULA (titulo:Titulos, duracion:Tiempo, director:Nombres, estreno:Fechas)
Un estado de la relación:
{ { (titulo:Torrente), (duracion:110), (director:S.Segura), (estreno:1997) }
{ (titulo:The Matrix), (duracion:138), (director:A.Wachowski), (estreno:1999) }
... }
• El estado de una relación es variable en el tiempo
– nuevas tuplas, modificación o borrado de existentes
• El esquema no suele variar
 costoso:
· reescritura de “miles” de tuplas
· ¿valores de nuevos atributos para tuplas ya existentes?
– Suele incluir un conjunto de Reglas de Integridad (se verá)
Definiciones formales: RELACIÓN (2)
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
128
15/01/2022
• Propiedades de una Relación
1. No existen tuplas repetidas
2. Las tuplas no están ordenadas
3. Los atributos no están ordenados
esquema = conjunto de pares Atributo:Dominio
4. Los valores de atributos son Atómicos
dominio = conjunto de valores atómicos
▪ Intersección fila/columna = un solo valor (no lista de valores)
▪ Si R cumple esta propiedad, R está en 1FN
estado = conjunto
matemático de tuplas
Definiciones formales: RELACIÓN (3)
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
129
15/01/2022
• FORMAS NORMALES
R está en <determinada> FN si
cumple <cierto> conjunto de condiciones o restricciones
necesarias para estar bien diseñada
de acuerdo con el modelo relacional de datos.
• Toda relación ha de estar en 1FN (estructura de datos simple)
Definiciones formales: RELACIÓN (4)
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
130
15/01/2022
• Relación vs. Tabla
– Relación: Representación abstracta de un elemento de datos
– Tabla: Representación concreta de tal elemento abstracto
– Ventajas
▪ Representación muy sencilla (tabla) del elemento abstracto
básico (relación) del Modelo Relacional
▪ Fácil de utilizar, entender, razonar...
– Inconveniente
▪ Aparente orden entre filas y entre columnas de la tabla
Definiciones formales: RELACIÓN (5)
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
131
15/01/2022
• Percibida por usuarios como una colección de relaciones
– de diversos grados (nº de atributos)
– que varían con el tiempo (nº de tuplas, estado)
• Las relaciones (tablas) son la estructura lógica de la BD
– Niveles externo y conceptual ANSI/X3/SPARC
• Toda BDR cumple el Principio de Información:
Todo contenido de información de la BD está representado
de una y sólo una forma: como valores explícitos
dentro de posiciones de columnas dentro de filas dentro de tablas
• Conexión lógica entre Relaciones (vínculo o interrelación)
– Representada mediante valores
– No existen punteros (visibles al usuario)
Definiciones formales: BD RELACIONAL (1)
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
132
15/01/2022
• En una BDR distinguimos...
– Esquema de base de datos
▪ Descripción de la base de datos
▪ Conjunto de esquemas de relación
PELICULA ( titulo:Títulos, director:Nombres, género:Géneros,
rodaje:Años, nacionalidad:Países, duración:Tiempo )
ACTOR ( nombre:Nombres, nombreArtistico: Nombres,
agente:Nombres, cache:Dinero )
DIRECTOR ( nombre:Nombres, nacionalidad:Países, operaPrima:Títulos )
...
– Estado o instancia de base de datos
▪ Visión del contenido de la base de datos en cierto instante
▪ Conjunto de estados de relación
Definiciones formales: BD RELACIONAL (2)
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
133
15/01/2022
Contenido
▪ Representación del problema
▪ El Modelo de Datos
▪ Diagramas de Entidad Relación
▪ Entidad
▪ Relación
▪ Dominios
▪ Atributos
▪ Tipos de Atributos
▪ Cardinalidad
▪ Cardinalidad de relaciones no
binarias
▪ Cardinalidad de relaciones
reflexivas
▪ El modelo Entidad Relación
ampliado
▪ Generalización y especificación
▪ Entidades Débiles
▪ Relaciones recursivas
▪ Agregación
▪ Clase membresía
▪ Construcción de un diagrama
Entidad Relación
▪ El modelo Relacional
▪ Claves y restricciones
▪ Transformación de un diagrama E/R a
modelo Relacional
▪ Normalización de Bases de Datos
▪ Álgebra Relacional
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
134
15/01/2022
Claves Candidatas y Primarias
Claves Ajenas (o foráneas o externas)
• Informan al SGBD de restricciones del mundo real
• Así, el SGBD evita configuraciones de datos imposibles
• Aumentan la capacidad expresiva del modelo relacional
• Cumplen que:
• Forman parte de la base de datos
• Se cumplen para cualquier estado de la BD
• No varían con el tiempo
• Son específicas de cada BD particular, pero el
Modelo Relacional incluye...
características generales de integridad
importantes y necesarias en toda BD
Reglas de integridad
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
135
15/01/2022
Sea R una relación R(A1:D1 , A2:D2 ,... An:Dn )
• Una superclave de R es un subconjunto SK de atributos
tal que cumple la restricción de Unicidad:
No existen dos tuplas distintas con la misma
combinación de valores para SK
• Una clave de R es una superclave tal que cumple la
restricción de Irreductibilidad:
Ningún subconjunto de CK cumple la r. Unicidad
• Clave Simple (1 atributo) o Compuesta (varios atributos)
• Cada clave es una restricción de integridad
Superclave y Clave de una relación
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
136
15/01/2022
• Claves como restricción de integridad
CLIENTE (codCliente, nombre, ciudad, telefono,...)
¿Qué implicaciones tiene establecer como clave...
a) CK = {codCliente, ciudad}
b) CK = {codCliente} …?
• Varias claves en una relación
«Relación para registrar las visitas de pacientes a sus médicos de familia. Un mismo
paciente puede visitar a su médico varias veces en un mismo día»
VISITAMEDICA (nssPaciente, historial, fecha, hora, numVisita, medico, observ)
Claves (VISITAMEDICA)={ {nssPaciente, numVisita}, {nssPaciente, fecha, hora},
{historial, numVisita}, {historial, fecha, hora} }
Superclave y Clave: Ejemplos
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
137
15/01/2022
• Si R tiene varias claves  Claves Candidatas
Claves (ACTOR) = { {nombre}, {nombreArtistico} }
Claves (EMPLEADO) = { {dni}, {nombre, fechaNac}, {nss} }
• La Clave Primaria (Primary Key, PK ) es la clave candidata
elegida para identificar las tuplas de R
Clave Primaria (ACTOR) = {nombreArtistico}
Clave Primaria (EMPLEADO) = {nss}
• Las Claves Alternativas (Alternative Keys, AK) son el resto
de claves candidatas
Claves Alternativas (ACTOR) = {nombre}
Claves Alternativas (EMPLEADO) = { {dni}, {nombre, fechaNac} }
Clave Candidata, Primaria y Alternativa
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
138
15/01/2022
• Conjunto de atributos FK de una relación R2, tal que:
1. Existe otra relación R1 con clave primaria PK , y
2. Cada valor de FK en R2 es idéntico al de PK en alguna tupla de R1
Conjunto de atributos de una relación que hace referencia a
la clave primaria de otra relación (o la misma)
• PELICULA (título, género, duración, director, ...)
DIRECTOR (nombre, nacionalidad, ...)
• EMPLEADO (codEmp, nombre, jefe, nss, ...)
• LIBRO (título, isbn, autor, editorial, edición, año, ...)
ESCRITOR (dni, nombre, ...)
ARTICULO (título, tema, autor, revista, página, ...)
Clave Ajena (Externa o Foránea)
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
139
15/01/2022
• Cada componente de una FK debe estar definido
sobre el mismo dominio que el correspondiente
atributo de la PK a la que referencia
PACIENTE (nss, nombre, dirección, ...)
HISTORIAL (nss, especialidad, fechaApert, ...)
VISITA (nss, especialidad, numVisita, fecha, ...)
• Clave Ajena Simple o Compuesta
• El uso de Claves Ajenas facilita...
– Eliminación de la Redundancia: Integridad entre ficheros
– Mecanismo del Modelo Relacional de datos para establecer
VÍNCULOS ENTRE RELACIONES
Clave Ajena (Externa o Foránea) (2)
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
140
15/01/2022
CLIENTE
CUENTA
Clave Ajena (Externa o Foránea) (3)
nombre dirección ciudad cuenta
García, A Gran Vía, 6 Murcia 200
López, B Ronda Norte, 3 Murcia 821
Azorín, C Paseo Nuevo, 9 Valencia 505
Pérez, C Plaza Mayor, 2 Valencia 505
...
número saldo ...
200 35000
505 40000
821 50000
...
Cada cliente sólo puede tener
una cuenta a su nombre.
Una cuenta puede tener más de
un cliente como titular.
Vínculo Cliente-
Cuenta
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
141
15/01/2022
• Restricción de Integridad Referencial
Todo valor de una FK debe coincidir
con un valor en la correspondiente PK
– La BD no debe contener claves ajenas sin correspondencia:
Si una tupla en una relación hace referencia a otra relación, debe
referirse a una tupla existente en esa relación
•  Puede existir algún valor de PK al que NO haga referencia
ningún valor de la FK
– ESCRITOR que no haya escrito artículos: ninguna tupla de ARTICULO
hará referencia a la tupla correspondiente a dicho escritor
Clave Ajena (Externa o Foránea) (4)
ESCRITOR
ARTICULO
FK
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
142
15/01/2022
• Diagrama Referencial
– Expresión de la existencia de Claves Ajenas
• Camino Referencial
Clave Ajena (Externa o Foránea) (y 5)
ESCRITOR dni nombre ... editorial
LIBRO título isbn autor editorial ...
ARTICULO título tema autor revista pág ...
EDITORIAL nombre dirección ...
• Ciclo Referencial
– Camino que empieza y acaba en la misma relación
– Caso especial: Autorreferencia EMPLEADO codEmp ... jefe
EMPL codEmp ... dep DEPTO codDep ... dire
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
143
15/01/2022
• Las operaciones que no satisfacen –violan– la Integridad
Referencial, dejan la BD en un estado incorrecto
Ejemplo de un Hotel:
– ¿Qué pasaría si se eliminara la tupla (501, D, ...) en HABITACIÓN?
– ¿Y si se eliminara la tupla (100, D, ...)?
– ¿Y si se anotara la ocupación de la habitación 900?
Mantenimiento de la Integridad Referencial
OCUPACIÓN codClie habit ...
CLI04 100
CLI02 420
CLI05 115
CLI10 100
HABITACIÓN numHabit tipo ...
115 I
420 I
100 D
304 D
405 I
501 D
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
144
15/01/2022
• ¿Cómo evita el SGBD esos estados incorrectos?
El SGBD puede...
❑ Rechazar toda operación que pueda provocar un estado ilegal,
o
❑ Aceptar (y ejecutar) tales operaciones, pero
realizar acciones que restauren la integridad de los datos
 Diseñador de la BD puede especificar al SGBD
Acciones de Mantenimiento
de la Integridad Referencial
para que la BD SIEMPRE alcance un estado final legal
Mantenimiento de la Integridad Referencial (2)
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
145
15/01/2022
R2 ⎯→ R1
Operación: Eliminar una tupla t de R1 que es referenciada
por otras de R2
Ejemplo: Eliminar la tupla (100, D, ...) de HABITACIÓN
Acciones posibles:
1. Rechazar la operación (acción por defecto)
Sólo permite borrar t si ninguna otra tupla hace referencia a t
2. Cascada. Propagar la eliminación
1º Borrar todas las tuplas de R2 que referencian a t
2º Eliminar t
3. Establecer nulos – (* se verá después *)
Mantenimiento de la Integridad Referencial (3)
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
146
15/01/2022
R2 ⎯→ R1
Operación: Modificar el valor de una FK a un valor no
existente en la PK de R1
Ejemplo: Modificar (CLI02, 420,...) a (CLI02, 900,...) en OCUPACIÓN
Acción:
1. Rechazar la operación (SIEMPRE)
 Intento de violación de la restricción de Integridad
Referencial
Mantenimiento de la Integridad Referencial (4)
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
147
15/01/2022
Operación: Modificar el valor de la PK de una tupla t de R1
que es referenciada por otras tuplas de R2
Ejemplo: Modificar la tupla (100, D,...) a (130, D,...) en HABITACIÓN
Acciones posibles:
1. Rechazar la operación (acción por defecto)
Sólo permite modificar la PK de t si ninguna tupla referencia a t
2. Cascada. Propagar la modificación
- Toda tupla de R2 que referencia a t seguirá haciendolo:
modificar su valor de FK al nuevo valor de la PK de t
- Modificar el valor de la clave primaria de t
3. Establecer nulos – (* se verá después *)
Mantenimiento de la Integridad Referencial (5)
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
148
15/01/2022
R2 ⎯→ R1
Operación: Inserción de una tupla t en R2 cuyo valor de FK
no se corresponde con ningún valor de la PK en
ninguna tupla de R1
Ejemplo: Insertar una tupla (CLI03, 555, ...) en OCUPACIÓN
Acciones posibles:
- Rechazar la operación (SIEMPRE)
 Intento de violación de la restricción de Integridad
Referencial
Mantenimiento de la Integridad Referencial (6)
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
149
15/01/2022
• Encadenamiento de eliminaciones (análogo para Modificación)
R2 → R1, Acción de Eliminación en Cascada
R3 → R2, Acción de Eliminación X
- Eliminar una tupla de R1  eliminar tuplas de R2 que la referencian
- Pero existen tuplas en R3 que referencian esas tuplas de R2...
¿cómo afecta la Acción de Eliminación X en esta operación?
▪ Si X = en CASCADA, no-problemo!  eliminar esas tuplas de R3
▪ Si X = RECHAZAR  La operación completa fallará
• Las operaciones de actualización en una BD son siempre
atómicas: se realiza “TODO o NADA”
PROFESOR → ÁREA → DEPARTAMENTO
ASIGNATURA → TITULACIÓN → UNIVERSIDAD
Mantenimiento de la Integridad Referencial (y 7)
R3 → R2 → R1
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
150
15/01/2022
• En el mundo real existe...
– información perdida fechaNacimiento desconocida
– ausencia de información ¿tiene teléfono?
– valores no aplicables a ciertos atributos fechJubilac a empleado activo
• Para representar estas situaciones en los sistemas de BD
se utiliza el NULO (null)
– Si una tupla tiene un atributo que contiene un nulo,
significa que el valor real de tal atributo es desconocido
– Es posible especificar si un atributo puede o no contener nulo
 nulo no es un valor en sí mismo,
sino un indicador de ausencia de información
 No hay dos nulos iguales (num_telefono NULL  edad NULL)
Nulos
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
151
15/01/2022
• Nulo y Claves Primarias
Restricción de Integridad de Entidad:
Ningún atributo componente de una
clave primaria puede contener nulo
EMPLEADO (codEmp, nss, nombre, telefono, depto, jefe...)
¿Qué pasaría si codEmp pudiera contener NULO?
• Nulo y Claves Ajenas
El Modelo Relacional permite nulo
como valor de clave ajena
depto = null  empleados no asignados a ningún departamento
jefe = null  empleados sin jefe
Implicaciones de los nulos en la integridad
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
152
15/01/2022
• Hemos de extender la definición de clave ajena
Sea R2 una relación. FK es una clave ajena en R2 si es un
subconjunto de sus atributos tal que:
1. Existe otra relación R1 con clave primaria PK y
2. En todo momento, cada valor de FK en R2
a) es NULO, o
b) es idéntico a un valor de PK en alguna tupla de R1
• Restricción de Integridad Referencial
La Base de Datos no debe contener valores no nulos
de clave ajena sin correspondencia
Implicaciones de los nulos en la integridad (2)
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
153
15/01/2022
• Hay que extender algunas acciones de mantenimiento de
la Integridad Referencial: R2 ⎯→ R1
Operación: Eliminar una tupla t de R1 que es referenciada
por otras de R2
Acciones posibles:
1. Rechazar la operación (acción por defecto)
2. Cascada. Propagar la eliminación
3. Establecer nulos
 Sólo si la FK de R2 permite NULO
- Toda tupla de R2 que referencia a t pasa a contener NULL en FK
- Eliminar la tupla t
Implicaciones de los nulos en la integridad (3)
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
154
15/01/2022
R2 ⎯→ R1
Operación: Modificar el valor de la PK de una tupla t de R1
que es referenciada por otras tuplas de R2
Acciones posibles:
1. Rechazar la operación (acción por defecto)
2. Cascada. Propagar la modificación
3. Establecer nulos
 Sólo si la FK de R2 permite NULO
- Toda tupla de R2 que referencia a t pasa a contener NULL en FK
- Modificar el valor de la PK de t
Implicaciones de los nulos en la integridad (y 4)
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
155
15/01/2022
• Comprobar las claves candidatas (primaria y alternativas):
No existen dos tuplas distintas con igual valor para una clave
 Definición de BD : indicar los Atributos Componentes de las Claves Candidatas
• Comprobar la restricción de Integridad de entidad
Ningún atributo componente de una clave primaria contiene nulo
 Definición de BD : indicar los Atributos Componentes de la Clave Primaria
• Comprobar la restricción de Integridad Referencial...
El valor de la clave ajena en cualquier tupla, o es nulo, o coincide con
un valor de clave primaria de alguna tupla en la relación referenciada
 Definición de BD : indicar los Atributos Componentes de las Claves Ajenas
• ... y mantenerla frente operaciones que puedan violar la integridad
 Definición de BD : indicar Acciones de Mantenimiento de la Integridad Referencial
Resumiendo, el SGBD se encarga de...
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
156
15/01/2022
Dominio Definición del Dominio
CODPEL enteros(3)
CODGUI enteros(3)
CODDIR enteros(3)
CODDIS enteros(2)
CODACT enteros(4)
CODAGE enteros(2)
SEXOS { M, F }
TEXTO cadena caracteres variable (500)
PORCENT enteros (2)
DINERO enteros(9)
NIF cadena caracteres fija (12)
TITULOS cadena caracteres variable (120)
GENEROS {comedia,drama,terror,suspense,accion,romantica,gore,pulp,roadmovie}
PAISES {españa,francia,gran_bretaña,eeuu,australia,alemania,la_india,argentina}
AÑOS AÑO
FECHAS FECHA
NOMBRES cadena caracteres variable (35)
APELLIDOS cadena caracteres variable (80)
DOMICILIOS cadena caracteres variable (50)
TELEFONOS cadena caracteres variable (15)
TIPO_PAPEL {protagonista, secundario, reparto, figuracion}
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
157
15/01/2022
Esquema “PRODUCTORA”
PELICULA (codP:CODPEL, titulo:TITULOS, año:AÑO, genero:GENEROS, guion:CODGUI,
director:CODDIR, directorFotog:CODDIR, distrib:CODDIS, nacio:PAISES,
estreno:FECHA, numOscar:enteros(2), taquilla:DINERO)
DIRECTOR (codDir:CODDIR, nombre:NOMBRES, apellidos:APELLIDOS, nacio:PAISES,
fechaNacim:FECHA, operaPrima:CODPEL)
DIREC_FOTOG (codDF:CODDIR, nombre:NOMBRES, apellidos:APELLIDOS, nacionalidad:PAISES,
fechaNacim:FECHA, ultTrabajo:CODPEL)
GUION (codG:CODGUI, titulo: TITULOS, resumen: TEXTO,
nomAutorPpal:NOMBRES, fechaFin:FECHA, fechaEntrega:FECHA)
DISTRIBUIDORA (codDis:CODDIS, nombre:NOMBRES, cif:NIF, direccion:DOMICILIO,
telefono:TELEFONOS, porcentaje:PORCENT)
ACTOR (codA:CODACT, nombre:NOMBRES, nomReal:NOMBRES, nacionalidad:PAISES,
fechaNacim:FECHA, sexo:SEXOS, agencia:CODAGE, cache:DINERO)
AGENCIA (codAg:CODAGE, nombre:NOMBRES, direccion:DOMICILIO, telefono:TELEFONOS)
ACTUA_EN (actor:CODACT, film:CODPEL, papel:TIPO_PAPEL, paga:DINERO)
Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
158
15/01/2022
Contenido
▪ Representación del problema
▪ El Modelo de Datos
▪ Diagramas de Entidad Relación
▪ Entidad
▪ Relación
▪ Dominios
▪ Atributos
▪ Tipos de Atributos
▪ Cardinalidad
▪ Cardinalidad de relaciones no
binarias
▪ Cardinalidad de relaciones
reflexivas
▪ El modelo Entidad Relación
ampliado
▪ Generalización y especificación
▪ Entidades Débiles
▪ Relaciones recursivas
▪ Agregación
▪ Clase membresía
▪ Construcción de un diagrama
Entidad Relación
▪ El modelo Relacional
▪ Claves y restricciones
▪ Transformación de un diagrama E/R a
modelo Relacional
▪ Normalización de Bases de Datos
▪ Álgebra Relacional
Bases de Datos Carrera de Software
159
15/01/2022
Ph.D. Franklin Parrales
Diseño Relacional
◼ El diseño de una BD Relacional puede abordarse de
dos formas distintas:
◼ Obteniendo el esquema relacional directamente:
Objetos y reglas captadas del análisis del mundo real,
representadas por un conjunto de esquemas de
relación, sus atributos y restricciones de integridad.
◼ Realizando el diseño del esquema "conceptual" de
la BD (modelo E/R) y transformándolo a esquema
relacional.
Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 160
15/01/2022
Reglas de traducción MERE  MR
❑ Reglas para el modelo básico
• Dominios
• Atributos
• Tipos de entidad
• Tipos de relación
❑ Reglas para las extensiones del modelo
• Relaciones exclusivas
• Jerarquías de Especialización/Generalización
RESUMEN
MER MR (SQL-92)
Tipo de Entidad Tabla (relación)
Tipo de Relación M:N Tabla
Tipo de Relación 1:1, 1:N, N:1 Propagación de clave o tabla
Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 161
15/01/2022
Dominio
Tipo de entidad
 Se traduce a una tabla (relación)
 Se recomienda usar el mismo nombre o uno similar
Traducción de un dominio y un tipo de entidad
PERSONA
CREATE TABLE Persona
(
...
) ;
MERE MR
MERE
ESTADO_CIVIL: {S, C, V, D}
MR
CREATE DOMAIN Estado_civil AS CHAR(1)
CHECK VALUE IN (‘S’, ‘C’, ‘V’, ‘D’) ;
Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 162
15/01/2022
Atributo simple y monovaluado  Columna
Atributo identificador
 Id. principal  Clave primaria (PRIMARY KEY)
 Id. alternativo  Clave alternativa (UNIQUE)
▪ Podrá contener NULL si no se indica lo contrario
Traducción de un atributo
PERSONA
direccion
telefono
dni
numSS
fechaNacim
nombre
nacionalidad altura
CREATE TABLE Persona
( dni PRIMARY KEY,
numSS UNIQUE NULL,
nombre ...,
direccion ...,
telefono ...,
fechaNacim ...,
nacionalidad ...,
altura ... ) ;
MERE
MR
Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 163
15/01/2022
 Atributo compuesto.- Dos alternativas:
a) «Eliminar» atributo compuesto y considerar todos sus
componentes como columnas simples de la tabla resultante
b) «Eliminar» los componentes y considerar el atributo compuesto
como una sola columna de la tabla
Traducción de un atributo (2)
¿Cuándo será más
adecuado utilizar
una opción u otra?
MERE
MR (DED)
Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 164
15/01/2022
DIRECC_
PERSONA
• Atributo multivalorado
– Nueva tabla S, en la que el atributo multivalorado se
representa como una columna simple A
– S contendrá una nueva columna F, clave ajena a la
clave primaria de la tabla correspondiente a la entidad
– La clave primaria de S es la combinación (F, A)
PERSONA (dni, nombre, fechaNac)
DIRECC_PERSONA (dni, direccion)
FK
Traducción de un atributo (3)
PERSONA
MR (DED)
tiene
PERSONA
fechaNac
dni
direccion (1,n)
nombre
MERE MR
CREATE TABLE Direcc_Persona (
dni ...
direccion ...
PRIMARY KEY (dni, direccion)
FOREIGN KEY (dni) REFERENCES Persona(dni)
ON DELETE CASCADE
ON UPDATE CASCADE );
Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 165
15/01/2022
• Atributo derivado
– Es necesario decidir si se almacena o no
1.Si se almacena, será una columna de la tabla que
corresponda y deberá crearse un disparador que
calcule su valor y lo mantenga actualizado
2.Si no se almacena, deberá crearse un procedimiento
que calcule su valor cada vez que se solicita
PERSONA (dni, nombre, fechaNac, edad)
Traducción de un atributo (y 4)
MERE MR
PERSONA
fechaNac
dni
edad
nombre
Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 166
15/01/2022
 Nueva tabla R, que incluye...
– claves ajenas hacia las
claves primarias de R1 y de R2
▪ Su combinación (concatenación) forma
la clave primaria de R
– columnas correspondientes a los atributos de la relación V (simples o
componentes simples de atributos compuestos)
ACTOR(nombre, ..., caché, ...)
ACTUA_EN (actor, pelicula, papel, paga)
PELICULA(código, título, ...)
FK
FK
E1 E2
V
R1 R2
R
Traducción de una relación binaria M:N
ACTOR PELICULA
paga
(1,m) (1,n)
título
caché
nombre código
papel
Actua
en
[MPM 1999]
Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 167
15/01/2022
AUTOR(codAutor, nomAutor, ...)
ESCRIBE (autor, libro, derAutor, numPag)
LIBRO(isbn, titulo, ...)
FK
FK
Traducción de una relación binaria M:N (3)
AUTOR LIBRO
numPaginas
(1,4)
(1,n)
titulo
nomAutor
codAutor isbn
derechosAutor
Escribe
– Pero la traducción, aunque lo parezca, no está
completa...
– ... pues falta especificar ciertos aspectos que tienen
que ver con las reglas de integridad
Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 168
15/01/2022
– Especificación de acciones de mantenimiento de la integridad
referencial (NO ACTION, CASCADE, SET NULL, SET DEFAULT)
CREATE TABLE Escribe
( autor Autores,
libro Codigos,
derAutor NUMERIC(2) DEFAULT 20 NOT NULL
CHECK (derAutor≥0 AND derAutor<100),
numPag NUMERIC(2) NOT NULL CHECK (numPag≥0),
PRIMARY KEY (autor, libro),
FOREIGN KEY (autor) REFERENCES AUTOR(codAutor)
ON DELETE NO ACTION
ON UPDATE CASCADE,
FOREIGN KEY (libro) REFERENCES LIBRO(isbn)
ON DELETE CASCADE
ON UPDATE CASCADE
);
Traducción de una relación binaria M:N (4)
Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 169
15/01/2022
a) Datos coherentes: evitar que ESCRIBE contenga un libro con autor
desconocido (fila con autor NULL) o un autor de un libro inexistente (fila
con libro NULL)
Traducción de una relación binaria M:N (5)
Especificación de restricciones
autor libro derAutor numPag
NULL 0-201-65370-2 ... ...
A001 NULL ... ...
– Ambas cosas ya quedan aseguradas por la propia definición de la
clave primaria de ESCRIBE:
PRIMARY KEY(autor, libro)
Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 170
15/01/2022
b) Cardinalidad mínima 1: todo libro tiene al menos un autor
c) Cardinalidad máxima 4: evitar que un libro haya sido escrito por
más de 4 autores
– CREATE ASSERTION autores_de_libro
CHECK (
(NOT EXISTS (SELECT * FROM LIBRO
WHERE isbn NOT IN (SELECT libro
FROM ESCRIBE)))
AND
(4 >= (SELECT MAX(COUNT(*))
FROM ESCRIBE
GROUP BY libro))
);
Traducción de una relación binaria M:N (6)
Especificación de restricciones
Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 171
15/01/2022
d) Cardinalidad mínima 1: todo autor ha escrito al menos un
libro
– Evitar que en AUTOR exista una fila tal que NO haya ninguna
tupla en ESCRIBE que le haga referencia (autor sin libros).
– Es necesario crear una RI General o Aserto:
CREATE ASSERTION libros_de_autor
CHECK (
NOT EXISTS (SELECT * FROM AUTOR
WHERE codAutor NOT IN (SELECT autor
FROM ESCRIBE))
);
Traducción de una relación binaria M:N (y 7)
Especificación de restricciones
Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 172
15/01/2022
1) Caso general
 Propagación de clave
– En R2 se incluyen nuevas columnas...
▪ clave externa hacia la clave primaria de R1
▪ columnas para los atributos de la relación V (simples o
componentes simples de atributos compuestos)
1.1) Participación total de E2 en V
CIUDAD( nomCiudad, provincia, ... )
PROVINCIA( codProv, nomProv, ... )
FK: NULOS NO PERMITIDOS
E1 E2
V
R1 R2
1 N
PROVINCIA CIUDAD
(1,1)
(1,n)
nomProv
codProv
nombreCiudad
contiene
Traducción de una relación binaria 1:N
...
Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 173
15/01/2022
1.2) Participación parcial de E2 en V
CUADRO(codCuadro, titulo, pintor, museo, sala...)
PINACOTECA(nomMuseo, ciudad, ...)
FK
NULOS PERMITIDOS
PINACOTECA CUADRO
(0,1)
(1,n)
nomMuseo
codCuadro
Expone
titulo
pintor
ciudad
sala
Traducción de una relación binaria 1:N (2)
Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 174
15/01/2022
2) Se cumple uno o varios de estos supuestos:
❑ La relación V tiene varios atributos propios
❑ Hay pocas ocurrencias de la relación V
❑ Es probable que en el futuro V se transforme en una M:N
 Añadir una nueva tabla R, que incluye...
– claves ajenas hacia las claves primarias de R1 y de R2
▪ una será clave primaria de R: la propagada desde la entidad
cuyas instancias participan como mucho una vez en la relación V
• columnas para los atributos de V (simples o componentes
simples de atributos compuestos)
ESTUDIANTE
COCHE
(0,1)
(0,n)
nif
matricula
Propietario_de
modelo
nombre
1 : N
Traducción de una relación binaria 1:N (3)
ESTUDIANTE( nif, nombre, ... )
PROPIEDAD( coche, estudiante)
COCHE( matricula, modelo, ... )
FK FK NN
Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 175
15/01/2022
1) Participación total de ambas entidades
– Si las entidades no participan en otras relaciones...
 una única tabla R, que incluye...
– columnas para todos los atributos de ambas entidades
– claves de R:
▪ Clave primaria = clave primaria de R1 o de R2 (es indiferente)
▪ La otra ( si es distinta) será alternativa (UNIQUE) y además NOT
NULL
– columnas para atributos de la relación V (simples o componentes
simples de atributos compuestos)
PACIENTE ( nss, nombre, numHisto, fechaApert, centroSalud,... )
AK, NN
PK
Traducción de una relación binaria 1:1
nombre centroSalud
(1,1) (1,1)
fechaApertura
nss numHistoria
...
MEDICO
HISTORIAL
PACIENTE
...
Tiene
Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 176
15/01/2022
2) Participación total de una entidad y parcial de la otra
2.1) Caso general
 Propagación de clave
– La clave de la entidad con participación parcial «se propaga»
hacia la entidad con participación total → clave ajena
– Los atributos de la relación V «siguen» a la clave propagada
Un empleado puede no
dirigir ningún departamento,
o bien ser el gerente de uno
de ellos (desde cierta fecha,
en la que fue nombrado
como tal)
E1 E2
V
R1 R2
EMPLEADO(codEmp, nomEmp, ...)
DEPARTAMENTO(numDep,nomDep, codDir, fechInicDir...)
FK
AK, NN
Traducción de una relación binaria 1:1 (2)
(1,1)
(0,1)
DEPARTAMENTO
EMPLEADO
codEmp
nomEmp nomDep
numDep
Dirige
fechaInic
NN
Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 177
15/01/2022
2.2) Hay pocas instancias del tipo de relación
 Añadir una nueva tabla R que incluye...
– claves ajenas hacia las claves primarias de R1 y de R2
▪ una será clave primaria de R (la de participación total, si existe)
▪ la otra será clave alternativa en R (UNIQUE) y además NOT NULL
– columnas para los atributos de V (simples o componentes simples
de atributos compuestos)
EMPLEADO(codEmp, nomEmp, ...)
DIRIGE (emp, dep, fechInic)
DEPARTAMENTO(numDep, nomDep,...)
FK
FK
AK,NN
Traducción de una relación binaria 1:1 (3)
Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 178
15/01/2022
2.3) Hay muchas instancias del tipo de relación
 Una única relación R que incluye...
– todos los atributos de las entidades y de la relación
– la clave primaria es la de la entidad con participación parcial
– debe permitirse NULL en los atributos procedentes de la entidad con
participación total y de la relación
CREATE TABLE Empleado(
codEmp ... PRIMARY KEY,
nomEmp ... ,
...,
numDepDir ... NULL UNIQUE,
nomDepDir ... NULL,
...,
fechInicDir ... NULL,
... );
Traducción de una relación binaria 1:1 (4)
NULL permite representar empleados
que no dirigen ningún
departamento
UNIQUE asegura que un
departamento sólo es dirigido por
un empleado
Los atributos monovalorados
aseguran que un empleado pueda
dirigir como mucho un
departamento
Atributos de
EMPLEADO
Atributos de
DEPARTAMENTO
Atributos de
DIRIGE
Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 179
15/01/2022
3) Participación parcial de ambas entidades
 Añadir una nueva tabla R
• La tabla R se construye exactamente igual que en el caso (2.2)
• Evita los NULL que aparecerían si se propagara la clave de R1 a R2
o viceversa (caso general (2.1))
(0,1) (0,1)
MUJER
HOMBRE
nif nif
Matrimonio
a la antigua
fecha
lugar
HOMBRE(nif, ...)
MATRIMONIO(esposa, esposo, fecha, lugar)
MUJER(nif, ...)
FK
FK
AK, NN
Y... ¿qué acciones de mantenimiento
de la integridad referencial debemos
imponer para (todos los casos de)
transformación de relaciones 1:1?
Traducción de una relación binaria 1:1 (y 5)
NN NN
Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 180
15/01/2022
 Caso particular de relación 1:1
o 1:N con propagación de clave
y participación total de E2
Si V es 1:1  caso 2.1 ; Si V es 1:N  caso 1.1
– La clave ajena FK en R2 hacia R1 no permite NULL
– La clave primaria de R2 depende del tipo de dependencia:
• en Existencia
– clave primaria propia de R2 (identificador principal de E2)
• en Identificación
– combinación de atributos: FK y clave de R2
• Las actualizaciones y borrados en la tabla R1 deben transmitirse en
cascada hacia R2 (CASCADE)
E1 E2
V
R1 R2
Traducción de dependencia en existencia y en
identificación
Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 181
15/01/2022
EMPLEADO ( nifEmp, nomEmp, ...)
FAMILIAR ( nifFam, emp, ... )
FK
NOT NULL
ON DELETE CASCADE
ON UPDATE CASCADE
1:N
FAMILIAR
EMPLEADO
(1,1)
(0,n)
nifFam
nifEmp
nomEmp Tiene
Traducción de dependencia en existencia y en
identificación (y 2)
PACIENTE ( historial, nombre, ... )
VISITA_MEDICA ( historial, fecha, hora, ... )
FK
NOT NULL
ON DELETE CASCADE
ON UPDATE CASCADE
VISITA
MEDICA
PACIENTE
1:N
(1,1)
(1,n)
fecha
historial
nombre
observ
Acude
hora
Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 182
15/01/2022
EMPLEADO Es jefe de
subordinado
jefe
nifEmp
nomEmp
 tabla que contiene dos claves externas hacia la clave primaria de la
tabla correspondiente a la entidad
– Nombradas según los roles de la entidad en la relación
EMPLEADO ( nifEmp, nomEmp, ...)
JEFE_EMP ( jefe, subordinado, ... )
Otra posibilidad en el Caso 1:N
NN
FK
FK
EMPLEADO ( nifEmp, nomEmp, ... )
JEFE_EMP ( jefe, subordinado, ... )
Caso M:N
FK
FK
Traducción de una relación binaria reflexiva
EMPLEADO ( nifEmp, nomEmp, ..., jefe, ... )
NULL
FK
Caso 1:N solución problemática si
puede haber muchos
empleados sin jefe
( demasiados nulos )
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional
DB1 Unidad 2: Modelo ER y modelo relacional

More Related Content

What's hot

modelo relacional
modelo relacionalmodelo relacional
modelo relacional
ponxo90
 
Diapositivas base de datos
Diapositivas base de datosDiapositivas base de datos
Diapositivas base de datos
catherine4ad
 
Modelo Entidad - Relacion
Modelo Entidad - RelacionModelo Entidad - Relacion
Modelo Entidad - Relacion
drakul09
 
Modelo e r
Modelo e rModelo e r
Modelo e r
garci17
 
Ejercicio sql tienda informatica (1)
Ejercicio sql tienda informatica (1)Ejercicio sql tienda informatica (1)
Ejercicio sql tienda informatica (1)
Jsrfs Montemayor
 

What's hot (20)

modelo relacional
modelo relacionalmodelo relacional
modelo relacional
 
Modelo de datos
Modelo de datosModelo de datos
Modelo de datos
 
BASES DE DATOS
BASES DE DATOSBASES DE DATOS
BASES DE DATOS
 
BASES DE DATOS
BASES DE DATOSBASES DE DATOS
BASES DE DATOS
 
Unidad 3 Modelamiento De Datos Conceptual
Unidad 3 Modelamiento De Datos ConceptualUnidad 3 Modelamiento De Datos Conceptual
Unidad 3 Modelamiento De Datos Conceptual
 
HISTORIA DE LAS BASES DE DATOS
HISTORIA DE LAS BASES DE DATOSHISTORIA DE LAS BASES DE DATOS
HISTORIA DE LAS BASES DE DATOS
 
Modelo de entidad relación extendido
Modelo de entidad relación extendidoModelo de entidad relación extendido
Modelo de entidad relación extendido
 
Diccionario de datos en los sistemas de información
Diccionario de datos en los sistemas de informaciónDiccionario de datos en los sistemas de información
Diccionario de datos en los sistemas de información
 
Diapositivas base de datos
Diapositivas base de datosDiapositivas base de datos
Diapositivas base de datos
 
Modelo Entidad Relación Extendido.
Modelo Entidad Relación Extendido.Modelo Entidad Relación Extendido.
Modelo Entidad Relación Extendido.
 
Modelo Entidad - Relacion
Modelo Entidad - RelacionModelo Entidad - Relacion
Modelo Entidad - Relacion
 
Modelo e r
Modelo e rModelo e r
Modelo e r
 
Transformacion modelo entidad relacion a modelo relacional en postges sql
Transformacion modelo entidad relacion a modelo relacional en postges sqlTransformacion modelo entidad relacion a modelo relacional en postges sql
Transformacion modelo entidad relacion a modelo relacional en postges sql
 
Ejercicio sql tienda informatica (1)
Ejercicio sql tienda informatica (1)Ejercicio sql tienda informatica (1)
Ejercicio sql tienda informatica (1)
 
Fundamentos de las bases de datos
Fundamentos de las bases de datosFundamentos de las bases de datos
Fundamentos de las bases de datos
 
Flujo datos
Flujo datosFlujo datos
Flujo datos
 
Fundamentos de Bases de Datos - Introducción
Fundamentos de Bases de Datos - IntroducciónFundamentos de Bases de Datos - Introducción
Fundamentos de Bases de Datos - Introducción
 
Unidad 1. Fundamentos de Base de Datos
Unidad 1. Fundamentos de Base de DatosUnidad 1. Fundamentos de Base de Datos
Unidad 1. Fundamentos de Base de Datos
 
Diccionario de base de datos
Diccionario de base de datosDiccionario de base de datos
Diccionario de base de datos
 
2. Modelo ER - Relacional
2. Modelo ER - Relacional2. Modelo ER - Relacional
2. Modelo ER - Relacional
 

Similar to DB1 Unidad 2: Modelo ER y modelo relacional

Conceptos de bases de datos
Conceptos de bases de datosConceptos de bases de datos
Conceptos de bases de datos
astrid2014
 
MODELO ENTIDAD RELACION
MODELO ENTIDAD RELACIONMODELO ENTIDAD RELACION
MODELO ENTIDAD RELACION
Pamela Quinde
 
Presen Clases Bdd Unidad 3
Presen Clases Bdd Unidad 3Presen Clases Bdd Unidad 3
Presen Clases Bdd Unidad 3
Francisco Godoy
 

Similar to DB1 Unidad 2: Modelo ER y modelo relacional (20)

Diapositiva_BD_Unidad_02_TES.pdf
Diapositiva_BD_Unidad_02_TES.pdfDiapositiva_BD_Unidad_02_TES.pdf
Diapositiva_BD_Unidad_02_TES.pdf
 
Modelo de datos
Modelo de datosModelo de datos
Modelo de datos
 
Modelos de BDD y Modelos de Datos
Modelos de BDD y Modelos de DatosModelos de BDD y Modelos de Datos
Modelos de BDD y Modelos de Datos
 
Saia - Modelos de BDD y Modelos de Datos - Ernesto Souquet
Saia - Modelos de BDD y Modelos de Datos - Ernesto SouquetSaia - Modelos de BDD y Modelos de Datos - Ernesto Souquet
Saia - Modelos de BDD y Modelos de Datos - Ernesto Souquet
 
Conceptos de bases de datos
Conceptos de bases de datosConceptos de bases de datos
Conceptos de bases de datos
 
Presentación Modelo de Datos
Presentación Modelo de DatosPresentación Modelo de Datos
Presentación Modelo de Datos
 
Modelo bd
Modelo bdModelo bd
Modelo bd
 
MODELO ENTIDAD RELACION
MODELO ENTIDAD RELACIONMODELO ENTIDAD RELACION
MODELO ENTIDAD RELACION
 
Modelos de bdd y modelos de datos Rafael Olivares
Modelos de bdd y modelos de datos Rafael OlivaresModelos de bdd y modelos de datos Rafael Olivares
Modelos de bdd y modelos de datos Rafael Olivares
 
Conceptos de bases de datos
Conceptos de bases de datosConceptos de bases de datos
Conceptos de bases de datos
 
Modelado de datos
Modelado de datosModelado de datos
Modelado de datos
 
Modelo de datos
Modelo de datosModelo de datos
Modelo de datos
 
Presen Clases Bdd Unidad 3
Presen Clases Bdd Unidad 3Presen Clases Bdd Unidad 3
Presen Clases Bdd Unidad 3
 
Fundamentos de BD - unidad 3 modelo relacional
Fundamentos de BD - unidad 3 modelo relacionalFundamentos de BD - unidad 3 modelo relacional
Fundamentos de BD - unidad 3 modelo relacional
 
Int_Bases_Datos_II.pdf
Int_Bases_Datos_II.pdfInt_Bases_Datos_II.pdf
Int_Bases_Datos_II.pdf
 
Sistema de gestion de base de datos
Sistema de gestion de base de datosSistema de gestion de base de datos
Sistema de gestion de base de datos
 
Sistema de gestion de base de datos
Sistema de gestion de base de datosSistema de gestion de base de datos
Sistema de gestion de base de datos
 
Sistema de gestion de base de datos
Sistema de gestion de base de datosSistema de gestion de base de datos
Sistema de gestion de base de datos
 
Base datos f01
Base datos f01Base datos f01
Base datos f01
 
Fases para la creacion de una bd
Fases para la creacion de una bdFases para la creacion de una bd
Fases para la creacion de una bd
 

More from Franklin Parrales Bravo

More from Franklin Parrales Bravo (20)

Presentacion del congreso ETCM del 2021 en Cuenca
Presentacion del congreso ETCM del 2021 en CuencaPresentacion del congreso ETCM del 2021 en Cuenca
Presentacion del congreso ETCM del 2021 en Cuenca
 
IW Unidad 1: Introducción a la Ingeniería Web
IW Unidad 1: Introducción a la Ingeniería WebIW Unidad 1: Introducción a la Ingeniería Web
IW Unidad 1: Introducción a la Ingeniería Web
 
IW Unidad 4: Web accesible, semántica y ubicua
IW Unidad 4: Web accesible, semántica y ubicuaIW Unidad 4: Web accesible, semántica y ubicua
IW Unidad 4: Web accesible, semántica y ubicua
 
IW Unidad 3: Ingeniería Web dirigida por modelos
IW Unidad 3: Ingeniería Web dirigida por modelosIW Unidad 3: Ingeniería Web dirigida por modelos
IW Unidad 3: Ingeniería Web dirigida por modelos
 
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modeladoMOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
 
IW Unidad 2: Metodologías y Técnicas de la Ingeniería Web
IW Unidad 2: Metodologías y Técnicas de la Ingeniería WebIW Unidad 2: Metodologías y Técnicas de la Ingeniería Web
IW Unidad 2: Metodologías y Técnicas de la Ingeniería Web
 
AD Unidad4: Programación paralela y distribuida
AD Unidad4: Programación paralela y distribuidaAD Unidad4: Programación paralela y distribuida
AD Unidad4: Programación paralela y distribuida
 
AD Unidad3: Tecnologías de aplicaciones distribuidas
AD Unidad3: Tecnologías de aplicaciones distribuidasAD Unidad3: Tecnologías de aplicaciones distribuidas
AD Unidad3: Tecnologías de aplicaciones distribuidas
 
EP Unidad03: Planificación financiera y análisis de riesgos
EP Unidad03: Planificación financiera y análisis de riesgosEP Unidad03: Planificación financiera y análisis de riesgos
EP Unidad03: Planificación financiera y análisis de riesgos
 
AD Unidad2: Diseño de programas paralelos y distribuidos
AD Unidad2: Diseño de programas paralelos y distribuidosAD Unidad2: Diseño de programas paralelos y distribuidos
AD Unidad2: Diseño de programas paralelos y distribuidos
 
AD Unidad1: Fundamentos de sistemas paralelos y distribuidos
AD Unidad1: Fundamentos de sistemas paralelos y distribuidosAD Unidad1: Fundamentos de sistemas paralelos y distribuidos
AD Unidad1: Fundamentos de sistemas paralelos y distribuidos
 
EP Unidad01: Principios básicos de la metodología de proyectos
EP Unidad01: Principios básicos de la metodología de proyectosEP Unidad01: Principios básicos de la metodología de proyectos
EP Unidad01: Principios básicos de la metodología de proyectos
 
EP Unidad02: Conceptos para el alcance, tiempo y muestra
EP Unidad02: Conceptos para el alcance, tiempo y muestraEP Unidad02: Conceptos para el alcance, tiempo y muestra
EP Unidad02: Conceptos para el alcance, tiempo y muestra
 
GCSW Unidad1: Objetos de la Gestión de Configuración del Software
GCSW Unidad1: Objetos de la Gestión de Configuración del SoftwareGCSW Unidad1: Objetos de la Gestión de Configuración del Software
GCSW Unidad1: Objetos de la Gestión de Configuración del Software
 
GCSW Unidad2: Actividades de la gestión de configuración del software
GCSW Unidad2: Actividades de la gestión de configuración del software GCSW Unidad2: Actividades de la gestión de configuración del software
GCSW Unidad2: Actividades de la gestión de configuración del software
 
POO Unidad 4: Persistencia de objetos y manejo de archivos
POO Unidad 4: Persistencia de objetos y manejo de archivosPOO Unidad 4: Persistencia de objetos y manejo de archivos
POO Unidad 4: Persistencia de objetos y manejo de archivos
 
POO Unidad 3: Interfaz gráfica de usuario e hilos
POO Unidad 3: Interfaz gráfica de usuario e hilosPOO Unidad 3: Interfaz gráfica de usuario e hilos
POO Unidad 3: Interfaz gráfica de usuario e hilos
 
POO Unidad 2: Programación Orientada a Objetos
POO Unidad 2: Programación Orientada a ObjetosPOO Unidad 2: Programación Orientada a Objetos
POO Unidad 2: Programación Orientada a Objetos
 
POO Unidad 1: Introducción a la Programación Orientada a Objetos
POO Unidad 1: Introducción a la Programación Orientada a ObjetosPOO Unidad 1: Introducción a la Programación Orientada a Objetos
POO Unidad 1: Introducción a la Programación Orientada a Objetos
 
RD Unidad 3: IPv6, Routers y Enrutamiento
RD Unidad 3: IPv6, Routers y EnrutamientoRD Unidad 3: IPv6, Routers y Enrutamiento
RD Unidad 3: IPv6, Routers y Enrutamiento
 

Recently uploaded

2da. Clase Mecanografía e introducción a Excel (2).pptx
2da. Clase Mecanografía e introducción a Excel (2).pptx2da. Clase Mecanografía e introducción a Excel (2).pptx
2da. Clase Mecanografía e introducción a Excel (2).pptx
EncomiendasElSherpa
 
Evaluación del riesgo tecnologías informáticas.pdf
Evaluación del riesgo tecnologías informáticas.pdfEvaluación del riesgo tecnologías informáticas.pdf
Evaluación del riesgo tecnologías informáticas.pdf
GuillermoBarquero7
 

Recently uploaded (6)

2da. Clase Mecanografía e introducción a Excel (2).pptx
2da. Clase Mecanografía e introducción a Excel (2).pptx2da. Clase Mecanografía e introducción a Excel (2).pptx
2da. Clase Mecanografía e introducción a Excel (2).pptx
 
Evaluación del riesgo tecnologías informáticas.pdf
Evaluación del riesgo tecnologías informáticas.pdfEvaluación del riesgo tecnologías informáticas.pdf
Evaluación del riesgo tecnologías informáticas.pdf
 
ESCRITORIO DE WINDOWS 11 Y SUS ELEMENTOS
ESCRITORIO DE WINDOWS 11 Y SUS ELEMENTOSESCRITORIO DE WINDOWS 11 Y SUS ELEMENTOS
ESCRITORIO DE WINDOWS 11 Y SUS ELEMENTOS
 
Caso de Exito LPL Projects Logistics Spain y Business Central
Caso de Exito LPL Projects Logistics Spain y Business CentralCaso de Exito LPL Projects Logistics Spain y Business Central
Caso de Exito LPL Projects Logistics Spain y Business Central
 
Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200
 
Trabajo de Powerpoint - Unsaac - Ofimática
Trabajo de Powerpoint - Unsaac - OfimáticaTrabajo de Powerpoint - Unsaac - Ofimática
Trabajo de Powerpoint - Unsaac - Ofimática
 

DB1 Unidad 2: Modelo ER y modelo relacional

  • 1. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 1 15/01/2022 Modelo ER y modelo relacional Unidad 2 Material docente compilado por el profesor Ph.D. Franklin Parrales Bravo para uso de los cursos de Bases de Datos
  • 2. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 2 15/01/2022 Objetivo general de la Unidad 2 Realizar análisis a los Diagramas de Entidad Relación aplicando los principios de normalización para construir bases de datos correctamente relacionadas, sin redundancia y con un modelo óptimo para su desempeño.
  • 3. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 3 15/01/2022 Contenido ▪ Representación del problema ▪ El Modelo de Datos ▪ Diagramas de Entidad Relación ▪ Entidad ▪ Relación ▪ Dominios ▪ Atributos ▪ Tipos de Atributos ▪ Cardinalidad ▪ Cardinalidad de relaciones no binarias ▪ Cardinalidad de relaciones reflexivas ▪ El modelo Entidad Relación ampliado ▪ Generalización y especificación ▪ Entidades Débiles ▪ Relaciones recursivas ▪ Agregación ▪ Clase membresía ▪ Construcción de un diagrama Entidad Relación ▪ El modelo Relacional ▪ Claves y restricciones ▪ Transformación de un diagrama E/R a modelo Relacional ▪ Normalización de Bases de Datos ▪ Álgebra Relacional
  • 4. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 4 15/01/2022 Representación del problema mediante el modelado. ▪ Simplificación del objeto en el mundo real, pero que es suficientemente realista como para dar una idea de lo que ocurrirá en la realidad y usarse como base del desarrollo. ▪ ¿Qué es un modelo?: Un modelo es una abstracción que se construye para entender y resolver problemas.
  • 5. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 5 15/01/2022 ¿Qué es un modelo? ▪ ¿Qué es un modelo? ▪ Un modelo es una representación de la realidad. No sólo se modela software sino prácticamente cualquier actividad. ▪ ¿Para qué se modela? ▪ Para resolver un problema más fácilmente
  • 6. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 6 15/01/2022 Contenido ▪ Representación del problema ▪ El Modelo de Datos ▪ Diagramas de Entidad Relación ▪ Entidad ▪ Relación ▪ Dominios ▪ Atributos ▪ Tipos de Atributos ▪ Cardinalidad ▪ Cardinalidad de relaciones no binarias ▪ Cardinalidad de relaciones reflexivas ▪ El modelo Entidad Relación ampliado ▪ Generalización y especificación ▪ Entidades Débiles ▪ Relaciones recursivas ▪ Agregación ▪ Clase membresía ▪ Construcción de un diagrama Entidad Relación ▪ El modelo Relacional ▪ Claves y restricciones ▪ Transformación de un diagrama E/R a modelo Relacional ▪ Normalización de Bases de Datos ▪ Álgebra Relacional
  • 7. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 7 15/01/2022 Modelación de Datos ▪ La modelación de datos nos permiten abstraer de problemas del mundo real los datos (objetos o entidades) involucrados y las relaciones que existen entre ellos. ▪ Los modelos de datos describen las relaciones entre los datos que forman una base de datos. ▪ No se refieren en ningún momento a los valores específicos que un elemento de datos debe tomar. ▪ Tratan a los datos como grupos genéricos, que pueden tomar cualquier conjunto de valores específicos
  • 8. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 8 15/01/2022 Conjunto de entidades ▪ Una base de datos puede ser modelada como ▪ Conjunto de entidades ▪ Relación entre entidades ▪ Una entidad es un objeto que existe, y es distinguible de otros objetos ▪ Ejemplo: persona específica, compañía, evento, planta ▪ Las entidades tienen atributos ▪ Ejemplo: personas tienen nombre y dirección ▪ Un conjunto de entidades es un conjunto de entidades del mismo tipo que comparten las mismas propiedades ▪ Ejemplo: conjunto de personas, compañías, árboles, días festivos.
  • 9. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 9 15/01/2022 El Modelo de Datos ▪ Un modelo de datos es un lenguaje orientado a hablar de una base de datos. Típicamente un modelo de datos permite describir: ▪ Las estructuras de datos de la base: El tipo de los datos que hay en la base y la forma en que se relacionan. ▪ Las restricciones de integridad: Un conjunto de condiciones que deben cumplir los datos para reflejar la realidad deseada. ▪ Operaciones de manipulación de los datos: típicamente, operaciones de agregado, borrado, modificación y recuperación de los datos de la base. ▪ Otro enfoque es pensar que un modelo de datos permite describir los elementos de la realidad que intervienen en un problema dado y la forma en que se relacionan esos elementos entre sí. ▪ No hay que perder de vista que una base de datos siempre está orientada a resolver un problema determinado, por lo que los dos enfoques propuestos son necesarios en cualquier desarrollo de software.
  • 10. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 10 15/01/2022 Una clasificación de los modelos de datos De acuerdo al nivel de abstracción que presentan: ▪ Modelos de Datos Conceptuales: orientados a la descripción de estructuras de datos y restricciones de integridad. Se usan fundamentalmente durante la etapa de Análisis de un problema dado y están orientados a representar los elementos que intervienen en ese problema y sus relaciones. ▪ El ejemplo más típico es el Modelo Entidad-Relación. ▪ Modelos de Datos Lógicos: orientados a las operaciones más que a la descripción de una realidad. Usualmente están implementados en algún sistema gestor de base de datos. ▪ El ejemplo más típico es el modelo relacional, que cuenta con la particularidad de contar también con buenas características conceptuales (Normalización de bases de datos). ▪ Modelos de Datos Físicos: estructuras de datos a bajo nivel implementadas dentro del propio manejador. ▪ Ejemplos típicos de estas estructuras son los Árboles B+, las estructuras de Hash, etc.
  • 11. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 11 15/01/2022 Niveles de Abstracción • Nivel de Vista: Describe una parte de la BD. Puede esconder información por seguridad • Nivel Lógico: Qué datos se almacenan en la BD y qué relaciones existen entre esos datos. • Nivel Físico: Cómo se almacenan los datos. LÓGICO FÍSICO VISTA
  • 12. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 12 15/01/2022 Niveles de Abstracción ARQUITECTURA DE TRES NIVELES • Nivel Externo (Lenguaje de Programación “tipo Pascal”) tipo empleado = registro (no acceso al salario) n_empleado: cadena(6); n_depto: cadena(4); fin; • Nivel Conceptual (Lenguaje de definición de datos, DDL) EMPLEADO ( NUMERO_EMPLEADO CARACTER(6) CLAVE PRINCIPAL, NUMERO_DEPARTAMENTO CARACTER(4) NO NULO, SALARIO NUMERICO(5) NO NULO ) • Nivel Interno EMP_ALMACENADO LONGITUD=20 PREFIJO TIPO=BYTE(6), DESPLAZAMIENTO=0 EMP# TIPO=BYTE(6), DESPLAZAMIENTO=6, INDICE=IEMP DEPTO# TIPO=BYTE(4), DESPLAZAMIENTO=12 PAGA TIPO=PALABRA, DESPLAZAMIENTO=16
  • 13. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 13 15/01/2022 Contenido ▪ Representación del problema ▪ El Modelo de Datos ▪ Diagramas de Entidad Relación ▪ Entidad ▪ Relación ▪ Dominios ▪ Atributos ▪ Tipos de Atributos ▪ Cardinalidad ▪ Cardinalidad de relaciones no binarias ▪ Cardinalidad de relaciones reflexivas ▪ El modelo Entidad Relación ampliado ▪ Generalización y especificación ▪ Entidades Débiles ▪ Relaciones recursivas ▪ Agregación ▪ Clase membresía ▪ Construcción de un diagrama Entidad Relación ▪ El modelo Relacional ▪ Claves y restricciones ▪ Transformación de un diagrama E/R a modelo Relacional ▪ Normalización de Bases de Datos ▪ Álgebra Relacional
  • 14. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 14 15/01/2022 Introducción e historia del modelo Entidad-Relación ▪ Modelo de datos conceptual de alto nivel ▪ Propuesto por Peter P. Chen en 1976 ▪ Extensiones/aportaciones de muchos otros autores » No existe un único MER, sino una FAMILIA DE MODELOS ▪ Es un modelo semántico, surge por la necesidad de tener un modelo más cercano al usuario ▪ Describe el “mundo real” como un conjunto de ENTIDADES y de RELACIONES entre ellas ▪ Gran difusión ▪ Muy extendido en los métodos de diseño de bases de datos ▪ Soportado por herramientas software de diseño (CASE)
  • 15. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 15 15/01/2022 ▪ Descripción concisa de los requisitos de información de los usuarios ▪ Descripciones detalladas de ▪ TIPOS DE DATOS ▪ RELACIONES ENTRE DATOS ▪ RESTRICCIONES que los DATOS deben cumplir ▪ Sin detalles de implementación ▪ Más fácil de entender ▪ Comunicación con el usuario no técnico Esquema conceptual
  • 16. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 16 15/01/2022 Elementos del Modelo ER 1. Entidad ( entity ) 2. Atributo ( attribute ) 3. Relación ( relationship ) 4. Dominio ( values set )
  • 17. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 17 15/01/2022 Elementos del Modelo ER Entidad Atributo Atributo Compuesto Relacion Enlace Atributo Derivado Atributo Llave Relación de Identificación Entidad Débil
  • 18. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 18 15/01/2022 Modelo ER E1 E2 R E1 E2 R E R 1 n (min, max) Participacion Total de E2 en R Relación de Cardinalidad 1:n para E1:E2 en R Restriccion Estructural (min, max) en la participacion de E en R
  • 19. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 19 15/01/2022 Contenido ▪ Representación del problema ▪ El Modelo de Datos ▪ Diagramas de Entidad Relación ▪ Entidad ▪ Relación ▪ Dominios ▪ Atributos ▪ Tipos de Atributos ▪ Cardinalidad ▪ Cardinalidad de relaciones no binarias ▪ Cardinalidad de relaciones reflexivas ▪ El modelo Entidad Relación ampliado ▪ Generalización y especificación ▪ Entidades Débiles ▪ Relaciones recursivas ▪ Agregación ▪ Clase membresía ▪ Construcción de un diagrama Entidad Relación ▪ El modelo Relacional ▪ Claves y restricciones ▪ Transformación de un diagrama E/R a modelo Relacional ▪ Normalización de Bases de Datos ▪ Álgebra Relacional
  • 20. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 20 15/01/2022 ENTIDAD ▪ Cosa u objeto del mundo real con existencia propia y distinguible del resto ▪ Objeto con existencia... ▪ física o real (una persona, un libro, un empleado) ▪ abstracta o conceptual (una asignatura, un viaje) ▪ “Persona, lugar, cosa, concepto o suceso, real o abstracto, de interés para la empresa” (ANSI, 1977)
  • 21. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 21 15/01/2022 Contenido ▪ Representación del problema ▪ El Modelo de Datos ▪ Diagramas de Entidad Relación ▪ Entidad ▪ Relación ▪ Dominios ▪ Atributos ▪ Tipos de Atributos ▪ Cardinalidad ▪ Cardinalidad de relaciones no binarias ▪ Cardinalidad de relaciones reflexivas ▪ El modelo Entidad Relación ampliado ▪ Generalización y especificación ▪ Entidades Débiles ▪ Relaciones recursivas ▪ Agregación ▪ Clase membresía ▪ Construcción de un diagrama Entidad Relación ▪ El modelo Relacional ▪ Claves y restricciones ▪ Transformación de un diagrama E/R a modelo Relacional ▪ Normalización de Bases de Datos ▪ Álgebra Relacional
  • 22. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 22 15/01/2022 RELACIÓN (relationship) ▪ También “interrelación” ▪ Asociación, vínculo o correspondencia entre instancias de entidades relacionadas de alguna manera en el “mundo real” ▪ el director “Alejandro Amenábar” ha rodado la película “Mar adentro” ▪ el empleado 87654321 trabaja en el local de videoclub “principal” ▪ la película “El imperio contraataca” es una continuación de la película “La guerra de las galaxias” El término “Relationship” suele traducirse también por “Interrelación”
  • 23. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 23 15/01/2022 DIRECTOR HA_RODADO PELICULA J. Médem C. Saura F. Trueba S. Segura A. Amenábar Vacas Tesis Belle Epoque Torrente Tierra Abre los ojos Los otros Tipo de Relación: conjunto de instancias Tipo de Entidad: conjunto de instancias Instancia del tipo de relación
  • 24. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 24 15/01/2022 Grado de un tipo de relación ▪ Número de tipos de entidad que participan en el tipo de relación ▪ Binaria: grado 2 (el más frecuente) ▪ Ternaria: grado 3 ▪ Reflexiva (o recursiva): grado 1 ACTOR PELICULA ACTUA_EN CLIENTE PELICULA LOCAL_VIDEOCLUB ALQUILA PELICULA CONTINUACION DE
  • 25. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 25 15/01/2022 Nombres de Rol (papel) ▪ Todo tipo de entidad que participa en un tipo de relación juega un papel específico en la relación ▪ Los nombres de rol se deben usar, sobre todo, en los tipos de relación reflexivos, para evitar ambigüedad original versión PELICULA VERSION_DE DIRECTOR PELICULA HA_RODADO realizador film
  • 26. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 26 15/01/2022 Restricciones estructurales sobre tipos de relación ▪ Limitan las posibles combinaciones de entidades que pueden participar en las relaciones ▪ Extraídas de la situación real que se modela “Una película debe haber sido dirigida por uno y sólo un director” “Un director ha dirigido al menos una película y puede haber dirigido muchas” ▪ Clases de restricciones estructurales: ▪ Razón de cardinalidad (o tipo de correspondencia) ▪ Razón de participación
  • 27. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 27 15/01/2022 Contenido ▪ Representación del problema ▪ El Modelo de Datos ▪ Diagramas de Entidad Relación ▪ Entidad ▪ Relación ▪ Dominios ▪ Atributos ▪ Tipos de Atributos ▪ Cardinalidad ▪ Cardinalidad de relaciones no binarias ▪ Cardinalidad de relaciones reflexivas ▪ El modelo Entidad Relación ampliado ▪ Generalización y especificación ▪ Entidades Débiles ▪ Relaciones recursivas ▪ Agregación ▪ Clase membresía ▪ Construcción de un diagrama Entidad Relación ▪ El modelo Relacional ▪ Claves y restricciones ▪ Transformación de un diagrama E/R a modelo Relacional ▪ Normalización de Bases de Datos ▪ Álgebra Relacional
  • 28. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 28 15/01/2022 DOMINIO (values set) ▪ Conjunto de valores ▪ Cada atributo simple está asociado a un dominio, que especifica sus valores válidos ◼ No suele representarse, aunque una forma de hacerlo sería: [MPM1999] Atributo Dominio Descripción Dominio nombre NOMBRES cadenas de hasta 30 caracteres alfabéticos telefono TELEFONOS cadenas de hasta 9 caracteres numéricos altura MEDIDAS números reales entre 0 y 2’5 (metros) ... ... ... TELEFONOS NOMBRES telefono nombre MEDIDAS altura EMPLEADO
  • 29. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 29 15/01/2022 Contenido ▪ Representación del problema ▪ El Modelo de Datos ▪ Diagramas de Entidad Relación ▪ Entidad ▪ Relación ▪ Dominios ▪ Atributos ▪ Tipos de Atributos ▪ Cardinalidad ▪ Cardinalidad de relaciones no binarias ▪ Cardinalidad de relaciones reflexivas ▪ El modelo Entidad Relación ampliado ▪ Generalización y especificación ▪ Entidades Débiles ▪ Relaciones recursivas ▪ Agregación ▪ Clase membresía ▪ Construcción de un diagrama Entidad Relación ▪ El modelo Relacional ▪ Claves y restricciones ▪ Transformación de un diagrama E/R a modelo Relacional ▪ Normalización de Bases de Datos ▪ Álgebra Relacional
  • 30. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 30 15/01/2022 ATRIBUTO ▪ Propiedad o característica de una entidad ▪ Una entidad particular es descrita por los valores de sus atributos: titulo = El alquimista impaciente genero = Thriller nacionalidad = España añoestreno = 2002 p1 ... nss = 1122334455 dni = 87654321 nombre = Cristina Aliaga Gil nacionalidad = España e1 ...
  • 31. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 31 15/01/2022 Atributos en relaciones ▪ A veces los atributos no son propios de ninguna entidad… ▪ Sino del hecho mismo de la relación: ▪ Relaciones de tipo "histórico" donde debe constar una fecha o una hora. ▪ Hacer constar la fecha de compra en que persona compró el auto: la fecha es de la compra, no de la persona, ni del auto. ▪ Se representan igual que los atributos de las entidades. ▪ En tal caso, el atributo "Fecha de compra" debería colocarse en la relación "compra". compra Persona Auto Fecha_compra
  • 32. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 32 15/01/2022 TIPO DE ENTIDAD (entity set) ▪ Define un conjunto de entidades que poseen los mismos atributos PELICULA: titulo, genero, nacionalidad, añoestreno,numcopias EMPLEADO: dni, nss, nombre, fechanacim, direccion, telefono, altura, nacionalidad, edad ▪ Notación EMPLEADO LOCAL VIDEOCLUB PELICULA DIRECTOR ACTOR CLIENTE
  • 33. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 33 15/01/2022 Instancia de un tipo de entidad ▪ También... ▪ Ocurrencia ▪ Realización ▪ Ejemplar ▪ Entidad concreta o individual PELICULA titulo = El señor de los anillos genero = Fantasía nacionalidad = EEUU añoestreno = 2001 p2 ... titulo = Amelie genero = Comedia nacionalidad = Francia añoestreno = 2001 p4 ... titulo = Amores perros genero = Drama nacionalidad = Méjico añoestreno = 1999 p3 ...
  • 34. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 34 15/01/2022 Intensión y Extensión ▪ Un tipo de entidad describe el esquema o intensión para un conjunto de entidades que poseen la misma estructura EMPLEADO: dni, nss, nombre, dirección, telefono, altura, fechanacim, nacionalidad, edad ▪ Las instancias del tipo de entidad se agrupan en un conjunto de entidades o extensión e1 • (87654321, 1122334455, “Cristina Aliaga Gil”, “Libertad, 2. Yecla. Murcia. 30510”, 968100200, 1’60, 28/07/1979, España, 23) e2 • (12345678, 6677889900, “Antonio Gil Sánchez”, “Paz, 5. Murcia. Murcia.30012”, 968111222, 1’76, 14/04/1944, España, 58) e3 • (11223344, 1234567890, “Julia Sauce”, “Justicia, 20. Yecla. Murcia. 30510”, 968000222, 1’59, 23/05/1947, España, 55) ...
  • 35. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 35 15/01/2022 Contenido ▪ Representación del problema ▪ El Modelo de Datos ▪ Diagramas de Entidad Relación ▪ Entidad ▪ Relación ▪ Dominios ▪ Atributos ▪ Tipos de Atributos ▪ Cardinalidad ▪ Cardinalidad de relaciones no binarias ▪ Cardinalidad de relaciones reflexivas ▪ El modelo Entidad Relación ampliado ▪ Generalización y especificación ▪ Entidades Débiles ▪ Relaciones recursivas ▪ Agregación ▪ Clase membresía ▪ Construcción de un diagrama Entidad Relación ▪ El modelo Relacional ▪ Claves y restricciones ▪ Transformación de un diagrama E/R a modelo Relacional ▪ Normalización de Bases de Datos ▪ Álgebra Relacional
  • 36. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 36 15/01/2022 Tipos de atributos ▪ Simples o Compuestos ▪ Almacenados o Derivados ▪ Monovalorados o Multivalorados ▪ Opcionales multivalorados Simples compuestos derivados Monovalorados (0,1) EMPLEADO altura Almacenados
  • 37. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 37 15/01/2022 Atributos Simples o Compuestos ▪ Atributos compuestos ▪ Pueden dividirse en otros con significado propio ▪ Valor compuesto = concatenación de valores de componentes ▪ Atributos simples ▪ No divisibles. Atómicos fechanacim dia mes año direccion calle ciudad provincia codpostal genero
  • 38. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 38 15/01/2022 Atributos Almacenados o Derivados ▪ Atributos derivados ▪ Valor calculado a partir de otra información ya existente (atributos, entidades relacionadas) ▪ Son información redundante... edad [de EMPLEADO], cálculo a partir de fechanacim ▪ atributo derivado del valor de otro atributo numcopias [de una PELICULA], cuenta del número de entidades COPIA relacionadas con cada película concreta ▪ atributo derivado de entidades relacionadas ▪ Atributos almacenados fechanacim [de cada EMPLEADO] nacionalidad [de una PELICULA]
  • 39. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 39 15/01/2022 Atributos Monovalorados o Multivalorados ▪ Atributos monovalorados (monovaluados) ▪ sólo un valor para cada entidad fechanacim [de un EMPLEADO particular] añoestreno [de cada PELICULA concreta] ▪ Atributos multivalorados (multivaluados) ▪ más de un valor para la misma entidad nacionalidad [ PELICULA coproducida por varios países ] telefono [ EMPLEADO con varios teléfonos de contacto] ▪ pueden tener límites superior e inferior del número de valores por entidad nacionalidad (1-2) telefono (0-3)
  • 40. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 40 15/01/2022 Atributos Opcionales (nulos) ▪ El nulo (null value) es usado cuando... ▪ Se desconoce el valor de un atributo para cierta entidad ▪ El valor existe pero falta altura [de un EMPLEADO] ▪ No se sabe si el valor existe o no telefono [de un EMPLEADO] ▪ La entidad no tiene ningún valor aplicable para el atributo: fechaalquiler [PELICULA sólo en vídeo-venta (no alquiler)]
  • 41. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 41 15/01/2022 Notación para atributos [EN2002] (0,3) dirección (1,2) (0,1) EMPLEADO nombre fechanacim telefono calle provincia ciudad codpostal edad nss dni altura nacionalidad
  • 42. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 42 15/01/2022 Atributos Clave ▪ Atributo con valor distinto para cada instancia de un tipo de entidad dni en EMPLEADO ▪ Una clave identifica de forma única cada entidad concreta  atributo identificador ▪ Notación EMPLEADO [EN2002] dni
  • 43. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 43 15/01/2022 Atributos Clave (ii) ▪ Una clave puede estar formada por varios atributos  clave compuesta ▪ Combinación de valores distinta para cada instancia (nombre, fechanacim) en el tipo de entidad EMPLEADO ▪ Una clave compuesta debe ser mínima ▪ Un tipo de entidad puede tener más de una clave  claves candidatas Claves o Identificadores Candidatos de EMPLEADO: ▪ dni ▪ nss ▪ (nombre, fechanacim)
  • 44. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 44 15/01/2022 Atributos Clave (iii) ▪ Atributo identificador principal (IP) ▪ Clave Principal ▪ Elegido (por el diseñador) de entre los identificadores candidatos (IC), para ser el medio principal de identificación de las instancias del tipo de entidad ▪ dni en EMPLEADO ▪ Atributos identificadores alternativos (IA) ▪ Claves Alternativas ▪ El resto de IC’s ▪ nss y (nombre, fechanacim) en EMPLEADO
  • 45. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 45 15/01/2022 Notación para atributos clave [EN2002] ◼ En el MER es obligatorio que todo tipo de entidad tenga un identificador (0,3) (1,2) (0,1) EMPLEADO nombre fechanacim telefono calle provincia ciudad codpostal edad nss dni altura nacionalidad n-f dirección IP
  • 46. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 46 15/01/2022 Contenido ▪ Representación del problema ▪ El Modelo de Datos ▪ Diagramas de Entidad Relación ▪ Entidad ▪ Relación ▪ Dominios ▪ Atributos ▪ Tipos de Atributos ▪ Cardinalidad ▪ Cardinalidad de relaciones no binarias ▪ Cardinalidad de relaciones reflexivas ▪ El modelo Entidad Relación ampliado ▪ Generalización y especificación ▪ Entidades Débiles ▪ Relaciones recursivas ▪ Agregación ▪ Clase membresía ▪ Construcción de un diagrama Entidad Relación ▪ El modelo Relacional ▪ Claves y restricciones ▪ Transformación de un diagrama E/R a modelo Relacional ▪ Normalización de Bases de Datos ▪ Álgebra Relacional
  • 47. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 47 15/01/2022 Razón de Cardinalidad Notación [EN2002] ▪ Número máximo de instancias de tipo de relación en las que puede participar una misma instancia de tipo de entidad ▪ la cardinalidad de HA_RODADO es “1 a N” ▪ HA_RODADO es de tipo “1 a N” ▪ Notación ▪ etiqueta en la línea que une entidad y relación ▪ Ojo: da la sensación de que se representa “al revés” 1 N DIRECTOR PELICULA HA_RODADO
  • 48. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 48 15/01/2022 ▪ Razones de cardinalidad más comunes: ▪ 1:1 (“uno a uno”) ▪ 1:N (“uno a muchos”) ▪ M:N (“muchos a muchos”) Razón de Cardinalidad (ii)[EN2002] ACTOR PELICULA personaje film M ACTUA_EN N EMPLEADO LOCAL_VIDEOCLUB encargado sucursal 1 trabajador lugar trabajo 1 TRABAJA_EN SUPERVISA N 1
  • 49. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 49 15/01/2022 Relaciones con cardinalidad 1:1 ▪ Una instancia de la entidad A está asociada con 0 o 1 instancia de la entidad B ▪ Una instancia de la entidad B está asociada con 0 o 1 instancia de la entidad A B A RAB 1 1 a1 a2 a3 a4 b1 b2 b3
  • 50. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 50 15/01/2022 Ejemplo Relación 1:1 1 curso es impartido por 1 profesor 1 profesor imparte 1 curso TEACHES COURSE TEACHER 1 1 CRSID TITLE TNAME DEPT
  • 51. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 51 15/01/2022 Relaciones con cardinalidad 1:N ▪ Una instancia de la entidad A está asociada con 0 o más instancias de la entidad B ▪ Una instancia de la entidad B está asociada con 0 o 1 instancia de la entidad A B A RAB 1 N a1 a2 a3 b4 b1 b2 b3
  • 52. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 52 15/01/2022 Ejemplo relación 1:N 1 curso es impartido por máximo 1 profesor 1 profesor imparte CERO o MAS cursos TEACHES COURSE TEACHER 1 N CRSID TITLE TNAME DEPT
  • 53. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 53 15/01/2022 Relaciones con cardinalidad M:N ▪ Una instancia de la entidad A está asociada con 0 o más instancias de la entidad B ▪ Una instancia de la entidad B está asociada con 0 o más instancias de la entidad A B A RAB M N a1 a2 a3 b4 b1 b2 b3
  • 54. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 54 15/01/2022 Ejemplo Relación M:N 1 país exporta CERO o MAS productos 1 producto es exportado por CERO o MAS países 1 país exporta máximo N productos 1 producto es exportado por máximo N países EXPORT COUNTRY PRODUCT N M ID NAME PNUM PDESCRPTION QTY
  • 55. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 55 15/01/2022 Contenido ▪ Representación del problema ▪ El Modelo de Datos ▪ Diagramas de Entidad Relación ▪ Entidad ▪ Relación ▪ Dominios ▪ Atributos ▪ Tipos de Atributos ▪ Cardinalidad ▪ Cardinalidad de relaciones no binarias ▪ Cardinalidad de relaciones reflexivas ▪ El modelo Entidad Relación ampliado ▪ Generalización y especificación ▪ Entidades Débiles ▪ Relaciones recursivas ▪ Agregación ▪ Clase membresía ▪ Construcción de un diagrama Entidad Relación ▪ El modelo Relacional ▪ Claves y restricciones ▪ Transformación de un diagrama E/R a modelo Relacional ▪ Normalización de Bases de Datos ▪ Álgebra Relacional
  • 56. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 56 15/01/2022 Tipos de relación con grado superior a dos ▪ Tipo de relación ternaria [EN2002] CLIENTE CINTA VIDEO LOCAL VIDEOCLUB ALQUILA (0,1) (0,n) (0,m) • Cardinalidad de los tipos de entidad fecha
  • 57. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 57 15/01/2022 Tipos de relación con grado superior a dos (ii) ▪ Equivalencia ternaria – varias binarias [EN2002] CLIENTE CINTA VIDEO LOCAL VIDEOCLUB ALQUILA (0,1) (0,n) (0,m) fecha LOCAL VIDEOCLUB ALQUILA (1,m) (0,1) (1,n) (0,n) (1,1) (1,n) CONTIENE fecha ALQUILA_EN CINTA VIDEO CLIENTE
  • 58. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 58 15/01/2022 Tipos de relación con grado superior a dos (iii) ▪ Ternaria no equivalente a varias binarias [EN2002] TIENDA (1,m) (1,m) (1,n) (1,n) (0,n) (1,m) VENDE PROVEE PUEDE SUMINISTRAR PRODUCTO PROVEEDOR PRODUCTO TIENDA (0,m) (1,n) (1,p) SUMINISTRA idprov codpr nombre cantidad fecha PROVEEDOR • Pérdida de semántica...
  • 59. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 59 15/01/2022 Convertir relaciones no binarias a binarias ▪ En general cualquier relación puede ser representada usando relaciones binarias crenado un conjunto de entidades artificial. ▪ Reemplace R entre los conjuntos de entidades A, B y C con un conjunto de entidades E, y tres conjuntos de relaciones: ▪ 1. RA, entre E y A 2. RB entre E y B 3. RC entre E y C ▪ Cree un atributo especial identificado por E ▪ Agregue cualquier atributo de R a E ▪ Para cualquier relación (ai, bi, ci) en R, cree ▪ 1. una nueva entidad ei en el conjunto de entidades E ▪ 2. agregue (ei, ai) a RA ▪ 3. agregue (ei, ai) a RB ▪ 4. agregue (ei, ci) a RC
  • 60. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 60 15/01/2022 Convertir relaciones no binarias a binarias ▪ También es necesario traducir las restricciones ▪ Traducir todas las restricciones puede ser imposible ▪ Puede haber instancias en el esquema traducido que puedan no corresponder a ninguna instancia de R ▪ Ejercicio: agregue restricciones a las relaciones RA, RB, RC para asegurar que la entidad creada corresponda exactamente a cada una de los conjuntos de entidades A, B y C. ▪ Podemos evitar crear un atributo identificado haciendo E una conjunto de entidades débiles identificado por los tres conjuntos de relaciones.
  • 61. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 61 15/01/2022 Contenido ▪ Representación del problema ▪ El Modelo de Datos ▪ Diagramas de Entidad Relación ▪ Entidad ▪ Relación ▪ Dominios ▪ Atributos ▪ Tipos de Atributos ▪ Cardinalidad ▪ Cardinalidad de relaciones no binarias ▪ Cardinalidad de relaciones reflexivas ▪ El modelo Entidad Relación ampliado ▪ Generalización y especificación ▪ Entidades Débiles ▪ Relaciones recursivas ▪ Agregación ▪ Clase membresía ▪ Construcción de un diagrama Entidad Relación ▪ El modelo Relacional ▪ Claves y restricciones ▪ Transformación de un diagrama E/R a modelo Relacional ▪ Normalización de Bases de Datos ▪ Álgebra Relacional
  • 62. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 62 15/01/2022 Cardinalidad de tipo de entidad recursivos ▪ Cardinalidad de tipos de entidad recursivos(reflexivos) [EN2002] N 1 subalterno superior (0,1) (0,n) EMPLEADO JEFE DE
  • 63. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 63 15/01/2022 Relación 1:1 ▪ No se crea una tabla para la relación. La clave de la entidad se repite, con lo que la tabla resultante tendrá ese atributo dos veces, una como clave primaria y otra como clave ajena de ella misma.
  • 64. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 64 15/01/2022 Relación 1:N ▪ En este caso hay que tener en cuenta la cardinalidad del lado muchos: 1. Si no es obligatoria se crea una nueva tabla cuya clave será la de la entidad del lado muchos (Cod_tema_S) y se propaga la clave a la nueva tabla como clave ajena. 2. Si es siempre obligatoria no se crea una nueva tabla
  • 65. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 65 15/01/2022 Relación M:N ▪ La tabla que resulta de la relación contendrá dos veces la clave primaria de la entidad del lado muchos, más los atributos de la relación, si los hay. La clave de esta nueva tabla será la combinación de las dos.
  • 66. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 66 15/01/2022 Contenido ▪ Representación del problema ▪ El Modelo de Datos ▪ Diagramas de Entidad Relación ▪ Entidad ▪ Relación ▪ Dominios ▪ Atributos ▪ Tipos de Atributos ▪ Cardinalidad ▪ Cardinalidad de relaciones no binarias ▪ Cardinalidad de relaciones reflexivas ▪ El modelo Entidad Relación ampliado ▪ Generalización y especificación ▪ Entidades Débiles ▪ Relaciones recursivas ▪ Agregación ▪ Clase membresía ▪ Construcción de un diagrama Entidad Relación ▪ El modelo Relacional ▪ Claves y restricciones ▪ Transformación de un diagrama E/R a modelo Relacional ▪ Normalización de Bases de Datos ▪ Álgebra Relacional
  • 67. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 67 15/01/2022 • Aportaciones de diversos autores al modelo Entidad-Relación «básico». • Permiten representar... – Relaciones exclusivas entre sí – Jerarquías de Especialización/Generalización Modelo Entidad-Relación Extendido, MERE Enhanced Entity-Relationship model, EER
  • 68. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 68 15/01/2022 • Dos (o más) tipos de relación son exclusivos, respecto de un tipo de entidad que participa en ambos, si cada instancia del tipo de entidad sólo puede participar en uno de los tipos de relación GASOLINA GASTA CONSUME GASOIL Relaciones Exclusivas • CONSUME y GASTA son exclusivas respecto del tipo de entidad VEHICULO VEHÍCULO
  • 69. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 69 15/01/2022 ▪ Otro ejemplo sería el de un ARTÍCULO que pudiera publicarse en un PERIÓDICO o en una REVISTA, pero nunca en ambos. ▪ Un ejemplo más sería el de los domicilios de los estudiantes universitarios durante el curso académico. Un ESTUDIANTE se puede alojar en un DOMICILIO_FAMILIAR, una RESIDENCIA_ESTUDIANTES o en un PISO_COMPARTIDO. Las tres relaciones que unen a ESTUDIANTE con las tres entidades serían exclusivas entre sí. Relaciones Exclusivas
  • 70. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 70 15/01/2022 Contenido ▪ Representación del problema ▪ El Modelo de Datos ▪ Diagramas de Entidad Relación ▪ Entidad ▪ Relación ▪ Dominios ▪ Atributos ▪ Tipos de Atributos ▪ Cardinalidad ▪ Cardinalidad de relaciones no binarias ▪ Cardinalidad de relaciones reflexivas ▪ El modelo Entidad Relación ampliado ▪ Generalización y especificación ▪ Entidades Débiles ▪ Relaciones recursivas ▪ Agregación ▪ Clase membresía ▪ Construcción de un diagrama Entidad Relación ▪ El modelo Relacional ▪ Claves y restricciones ▪ Transformación de un diagrama E/R a modelo Relacional ▪ Normalización de Bases de Datos ▪ Álgebra Relacional
  • 71. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 71 15/01/2022 • Caso especial de relación entre un tipo de entidad y varios otros tipos de entidad • La jerarquía o relación que se establece entre uno y otros corresponde a la noción de “es_un” o de “es_un_tipo_de” • Estas jerarquías pueden formarse por especialización o bien por generalización Especialización/Generalización (E/G)
  • 72. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 72 15/01/2022 • Agrupación de instancias dentro de un tipo de entidad, que debe representarse explícitamente debido a su importancia para el diseño o aplicación – Subtipos del tipo de entidad VEHÍCULO: • CAMIÓN • TURISMO • AUTOBÚS • CICLOMOTOR – Subtipos del tipo de entidad EMPLEADO: • SECRETARIO • GERENTE • COMERCIAL • El tipo de entidad que se especializa en otros se llama supertipo ( VEHICULO, EMPLEADO ) E/G: Subtipo de un tipo de entidad
  • 73. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 73 15/01/2022 • Es la relación que se establece entre un supertipo y cada uno de sus subtipos (noción es_un o es_un_tipo_de) • Notación: EMPLEADO [EN2002] E/G: Relación Supertipo/Subtipo SECRETARIO GERENTE COMERCIAL
  • 74. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 74 15/01/2022 • La extensión de un subtipo es un subconjunto de la extensión del supertipo – Una instancia de subtipo también es instancia del supertipo y es la misma instancia, pero con un papel específico distinto – Una instancia no puede existir sólo por ser miembro de un subtipo: también debe ser miembro del supertipo – Una instancia del supertipo puede no ser miembro de ningún subtipo E/G: Relación Supertipo/Subtipo (ii) VEHÍCULO CICLOMOTOR CAMIÓN TURISMO
  • 75. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 75 15/01/2022 • Un subtipo puede tener atributos propios (específicos) y participar en relaciones por separado • Un subtipo hereda todos los atributos del supertipo, y toda relación en la que participa el supertipo – Un subtipo, con sus atributos y relaciones específicos, más los atributos y relaciones que hereda del supertipo, es un tipo de entidad por derecho propio VEHÍCULO CAMIÓN FABRICANTE SIDECAR FABRICA LLEVA numBastidor precio numEjes tonelaje numPuer numPlazas cilindrada (1,1) (1,n) (1,1) (0,1) TURISMO N:1 1:1 MOTOCICLETA E/G: Herencia de tipo
  • 76. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 76 15/01/2022 • Proceso de definición de un conjunto de subtipos de un tipo de entidad (» supertipo) • Subtipos suelen estar definidos según característica distintiva de las entidades del supertipo – Discriminante de la especialización E/G: Especialización EMPLEADO actividad SECRETARIO GERENTE COMERCIAL
  • 77. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 77 15/01/2022 • Varias especializaciones de un tipo de entidad, con base en diferentes discriminantes PELÍCULA color género [EN2002] E/G: Especialización (ii) COLOR BLANCO_Y_NEGRO COMEDIA DRAMA TERROR
  • 78. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 78 15/01/2022 • Conviene incluir relaciones subtipo/supertipo si hay... – Atributos que sólo tienen sentido para algunas instancias de un tipo y no para todas (atributos específicos) especialidadMédica «no es aplicable» a CELADOR – Tipos de relación en los que sólo participan algunas entidades de un tipo y no todas (relaciones específicas) Relación SUPERVISA entre CELADOR y SECCIÓN_HOSPITAL SUPERVISA (1,1) (1,1) E/G: Especialización (iii) CELADOR SECCIÓN_HOSPITAL
  • 79. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 79 15/01/2022 • Proceso inverso de la especialización • Suprimir diferencias entre varios tipos de entidad: identificar atributos y relaciones comunes, y formar un supertipo que los incluya numBastidor precio numEjes TURISMO fechaFab numBastidor precio numEjes tonelaje numPuer fechaFab numBastidor precio fechaFab CAMIÓN TURISMO CAMIÓN numPuer tonelaje VEHÍCULO [EN2002] G E/G: Generalización
  • 80. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 80 15/01/2022  Generalización • Énfasis en las similitudes • Cada instancia del supertipo es también una instancia de alguno de los subtipos  Especialización • Énfasis en las diferencias • Alguna instancia del supertipo puede no ser instancia de ningún subtipo E/G: Generalización vs. Especialización
  • 81. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 81 15/01/2022 • Definición ¿Qué instancias del supertipo pertenecen a cada subtipo? • Disyunción/Solapamiento ¿A cuántos subtipos puede pertenecer (a la vez) una instancia del supertipo? • Completitud/Parcialidad ¿Debe toda instancia del supertipo pertenecer a algún subtipo? Restricciones sobre la E/G
  • 82. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 82 15/01/2022 • Subtipos definidos por predicado o condición – Condición de pertenencia a cada subtipo con base en el valor de algún atributo del supertipo – Restricción que especifica que... • Las instancias del subtipo deben satisfacer la condición • Todas las instancias del supertipo que cumplen la condición, deben pertenecer al subtipo PERSONA EMPLEADO ESTUDIANTE estadoLaboral=en_activo matriculado=true [EN2002] Restricciones sobre la E/G: Definición
  • 83. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 83 15/01/2022 • Subtipos definidos por atributo – Todas las subclases definen la condición de pertenencia en términos del mismo atributo – ... es el discriminante de la especialización en_activo en_paro estadoLaboral claseTrabajo médico celador limpiador enfermero [EN2002] Restricciones sobre la E/G: Definición (ii) PERSONA EMPLEADO PARADO EMPLEADO_HOSPITAL ENFERMERO MÉDICO CELADOR LIMPIADOR
  • 84. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 84 15/01/2022 • Subtipos definidos por el usuario – No existe (o no interesa definir) ninguna condición de pertenencia a los subtipos – El usuario, al insertar una instancia, elige a qué subtipo pertenece Restricciones sobre la E/G: Definición (iii) PROFESOR TITULAR AYUDANTE ASOCIADO
  • 85. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 85 15/01/2022 • Subtipos disjuntos si una instancia del supertipo puede ser miembro de, como máximo, uno de los subtipos VEHÍCULO TURISMO CAMIÓN d [EN2002] Restricciones sobre la E/G: Disyunción/Solapamiento • Subtipos solapados si una instancia del supertipo puede ser, a la vez, miembro de más de un subtipo • Es la opción «por defecto» PERSONA EMPLEADO ESTUDIANTE o
  • 86. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 86 15/01/2022 • Especialización total (completa) indica que toda instancia del supertipo también debe ser instancia de algún subtipo ANIMAL d Restricciones sobre la E/G: Completitud/Parcialidad MACHO HEMBRA HERMAFRODITA •Especialización parcial indica que es posible que alguna instancia del supertipo no pertenezca a ninguno de los subtipos •Es la opción «por defecto» •La unión de las extensiones de los subtipos no es la extensión del supertipo en su totalidad ALIMENTO d LACTEO FRUTA VERDURA
  • 87. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 87 15/01/2022 • Las restricciones de disyunción y completitud son independientes entre sí • Dan lugar a 4 tipos de especialización: – Disjunta y Total – Disjunta y Parcial – Solapada y Total – Solapada y Parcial • Lo veremos con un ejemplo de una base de datos de una Universidad E/G: Tipos de Especialización
  • 88. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 88 15/01/2022 EMPLEADO claseTrabajo ESTUDIANTE tipo E/G: Especialización Disjunta y Total DOCENTE BECARIO BECARIO NO_BECARIO ADMON_Y_SERV Especialización Disjunta y Parcial DOCENTE TITULAR AYUDANTE CATEDRÁTICO cuerpoDocente d d d
  • 89. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 89 15/01/2022 E/G: Especialización Solapada y Total Especialización Solapada y Parcial EMPLEADO ocupación ESTUDIANTE PERSONA EMPLEADO DOCENTE INVESTIGADOR dedicación O O
  • 90. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 90 15/01/2022 • Deben aplicarse a la Especialización y la Generalización, debido a las restricciones definidas ❑ Insertar una instancia en un supertipo implica insertarla en todos los subtipos definidos por predicado o por atributo, para los cuales satisface el predicado de definición ❑ Insertar una instancia en un supertipo de una especialización total implica insertarla en, al menos, un subtipo Y si la especialización es disjunta, entonces la instancia se insertará en un único subtipo E/G: Reglas de inserción y eliminación
  • 91. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 91 15/01/2022 ❑ Eliminar una instancia de un supertipo implica eliminarla de todos los subtipos a los que pertenece ❑ Eliminar una instancia de un subtipo implica eliminarla del supertipo si la especialización es ... – disjunta y total, o bien – solapada y total, y la instancia ya sólo pertenece al subtipo (se eliminó del resto) En el resto de casos, la instancia sólo se elimina del subtipo – No del supertipo ( lo haría el usuario, si fuese necesario) E/G: Reglas de inserción y eliminación (ii)
  • 92. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 92 15/01/2022 Contenido ▪ Representación del problema ▪ El Modelo de Datos ▪ Diagramas de Entidad Relación ▪ Entidad ▪ Relación ▪ Dominios ▪ Atributos ▪ Tipos de Atributos ▪ Cardinalidad ▪ Cardinalidad de relaciones no binarias ▪ Cardinalidad de relaciones reflexivas ▪ El modelo Entidad Relación ampliado ▪ Generalización y especificación ▪ Entidades Débiles ▪ Relaciones recursivas ▪ Agregación ▪ Clase membresía ▪ Construcción de un diagrama Entidad Relación ▪ El modelo Relacional ▪ Claves y restricciones ▪ Transformación de un diagrama E/R a modelo Relacional ▪ Normalización de Bases de Datos ▪ Álgebra Relacional
  • 93. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 93 15/01/2022 Tipo de Entidad Débil Notación [EN2002] ▪ No tiene atributos clave propios ▪ Una instancia se identifica por su relación con una instancia de otro tipo de entidad ▪ Tipo de relación identificador ▪ Relaciona un tipo de entidad débil y un tipo de entidad regular (fuerte, dominante, padre, propietaria) ▪ Clave parcial (o discriminante) ▪ Atributos de la entidad débil, que identifican de forma única cada instancia, siempre que esté relacionada con una instancia del tipo de entidad regular ▪ Clave = (clave_entidad_regular, clave_parcial) ▪ Notación COPIA
  • 94. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 94 15/01/2022 Entidades débiles ▪ Entidades débiles: Una entidad débil solo puede ser identificada de manera única al considerar la llave primaria de otra entidad (dueña) Dependent’s primary key: {empid, dname, birthdate} EMPLOYEE EMPID NAME DISC SEX rel DEPOF DEPENDENT DNAME BDATE
  • 95. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 95 15/01/2022 Entidades débiles ▪ Ejemplo: un libro tiene uno o más ejemplares, y un ejemplar es de solo un libro. El ejemplar en si no dice mucho semánticamente, solo podría saber algo mas de el sabiendo de que libro es el ejemplar. ▪ Por otro lado, si eliminamos un libro, desaparecen sus ejemplares. tiene Libro Ejemplar (1,N) (1,1) Código Nombre Nr_hojas Editorial Número Estado Posición Ejemplar
  • 96. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 96 15/01/2022 Entidades débiles ▪ Ejemplo: Cada hospital tiene varias salas. Cada una de ellas pertenece a un solo hospital. En distintos hospitales puede haber salas con el mismo código, pero esto no puede ocurrir dentro de un hospital.
  • 97. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 97 15/01/2022 Tipo de entidad débil (ii)[EN2002] PELICULA numcopia titulo 1 N COPIA TIENE PACIENTE VISITA_MEDICA diahora 1 nss N MEDICO ncolegiado nombre N 1 especialidad ACUDE ASISTIDA POR Tipo de Relación Identificador Clave parcial o Discriminante Tipo de Entidad Regular Dependencia en existencia
  • 98. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 98 15/01/2022 Tipo de entidad débil ▪ Dependencia en existencia (entre entidades) ▪ Si desaparece una instancia del tipo de entidad regular deben desaparecer las instancias de la entidad débil que dependen de ella ▪ Etiqueta “E” en el tipo de relación débil ▪ Dependencia en identificación ▪ Además de la dependencia en existencia... ▪ Una instancia del tipo de entidad débil no se puede identificar por sí misma ▪ Su clave es (clave_entidad_regular, clave_parcial) ▪ Etiqueta “ID” en el tipo de relación débil
  • 99. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 99 15/01/2022 Tipo de entidad débil PERMISO_CONDUCCION es débil, pues depende en existencia de EMPLEADO, pero no depende en identificación COPIA es débil, pues depende en existencia de PELICULA, y también depende en identificación numcopia titulo COPIA 1:N TIENE ID PELICULA idcopia numlicencia EMPLEADO PERMISO CONDUCCION POSEE 1:N E dni tipo Tipo de Relación Débil
  • 100. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 100 15/01/2022 Tipo de entidad débil (iii) [EN2002] ▪ No toda participación total (o dependencia en existencia) implica un tipo de entidad débil EMPLEADO numlicencia dni 1 N PERMISO CONDUCCION POSEE tipo PERMISO_CONDUCCIÓN no es débil: depende en existencia de EMPLEADO, pero tiene clave primaria propia
  • 101. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 101 15/01/2022 Representación de entidades débiles ▪ Dibujamos el conjunto de entidades débil con un doble rectángulo. ▪ Se subraya con líneas punteadas el discriminador del conjunto de entidades débil ▪ Discriminador payment-number del conjunto de entidades payment. ▪ Clave primaria para payment – (loan-number, payment-number)
  • 102. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 102 15/01/2022 Representación de entidades débiles ▪ Nota: La clave primaria del conjunto de entidades fuerte no se almacena explícitamente con el conjunto de entidades débil, ya que está implícito en la relación identificadora. ▪ Si loan-number fuera explícitamente almacenada, payment sería una entidad fuerte, pero la relación entre payment y loan estaría duplicada por la relación implícita definida por el atributo loan-number común a payment y loan.
  • 103. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 103 15/01/2022 Más ejemplos de conjuntos de entidades débiles ▪ En una universidad, un curso es una entidad fuerte y oferta-curso puede ser modelado como una entidad débil. ▪ El discriminador de oferta-curso sería semestre (incluyendo el año) y número-sección (si hay mas de una sección). ▪ Si modelamos oferta-curso como entidad fuerte modelaríamos número-curso como un atributo. Luego la relación con curso estaría implícita en el atributo número- curso.
  • 104. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 104 15/01/2022 Contenido ▪ Representación del problema ▪ El Modelo de Datos ▪ Diagramas de Entidad Relación ▪ Entidad ▪ Relación ▪ Dominios ▪ Atributos ▪ Tipos de Atributos ▪ Cardinalidad ▪ Cardinalidad de relaciones no binarias ▪ Cardinalidad de relaciones reflexivas ▪ El modelo Entidad Relación ampliado ▪ Generalización y especificación ▪ Entidades Débiles ▪ Relaciones recursivas ▪ Agregación ▪ Clase membresía ▪ Construcción de un diagrama Entidad Relación ▪ El modelo Relacional ▪ Claves y restricciones ▪ Transformación de un diagrama E/R a modelo Relacional ▪ Normalización de Bases de Datos ▪ Álgebra Relacional
  • 105. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 105 15/01/2022 Autorelaciones ▪ Ejemplo: En una empresa existen funcionarios y se sabe que unos son funcionarios de otros. Un funcionario puede ser jefe de varios funcionarios y un subordinado es controlado por un único jefe.
  • 106. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 106 15/01/2022 Contenido ▪ Representación del problema ▪ El Modelo de Datos ▪ Diagramas de Entidad Relación ▪ Entidad ▪ Relación ▪ Dominios ▪ Atributos ▪ Tipos de Atributos ▪ Cardinalidad ▪ Cardinalidad de relaciones no binarias ▪ Cardinalidad de relaciones reflexivas ▪ El modelo Entidad Relación ampliado ▪ Generalización y especificación ▪ Entidades Débiles ▪ Relaciones recursivas ▪ Agregación ▪ Clase membresía ▪ Construcción de un diagrama Entidad Relación ▪ El modelo Relacional ▪ Claves y restricciones ▪ Transformación de un diagrama E/R a modelo Relacional ▪ Normalización de Bases de Datos ▪ Álgebra Relacional
  • 107. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 107 15/01/2022 Agregaciones ▪ Representa asociaciones entre elementos de relaciones y de otros conjuntos de entidades
  • 108. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 108 15/01/2022 Contenido ▪ Representación del problema ▪ El Modelo de Datos ▪ Diagramas de Entidad Relación ▪ Entidad ▪ Relación ▪ Dominios ▪ Atributos ▪ Tipos de Atributos ▪ Cardinalidad ▪ Cardinalidad de relaciones no binarias ▪ Cardinalidad de relaciones reflexivas ▪ El modelo Entidad Relación ampliado ▪ Generalización y especificación ▪ Entidades Débiles ▪ Relaciones recursivas ▪ Agregación ▪ Clase membresía/participación ▪ Construcción de un diagrama Entidad Relación ▪ El modelo Relacional ▪ Claves y restricciones ▪ Transformación de un diagrama E/R a modelo Relacional ▪ Normalización de Bases de Datos ▪ Álgebra Relacional
  • 109. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 109 15/01/2022 Razón de Participación Notación [EN2002] ▪ Especifica si toda la extensión de un tipo de entidad participa en un tipo de relación, o sólo parte de la extensión ▪ Indica si hay dependencia en existencia de un tipo de entidad respecto de un tipo de relación ▪ Clases de participación: ▪ Participación total (dependencia en existencia) ▪ Participación parcial
  • 110. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 110 15/01/2022 Razón de Participación ▪ Participación: Determina la dependencia de uns instancia de una entidad con respecto a las instancias de la otra entidad. ▪ Total: Ej. Un empleado debe trabajar en un departamento (doble línea en el diagrama ER) ▪ Parcial: Ej. Un empleado puede ser administrador (línea sencilla en el diagrama ER)
  • 111. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 111 15/01/2022 Razón de Participación (ii)[EN2002] ▪ Notación ▪ Líneas dobles o simples EMPLEADO LOCAL_VIDEOCLUB encargado sucursal 1 trabajador lugar trabajo 1 TRABAJA_EN SUPERVISA N 1 DIRECTOR PELICULA HA_ RODADO 1 N PELICULA personaje film M ACTUA_EN N ACTOR
  • 112. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 112 15/01/2022 Razón de Participación (iii)[EN2002] ▪ Participación total: Todo empleado trabaja en un local (sucursal) del vídeo-club. ▪ Toda instancia de EMPLEADO DEBE estar relacionada con alguna instancia de LOCAL ▪ NO tiene sentido que EXISTA un empleado que NO trabaje en algún local, es decir que NO participe en una relación de tipo TRABAJA_EN ▪ Participación parcial: NO todo empleado es encargado de un local del vídeo-club, sino sólo algunos de ellos ▪ NO NECESARIAMENTE TODAS las instancias EMPLEADO están relacionadas con instancias de LOCAL, sino las de un subconjunto del conjunto total de empleados
  • 113. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 113 15/01/2022 Razón de Participación ▪ Participación total ▪ Se representa con doble línea del lado de la entidad en la que todas sus instancias deben estar asociadas con alguna instancia de la otra entidad. ▪ 1 país exporta CERO o MAS productos ▪ 1 producto es exportado por UNO o MAS países EXPORT COUNTRY PRODUCT N M ID NAME PNUM PDESCRPTION QTY
  • 114. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 114 15/01/2022 Contenido ▪ Representación del problema ▪ El Modelo de Datos ▪ Diagramas de Entidad Relación ▪ Entidad ▪ Relación ▪ Dominios ▪ Atributos ▪ Tipos de Atributos ▪ Cardinalidad ▪ Cardinalidad de relaciones no binarias ▪ Cardinalidad de relaciones reflexivas ▪ El modelo Entidad Relación ampliado ▪ Generalización y especificación ▪ Entidades Débiles ▪ Relaciones recursivas ▪ Agregación ▪ Clase membresía ▪ Construcción de un diagrama Entidad Relación ▪ El modelo Relacional ▪ Claves y restricciones ▪ Transformación de un diagrama E/R a modelo Relacional ▪ Normalización de Bases de Datos ▪ Álgebra Relacional
  • 115. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 115 15/01/2022 Construcción de un diagrama Entidad Relación 1. Se parte de una descripción textual del problema o sistema de información a automatizar (los requisitos). 2. Se hace una lista de los sustantivos y verbos que aparecen. 3. Los sustantivos son posibles entidades o atributos. 4. Los verbos son posibles relaciones. 5. Analizando las frases se determina la cardinalidad de las relaciones y otros detalles. 6. Se elabora el diagrama (o diagramas) entidad-relación. 7. Se completa el modelo con listas de atributos y una descripción de otras restricciones que no se pueden reflejar en el diagrama.
  • 116. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 116 15/01/2022 Ejercicio ▪ Se tiene una empresa que desarrolla varios proyectos, a los que son asignados varios empleados, pero cada empleado solo esta vinculado a un proyecto, en un momento dado. ▪ Cada proyecto consume diferentes recursos en cantidades determinadas: los empleados están a cargo de un supervisor, que es un empleado también. ▪ Los empleados pueden tener personas beneficiarias (hijos, esposas, padres, etc.).
  • 117. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 117 15/01/2022 Ejercicio
  • 118. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 118 15/01/2022 Analizar el diagrama COMPANY Tomado de Elmasri R, Navathe S Fundamentals of Database Systems
  • 119. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 119 15/01/2022 Interpretación de ER company ▪ Empleado ▪ Trabaja exactamente en un dept. ▪ Puede o no administrar un solo departamento. ▪ Trabaja en al menos 1 proyecto y máximo en n proyectos ▪ Puede o no tener dependientes pero máximo n dependientes ▪ Puede o no ser supervisor y si supervisa, supervisa a máximo n empleados ▪ Puede o no ser supervisado por un solo supervisor. ▪ Departamento ▪ Tiene al menos 1 empleado (max N) ▪ Tiene exactamente un administrador ▪ Puede o no controlar proyectos (max N) ▪ Proyecto ▪ Controlado por exactamente 1 departamento ▪ Tiene al menos 1 empleado asignado (max N) ▪ Dependiente ▪ Depende de exactamente un empleado
  • 120. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 120 15/01/2022 Contenido ▪ Representación del problema ▪ El Modelo de Datos ▪ Diagramas de Entidad Relación ▪ Entidad ▪ Relación ▪ Dominios ▪ Atributos ▪ Tipos de Atributos ▪ Cardinalidad ▪ Cardinalidad de relaciones no binarias ▪ Cardinalidad de relaciones reflexivas ▪ El modelo Entidad Relación ampliado ▪ Generalización y especificación ▪ Entidades Débiles ▪ Relaciones recursivas ▪ Agregación ▪ Clase membresía ▪ Construcción de un diagrama Entidad Relación ▪ El modelo Relacional ▪ Claves y restricciones ▪ Transformación de un diagrama E/R a modelo Relacional ▪ Normalización de Bases de Datos ▪ Álgebra Relacional
  • 121. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 121 15/01/2022 ▪ Introducido por Codd, 1970 ▪ Es un Modelo de Datos Lógico - de Representación - (basado en registros) ▪ El modelo más usado en las aplicaciones comerciales de procesamiento de datos convencional ▪ Dividido en 3 partes: 1. Estructura de Datos 2. Integridad de Datos (características generales) 3. Manipulación de Datos Presentación y orígenes del MR
  • 122. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 122 15/01/2022 Base de Datos = Conjunto de Relaciones • Relación – Estructura de datos fundamental del modelo – Tiene un nombre y representa una entidad genérica – Conjunto de tuplas • Cada tupla representa una entidad concreta – Compuesta de atributos con nombre (y dominio) • Cada atributo representa un atributo de la entidad – Representada mediante una tabla con filas y columnas • Modelo basado en Teoría matemática – Analogía entre “Relación” (concepto matemático) y “Tabla” – Teoría de Conjuntos y Lógica de Predicados de 1er orden » Sólida Base Formal Estructura de datos relacional
  • 123. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 123 15/01/2022 Estructura de datos relacional título director género rodaje nacionalidad duración Amores Perros A. González Drama 2000 México 145 The Matrix A. Wachowsky Ciencia-ficción 1999 EEUU 138 Torrente S. Segura Comedia 1997 España 110 Nos miran N. López Policiaco 2001 España 118 Amelie J. P. Jeunet Comedia 2001 Francia 122 Los lunes al sol F. León Drama 2002 España 117 tuplas cardinalidad grado atributos La relación PELICULA --- --- --- --- Ciencia-ficción, Drama,Thriller, Comedia... --- --- --- --- 2002, 1997, 1999, 2001, 1994, 1972... Italia,Argentina, España, EEUU, Francia,Japón.. --- --- --- --- dominios Títulos Nombres Géneros Años Países Tiempo
  • 124. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 124 15/01/2022 Términos básicos Modelo Relacional Procesamiento de Ficheros Formal SQL-92 Relación Tabla Fichero Tupla Si la tupla t está en la relación R, entonces tR Fila Registro concreto Atributo Debe tener un nombre único dentro de cada relación cabecera de Columna Nombre de Campo de registro Cardinalidad nº de tuplas en una relación = Grado nº atributos en una relación = Dominio colección de valores permitidos para ciertos atributos =
  • 125. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 125 15/01/2022 • Conjunto de valores atómicos del mismo tipo, donde toman su valor los atributos – La definición de dominios forma parte de la definición de la BD – Cada atributo definido sobre un ÚNICO dominio OBLIGATORIO – Si A, B representan un mismo concepto, A y B con mismo dominio – Dominio D puede contener valores no tomados por ningún atributo {valores de A}  Dominio(A) • Comparaciones Restringidas a Dominio – La comparación de dos atributos sólo tiene sentido si ambos toman valores del mismo dominio – Si el SGBD soporta dominios, podrá detectar este tipo de errores Definiciones formales: DOMINIO
  • 126. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 126 15/01/2022 Una relación R, sobre conjunto de dominios D1, D2 ... Dn se compone de dos partes: • Esquema o Cabecera Conjunto de pares Atributo:Dominio { (A1:D1), (A2:D2) ... (An:Dn) } – Cada Aj tiene asociado sólo un Dj – Los Di no tienen por qué ser distintos entre sí • Estado, Cuerpo o Instancia – Conjunto de tuplas que contiene en un instante concreto – tupla = conjunto de pares Atributo:Valor { { (A1:vi1), (A2:vi2) ... (An:vin) } }, donde i=1..m Definiciones formales: RELACIÓN (1)
  • 127. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 127 15/01/2022 Un esquema de relación: PELICULA (titulo:Titulos, duracion:Tiempo, director:Nombres, estreno:Fechas) Un estado de la relación: { { (titulo:Torrente), (duracion:110), (director:S.Segura), (estreno:1997) } { (titulo:The Matrix), (duracion:138), (director:A.Wachowski), (estreno:1999) } ... } • El estado de una relación es variable en el tiempo – nuevas tuplas, modificación o borrado de existentes • El esquema no suele variar  costoso: · reescritura de “miles” de tuplas · ¿valores de nuevos atributos para tuplas ya existentes? – Suele incluir un conjunto de Reglas de Integridad (se verá) Definiciones formales: RELACIÓN (2)
  • 128. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 128 15/01/2022 • Propiedades de una Relación 1. No existen tuplas repetidas 2. Las tuplas no están ordenadas 3. Los atributos no están ordenados esquema = conjunto de pares Atributo:Dominio 4. Los valores de atributos son Atómicos dominio = conjunto de valores atómicos ▪ Intersección fila/columna = un solo valor (no lista de valores) ▪ Si R cumple esta propiedad, R está en 1FN estado = conjunto matemático de tuplas Definiciones formales: RELACIÓN (3)
  • 129. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 129 15/01/2022 • FORMAS NORMALES R está en <determinada> FN si cumple <cierto> conjunto de condiciones o restricciones necesarias para estar bien diseñada de acuerdo con el modelo relacional de datos. • Toda relación ha de estar en 1FN (estructura de datos simple) Definiciones formales: RELACIÓN (4)
  • 130. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 130 15/01/2022 • Relación vs. Tabla – Relación: Representación abstracta de un elemento de datos – Tabla: Representación concreta de tal elemento abstracto – Ventajas ▪ Representación muy sencilla (tabla) del elemento abstracto básico (relación) del Modelo Relacional ▪ Fácil de utilizar, entender, razonar... – Inconveniente ▪ Aparente orden entre filas y entre columnas de la tabla Definiciones formales: RELACIÓN (5)
  • 131. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 131 15/01/2022 • Percibida por usuarios como una colección de relaciones – de diversos grados (nº de atributos) – que varían con el tiempo (nº de tuplas, estado) • Las relaciones (tablas) son la estructura lógica de la BD – Niveles externo y conceptual ANSI/X3/SPARC • Toda BDR cumple el Principio de Información: Todo contenido de información de la BD está representado de una y sólo una forma: como valores explícitos dentro de posiciones de columnas dentro de filas dentro de tablas • Conexión lógica entre Relaciones (vínculo o interrelación) – Representada mediante valores – No existen punteros (visibles al usuario) Definiciones formales: BD RELACIONAL (1)
  • 132. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 132 15/01/2022 • En una BDR distinguimos... – Esquema de base de datos ▪ Descripción de la base de datos ▪ Conjunto de esquemas de relación PELICULA ( titulo:Títulos, director:Nombres, género:Géneros, rodaje:Años, nacionalidad:Países, duración:Tiempo ) ACTOR ( nombre:Nombres, nombreArtistico: Nombres, agente:Nombres, cache:Dinero ) DIRECTOR ( nombre:Nombres, nacionalidad:Países, operaPrima:Títulos ) ... – Estado o instancia de base de datos ▪ Visión del contenido de la base de datos en cierto instante ▪ Conjunto de estados de relación Definiciones formales: BD RELACIONAL (2)
  • 133. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 133 15/01/2022 Contenido ▪ Representación del problema ▪ El Modelo de Datos ▪ Diagramas de Entidad Relación ▪ Entidad ▪ Relación ▪ Dominios ▪ Atributos ▪ Tipos de Atributos ▪ Cardinalidad ▪ Cardinalidad de relaciones no binarias ▪ Cardinalidad de relaciones reflexivas ▪ El modelo Entidad Relación ampliado ▪ Generalización y especificación ▪ Entidades Débiles ▪ Relaciones recursivas ▪ Agregación ▪ Clase membresía ▪ Construcción de un diagrama Entidad Relación ▪ El modelo Relacional ▪ Claves y restricciones ▪ Transformación de un diagrama E/R a modelo Relacional ▪ Normalización de Bases de Datos ▪ Álgebra Relacional
  • 134. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 134 15/01/2022 Claves Candidatas y Primarias Claves Ajenas (o foráneas o externas) • Informan al SGBD de restricciones del mundo real • Así, el SGBD evita configuraciones de datos imposibles • Aumentan la capacidad expresiva del modelo relacional • Cumplen que: • Forman parte de la base de datos • Se cumplen para cualquier estado de la BD • No varían con el tiempo • Son específicas de cada BD particular, pero el Modelo Relacional incluye... características generales de integridad importantes y necesarias en toda BD Reglas de integridad
  • 135. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 135 15/01/2022 Sea R una relación R(A1:D1 , A2:D2 ,... An:Dn ) • Una superclave de R es un subconjunto SK de atributos tal que cumple la restricción de Unicidad: No existen dos tuplas distintas con la misma combinación de valores para SK • Una clave de R es una superclave tal que cumple la restricción de Irreductibilidad: Ningún subconjunto de CK cumple la r. Unicidad • Clave Simple (1 atributo) o Compuesta (varios atributos) • Cada clave es una restricción de integridad Superclave y Clave de una relación
  • 136. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 136 15/01/2022 • Claves como restricción de integridad CLIENTE (codCliente, nombre, ciudad, telefono,...) ¿Qué implicaciones tiene establecer como clave... a) CK = {codCliente, ciudad} b) CK = {codCliente} …? • Varias claves en una relación «Relación para registrar las visitas de pacientes a sus médicos de familia. Un mismo paciente puede visitar a su médico varias veces en un mismo día» VISITAMEDICA (nssPaciente, historial, fecha, hora, numVisita, medico, observ) Claves (VISITAMEDICA)={ {nssPaciente, numVisita}, {nssPaciente, fecha, hora}, {historial, numVisita}, {historial, fecha, hora} } Superclave y Clave: Ejemplos
  • 137. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 137 15/01/2022 • Si R tiene varias claves  Claves Candidatas Claves (ACTOR) = { {nombre}, {nombreArtistico} } Claves (EMPLEADO) = { {dni}, {nombre, fechaNac}, {nss} } • La Clave Primaria (Primary Key, PK ) es la clave candidata elegida para identificar las tuplas de R Clave Primaria (ACTOR) = {nombreArtistico} Clave Primaria (EMPLEADO) = {nss} • Las Claves Alternativas (Alternative Keys, AK) son el resto de claves candidatas Claves Alternativas (ACTOR) = {nombre} Claves Alternativas (EMPLEADO) = { {dni}, {nombre, fechaNac} } Clave Candidata, Primaria y Alternativa
  • 138. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 138 15/01/2022 • Conjunto de atributos FK de una relación R2, tal que: 1. Existe otra relación R1 con clave primaria PK , y 2. Cada valor de FK en R2 es idéntico al de PK en alguna tupla de R1 Conjunto de atributos de una relación que hace referencia a la clave primaria de otra relación (o la misma) • PELICULA (título, género, duración, director, ...) DIRECTOR (nombre, nacionalidad, ...) • EMPLEADO (codEmp, nombre, jefe, nss, ...) • LIBRO (título, isbn, autor, editorial, edición, año, ...) ESCRITOR (dni, nombre, ...) ARTICULO (título, tema, autor, revista, página, ...) Clave Ajena (Externa o Foránea)
  • 139. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 139 15/01/2022 • Cada componente de una FK debe estar definido sobre el mismo dominio que el correspondiente atributo de la PK a la que referencia PACIENTE (nss, nombre, dirección, ...) HISTORIAL (nss, especialidad, fechaApert, ...) VISITA (nss, especialidad, numVisita, fecha, ...) • Clave Ajena Simple o Compuesta • El uso de Claves Ajenas facilita... – Eliminación de la Redundancia: Integridad entre ficheros – Mecanismo del Modelo Relacional de datos para establecer VÍNCULOS ENTRE RELACIONES Clave Ajena (Externa o Foránea) (2)
  • 140. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 140 15/01/2022 CLIENTE CUENTA Clave Ajena (Externa o Foránea) (3) nombre dirección ciudad cuenta García, A Gran Vía, 6 Murcia 200 López, B Ronda Norte, 3 Murcia 821 Azorín, C Paseo Nuevo, 9 Valencia 505 Pérez, C Plaza Mayor, 2 Valencia 505 ... número saldo ... 200 35000 505 40000 821 50000 ... Cada cliente sólo puede tener una cuenta a su nombre. Una cuenta puede tener más de un cliente como titular. Vínculo Cliente- Cuenta
  • 141. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 141 15/01/2022 • Restricción de Integridad Referencial Todo valor de una FK debe coincidir con un valor en la correspondiente PK – La BD no debe contener claves ajenas sin correspondencia: Si una tupla en una relación hace referencia a otra relación, debe referirse a una tupla existente en esa relación •  Puede existir algún valor de PK al que NO haga referencia ningún valor de la FK – ESCRITOR que no haya escrito artículos: ninguna tupla de ARTICULO hará referencia a la tupla correspondiente a dicho escritor Clave Ajena (Externa o Foránea) (4) ESCRITOR ARTICULO FK
  • 142. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 142 15/01/2022 • Diagrama Referencial – Expresión de la existencia de Claves Ajenas • Camino Referencial Clave Ajena (Externa o Foránea) (y 5) ESCRITOR dni nombre ... editorial LIBRO título isbn autor editorial ... ARTICULO título tema autor revista pág ... EDITORIAL nombre dirección ... • Ciclo Referencial – Camino que empieza y acaba en la misma relación – Caso especial: Autorreferencia EMPLEADO codEmp ... jefe EMPL codEmp ... dep DEPTO codDep ... dire
  • 143. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 143 15/01/2022 • Las operaciones que no satisfacen –violan– la Integridad Referencial, dejan la BD en un estado incorrecto Ejemplo de un Hotel: – ¿Qué pasaría si se eliminara la tupla (501, D, ...) en HABITACIÓN? – ¿Y si se eliminara la tupla (100, D, ...)? – ¿Y si se anotara la ocupación de la habitación 900? Mantenimiento de la Integridad Referencial OCUPACIÓN codClie habit ... CLI04 100 CLI02 420 CLI05 115 CLI10 100 HABITACIÓN numHabit tipo ... 115 I 420 I 100 D 304 D 405 I 501 D
  • 144. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 144 15/01/2022 • ¿Cómo evita el SGBD esos estados incorrectos? El SGBD puede... ❑ Rechazar toda operación que pueda provocar un estado ilegal, o ❑ Aceptar (y ejecutar) tales operaciones, pero realizar acciones que restauren la integridad de los datos  Diseñador de la BD puede especificar al SGBD Acciones de Mantenimiento de la Integridad Referencial para que la BD SIEMPRE alcance un estado final legal Mantenimiento de la Integridad Referencial (2)
  • 145. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 145 15/01/2022 R2 ⎯→ R1 Operación: Eliminar una tupla t de R1 que es referenciada por otras de R2 Ejemplo: Eliminar la tupla (100, D, ...) de HABITACIÓN Acciones posibles: 1. Rechazar la operación (acción por defecto) Sólo permite borrar t si ninguna otra tupla hace referencia a t 2. Cascada. Propagar la eliminación 1º Borrar todas las tuplas de R2 que referencian a t 2º Eliminar t 3. Establecer nulos – (* se verá después *) Mantenimiento de la Integridad Referencial (3)
  • 146. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 146 15/01/2022 R2 ⎯→ R1 Operación: Modificar el valor de una FK a un valor no existente en la PK de R1 Ejemplo: Modificar (CLI02, 420,...) a (CLI02, 900,...) en OCUPACIÓN Acción: 1. Rechazar la operación (SIEMPRE)  Intento de violación de la restricción de Integridad Referencial Mantenimiento de la Integridad Referencial (4)
  • 147. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 147 15/01/2022 Operación: Modificar el valor de la PK de una tupla t de R1 que es referenciada por otras tuplas de R2 Ejemplo: Modificar la tupla (100, D,...) a (130, D,...) en HABITACIÓN Acciones posibles: 1. Rechazar la operación (acción por defecto) Sólo permite modificar la PK de t si ninguna tupla referencia a t 2. Cascada. Propagar la modificación - Toda tupla de R2 que referencia a t seguirá haciendolo: modificar su valor de FK al nuevo valor de la PK de t - Modificar el valor de la clave primaria de t 3. Establecer nulos – (* se verá después *) Mantenimiento de la Integridad Referencial (5)
  • 148. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 148 15/01/2022 R2 ⎯→ R1 Operación: Inserción de una tupla t en R2 cuyo valor de FK no se corresponde con ningún valor de la PK en ninguna tupla de R1 Ejemplo: Insertar una tupla (CLI03, 555, ...) en OCUPACIÓN Acciones posibles: - Rechazar la operación (SIEMPRE)  Intento de violación de la restricción de Integridad Referencial Mantenimiento de la Integridad Referencial (6)
  • 149. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 149 15/01/2022 • Encadenamiento de eliminaciones (análogo para Modificación) R2 → R1, Acción de Eliminación en Cascada R3 → R2, Acción de Eliminación X - Eliminar una tupla de R1  eliminar tuplas de R2 que la referencian - Pero existen tuplas en R3 que referencian esas tuplas de R2... ¿cómo afecta la Acción de Eliminación X en esta operación? ▪ Si X = en CASCADA, no-problemo!  eliminar esas tuplas de R3 ▪ Si X = RECHAZAR  La operación completa fallará • Las operaciones de actualización en una BD son siempre atómicas: se realiza “TODO o NADA” PROFESOR → ÁREA → DEPARTAMENTO ASIGNATURA → TITULACIÓN → UNIVERSIDAD Mantenimiento de la Integridad Referencial (y 7) R3 → R2 → R1
  • 150. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 150 15/01/2022 • En el mundo real existe... – información perdida fechaNacimiento desconocida – ausencia de información ¿tiene teléfono? – valores no aplicables a ciertos atributos fechJubilac a empleado activo • Para representar estas situaciones en los sistemas de BD se utiliza el NULO (null) – Si una tupla tiene un atributo que contiene un nulo, significa que el valor real de tal atributo es desconocido – Es posible especificar si un atributo puede o no contener nulo  nulo no es un valor en sí mismo, sino un indicador de ausencia de información  No hay dos nulos iguales (num_telefono NULL  edad NULL) Nulos
  • 151. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 151 15/01/2022 • Nulo y Claves Primarias Restricción de Integridad de Entidad: Ningún atributo componente de una clave primaria puede contener nulo EMPLEADO (codEmp, nss, nombre, telefono, depto, jefe...) ¿Qué pasaría si codEmp pudiera contener NULO? • Nulo y Claves Ajenas El Modelo Relacional permite nulo como valor de clave ajena depto = null  empleados no asignados a ningún departamento jefe = null  empleados sin jefe Implicaciones de los nulos en la integridad
  • 152. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 152 15/01/2022 • Hemos de extender la definición de clave ajena Sea R2 una relación. FK es una clave ajena en R2 si es un subconjunto de sus atributos tal que: 1. Existe otra relación R1 con clave primaria PK y 2. En todo momento, cada valor de FK en R2 a) es NULO, o b) es idéntico a un valor de PK en alguna tupla de R1 • Restricción de Integridad Referencial La Base de Datos no debe contener valores no nulos de clave ajena sin correspondencia Implicaciones de los nulos en la integridad (2)
  • 153. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 153 15/01/2022 • Hay que extender algunas acciones de mantenimiento de la Integridad Referencial: R2 ⎯→ R1 Operación: Eliminar una tupla t de R1 que es referenciada por otras de R2 Acciones posibles: 1. Rechazar la operación (acción por defecto) 2. Cascada. Propagar la eliminación 3. Establecer nulos  Sólo si la FK de R2 permite NULO - Toda tupla de R2 que referencia a t pasa a contener NULL en FK - Eliminar la tupla t Implicaciones de los nulos en la integridad (3)
  • 154. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 154 15/01/2022 R2 ⎯→ R1 Operación: Modificar el valor de la PK de una tupla t de R1 que es referenciada por otras tuplas de R2 Acciones posibles: 1. Rechazar la operación (acción por defecto) 2. Cascada. Propagar la modificación 3. Establecer nulos  Sólo si la FK de R2 permite NULO - Toda tupla de R2 que referencia a t pasa a contener NULL en FK - Modificar el valor de la PK de t Implicaciones de los nulos en la integridad (y 4)
  • 155. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 155 15/01/2022 • Comprobar las claves candidatas (primaria y alternativas): No existen dos tuplas distintas con igual valor para una clave  Definición de BD : indicar los Atributos Componentes de las Claves Candidatas • Comprobar la restricción de Integridad de entidad Ningún atributo componente de una clave primaria contiene nulo  Definición de BD : indicar los Atributos Componentes de la Clave Primaria • Comprobar la restricción de Integridad Referencial... El valor de la clave ajena en cualquier tupla, o es nulo, o coincide con un valor de clave primaria de alguna tupla en la relación referenciada  Definición de BD : indicar los Atributos Componentes de las Claves Ajenas • ... y mantenerla frente operaciones que puedan violar la integridad  Definición de BD : indicar Acciones de Mantenimiento de la Integridad Referencial Resumiendo, el SGBD se encarga de...
  • 156. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 156 15/01/2022 Dominio Definición del Dominio CODPEL enteros(3) CODGUI enteros(3) CODDIR enteros(3) CODDIS enteros(2) CODACT enteros(4) CODAGE enteros(2) SEXOS { M, F } TEXTO cadena caracteres variable (500) PORCENT enteros (2) DINERO enteros(9) NIF cadena caracteres fija (12) TITULOS cadena caracteres variable (120) GENEROS {comedia,drama,terror,suspense,accion,romantica,gore,pulp,roadmovie} PAISES {españa,francia,gran_bretaña,eeuu,australia,alemania,la_india,argentina} AÑOS AÑO FECHAS FECHA NOMBRES cadena caracteres variable (35) APELLIDOS cadena caracteres variable (80) DOMICILIOS cadena caracteres variable (50) TELEFONOS cadena caracteres variable (15) TIPO_PAPEL {protagonista, secundario, reparto, figuracion}
  • 157. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 157 15/01/2022 Esquema “PRODUCTORA” PELICULA (codP:CODPEL, titulo:TITULOS, año:AÑO, genero:GENEROS, guion:CODGUI, director:CODDIR, directorFotog:CODDIR, distrib:CODDIS, nacio:PAISES, estreno:FECHA, numOscar:enteros(2), taquilla:DINERO) DIRECTOR (codDir:CODDIR, nombre:NOMBRES, apellidos:APELLIDOS, nacio:PAISES, fechaNacim:FECHA, operaPrima:CODPEL) DIREC_FOTOG (codDF:CODDIR, nombre:NOMBRES, apellidos:APELLIDOS, nacionalidad:PAISES, fechaNacim:FECHA, ultTrabajo:CODPEL) GUION (codG:CODGUI, titulo: TITULOS, resumen: TEXTO, nomAutorPpal:NOMBRES, fechaFin:FECHA, fechaEntrega:FECHA) DISTRIBUIDORA (codDis:CODDIS, nombre:NOMBRES, cif:NIF, direccion:DOMICILIO, telefono:TELEFONOS, porcentaje:PORCENT) ACTOR (codA:CODACT, nombre:NOMBRES, nomReal:NOMBRES, nacionalidad:PAISES, fechaNacim:FECHA, sexo:SEXOS, agencia:CODAGE, cache:DINERO) AGENCIA (codAg:CODAGE, nombre:NOMBRES, direccion:DOMICILIO, telefono:TELEFONOS) ACTUA_EN (actor:CODACT, film:CODPEL, papel:TIPO_PAPEL, paga:DINERO)
  • 158. Bases de Datos Ph.D. Franklin Parrales Carrera de Software 158 15/01/2022 Contenido ▪ Representación del problema ▪ El Modelo de Datos ▪ Diagramas de Entidad Relación ▪ Entidad ▪ Relación ▪ Dominios ▪ Atributos ▪ Tipos de Atributos ▪ Cardinalidad ▪ Cardinalidad de relaciones no binarias ▪ Cardinalidad de relaciones reflexivas ▪ El modelo Entidad Relación ampliado ▪ Generalización y especificación ▪ Entidades Débiles ▪ Relaciones recursivas ▪ Agregación ▪ Clase membresía ▪ Construcción de un diagrama Entidad Relación ▪ El modelo Relacional ▪ Claves y restricciones ▪ Transformación de un diagrama E/R a modelo Relacional ▪ Normalización de Bases de Datos ▪ Álgebra Relacional
  • 159. Bases de Datos Carrera de Software 159 15/01/2022 Ph.D. Franklin Parrales Diseño Relacional ◼ El diseño de una BD Relacional puede abordarse de dos formas distintas: ◼ Obteniendo el esquema relacional directamente: Objetos y reglas captadas del análisis del mundo real, representadas por un conjunto de esquemas de relación, sus atributos y restricciones de integridad. ◼ Realizando el diseño del esquema "conceptual" de la BD (modelo E/R) y transformándolo a esquema relacional.
  • 160. Bases de Datos Carrera de Software Ph.D. Franklin Parrales 160 15/01/2022 Reglas de traducción MERE  MR ❑ Reglas para el modelo básico • Dominios • Atributos • Tipos de entidad • Tipos de relación ❑ Reglas para las extensiones del modelo • Relaciones exclusivas • Jerarquías de Especialización/Generalización RESUMEN MER MR (SQL-92) Tipo de Entidad Tabla (relación) Tipo de Relación M:N Tabla Tipo de Relación 1:1, 1:N, N:1 Propagación de clave o tabla
  • 161. Bases de Datos Carrera de Software Ph.D. Franklin Parrales 161 15/01/2022 Dominio Tipo de entidad  Se traduce a una tabla (relación)  Se recomienda usar el mismo nombre o uno similar Traducción de un dominio y un tipo de entidad PERSONA CREATE TABLE Persona ( ... ) ; MERE MR MERE ESTADO_CIVIL: {S, C, V, D} MR CREATE DOMAIN Estado_civil AS CHAR(1) CHECK VALUE IN (‘S’, ‘C’, ‘V’, ‘D’) ;
  • 162. Bases de Datos Carrera de Software Ph.D. Franklin Parrales 162 15/01/2022 Atributo simple y monovaluado  Columna Atributo identificador  Id. principal  Clave primaria (PRIMARY KEY)  Id. alternativo  Clave alternativa (UNIQUE) ▪ Podrá contener NULL si no se indica lo contrario Traducción de un atributo PERSONA direccion telefono dni numSS fechaNacim nombre nacionalidad altura CREATE TABLE Persona ( dni PRIMARY KEY, numSS UNIQUE NULL, nombre ..., direccion ..., telefono ..., fechaNacim ..., nacionalidad ..., altura ... ) ; MERE MR
  • 163. Bases de Datos Carrera de Software Ph.D. Franklin Parrales 163 15/01/2022  Atributo compuesto.- Dos alternativas: a) «Eliminar» atributo compuesto y considerar todos sus componentes como columnas simples de la tabla resultante b) «Eliminar» los componentes y considerar el atributo compuesto como una sola columna de la tabla Traducción de un atributo (2) ¿Cuándo será más adecuado utilizar una opción u otra? MERE MR (DED)
  • 164. Bases de Datos Carrera de Software Ph.D. Franklin Parrales 164 15/01/2022 DIRECC_ PERSONA • Atributo multivalorado – Nueva tabla S, en la que el atributo multivalorado se representa como una columna simple A – S contendrá una nueva columna F, clave ajena a la clave primaria de la tabla correspondiente a la entidad – La clave primaria de S es la combinación (F, A) PERSONA (dni, nombre, fechaNac) DIRECC_PERSONA (dni, direccion) FK Traducción de un atributo (3) PERSONA MR (DED) tiene PERSONA fechaNac dni direccion (1,n) nombre MERE MR CREATE TABLE Direcc_Persona ( dni ... direccion ... PRIMARY KEY (dni, direccion) FOREIGN KEY (dni) REFERENCES Persona(dni) ON DELETE CASCADE ON UPDATE CASCADE );
  • 165. Bases de Datos Carrera de Software Ph.D. Franklin Parrales 165 15/01/2022 • Atributo derivado – Es necesario decidir si se almacena o no 1.Si se almacena, será una columna de la tabla que corresponda y deberá crearse un disparador que calcule su valor y lo mantenga actualizado 2.Si no se almacena, deberá crearse un procedimiento que calcule su valor cada vez que se solicita PERSONA (dni, nombre, fechaNac, edad) Traducción de un atributo (y 4) MERE MR PERSONA fechaNac dni edad nombre
  • 166. Bases de Datos Carrera de Software Ph.D. Franklin Parrales 166 15/01/2022  Nueva tabla R, que incluye... – claves ajenas hacia las claves primarias de R1 y de R2 ▪ Su combinación (concatenación) forma la clave primaria de R – columnas correspondientes a los atributos de la relación V (simples o componentes simples de atributos compuestos) ACTOR(nombre, ..., caché, ...) ACTUA_EN (actor, pelicula, papel, paga) PELICULA(código, título, ...) FK FK E1 E2 V R1 R2 R Traducción de una relación binaria M:N ACTOR PELICULA paga (1,m) (1,n) título caché nombre código papel Actua en [MPM 1999]
  • 167. Bases de Datos Carrera de Software Ph.D. Franklin Parrales 167 15/01/2022 AUTOR(codAutor, nomAutor, ...) ESCRIBE (autor, libro, derAutor, numPag) LIBRO(isbn, titulo, ...) FK FK Traducción de una relación binaria M:N (3) AUTOR LIBRO numPaginas (1,4) (1,n) titulo nomAutor codAutor isbn derechosAutor Escribe – Pero la traducción, aunque lo parezca, no está completa... – ... pues falta especificar ciertos aspectos que tienen que ver con las reglas de integridad
  • 168. Bases de Datos Carrera de Software Ph.D. Franklin Parrales 168 15/01/2022 – Especificación de acciones de mantenimiento de la integridad referencial (NO ACTION, CASCADE, SET NULL, SET DEFAULT) CREATE TABLE Escribe ( autor Autores, libro Codigos, derAutor NUMERIC(2) DEFAULT 20 NOT NULL CHECK (derAutor≥0 AND derAutor<100), numPag NUMERIC(2) NOT NULL CHECK (numPag≥0), PRIMARY KEY (autor, libro), FOREIGN KEY (autor) REFERENCES AUTOR(codAutor) ON DELETE NO ACTION ON UPDATE CASCADE, FOREIGN KEY (libro) REFERENCES LIBRO(isbn) ON DELETE CASCADE ON UPDATE CASCADE ); Traducción de una relación binaria M:N (4)
  • 169. Bases de Datos Carrera de Software Ph.D. Franklin Parrales 169 15/01/2022 a) Datos coherentes: evitar que ESCRIBE contenga un libro con autor desconocido (fila con autor NULL) o un autor de un libro inexistente (fila con libro NULL) Traducción de una relación binaria M:N (5) Especificación de restricciones autor libro derAutor numPag NULL 0-201-65370-2 ... ... A001 NULL ... ... – Ambas cosas ya quedan aseguradas por la propia definición de la clave primaria de ESCRIBE: PRIMARY KEY(autor, libro)
  • 170. Bases de Datos Carrera de Software Ph.D. Franklin Parrales 170 15/01/2022 b) Cardinalidad mínima 1: todo libro tiene al menos un autor c) Cardinalidad máxima 4: evitar que un libro haya sido escrito por más de 4 autores – CREATE ASSERTION autores_de_libro CHECK ( (NOT EXISTS (SELECT * FROM LIBRO WHERE isbn NOT IN (SELECT libro FROM ESCRIBE))) AND (4 >= (SELECT MAX(COUNT(*)) FROM ESCRIBE GROUP BY libro)) ); Traducción de una relación binaria M:N (6) Especificación de restricciones
  • 171. Bases de Datos Carrera de Software Ph.D. Franklin Parrales 171 15/01/2022 d) Cardinalidad mínima 1: todo autor ha escrito al menos un libro – Evitar que en AUTOR exista una fila tal que NO haya ninguna tupla en ESCRIBE que le haga referencia (autor sin libros). – Es necesario crear una RI General o Aserto: CREATE ASSERTION libros_de_autor CHECK ( NOT EXISTS (SELECT * FROM AUTOR WHERE codAutor NOT IN (SELECT autor FROM ESCRIBE)) ); Traducción de una relación binaria M:N (y 7) Especificación de restricciones
  • 172. Bases de Datos Carrera de Software Ph.D. Franklin Parrales 172 15/01/2022 1) Caso general  Propagación de clave – En R2 se incluyen nuevas columnas... ▪ clave externa hacia la clave primaria de R1 ▪ columnas para los atributos de la relación V (simples o componentes simples de atributos compuestos) 1.1) Participación total de E2 en V CIUDAD( nomCiudad, provincia, ... ) PROVINCIA( codProv, nomProv, ... ) FK: NULOS NO PERMITIDOS E1 E2 V R1 R2 1 N PROVINCIA CIUDAD (1,1) (1,n) nomProv codProv nombreCiudad contiene Traducción de una relación binaria 1:N ...
  • 173. Bases de Datos Carrera de Software Ph.D. Franklin Parrales 173 15/01/2022 1.2) Participación parcial de E2 en V CUADRO(codCuadro, titulo, pintor, museo, sala...) PINACOTECA(nomMuseo, ciudad, ...) FK NULOS PERMITIDOS PINACOTECA CUADRO (0,1) (1,n) nomMuseo codCuadro Expone titulo pintor ciudad sala Traducción de una relación binaria 1:N (2)
  • 174. Bases de Datos Carrera de Software Ph.D. Franklin Parrales 174 15/01/2022 2) Se cumple uno o varios de estos supuestos: ❑ La relación V tiene varios atributos propios ❑ Hay pocas ocurrencias de la relación V ❑ Es probable que en el futuro V se transforme en una M:N  Añadir una nueva tabla R, que incluye... – claves ajenas hacia las claves primarias de R1 y de R2 ▪ una será clave primaria de R: la propagada desde la entidad cuyas instancias participan como mucho una vez en la relación V • columnas para los atributos de V (simples o componentes simples de atributos compuestos) ESTUDIANTE COCHE (0,1) (0,n) nif matricula Propietario_de modelo nombre 1 : N Traducción de una relación binaria 1:N (3) ESTUDIANTE( nif, nombre, ... ) PROPIEDAD( coche, estudiante) COCHE( matricula, modelo, ... ) FK FK NN
  • 175. Bases de Datos Carrera de Software Ph.D. Franklin Parrales 175 15/01/2022 1) Participación total de ambas entidades – Si las entidades no participan en otras relaciones...  una única tabla R, que incluye... – columnas para todos los atributos de ambas entidades – claves de R: ▪ Clave primaria = clave primaria de R1 o de R2 (es indiferente) ▪ La otra ( si es distinta) será alternativa (UNIQUE) y además NOT NULL – columnas para atributos de la relación V (simples o componentes simples de atributos compuestos) PACIENTE ( nss, nombre, numHisto, fechaApert, centroSalud,... ) AK, NN PK Traducción de una relación binaria 1:1 nombre centroSalud (1,1) (1,1) fechaApertura nss numHistoria ... MEDICO HISTORIAL PACIENTE ... Tiene
  • 176. Bases de Datos Carrera de Software Ph.D. Franklin Parrales 176 15/01/2022 2) Participación total de una entidad y parcial de la otra 2.1) Caso general  Propagación de clave – La clave de la entidad con participación parcial «se propaga» hacia la entidad con participación total → clave ajena – Los atributos de la relación V «siguen» a la clave propagada Un empleado puede no dirigir ningún departamento, o bien ser el gerente de uno de ellos (desde cierta fecha, en la que fue nombrado como tal) E1 E2 V R1 R2 EMPLEADO(codEmp, nomEmp, ...) DEPARTAMENTO(numDep,nomDep, codDir, fechInicDir...) FK AK, NN Traducción de una relación binaria 1:1 (2) (1,1) (0,1) DEPARTAMENTO EMPLEADO codEmp nomEmp nomDep numDep Dirige fechaInic NN
  • 177. Bases de Datos Carrera de Software Ph.D. Franklin Parrales 177 15/01/2022 2.2) Hay pocas instancias del tipo de relación  Añadir una nueva tabla R que incluye... – claves ajenas hacia las claves primarias de R1 y de R2 ▪ una será clave primaria de R (la de participación total, si existe) ▪ la otra será clave alternativa en R (UNIQUE) y además NOT NULL – columnas para los atributos de V (simples o componentes simples de atributos compuestos) EMPLEADO(codEmp, nomEmp, ...) DIRIGE (emp, dep, fechInic) DEPARTAMENTO(numDep, nomDep,...) FK FK AK,NN Traducción de una relación binaria 1:1 (3)
  • 178. Bases de Datos Carrera de Software Ph.D. Franklin Parrales 178 15/01/2022 2.3) Hay muchas instancias del tipo de relación  Una única relación R que incluye... – todos los atributos de las entidades y de la relación – la clave primaria es la de la entidad con participación parcial – debe permitirse NULL en los atributos procedentes de la entidad con participación total y de la relación CREATE TABLE Empleado( codEmp ... PRIMARY KEY, nomEmp ... , ..., numDepDir ... NULL UNIQUE, nomDepDir ... NULL, ..., fechInicDir ... NULL, ... ); Traducción de una relación binaria 1:1 (4) NULL permite representar empleados que no dirigen ningún departamento UNIQUE asegura que un departamento sólo es dirigido por un empleado Los atributos monovalorados aseguran que un empleado pueda dirigir como mucho un departamento Atributos de EMPLEADO Atributos de DEPARTAMENTO Atributos de DIRIGE
  • 179. Bases de Datos Carrera de Software Ph.D. Franklin Parrales 179 15/01/2022 3) Participación parcial de ambas entidades  Añadir una nueva tabla R • La tabla R se construye exactamente igual que en el caso (2.2) • Evita los NULL que aparecerían si se propagara la clave de R1 a R2 o viceversa (caso general (2.1)) (0,1) (0,1) MUJER HOMBRE nif nif Matrimonio a la antigua fecha lugar HOMBRE(nif, ...) MATRIMONIO(esposa, esposo, fecha, lugar) MUJER(nif, ...) FK FK AK, NN Y... ¿qué acciones de mantenimiento de la integridad referencial debemos imponer para (todos los casos de) transformación de relaciones 1:1? Traducción de una relación binaria 1:1 (y 5) NN NN
  • 180. Bases de Datos Carrera de Software Ph.D. Franklin Parrales 180 15/01/2022  Caso particular de relación 1:1 o 1:N con propagación de clave y participación total de E2 Si V es 1:1  caso 2.1 ; Si V es 1:N  caso 1.1 – La clave ajena FK en R2 hacia R1 no permite NULL – La clave primaria de R2 depende del tipo de dependencia: • en Existencia – clave primaria propia de R2 (identificador principal de E2) • en Identificación – combinación de atributos: FK y clave de R2 • Las actualizaciones y borrados en la tabla R1 deben transmitirse en cascada hacia R2 (CASCADE) E1 E2 V R1 R2 Traducción de dependencia en existencia y en identificación
  • 181. Bases de Datos Carrera de Software Ph.D. Franklin Parrales 181 15/01/2022 EMPLEADO ( nifEmp, nomEmp, ...) FAMILIAR ( nifFam, emp, ... ) FK NOT NULL ON DELETE CASCADE ON UPDATE CASCADE 1:N FAMILIAR EMPLEADO (1,1) (0,n) nifFam nifEmp nomEmp Tiene Traducción de dependencia en existencia y en identificación (y 2) PACIENTE ( historial, nombre, ... ) VISITA_MEDICA ( historial, fecha, hora, ... ) FK NOT NULL ON DELETE CASCADE ON UPDATE CASCADE VISITA MEDICA PACIENTE 1:N (1,1) (1,n) fecha historial nombre observ Acude hora
  • 182. Bases de Datos Carrera de Software Ph.D. Franklin Parrales 182 15/01/2022 EMPLEADO Es jefe de subordinado jefe nifEmp nomEmp  tabla que contiene dos claves externas hacia la clave primaria de la tabla correspondiente a la entidad – Nombradas según los roles de la entidad en la relación EMPLEADO ( nifEmp, nomEmp, ...) JEFE_EMP ( jefe, subordinado, ... ) Otra posibilidad en el Caso 1:N NN FK FK EMPLEADO ( nifEmp, nomEmp, ... ) JEFE_EMP ( jefe, subordinado, ... ) Caso M:N FK FK Traducción de una relación binaria reflexiva EMPLEADO ( nifEmp, nomEmp, ..., jefe, ... ) NULL FK Caso 1:N solución problemática si puede haber muchos empleados sin jefe ( demasiados nulos )