MODELO RELACIONAL BASE DE DATOS RELACIONALES
Base de Datos Relacional (BDR) Una BDR es una colección de relaciones de diversos grados (numero de atributos), que varían con el tiempo (numero de tuplas, estado) ä Las relaciones (tablas) son la estructura lógica de la BD, corresponden a los Niveles externo y conceptual.
Presentación y Orígenes del Modelo Relacional ä El modelo Relacional fue introducido por Codd en el año 1970. ä Es un Modelo de Datos Lógico - basado en registros ä El modelo más usado en las aplicaciones comerciales de procesamiento de datos convencional. Esta dividido en 3 partes: 1. Estructura de Datos 2. Integridad de Datos (características generales) 3. Manipulación de Datos
1. Estructura de datos relacional Relación está representada mediante una Tabla con filas y columnas. Representa una entidad genérica,
Términos Básicos en el Modelo Relacional - Relación (Tabla):.. Es una estructura simple en el cual los datos son organizados y almacenados. Tupla (Fila). Cada fila describe una ocurrencia de una relación Atributo(columna) (columna).. Debe tener un nombre único dentro de cada relación. es usada para almacenar un tipo de valor. Cardinalidad. Numero de tuplas en una relación. Grado. Numero de atributos en una relación
Propiedades de una relación Estado = conjunto matemático de tuplas ä ä ä ä No existen tuplas repetidas Las tuplas no están ordenadas Los atributos no están ordenados esquema = conjunto de pares Atributo:Dominio Los valores de atributos son Atómicos
Relación vs. Tabla Relación: Representación abstracta de elemento o entidad de datos Tabla: Representación concreta de tal elemento abstracto Fácil de utilizar, entender, razonar... pedi-num cli-num emb-fech 1 32 1/3 2 33 1/2 3 17 1/4
Definiciones Formales Dominio Conjunto de valores atómicos del mismo tipo, donde toman su valor los atributos Una relación R, sobre conjunto de dominios Dn se compone de dos partes: Esquema o Cabecera: Conjunto de pares Atributo:Dominio { (A1:D1), (A2:D2)... (An:Dn) } Cada Aj tiene asociado sólo un Dj Los Di no tienen por qué ser distintos entre sí Estado, Cuerpo o Instancia Conjunto de tuplas que contiene en un instante tupla = conjunto de pares Atributo:Valor { { (A1:vi1), (A2:vi2)... (An:vin) } }, donde i=1..m
Ejemplo Un esquema de relación es: EMPLEADO (Id:Ids, Nombre:Nombres, Dirección:Direcciones, Fecha_Nacimiento:Fechas, Id_Dpto:Ids ) Un estado de la relación es: { { (Id:126), (Nombre:Flores Nombre:Flores), (Dirección: 2,Munaypata), (Fecha_nacimiento:03-03-66) (Id_dpto: 10) } { { (Id:349), (Nombre:Leon Nombre:Leon), (Dirección: 53,El Alto), (Fecha_nacimiento:10-08-77) (Id_dpto: 20) }
2.Integridad de datos El modelo relacional tiene dos reglas que ayudan a asegurar la integridad de los datos. Estas son La regla de integridad de entidad establece que una clave primaria no puede tener valores nulos. Las claves ajenas pueden contener valores nulos. No hay ningún requisito en el modelo relacional que obligue a que una clave ajena sea única. La regla de integridad referencial considera la asociación entre las claves primarias y las claves ajenas. La integridad referencial establece que una clave ajena debe existir en una tabla que contenga la clave primaria.
Reglas de Integridad Las reglas de integridad informan al SGBD de restricciones del mundo real. Gracias a las reglas de Integridad ä El SGBD evita configuraciones de datos imposibles ä Aumentan la capacidad expresiva del modelo relacional ä Cada BD particular, incluye: ä Características generales de integridad importantes y necesarias en toda BD ä Claves Candidatas y Primarias ä Claves Ajenas (o foráneas o externas)
Superclave y clave de una relación Sea R una relación ä Una superclave de R es un subconjunto SK de atributos tal que cumple la restricción de Unicidad es decir: No existen dos tuplas distintas con la misma combinación de valores para SK ä Una clave de R es una superclave tal que cumple la restricción de Irreductibilidad esto significa que: Ningún subconjunto de SK cumple la restricción de Unicidad ä Clave Simple (1 atributo) o Compuesta (varios atributos) ä Cada clave es una restricción de integridad
Clave candidata, primaria y alternativa Si R tiene varias claves à Claves Candidatas ä Claves (ACTOR) = { {nombre}, {nombreartistico} } ä Claves (EMPLEADO) = { {Id}, {nombre, fecha_nacimiento,},{nss} } ä La Clave Primaria (Primary Key, PK ) es la clave candidata elegida para identificar las tuplas de R ä Clave Primaria (ACTOR) = {nombreartistico} ä Clave Primaria (EMPLEADO) = {nss} ä Las Claves Alternativas (AK) son el resto de claves candidatas ä Claves Alternativas (ACTOR) = {nombre} ä Claves Alternativas (EMPLEADO) = { {dni}, {nombre, fechanac} }
clave ajena (externa o foránea) Conjunto de atributos FK de una relación R2, tal que: 1. Existe otra relación R1 con clave primaria PK 2. Cada valor de FK en R2 es idéntico al de PK en alguna tupla de R1 Una clave foránea es un conjunto de atributos de una relación que hace referencia a la clave primaria de otra relación (o la misma).
clave ajena (externa o foránea) ä Cada componente de una FK debe estar definido sobre el mismo dominio que el correspondiente atributo de la PK a la que referencia ä La clave Ajena puede ser Simple o Compuesta ä El uso de Claves Ajenas facilita a: ä Eliminación de la Redundancia: Integridad entre ficheros ä Mecanismo del Modelo Relacional de datos para establecer VÍNCULOS ENTRE RELACIONES
Mantenimiento de la Integridad Referencial Las operaciones que no satisfacen la Integridad Referencial, dejan la BD en un estado incorrecto. Ejemplo Sea el ambiente de aplicación Hotel: Qué pasaría si se eliminara la tupla (501, D,...) en HABITAC? ä Y si se eliminara la tupla (100, D,...)?
Mantenimiento de la Integridad Referencial Cómo evita el SGBD esos estados incorrectos? El SGBD puede... ä Rechazar toda operación que pueda provocar un estado ilegal, ä Aceptar (y ejecutar) tales operaciones, pero realizar acciones que restauren la integridad de los datos Diseñador de la BD puede especificar al SGBD: Acciones de Mantenimiento de la Integridad Referencial para que la BD SIEMPRE alcance un estado final legal
Valores Nulos En el mundo real existe... ä Información perdida fechanacimiento desconocida ä Ausencia de información tiene teléfono? ä Valores no aplicables a ciertos atributos fechjubilac a empleado activo ä Para representar estas situaciones en los sistemas de BD se utiliza el NULO ( null)
Valores Nulos ä Si una tupla tiene un atributo que contiene un nulo, significa que el valor real de tal atributo es desconocido ä Es posible especificar si un atributo puede o no contener nulo. Nulo no es un valor en sí mismo, sino un indicador de ausencia de información. ä No hay dos nulos iguales (num_telefono NULL <> edad NULL
Implicaciones de los Nulos en la Integridad NULO y Claves Primarias: ä Restricción de Integridad de Entidad: Ningún atributo componente de una clave primaria puede contener nulo. NULO y Claves Ajenas ä El Modelo Relacional permite nulo como valor de clave ajena ä depto = null à empleados no asignado a ningún departamento ä jefe = null à empleados sin jefe
3. Acciones de mantenimiento de la Integridad Referencial R2 à R1 ä Operación: Eliminar una tupla t de R1 que es referenciada por otras de R2 Acciones posibles: ä 1. Rechazar la operación (acción por defecto) ä 2. Cascada.. Propagar la eliminación ä 3. Establecer nulos Sólo si la FK de R2 permite NULO - Toda tupla de R2 que referencia a t pasa a contener NULL en FK - Eliminar la tupla t
Acciones de mantenimiento de la Integridad Referencial Operación: Modificar el valor de la PK de una tupla t de R1 que es referenciada por otras tuplas de R2. Acciones posibles: 1. Rechazar la operación (acción por defecto) 2. Cascada. Propagar la modificación 3. Establecer nulos.sólo si la FK de R2 permite NULO ätoda tupla de R2 que referencia a t pasa a contener NULL en FK ämodificar el valor de la PK de t
Doc. Lic. Roberta Mallcu Continuamos