MODELO RELACIONAL
Y PASAJE MER A
RELACIONAL
Maestría en Bioinformática – 2010
Conceptos Generales
Es un Modelo de Datos Lógico
Se usa como Modelo implementado por DBMS
Creado por Codd en 1970
Se comenzó con una definición teórica
Se proponía un modelo con fuertes elementos
matemáticos para BDs
Actualmente es modelo lógico dominante
Conceptos Generales
Vision Informal del Modelo.
Las estructuras consisten en TABLAS,
cuyas columnas corresponden a ATRIBUTOS de tipo atómico.
y las filas corresponden a registros de datos.
Las operaciones están fundamentalmente
orientadas a manejo de TABLAS como conjuntos de registros.
Es un modelo de datos extremadamente simple y
claro, que también ha resultado potente para la mayor parte de las aplicaciones de BDs.
Conceptos Generales
Dominio D
Es un conjunto de valores atómicos
Esquema de relacion R(A1,...,An) R es el nombre de relación
A1,...,Anson los atributos con dominios D1,...,Dn Relación r(R)
Es una instancia de un esquema de relacion R Consiste en un conjunto de t-uplas (o tuplas)
r = {<a1,...,an> , <b1,...,bn>, <c1,...,cn> ,.... }
También puede interpretarse a r como:
Ejemplos
Esquema de relación:
FABRICANTES(#fabricante, nombre, direccion)
Dominio de los atributos:
nombre y dirección son del tipo STRING #fabricante es un NUMERO
Una instancia de la relación FABRICANTES:
Una tupla de la relación FABRICANTES:
<“12”,”Ana Pérez”,”Avda. A 2134”>
#fabricante Nombre Dir
12 Ana Pérez Avda. A 2134 24 Luis Rodriguez Calle B 1445
Conceptos Generales
Esquema de BD Relacional o Esquema
Relacional:
Conjunto de esquemas de relación
Ejemplo de esquema de BD relacional:
FABRICANTES(#fabricante, nombre, direccion) PRODUCTOS(#producto, descripcion)
Ejemplo de instancia de BD
Relacional
Características de Relaciones
Son conjuntos de tuplas que:
No están ordenados No hay repetidos
Valores de Atributos en tuplas:
Son valores atómicos (indivisibles).
Propiedad: primera forma normal. Atributos ordenados o no?
RI en el Modelo Relacional (I)
Restricciones de Dominio:
Restricciones de tipo en los Di.
Superclave y Clave:
Dado R(A1,...,An), se dice que X ⊆ {A1,...,An} es
superclave en un esquema R, si no puede existir
ninguna r(R) tal que tenga dos tuplas con valores iguales de X (t[X] = t`[X]).
Una clave es una superclave que no contiene
propiamente una superclave (o sea minimal). Ejemplo:
#fabricante es clave en FABRICANTES
RI en el Modelo Relacional (II)
Integridad Referencial y Foreign Keys.
Dado R, un conjunto de atributos X es una
FK de R si:
Los atributos de X coinciden en dominio con
los de una clave Y de S
Los valores de X en tuplas de r(R) (para toda
r) corresponden a valores de Y en la relación s(S)
Ejemplo:
VENTAS.#fabricante FK
RI en el Modelo Relacional (III)
Una BD se considera válida si todas las
relaciones r satisfacen las RIs
Las RI surgen de la observación de la realidad,
NO de la observación de relaciones
Las RI se definen a nivel del ESQUEMA
RELACIÓN, NO a nivel de instancia
Las RI son violadas por las instancias,
NO por los esquemas de relación
Operaciones de modificación (I)
Sea R(A,B,C) y r(R),
Insert.
insert <a,b,c> into R
Incluye la tupla <a,b,c> en la relación r.
Las tuplas insertadas deben cumplir las RI.
Delete.
Delete from R where A=''a''
borra de las tuplas de r cuyo valor para A es ''a''.
Borrar tuplas puede generar violaciones a RI,
Operaciones de modificación (II)
Update.
Sea R(A,B,C) y r(R),
update R set A = ''a1'' where B = ''b''
modifica las tuplas de r cuyo valor de B es ''b'‘, colocando “a1” como valor de A.
Actualizar tuplas puede generar violaciones a RI,
¿En qué casos ?
Pasaje de MER a Modelo
Relacional
Una o más reglas para cada estructura del
MER:
Entidades Fuertes y Atributos Relaciones
Agregaciones Entidades Débiles Categorizaciones
Entidades Fuertes
Para cada entidad se crea una tabla con las
siguientes reglas:
Por cada atributo simple se coloca un atributo en la
tabla
Se selecciona un atributo determinante para clave Para cada atributo estructurado se pone un atributo
por cada “hoja” de la estructura
Por cada atributo multivalorado se agrega una tabla
que contiene el determinante de la entidad y el atributo multivalorado.
Si es estructurado, se incluyen directamente sus componentes.
La clave de esa tabla está formada por todos los atributos
Entidades Fuertes: ejemplo
PERSONAL(cedula, nombre, edad)
Personal nombre dirección teléfono* ciudad calle número cédula edad
PERSONAL(cedula, nombre, edad, ciudad, calle,
numero)
Relaciones (I)
Para cada relación se construye una tabla con las
siguientes reglas:
Se coloca la clave primaria de las tablas de cada una de
las entidades participantes.
Se tratan los atributos de la relación como si fueran los
de una entidad.
Si la relación es N:N:…N (Todas N), entonces la clave de
la tabla está formada por los atributos correspondientes a los atributos determinantes de las entidades
participantes.
Si en la cardinalidad aparece algún 1, entonces se
definen múltiples claves. Cada una de esas claves se construye tomando todos los atributos correspondientes a los determinantes excepto uno de los que participan con cardinalidad 1.
Relaciones (I): ejemplo
SALAS (nombre, cant_camas)
PERSONAL (cedula, nombre, ciudad, calle,
numero)
TELEFONOS (cedula, telefono)
Personal cedula nombre dirección teléfono* ciudad calle número Salas nombre cant. camas trabajan horario entrada salida
TRABAJAN (nombreSala, cedula)
TRABAJAN (nombreSala, cedula, entrada,
salida)
Relaciones (II)
Por cada entidad participante, se agrega una
dependencia de inclusión por cada participante:
Si R es la tabla de la relación y Q la tabla de un
participante: Πq_pk(R) ⊆ Πq_pk(Q) Donde q_pk es la clave primaria de Q en R y en Q.
Si la relación R es total sobre Q, entonces se agrega
también la inclusión al revés: Πq_pk(Q) ⊆ Πq_pk(R).
EJEMPLO:
ΠnombreSala(TRABAJAN) ⊆ Πnombre(SALAS) Πcedula(TRABAJAN) ⊆ Πcedula(PERSONAL)
Πcedula(PERSONAL) ⊆ Πcedula(TRABAJAN)
Relaciones (III)
Si la relación es binaria, N:1 y total del lado N,
entonces se puede fusionar la tabla de la relación con la de la entidad del lado N.
Personal cedula nombre direcció n teléfono* ciudad calle número Salas nombre cant. camas trabajan horario entrada salida 1 N
SALAS (nombre, cant_camas)
PERSONAL (cedula, nombre, ciudad, calle,
Agregaciones
Personal cedula nombre dirección teléfono* ciudad calle número Salas nombre cant. camas trabajan horario entrada salidarealizan Tareas nombre
descripción
N N
N
N
TRABAJAN(nombreSala, cedula, hEntrada, hSalida) TAREAS(nombreTarea, descripcion)
REALIZAN(nombreSala, cedula, nombreTarea)
Otro ejemplo
SALAS (nombre, cant_camas)
PERSONAL (cedula, nombre, ciudad, calle, numero, nombreSala, hEntrada, hSalida)
TAREAS(nombreTarea, descripcion) REALIZAN(cedula, nombreTarea)
Πcedula(REALIZAN) ⊆ Πcedula(PERSONAL) ΠnombreTarea(REALIZAN) ⊆ ΠnombreTarea(TAREAS) ΠnombreSala(PERSONAL) ⊆ Πnombre(SALAS)
Personal cedula nombre dirección teléfono* ciudad calle número Salas nombre cant. camas trabajan
realizan Tareas nombre
descripción
1 N
N N
Entidades Débiles
Son casos particulares de relaciones N:1. De esta forma se agrega en la tabla
correspondiente a la entidad débil, la clave primaria de la tabla de la entidad fuerte, la que pasa formar parte de la clave.
H-S
1 N
HOSPITALES(codigoHosp, nombre, dir, tel) SALAS(codigoHosp, nomSala, #camas)
Categorizaciones
Solución general:
Una tabla para la super entidad
Una tabla por cada sub entidad (referenciando a la
super entidad)
Restricciones con dependencias de inclusión
Es bueno tener en cuenta las restricciones de
solapamiento y completitud.
Si es completa:
Pueden implementarse tablas para las categorías y
Referencias
“Fundamentals of Database Systems 3th Ed.”,
Elmasri & Navathe, Addison Wesley, 2000. (cap. 7 y 9)
Curso Fundamentos de Bases de Datos,
INCO,