Bases de Datos Relacionales – Introducción

Última actualización: 18/01/2021

Las bases de datos relacionales y el lenguaje SQL son algunos de los conceptos fundamentales que necesitarás aprender si te interesa el Big Data.

Estos conceptos estarán presentes en casi cualquier proyecto. No te pierdas esta entrada en la que aprenderás las ideas básicas sobre bases de datos relacionales y SQL.

Bases de datos Relacionales

¿Qué es una Base de Datos Relacional?

Las bases de datos relacionales o también llamadas bases de datos SQL se caracterizan por usar el lenguaje de consulta SQL. Tienen estructuras de datos planas unidas con operaciones de tipo join y esquemas rígidos. Están enfocadas en las relaciones entre datos y evitan los datos duplicados.

Las consultas y los índices se modelan después de los datos, que están orientados a filas. También, es posible definir relaciones uno a uno (one to one) o uno a varios (one to many).

En el modelo relacional definimos tablas que contienen los datos y su estructura. En las consultas es posible devolver varias tablas, relacionando tablas padre con tablas hijo o utilizando operaciones de tipo join.

Modelo Entidad-Relación

Las bases de datos relacionales implementan un modelo entidad-relación para representar los datos. Definen entidades, que son los objetos que se quieren guardar en la base de datos. Estas entidades pueden tener tipos que las describen y ocurrencias.

Los atributos son las propiedades o características de las entidades. El atributo identificador permite distinguir una ocurrencia de una entidad unívocamente. Se usan para hacer referencia a un registro de forma individual.

Las relaciones son las asociaciones o vinculaciones entre las entidades. Suelen representar una acción como “pertenece” o “tiene”. Las relaciones tienen una cardinalidad, que describe el número de ejemplares de cada entidad que pueden estar relacionados con otra.

En el caso de querer definir una relación de varios a varios (many to many) se puede expresar usando las dos tablas y una tabla adicional con las relaciones. Para devolver los registros, se usarán varias operaciones de tipo join sobre las tres tablas.

En los esquemas entidad relación es necesario evitar las redundancias para no tener problemas de inconsistencias. Los elementos que son redundantes pueden ser eliminados sin pérdida semántica. También, para ser redundantes deben formar un ciclo.

Conceptos Básicos de las Bases de Datos Relacionales

A continuación voy a describir algunos conceptos y operaciones básicas con las bases de datos relacionales para entender su funcionamiento y familiarizarnos con sus características.

Operaciones Básicas

Las operaciones básicas de interacción con una base de datos relacional se realizan mediante el lenguaje de consulta SQL. Aquí tienes unos ejemplos sencillos para ilustrar el funcionamiento.

Creación de una tabla

Podemos crear una tabla con la sentencia CREATE TABLE. Debemos especificar los campos que queremos que tenga. Podemos restringir un campo para que no tenga valores null y establecer claves primarias y ajenas.

CREATE TABLE clientes
(
  id char(5) PRIMARY KEY,
  nombre char(40) NOT NULL,
  edad integer,
  direccion char(120),
  cuidad char(25),
  pais char(50),
  email char(100),
  telefono char(15)
);

Inserción

Para insertar valores en una tabla existente especificaremos el nombre de la tabla y los valores que queremos insertar a continuación.

INSERT INTO clientes 
 (id, nombre, edad, direccion, ciudad, pais, email, telefono)
VALUES
 ('1', 'Oscar', 28, 'C/ A', 'Madrid', 'España', NULL, NULL),
 ('2', 'Charlie', 50, 'C/ B', 'Madrid', 'España', NULL, NULL);

Actualización

Podemos actualizar los valores que queramos estableciendo condiciones en la sección WHERE.

UPDATE clientes
SET edad = 80
WHERE id = 1;

Búsqueda

Si queremos obtener los registros de una tabla que cumplen unas determinadas condiciones podemos hacerlo usando un SELECT.

SELECT
   id, 
   nombre,
   edad   
FROM 
   clientes
WHERE
   edad > 30
ORDER BY 
   id DESC;

Vistas

En las bases de datos relacionales podemos establecer vistas con SQL. Estas vistas nos proporcionan acceso rápido a datos que se obtendrían de agregar, filtrar o combinar datos de otras tablas.

Las vistas se pueden tratar en SQL como si fueran una tabla una vez que se han creado.

CREATE VIEW clientes_madrid AS
SELECT id, nombre, edad
FROM clientes
WHERE cuidad = 'Madrid';

Índices

Es posible crear índices sobre determinados campos en las tablas de las bases de datos relacionales. Estos índices son útiles para acelerar las búsquedas que filtran por ese campo.

Transacciones

Una transacción en una base de datos es un conjunto de operaciones que se ejecutan de forma indivisible. El sistema de gestión las considera una unidad y deben realizarse todas las operaciones con éxito o ninguna.

Las transacciones cumplen las propiedades ACID. En el caso de que existan varias transacciones al mismo tiempo, el sistema puede bloquear o cancelar las que puedan colisionar para evitar inconsistencias.

Propiedades ACID

Las bases de datos relacionales garantizan las propiedades ACID (Atomicity, Consistency, Isolation, Durability). Esto es un acrónimo en inglés para denominar las siguientes propiedades:

  • Atomicidad: Proporciona la capacidad de que se ejecuten todos los pasos de una operación o ninguno. Permite la implementación de transacciones.
  • Consistencia: Proporciona integridad a la base de datos. Mantiene estados válidos de los datos después de cualquier operación, de forma que la información que se presenta es siempre correcta.
  • Aislamiento: Permite que las operaciones realizadas sobre la base de datos sean independientes, y no afecten unas a otras. En el caso de concurrencia de operaciones, la base de datos debe gestionar correctamente la visibilidad de los datos y las secuencias de cambios.
  • Durabilidad: Proporciona la persistencia de las operaciones realizadas sobre los datos.

Ejemplos de Bases de Datos Relacionales

Estos son unos ejemplos de las bases de datos relacionales más populares:

  • PostgreSQL
  • MySQL / MariaDB
  • SQLServer
  • Oracle
  • Amazon RDS – Relational Database Service
  • Amazon Aurora
  • IBM DB2

Siguientes Pasos

A continuación tienes los mejores cursos de Udemy para aprender a implementar y trabajar con bases de datos relacionales y SQL en español:

Aquí te dejo tres libros para comprender en profundidad las bases de datos relacionales:

Preguntas Frecuentes Bases de Datos Relacionales- FAQ

¿Qué es SQL?

SQL o Lenguaje de Consulta Estructurado permite interaccionar con una base de datos insertando, eliminando, actualizando y consultando datos. Es un lenguaje muy extendido y soportado por muchas bases de datos de varios tipos. Es característico de las bases de datos relacionales.

¿Cuáles son las Ventajas del Modelo Relacional?

El modelo relacional nos permite representar datos de forma simple e implementar procesos de consulta de datos con rapidez. Mantiene la consistencia y la integridad de los datos a la vez que permite la flexibilidad necesaria en el futuro.


A continuación, el vídeo-resumen. ¡No te lo pierdas!


¡Echa un ojo a mi lista de reproducción de Big Data y suscríbete al canal de Youtube para no perderte ninguna píldora BIG DATA!

Si te ayuda el contenido del blog, ¡considera unirte a la lista de correo para reconocer el trabajo!

Deja una respuesta