MODELO RELACIONAL BASE DE DATOS RELACIONALES Base de Datos Relacional (BDR) Una BDR es una colección de relaciones de de diversos grados (numero de atributos), qque ue varían con el tiempo (numero de tuplas, 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): (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) Atributo (columna).. Debe tener un nombre único dentro de cada relación. es usada para almacenar un tipo de valor. valor. Cardinalidad.. Numero de tuplas en una relación. Cardinalidad Grado.. Numero de atributos en una relación Grado 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 Relación: 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 Cabecera:: Conjunto de pares Atributo:Dominio Atributo: Dominio { (A (A1 1:D :D1 1), (A (A2 2:D :D2 2) ... (A (An n:D :Dn n) } Cada Aj Aj tiene asociado sólo un Dj Dj Los Di 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 An:vin)) } }, donde i=1..m Ejemplo Un esquema de relación es: EMPLEADO (Id:Ids, Id:Ids, Nombre:Nombres, Nombre:Nombres, Dirección:Direcciones,, Fecha_Nacimiento:Fechas, 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(Fecha_nacimiento:03 03-66) ((Id_dpto Id_dpto:: 10) } { { (Id:349), (Nombre:Leon (Nombre:Leon), ), (Dirección: 53,El Alto), (Fecha_nacimiento:10--08(Fecha_nacimiento:10 08-77) ((Id_dpto 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 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 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 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 Continuamos Doc. Lic. Roberta Mallcu