Saltar a contenido

Bases de Datos Relacionales

Introducción

A finales de los setenta Codd introdujo la teoría de las relaciones, proponiendo un modelo de datos basado en relaciones o tablas. El modelo de datos relacional tuvo un auge espectacular a finales de los setenta, y hoy en día es uno de los modelos más utilizados por los Sistemas Gestores de Bases de Datos.

Estructura del modelo de relación

El elemento básico del modelo relacional es la relación, que se representa mediante una tabla .

relación atributo 1 atributo 2 \(\dots\) atributo n
xxxx xxxx \(\dots\) xxxx
xxxx xxxx \(\dots\) xxxx
xxxx xxxx \(\dots\) xxxx

En ella podemos distinguir un conjunto de columnas, denominadas atributos, que representan propiedades de la misma, y un conjunto de filas llamadas tuplas, que son las ocurrencias de la relación. Cada uno de los atributos puede tomar valores dentro de un rango determinado, que se denomina dominio.

El número de filas de una relación se llama cardinalidad, mientras que el número de columnas es el grado.

Ejemplo de relación

En la siguiente tabla se tiene un ejemplo de relación. El nombre de la relación es Empleados, y está compuesta por un subconjunto de tres elementos formados a partir del producto cartesiano de tres conjuntos de atributos (nombre, apellido, sueldo).

Nombre Apellido Sueldo
Juan García \(1200\)
Pedro Gutiérrez \(1700\)
María López \(2100\)

El dominio de los atributos nombre y apellido es el conjunto de todas las cadenas alfanuméricas de determinada longitud, y el dominio del atributo sueldo son los números positivos hasta cierta cantidad.

La cardinalidad de la relación empleados es tres, correspondiente al número de filas de la tabla, y su grado es cuatro, igual al número de columnas.

Como queda claro en el ejemplo, en el modelo relacional la nomenclatura matemática (relación, cardinalidad y atributos) y la propia de su representación gráfica (tabla, filas y columnas) es intercambiable, por lo que se utilizan ambas indistintamente.

Características de las relaciones

Dentro de la representación de las relaciones como tablas se pueden hacer las siguientes consideraciones:

  • No puede haber filas duplicadas. Todas las tuplas tienen que ser distintas.
  • El orden las filas es irrelevante.
  • El orden de los atributos no es significante.
  • No se admiten atributos multivaluados. Es decir, en cada celda de la tabla sólo puede haber un valor.

Claves

Como hemos visto, en una tabla no puede haber dos filas iguales. Por ello, debe haber uno o varios atributos que se puedan utilizar para distinguir unas tuplas de otras. Cualquier atributo o conjunto mínimo (1) de atributos que sirva para este propósito se denomina clave candidata.

A la clave candidata que se escoge para identificar las tuplas de una relación se la denomina clave primaria. La elección de esta clave no es única, aunque se suele utilizar la más corta por razones de eficiencia. El resto de claves candidatas que no han sido elegidas como clave primaria reciben el nombre de claves alternativas.

Álgebra Relacional

El álgebra relacional nos dice cómo manipular las relaciones, mediante una serie de operaciones. Matemáticamente el álgebra relacional es un álgebra completa, es decir, por medio de ella se puede hacer cualquier acceso a la base de datos.

Operadores básicos

El álgebra relacional presenta cinco operadores básicos: unión, diferencia, producto cartesiano, proyección y selección.

A partir de estos cinco operadores es posible definir todos los demás, como pueden ser la intersección, el cociente y la unión natural.

Unión, \(\cup\)

La unión de dos relaciones \(R\) y \(S\) (\(R \cup S\)) se define como el conjunto formado por todas las tuplas de \(R\) más todas las tuplas de \(S\).

Este operador sólo se puede aplicar a relaciones del mismo grado y con los mismos atributos.

En la siguientes tablas tenemos un ejemplo de unión de dos relaciones.

Código Provincia
01 Álava
02 Albacete

Código Provincia
03 Alicante
04 Almería

Código Provincia
01 Álava
02 Albacete
03 Alicante
04 Almería

Diferencia, \(-\)

La diferencia de dos relaciones \(R\) y \(S\) (\(R - S\)) se define como el conjunto formado por todas las tuplas de \(R\) que no están en \(S\).

Este operador sólo se puede aplicar a relaciones del mismo grado y con los mismos atributos.

Véase el ejemplo siguiente

Código Provincia
01 Álava
02 Albacete

Código Provincia
03 Alicante
01 Álava

Código Provincia
02 Albacete

Producto cartesiano, \(\times\)

