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.
Contenidos
¿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 (commit) 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.
Motores de Almacenamiento en Bases de Datos SQL
El motor de almacenamiento en las bases de datos relacionales o SQL es el responsable de la gestión de los datos, su escritura persistente en el disco y de las lecturas que se producen.
Este motor también gestiona las transacciones de las bases de datos, teniendo en cuenta la complejidad de los commits para garantizar la consistencia de los datos. Las propiedades ACID, por tanto, están directamente relacionadas con estos motores.
Cada base de datos relacional implementa su propio motor de almacenamiento. Por ejemplo, MySQL usa InnoDB.
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
Cómo Convertirse en Desarrollador SQL
Los desarrolladores SQL desempeñan un papel muy importante cuando una empresa lleva a cabo un proceso de migración de datos a la nube. Un buen desarrollador SQL debe comunicarse bien con los expertos técnicos y no técnicos de todo el negocio, y de esta forma poder organizar adecuadamente los datos de la organización.
El dominio del lenguaje SQL es una de las habilidades más demandadas entre ingeniero de datos, data science y business intelligence.
Entre las funciones más importantes de estos profesionales se encuentran las siguientes:
- Construir, mantener e interactuar con sistemas de bases de datos
- Crear informes bajo demanda con los datos almacenados en estas bases de datos
- Realizar pruebas y desarrollar en SQL, usando stored procedures, vistas y funciones o UDF
- Exportar datos de varias fuentes y usando herramientas ETL
- Trabajar en equipo comunicando y entendiendo las necesidades del negocio para diseñar una solución de datos adecuada
- Gestionar migraciones de bases de datos a nuevos sistemas
Para conseguir estos objetivos, deben dominar y comprender las siguientes tecnologías o dominios:
- Lenguaje SQL y bases de datos relacionales
- Herramientas de visualización de datos como Tableau o Power BI
- Bases de datos NoSQL
- Lenguajes de programación como Java y Python
- Microsoft Excel
Siguientes Pasos, Formación y Cursos de SQL y Bases de Datos Relacionales
A continuación tienes los que son, en mi opinión, los tres mejores cursos para aprender a implementar y trabajar con bases de datos relacionales y SQL:
Introducción a las Bases de Datos Relacionales (RDBMS)
Este curso está ofrecido por IBM en la plataforma de formación online Coursera. Cuenta con más de 14 horas de contenido. Te proporcionará de una manera fácil de entender la teoría necesaria sobre cómo diseñar e implementar bases de datos relacionales: su modelo de datos, modelo entidad-relación, diagramas y constraints.
Sistemas de Bases de Datos Relacionales
Este curso forma parte de la especialización en sistemas de bases de datos de la Universidad Autónoma de Mexico que tienes disponible en Coursera. Se centra en los conceptos teóricos más importantes de las bases de datos relacionales que te servirán de ayuda para facilitar y acelerar tu aprendizaje.
Especialización en diseño de bases de datos y Business Intelligence
Este curso de la UCI en Coursera te permitirá utilizar los datos para mejorar la toma de decisiones de la empresa. Te enseñará a utilizar técnicas de modelado y manipulación de datos potentes en 3 módulos:
También, te dejo tres libros para comprender en profundidad las bases de datos relacionales:
- Diseño de Bases de Datos – Un enfoque práctico: Aprende a diseñar bases de datos desde el modelo conceptual hasta el modelo relacional con esta guía práctica con ejemplos (español)
- Cerrando la brecha entre la teoría del diseño de bases de datos y las prácticas del mundo real (inglés)
- Diseño de bases de datos para simples mortales: una guía práctica para el diseño de bases de datos relacionales (inglés)
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!