TEMA 19: MODELO DE DATOS RELACIONAL OBJETIVOS DEL TEMA • Conocimiento de las Bases de Datos relacionales. 1.- INTRODUCCIÓN Las desventajas de los modelos jerárquicos y en red provocaron gran interés cuando fueron descritos en 1970 por el Dr. Codd. El modelo relacional era un intento de simplificar la estructura de las bases de datos. Eliminaba las estructuras explícitas padre/hijo de la base de datos y en su lugar representaba todos los datos como sencillas tablas fila/columna de valores. Dado que dicho modelo aunque algebraicamente estaba definido, no siempre era seguido por bases de datos, por lo que Codd en 1985 describió en un artículo las doce reglas que debe seguir una base de datos para ser relacional. 2.- TABLAS El principio de organización de una base de datos relacional es la tabla, que no es más que una disposición rectangular fila/columna de valores de datos. Cada tabla tiene un nombre único que identifica su contenido. Cada fila horizontal representa un registro de datos completo y cada columna vertical representa un elemento de datos. Es decir, en una tabla de clientes, cada columna puede representar su apellido, nombre, teléfono, etc. Y cada cliente se va almacenado por filas. En principio no existe límite al número de filas que puede contener una tabla, salvo las impuestas por razones de tamaño físico de almacenamiento. Cuando el número de filas es 0, la tabla se denomina vacía. 3.- CLAVES PRIMARIAS Dado que en una tabla relacional las filas no están numeradas, no se puede hablar de primera fila, segunda fila, etc. Una tabla bien diseñada debe contener una columna o combinación de columnas que identifique unívocamente un registro. Esta columna (o combinación), se denomina clave primaria de la columna. Por ejemplo, en la tabla de clientes la columna DNI puede utilizarse como clave primaria, pues no existen 2 personas con el mismo DNI. 4.- RELACIONES Una de las principales diferencias entre el modelo relacional y los modelos de datos primitivos es que los punteros explícitos tales como las relaciones padre/hijo de las tablas jerárquicas están prohibidos. Obviamente dichas relaciones siguen existiendo en una base de datos relacional, pero la relación se establece por datos comunes almacenados en la tabla padre/hijo. Por ejemplo una tabla de pedidos puede tener un campo denominado DNI que tenga el DNI del cliente que hace el pedido, y esta a su vez, en la tabla cliente sería además clave primaria. Si además se introduce en la tabla hijo la integridad referencial, esta no puede admitir un valor que no tenga relación en la tabla padre. Por ejemplo, en la tabla pedidos no podemos crear un pedido cuyo DNI no tenga un Valor existente en la tabla padre (Cliente). 5.- LAS DOCE REGLAS DE CODD En 1985 el Dr. Codd publicó en la revista Computerworld doce reglas para que una base de datos fuera relacional. Actualmente no existe una Base de Datos Relacional (BDR) que satisfaga completamente dichas reglas, y además su interpretación es en cierta parte subjetiva. Dichas reglas son: 1. La regla de información. Toda la información de una BDR está representada explícitamente a nivel lógico exactamente mediante valores en tabla. 2. Regla de acceso garantizado. Se garantiza que todos y cada uno de los datos de una BDR son lógicamente accesibles a través de una combinación de nombre de tabla, valor de clave primaria y nombre de columna. 3. Tratamiento sistemático de valores nulos. Los valores nulos, distintos de la cadena vacía y distinto de 0 o cualquier otro número se soportan en las BDR para representar la falta de información, de un modo sistemático e independiente del tipo de datos. 4. Catálogo en línea dinámico basado en el modelo relacional. La descripción de la base de datos se presenta a nivel lógico de la misma forma que los datos ordinarios, de modo que los usuarios autorizados pueden utilizar el mismo lenguaje relacional que se aplican a los datos regulares. 5. Regla de sublenguaje completo de datos. Un sistema relacional puede soportar varios lenguajes y varios modos de uso terminal, sin embargo debe haber un lenguaje cuyas sentencias se puedan expresar mediante alguna sintaxis bien definida y que ofrezca completamente: - Definición de datos - Definición de vista - Manipulación de datos - Restricciones de integridad - Autorización - Fronteras de transacciones 6. Regla de actualización de vista. Todas las vistas que sean teóricamente actualizables, también son actualizables por el sistema. 7. Inserción, actualización y supresión de alto nivel. La capacidad de manejar una relación de base de datos o una relación derivada como un único operando se aplica no solamente a la recuperación de datos, sino también a la inserción, actualización y supresión de datos. 8. Independencia física de los datos. Los programas y las actividades terminales permanecen lógicamente inalteradas cualquiera que sean los cambios efectuados, tanto en la representación del almacenamiento como en los métodos de acceso. 9. Independencia lógica de los datos. Los programas y las actividades permanecen lógicamente inalteradas cuando se efectúen sobre las tablas de base cambios preservadores de la información de cualquier tipo que teóricamente permita alteraciones. 10. Independencia de la integridad. Las restricciones de integridad específicas de una base de datos relacional particular deben poder ser definidas mediante el sublenguaje de datos relacional, y almacenarse en el catálogo, no en los programas. 11. Independencia de la distribución. Una BDR es independiente de la distribución. 12. Regla de no subversión. Si un sistema relacional tiene un lenguaje de bajo nivel, ese bajo nivel no se puede utilizar para subvertir o suprimir las reglas de integridad y las restricciones expresadas en el lenguaje relacional de nivel superior. RESUMEN DEL TEMA 19 Ante las deficiencias de las BD en red, vistas en el capítulo anterior surge la necesidad de introducir en las BD una consistencia que evite las relaciones padre/hijo absurdas, como por ejemplo pedidos sin cliente, además de poder identificar unívocamente cada registro (tupla). Se introducen los conceptos de : • Claves primarias • Integridad referencial Además, con el fin de sistematizar y definir qué es una BD Relacional se publican las doce reglas de Codd que debe cumplir toda BD relacional.