Tema 6. El Modelo Relacional PDF
Document Details
Uploaded by Deleted User
Tags
Summary
This document details a relational model used for database design. It covers concepts like independence, flexibility, and the different components of a relational model, including relations, attributes, domains, tuples, degree, and cardinality. It also includes various types of relationships, their definitions, and relevant rules.
Full Transcript
Tema 6. El Modelo Relacional. Estática Los objetivos de Codd con el modelo relacional son: Independencia física → nos da igual donde se encuentre físicamente la información. Independencia lógica → añadir, eliminar o mod...
Tema 6. El Modelo Relacional. Estática Los objetivos de Codd con el modelo relacional son: Independencia física → nos da igual donde se encuentre físicamente la información. Independencia lógica → añadir, eliminar o modificar los elementos no debe repercutir en los programas o usuarios que acceden a ellos. Flexibilidad → cada usuario ve los datos que necesita, por lo que dos usuarios podrán ver datos distintos. Uniformidad → las estructuras lógicas de los datos son tablas. Sencillez → el modelo es fácil de comprender y utilizar por parte del usuario final. Elementos del MR Los elementos básicos del modelo son: Relación → se representa mediante una tabla. Atributo → son las propiedades de la relación. Se representa mediante una columna. Dominio → conjunto válido de valores que toma un atributo. Tupla → ocurrencia de la relación. Se representa mediante una fila. Grado → número de atributos de la relación (columnas). Cardinalidad → número de tuplas de una relación (filas). Tema 6. El Modelo Relacional. 1 Características importantes de una relación: — No puede haber tuplas duplicadas. — El orden de las tuplas es irrelevante. — En el cruce de un atributo y una tupla sólo puede haber un valor. — El orden de los atributos no es significativo Hay varios tipos de relación: Con nombre. Persistentes → para borrarla, es necesario que lo haga el usuario. Están compuestas por la base y las vistas. Temporales → están formadas por la base temporal y las vistas temporales. Sin nombre → son siempre temporales y representan los resultados de consultas. Definición Formal de Relación Una relación por extensión es un conjunto de m elementos denominados tuplas [tj ]. Cada tupla es un conjunto de pares [< An : vnj >] donde cada Ai es el nombre de un atributo y vij es un valor del correspondiente dominio Di sobre el que está definido el atributo. r(R) = tj {(< A1 : v1j >,... < Ai : vij >,... < An : vnj >) : vij ∈ Di } Esquema de relación (intensión): Relación (extensión): Tema 6. El Modelo Relacional. 2 Claves Clave candidata → atributos que identifican unívoca y mínimamente cada tupla de una relación. Clave primaria (Atributo) → una de las claves candidatas que elijamos. Clave alternativa (Atributo o AtributoU N IQU E ) → el resto de claves candidatas que no sean la primaria. Estos si pueden tomar valores nulos. Clave ajena → nuevo atributo que referencie a la clave primaria de la otra relación. Puede estar compuesta de dos atributos, si la clave primaria de R2 está formada por 2 atributos, además con el mismo orden. Atributos que admiten valores nulos → (Atributo*) Atributos que no admiten valores nulos → (AtributoNN ) Estas claves tienen ciertas restricciones: Regla de integridad de entidad → ningún atributo que forma parte de la clave primaria puede tomar valores nulos. Regla de integridad referencial → si una relación R2 tiene un atributo que es la clave primaria de la relación R1, entonces los valores de dicho atributo deben concordar con los de la clave primaria o tener valores nulos. Opciones de borrado y actualización de la clave ajena → se utilizan para saber como actuar si se borra la clave ajena de alguna relación. Tema 6. El Modelo Relacional. 3 No action → es la solución por defecto. Si hay una R1 usando una R2, no se puede eliminar R2. Cascade → si se elimina un R2, se eliminan todos los elementos de la tabla que lo contengan. Set null → donde ponía R2, se vuelve nulo. Esto solo se puede hacer, si el atributo es opcional. Set default → se cambia R2 por un valor por defecto. Las 12 Reglas de Codd Regla 0. Regla básica → cualquier sistema que se anuncie como SGBD relacional, debe ser capaz de gestionar por completo las BD utilizando sus capacidades relacionales. No deberá recurrir a operaciones no relacionales para completar sus capacidades de gestión de datos. Regla 1. Representación de la información → toda información almacenada en una base de datos relacional debe representarse explícitamente a nivel lógico y de manera única por medio de valores en tablas. El propio catálogo del sistema es una BD Relacional. Regla 2. Acceso garantizado → todo dato debe ser accesible mediante una combinación de un nombre de tabla, un valor de su clave y el nombre de una columna. Es una forma de insistir en la obligatoriedad de la clave primaria. Los datos no se referencian por su posición física. Regla 3. Tratamiento sistemático de valores nulos → los valores nulos, han de ser tratados sistemáticamente por el sistema, el cual ha de ofrecer las facilidades necesarias para su tratamiento. Regla 4. Catálogo activo en línea basado en el modelo relacional → la representación de metainformación debe ser igual a la de los otros datos y su acceso debe poder realizarse por medio del mismo lenguaje relacional que se utiliza para los demás datos. Por tanto, en un SGBD Relacional hay dos tipos de tablas: Tablas de usuario con datos. Catálogo → tablas del sistema que contienen datos que describen la estructura de la BD. Tema 6. El Modelo Relacional. 4 Regla 5. Sublenguaje de datos completo → debe existir un lenguaje que permita un completo manejo de la base de datos. SQL aporta todas estas funciones. Regla 6. Actualización de vistas → toda vista teóricamente actualizable debe poder ser actualizada por el sistema. Regla 7. Inserciones, modificaciones y eliminaciones de alto nivel → todas las operaciones de manipulación de datos deben operar sobre conjuntos de filas, lenguaje no navegacional. Regla 8. Independencia física de los datos → el acceso lógico a los datos debe mantenerse incluso cuando cambien los métodos de acceso o la forma de almacenamiento. Regla 9. Independencia lógica de los datos → los programas de aplicación no deben verse afectados por cambios realizados en las tablas que estén permitidos teóricamente y que preserven la información. Regla 10. Independencia de la integridad → las reglas de integridad de una base de datos deben ser definible por medio del sublenguaje de datos relacional y habrán de almacenarse en el catálogo de la base de datos, no en los programas de aplicación. Regla 11. Independencia de la distribución → debe existir un sublenguaje de datos que pueda soportar BD distribuidas sin alterar los programas de aplicación cuando se distribuyan los datos por primera vez o se redistribuyan posteriormente. El sistema debe ser responsable de presentar los datos al usuario final como si estuvieran en una única máquina. Sin embargo, para que un sistema sea relacional, no tiene obligatoriamente que dar soporte a las BD distribuidas. Regla 12. Regla de la no subversión → si un SGBD soporta un lenguaje de bajo nivel que permite el acceso fila a fila, éste no puede utilizarse para saltarse las reglas de integridad expresadas por medio del lenguaje de más alto nivel. Dinámica La dinámica del modelo relacional permite la transformación entre estados de la BD que se realiza aplicando un conjunto de operadores al estado origen, para obtener el estado destino. Tema 6. El Modelo Relacional. 5 O(BDi ) = BDj Hay dos tipos de lenguajes relacionales: Algebraicos [Álgebra Relacional] → las operaciones se aplican sobre operandos y el resultado es otra relación. Predicativos [Cálculo Relacional] → se define el estado sin indicar las operaciones. Álgebra Relacional Tanto los operandos como el resultado son Relaciones (Tablas). Operadores primitivos : Proyección [πatributos R] → muestra una relación solo con los atributos definidos de R. Selección [σcondicioˊn R] → muestra una relación solo con las tuplas que cumplen la condición [=, , AND, OR, …]. Unión [R1 ∪ R2 ] → muestra una relación con el conjunto de tuplas que pertenezcan a R1, a R2 o a ambas. Diferencia [R1 − R2 ] → muestra una relación cuyas tuplas pertenecen a R1 y no a R2. Producto Cartesiano [R1 × R2 ] → muestra una relación con los atributos de ambas relaciones. Operadores derivados : Combinación [R1 θ R2 ] → si hay varios atributos en R1 y R2 que se condicioˊn llaman igual pero queremos combinarlos entorno a un solo atributo, es necesario la condición. Si solo hay un atributo que se llame igual, R1 ∗ R2 . Intersección [R1 ∩ R2 ] → intersección entre dos relaciones formada por las tuplas que pertenecen a ambas. División [R1 : R2 ] → se realiza una división tal que las tuplas resultantes se encuentran en el dividendo. Tema 6. El Modelo Relacional. 6