Modelo Relacional

26
Modelo Relacional

description

Modelo Relacional. Conceptos. El modelo relacional representa una BD como una: Colección de relaciones. Relación: Semeja una tabla: Fila: Colección de valores relacionados entre sí, que representan a entidad o vínculo del mundo real. - PowerPoint PPT Presentation

Transcript of Modelo Relacional

Page 1: Modelo Relacional

Modelo Relacional

Page 2: Modelo Relacional

Conceptos

El modelo relacional representa una BD como una: Colección de relaciones.

Relación: Semeja una tabla: Fila: Colección de valores relacionados entre sí, que

representan a entidad o vínculo del mundo real. Nombres de tabla y columnas: Identifican el significado

de los valores. Valores de columna: Mismo tipo de datos.

Page 3: Modelo Relacional

Conceptos

Terminología: 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.

Page 4: Modelo Relacional

Dominio

Un domino D es un conjunto de valores atómicos (indivisible).

Consta de nombre, tipo de datos y formato.

Ejemplos: Números telefónicos Mdeo: Números válidos de 7 dígitos. Nombres: Conjunto de nombres de personas. Notas: Enteros entre 1 y 12. Edades empleados: Edades posibles de los empleados de una

compañía; cada una debe ser un valor entre 18 y 70 años de edad.

Page 5: Modelo Relacional

Esquema de relación

Sirve para describir una relación Notación R(A1, ... , An):

R es el nombre de la relación. A1, ... , An su lista de atributos. D = dom(Ai) dominio del atributo Ai . Grado de la relación: Número de atributos (n).

Ejemplos: Esquema de relación de grado 7, que describe estudiantes

universitarios ESTUDIANTE(Nombre, NSS, TelParticular,

Direccion, TelOficina, Edad, Prom)

Page 6: Modelo Relacional

Relación

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 1≤i ≤n es: Un elemento de dom(Ai). O un valor nulo.

El esquema R se llama intensión. Un estado de relación r(R) se llama extensión.

Page 7: Modelo Relacional

Características de las relaciones

Tuplas en una relación: Las tuplas de una relación no tienen un orden

específico. Valores dentro de una tupla:

El orden de valores dentro de una tupla es importante. Son atómicos: No se permiten atributos compuestos

o multivaluados Existe el valor nulo.

Page 8: Modelo Relacional

Notación del MR

Esquema de la relación R de grado n: R (A1, ... , An) Ej: ESTUDIANTE (Nombre, Codigo, Año, Especialidad)

Relación del Esquema R, r(R) Conjunto de n-tuplas r = {t1, t2,.. , tn} Tupla t = <v1, v2,.. , vn> Notación para los valores

t = <‘Smith’, 17,1,’CS’> t [Nombre] = <‘Smith’> t [Numero, Especialidad, Año] = <17,’CS’,1>

El nombre de la relación como ESTUDIANTE indica el conjunto actual de tuplas en esa relación en tanto que ESTUDIANTE (Nombre, Codigo, …) se refiere al esquema de la relación.

Page 9: Modelo Relacional

Restricciones del Modelo Relacional

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

Page 10: Modelo Relacional

Restricciones de dominio

El valor de cada atributo A debe ser un valor atómico del dominio dom(A) para ese atributo.

En general incluyen los tipos de datos numéricos estándar:

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

Page 11: Modelo Relacional

Restricciones de clave

En una relación no puede haber dos tuplas que tengan la misma combinación de valores para todos sus atributos. Superclave : subconjunto de atributos (SC), tal que no debe

haber dos tuplas en r con la misma combinación de valores para dichos atributos:t1[SC] <> t2[SC] Toda relación tiene por lo menos una superclave: el conjunto de

todos sus atributos. Clave

“Superclave mínima” , una superclave a la cual no le podemos quitar atributos sin que deje de cumplirse la restricción de unicidad.

Clave candidata Cuando un esquema de relación tiene más de una clave posible

Clave primaria Es la clave candidata cuyos valores sirven para identificar las tuplas

en la relación.

Page 12: Modelo Relacional

Ejemplo de claves

Claves candidatas Número matrícula Número serie motor

Clave primaria Número matrícula Se indica subrayando el atributo.

Page 13: Modelo Relacional

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

Page 14: Modelo Relacional

Restricciones de entidades e integridad

Integridad de entidades: Ningún 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 relación.

Ej: EMPLEADO.ND y DEPARTAMENTO.NUMEROD

Page 15: Modelo Relacional

Clave externa (extranjera)

CE conjunto no vacío 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: EMPLEADO.ND hace referencia a DEPARTAMENTO.

Puede hacer referencia a la propia relación: EMPLEADO.NSS_SUPERV

Page 16: Modelo Relacional

Restricciones de integridad semánticas

El lenguaje de definición de datos debe contar con mecanismos para especificar RI.

El SGBD puede imponerlas automáticamente.

Ejemplo: “El salario de un empleado no debe ser superior al de su jefe”.

Page 17: Modelo Relacional

Ejemplo

Page 18: Modelo Relacional

Operaciones de actualización

Son las siguientes: Insertar. Eliminar. Modificar.

Cuando se aplican no deben violar ninguna RI. Es decir, después que se ejecuten se debe mantener la integridad referencial de la BD.

Veremos: Qué RI puede violar cada operación. Qué acciones se pueden emprender en caso de violación.

Page 19: Modelo Relacional

Insertar

Al introducir una nueva tupla en la relación 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 relación. 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 relación referida.

Page 20: Modelo Relacional

Ejemplos

Page 21: Modelo Relacional

Ejemplos (continuación)

Page 22: Modelo Relacional

Ejemplos (continuación)

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 >.

Page 23: Modelo Relacional

Insertar

Ante violación de una o más restricciones: Rechazar Corregir

Por ejemplo en la última inserción, agregar un departamento 7 o cambiar al empleado de departamento.

Page 24: Modelo Relacional

Eliminar

La eliminación sólo puede violar la integridad referencial

Ejemplo Eliminar la tupla de la relación

DEPARTAMENTO con NUMEROD=5

Page 25: Modelo Relacional

Eliminar

Ante violación de la restricción: Rechazar Propagar la eliminación

Eliminar todas las tuplas con referencia a la eliminada. (Eliminación en cascada).

Modificar los valores del atributo de referencia.

Page 26: Modelo Relacional

Modificar

Para atributos que no sean clave primaria ni extranjera:

No suelen producirse problemas. Salvo que el nuevo valor no sea un valor válido 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.