Documentos de Académico
Documentos de Profesional
Documentos de Cultura
02.modelo E R
02.modelo E R
Elmasri/Navathe 07
Modelos de datos conceptuales Ejemplo Tipos de entidad, atributos y claves Tipos de relacin, roles y restricciones. Tipos de entidad dbiles Convenios de denominacin y cuestiones de diseo Tipos de relacin que unen a ms de dos tipos de entidad Ejemplos de diseo Independiente del SGBD
Minimundo
ANLISIS FUNCIONAL
Especificacin de transacciones
IMPLEMENTACIN DE TRANSACCIONES
Programas de aplicacin
DBD Tema 2 1 DBD Tema 2
DBD
2
La empresa est organizada en departamentos. Cada uno con nombre y nmero nico. Tiene un director, su fecha de inicio y el nmero de empleados que trabaja en l. Puede estar distribuido en varias localidades. Cada departamento controla cierto nmero de proyectos. Cada uno con nombre y nmero nicos y se realiza en una sola localidad. De cada empleado se guarda su nombre, nmero de seguridad social, direccin, salario, sexo y fecha de nacimiento. Departamento al que pertenece. Proyectos en los que trabaja (pueden estar controlados por departamentos distintos al que pertenece el empleado). N horas semanales dedicadas a cada proyecto y quin es su supervisor. De cada subordinado al nmero de seguridad social de un empleado interesa su nombre, sexo, fecha de nacimiento y parentesco (hijo, esposa, ...).
DBD Tema 2 3
FechaNcto (0,N)
Sexo
SUBORDINADO Sexo
SUBORD_DE
EMPLEADO
SUPERVISIN
supervisado (1,1)
TRABAJA_PARA
(0,1)
(0,1) FechaInic
DIRIGE
(1,N) DEPARTAMENTO
(1,1)
Localidades Nmero
DBD Tema 2
NEmpleados Nombre
4
Qu es un esquema conceptual
(como el anterior)
Esquema conceptual (ER) Primary key Unique
Ejemplo: esquema lgico (relacional) para la BD Empresa (transformado a partir del ER anterior)
NSS NOMBRE INIC APELLIDO FECHA_NCTO DIRECCIN SEXO SALARIO SUPERV DPTO DEPARTAMENTO NMERO NOMBRE DIRECTOR F_INIC_DIRECTOR PROYECTO
CF:EMPLEADO CF:EM- CF:DEPARPLEADO TAMENTO
(1,N)
(0,N)
(0,N)
(1,1)
No incluyen detalles de implementacin (como tipos de datos, etc.). Podra servir para comunicarse con usuarios NO tcnicos sobre el contenido que tendr la BD.
DBD Tema 2 5
CF:EMPLEADO
Normalizada en FNBC
DBD Tema 2 6
Depende de las transacciones (consultas, inserciones, modificaciones, ...) ms comunes sobre la BD. Segn sean, podramos haber llegado a la siguiente definicin de ndices:
TABLA EMPLEADO DEPARTAMENTO PROYECTO SUBORDINADO NDICE PRIMARIO/AGRUPACIN IP(NSS) IP(NMERO) IP(NMERO) IP(EMPLEADO, FECHA_NCTO, NOMBRE) IP(NMERO, LOCALIZACIN) IP(NP, EMPLEADO)
DBD Tema 2 7
...
COMPUESTO
TIPOS DE RELACIN
DERIVADO NORMAL MULTIVALOR IDENTIFICADOR ... COMPLEJO
LOCALIZACIONES_DEPTO TRABAJA_EN
DBD Tema 2
OTROS
Dominio (tipo de datos) Valor nulo Conjunto de entidades
E1
E2
Tipo de entidad es un conjunto de entidades que posee el mismo conjunto de atributos. Cada entidad del tipo de entidades contiene un valor para cada uno de los atributos definidos en el tipo de entidades Para cada tipo de entidad (como LIBRO): Se describe con su nombre y lista de atributos Sus entidades son el conjunto de entidades o extensin. El t. de entidad se llama intensin de su conjunto de entidades
DBD Tema 2 10
Tipos de atributos
Simple (o atmico): Compuesto:
Salario Nombre NomPila Apellido1 Apellido2
Pueden formar una jerarqua de varios niveles Representa la concatenacin de todas sus componentes simples Monovalor: Multivalor: Almacenado: Derivado:
Salario Localidades FechaN Edad
DBD Tema 2
Atributos clave
PROYECTO Nombre Nombre Nmero Localizacin Clave Nmero Localizacin PROYECTO2
Atributo clave de un t. de entidad: Tiene un valor nico para cada entidad del t. de entidad (restriccin de clave o unicidad). Se deber cumplir para cualquier extensin. Ejemplo claro: atributo Matrcula del tipo de entidad VEHCULO. Debe ser mnima: sin atributos superfluos Puede ser un atributo compuesto (como en PROYECTO2). Algunos t. de entidad (como PROYECTO) pueden tener ms de un atributo clave Puede haber t. de entidad sin clave: t. de entidad dbil Claves del tipo de entidad PROYECTO? Y las de PROYECTO2? CONFUSIN FRECUENTE: pensar que la clave de PROYECTO significa lo mismo que la de PROYECTO2.
DBD Tema 2 13
DBD Tema 2
14
FechaNcto
departamentos. Cada uno con nombre y nmero nico. Tiene un director, su fecha de inicio y el nmero de empleados que trabaja en l. Puede estar distribuido en varias localidades.
De cada empleado se guarda su nombre, nmero de seguridad social, direccin, salario, sexo y fecha de nacimiento. Departamento al que pertenece. Proyectos en los que trabaja (pueden estar controlados por departamentos distintos al que pertenece el empleado). N horas semanales dedicadas a cada proyecto y quin es su supervisor.
Empleado FechaNcto Clave SUBORDINADO Sexo Parentesco
16
DptoControlador
Cada departamento controla cierto nmero de proyectos. Cada uno con nombre y nmero nicos y se realiza en una sola localidad.
Nombre
a PROYECTO
a DEPARTAMENTO
Nombre
De cada subordinado al nmero de seguridad social de un empleado interesa su nombre, sexo, fecha de nacimiento y parentesco (hijo, esposa, ...).
15 DBD Tema 2
DBD Tema 2
Cdigo
Ttulo LIBRO
NCopias (0,N)
Cdigo
Nombre
LECTOR
LIBRO Cdigo Tolk-1 Orw-1 Shar-1 Ttulo El Sr. de los Anillos 1984 Wilt NCopias 3 2 1 PRESTADO LIBRO Tolk-1 Tolk-1 Orw-1 Shar-1 LECTOR 11 22 11 22
PROYECTO
En un primer paso podemos capturar las relaciones mediante estos atributos a los que hemos llamado relaciones implcitas. Pero en un segundo paso hay que sustituir todos estos atributos por tipos de relacin.
DBD Tema 2 17
Al ser conjunto no puede haber relaciones repetidas. Por eso ponemos como clave la concatenacin de LIBRO+LECTOR
DBD Tema 2
Acabamos de ver que un tipo de relacin, como PRESTADO, entre varios tipos de entidad (LIBRO Y LECTOR) define un conjunto de asociaciones conjunto de relaciones entre las entidades de los tipos de entidad. Cada relacin r PRESTADO es una asociacin de entidades que incluye una nica entidad de cada tipo de entidad que participa en el tipo de relacin PRESTADO: (Tolk-1, 11), (Tolk-1, 22), (Orw-1, 11) Grado de un tipo de relacin es el nmero de tipos de entidad que participan. PRESTADO es de grado dos o binario. Los ms comunes son los binarios. En el ejemplo, R es un tipo de relacin ternaria: A R B
C
DBD Tema 2 19
Clave de Razn de cardinalidad: n de relaciones en las que puede participar TRABAJA una entidad. _PARA? Cada entidad de DEPARTAMENTO puede participar en varias (N) relaciones de TRABAJA_PARA. Cada entidad de EMPLEADO puede participar como mucho en una (1) relacin de TRABAJA_PARA.
En tipos de relacin binarios la razn de cardinalidad puede ser 1:1, 1:N Clave N:M.
1:1 ( ,1) EMPLEADO LIBRO ( ,N) DIRIGE PRESTADO
DBD Tema 2
de DIRIGE?
M:N
20
Restriccin de participacin: Total (dependencia de existencia): toda entidad de DEPARTAMENTO debe participar al menos en una (1) relacin de DIRIGE (porque todo departamento debe tener un director). Parcial: algunas entidades de EMPLEADO no participan (0) en ninguna relacin de DIRIGE y otras si (no todos los empleados son directores de departamento). La notacin mnimo-mximo (mn, max): admite poner otros nmeros adems de 0 1 para el mnimo (participacin) y 1 N para el mximo (cardinalidad):
(..., ...) JUGADOR JUEGA
DBD Tema 2
Rol: indica el papel desempeado por las entidades en las relaciones. En el ejemplo: las entidades de EMPLEADO desempean el rol de trabajador en las relaciones de TRABAJA_PARA. Los roles NO son necesarios si los tipos de entidad relacionados son distintos. En el ejemplo: si NO hubiera rol, los empleados desempearan el rol de el empleado en las relaciones de TRABAJA_PARA.
EMPLEADO jefe (0,N) DIRIGE (0,1) subalterno Sin roles ... cmo se sabe a qu se refiere el (0,N) y el (0,1)?
(22,28) PARTIDO_FUTBOL
21
Los roles son obligatorios si se repiten tipos de entidad en el tipo de relacin. Los tipos de relacin (como DIRIGE), donde un mismo tipo de entidad participa varias veces, se llaman tipos de relacin recursivos.
DBD Tema 2 22
(1,1) Titulacin
ASIGNATURA Curso
(1,N) ASIGNATURA
Estos atributos NO pueden ser clave: La clave de los tipos de relacin 1:1 puede ser cualquiera de los dos tipos de entidad. En 1:N el tipo de entidad con cardinalidad 1 y en N:M ambos tipos de entidad de manera conjunta. Estos atributos no modifican la clave de un tipo de relacin. Segn sea 1:1, 1:N N:M el atributo del tipo de vnculo puede situarse alternativamente en alguno de los tipos de entidad participantes, como muestran las flechas en los ejemplos.
DBD Tema 2 23
La clave de APUNTES es compuesta. Una de sus componentes es una relacin implcita al tipo de entidad ASIGNATURA. Al transformar la relacin implcita al tipo de relacin PERTENECEN, el tipo de entidad APUNTES se queda sin clave. Para seguir representando la clave se usan los tipos de entidad dbil: El trozo de clave que queda en APUNTES (Tema) se marca como clave parcial (subrayado discontinuo). El tipo de relacin que completa la clave se marca con lnea doble y se llama tipo de relacin identificador. El tipo de entidad relacionado mediante el tipo de relacin identificador se llama tipo de entidad propietario identificador.
DBD Tema 2
24
...
(1,1)
EST
Nm
...
(1,1) (1,N)
EST
(1,1)
APUNTES
PERTENECEN
(1,N)
ASIGNATURA
Titulacin Curso PC
Cdigo EDIFICIO
(1,N)
SALA
... Puede haber varios niveles de tipo de entidad dbil. Aqu la clave de PC est compuesta de las claves de EDIFICIO y de SALA ms su clave parcial.
Salario Sexo Direccin FechaNcto Nombre Nss Nom Apellido1 Apellido2
Un tipo de entidad dbil no tiene atributos clave propios. Sus entidades se identifican por la clave parcial concatenada con la clave de la entidad relacionada mediante el tipo de relacin identificador. Eso supone que la participacin con este tipo de relacin debe ser siempre (1,1), para que haya siempre un valor que complete la clave y slo uno. La N de ASIGNATURA slo tiene sentido si APUNTES tiene clave parcial. Si no hay clave parcial significa que la clave de APUNTES es la misma que la de ASIGNATURA. As, una ASIGNATURA solo puede prestar su clave a una entidad de APUNTES (si no, encontraramos en APUNTES valores de clave repetidos).
DBD Tema 2 25
RESTO_EMPLEADO
(1,1)
(1,1)
EMPLEADO
Podemos encontrarnos con tipos de entidad dbil sin clave parcial. Por ejemplo, si EMPLEADO tiene muchos atributos podemos separar los usados con menos frecuencia en la tabla RESTO_EMPLEADO. En este caso, la cardinalidad de EMPLEADO en el tipo de relacin identificador no puede ser N (precisamente porque no hay clave parcial).
DBD Tema 2 26
...
Cdigo
(1,1)
(1,N)
ITINERARIO Id
EXCURSIN
...
(1,1)
(1,N)
GUA
En este caso, si no hubiera clave parcial, ITINERARIO y GUA tambin tendran cardinalidad N
Tema
Autor
... Un tipo de entidad dbil puede tener varios tipos de entidad propietarios. En este caso la clave de EXCURSIN est compuesta del Cdigo de itinerario, el Id de GUA y la Fecha de la EXCURSIN. El esquema de arriba es equivalente al que se muestra a continuacin:
Fecha
(1,N) ASIGNATURA
...
(1,1)
Cdigo
(1,N) ITINERARIO
Id
EXCURSIN
...
(1,N) GUA
DBD Tema 2
Esta solucin NO se puede adoptar si existen otros tipos de relacin, diferentes al tipo de relacin identificador, en los que participe APUNTES. Hay que tener en cuenta que los rombos slo unen rectngulos. Por tanto, NO se puede dibujar un rombo que una el atributo multivalor Apuntes con un rectngulo.
DBD Tema 2 28
...
27
(1,N) ASIGNATURA
(1,N) ASIGNATURA
Esta es una solucin artificial. El identificador nos lo hemos inventado, no se trata de un dato que se maneje en el mini-mundo.
En la notacin mnimo-mximo (mn, max) usada hasta aqu: mn y max indican respectivamente el mnimo y mximo de relaciones en las que participa una entidad. 0 <= mn <= mx >= 1 mn=0 indica participacin parcial y mn>0 participacin total. La notacin alternativa es menos precisa. Hay que tener en cuenta que la informacin sobre una entidad se encuentra repartida a ambos lados del tipo de relacin: la participacin al lado y la cardinalidad en el lado opuesto.
DBD Tema 2 30
Transformaciones interesantes
B A B A (2) B A A B AB B
Las transformaciones (1) y (2) ya se han visto anteriormente. En la (2) los atributos A y B son referencias inversas entre s. Z (3) Z A B Z C A B C Z Z
(0,N) SALA
SITUADO_EN
(0,N) SALA
(4)
31
Z
DBD Tema 2
Z
32
Nmero Km
Nmero Km
(0,N)
(0,N)
MAILLOT
MAILLOT
Se utiliza un doble etiquetado. La notacin mnimo-mximo se mantiene con el mismo significado que para las binarias (la alternativa no se puede utilizar). Recordemos la interpretacin. Por ejemplo la N de ciclista significa que cada entidad de CICLISTA puede participar en varias relaciones de LLEVA. La otra notacin (1:N:M en el ejemplo), aade la idea de clave. Por tanto la clave del tipo de relacin LLEVA la forman la entidad de MAILLOT y la de ETAPA, ya que en una etapa slo se puede imponer un determinado maillot a un nico ciclista. Si NO se indica esta segunda notacin se entiende que es: M:N:P.
DBD Tema 2 33
CICLISTA Dorsal 10 11 12 13 14 15 12 Nombre Hinault Indurain Fignon Armstrong Pereiro Ullrich Freire
LLEVA Maillot amarillo puntos rojo amarillo puntos rojo Etapa Ciclista 1 1 1 2 2 2 10 13 13 10 11 13
ETAPA Nmero Km 1 2 MAILLOT Color amarillo puntos rojo Premio general montaa puntos
34
100 110
DBD Tema 2
SUMINISTRADOR
(0,N) TIENE (0,N)
(0,N)
Dorsal
Nombre
CICLISTA (0,N) 1
LLEVA
Nombre
(0,N)
PROYECTO
(0,N) USA
COMPONENTE
COMPONENTE Nmero
(0,N)
Ejercicio: para los suministradores s1 y s2, los componentes c1 y c2 y los proyectos p1 y p2, obtener los tros de PROVEE y los pares de las relaciones c p binarias en los siguientes dos estados de la BD, donde s representa que el suministrador s suministra el componente c al proyecto p.
Estado 1 s1 de la BD: c2
CICLISTA (1,N) Nmero (1,1) (1,1) (1,N) VISTE ETAPA (1,1) Km (1,N) MAILLOT Premio Color
c1
c2 s2
c1
p1 Estado 2 s1 de la BD: c1 c1 s2 p2
DBD Tema 2
c2
p1 p2
c2
Si un tipo de relacin ternaria representa lo mismo que varias binarias nos quedaremos con la segunda opcin
35
El tipo de entidad dbil VISTE representa lo mismo que el tipo de relacin ternario LLEVA. El tipo de relacin entre VISTE y CICLISTA no es identificador porque no forma parte de la clave de LLEVA (pero el tipo de relacin con CICLISTA es necesario) Obsrvese que en este caso VISTE no precisa usar clave parcial.
DBD Tema 2 36
Es posible tener un tipo de relacin ternario y los tres binarios correspondientes pero...
Camiones
(1,N)
IMPARTE
Id Ao
Es preciso definir restricciones de manera que haya coherencia entre los tros de IMPARTE y los pares de CONOCE, DA CLASE y OFRECIDA. Por ejemplo si (Alfredo,1-2007) es una relacin de DA CLASE, deber haber al menos un tro en IMPARTE en los que el profesor sea Alfredo y el cuatrimestre 1-2007: (Alfredo,1-2007, ...)
Una compaa de transportes recoge pedidos de los almacenes de una cadena y los entrega a las tiendas de la misma cadena. Actualmente hay 6 almacenes y 45 tiendas. Cada tienda tiene su propio nombre, y conocemos tambin su direccin y telfono. Cada almacn tiene un nmero diferente adems de la direccin y telfono. Un camin puede transportar varios pedidos en el mismo viaje y entregar cada pedido a la tienda que lo solicit. Cada viaje se identifica por un nmero. Cada pedido se identifica por un nmero e incluye datos sobre peso, volumen y tienda de destino. Cada camin tiene el nmero de matrcula y su propio lmite mximo de volumen y peso transportado. La flota de la compaa de transportes consta de 150 vehculos y cada uno realiza entre 3 y 4 viajes semanales. Esta BD la usarn conjuntamente las dos empresas para Controlar el uso de los camiones (fechas). Controlar las entregas (pedidos entregados) Programar los viajes (conocer los pedidos hechos, de qu almacn a qu
tiendas y los viajes asignados a camiones)
DBD Tema 2 38
DBD Tema 2
37
Suposiciones: Un pedido se toma completo de un almacn y se entrega tambin completo a una sola tienda. En un viaje interviene solo un camin, toma varios pedidos de un almacn y los entrega a una o varias tiendas.
DBD Tema 2 39
DBD Tema 2
40
CAMIN
(0,N)
REALIZA (1,1)
(1,1)
Nmero Fecha
VIAJE
(1,N) TRANSPORTA (0,1)
PEDIDO
(1,1) ENTREGAR
Considerar las alternativas de diseo comentadas: Tipos de relacin de grado mayor que tres por tipos de entidad dbiles. Tipos de entidad dbiles por atributos multivalor y compuestos. Atributo que aparece en varios tipos de entidad situado en tipo de entidad independiente (o lo contrario)
TIENDA
Suposiciones: Los pedidos se introducen antes de organizar el viaje. En base a los datos de pedidos y ocupacin de camiones el programa de aplicacin puede organizar los viajes.
DBD Tema 2 41
DBD Tema 2
42
Ejercicios
DBD Tema 2
DBD Tema 2
45
DBD Tema 2
46
DBD Tema 2
47
DBD Tema 2
49
DBD Tema 2
51
DBD Tema 2
53
DBD Tema 2
54
N o m In g r
S u m in is tr a d o r
( 0 ,N ) LLEVA ( 1 ,N )
IN G R E D IE N T E
BA SE D E
A R T C U L O
( 0 ,N ) IN C L U ID O
( 0 ,N )
( 1 ,1 ) P R O D U C T O
N o m P rd
E S P E C IA L
( 0 ,N ) ( 0 ,N ) C a n tid a d
( 0 ,N )
P E D ID O
IN C L U ID O
N m e ro Fecha
H o ra p e d id o H o ra s e r v id o
a) Un restaurante de comida rpida sirve pedidos en el local. Cada pedido puede incluir uno o varios artculos y productos especiales. Un artculo lleva uno o varios ingredientes. Los productos especiales son ofertas del restaurante que, aparte de llevar los ingredientes del artculo sobre el que se basa, llevan uno o varios ingredientes adicionales. El restaurante, adems de atender pedidos en el local, quiere ofrecer un nuevo servicio de envo de pedidos a domicilio. Para dichos pedidos interesa guardar la direccin y el telfono de contacto del solicitante del pedido. (contina) DBD Tema 2 55
PEDIDO
Nmero
FACTURA
(1,N) (0,N)
ARTICULO
(0,N)
Nmero
58
DBD Tema 2
57
DBD Tema 2
Camiones
Partiendo de la solucin dada al ejemplo de los camiones, considera las siguientes variantes al problema:
B5 B5 B3
(1,1) PIDE
1 1 1
N Direccin N Direccin
CLIENTE
(1,N)
PEDIDO N
LNEA
(1,1) TIENE (0,N)
POSEE (1,1)
a) Un pedido se compone de varios artculos. Cada artculo se identifica por su nmero y contiene su descripcin. Un mismo artculo puede figurar en varios pedidos. Interesa guardar las unidades de un artculo en un pedido. Todos los artculos de un pedido provienen de un almacn y se entregan a una tienda. b) Considera el mismo caso del apartado anterior, pero donde los artculos de un pedido pueden ir a distintas tiendas. Interesa distinguir cuntas unidades de cada artculo de un pedido se entregan a cada tienda. c) Considera la misma situacin del apartado A, pero ahora se desea guardar la informacin de las lneas de detalle de cada pedido. Una lnea de detalle consta de un nmero (distinto por cada lnea de un mismo pedido), cdigo de artculo y unidades. Una lnea de detalle corresponde a un nico pedido
DBD Tema 2 60
TIENDA
DBD Tema 2
ARTCULO
59
Camiones
DBD Tema 2
61
DBD Tema 2
62
DBD Tema 2
63