Professional Documents
Culture Documents
Modelos de datos
Bibliografa:
Introduccin a los sistemas de bases de datos Date C. J. Addison Wesley, 6ta. Edicin,1999 Fundamentos de bases de datos Henry F. y Abraham Silverschatz Sistemas de Bases de Datos. Diseo, Implementacin y Admn Peter Rob y Carlos Coronel
El Modelo Entidad-Relacin o Entidad-Vnculo cae dentro de la clasificacin de Modelos de Datos de Alto Nivel o Conceptuales.
mismas propiedades o atributos. Tambin se les puede referir como Clases de Entidades
Modelo Entidad-Relacin Modelo Orientado a Objetos
Diseo Conceptual
entidad
Independiente Del SGBD Especfico para Cada SGBD Diseo Lgico Modelo Relacional
ejemplo: el dominio para el atributo calificacin son todos los enteros positivos de 0 a 100
Diseo Fsico
ci
fechaN
EMPLEADO
fechaN
EMPLEADO
Adran Gmez 10,000
goma-800510 vigilante
10/5/1980
paterno
nPila materno
En ciertas circunstancias podra ser importante almacenar ms de un nmero telefnico (casa, oficina, etc.)
pequeos.
Simples o Atmicos. Son aquellos que no son divisibles.
Tcnicamente podra objetarse que paterno sea un atributo atmico, por dividirse a su vez en caracteres. Conceptualmente, sin embargo, el apellido paterno de una persona ya no puede dividirse en componentes ms pequeos.
materno
salario ci
nombre
salario telefono
fechaN
EMPLEADO
fechaN
EMPLEADO
10
Atributos Clave
Una restriccin importante de las entidades de un tipo es la restriccin de clave o restriccin de unicidad. Un atributo clave identifica de manera nica a cada entidad individual.
paterno nPila materno salario
nombre ci
telefono edad
fechaN
EMPLEADO
fechaN
EMPLEADO
11
12
Nombres de Papeles
Un tipo de Relaciones (o tipo de vnculos) es una asociacin entre dos o ms tipos de entidades. Se representa mediante un rombo que conecta a los tipos de entidades.
Cada tipo de entidades que participa en un tipo de relaciones desempea un papel (o rol) especfico en la relacin o vnculo.
EMPLEADO PERTENECE_A DEPARTAMENTO
EMPLEADO
PERTENECE_A
DEPARTAMENTO
Se dice que los tipos de entidades EMPLEADO y DEPARTAMENTO participan en el tipo de relaciones (o vnculos) PERTENECE_A
En la relacin PERTENECE_A el tipo de entidades EMPLEADO desempea el papel de empleado o trabajador. Con excepcin 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.
13
14
Relaciones Recursivas
Tambin llamadas unarias son aquellas en los que el mismo tipo de entidades participa ms de una vez en un tipo de relaciones (o tipo de vnculos) con diferentes papeles (roles).
EMPLEADO
EMPLEADO
EMPLEADO
PERTENECE_A
DEPARTAMENTO
La relacin SUPERVISION asocia un empleado con un supervisor y pertenecen ambos al mismo tipo de entidades EMPLEADO
supervisor
supervisado
supervisor
supervisado
Relacin binaria
SUPERVISION
PROVEEDOR
SUMINISTRA
PROYECTO
SUPERVISION
Relacin unaria o recursiva COMPONENTE
Relacin ternaria
15
16
Restricciones estructurales
1. Razn de Cardinalidad. Especifica el nmero de ejemplares de relaciones en los que puede participar una entidad Las relaciones de cardinalidad ms comunes son 1:1, 1:N, M:N (uno a uno, uno a muchos, muchos a muchos)
1 1
Restricciones estructurales
2. Restriccin de Participacin. Especifica si la existencia de una entidad depende de que est relacionada con otra entidad a travs del tipo de relaciones Hay dos tipos de restricciones de participacin: parcial y total (llamadas tambin: opcional y obligatoria)
EMPLEADO
DIRIGE
DEPARTAMENTO 1 1
EMPLEADO
PERTENECE_A
EMPLEADO DEPARTAMENTO
DIRIGE
DEPARTAMENTO
ALUMNO
CURSA
MATERIA
La participacin total recibe a veces el nombre de dependencia de existencia. Se indica con una lnea doble que conecta el tipo de entidades con la relacin o vnculo
17
18
Restricciones estructurales
Ejemplo de diagrama de relacin 1:1
EMPLEADO DIRIGE DEPARTAMENTO
Restricciones estructurales
Ejemplo de diagrama de relacin N:1
EMPLEADO PERTENECE DEPARTAMENTO
e1 e2 e3 e4 e5 e6 e7 e8
d1 d2 d3
Ntese como no cualquier empleado dirige a un departamento. La participacin de EMPLEADO en la relacin es por lo tanto parcial. En cambio todo departamento es dirigido por un empleado. La participacin de DEPARTAMENTO en la relacin es total
e1 e2 e3 e4 e5 e6 e7 e8
d1 d2 d3
Ntese como cada empleado pertenece a un solo departamento y que a un departamento permanecen N empleados. En ambos casos la participacin de las entidades es total
19
20
Restricciones estructurales
Ejemplo de diagrama de relacin 1:N
DEPARTAMENTO CONTROLA PROYECTO
Restricciones estructurales
Ejemplo de diagrama de relacin M:N
ALUMNO TOMA MATERIA
Ntese como todos los alumnos toman al menos una materia y una materia es cursada al menos por un alumno. La participacin de ambas entidades en la relacin es total
d1 d2 d3 d4 d5 d6 d7 d8
p1 p2 p3 p4 p5 p6 p7 p8
Ntese como un proyecto es controlado por un departamento y un departamento puede controlar ms de un proyecto. Sin embargo no todos los departamentos controlan proyectos. La participacin de DEPARTAMENTO en la relacin es parcial.
a1 a2 a3
m1 m2 m3 m4 m5
a4
Estos diagramas nos pueden auxiliar a determinar las restricciones estructurales de un tipo de relaciones
21
22
DIRIGE
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 relacin.
FechaIni N EMPLEADO PERTENECE_A FechaIni 1 DEPARTAMENTO
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
23
24
relacin 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 dbiles
restriccin de participacin total, aunque no toda existencia de dependencia resulta en un tipo de entidades dbiles
EMPLEADO
DEPENDIENTE_DE
Las entidades dbiles siempre tienen una restriccin de participacin total con la relacin identificadora
25
26
Tipos de Claves
Superclave. Es un conjunto de uno o ms atributos que tomados
Superclaves
Tcnicamente, el conjunto de todos los atributos forman una superclave, porque le dan unicidad a la entidad
serie_motor matricula marca modelo
otras superclaves.
Clave Primaria. Clave candidata que es elegida para identificar
num_eco
VEHICULO
chofer
una entidad, buscando que los atributos que la conforman nunca cambien.
Clave Fornea. Se dice de la clave primaria de la cual dependen
Pero igual cumplen los siguientes subconjuntos: num_eco, matricula; maticula, serie_motor; serie_motor, marca; Etc,etc.
se utiliza como discriminador y que junto con la clave fornea forma la clave principal.
27
28
Claves Candidatas
serie_motor matricula marca modelo
modelo
num_eco
VEHICULO
chofer
En la entidad VEHICULO se pueden encontrar dos superclaves mnimas (no se pueden dividir en otras superclaves): matricula y serie_motor Como ambas describen unvocamente a la entidad se les denomina claves candidatas
matricula y serie_motor Se elige a la que ser la clave principal. Como es ms 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 nmero de serie del motor por lo general no cambia
29
30
Claves Forneas
serie_motor matricula marca modelo
Claves Parciales
nss
EMPLEADO
num_eco
VEHICULO
chofer
1
DEPENDIENTE_DE
El atributo chofer se puede considerar como clave fornea, si en lugar de escribir nombres de personas como valores, se indican cdigos que hacen referencia al nombre del chofer en otra entidad.
nombre
N
DEPENDIENTE
El atributo nombre de la entidad DEPENDIENTE no describe de manera unvoca 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 fornea).
De esta manera se evita la redundancia, pues en vez de escribir el mismo nombre varias veces (en el hipottico caso de que tuviese resguardado ms de un vehculo) solo se repetira el cdigo del mismo
sexo
fechaN
parentesco
31
32
p1 p2 p3
PROVEEDOR
SUMINISTRAR
PROYECTO
COMPONENTE c1 c2 c3
COMPONENTE num_comp
33
34
Resumen de la notacin ER
Tipo de entidades Tipo de atributos (monovaluados) Tipo de entidades dbiles Tipo de atributos (multivaluados) Tipo relacin Tipo relacin identificadora
PROVEEDOR
VS
SUMINISTRO
SCP
PROYECTO
SC
Participacin parcial
Participacin total
35
36
Un primer ejemplo
nombre nPila paterno materno direc nombre sexo sueldo N PERTENECE_A 1 nmero lugares
La compaa est organizada en departamentos. Cada departamento tiene un nombre nico, un nmero 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 nmero de proyectos, cada uno de los cuales tiene un nombre y un nmero nicos, y se efecta en un solo lugar. Almacenaremos el nombre, nmero de seguro social, direccin, 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 estarn controlados por el mismo departamento. Nos interesa el nmero de horas por semana que un empleado trabaja en cada proyecto, y tambin quin es el supervisor de cada empleado. Queremos mantenernos al tanto de los dependientes de cada empleado con el fin de administrar los trminos de sus seguros. Almacenaremos el nombre, sexo y fecha de nacimiento de cada dependiente, y su parentesco con el empleado.
Nss fechaN
EMPLEADO supervisado
DIRIGE
supervisor 1
SUPERVISIN
DEPENDIENTE
37
38
nombre nico, un nmero 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 nmero de proyectos, cada uno de los
DEPARTAMENTO
EMPLEADO
fechaN
fecha de nacimiento de cada empleado. Todo empleado est asignado a un departamento, pero puede trabajar en varios proyectos, que no necesariamente estarn controlados por el mismo departamento. Nos interesa el nmero de horas por semana que un empleado trabaja en cada proyecto, y tambin quin es el supervisor de cada empleado.
Queremos mantenernos al tanto de los dependientes de cada empleado con el
Se identifican cada una de las entidades participantes, as como sus respectivos atributos
num_empleados
DEPENDIENTE
PROYECTO
nmero
fin de administrar los trminos de sus seguros. Almacenaremos el nombre, sexo y fecha de nacimiento de cada dependiente, y su parentesco con el empleado.
nombre
lugar
39
40
PERTENECE_A
sueldo
EMPLEADO
fechaN
SUPERVISIN es una relacin recursiva, puesto que el tipo de entidades EMPLEADO participa con dos papeles (o roles)
nombre
DEPARTAMENTO
Nss
sexo
DEPARTAMENTO
EMPLEADO
num_empleados fechaN supervisado num_empleados
supervisor
SUPERVISIN PROYECTO
nombre sexo fechaN parentesco nmero nombre lugar nombre sexo fechaN parentesco
DEPENDIENTE
nmero nombre lugar
41
42
PERTENECE_A DEPARTAMENTO
Nss nombre sexo
PERTENECE_A
sueldo
DEPARTAMENTO
EMPLEADO
fechaN supervisado
DIRIGE
num_empleados
EMPLEADO
fechaN supervisado
DIRIGE
num_empleados
supervisor
SUPERVISIN
CONTROLA
supervisor
nombre fechaN
nombre fechaN
43
44
PERTENECE_A DEPARTAMENTO
PERTENECE_A DEPARTAMENTO
Nss
DIRIGE
num_empleados
fechaN
CONTROLA TRABAJA_EN
supervisor
supervisor
DEPENDIENTE
nmero
45
46
1 PERTENECE_A
nmero
1 PERTENECE_A
nmero
lugares
DEPARTAMENTO 1 DIRIGE 1
num_empleados
DEPARTAMENTO 1 DIRIGE 1
num_empleados
EMPLEADO
fechaN supervisado
EMPLEADO 1 CONTROLA
fechaN supervisado
1 CONTROLA
supervisor
N N
supervisor
N N
SUPERVISIN
1 PROYECTO
nmero nombre nombre sexo fechaN parentesco lugar
SUPERVISIN
PROYECTO
nmero nombre lugar
Una participacin total indica que todo ejemplar de entidad participa al menos una vez en la relacin
47
48
1 PERTENECE_A
nmero
lugares
1 PERTENECE_A
nmero
lugares
DEPARTAMENTO 1 DIRIGE 1
num_empleados
DEPARTAMENTO 1 DIRIGE 1
num_empleados
EMPLEADO
fechaN supervisado
EMPLEADO 1 CONTROLA
fechaN supervisado
1 CONTROLA
supervisor
M 1 N DEPENDIENTE_DE N TRABAJA_EN
N N
supervisor
N N
SUPERVISIN
SUPERVISIN
PROYECTO
nmero nombre lugar
El tipo de entidades DEPENDIENTE no tiene un atributo clave propio. Depende del atributo clave del tipo de entidades EMPLEADO
DEPENDIENTE
En DEPENDIENTE la clave es la combinacin de su atributo nombre y el atributo Nss del tipo de entidades EMPLEADO
PROYECTO
nmero nombre lugar
49
50
El minimundo BIBLIOTECA
1 PERTENECE_A
nmero
lugares
Una biblioteca escolar resguarda ejemplares de libros para prestamos a sus usuarios. Cada libro puede estar escrito por ms 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 reservacin del ttulo para cuando est disponible. Si los ejemplares no se regresan a tiempo aplica una multa que se impone al usuario.
DEPARTAMENTO
fechaIni
EMPLEADO
fechaN supervisado
1 DIRIGE
1
num_empleados
1 CONTROLA
supervisor
M 1 N DEPENDIENTE_DE
horas
TRABAJA_EN
N N
SUPERVISIN
Es necesario especificar la fecha en que un EMPLEADO comienza a dirigir un DEPARTAMENTO y las horas que un EMPLEADO trabaja en un PROYECTO
N DEPENDIENTE
nmero nombre nombre sexo fechaN parentesco
PROYECTO
lugar
51
52
1. Identificar identidades
Identificar Entidades Resolver Relaciones (vnculos) Determinar Cardinalidades Identificar Participaciones Identificar Entidades dbiles Identificar Atributos CLAVE
Una biblioteca escolar resguarda ejemplares de libros para prestamos a sus usuarios. Cada libro puede estar escrito por ms 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 reservacin del ttulo para cuando est disponible. Si los ejemplares no se regresan a tiempo aplica una multa que se impone al usuario.
53
54
1. Identificar identidades
LIBRO
Una biblioteca escolar resguarda ejemplares de libros para prestamos a sus usuarios. Cada libro puede estar escrito por ms 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 reservacin del ttulo para cuando est disponible. Si los ejemplares no se regresan a tiempo aplica una multa que se impone al usuario.
MULTA
55
56
3. Determinar Cardinalidades
LIBRO M Posibles valores: 1:1 uno a uno 1:N uno a muchos N:M muchos a muchos 1 N
RESERVA
TIENE
ESCRIBE
RESERVA
TIENE
ESCRIBE
EJEMPLAR
AUTOR
USUARIO
PRESTAMO
EJEMPLAR
SE_APLICA
57
58
4. Identificar Participaciones
LIBRO M RESERVA N Una participacin total indica que todo ejemplar de entidad participa al menos una vez en la relacin 1 TIENE M N
USUARIO
PRESTAMO
EJEMPLAR
AUTOR
USUARIO
PRESTAMO
EJEMPLAR
AUTOR
1 IMPUESTA_A M MULTA M
1 SE_APLICA
1 IMPUESTA_A M MULTA M
1 SE_APLICA
El tipo de entidades EJEMPLAR no tiene un atributo clave propio. Depende del atributo clave del tipo de entidades libro
59
60
Notacin alternativa
Otra forma de representar las restricciones
ESCRIBE
id_usuario
num_ejem
USUARIO
PRESTAMO
EJEMPLAR
AUTOR
id_autor num 1 IMPUESTA_A M MULTA M 1 SE_APLICA El atributo clave de EJEMPLAR se compone de su atributo num_ejem y el atributo clave isbn de LIBRO
10
61
Notacin alternativa
Con el ejemplo anterior:
LIBRO (0, N) (1, N) (1, N)
RESERVA (0, N)
TIENE (1, 1)
ESCRIBE (1, N)
nss nombre sexo sueldo
EMPLEADO
USUARIO
(0, N)
PRESTAMO
(0, 1)
EJEMPLAR
AUTOR
fechaN
La razn de cardinalidad se determina tomando los mximos de forma invertida. ejem: (1,N),(1,1) = 1:N
62
EMPLEADO
Clave fornea
1 CHOFER TIENE_ASIGNADO
1
DEPENDIENTE_DE
VEHICULO
marca
nss
nombre
sexo
fechaN
parentesco
N
DEPENDIENTE
Clave principal
nss nombre
CHOFER
licencia num_econ
La clave principal estar formada por la combinacin de la clave fornea y la clave parcial Rodolfo Arana Gonzales 63 (o discriminador)
Como clave principal (o clave primaria) se puede elegir cualquiera de las claves de las entidades. Igual aplica para el nombre de la tabla. 64
65
EMPLEADO
DIRIGE
DEPARTAMENTO
PERSONA
POSEE
ANIMAL
En el ejemplo se ha decidido elegir la entidad ANIMAL para que tenga como atributo adicional la clave principal de la otra entidad.
Clave principal
num_dep
Cada entidad mantiene su clave principal. Adems, la clave principal de la entidad con participacin parcial ser la clave fornea de la entidad con participacin total
PERSONA
nss nombre edad
66
11
67
N PERSONA TRABAJA_EN
1 PROYECTO
N EMPLEADO PERTENECE
1 DEPARTAMENTO
Clave principal
nss nombre
PERSONA
nombre edad
PROYECTO
numero lugar
68
nombre nss
N PERSONA TRABAJA_EN
M PROYECTO
En una relacin N:M los atributos de la relacin no se pueden trasladar a las entidades participantes PROYECTO
numero lugar nss
nss
EMPLEADO
PERSONA
nss nombre edad
PERSONA_PROYECTO
nss numero horas
EMPLEADO
nombre direccion
TELEFONO
nss num_tel
69
70
nss
sueldo
direccion
nss
nPila
paterno
materno EMPLEADO
EMPLEADO
nombre nss
EMPLEADO
1 1 SUPERVISA N
CASADO_CON
O bien:
EMPLEADO
nPila paterno materno sueldo direccion
EMPLEADO
nss nPila paterno materno sueldo direccion nss nombre supervisor nss
EMPLEADO
nombre conyuge
nombre nss
EMPLEADO
71
Los dos atributos (con el mismo dominio) representan diferentes papeles o roles. Rodolfo Arana Gonzales 72
12
CURSO
CURSO N M CURSO c1 c2 c3 c4 c5 c6 c7 c8 clave nombre
PREREQUISITO
clave pre_req
REQUIERE
Los dos atributos (con el mismo dominio) representan diferentes papeles o roles.
PROVEEDOR
SUMINISTRAR
PROYECTO
REQUIERE
Rodolfo
Se muestran 5 ejemplares de relaciones: c1 requiere de c4, c2 requiere de c7, c3 requiere tambin de c7, c4 requiere de c6 y de c8. c5 no tiene prerequisitos, ni es prerequisito de ningn curso. c7 y c8 no tienen prerequisitos, aunque son Arana Gonzales 73 prerequisitos de otros cursos
PROVEEDOR
VS
SUMINISTRO
SCP
PROYECTO
SC
COMPONENTE
74
Una tabla por cada una de las entidades fuertes (o propietarias) con sus atributos simples Una tabla por la entidad dbil obtenida con sus atributos simples y los atributos clave de las entidades fuertes.
cantidad num_proy
num_suc
direccion
codigo
nombre
direccion
CONTROLA N
num_cuenta
SUCURSAL 1 OTORGA
saldo
TIENE
BANCO
tipo
CUENTA
PROVEEDOR VS SUMINISTRO SCP PROYECTO
N
num_prest tipo
M
SC
SUMINISTRO
num_prov num_comp num_proy cantidad
PRESTAMO
importe
COMPONENTE num_comp
75
nss
nombre
76
Segn paso 2. Para el caso de las entidades dbiles, se genera una tabla con sus atributos y se le aade una columna con la clave principal de la entidad fuerte.
cod_banco
num_suc
direccion
SUCURSAL 1
BANCO
SUCURSAL
TIENE
BANCO OTORGA N
BANCO
cod_banco nombre direccion
PRESTAMO
tipo
SUCURSAL
cod_banco num_suc direccion
num_prest
num_suc
num_prest
tipo
importe
PRESTAMO
importe
77
78
13
CONTROLA N
num_cuenta
SUCURSAL CLIENTE
tipo nss saldo nombre
CUENTA
direccion
CLIENTE-PRESTAMO CUENTA
num_suc num_cuenta tipo saldo
CLIENTE
nss nombre direccion
nss
num_prest
80
Dudas y Preguntas:
CUENTA
saldo
M TIENE N CLIENTE
CUENTA-CLIENTE
nss num_cuenta
nss
nombre
direccion
81
82
14