El modelo relacional
Independencia física de los datos
: El modelo de almacenamiento de los datos no debe influir en su manipulación lógica.
Independencia lógica de los datos
Los cambios que se realicen en los objetos de la base de datos no deben repercutir en los programas y usuarios que acceden a la misma.Flexibilidad
Para presentar a los usuarios los datos de la forma más adecuada a la aplicación que utilicen.Uniformidad
La presentación de las estructuras lógicas de los datos son tablas, lo que facilita la concepción y manipulación de la base de datos por parte de los usuarios. Sencillez: Pues las características anteriores, así como unos lenguajes de usuario sencillos, hacen que este modelo se fácil de comprender y utilizar por el usuario.El modelo relacional se basa en dos ramas de las matemáticas
La teoría de conjuntos y la lógica de predicados. Por esto es seguro y robusto.Las doce reglas:
1.Regla de información
2.Regla de acceso garantizado
3.Tratamiento sistemático de valores nulos
4.Catalogo en línea dinámico basado en el modelo relacional
5.Regla de sublenguaje completo de datos
5.1 Definición de datos.5.2 Definición de vistas
5.3 Manipulación de datos.
5.4 Restricciones de integridad.
5.5 Autorización
5.6 Gestión de transacciones.
6.
Regla de actualización de vista
7.Inserción, actualización y supresión de alto nivel
8.Independencia física de los datos
9. Independencia lógica de los datos
10.Independencia de la integridad
11.Independencia de la distribución
12.Regla de no subversión
Estructura
Tiene una serie de elementos característicos:
No admiten filas duplicadas. Las filas y columnas no están ordenadas. La tabla es plana.Dominios y atributos:
Dominio es el conjunto finiote de valor homogéneos y atomicos que puede tomar cada atributo.Generales:
Son los cuyos valores están comprendidos entre un máximo y un minimo.Restringidos:
Pertenecen a un conjunto de valores especifico.Atributo:
es el papel o rol que desempeña un dominio en una relación.Relaciones:
La relación se representa mediante una tabla con filas y columnas. Solo se aplica a la estructura lógica de la base de datos, no se puede aplicar a la estructura física de la base de datos. En el modelo relacional hay dos cosas.Atributo (columna):
Se trata de cada una de las columnas de la tabla.Tupla (fila):
Representa una fila de la tabla.Conceptos de las tablas:
Cardinalidad:
el número de filas de la tabla.Grado:
el numero de columnas de la tabla.Valor:
viene representado por la intersección entre una fila y una columna.Valor Null:
ausencia de información.Propiedades de las relaciones:
1.Cada relación tiene un nombre y este es distinto de los demás
2.Los valores de los atributos son atómicos
3.No hay dos atributos que se llamen igual
4.El orden de los atributos es irrelevante
5.Cada tupla es distinta de las demás no hay duplicadas
6.El orden delas tuplas es irrelevante
Tipos de relaciones:
1.Relaciones base, son relaciones reales que tienen nombre y forman parte directa de la base de datos almacenada. 2.Vistas, se corresponden con el nivel externo de la arquitectura ANSI. Son relaciones con nombre que se definen a partir de una consulta. 3.Instantaneas, se corresponden con el nivel interno de la arquitectura son de solo lectura. 4.Resultados de consultas, son las resultantes de las consultas de usuario. 5.Resultados intermedios, son las relaciones que contienen los resultados de las subconsultas de usuario. 6.Resultados temporales, son relaciones con nombre similares a las relaciones base pero se destruyen automáticamente en algún momento determinado.Claves:
Toda fila debe estar asociada con una clave que permita identificarla, la clave debe cumplir dos requisitos: 1. Identificacion univoca. En cada fila de la tabla el valor de la clave ha de identificarla de forma univoca. 2. No redundancia. No se puede decartar ningún atributo de la clave para identificar la fila. La clave candidata de una relicion se defino como el conjunto de atributos que identifican univoca y minimamente cada tupla de la relación. Una relación puede tener mas de una clave candidata entre las cuales se destinguen:Clave primaria o principal:
es la clave candidata que el usuario escoge para identificar las tuplas de la relación, no puede tener valores nulos. Si solo existe uno se elige como la principal.Clave alternativa:
las candidatas que no han sido escogida como la principal. Se donima clave ajena de una relación R! al conjunto de atributos cuyos valores han de coincidir con los valores de la clave primaria de otra relación R2 estan definidas sobre el mismo dominio y son muy importantes en el estudio de la integridad de datos del modelo relacional.Restircciones del modelo relacional:
Existen restricciones que a la hora de diseñar una base de datos se tienen que tener en cuenta. Los datos almacenados en la base de datos tienen que adaptarse a las estructuras impuestas por el modelo y tienen que cumplir una serie de reglas para garantizar que son correctos, tiene dos tipos de restricciones.Restricciones inherentes al modelo
Indican las características propias de una relación que se tiene que cumplir obligatoriamente y diferencian una relación de una tabla.Restricciones semánticas o de usuario:
que representan la semántica del mundo real hacen las ocurrencias de los esquemas de la bdd valido. 1.Restricción de clave primaria
Permite declarar uno o varios atributos como clave primaria de una relación. 2.Restriccion de unicidad
Permite definir claves alternativas, los valores no pueden repetirse. 3.Restriccion obligatoriedad
Declara si uno o varios atributos no pueden tomar valores nulos. 4. Integridad refencial o restricción clave ajena: se utiliza para enlazar relaciones, mediante claves ajenas, de una base de datos. Indica los valores de la clave ajena en la relación hijo se corresponden con los de la clave primaria en la relación padre.4.1 Operaciones de borrado y actualización que se realicen sobrel las tuplas:
Borrado y/o modificación en cascada
El borrado o modificación de una tupla en la relación padre ocasiona un borrado o modificación en las tuplas relacionadas en la relación hija.Borrado y/o modificación restringido:
En este caso no es pobile realizar el borrado o la modificaion de las tuplas de la relación padre si existen tuplas relacionadas en la relación hija.Borrado y/o modificación con puesta a nulos:
Esta restricción permite poner la clave ajena en la tabla referenciada a NULL si se produce el borrado o modificación en la tabla primaria o padre.Borrado y/o modificación con puesta a valor por defecto:
el valor que se pone en las claves ajenas de la tabla refernciada es un valor por defecto que se habrá especificado en la creación de la tabla. 5. Restricciones de verificación: Esta resticcion permite especificar condiciones que deban cumplir los valores de los atributos. Cada vez que se realice una inserción o una actualización de datos se comprueba si los valores cumplen la condición. Rechaza la operación si no se cumple. 6. Aserciones: Son parecidas a la anterior pero en este caso en lugar de afectar a una relación, puede afectar a dos o mas relaciones. La condición se establece sobre elementos de distintas relaciones. Pueden implicar a subconsultas en la condición. 7. Disparadores: Las restricciones anteriores son declarativas, sin embargo, este tipo es procedimental. El usuario podrá especificar una serie de acciones distintas ante una determinada condición. El usuario escripe el procedimiento a aplicar dependiendo del resultado de la condición.Transformacion de un esquema E-R a un esquema relacional
Una vez obtenido el esquema conceptual mediante el modelo E-R, hay que definir el modelo lógico de datos. Las reglas básicas son las siguientes: 1. Toda entidad se transforma en una tabla. 2. Todo atributo se transforma en columna dentro de una tabla. 3. El identificador único de la entidad se convierte en clave primaria. 4. Toda relación N:M se transforma en una tabla que tendrá como clave primaria la concatenación de los atributos clave de las entidades que asocia.En la transformación de relaciones 1:N existen dos soluciones:
1.Transformar la relación en una tabla:
Se hace como si se tratara de una relación N:M. Esta solución se realiza cuando se prevé que en un futuro la relación se convertirá en N:M y cuando la relación tiene atributos propios. Tambien se crea una nueva tabla cuando la cardinalidad es opcional, es decir (0,1) y (0,M). La clave de esta tabla es la de la entidad del lado muchos. 2.Propagar la clave:
Este caso se aplica cuando la cardinidad es obligatoria, es decir, cuando tenemos cardinalidad (1,1) y (0,M) o (1,M). Se proponga el atributo principal de la entidad que tiene cardinalidad máxima 1 a la que tiene de cardinalidad máxima N, desapareciendo el nombre de la relación. Si existen atributos propios en la relación, estos también se propagaran.En la transformación de relaciones 1:1 se tienen en cuenta las cardinalidades de las entidades que participan. Existen dos soluciones:
1.Transformar la relación en una tabla
Si las entidades poseen cardinalidades (0.1), la relación se convierte en una tabla. 2.Propagar la clave
Si una de las entidades posee cardinalidad (0,1) y la otra (1,1), conviene propagar la clave de la entidad con cardinalidad (1,1) a la tabla resultante de la entidad de cardinalidad (0,1). Si ambas entidades poseen cardinalidades (1,1), se puede propagar la clave de cualquiera de ellas a la tabla resultante de la otra. En este caso, también se puede añadir los atributos de una entidad a otra, resultando una única tabla con todos los atributos de la entidades y de la relación, si los hubiera, eligiendo como clave primaria una de las dos.Transformacion de otros elementos del modelo E-R:
Relaciones reflexivas o recursivas:
Son relaciones binarias en las que participa un tipo de entidad. En el proceso de convertir una relación reflexiva a tabla hay que tener en cuenta sobre todo la cardinalidad. Lo normal es qe toda relación reflexiva se convierta en dos tablas, una para la entidad y otra para la relación. Se pueden presentar los siguientes casos: 1. Si la relación es 1:1, la clave de la entidad se repite, con lo que la tabla resultante tendrá dos veces ese atributo, una como clave primaria y otra como clave ajena de ella misma. No se crea la segunda tabla. 2. Si la relación es 1:M, podemos tener dos casos: 2.1 Case de que la entidad muchos sea siempre obligatoria se procede como en el caso 1:1. 2.2 Si no es obligatoria, se crea una nueva tabla cuya clave será la de la entidad del lado muchos, y además se propaga la clave a la nueva tabla como clave ajena. 3. Si es N:M, se trata igual que en las relaciones binarias. La tabla resultante de la relación contendrá dos veces la clave primaria de la entidad del lado muchos, mas los atributos de la relación si los hubiera. La clave de esta nueva tabla será la combinación de las dos.Relaciones N-arias:
En este tipo de relaciones se agrupan 3 o mas entidades, y para pasar al modelo de datos relacional cada entidad se convierte en tabla, asi como la relación, que va a contener los atributos propios de ella mas las claves de todas las entidades. La clave de la tabla resultante será la concatenación de las claves de las entidades. Hay que tener en cuenta: 1. Si la relación es M:M:M, es decir, si todas las entidades participan con cardinalidad máxima M, la clave de la tabla resultante es la unión de las claves de las entidades que relaciona. Esa tabla incluirá los atributos de la relación si los hubiera. 2. Si la relación es 1:M:M, es decir, una de las entidades participa con cardinalidad máxima 1, la clave de esta entidad no pasa a formar parte de la clave de la tabla resultante, pero forma parte de la relación como un atributo mas.Normalizacion de esquemas relacionales:
La normilizacion es una técnica para diseñar la estructura lógica de los datos de un sistema de información en el modelo relacional. Es una estrategia de diseño de abajo arriba: se parte de los atributos y estos se van agrupando en relaciones según su afinidad. Aquí no se utilizara la normalización como una técnica de diseño de bases de datos, sino como una etapa posterior a la correspondecia entre el esquema conceptual y el esquema lógico, que elimine las dependencias no deseadas entre atributos. Las ventajas son los siguientes. 1. Evita anomalías en inserciones, modificaciones y borrados. 2. Mejora la independencia de datos. 3. No establece restricciones artificiales en la estructura de los datos. Uno de los conceptos fundamentales en la normalización es el de dependencia funcional. Una dependencia funcional es una relación entre atributos de una misma relación.Calculo de dependencias:
Las dependencias son propiedades inherentes al contenido semántico de los datos formando parte de las restricciones de usuario del modelo relacional. Entre los atributos de una relación pueden existir dependencias de varios tipos: 1.Dependencias funcionales:
Son de primordial importancia a la hora de encontrar y eliminar la redundancia de los datos almacenados en las tablas de una base de datos relacional, se centran en el estudio de las dependencias que presenta cada atributo de una relación con respecto al resto de atributos de la misma.Tipos de dependencias:
1.1 Dependencia completa y parcial. 1.2 Dependencia transitiva. 1.3 Dependencia multivaluada o de valores múltiples. 1.4 Dependencias de reunión o en combinación. 2.Reglas de normalización:
Se dice que una relación esta en una forma normal si satisface un cierto conjunto especifico de restricciones impuestas por la regla de normalización correspondiente. La aplicación de una regla es una operación que toma como entrada una relación y da como resultado dos o mas relaciones. 3.Primera forma normal. 1FN:
Se dice que una relación esta en 1FN si y solo si los valores que componen cada atributo de una tupla son atomicos. Hay dos formas de eliminar los grupos repetitivos: 3.1 Repetir los atributos con un solo valor para cada valor del grupo repetitivo. 3.2 La segunda consiste en poner cada uno de ellos en una relación aparte, heredando la clave primaria de la relación el la que se encontraban. 4.Segunda forma normal 2FN:
Se dice que una relación se encuentra en 2FN si y solo si satisface la 1FN y cada atriubuto de la relación que no esta en la clave dpeende funcionalmente de forma completa de la clave primaria de la relación, se aplica a las relaciones que tiene claves primarias compuestas por dos o mas atributos. Si una relación esta en 1FN y su clave primaria es simple entonces también esta en 2FN. Las relaciones que no están en 2FN pueden sufrir anomalías cuando se realizan actualizaciones. Si la clave primaria esta formada por un solo atributo y la relación esta en 1FN, ya esta en 2FN. Para pasar una relación en 1FN a 2FN hay que eliminar las dependencias parciales de la clave primaria. Para ello, se eliminan los atributos, que son funcionalmente dependientes, ya se ponen en una nueva relación con una copia de su determinante. Se crearan dos tablas para eliminar las dependencias funcionales, una de ellas tendrá los atributos que dependen funcionalmente de la clave, y la otra los atributos que forman parte de la clave de la que dependen. 5.Tercera forma normal 3FN:
Una relación esta en tercera forma normal si, y soli si, esta en 2FN y, además, cada atributo que no esta en la clave primaria no depende transitivamente de la clave primaria no depende transitivamente de la clave primaria, los atributos de la relación no dependen de unos de otros, dependen únicamente de la clave, este formado por uno o mas atributos. Para pasar una relación de 2FN a 3FN hay que eliminar las dependencias transitivas, para ello se eliminan los atributos que dependen transitivamente y se ponen en una nueva relación con una copia de su determinante.Dinamica del modelo relacional: algebra relacional
La dinámica del modelo relacional actua sobre conjuntos de tuplas y se expresa mediante lenguajes de manipulación relacionales que asocian una sintaxis a las operaciones. En lo que al algebra se refiere la dinámica la constituye una serie de operadores que aplicados a las relaciones dan como resultado nuevas relaciones.Operaciones básicas sobre tablas:
Existen ds tipos de operaciones sobre tablas: básicas y derivadas. Las operaciones básicas se dividen, de nuevo en unarias y binarias. En las operaciones unarias se utiliza una tabla de entrada para obtener el resultado; en las binarias se emplean dos tablas. Las operaciones derivadas son binarias que necesitan las operaciones básicas, y son la intersección, el cociente y la combinación.Operaciones básicas: 1. Operaciones unarias. 1.1 selección 1.2 proyeccion 2. Operaciones binarias 2.1 union 2.2 diferencia 2.3 producto cartesiano. Operaciones derivadas: 1. Interseccion 2. Cociente 3. Combinación. Operaciones básicas unarias:
1. Selección. Esta operación obtiene un subconjunto de filas de una tabla con todas sus columnas. Se pueden seleccionar determinadas filas incluyendo en la operación una condición. En esta se pueden utilizar los operadores booleanos: Y, O, NO, para expresar varios criterios. σ condición(tabla) 2. Proyeccion. Esta operación da como resultado una nueva tabla a partir de otra con el subconjunto de columnas indicado. Las filas duplicadas solo aparecerán una vez. Π col1,col2,…(tabla)