Upload
elias-lopez-j
View
38
Download
0
Embed Size (px)
Citation preview
Rodolfo Arana Gonzales 1
1
Bibliografía: Introducción a los sistemas de bases de datos Date C. J. Addison Wesley, 6ta. Edición,1999 Fundamentos de bases de datos Henry F. y Abraham Silverschatz Sistemas de Bases de Datos. Diseño, Implementación y Admón Peter Rob y Carlos Coronel
Rodolfo Arana Gonzales
Modelos de datos
Alto nivel o Conceptuales
De implementación o Lógicos
Bajo nivel o Físicos
2
El Modelo Entidad-Relación o Entidad-Vínculo cae
dentro de la clasificación de Modelos de Datos de
Alto Nivel o Conceptuales.
Rodolfo Arana Gonzales
Proceso del diseño de Bases de Datos
3
Minimundo
Recolección de análisis
de requerimientos
Diseño Conceptual
Diseño Lógico
Diseño Físico
Modelo Entidad-Relación
Modelo Orientado a Objetos
Modelo Relacional Independiente
Del SGBD
Específico para
Cada SGBD
Rodolfo Arana Gonzales
Conceptos del Modelo ER
Entidad. Objeto del mundo real, distinguible de otros objetos.
Algunos autores utilizan el nombre “Ejemplar de Entidad”
Tipos de entidades. Conjunto de entidades que comparten las
mismas propiedades o atributos. También se les puede referir
como “Clases de Entidades”
Atributos. Propiedades específicas que describen a una
entidad
Dominio. Conjunto de valores posibles para un atributo. Por
ejemplo: el dominio para el atributo calificación son todos los
enteros positivos de 0 a 100
4 Rodolfo Arana Gonzales
Conceptos del Modelo ER
5
EMPLEADO
ci
fechaN
nombre salario
Tipo de entidades
Tipo de atributos
Representación de los Tipos de Entidades y Tipos de Atributos
Rodolfo Arana Gonzales
Tipos y Ejemplares de Entidades
6
EMPLEADO
ci
fechaN
nombre salario
vigilante
goma-800510
10/5/1980
Adrían Gómez 10,000
Tipo de Entidades o Clase de
Entidades: Se refiere a un concepto,
prototipo o modelo
Ejemplar de Entidad:
Se refiere a un objeto real
(instancia)
Los términos: Tipos de Entidades, tipos
de atributos y tipos de relaciones son
útiles para fines del modelado
Un error común es confundir ambos términos
Rodolfo Arana Gonzales
Rodolfo Arana Gonzales 2
Atributos Simples y Compuestos
Compuestos. Se pueden dividir en componentes más pequeños.
Simples o Atómicos. Son aquellos que no son divisibles.
7
EMPLEADO fechaN
ci
nombre salario
nPila
paterno materno
Técnicamente podría
objetarse que “paterno”
sea un atributo atómico,
por dividirse a su vez en
caracteres.
Conceptualmente, sin
embargo, el apellido
paterno de una persona
ya no puede dividirse en
componentes más
pequeños.
Rodolfo Arana Gonzales
Atributos Monovaluados y Multivaluados
Monovaluados. Tienen un solo valor para una
entidad en particular.
Multivaluados. Pueden tener más de un valor, incluso
se pueden manejar límites inferior y superior.
8
EMPLEADO
ci
fechaN
nombre salario
nPila
paterno materno
telefono
En ciertas circunstancias
podría ser importante
almacenar más de un
número telefónico (casa,
oficina, etc.)
Rodolfo Arana Gonzales
Atributos Almacenados y Derivados
Almacenados. Aquellos que se guardan en la BD.
Derivados. Los que se pueden obtener a partir de los almacenados.
9
EMPLEADO
ci
fechaN
nombre salario
nPila
paterno materno
telefono
edad
El atributo “edad” se puede
calcular (derivar)
dinámicamente a partir del
atributo “fechaN”
Rodolfo Arana Gonzales
Atributos Clave
Una restricción importante de las entidades de un tipo es la restricción de clave o restricción de unicidad.
Un atributo clave identifica de manera única a cada entidad individual.
10
EMPLEADO
ci
fechaN
nombre salario
nPila
paterno materno
telefono
edad
Un atributo
clave aparece
subrayado
En este caso
el ci
Rodolfo Arana Gonzales
Tipos de Relaciones (o Vínculos)
Un tipo de Relaciones (o tipo de vínculos) es una
asociación entre dos o más tipos de entidades. Se
representa mediante un rombo que conecta a los tipos
de entidades.
11
EMPLEADO DEPARTAMENTO PERTENECE_A
Se dice que los tipos de entidades EMPLEADO y DEPARTAMENTO
participan en el tipo de relaciones (o vínculos) “PERTENECE_A”
Rodolfo Arana Gonzales
Nombres de Papeles
Cada tipo de entidades que participa en un tipo de
relaciones desempeña un papel (o rol) específico en
la relación o vínculo.
12
EMPLEADO DEPARTAMENTO PERTENECE_A
En la relación “PERTENECE_A” el tipo de entidades “EMPLEADO”
desempeña el papel de empleado o trabajador.
Con excepción de las relaciones recursivas, normalmente no es
necesario indicar los nombres de los papeles, ya que el nombre del
tipo de entidades se utiliza generalmente como el nombre del
papel.
Rodolfo Arana Gonzales
Rodolfo Arana Gonzales 3
Relaciones Recursivas
También llamadas unarias son aquellas en los que el mismo tipo de entidades participa más de una vez en un tipo de relaciones (o tipo de vínculos) con diferentes papeles (roles).
13
La relación SUPERVISION
asocia un empleado con un
supervisor y pertenecen ambos
al mismo tipo de entidades
EMPLEADO
supervisor supervisado
EMPLEADO
SUPERVISION
Rodolfo Arana Gonzales
Grado de un tipo de relaciones
Es el número de tipos de entidades que participan en un tipo de
relaciones (o tipo de vínculos)
Los tipos de relaciones de grado uno se llaman unarias
Los tipos de relaciones de grado dos se llaman binarias
Los tipos de relaciones de grado tres se llaman ternarias
14
EMPLEADO DEPARTAMENTO PERTENECE_A
PROVEEDOR PROYECTO SUMINISTRA
COMPONENTE
Relación binaria
Relación ternaria
supervisor supervisado
EMPLEADO
SUPERVISION
Relación unaria o recursiva
Rodolfo Arana Gonzales
Restricciones estructurales 1. Razón de Cardinalidad. Especifica el número de ejemplares
de relaciones en los que puede participar una entidad
Las relaciones de cardinalidad más comunes son
1:1, 1:N, M:N (uno a uno, uno a muchos, muchos a muchos)
15
EMPLEADO DEPARTAMENTO PERTENECE_A 1 N
EMPLEADO DEPARTAMENTO DIRIGE 1 1
ALUMNO MATERIA CURSA M N
Rodolfo Arana Gonzales
Restricciones estructurales
2. Restricción de Participación. Especifica si la existencia
de una entidad depende de que esté relacionada con otra
entidad a través del tipo de relaciones
Hay dos tipos de restricciones de participación: parcial y
total (llamadas también: opcional y obligatoria)
16
La participación total recibe a veces el nombre de
dependencia de existencia. Se indica con una línea
doble que conecta el tipo de entidades con la relación
o vínculo
EMPLEADO DEPARTAMENTO DIRIGE 1 1
Rodolfo Arana Gonzales
Restricciones estructurales
Ejemplo de diagrama de relación 1:1
17
EMPLEADO DIRIGE DEPARTAMENTO
e1
e2
e3
e4
e5
e6
e7
e8
d1
d2
d3
Nótese como no cualquier
empleado dirige a un
departamento. La
participación de
EMPLEADO en la relación
es por lo tanto parcial. En
cambio todo departamento
es dirigido por un
empleado. La participación
de DEPARTAMENTO en la
relación es total
Rodolfo Arana Gonzales
Restricciones estructurales
Ejemplo de diagrama de relación N:1
18
Nótese como cada
empleado pertenece a un
solo departamento y que a
un departamento
permanecen N empleados.
En ambos casos la
participación de las
entidades es total
EMPLEADO PERTENECE DEPARTAMENTO
e1 e2 e3 e4 e5 e6 e7 e8
d1 d2
d3
Rodolfo Arana Gonzales
Rodolfo Arana Gonzales 4
Restricciones estructurales
Ejemplo de diagrama de relación 1:N
19
Nótese como un proyecto
es controlado por un
departamento y un
departamento puede
controlar más de un
proyecto. Sin embargo no
todos los departamentos
controlan proyectos. La
participación de
DEPARTAMENTO en la
relación es parcial.
DEPARTAMENTO CONTROLA PROYECTO
d1
d2
d3
d4
d5
d6
d7
d8
p1
p2
p3
p4
p5
p6
p7
p8
Rodolfo Arana Gonzales
Restricciones estructurales
Ejemplo de diagrama de relación M:N
20
Nótese como todos los
alumnos toman al menos
una materia y una materia
es cursada al menos por
un alumno. La
participación de ambas
entidades en la relación es
total
a1
a2
a3
a4
m1
m2
m3
m4
m5
ALUMNO TOMA MATERIA
Estos diagramas nos pueden
auxiliar a determinar las
restricciones estructurales de
un tipo de relaciones
Rodolfo Arana Gonzales
Atributos de los tipos de relaciones
Los tipos de relaciones también pueden tener atributos
21
Por ejemplo: se puede incluir el atributo “FechaIni” en el
tipo de relaciones DIRIGE, para indicar la fecha en que un
gerente comenzó a dirigir un departamento
EMPLEADO DEPARTAMENTO DIRIGE 1 1
FechaIni
Rodolfo Arana Gonzales
Atributos de los tipos de relaciones
Los atributos de los tipos de relaciones 1:1 se pueden trasladar a
cualquiera de los tipos de entidades participantes.
22
En el caso de los tipos de relaciones 1:N un atributo solo se puede trasladar al tipo de entidades que está del lado N de la relación.
EMPLEADO DEPARTAMENTO DIRIGE 1 1
FechaIni FechaIni
EMPLEADO DEPARTAMENTO PERTENECE_A N 1
FechaIni FechaIni En una relación
N:M los atributos de
la relación no se
pueden trasladar
Rodolfo Arana Gonzales
Tipos de entidades débiles
No tienen atributos clave propios. Se identifican por su
relación con otras entidades. A ese otro tipo de entidad se le
conoce como propietario identificador
Al tipo de relaciones que asocia un tipo de entidades débiles
se le conoce como relación identificadora (o vínculo
identificador)
Los tipos de entidades débiles siempre tienen una
restricción de participación total, aunque no toda
existencia de dependencia resulta en un tipo de entidades
débiles
23 Rodolfo Arana Gonzales
Tipos de entidades débiles
24
Tanto el tipo de entidades débiles como su relación
identificadora se representan con líneas dobles
EMPLEADO DEPENDIENTE DEPENDIENTE_DE 1 N
ci
nombre
salario
nombre sexo
fechaN
Las entidades débiles siempre tienen
una restricción de participación total
con la relación identificadora
Propietario identificador
Relación
identificadora
Clave Parcial o atributo
discriminador
Rodolfo Arana Gonzales
Rodolfo Arana Gonzales 5
Tipos de Claves
Superclave. Es un conjunto de uno o más atributos que tomados
colectivamente, permiten identificar de manera única a una
entidad.
Clave Candidata. Una superclave mínima, tal que no contenga
otras superclaves.
Clave Primaria. Clave candidata que es elegida para identificar
una entidad, buscando que los atributos que la conforman nunca
cambien.
Clave Foránea. Se dice de la clave primaria de la cual dependen
otras entidades (como las entidades débiles).
Clave Parcial. En el caso de una entidad débil, es un atributo que
se utiliza como discriminador y que junto con la clave foránea
forma la clave principal.
25 Rodolfo Arana Gonzales
Superclaves
26
VEHICULO
matricula
num_eco
serie_motor marca modelo
chofer
Técnicamente, el
conjunto de todos los
atributos forman una
superclave, porque le
dan unicidad a la
entidad Pero igual cumplen los
siguientes subconjuntos:
num_eco, matricula;
maticula, serie_motor;
serie_motor, marca;
Etc,etc.
Rodolfo Arana Gonzales
Claves Candidatas
27
VEHICULO
matricula
num_eco
serie_motor marca modelo
chofer
En la entidad VEHICULO se pueden encontrar dos
superclaves mínimas (no se pueden dividir en otras
superclaves):
matricula y serie_motor
Como ambas describen unívocamente a la entidad se les
denomina claves candidatas
Rodolfo Arana Gonzales
De las claves candidatas:
matricula y serie_motor
Se elige a la que será la clave principal.
Como es más probable que el atributo “matricula”
cambie con el tiempo (como en un robo de placas), se
elige el atributo serie_motor como clave primaria
puesto que el número de serie del motor por lo general
no cambia
Claves Primarias (o principales)
28
VEHICULO
matricula
num_eco
serie_motor marca modelo
chofer
Rodolfo Arana Gonzales
Claves Foráneas
29
VEHICULO
matricula
num_eco
serie_motor marca modelo
chofer
El atributo “chofer” se puede considerar como clave foránea,
si en lugar de escribir nombres de personas como valores, se
indican códigos que hacen referencia al nombre del chofer en
otra entidad.
De esta manera se evita la redundancia, pues en vez de
escribir el mismo nombre varias veces (en el hipotético caso de
que tuviese resguardado más de un vehículo) solo se repetiría
el código del mismo
Rodolfo Arana Gonzales
Claves Parciales
30
El atributo “nombre” de la entidad
DEPENDIENTE no describe de manera
unívoca a la entidad puesto que puede
repetirse (puede haber 2 personas con el
mismo nombre). En este caso “nombre”
hace el papel de clave parcial o atributo
discriminador.
La clave principal de DEPENDIENTE
estará formada por su atributo “nombre”
(clave parcial) y el atributo “nss” de su
entidad propietaria (clave foránea).
EMPLEADO nss
DEPENDIENTE
nombre
sexo fechaN
parentesco
DEPENDIENTE_DE
1
N
Rodolfo Arana Gonzales
Rodolfo Arana Gonzales 6
Manejo de Relaciones ternarias
31
Algunas herramientas que se emplean en el diseño de BD
solo permiten Relaciones Binarias, por lo que es difícil
implementar algunas relaciones ternarias, como el siguiente
ejemplo:
PROVEEDOR PROYECTO SUMINISTRAR
num_prov num_proy
COMPONENTE
cantidad
num_comp
Rodolfo Arana Gonzales
Manejo de Relaciones ternarias
Ejemplo de diagrama de una
relación Ternaria
32
s1
s2
PROVEEDOR SUMINISTRAR
c1
c2
c3
COMPONENTE
PROYECTO
p1
p2
p3
Nótese como por cada
ejemplar de relación
“SUMINISTRAR” existen 3
participaciones
Ejemplo:
El proveedor s1 suministra los
componentes c1 y c2 al
proyecto p1 y el componente
c1 al proyecto p2
Rodolfo Arana Gonzales
Manejo de Relaciones ternarias
33
En estos casos las Relaciones Ternarias se pueden
representar como Tipos de Entidades Débiles, sin clave
parcial y con 3 Relaciones Identificadoras.
PROVEEDOR PROYECTO VS
num_prov num_proy
COMPONENTE
cantidad
num_comp
SUMINISTRO
SC
SCP
Rodolfo Arana Gonzales
Resumen de la notación ER
34
Tipo de atributos (monovaluados)
Tipo de atributos (multivaluados)
Tipo de entidades débiles
Tipo relación identificadora
Tipo de atributos derivados
Tipo relación
Participación parcial Participación total
Tipo de entidades
Rodolfo Arana Gonzales
Un primer ejemplo
35
Diagrama ER para la
base de datos
COMPAÑÍA
EMPLEADO Nss
nombre
nPila paterno materno
sexo
direc
sueldo
fechaN
SUPERVISIÓN
supervisor
superv
isado
DEPARTAMENTO
número
nombre
lugares
PROYECTO
número
nombre lugar
num_empleados
DEPENDIENTE
nombre
sexo fechaN
parentesco
PERTENECE_A
DIRIGE
CONTROLA
TRABAJA_EN
DEPENDIENTE_DE N
M
1
N 1
1 1
N
1
N
1
N
fechaIni
horas
Rodolfo Arana Gonzales 36
Base de datos COMPAÑÍA La compañía está organizada en departamentos. Cada departamento tiene un
nombre único, un número único y un cierto empleado que lo dirige, y nos interesa la fecha en que dicho empleado comenzó a dirigir el departamento. Un departamento puede estar distribuido en varios lugares.
Cada departamento controla un cierto número de proyectos, cada uno de los cuales tiene un nombre y un número únicos, y se efectúa en un solo lugar.
Almacenaremos el nombre, número de seguro social, dirección, salario, sexo y fecha de nacimiento de cada empleado. Todo empleado está asignado a un departamento, pero puede trabajar en varios proyectos, que no necesariamente estarán controlados por el mismo departamento. Nos interesa el número de horas por semana que un empleado trabaja en cada proyecto, y también quién es el supervisor de cada empleado.
Queremos mantenernos al tanto de los dependientes de cada empleado con el fin de administrar los términos de sus seguros. Almacenaremos el nombre, sexo y fecha de nacimiento de cada dependiente, y su parentesco con el empleado.
Rodolfo Arana Gonzales
Rodolfo Arana Gonzales 7
Base de datos COMPAÑÍA
Una compañía está organizada en departamentos. Cada departamento tiene un nombre único, un número único y un cierto empleado que lo dirige, y nos interesa la fecha en que dicho empleado comenzó a dirigir el departamento. Un departamento puede estar distribuido en varios lugares.
Cada departamento controla un cierto número de proyectos, cada uno de los cuales tiene un nombre y un número únicos, y se efectúa en un solo lugar.
Almacenaremos el nombre, número de seguro social, dirección, salario, sexo y fecha de nacimiento de cada empleado. Todo empleado está asignado a un departamento, pero puede trabajar en varios proyectos, que no necesariamente estarán controlados por el mismo departamento. Nos interesa el número de horas por semana que un empleado trabaja en cada proyecto, y también quién es el supervisor de cada empleado.
Queremos mantenernos al tanto de los dependientes de cada empleado con el fin de administrar los términos de sus seguros. Almacenaremos el nombre, sexo y fecha de nacimiento de cada dependiente, y su parentesco con el empleado.
37
Azul - Entidades
Rojo - Relaciones
Verde - Atributos
Rodolfo Arana Gonzales
Paso 1. Identificar Entidades
38
EMPLEADO Nss
nombre
nPila paterno materno
sexo
direc
sueldo
fechaN
PROYECTO
número
nombre lugar
DEPARTAMENTO
número
nombre
lugares
num_empleados
DEPENDIENTE
nombre
sexo fechaN
parentesco
Se identifican cada una de las
entidades participantes, así
como sus respectivos
atributos
Rodolfo Arana Gonzales
Paso 2. Resolver relaciones
39
EMPLEADO Nss
nombre
nPila paterno materno
sexo
direc
sueldo
fechaN
SUPERVISIÓN
PROYECTO
número
nombre lugar
DEPARTAMENTO
número
nombre
lugares
num_empleados
DEPENDIENTE
nombre
sexo fechaN
parentesco
SUPERVISIÓN es una
relación recursiva, puesto
que el tipo de entidades
EMPLEADO participa con
dos papeles (o roles)
Rodolfo Arana Gonzales
Paso 2. Resolver relaciones
40
EMPLEADO Nss
nombre
nPila paterno materno
sexo
direc
sueldo
fechaN
SUPERVISIÓN
supervisor
su
pe
rvisa
do
DEPARTAMENTO
número
nombre
lugares
PROYECTO
número
nombre lugar
num_empleados
DEPENDIENTE
nombre
sexo fechaN
parentesco
PERTENECE_A
Rodolfo Arana Gonzales
Paso 2. Resolver relaciones
41
EMPLEADO Nss
nombre
nPila paterno materno
sexo
direc
sueldo
fechaN
SUPERVISIÓN
supervisor
su
pe
rvisa
do
DEPARTAMENTO
número
nombre
lugares
PROYECTO
número
nombre lugar
num_empleados
DEPENDIENTE
nombre
sexo fechaN
parentesco
PERTENECE_A
DIRIGE
Nótese como un tipo
de entidades puede
participar en más de
una relación
Rodolfo Arana Gonzales
Paso 2. Resolver relaciones
42
EMPLEADO Nss
nombre
nPila paterno materno
sexo
direc
sueldo
fechaN
SUPERVISIÓN
supervisor
su
pe
rvisa
do
DEPARTAMENTO
número
nombre
lugares
PROYECTO
número
nombre lugar
num_empleados
DEPENDIENTE
nombre
sexo fechaN
parentesco
PERTENECE_A
DIRIGE
CONTROLA
Rodolfo Arana Gonzales
Rodolfo Arana Gonzales 8
Paso 2. Resolver relaciones
43
EMPLEADO Nss
nombre
nPila paterno materno
sexo
direc
sueldo
fechaN
SUPERVISIÓN
supervisor
su
pe
rvisa
do
DEPARTAMENTO
número
nombre
lugares
PROYECTO
número
nombre lugar
num_empleados
DEPENDIENTE
nombre
sexo fechaN
parentesco
PERTENECE_A
DIRIGE
CONTROLA
TRABAJA_EN
Rodolfo Arana Gonzales
Paso 2. Resolver relaciones
44
EMPLEADO Nss
nombre
nPila paterno materno
sexo
direc
sueldo
fechaN
SUPERVISIÓN
supervisor
su
pe
rvisa
do
DEPARTAMENTO
número
nombre
lugares
PROYECTO
número
nombre lugar
num_empleados
DEPENDIENTE
nombre
sexo fechaN
parentesco
PERTENECE_A
DIRIGE
CONTROLA
TRABAJA_EN
DEPENDIENTE_DE
Rodolfo Arana Gonzales
Paso 3. Determinar cardinalidades
45
EMPLEADO Nss
nombre
nPila paterno materno
sexo
direc
sueldo
fechaN
SUPERVISIÓN
supervisor
su
pe
rvisa
do
DEPARTAMENTO
número
nombre
lugares
PROYECTO
número
nombre lugar
num_empleados
DEPENDIENTE
nombre
sexo fechaN
parentesco
PERTENECE_A
DIRIGE
CONTROLA
TRABAJA_EN
DEPENDIENTE_DE N
M
1
N 1
1 1
N
1
N
1
N
Rodolfo Arana Gonzales
Paso 4. Identificar participaciones
46
EMPLEADO Nss
nombre
nPila paterno materno
sexo
direc
sueldo
fechaN
SUPERVISIÓN
supervisor
su
pe
rvisa
do
DEPARTAMENTO
número
nombre
lugares
PROYECTO
número
nombre lugar
num_empleados
DEPENDIENTE
nombre
sexo fechaN
parentesco
PERTENECE_A
DIRIGE
CONTROLA
TRABAJA_EN
DEPENDIENTE_DE N
M
1
N 1
1 1
N
1
N
1
N
Una participación total
indica que todo ejemplar
de entidad participa al
menos una vez en la
relación
Rodolfo Arana Gonzales
Paso 5. Identificar Entidades débiles
47
EMPLEADO Nss
nombre
nPila paterno materno
sexo
direc
sueldo
fechaN
SUPERVISIÓN
supervisor
su
pe
rvisa
do
DEPARTAMENTO
número
nombre
lugares
PROYECTO
número
nombre lugar
num_empleados
DEPENDIENTE
nombre
sexo fechaN
parentesco
PERTENECE_A
DIRIGE
CONTROLA
TRABAJA_EN
DEPENDIENTE_DE N
M
1
N 1
1 1
N
1
N
1
N
El tipo de entidades
DEPENDIENTE no tiene
un atributo clave propio.
Depende del atributo
clave del tipo de
entidades EMPLEADO
Rodolfo Arana Gonzales
Paso 6. Identificar Atributos Clave
48
EMPLEADO Nss
nombre
nPila paterno materno
sexo
direc
sueldo
fechaN
SUPERVISIÓN
supervisor
su
pe
rvisa
do
DEPARTAMENTO
número
nombre
lugares
PROYECTO
número
nombre lugar
num_empleados
DEPENDIENTE
nombre
sexo fechaN
parentesco
PERTENECE_A
DIRIGE
CONTROLA
TRABAJA_EN
DEPENDIENTE_DE N
M
1
N 1
1 1
N
1
N
1
N
Un atributo clave identifica de manera unívoca a un tipo de
entidades.
En DEPENDIENTE
la clave es la
combinación de su
atributo nombre y el
atributo Nss del tipo
de entidades
EMPLEADO
Rodolfo Arana Gonzales
Rodolfo Arana Gonzales 9
Paso 7. Identificar Atributos de Relaciones
49
EMPLEADO nss
nombre
nPila paterno materno
sexo
direc
sueldo
fechaN
SUPERVISIÓN
supervisor
su
pe
rvisa
do
DEPARTAMENTO
número
nombre
lugares
PROYECTO
número
nombre lugar
num_empleados
DEPENDIENTE
nombre
sexo fechaN
parentesco
PERTENECE_A
DIRIGE
CONTROLA
TRABAJA_EN
DEPENDIENTE_DE N
M
1
N 1
1 1
N
1
N
1
N
horas
fechaIni
Es necesario especificar la
fecha en que un
EMPLEADO comienza a
dirigir un
DEPARTAMENTO y las
horas que un EMPLEADO
trabaja en un PROYECTO
Rodolfo Arana Gonzales
El minimundo BIBLIOTECA
Una biblioteca escolar resguarda ejemplares de libros
para prestamos a sus usuarios.
Cada libro puede estar escrito por más de un autor.
Cualquier autor puede haber escrito varios libros.
Si actualmente no hay en existencia ejemplares
requeridos de un libro, un usuario puede hacer una
reservación del título para cuando esté disponible.
Si los ejemplares no se regresan a tiempo aplica una
multa que se impone al usuario.
50 Rodolfo Arana Gonzales
Desarrollando el Diagrama E-R
Paso 1 Identificar Entidades
Paso 2 Resolver Relaciones (vínculos)
Paso 3 Determinar Cardinalidades
Paso 4 Identificar Participaciones
Paso 5 Identificar Entidades débiles
Paso 6 Identificar Atributos CLAVE
51 Rodolfo Arana Gonzales
1. Identificar identidades
Una biblioteca escolar resguarda ejemplares de libros
para prestamos a sus usuarios.
Cada libro puede estar escrito por más de un autor.
Cualquier autor puede haber escrito varios libros.
Si actualmente no hay en existencia ejemplares
requeridos de un libro, un usuario puede hacer una
reservación del título para cuando esté disponible.
Si los ejemplares no se regresan a tiempo aplica una
multa que se impone al usuario.
52 Rodolfo Arana Gonzales
1. Identificar identidades
53
LIBRO
EJEMPLAR AUTOR
USUARIO
MULTA
Rodolfo Arana Gonzales
2. Resolver relaciones (vínculos)
Una biblioteca escolar resguarda ejemplares de libros
para prestamos a sus usuarios.
Cada libro puede estar escrito por más de un autor.
Cualquier autor puede haber escrito varios libros.
Si actualmente no hay en existencia ejemplares
requeridos de un libro, un usuario puede hacer una
reservación del título para cuando esté disponible.
Si los ejemplares no se regresan a tiempo aplica una
multa que se impone al usuario.
54 Rodolfo Arana Gonzales
Rodolfo Arana Gonzales 10
2. Resolver relaciones (vínculos)
55
LIBRO
ESCRIBE
EJEMPLAR
AUTOR
USUARIO PRESTAMO
RESERVA
MULTA
TIENE
SE_APLICA IMPUESTA_A
Hay que considerar que las
relaciones RESERVA Y
PRESTAMO son
independientes, aún
cuando el tipo de entidades
USUARIO participa en
ambas.
Rodolfo Arana Gonzales
3. Determinar Cardinalidades
56
LIBRO
ESCRIBE
EJEMPLAR AUTOR
USUARIO PRESTAMO
RESERVA
MULTA
TIENE
SE_APLICA IMPUESTA_A
N
M N M
M 1
N M
1 1
M M
Posibles valores:
1:1 uno a uno
1:N uno a muchos
N:M muchos a muchos
Rodolfo Arana Gonzales
4. Identificar Participaciones
57
LIBRO
ESCRIBE
EJEMPLAR AUTOR
USUARIO PRESTAMO
RESERVA
MULTA
TIENE
SE_APLICA IMPUESTA_A
N
M N M
M 1
N M
1 1
M M
Una participación total
indica que todo
ejemplar de entidad
participa al menos una
vez en la relación
Rodolfo Arana Gonzales
5. Identificar Entidades débiles
58
LIBRO
ESCRIBE
EJEMPLAR AUTOR
USUARIO PRESTAMO
RESERVA
MULTA
TIENE
SE_APLICA IMPUESTA_A
N
M N M
M 1
N M
1 1
M M
El tipo de entidades
EJEMPLAR no tiene
un atributo clave
propio. Depende del
atributo clave del tipo
de entidades libro
Relación identificadora
Entidad propietaria
Entidad débil
Rodolfo Arana Gonzales
6. Identificar Atributos Clave
59
LIBRO
ESCRIBE
EJEMPLAR AUTOR
USUARIO PRESTAMO
RESERVA
MULTA
TIENE
SE_APLICA IMPUESTA_A
N
M N M
M 1
N M
1 1
M M
id_autor
isbn
id_usuario
num
num_ejem
El atributo clave de
EJEMPLAR se compone
de su atributo
“num_ejem” y el atributo
clave isbn de LIBRO
Rodolfo Arana Gonzales
Notación alternativa
Otra forma de representar las restricciones
estructurales (razón de cardinalidad y restricción de
participación) es mediante la notación (min, max).
Significa que cada ejemplar de entidad debe participar
en por lo menos min ejemplares de relaciones y
cuando más en max ejemplares de relaciones.
min = 0 implica participación parcial.
min >= 1 implica participación total.
60 Rodolfo Arana Gonzales
Rodolfo Arana Gonzales 11
Notación alternativa
61
LIBRO
ESCRIBE
EJEMPLAR AUTOR
USUARIO PRESTAMO
RESERVA TIENE
(1, N)
(1, N)
(1, N)
(1, 1)
(0, 1) (0, N)
min = 0 participación parcial.
min >= 1 participación total.
(0, N)
(0, N)
Con el ejemplo anterior:
La razón de cardinalidad se determina
tomando los máximos de forma invertida.
ejem: (1,N),(1,1) = 1:N
Rodolfo Arana Gonzales
Mapeo del modelo ER al modelo
RELACIONAL
nss nombre direc fechaN sexo sueldo
62
Paso 1. Por cada tipo de entidades fuerte, crear una
tabla con sus atributos simples.
EMPLEADO nss
nombre sexo
direc
sueldo
fechaN
Clave
principal
EMPLEADO
Rodolfo Arana Gonzales
Reducción de un esquema ER a tablas
nss nombre sexo fechaN parentesco
63
Paso 2. Para el caso de las entidades débiles, se
genera una tabla con sus atributos y se le añade
una columna con la clave principal de la entidad
fuerte.
EMPLEADO nss Clave
foránea
DEPENDIENTE
nombre
sexo fechaN
parentesco
DEPENDIENTE_DE
Clave
parcial
DEPENDIENTE
La clave principal estará formada por la
combinación de la clave foránea y la clave parcial
(o discriminador)
1
N
Rodolfo Arana Gonzales
Reducción de un esquema ER a tablas
nss nombre licencia num_econ modelo marca
64
Paso 3. Para una relación de tipo 1:1 con participación total
en ambas entidades, solo es necesario una tabla con los
atributos de las entidades que participan en la relación.
Nombre de la tabla
(de cualquiera de las tablas)
Clave
principal CHOFER
Como clave principal (o
clave primaria) se puede
elegir cualquiera de las
claves de las entidades.
Igual aplica para el nombre
de la tabla.
CHOFER nss
nombre
VEHICULO
num_econ modelo
TIENE_ASIGNADO
1 1 marca
licencia
Rodolfo Arana Gonzales
nss nombre edad num_dep nombre nss
65
Paso 4. Para una relación de tipo 1:1 con participación total
en una sola entidad, son necesarias dos tablas con los
atributos de las entidades que participan en la relación. En
la tabla que corresponde a la entidad con participación total
se le añade una columna con la clave principal de la otra
entidad.
Clave Foránea Clave
principal
EMPLEADO
Cada entidad mantiene
su clave principal.
Además, la clave
principal de la entidad
con participación parcial
será la clave foránea de
la entidad con
participación total
EMPLEADO nss
nombre
DEPARTAMENTO
num_dep nombre
DIRIGE 1 1
edad
DEPARTAMENTO
Clave
principal
Reducción de un esquema ER a tablas
Rodolfo Arana Gonzales
Reducción de un esquema ER a tablas
nss nombre edad registro raza nss
66
Paso 5. Si la relación es 1:1 y la participación es parcial en
ambas entidades, se genera una tabla por cada entidad,
luego se escoge una de las entidades y se le añade la clave
principal de la otra entidad.
PERSONA
En el ejemplo se ha
decidido elegir la entidad
ANIMAL para que tenga
como atributo adicional la
clave principal de la otra
entidad.
PERSONA nss
nombre
ANIMAL
registro raza
POSEE 1 1
edad
ANIMAL
Atributo
adicional
Rodolfo Arana Gonzales
Rodolfo Arana Gonzales 12
Reducción de un esquema ER a tablas
nss nombre edad num_dep num_dep nombre
67
Paso 6. Para una relación 1:N con participación total del
lado de la entidad N, se necesita una tabla por cada
entidad. A la tabla que representa la entidad N se le añade
una columna con la clave principal de la otra entidad.
Clave Foránea Clave
principal
EMPLEADO DEPARTAMENTO
Clave
principal
EMPLEADO nss
nombre
DEPARTAMENTO
num_dep nombre
PERTENECE N 1
edad
Rodolfo Arana Gonzales
Reducción de un esquema ER a tablas
nss nombre edad horas nss numero numero lugar
68
Paso 7. Para una relación 1:N con participación parcial del
lado de la entidad N, se necesitan tres tablas: una para
representar cada entidad y otra para representar la relación.
PERSONA PROYECTO PERSONA_PROYECTO
PERSONA nss
nombre
PROYECTO
numero lugar
TRABAJA_EN N 1
edad horas En una relación N:1 los
atributos de la relación
(si los hubiera) se
pueden trasladar a la
entidad del lado N Nombre de
relación
TRABAJA_EN
Rodolfo Arana Gonzales
Reducción de un esquema ER a tablas
nss nombre edad nss numero horas numero lugar
69
Paso 8. Para una relación N:M se necesitan tres tablas: una
para representar cada entidad y otra para representar la
relación más los atributos propios de la misma.
PERSONA PROYECTO PERSONA_PROYECTO
PERSONA nss
nombre
PROYECTO
numero lugar
TRABAJA_EN N M
edad horas
En una relación N:M los
atributos de la relación
no se pueden trasladar a
las entidades
participantes
Rodolfo Arana Gonzales
Reducción de un esquema ER a tablas
nss nombre direccion nss num_tel
70
Paso 9. Para los atributos multivaluados se generan tablas
separadas, con la clave principal del tipo de entidades o
relaciones al que pertenecen.
EMPLEADO TELEFONO
EMPLEADO
nss
nombre
direccion telefono
Rodolfo Arana Gonzales
Reducción de un esquema ER a tablas
nss sueldo direccion nss nPila paterno materno
71
Paso 10. Para los atributos compuestos hay dos opciones:
o se genera una tabla separada o bien el atributo
compuesto se descompone en los atributos simples que lo
componen. EMPLEADO NOMBRE
EMPLEADO nss
nombre
nPila paterno
materno
sueldo direccion
nss nPila paterno materno sueldo direccion
EMPLEADO
EMPLEADO
nss
nombre
nPila paterno
materno
sueldo direccion
O bien:
Rodolfo Arana Gonzales
Reducción de un esquema ER a tablas
nss nombre supervisor nss nombre conyuge
72
Paso 11. Para las relaciones recursivas se define un atributo
adicional del mismo tipo (dominio) que la clave principal. Si
la relación es de 1:1 o 1:N se añade el atributo a la misma
tabla.
EMPLEADO
EMPLEADO
nss nombre
SUPERVISA N 1
EMPLEADO
nss nombre
CASADO_CON 1 1
EMPLEADO
Los dos atributos (con el mismo dominio) representan diferentes papeles o roles. Rodolfo Arana Gonzales
Rodolfo Arana Gonzales 13
Reducción de un esquema ER a tablas
clave pre_req
73
Paso 11 (cont). Si la relación es N:M se genera aparte otra
tabla con dos atributos: la clave principal del tipo de
entidades más el atributo antes definido.
CURSO PREREQUISITO
clave nombre CURSO
clave nombre
REQUIERE M N
Los dos atributos
(con el mismo
dominio)
representan
diferentes papeles o
roles.
c1
c2
c3
c4
c5 c6
c7
c8
CURSO REQUIERE
Se muestran 5 ejemplares de
relaciones:
c1 requiere de c4, c2 requiere de c7,
c3 requiere también de c7, c4
requiere de c6 y de c8. c5 no tiene
prerequisitos, ni es prerequisito de
ningún curso. c7 y c8 no tienen
prerequisitos, aunque son
prerequisitos de otros cursos Rodolfo Arana Gonzales
Paso 12. Las Relaciones Ternarias se deben representar
primero como Tipos de Entidades Débiles, sin clave parcial y
con 3 Relaciones Identificadoras
PROVEEDOR PROYECTO VS
num_prov num_proy
COMPONENTE
cantidad
num_comp
SUMINISTRO
SC
SCP
PROVEEDOR PROYECTO SUMINISTRAR
num_prov num_proy
COMPONENTE
cantidad
num_comp
Reducción de un esquema ER a tablas
74 Rodolfo Arana Gonzales
Reducción de un esquema ER a tablas
num_prov num_comp num_proy cantidad
75
Paso 12 (cont). En seguida se generan:
• Una tabla por cada una de las entidades fuertes (o propietarias)
con sus atributos simples
• Una tabla por la entidad débil obtenida con sus atributos simples
y los atributos clave de las entidades fuertes.
PROVEEDOR PROYECTO VS
num_prov num_proy
COMPONENTE
cantidad
num_comp
SUMINISTRO
SC
SCP
SUMINISTRO
Rodolfo Arana Gonzales
Ejemplo. Diagrama ER de una base de datos BANCO.
BANCO
codigo nombre direccion
PRESTAMO
CUENTA
SUCURSAL
CLIENTE
CONTROLA
OTORGA
TIENE
RECIBE
TIENE
nss nombre direccion
num_cuenta
saldo
tipo
importe
num_prest tipo
num_suc direccion
1
1
N
N
M N
M
N
1
N
Tomado de:
Sistemas de Bases de Datos
Conceptos Fundamentales
ELMASRI/NAVATHE
Reducción de un esquema ER a tablas
76 Rodolfo Arana Gonzales
Reducción de un esquema ER a tablas
cod_banco nombre direccion
77
BANCO
cod_banco nombre direccion
Según paso 1. Por cada
tipo de entidades fuerte,
crear una tabla con sus
atributos simples.
BANCO
Según paso 2. Para el caso de las
entidades débiles, se genera una
tabla con sus atributos y se le añade
una columna con la clave principal de
la entidad fuerte.
cod_banco num_suc direccion
SUCURSAL
BANCO
cod_banco nombre
direccion
SUCURSAL TIENE
num_suc direccion
1 N
Rodolfo Arana Gonzales
Según paso 6. Para una relación 1:N con participación total del lado de
la entidad N, se necesita una tabla por cada entidad. A la tabla que
representa la entidad N se le añade una columna con la clave principal
de la otra entidad.
cod_banco num_suc direccion
SUCURSAL
PRESTAMO
SUCURSAL
OTORGA
importe
num_prest tipo
num_suc direccion
1
N
num_suc num_prest tipo importe
PRESTAMO
Que ya se
había obtenido
en la lámina
anterior
Reducción de un esquema ER a tablas
78 Rodolfo Arana Gonzales
Rodolfo Arana Gonzales 14
Según paso 6. Para una relación 1:N con participación total del lado de
la entidad N, se necesita una tabla por cada entidad. A la tabla que
representa la entidad N se le añade una columna con la clave principal
de la otra entidad.
cod_banco num_suc direccion
SUCURSAL
num_suc num_cuenta tipo saldo
CUENTA Que ya se había
obtenido
anteriormente
CUENTA
SUCURSAL CONTROLA
num_cuenta
saldo
tipo
num_suc direccion
1
N
Reducción de un esquema ER a tablas
79 Rodolfo Arana Gonzales
Según paso 8. Para una relación N:M se necesitan tres tablas: una para
representar cada entidad y otra para representar la relación más los
atributos propios de la misma.
nss nombre direccion
CLIENTE nss num_prest
CLIENTE-PRESTAMO
PRESTAMO
CLIENTE RECIBE
nss nombre direccion
importe
num_prest tipo
M N
La tabla PRESTAMO
se obtuvo
anteriormente
Reducción de un esquema ER a tablas
80 Rodolfo Arana Gonzales
Según paso 8. Para una relación N:M se necesitan tres tablas: una para
representar cada entidad y otra para representar la relación más los
atributos propios de la misma.
nss num_cuenta
CUENTA-CLIENTE
Las tablas CLIENTE y
CUENTA se
obtuvieron
anteriormente
CUENTA
CLIENTE
TIENE
nss nombre direccion
num_cuenta
saldo
tipo
M
N
Reducción de un esquema ER a tablas
81 Rodolfo Arana Gonzales
Dudas y Preguntas:
82
Correo electrónico: [email protected]
Rodolfo Arana Gonzales