Sie sind auf Seite 1von 26

Modelo Relacional

Conceptos

El modelo relacional representa una BD como una: Coleccin de relaciones. Relacin: Semeja 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.

Conceptos

Terminologa:

A las tablas se las llama relaciones. A las filas tuplas. A las cabeceras de columna atributos. Al tipo de datos de una columna dominio.

Dominio

Un domino D es un conjunto de valores atmicos (indivisible). Consta de nombre, tipo de datos y formato. Ejemplos:

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.

Esquema de relacin

Sirve para describir una relacin 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).
Esquema de relacin de grado 7, que describe estudiantes universitarios ESTUDIANTE(Nombre, NSS, TelParticular, Direccion, TelOficina, Edad, Prom)

Ejemplos:

Relacin

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=<v1, v2, . . ., vn> Cada vi 1i n es:

Un elemento de dom(Ai). O un valor nulo. El esquema R se llama intensin. Un estado de relacin r(R) se llama extensin.

Caractersticas de las relaciones

Tuplas en una relacin:

Las 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 multivaluados Existe el valor nulo.

Valores dentro de una tupla:

Notacin del MR

Esquema de la relacin R de grado n: R (A1, ... , An) Ej: ESTUDIANTE (Nombre, Codigo, Ao, Especialidad) Relacin del Esquema R, r(R) Conjunto de n-tuplas r = {t1, t2,.. , tn} Tupla t = <v1, v2,.. , vn> Notacin para los valores t = <Smith, 17,1,CS> t [Nombre] = <Smith> t [Numero, Especialidad, Ao] = <17,CS,1> El nombre de la relacin como ESTUDIANTE indica el conjunto actual de tuplas en esa relacin en tanto que ESTUDIANTE (Nombre, Codigo, ) se refiere al esquema de la relacin.

Restricciones del Modelo Relacional


De dominio De clave Integridad de entidades Integridad referencial Claves extranjeras o externas

Restricciones de dominio

El valor de cada atributo A debe ser un valor atmico del dominio dom(A) para ese atributo. En general incluyen los tipos de datos numricos estndar:

Nmeros enteros y reales Caracteres (cadenas fijas y variables) Fecha, hora, marca de tiempo, dinero

Restricciones de clave

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.
Cuando un esquema de relacin tiene ms de una clave posible

Clave candidata

Clave primaria

Es la clave candidata cuyos valores sirven para identificar las tuplas en la relacin.

Ejemplo de claves

Claves candidatas

Nmero matrcula Nmero serie motor Nmero matrcula Se indica subrayando el atributo.

Clave primaria

Esquemas y restricciones

Esquema de BD Relacional, S:

Conjunto de esquema de relaciones S = {R1, R2,.. , Rn} Conjunto de restricciones de integridad RI

Estado de BD Relacional, BD de S

Conjunto de ejemplares de relaciones BD = {r1, r2,.. , rn}, tal que: cada ri es un ejemplar de Ri Y las relaciones ri satisfacen las restricciones de integridad especificadas

Restricciones de entidades e integridad

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. Ej: EMPLEADO.ND y DEPARTAMENTO.NUMEROD

Clave externa (extranjera)


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: t R t R | t [CE] = t [CP] . 1 1 2 2 1 2 o bien t [CE] = valor nulo . 1
EMPLEADO.ND hace referencia a DEPARTAMENTO. EMPLEADO.NSS_SUPERV

Ejemplo:

Puede hacer referencia a la propia relacin:

Restricciones de integridad semnticas

El lenguaje de definicin de datos debe contar con mecanismos para especificar RI. El SGBD puede imponerlas automticamente. Ejemplo: El salario de un empleado no debe ser superior al de su jefe.

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. Veremos: Qu RI puede violar cada operacin. 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.

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.

Ejemplos

Ejemplos (continuacin)

Ejemplos (continuacin)

Insertar <Cecilia, C, Kolonsky, 677678989, 05-ABR-60, Calle Viento 6357, F, 28000, nulo, 4 >. Insertar <Cecilia, C, Kolonsky, 677678989, 05-ABR-60, Calle Viento 6357, 1 , 28000, nulo, 4 >. Insertar <Cecilia, C, Kolonsky, nulo, 05-ABR-60, Calle Viento 6357, 1 , 28000, nulo, 4 >. Insertar <Cecilia, C, Kolonsky, 999887777, 05-ABR-60, Calle Viento 6357, F, 28000, nulo, 4 >.

Insertar <Cecilia, C, Kolonsky, 677678989, 05-ABR-60, Calle Viento 6357, F, 28000, nulo, 7 >.

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

Eliminar

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.

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.

Das könnte Ihnen auch gefallen