Date post: | 10-Jan-2016 |
Category: |
Documents |
Upload: | destrabafull-xboxfull |
View: | 4 times |
Download: | 0 times |
of 13
Base de DatosTerico
Modelo Relacional
ConceptosEl modelo relacional representa una Base de datos (BD) como una coleccin de relaciones. Puede resultar confuso el concepto de modelo entidad-relacin vs modelo relacional, quizs porque ambos comparten casi las mismas palabras. El objetivo del modelo relacional es crear un "esquema" (schema), lo cual como se mencionar posteriormente consiste de un conjunto de "tablas" que representan "relaciones", relaciones entre los datos. Estas tablas, pueden ser construidas de diversas maneras:
Creando un conjunto de tablas iniciales y aplicar operaciones de normalizacin hasta conseguir el esquema ms ptimo.
Convertir el diagrama E-R a tablas y posteriormente aplicar tambin operaciones de normalizacin hasta conseguir el esquema ptimo.
La primera tcnica fue de las primeras en existir y, como es de suponerse, la segunda al ser ms reciente es mucho ms conveniente en varios aspectos:
El partir de un diagrama visual es muy til para apreciar los detalles, de ah que se llame modelo conceptual.
El crear las tablas iniciales es mucho ms simple a travs de las reglas de conversin. Se podra pensar que es lo mismo porque finalmente hay que "normalizar" las tablas de
todas formas, pero la ventaja de partir del modelo e-r es que la "normalizacin" es mnima por lo general.
Lo anterior tiene otra ventaja, an cuando se normalice de manera deficiente, se garantiza un esquema aceptable, en la primera tcnica no es as.
Conceptos bsicos
Tablas El modelo relacional proporciona una manera simple de representar los datos: una tabla bidimensional llamada relacin.
ttulo ao duracin tipoStar Wars 1977 124 colorMighty Ducks 1991 104 colorWayne's World 1992 95 color
Relacin Pelculas
Material de uso exclusivo para el curso Base de Datos dictado por INETPgina: 1
Base de DatosTerico
La relacin Pelculas tiene la intencin de manejar la informacin de las instancias en la entidad Pelculas, cada rengln corresponde a una entidad pelcula y cada columna corresponde a uno de los atributos de la entidad. Sin embargo las relaciones pueden representar ms que entidades, como se explicar ms adelante.
AtributosLos atributos son las columnas de una relacin y describen caractersticas particulares de ella.
EsquemasEs el nombre que se le da a una relacin y el conjunto de atributos en ella.
Pelculas (ttulo, ao, duracin, tipo)En un modelo relacin, un diseo consiste de uno o ms esquemas, a este conjunto se le conoce como "esquema relacional de base de datos" (relational database schema) o simplemente "esquema de base de datos" (database schema).
Notacin R (A1, ... , An): R es el nombre de la relacin. A1, ... , An su lista de atributos. D = dom(Ai) dominio del atributo Ai . Grado de la relacin: Nmero de atributos (n).
Ejemplo Esquema de relacin de grado 7, que describe estudiantes universitarios
ESTUDIANTE(Nombre, NSS, TelParticular, Direccion, TelOficina, Edad, Prom)
TuplasCada uno de los renglones en una relacin conteniendo valores para cada uno de los atributos.
(Star Wars, 1977, 124, color) Tuplas en una relacin:
Las tuplas de una relacin no tienen un orden especfico.
Valores dentro de una tupla:
El orden de valores dentro de una tupla es importante. Son atmicos: No se permiten atributos compuestos o multivaluados Existe el valor nulo.
DominiosSe debe considerar que cada atributo (columna) debe ser atmico, es decir, que no sea divisible, no se puede pensar en un atributo como un "registro" o "estructura" de datos.
Consta de nombre, tipo de datos y formato.
Ejemplos :
Material de uso exclusivo para el curso Base de Datos dictado por INETPgina: 2
Base de DatosTerico
Nmeros telefnicos Mdeo: Nmeros vlidos de 7 dgitos. Nombres: Conjunto de nombres de personas. Notas: Enteros entre 1 y 12. Edades empleados: Edades posibles de los empleados de una compaa; cada una debe ser un valor entre 18 y 70 aos de edad.
RelacinSemeja una tabla Fila: Coleccin de valores relacionados entre s, que representan a entidad o vnculo del mundo real. Nombres de tabla y columnas: Identifican el significado de los valores. Valores de columna: Mismo tipo de datos.
r r(R) de un esquema R(A1, A2, . . ., An) es un conjunto de n-tuplas r={t1, t2, . ., tm} tal que:
Cada n-tupla es una lista ordenada de valores t=
Cada vi
Base de DatosTerico
En una relacin no puede haber dos tuplas que tengan la misma combinacin de valores para todos sus atributos. Superclave: subconjunto de atributos (SC), tal que no debe haber dos tuplas en r con la misma combinacin de valores para dichos atributos:
t1[SC] t2[SC] Toda relacin tiene por lo menos una superclave: el conjunto de todos sus atributos.
Clave Superclave mnima: una superclave a la cual no le podemos quitar atributos sin que deje de cumplirse la restriccin de unicidad.
Clave candidata Cuando un esquema de relacin tiene ms de una clave posible
Clave primaria (CP) Es la clave candidata cuyos valores sirven para identificar las tuplas en la relacin.
Integridad de entidades Ningn valor de una clave primaria puede tener valor nulo. Al igual que las restricciones de clave estas se especifican sobre relaciones individuales.
Integridad referencial Se especifica entre dos relaciones. Sirve para mantener consistencia entre tuplas de las 2 relaciones. Informalmente: la referencia deber ser a una tupla existente de la otra relacin. Ejemplos :
EMPLEADO.ND y DEPARTAMENTO.NUMEROD
Claves extranjeras o externas (CE)
CE conjunto no vaco de atributos de R1. CE es clave extranjera si:
CP es clave primaria de R2. Los dominios de CE coinciden con los de CP. CE hace referencia a CP:
t1 R1 t2 R2 | t1 [CE] = t2[CP] . o bien t1 [CE] = valor nulo .
Ejemplo: 1. EMPLEADO.ND hace referencia a DEPARTAMENTO.
2. Puede hacer referencia a la propia relacin:
EMPLEADO.NSS_SUPERV
Restricciones de integridad semnticas
El lenguaje de definicin de datos debe contar con mecanismos para especificar RI.
Ejemplo: El salario de un empleado no debe ser superior al de su jefe.
Material de uso exclusivo para el curso Base de Datos dictado por INETPgina: 4
Base de DatosTerico
Ejemplo
Operaciones de actualizacin Son las siguientes:
Insertar.
Eliminar.
Modificar.
Cuando se aplican no deben violar ninguna RI. Es decir, despus que se ejecuten se debe
mantener la integridad referencial de la BD.
Las operaciones de actualizaciones puede violar la RI, veremos qu acciones se pueden
emprender en caso de violacin.
Insertar Al introducir una nueva tupla en la relacin se pueden violar los 4 tipos de restricciones
vistos.
Material de uso exclusivo para el curso Base de Datos dictado por INETPgina: 5
Base de DatosTerico
Dominio si se proporciona un valor de atributo que no aparezca en el dominio
correspondiente.
Clave si un valor clave de la nueva tupla ya existe en otra tupla de la relacin.
Integridad de entidades si la clave primaria de la nueva tupla es nula.
Integridad referencial si el valor de cualquier clave externa de t hace referencia a
una tupla que no existe en la relacin referida.
Material de uso exclusivo para el curso Base de Datos dictado por INETPgina: 6
Base de DatosTerico
Insertar .
Insertar .
Insertar .
Insertar .
Insertar .
Insertar
Ante violacin de una o ms restricciones:
Rechazar
Corregir
Por ejemplo en la ltima insercin, agregar un departamento 7 o cambiar al empleado
de departamento.
Eliminar
La eliminacin slo puede violar la integridad referencial
Ejemplo
Eliminar la tupla de la relacin DEPARTAMENTO con NUMEROD=5
Ante violacin de la restriccin:
Rechazar
Propagar la eliminacin
Eliminar todas las tuplas con referencia a la eliminada. (Eliminacin en cascada).
Modificar los valores del atributo de referencia.
Modificar
Para atributos que no sean clave primaria ni extranjera:
No suelen producirse problemas salvo que el nuevo valor no sea un valor vlido del
dominio.
Material de uso exclusivo para el curso Base de Datos dictado por INETPgina: 7
Base de DatosTerico
Si es clave primaria:
Equivale a eliminar la tupla e insertar una nueva.
Mismos problemas que en insertar y eliminar.
Si es clave extranjera:
Para mantener la integridad referencial el DBMS debe asegurar que el nuevo valor existe.
Ejemplo
Modificar el SALARIO del EMPLEADO con NSS=999887777 a 28.000.
Material de uso exclusivo para el curso Base de Datos dictado por INETPgina: 8
Base de DatosTerico
Paso del esquema ER al modelo relacional
Transformaciones de entidades fuertes
En principio las entidades fuertes del modelo Entidad Relacin son transformadas al modelo
relacional siguiendo estas instrucciones:
Entidades. Las entidades pasan a ser tablas.
Atributos. Los atributos pasan a ser columnas.
Identificadores principales. Pasan a ser claves primarias.
Identificadores candidatos. Pasan a ser claves candidatas.
Esto hace que la transformacin sea de esta forma:
Transformacin de relaciones
La idea inicial es transformar a cada relacin en una tabla en el modelo relacional. Pero hay que
distinguir segn el tipo de relacin.
Relaciones varios a variosEn las relaciones varios a varios, la relacin se transforma en una tabla cuyos atributos son:
Los atributos de la relacin y las claves de las entidades relacionadas (que pasarn a
ser claves externas).
La clave de la tabla la forman todas las claves externas:
Material de uso exclusivo para el curso Base de Datos dictado por INETPgina: 9
NombreIdentificador Atributo1
Atributo2 Atributo3
Nombre (Identificador, Atributo 1, Atributo 2, Atributo 3)
Transformacin de una entidad fuerte al esquema relacional
Base de DatosTerico
Relaciones uno a varios y uno a unoLas relaciones binarios de tipo uno a varios no requieren ser transformadas en una tabla en el
modelo relacional. En su lugar la tabla del lado varios (tabla relacionada) incluye como clave
externa el identificador de la entidad del lado uno (tabla principal):
As en el dibujo, el identificador2 en la tabla Entidad1 pasa a ser una clave externa. En el caso de
que el nmero mnimo de la relacin sea de cero (puede haber ejemplares de la entidad uno sin
relacionar), se deber permitir valores nulos en la clave externa identificador2. En otro caso no se
podrn permitir (ya que siempre habr un valor relacionado).
En el caso de las relaciones uno a uno, ocurre lo mismo: la relacin no se convierte en tabla, sino
que se coloca en una de las tablas (en principio dara igual cul) el identificador de la entidad
relacionada como clave externa. En el caso de que una entidad participe opcionalmente en la
relacin, entonces es el identificador de sta el que se colocar como clave externa en la tabla que
representa a la otra entidad.
Material de uso exclusivo para el curso Base de Datos dictado por INETPgina: 10
Nombre (Identificador1, Identificador2, Atributo1, Atributo2)
Transformacin de una relacin varios a varios
Identificador2
Atributo1
Atributo2
Identificador1
NombreN N
Entidad2 (Identificador2, Atributo2)Entidad1 (Identificador1, Atributo1, Identificador2, Atributo3)
Transformacin de una relacin uno a varios
Entidad2
Identificador2Atributo3
Atributo1
Entidad1Identificador1 NombreN N
Atributo2
Base de DatosTerico
Relaciones recursivasLas relaciones recursivas se tratan de la misma forma que las otras, slo que un mismo atributo
puede figurar dos veces en una tabla como resultado de la transformacin:
Entidades dbilesToda entidad dbil incorpora una relacin implcita con una entidad fuerte. Esta relacin no
necesita incorporarse como tabla en el modelo relacional. S se necesita incorporar la clave de la
entidad fuerte como clave externa en la entidad dbil. Es ms, normalmente esa clave externa
forma parte de la clave principal de la tabla que representa a la entidad dbil.
El proceso es:
Material de uso exclusivo para el curso Base de Datos dictado por INETPgina: 11
Entidad (Identificador, Atributo1, Identificador Rol 1) Entidad (Identificador, Atributo1)Relac (Identificador Rol 1, Identificador Rol 2, Atributo1)
Transformacin de auto relaciones o relaciones recursivas
Atributo1
EntidadIdentificador Relac.
N
1
Rol 2
Rol 1
Atributo1
EntidadIdentificador Relac.
N
N
Rol 2
Rol 1
EntidadFuerte (IDFuerte, Atributo1)EntidadDbil (IDDebil, IDFuerte, Atributo2)
Transformacin de una entidad dbil en el modelo relacional
Entidad Dbil
ID Dbil
Atributo1
Entidad Fuerte ID Fuerte
Atributo2
Base de DatosTerico
En ocasiones el identificador de la entidad dbil es suficiente para identificar los ejemplares de
dicha entidad, entonces ese identificador quedara como clave principal, pero el identificador de la
entidad fuerte seguira figurando como clave externa en la entidad dbil.
Generalizaciones Y EspecificacionesLas generalizaciones y/o especificaciones se convierten al modelo relacional de esta forma:
Las subentidades pasan a ser tablas.
Si la clave de la superentidad es distinta de las subentidades, entonces se coloca el identificador de la superentidad en cada subentidad como clave externa:
Material de uso exclusivo para el curso Base de Datos dictado por INETPgina: 12
Entidad2 (Identificador2, Atributo3)Entidad1 (Identificador1, Atributo1, Identificador2, Atributo2)
Transformacin de una relacin uno a varios
Entidad2
Identificador2Atributo2
Atributo1
Entidad1Identificador1 NombreN N
Atributo3
Superentidad (Identificador1, Atributo1)Subentidad1 (Identificador2, Atributo2, Identificador1)Subentidad2 (Identificador3, Atributo3, Identificador1)Transformacin de una con clave propia
Subentidad2
Identificador3
Atributo2
Subentidad1Identificador2
Atributo3
Atributo1
SuperentidadIdentificador1
Base de DatosTerico
Si la clave es la misma, entonces todas las entidades tendrn la misma columna como identificador:
La superentidad debe generar una tabla slo en el caso de que haya posibilidad de que exista un ejemplar de dicha entidad que no sea ejemplar de las subentidades. De otro modo basta con generar las tablas de las subentidades e incluir los atributos de la entidad superior:
Material de uso exclusivo para el curso Base de Datos dictado por INETPgina: 13
Superentidad (Identificador, Atributo1)Subentidad1 (Identificador, Atributo2)Subentidad2 (Identificador, Atributo3)
Transformacin si tienen la misma clave
Subentidad2
Identificador
Atributo2
Subentidad1Identificador
Atributo3
Atributo1
SuperentidadIdentificador
Subentidad1 (Identificador, Atributo2, Atributo1)Subentidad2 (Identificador, Atributo3, Atributo1)
Transformacin cuando toda superentidad figura como subentidad
Subentidad2
Identificador
Atributo2
Subentidad1Identificador
Atributo3
Atributo1
SuperentidadIdentificador
Conceptos bsicosTablasAtributosEsquemasR es el nombre de la relacin.A1, ... , An su lista de atributos.D = dom(Ai) dominio del atributo Ai .Grado de la relacin: Nmero de atributos (n).EjemploEsquema de relacin de grado 7, que describe estudiantes universitariosESTUDIANTE(Nombre, NSS, TelParticular, Direccion, TelOficina, Edad, Prom)TuplasLas tuplas de una relacin no tienen un orden especfico.El orden de valores dentro de una tupla es importante.Son atmicos: No se permiten atributos compuestos o multivaluadosExiste el valor nulo.DominiosEjemplos:Nmeros telefnicos Mdeo: Nmeros vlidos de 7 dgitos.Nombres: Conjunto de nombres de personas.Notas: Enteros entre 1 y 12.Edades empleados: Edades posibles de los empleados de una compaa; cada una debe ser un valor entre 18 y 70 aos de edad.RelacinFila: Coleccin de valores relacionados entre s, que representan a entidad o vnculo del mundo real.Nombres de tabla y columnas: Identifican el significado de los valores.Valores de columna: Mismo tipo de datos.r r(R) de un esquema R(A1, A2, . . ., An) es un conjunto de n-tuplas r={t1, t2, . ., tm} tal que:Cada n-tupla es una lista ordenada de valores t=Cada vi