4. Motores de Bases de Datos y SQL (informativo)

Hasta este punto hemos utilizado tablas para representar información y hemos relacionado estas tablas con estructuras de datos de Python y con hojas de cálculo.

Sin embargo, una Base de Datos no es solamente una tabla con filas y columnas.

Para crear, almacenar, organizar, consultar y administrar una Base de Datos se utiliza un software específico denominado Sistema de Gestión de Bases de Datos o DBMS — Database Management System.

Algunos ejemplos conocidos son:

  • MySQL
  • MariaDB
  • PostgreSQL
  • SQLite
  • Microsoft SQL Server
  • Oracle Database

Cada uno de estos productos tiene características diferentes, pero todos permiten trabajar con Bases de Datos de manera organizada.

¿Qué es un motor de Base de Datos?

De manera simplificada, podemos pensar en el motor de Base de Datos como el software encargado de administrar la información almacenada.

Entre otras tareas, permite:

  • crear Bases de Datos;
  • crear y modificar tablas;
  • almacenar registros;
  • buscar información;
  • ordenar y filtrar datos;
  • relacionar tablas;
  • modificar o eliminar registros;
  • controlar el acceso a los datos.

Es decir, el motor se encarga de muchas tareas que una hoja de cálculo o una simple estructura de Python no realizan por sí solas.

¿Qué es SQL?

Para trabajar con muchas Bases de Datos relacionales se utiliza un lenguaje denominado: SQL — Structured Query Language o Lenguaje de Consulta Estructurado.

SQL permite enviar instrucciones al motor de Base de Datos.

Por ejemplo, supongamos una tabla:

ALUMNOS

id_alumno | nombre | nota
----------+--------+-----
1         | Juan   | 7
2         | Ana    | 8
3         | Pedro  | 4

Una instrucción SQL podría ser:

SELECT *
FROM alumnos;

De manera simplificada, esta instrucción solicita mostrar todos los registros de la tabla alumnos.

Si quisiéramos solamente los alumnos con nota mayor o igual a 6:

SELECT *
FROM alumnos
WHERE nota >= 6;

Puede observarse que el concepto es parecido a operaciones que ya hemos visto:

Calc        → Filtro
Python      → if
SQL         → WHERE

Aunque las herramientas y la forma de utilizarlas son diferentes, nuevamente encontramos una idea común: seleccionar información que cumple una determinada condición.

SQL permite hacer mucho más

SQL no se limita solamente a consultar información.

También permite, entre otras cosas:

CREATE

crear estructuras;

INSERT

agregar registros;

UPDATE

modificar información;

DELETE

eliminar registros;

SELECT

consultar información.

Además, SQL permite trabajar con relaciones entre varias tablas, realizar búsquedas complejas, agrupar información y efectuar muchas otras operaciones.

Bases de Datos es un tema mucho más amplio

El estudio de Bases de Datos incluye muchos conceptos que exceden los objetivos de esta materia.

Entre ellos pueden encontrarse:

  • diseño de Bases de Datos;
  • modelo relacional;
  • claves primarias y claves foráneas;
  • relaciones entre tablas;
  • normalización;
  • consultas SQL;
  • índices;
  • transacciones;
  • usuarios y permisos;
  • seguridad;
  • copias de respaldo;
  • administración de servidores de Bases de Datos.

Cada uno de estos temas requiere un estudio más detallado.

Por esta razón, en esta materia nuestro objetivo no será aprender en profundidad un motor de Base de Datos ni el lenguaje SQL.

El objetivo será solamente comprender que la información que hasta ahora representamos mediante:

Calc

o mediante:

Listas y Diccionarios de Python

también puede almacenarse y administrarse mediante sistemas específicamente diseñados para ello:

                DATOS
                  |
        ---------------------
        |                   |
       Calc              Python
        |                   |
        -----------+---------
                   |
                   v
            Base de Datos
                   |
                   v
          Motor de Base de Datos
                   |
                   v
                  SQL

IMPORTANTE: SQL es un lenguaje y MySQL, MariaDB, PostgreSQL, SQLite, etc. son sistemas o motores de Bases de Datos. No son la misma cosa.

Este capítulo tiene únicamente carácter informativo. El estudio detallado de Bases de Datos, de los diferentes motores disponibles y del lenguaje SQL corresponde a un área específica y mucho más extensa que los contenidos desarrollados en esta materia.