El producto cartesiano de dos relaciones \(R\) y \(S\) (\(R \times S\)), de grados \(m\) y \(n\) respectivamente, se define como el conjunto formado por todas las posibles tuplas de \(m + n\) elementos en las que los \(m\) primeros elementos son de \(R\) y los \(n\) restantes pertenecen a \(S\).

A continuación se ve un ejemplo de producto cartesiano.

Código Provincia
01 Álava
02 Albacete

Cantidad
45
67

Código Provincia Cantidad
01 Álava 45
01 Álava 67
02 Albacete 45
02 Albacete 67

Proyección, \(\pi\)

Si \(X\) es un subconjunto de atributos de la relación \(R\), se define la proyección de \(R\) sobre \(X\) (\(\pi_X (R)\)) como la relación formada por las columnas de \(R\) correspondientes a los atributos de \(X\).

A continuación se tiene un ejemplo de proyección, siendo \(X\) = (provincia).

Código Provincia
01 Álava
02 Albacete

Provincia
Álava
Albacete

Selección, \(\sigma\)

Si \(F\) es una fórmula compuesta por operadores lógicos, aritméticos y de comparación, y sus operandos son los valores de los atributos de una relación \(R\), entonces la selección \(\sigma F(R)\) es el conjunto de tuplas de la relación \(R\) que hacen verdadera la condición establecida por la fórmula \(F\).

En el siguiente ejemplo, donde \(F\) = (código = ’01’) OR (Provincia \(>\) ’Alicante’)

Código Provincia
01 Álava
02 Albacete
03 Alicante
04 Almería

Código Provincia
01 Álava
04 Almería

El lenguaje SQL

El SQL (Structured Query Language) es el lenguaje de manipulación de datos relacionales más extendido, habiéndose convertido en un estándar de facto.

SQL permite realizar consultas utilizando los recursos del álgebra relacional combinados con el cálculo relacional de tuplas.

Partes del lenguaje SQL

Lenguaje de Descripción de Datos, DDL (Data Description Language)

Es el lenguaje utilizado para la creación y mantenimiento de la estructura de la base de datos. Se utiliza para definir y modificar los esquemas de las relaciones, crear o destruir índices y eliminar relaciones. Permite también la definición de vistas y permisos de acceso para los usuarios.

Es el lenguaje que utiliza el administrador de la base de datos para realizar sus tareas.

Lenguaje de Manipulación de Datos, DML (Data Manipulation Language)

Incluye todas las instrucciones para realizar consultas a las bases de datos, insertar, modificar o eliminar datos.

Es el que utilizan los usuarios finales en la fase de explotación de la base de datos.

Definición de datos

Creación de tablas

Las tablas se crean con el comando CREATE TABLE, de la siguiente forma:

CREATE TABLE nombreTabla (
        nombreColumna1     tipoColumna1,
        nombreColumna2     tipoColumna2,
        ...
        PRIMARY KEY (columnasClave)
        )

Actualización de tablas

Después de crear las tablas se puede insertar, modificar o eliminar información en las mismas, mediante los siguientes comandos:

INSERT INTO nombreTabla
         [(listaColumnas)]
         {VALUES (datos) | comandoSelección}

UPDATE nombreTabla
          SET nombreColumna = expresión

DELETE FROM  nombreTabla
          WHERE condición

Consultas

El comando SELECT

Las consultas en SQL son posibles gracias al comando SELECT, que tiene la siguiente estructura:

SELECT atributos
            FROM relaciones
            [WHERE condición]

En términos de álgebra relacional, el comando SELECT es equivalente a la asociación de una selección, una proyección y un producto cartesiano. Los atributos de la proyección se especifican en la cláusula SELECT; la cláusula FROM especifica las relaciones de las que se han de tomar esos atributos; y la cláusula WHERE (que es opcional) contiene una condición de selección.

Pasos para la construcción de un Modelo E/R

  1. Elaborar dos listas: una con los candidatos a ser entidades, y otra con las posibles interrelaciones junto con su tipo de correspondencia.

  2. Construir una matriz de entidades, en la que las filas y columnas son nombres de entidades y cada celda puede contener o no nombres de interrelaciones.

  3. Utilizando la matriz de entidades se construye un primer esquema E/R con las entidades, atributos, interrelaciones y sus tipos de correspondencia. A este esquema se le añaden las cardinalidades mínimas y máximas.

  4. Se refina el esquema E/R estudiando las posibles redundancias.


  1. Por conjunto mínimo se entiende aquel conjunto de atributos tal que si se elimina uno de ellos el conjunto resultante deja de ser clave candidata. 


Última actualización: August 15, 2021