Sunteți pe pagina 1din 13

MODELO RELACIONAL

Y PASAJE MER A
RELACIONAL
Maestra en Bioinformtica 2010

Conceptos Generales

 Es un Modelo de Datos Lgico


 Se usa como Modelo implementado por DBMS
 Creado por Codd en 1970
 Se comenz con una definicin terica
 Se propona un modelo con fuertes elementos
matemticos para BDs
 Actualmente es modelo lgico dominante
 Los DBMS Relacionales son la enorme mayoria
Conceptos Generales

 Vision Informal del Modelo.


 Las estructuras consisten en TABLAS,
 cuyas columnas corresponden a ATRIBUTOS de tipo
atmico.
 y las filas corresponden a registros de datos.

 Las operaciones estn fundamentalmente


orientadas a manejo de TABLAS como conjuntos de
registros.
 Es un modelo de datos extremadamente simple y
claro, que tambin ha resultado potente para la
mayor parte de las aplicaciones de BDs.

Conceptos Generales

 Dominio D
 Es un conjunto de valores atmicos
 Esquema de relacion R(A1,...,An)
 R es el nombre de relacin
 A1,...,An son los atributos con dominios D1,...,Dn

 Relacin 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> ,.... }
 Tambin puede interpretarse a r como:
 r(R) (D1 x ... x Dn)
Ejemplos
 Esquema de relacin:
FABRICANTES(#fabricante, nombre, direccion)
 Dominio de los atributos:
 nombre y direccin son del tipo STRING
 #fabricante es un NUMERO
 Una instancia de la relacin FABRICANTES:
#fabricante Nombre Dir
12 Ana Prez Avda. A 2134
24 Luis Rodriguez Calle B 1445

 Una tupla de la relacin FABRICANTES:


<12,Ana Prez,Avda. A 2134>

Conceptos Generales

 Esquema de BD Relacional o Esquema


Relacional:
 Conjunto de esquemas de relacin
 Ejemplo de esquema de BD relacional:
FABRICANTES(#fabricante, nombre, direccion)
PRODUCTOS(#producto, descripcion)
VENTAS(#producto, #fabricante, precio)
Ejemplo de instancia de BD
Relacional

Caractersticas de Relaciones

 Son conjuntos de tuplas que:


 No estn ordenados
 No hay repetidos
 Valores de Atributos en tuplas:
 Son valores atmicos (indivisibles).
 Propiedad: primera forma normal.
 Atributos ordenados o no?
 Depende del enfoque
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 relacin
s(S)
 Ejemplo:
 VENTAS.#fabricante
FK
FABRICANTES.#fabricante
RI en el Modelo Relacional (III)

 Una BD se considera vlida si todas las


relaciones r satisfacen las RIs
 Las RI surgen de la observacin de la realidad,
NO de la observacin de relaciones
 Las RI se definen a nivel del ESQUEMA
RELACIN, NO a nivel de instancia
 Las RI son violadas por las instancias,
NO por los esquemas de relacin

Operaciones de modificacin (I)

 Sea R(A,B,C) y r(R),


 Insert.
insert <a,b,c> into R
Incluye la tupla <a,b,c> en la relacin 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,
 En qu casos ?
Operaciones de modificacin (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 ms reglas para cada estructura del
MER:
 Entidades Fuertes y Atributos
 Relaciones

 Agregaciones

 Entidades Dbiles

 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


cdula

nombre
Personal edad
ciudad
direccin
calle
nmero
telfono*

 PERSONAL(cedula, nombre, edad)


 PERSONAL(cedula, nombre, edad, ciudad, calle,
numero)

 TELEFONOS(cedula, telefono)
Relaciones (I)
 Para cada relacin 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 relacin como si fueran los
de una entidad.
 Si la relacin 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 algn 1, entonces se
definen mltiples 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


nombre
entrada
cant. camas horario
salida cedula
nombre
N N
Salas trabajan Personal ciudad
direccin
calle
nmero
telfono*

 SALAS (nombre, cant_camas)


 PERSONAL (cedula, nombre, ciudad, calle,

numero)
 TELEFONOS
 (cedula, telefono)
TRABAJAN (nombreSala, cedula)
 TRABAJAN (nombreSala, cedula, entrada,
salida)
Relaciones (II)
 Por cada entidad participante, se agrega una
dependencia de inclusin por cada participante:
 Si R es la tabla de la relacin 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 relacin R es total sobre Q, entonces se agrega
tambin la inclusin al revs: q_pk(Q) q_pk(R).
 EJEMPLO:
 nombreSala(TRABAJAN) nombre(SALAS)
 cedula(TRABAJAN) cedula(PERSONAL)
 cedula(PERSONAL) cedula(TRABAJAN)

Relaciones (III)
 Si la relacin es binaria, N:1 y total del lado N,
entonces se puede fusionar la tabla de la
relacin con la de la entidad del lado N.
nombre
entrada
cant. camas horario
salida cedula
nombre
1 N
Salas trabajan Personal ciudad
direcci
n calle
nmero
telfono*

 SALAS (nombre, cant_camas)


 PERSONAL (cedula, nombre, ciudad, calle,
numero, nombreSala, hEntrada, hSalida)
Agregaciones
N nombre
realizan Tareas
N descripcin
nombre
cant. camas entrada
horario cedula
salida nombre
N N
Salas trabajan Personal ciudad
direccin
calle
nmero
telfono*

 TRABAJAN(nombreSala, cedula, hEntrada, hSalida)


 TAREAS(nombreTarea, descripcion)
 REALIZAN(nombreSala, cedula, nombreTarea)

Otro ejemplo
N nombre
realizan Tareas
descripcin
nombre
cant. camas
N cedula
nombre
1 N
Salas trabajan Personal ciudad
direccin
calle
nmero
telfono*
 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)
Entidades Dbiles
 Son casos particulares de relaciones N:1.
 De esta forma se agrega en la tabla
correspondiente a la entidad dbil, la clave
primaria de la tabla de la entidad fuerte, la que
pasa formar parte de la clave.

1 N
H-S

 HOSPITALES(codigoHosp, nombre, dir, tel)


 SALAS(codigoHosp, nomSala, #camas)

Categorizaciones
 Solucin general:
 Una tabla para la super entidad
 Una tabla por cada sub entidad (referenciando a la
super entidad)
 Restricciones con dependencias de inclusin

 Es bueno tener en cuenta las restricciones de


solapamiento y completitud.
 Si es completa:
 Pueden implementarse tablas para las categoras y
una vista para la entidad principal.
Referencias
 Fundamentals of Database Systems 3th Ed.,
Elmasri & Navathe, Addison Wesley, 2000.
(cap. 7 y 9)
 Curso Fundamentos de Bases de Datos,
INCO,
http://www.fing.edu.uy/inco/cursos/bdatos/

S-ar putea să vă placă și