Ir al contenido principal

Gestores de BD

¿Qué es un gestor de base de datos?

Un gestor de base de datos —en inglés DBMS, Database Management System— es el programa que administra la base de datos. No es la base de datos: es el software que está en el medio, entre los datos guardados y quien los quiere usar.

La distinción es importante y suele confundirse. La base de datos es el conjunto de información; el gestor es el programa que la lee, la escribe, la protege y la ordena. Cuando alguien dice "uso MySQL", está nombrando al gestor, no a los datos.

Por qué hace falta

Sin un gestor, un programa que necesita guardar datos tendría que encargarse de todo: saber en qué parte del disco está cada cosa, decidir cómo se organizan los bytes, cuidar que dos usuarios no escriban a la vez sobre el mismo dato, y recuperar la información después de un corte de luz. El gestor hace ese trabajo una sola vez, y todos los programas que lo usan se benefician de él.

Qué hace un gestor

Las funciones de un gestor son muchas, pero se pueden agrupar en siete tareas. Conviene conocerlas porque cada una responde a un problema concreto que aparecería si no estuviera.

Función Qué resuelve Ejemplo
Definir la estructura Permite crear y modificar tablas, campos y relaciones sin tocar el disco a mano. CREATE TABLE clientes (...)
Consultar y modificar Es el que ejecuta las consultas y devuelve los datos. SELECT, INSERT, UPDATE, DELETE
Controlar los accesos Define quién puede ver y modificar qué. Un vendedor no necesita ver los sueldos. Usuarios y permisos
Cuidar la integridad Hace cumplir las reglas: que no haya dos documentos iguales, que una venta no quede sin cliente. Claves primarias y foráneas, restricciones
Administrar transacciones Garantiza que un conjunto de operaciones se aplique completo o no se aplique. COMMIT y ROLLBACK
Organizar el acceso simultáneo Evita que dos usuarios escribiendo a la vez se pisen entre sí. Aislamiento entre transacciones
Respaldar y recuperar Permite hacer copias de seguridad y volver atrás después de una falla. Respaldos y registro de transacciones

Hay una octava tarea que no se ve y que es igual de importante: optimizar las consultas. Cuando se le pide un dato, el gestor decide cómo buscarlo —si usa un índice o recorre toda la tabla— y esa decisión es la diferencia entre una respuesta instantánea y una que tarda minutos.

Cómo está organizado

Aunque se lo imagine como un programa único, un gestor siempre funciona en dos partes: una que atiende a quien hace la consulta, y otra que trabaja con los archivos. Entre las dos hay una capa de software que es la que hace el trabajo pesado.

Las capas de un gestor de base de datos: quien lo usa se comunica con el gestor, y el gestor lee y escribe los archivos en el disco Quien lo usa aplicación · consola · herramienta Gestor de base de datos interpreta · controla · optimiza Archivos en el disco datos · índices · registro
El gestor es la única pieza que habla los dos idiomas: entiende consultas y sabe leer bloques del disco. Nadie más necesita saber dónde está guardado cada dato.

Esa separación explica una ventaja muy concreta: se puede cambiar el disco por otro más rápido, o mover los archivos a otro servidor, sin que las aplicaciones se enteren. Como todos hablan con el gestor y nunca con el disco directamente, para ellas nada cambió.

Los gestores más usados

Estos son los gestores que aparecen una y otra vez, tanto en la industria como en la escuela. Los primeros cinco son relacionales, o sea que organizan los datos en tablas.

Gestor Quién lo mantiene Dónde se lo encuentra
MySQL Oracle El más difundido en aplicaciones web. Es el que usa la mayoría de los sitios hechos con PHP.
MariaDB Comunidad Nació como alternativa libre a MySQL y es totalmente compatible. Es el que viene en muchos servidores y en XAMPP.
PostgreSQL Comunidad Muy usado en aplicaciones serias y con datos complejos. Es el más respetuoso del estándar SQL.
SQL Server Microsoft Empresas que trabajan con Windows y con las herramientas de Microsoft.
Oracle Database Oracle Grandes empresas, bancos y organismos. Es muy potente y muy costoso.
SQLite Comunidad Aplicaciones de escritorio y celulares. No necesita un servidor: la base entera es un archivo.

También existen gestores no relacionales, como MongoDB, que guardan la información en documentos en lugar de tablas. Se los llama NoSQL, y se usan cuando la estructura de los datos cambia mucho o cuando el volumen es enorme.

Cuadro comparativo

Más allá de las marcas, los gestores se diferencian por unas pocas características que son las que realmente importan al momento de elegir.

Gestor Licencia Costo Facilidad de instalación Ideal para
MySQLLibreGratisAltaAprender y hacer aplicaciones web
MariaDBLibreGratisAltaLo mismo que MySQL, con licencia más abierta
PostgreSQLLibreGratisMediaDatos complejos y aplicaciones que van a crecer
SQL ServerPropietariaSegún ediciónMediaOrganizaciones que ya usan tecnología Microsoft
OraclePropietariaAltoBajaSistemas críticos de gran escala
SQLiteLibreGratisMuy altaAplicaciones chicas y proyectos de un solo equipo

Cómo se elige uno

La elección de un gestor suele presentarse como una decisión técnica complicada, y en la práctica casi nunca lo es. Estos son los criterios que verdaderamente pesan, ordenados de mayor a menor importancia:

Criterio Por qué importa
Lo que ya está instalado Es el criterio que decide la mayoría de las veces. Si la institución o el hosting ya tienen un gestor funcionando, esa es la respuesta.
Quién lo va a mantener Un gestor que nadie sabe administrar es un problema esperando. Vale más uno conocido que uno mejor.
La licencia y el costo Para un proyecto educativo, un gestor libre evita todo el problema del presupuesto y las licencias.
El volumen de datos Para pocos miles de registros, cualquier gestor relacional alcanza. El tamaño solo importa en escalas grandes.
Las herramientas disponibles Que exista una herramienta gráfica cómoda (phpMyAdmin, DBeaver) hace una diferencia enorme al aprender.
Con qué se conecta El lenguaje con el que se va a programar tiene que tener soporte para ese gestor. Todos los lenguajes actuales lo tienen para los gestores conocidos.

Resumen

Concepto La idea que hay que recordar
Gestor de base de datosEl programa que administra la base de datos. No es la base: es el software del medio.
Por qué hace faltaHace una sola vez el trabajo difícil: disco, concurrencia, recuperación y seguridad.
Sus funcionesDefinir, consultar, controlar accesos, cuidar la integridad, administrar transacciones, organizar la concurrencia y respaldar.
Está en dos partesUna parte atiende las consultas y otra trabaja con los archivos.
RelacionalesMySQL, MariaDB, PostgreSQL, SQL Server, Oracle.
No relacionalesMongoDB y otros, que guardan documentos en lugar de tablas.
Cómo se eligeLo que ya está instalado y lo que alguien sabe mantener, antes que lo más famoso.