26 Sep
El Modelo Relacional
El modelo relacional se caracteriza por una serie de principios fundamentales que garantizan su robustez y flexibilidad:
- 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 realizados en los objetos de la base de datos no deben afectar a los programas y usuarios que acceden a ella.
- Flexibilidad: Permite presentar los datos a los usuarios de la forma más adecuada para la aplicación que utilicen.
- Uniformidad: La presentación de las estructuras lógicas de los datos se basa en tablas, lo que facilita su concepción y manipulación por parte de los usuarios.
- Sencillez: Las características anteriores, junto con lenguajes de usuario sencillos, hacen que este modelo sea fácil de comprender y utilizar.
El modelo relacional se fundamenta en dos ramas de las matemáticas: la teoría de conjuntos y la lógica de predicados, lo que le confiere seguridad y robustez.
Las Doce Reglas de Codd
Estas reglas definen los principios de un sistema de bases de datos relacional:
- Regla de información.
- Regla de acceso garantizado.
- Tratamiento sistemático de valores nulos.
- Catálogo en línea dinámico basado en el modelo relacional.
- 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.
- Regla de actualización de vista.
- Inserción, actualización y supresión de alto nivel.
- Independencia física de los datos.
- Independencia lógica de los datos.
- Independencia de la integridad.
- Independencia de la distribución.
- Regla de no subversión.
Estructura del Modelo Relacional
El modelo relacional posee elementos característicos:
- No admite filas duplicadas.
- Las filas y columnas no están ordenadas.
- La tabla es plana.
Dominios y Atributos
- Dominio: Es el conjunto finito de valores homogéneos y atómicos que puede tomar cada atributo.
- Generales: Valores comprendidos entre un máximo y un mínimo.
- Restringidos: Pertenecen a un conjunto de valores específico.
- Atributo: Representa el papel o rol que desempeña un dominio en una relación.
Relaciones (Tablas)
La relación se representa mediante una tabla con filas y columnas. Se aplica únicamente a la estructura lógica de la base de datos.
- Atributo (columna): 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 número de columnas de la tabla.
- Valor: La intersección entre una fila y una columna.
- Valor Null: Ausencia de información.
Propiedades de las Relaciones
- Cada relación tiene un nombre único.
- Los valores de los atributos son atómicos.
- No hay dos atributos con el mismo nombre.
- El orden de los atributos es irrelevante.
- Cada tupla es distinta de las demás (no hay duplicados).
- El orden de las tuplas es irrelevante.
Tipos de Relaciones
- Relaciones base: Relaciones reales con nombre que forman parte directa de la base de datos almacenada.
- Vistas: Corresponden al nivel externo de la arquitectura ANSI. Son relaciones con nombre definidas a partir de una consulta.
- Instantáneas: Corresponden al nivel interno de la arquitectura; son de solo lectura.
- Resultados de consultas: Las resultantes de las consultas de usuario.
- Resultados intermedios: Contienen los resultados de las subconsultas de usuario.
- Resultados temporales: Relaciones con nombre similares a las relaciones base, pero que se destruyen automáticamente en un momento determinado.
Claves
Toda fila debe estar asociada con una clave que permita identificarla. La clave debe cumplir dos requisitos:
- Identificación unívoca: El valor de la clave debe identificar de forma unívoca cada fila de la tabla.
- No redundancia: No se puede descartar ningún atributo de la clave para identificar la fila.
La clave candidata de una relación se define como el conjunto de atributos que identifican unívoca y mínimamente cada tupla de la relación. Una relación puede tener más de una clave candidata, entre las cuales se distinguen:
- 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 una, se elige como la principal.
- Clave alternativa: Las claves candidatas que no han sido escogidas como la principal.
Se denomina clave ajena de una relación R1 al conjunto de atributos cuyos valores deben coincidir con los valores de la clave primaria de otra relación R2. Están definidas sobre el mismo dominio y son muy importantes en el estudio de la integridad de datos del modelo relacional.
Restricciones del Modelo Relacional
Existen restricciones que deben tenerse en cuenta al diseñar una base de datos. Los datos almacenados deben adaptarse a las estructuras impuestas por el modelo y cumplir una serie de reglas para garantizar su corrección. Hay dos tipos de restricciones:
- Restricciones inherentes al modelo: Indican las características propias de una relación que deben cumplirse obligatoriamente y diferencian una relación de una tabla.
- Restricciones semánticas o de usuario: Representan la semántica del mundo real y validan las ocurrencias de los esquemas de la base de datos.
Las restricciones de usuario incluyen:
- Restricción de clave primaria: Permite declarar uno o varios atributos como clave primaria de una relación.
- Restricción de unicidad: Permite definir claves alternativas; los valores no pueden repetirse.
- Restricción de obligatoriedad: Declara si uno o varios atributos no pueden tomar valores nulos.
- Integridad referencial o restricción clave ajena: Se utiliza para enlazar relaciones mediante claves ajenas. Indica que los valores de la clave ajena en la relación hija deben corresponderse con los de la clave primaria en la relación padre.
- 4.1 Operaciones de borrado y actualización sobre 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: No es posible realizar el borrado o la modificación 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: 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 referenciada es un valor por defecto especificado en la creación de la tabla.
Transformación de un Esquema E-R a un Esquema Relacional
Una vez obtenido el esquema conceptual mediante el modelo Entidad-Relación (E-R), se define el modelo lógico de datos siguiendo estas reglas básicas:
- Toda entidad se transforma en una tabla.
- Todo atributo se transforma en columna dentro de una tabla.
- El identificador único de la entidad se convierte en clave primaria.
- Toda relación N:M se transforma en una tabla cuya clave primaria será la concatenación de los atributos clave de las entidades que asocia.
Transformación de Relaciones 1:N
Existen dos soluciones:
- Transformar la relación en una tabla: Se procede como en una relación N:M. Esta solución se aplica cuando se prevé que la relación se convertirá en N:M en el futuro o cuando la relación tiene atributos propios. También se crea una nueva tabla cuando la cardinalidad es opcional (0,1) y (0,M). La clave de esta tabla es la de la entidad del lado»mucho».
- Propagar la clave: Se aplica cuando la cardinalidad es obligatoria (1,1), (0,M) o (1,M). Se propaga el atributo principal de la entidad con cardinalidad máxima 1 a la entidad con cardinalidad máxima N, desapareciendo el nombre de la relación. Si existen atributos propios en la relación, estos también se propagarán.
Transformación de Relaciones 1:1
Se tienen en cuenta las cardinalidades de las entidades participantes. Existen dos soluciones:
- Transformar la relación en una tabla: Si las entidades poseen cardinalidades (0,1), la relación se convierte en una tabla.
- Propagar la clave: Si una entidad tiene 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 con cardinalidad (0,1). Si ambas entidades tienen 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 pueden añadir los atributos de una entidad a la otra, resultando una única tabla con todos los atributos de las entidades y de la relación (si los hubiera), eligiendo como clave primaria una de las dos.
Transformación de Otros Elementos del Modelo E-R
- Relaciones reflexivas o recursivas: Son relaciones binarias en las que participa un tipo de entidad. Al convertir una relación reflexiva a tabla, hay que tener en cuenta la cardinalidad. Normalmente, toda relación reflexiva se convierte en dos tablas: una para la entidad y otra para la relación. Se pueden presentar los siguientes casos:
- 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 sí misma. No se crea la segunda tabla.
- Si la relación es 1:M, podemos tener dos casos:
- 2.1 Si la entidad»mucho» es 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»mucho», y además se propaga la clave a la nueva tabla como clave ajena.
- 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»mucho», más 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 más entidades. Para pasar al modelo de datos relacional, cada entidad se convierte en tabla, así como la relación, que contendrá los atributos propios de ella más 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:
- Si la relación es M:M:M (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.
- Si la relación es 1:M:M (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 más.
Normalización de Esquemas Relacionales
La normalización es una técnica para diseñar la estructura lógica de los datos en el modelo relacional. Es una estrategia de diseño de abajo hacia arriba: se parte de los atributos y se agrupan en relaciones según su afinidad. Se utiliza como una etapa posterior a la correspondencia entre el esquema conceptual y el esquema lógico, para eliminar dependencias no deseadas entre atributos.
Las ventajas de la normalización incluyen:
- Evita anomalías en inserciones, modificaciones y borrados.
- Mejora la independencia de datos.
- No establece restricciones artificiales en la estructura de los datos.
Uno de los conceptos fundamentales en la normalización es la dependencia funcional, que es una relación entre atributos de una misma relación.
Cálculo de Dependencias
Las dependencias son propiedades inherentes al contenido semántico de los datos y forman parte de las restricciones de usuario del modelo relacional. Entre los atributos de una relación pueden existir dependencias de varios tipos:
- Dependencias funcionales: Son de primordial importancia para 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.
Reglas de Normalización
Se dice que una relación está en una forma normal si satisface un conjunto específico de restricciones impuestas por la regla de normalización correspondiente. La aplicación de una regla toma como entrada una relación y produce dos o más relaciones.
Primera Forma Normal (1FN)
Una relación está en 1FN si y solo si los valores que componen cada atributo de una tupla son atómicos. Hay dos formas de eliminar los grupos repetitivos:
- Repetir los atributos con un solo valor para cada valor del grupo repetitivo.
- Poner cada uno de ellos en una relación aparte, heredando la clave primaria de la relación original.
Segunda Forma Normal (2FN)
Una relación está en 2FN si satisface la 1FN y cada atributo de la relación que no está en la clave depende funcionalmente de forma completa de la clave primaria. Se aplica a relaciones con claves primarias compuestas por dos o más atributos. Si una relación está en 1FN y su clave primaria es simple, entonces también está en 2FN. Las relaciones que no están en 2FN pueden sufrir anomalías durante las actualizaciones.
Para pasar una relación de 1FN a 2FN, hay que eliminar las dependencias parciales de la clave primaria. Se eliminan los atributos funcionalmente dependientes y se colocan en una nueva relación con una copia de su determinante. Se crearán dos tablas: una con los atributos que dependen funcionalmente de la clave, y otra con los atributos que forman parte de la clave de la que dependen.
Tercera Forma Normal (3FN)
Una relación está en tercera forma normal si, y solo si, está en 2FN y, además, cada atributo que no está en la clave primaria no depende transitivamente de la clave primaria. Los atributos de la relación dependen únicamente de la clave, no unos de otros.
Para pasar una relación de 2FN a 3FN, hay que eliminar las dependencias transitivas. Se eliminan los atributos que dependen transitivamente y se colocan en una nueva relación con una copia de su determinante.
Dinámica del Modelo Relacional: Álgebra Relacional
La dinámica del modelo relacional actúa sobre conjuntos de tuplas y se expresa mediante lenguajes de manipulación relacionales. El álgebra relacional constituye una serie de operadores que, aplicados a las relaciones, dan como resultado nuevas relaciones.
Operaciones Básicas sobre Tablas
Existen dos tipos de operaciones sobre tablas: básicas y derivadas. Las operaciones básicas se dividen en unarias y binarias.
Operaciones Básicas Unarias
- Selección: Obtiene un subconjunto de filas de una tabla con todas sus columnas. Se pueden seleccionar filas específicas incluyendo una condición. Se pueden utilizar operadores booleanos (Y, O, NO) para expresar varios criterios.
σ condición(tabla) - Proyecció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)
Operaciones Básicas Binarias
- Unión: Dos tablas se pueden unir si tienen el mismo número de columnas y dominios compatibles. El resultado es otra tabla con las filas de ambas.
Tabla U Tabla2 - Diferencia: La diferencia entre dos tablas solo es posible si tienen el mismo número de columnas y dominios compatibles.
Tabla - Tabla2 - Producto cartesiano: Se puede realizar entre dos tablas con diferente número de columnas. El resultado es una tabla que contendrá la suma de columnas de ambas tablas y el conjunto formado por todas las combinaciones de filas de ambas. No pueden existir columnas con el mismo nombre.
Tabla X Tabla2
Operaciones Derivadas
Estas operaciones se derivan de las básicas y son:
- Intersección: Es una operación derivada de la diferencia. La intersección de dos tablas es otra tabla formada por las filas que aparecen en ambas tablas y las columnas de una de ellas. Las tablas deben tener el mismo número de columnas y dominios compatibles.
Tabla1 ∩ Tabla2(equivalente aTabla1 - (Tabla1 - Tabla2)) - Cociente: Se realiza entre dos tablas, Tabla1 y Tabla2, con diferentes columnas que cumplen ciertas condiciones: Tabla1 debe tener columnas de Tabla2, y su número de columnas debe ser mayor que el de Tabla2. Tabla2 debe tener al menos una fila.
Tabla1 : Tabla2 = πc(Tabla1) – πc(Tabla2 X πc(Tabla1) – Tabla1), donde ‘c’ representa el conjunto de atributos de Tabla1 menos los atributos de Tabla2. - Combinación: Con esta operación se obtiene el producto cartesiano de dos tablas cuyas filas cumplan una condición determinada. La combinación de dos tablas respecto a una cierta condición es otra tabla construida por pares de filas de ambas tablas concatenadas, tales que las correspondientes filas satisfacen la condición.
(Tabla1 * Tabla2) condición

Deja un comentario