3.1 Bases de Datos Relacionales

3.1.1 Definiciones

  • Dominio: contexto (organización, empresa, evento…) objeto de gestión de la información.

  • Dato: hecho con significado implícito, registable, relevante en un determinado dominio.

  • Base de datos: colección de datos de un determinado dominio relacionados entre sí, organizados de forma que sea posible manipularlos y recuperarlos de forma eficiente.

  • Sistema de Gestión de Bases de Datos (SGBD) (en inglés RDBMS, Relational Database Management System): software que permite a los usuarios crear y manipular bases de datos mediante operaciones CRUD:

    • Crear / Insertar Datos (Create)
    • Consultar / Leer (Read)
    • Actualizar / Modificar (Update)
    • Eliminar (Delete)

  • Modelo de datos: abstracción conceptual que propone una manera de organizar y manipular los datos. Definido mediante:

    • Estructura: elementos para organizar datos
    • Integridad: reglas para relaciones los elementos
    • Manipulación: operaciones sobre los datos adaptadas a la estructura y reglas
  • Modelo de datos conceptual Entidad Relación (entidades, relaciones, atributos)

  • Modelo de datos lógico o de representación (modelo relacional de Codd)

    • Datos en relaciones (tablas)
    • Base matemática formal
    • Flexible
  • Modelo de datos físico (tal y como se almacenan los datos)

Una fila de la tabla (relación) es una tupla y una columna un atributo (ver Figura 3.1).

(ver Figura 3.1)

Esquema de una relación.

Figura 3.1: Esquema de una relación.

Una base de datos es un conjunto de tablas (al menos una).

La tabla no es una relación porque la relación es un conjunto sin orden y una tabla puede tener filas repetidas y tiene orden.


  • Esquema: estructura de la base de datos

  • Estado: contenido de la base de datos

  • Restricción de integridad: regla que debe cumplir la información registrada en la base de datos para garantizar la integridad de la información.

Cualquier Base de Datos basada en el modelo relacional ha de cumplir como mínimo estas restricciones (además de las propias del dominio):

  • Restricción de dominio: el valor de cada atributo debe de ser único (teléfono, no valor único), no descomponible (nombre completo descomponible en nombre y apellidos, domicilio en calle, CP, localidad, etc…)

  • Una relación es un conjunto de tuplas, por tanto todas las tuplas son distintas.

  • Una superclave es un subconjunto de atributos tal que no existen dos tuplas con la misma superclave.

Ejercicio. En la relación Empleado(dni, nombre, apellidos, email) ¿cuántas superclaves existen?

  • Una clave candidata es una superclave mínima (superclave mínima es la clave a la que no se le puede eliminar un atributo).

¿Cuántas claves candidatas hay en el ejemplo anterior?

  • Clave primaria es la clave candidata que elegimos que identificar de forma unívoca las tuplas de una relación. Restricción de integridad de entidad: Ningún valor de la clave primaria puede ser un valor nulo.

  • Clave foránea es un conjunto de atributos de una relación R_1 que, para cada tupla, identifican a otra tupla de una relación R_2 con la que está relacionada. La Restricción de integridad referencial nos dice que la clave foránea ha de corresponderse con la clave primaria de R_2, y si la clave foránea no es nula ha de refir a una tupla en R_2.

Si borramos/actualizamos un valor de clave foránea podemos: (a) prohibir el cambio, o (b) poner a nulo la clave foránea (borrado) o propagar el cambio (modificación).


  • Ventajas de SGBD:
    • Administración centralizada de los datos (por un administrador en un servidor/plataforma central que evita la información en silos -redundante/inconsistente)
    • Desacoplado del almacenamiento físico de los datos (no es necesario conocerlo)
    • Simplicidad de acceso (ODBC + SQL, lenguaje declarativo)
    • Control de integridad (restricciones genéricas, integridad de entidad y referencial, de dominio, y las del dominio en software)
    • Control de acceso concurrente (evita inconsistencia)
    • Seguridad (autenticación, roles de acceso)
    • Recuperación ante fallos (backup, logs y transacciones -rollback-)