Contenido
1. Introduccin al modelo de datos ER 2. Conjuntos de entidades y de relaciones 3. Cuestiones de diseo 4. Especializacin 5. Agregacin 6. Reduccin a tablas
Contenido
Los atributos Los atributos describen propiedades que posee cada miembro de un conjunto de entidades. Podemos distingir diferentes tipos de atributos Simples (edad, sexo, nombre, fecha) y compuestos (da-mes-ao, nombre-apellidos, calle-nmero-portal-piso-letra) Monovalorados (altura) y multivalorados (hijos, amantes) Derivados: se obtienen a partir de otros (N ota = 0, 6 T + 0, 4 P ) PERO para nosotros todos van a ser simples.
Conjuntos de Relaciones Una relacin es una asociacin entre varias entidades. Por ejemplo propietario-coche, alumno-asignatura, etc. Un conjunto de relaciones es una relacin matemtica entre n entidades. Sean E1 , E2 ...En conjuntos de entidades, el conjunto de relaciones R es un subconjunto de {(e1 , e2 , ..., en ) | e1 E1 , e2 E2 , ..., en En } donde (e1 , e2 , ..., en ) es una relacin.
Conjuntos de Relaciones: Grado Se entiende por grado de una relacin al nmero de entidades que participan en ella. Este siempre es mayor o igual que 2, aunque no necesariamente distintas. Es decir, que ms de una entidad del mismo conjunto pueden participar en una relacin. Para estos casos se determina el papel o roll que juega cada una. El grado ms frecuente es 2, es decir, relaciones binarias. Incluso en algunos casos relaciones de mayor grado puede ser convertidas en una serie de relaciones binarias.
Conjuntos de Relaciones: Cardinalidad La Cardinalidad expresa el nmero de entidades a las que se puede asociar otra entidad a travs de un conjunto de relaciones. Para un conjunto de relaciones binario, la correspondencia de cardinalidades debe ser de uno de los tipos siguientes: Uno a uno 1 : 1 Uno a varios 1 : N Varios a varios N : M Podemos ser an ms nos y expresar la aparicin mxima y mnima de una entidad en una relacin. Lo veremos ms tarde en un ejemplo.
Conjuntos de Relaciones: Cardinalidad Para expresar la cardinalidad en relaciones de grado mayor que seguiremos la frase: dado uno del contario (ya sea una pareja de entidades, un tro, etc.) con cuntas entidades de las mas se puede relacionar. Por ejemplo: dado un determinado coche y un determinado conductor, cuntos accidentes pueden tener. Mostraremos esto con un ejemplo.
Conjunto de relaciones: atributos descriptivos La relaciones tambin pueden tener atributos que nos describen la relacin que se establece entre diferentes entidades. Por ejemplo, la nota nos describe la relacin que se establece entre un alumno y un examen.
10
Ejemplo Proyectos
Se pretende crear una base de datos para almacenar informacin sobre los proyectos que realiza una empresa. Los datos a tener en cuenta son: Cada proyecto tiene asociado un identicador numrico y un nombre. Adems se guardar qu empleado es el director de dicho proyecto. Tambin se quiere guardar informacin sobre los informes trimestrales que se hacen de cada proyecto. Para ello se guardar la fecha del informe y se detallar cules han sido las tareas realizadas en el trimestre, quin las realiz y el tiempo que dedic a cada una de ellas. Las tareas dentro de los proyectos suelen ser casi siempre las mismas, aunque las realicen distintas personas y le dediquen tiempos distintos. Adems un mismo empleado puede realizar distintas tareas en el mismo trimestre y una tarea puede ser desarrollada por ms de un empleado. De los empleados se guardar un identicador y su nombre.
11
1:N
INF_PRO
fecha
id_informe
M:N:P
REG_TAREAS
tiempo
id_tarea
(0, n)
INFORME
(0, m)
(0, p)
TAREA
(1, 1)
nombre id_proyecto
descripcion
(0, n)
1:N
PROYECTO
nombre
id_empleado
(0, n)
DIRIGE
(1,1)
EMPLEADO
12
Claves de entidades y de relaciones Conceptualmente cada entidad y cada relacin, son distintas, pero dentro de una base de datos, la diferencia entre distintas entidades y distintas relaciones debe expresarse en trminos de sus atributos. Una Superclave es un onjunto de atributos que nos permite identicar a una entidad (relacin) dentro del conjunto de entidades (relaciones) de forma nica. Una Clave candidata es una superclave que no contiene ningn subconjunto propio que sea superclave Una Clave primaria es la clave candidata elegida por el diseador de la base de datos.
13
La clave primaria para una relacin depende de la cardinalidad de asignacin y de los atributos descriptivos de dicha relacin R. Si en R no existen atributos descriptivos Cardinalidad N : M : la clave primaria son todos los atributos de R Cardinalidad 1 : N de A a B : la clave primaria ser la clave primaria de B Si en R existen atributos descriptivos la formacin de la clave primaria depende de la cardinalidad y de la semntica asociada a esa relacin.
14
Entidades dependientes y dbiles Algunas entidades dependen existencialmente de otras. Por ejemplo la existencia de un informe depende de que exista el proyecto sobre el que se informa. Adems pueden no tener atributos sucientes para formar una clave y necesitan chupar la clave de la entidad de la que dependen para formar la suya. Si es necesario aadir algn atributo ms para formar la clave se dice que ese atributo(s) funciona como discriminador. Este tipo de entidades se suele representar con un doble rectngulo. Vamos a mostrar esto con un ejemplo
15
nombre
id_proyecto
N:1
(0, 1)
INF_PRO
fecha
numero
PROYECTO
(0, n)
INFORME
16
Papeles Como ya comentamos un mismo tipo de entidad puede participar ms de una vez en una relacin. En estos casos se suele etiquetar la linae que une la entidad con la relacin para mostar el papel que juega.
jefe Empleados
(1, 1) (0, m)
Dirige
1:N
ID_Operario
17
Especializacin-Generalizacin: Relaciones ISA Especializacin: Si identicamos un subconjunto de entidades dentro de un conjunto de entidades que tienen algunos atributos particulares, entonces estos subgrupos se convierten en conjuntos de entidades de nivel inferior que tienen atributos o participan en relaciones que no son aplicables al conjunto de entidades de nivel superior. Generalizacin: Si identicamos atributos comunes a ciertas entidades, podemos crear: una entiad de nivel superiror que las contenga, y otras entidades de nivel inferiro con los atributos particulares. El resultado es el mismo. Y es dice que las entidades de nivel inferior heredan los atributos de la de nivel superior.
18
La relacin entre la entidad superior y las entidaes subordinadas se representan por medio de un tringulo y se suelen denominar relaciones ISA (es un).
nombre id_empleado
PERSONAL
ISA
INVESTIGADOR
DOCENTE
Espec.
europeo
Grado
Aos
19
Totalidad-Parcialidad: si toda entidad de nivel superior se relaciona con una de nivel inferior (Todo el personal o es docente o investigador). Se representa mediante un circulito. Solapamiento: si una entidad de nivel superior no puede aparecer en ms de una entidad de nivel inferior (El personal no puede ser a la vez docente e investigador). Se representa mediante un arco.
20
PERSONAL
id_empleado
totalidad ISA
nombre
sin solapamiento
INVESTIGADOR
DOCENTE
Espec.
europeo
Grado
Aos
21
Agregacin La agregacin surge cuando ms de una entidad (no necesariamente distintas) se asocian de tal forma que se las puede ver como a una nueva entidad (piloto-moto, marido-mujer, etc.). Esta nueva entidad, fruto de esa ntima unin, se puede relacionar con otras entidades (Gran Premio, hipoteca, etc.). Se representa enmarcando la relacin en un rectngulo.
dni edad id_pensi loca
PENSIONISTA
id_balneario
M:N
OFERTA
id_ttmto
(1, n)
(1, m)
TRATAMIENTO
M:N
SOLICITUD
aceptada
num_c (1, m)
22
Otro ejemplo.
dni edad id_pensi loca
PENSIONISTA
id_balneario
M:N
OFERTA
id_ttmto
(1, n)
(1, m)
TRATAMIENTO
M:N
SOLICITUD
aceptada
num_c (1, m)
23
Reduccin a tablas
Entidades Cada entidad genera una tabla en la que cada atributo (simple) ocupa una columna y la clave primaria ser la clave de la entidad. Una entidad dbil genera una tabla en la que cada atributo (simple) ocupa una columna y la clave primaria ser la clave de la entidad de la que depende ms los atributos que funcionan como discriminadores (si los hay).
Reduccin a tablas
24
Relaciones Las relaciones 1:1 no generan tabla. En muchos casos la entidad dependiente genera una tabla en la que la clave primaria ser la clave de la entidad de la que depende. Las relaciones N:M generan tabla que incluye las claves de la entidades que se relacionan ms los aributos descriptivos de la relacin. En general la clave de esta tabla es la unin de estas claves, aunque dependiendo del caso los atributos descriptivos tambin pueden formar parte de la clave.
Reduccin a tablas
25
Las relaciones ISA pueden generar dos esquemas diferentes 1. Una tabla para la entidad superior (con los atributos comunes) y otra para cada una de la entidades inferiores con los atributos especcos ms la clave de la entidad superior. 2. Una tabla para cada una de la entidades inferiores con los atributos comunes a todas ms los especcos de cada una. La clave ser la de la entidad superior.
Reduccin a tablas
26
Las agregaciones no generan una tabla especial. Se utiliza la tabla de la relacin (N : M normalmente), y para hacer referencia a la nueva entidad se toma la clave de dicha relacin. Estas normas son generales, pero pueden aparecer casos concretos en los que sigamos otras altenativas, generalmente motivadas por temas de implementacin (velocidad, espacio, sencillez, etc.). Veremos casos concretos en diferentes ejemplos.
Reduccin a tablas
27