Modelo Relacional - Irene-Frias/1DAM GitHub Wiki

1. Introducción

1.1 Terminología del Modelo Relacional

Este modelo es encargado de ocuparse de la estructura, de la integridad y de la manipulación de los datos. Cada una de estas partes tiene sus propios términos especiales. Los términos relacionados con la estructura de datos son los siguientes:

  • Relación: conjunto de tuplas con la misma estructura. Similar a una tabla con información.
  • Tupla: conjunto de pares atributo-valor. Se podría asemejar a una fila de una tabla (relación). EL número de tuplas de una relación se denomina cardinalidad de esta relación y al número de atributos se le llama grado.
  • Atributo: es una dato que debe ser único dentro de la relación. El valor de un atributo es el dato que debe estar almacenado en dicho atributo. Se podría considerarse como una celda de una fila de la tabla.
  • Dominio: es un conjunto de valores. Todo atributo tiene asociado un dominio en el que indica los valores válidos que pueda contener dicho atributo. En algunos casos a los dominios se le añade un valor especial NULO. Significa que al atributo no se le ha asignado ningún valor todavía. Si un dominio no se le añade el valor NULO, significa que no pueden dejarse los valores vacíos en los atributos que pertenezcan a dicho dominio.

La estructura por partes de una estructura sería la siguiente:

  • Cabecera: es un conjunto de pares atributo-dominio en el que indica qué atributos tienen relación y el dominio del que cada atributo puede obtener sus valores. La cabecera es estática, esto significa que no varía con el tiempo. También puede ser llamada esquema de la relación.
  • Cuerpo: es un conjunto de tuplas con pares atributo-valor, que contiene la información almacenada en la relación. El número de tuplas es variable a lo largo del tiempo, según se añada o se elimine información de la relación.

1.2 Restricciones en una base de datos relacional

1.2.1 Restricciones implícitas o inherentes basadas en el modelo

Son restrincciones derivadas por el modelo que no tienen porqué estar definida por el usuario e imponen limitaciones a la hora de modelar.


1.2.2 Restricciones semánticas o de usuario

Son restricciones que tiene que definir el diseñador a fin de que el esquema sea reflejo:

  1. Restricción de unicidad (UNIQUE): los valores de uno o varios no pueden repetirse en distintas tuplas de la relación.
  2. Restricción de obligatoriedad (NOT NULL): indica que el atributo deba tomar siempre un valor y no admite NULOS.
  3. Restricción de clave primaria (PRIMARY KEY): se le llama a la clave candidata al conjunto de atributos como mínimo capaz de identificar unívocamente cualquier tupla de la relación. Si existe más de una clave candidata, a la elegida se la llama clave primaria, al resto claves alternativas. Todas se le aplican las restricciones de unicidad y obligatoriedad.

... 4. Restricción de clave ajena (FOREINGN KEY): se utiliza para indicar que un conjunto de atributos de la relación es clave primaria en otra o la misma relación. Los atributos que son claves de una relación no necesitan tener los mismos nombres de los atributos clave de la relación primaria con la que se corresponden, pero sí deben estar definidos sobre el mismo dominio.

Las claves ajenas son el mecanismo que se utiliza en el modelo relacional para crear asociaciones entre datos contenido en distintas tablas. Al incluir una clave ajena en una relación está creando un vínculo entre cada tupla de la relación. El tipo de asociación concreto no queda recogido en el modelo relacional, por lo que tiene que conocer el diseñador.

La clave ajena no necesita ser un componente de la clave primaria de la relación que la contiene.
5. Restricción de integridad referencial: esta vinculada con la restricción de la clave ajena. Indica los valores claves en los que se deben de corresponder con los valores de la clave primaria o bien ser nulos. No tienen porqué ser necesariamente distintas.

El modelo relacional puede permitir enlazar relaciones entre sí, permitiendo enlazar las relaciones entre sí. Las acciones pueden ser las siguientes:

  • CASCADE: consiste en permitir la actualización de un valor de la clave primaria de la tupla de la relación, para actualizar todos los calores clave ajena de la relación que la referencian. Para el borrado consiste en permitir borrar una tupla de la relación, a las que hace referencia.
  • NO ACTION / RESTRICT: si la relación padre tiene tuplas asociadas en la relación hija la operación no se permitirá.
  • SET NULL: permite actualizar el valor de la clave primaria de una tupla de la relación padre y actualizar todos los valores de la clave ajena de la relación que la referencian al valor NULL. Para el borrado consisten en permitir borrar una tupla de la relación y actualizar todos los valores de la clave ajena de la que se referencian el valor NULL.
  • SET DAFAULT: su funcionamiento es parecido al anterior, con la excepción de que el valor al que se ponen las claves ajenas de la relación es un valor por defecto que se habrá especificado en la relación para dicha clave ajena.
  1. Restricción de verificación (CHECK): establece una condición que debe cumplir un atributo o varios de la relación para realizar la operación (inserción, borrado o modificación), en caso contrario la operación se rechaza. No necesita tener nombre.
  2. Restricción de aserción (ASSERTION): su funcionamiento es idéntico al de las restricciones de verificación con la diferencia de que el ámbito de la aplicación se extiende a más de una relación. Deben tener nombre.
  3. Disparadores (TIGGER): al contrario que el resto de restricciones vistas en las que se rechaza la operación si no se cumple la condición, en caso de los disparadores la acción especificada se ejecuta siempre y cuando se cumpla la condición. Los disparadores son procedimientos especiales que ayudan al diseñador de la base de datos a recoger aquellos supuestos semánticos, donde no se han podido recoger en el modelo conceptual.

De manera informal tiene las siguientes equivalencias:

  • Relación ............ Tabla
  • Tupla ............ Fila o Registro
  • Cardinalidad ............ Número de filas
  • Atributo ............ Columna o campo
  • Grado ............ Número de columnas
  • Dominio ............ Conjunto de valores permitidos

2. Representación del modelo relacional

2.1 Representación textual del modelo relacional

La representación textual se da una lista con las relaciones y sus atributos. Mediante flechas se indica a qué relación corresponde una clave foránea.

Algunas representaciones que se pueden encontrar son:

  • Resaltar en negrita y subrayando la clave principal. Resaltar con línea discontinua la clave alternativa. Utilizar las flechas entre las claves ajenas y primarias.

En cualquier caso por claridad no especificaremos la obligatoriedad u opcionalidad de los atributos ni tampoco las acciones asociadas a las claves ajenas en las operaciones de modificación y borrado.

⚠️ **GitHub.com Fallback** ⚠️