Te explicamos cómo funcionan las SGBD (del inglés: Data Base Management System o DBMS), qué tipos existen y compartimos una selección de las cinco bases de datos más populares entre los desarrolladores.
En las bases de datos se almacena hoy en día prácticamente todo: tus conversaciones, los datos de tu pasaporte en portales gubernamentales, tus contraseñas de sitios web, videos en plataformas de hosting, canciones en plataformas de música. Pero para que toda esta información no se pierda y sea fácil de gestionar, se crearon las SGBD.
¿Qué es una SGBD?
Para entender qué es una SGBD, primero hay que saber qué es una base de datos (BD).
Una base de datos es un conjunto de datos ordenados y estructurados que se almacenan en un ordenador determinado. La forma más sencilla de imaginarla es como una gran hoja de cálculo de Excel, donde cada elemento (fila) tiene ciertas propiedades (columnas).
Si creas una base de datos para una tienda de comestibles, cada producto —por ejemplo, chicles, chocolates y botellas de agua— tendrá propiedades como: precio, cantidad en stock y fecha de caducidad.
Las bases de datos son simplemente archivos en el disco del ordenador donde se pueden escribir nuevos elementos. Pero las BD en sí mismas no hacen nada, por lo que es necesario escribir métodos propios para gestionarlas —por ejemplo, para añadir un nuevo elemento o buscar una entrada determinada. Para facilitar el trabajo a los programadores, se crearon las SGBD.
Un sistema de gestión de bases de datos (SGBD) es un conjunto de herramientas que permiten gestionar cómodamente las bases de datos: eliminar, añadir, filtrar y encontrar elementos, cambiar su estructura y crear copias de seguridad.
Una SGBD se puede representar como una capa intermedia entre la base de datos y las solicitudes del usuario.
Cuando un usuario pulsa un botón en un sitio web —por ejemplo, para descargar una imagen—, el sitio web crea una solicitud específica a la base de datos y la envía a la SGBD. Esta la analiza y busca la información solicitada en la base de datos, y luego la devuelve al sitio web. Este la convierte en un formato legible para el usuario y se la proporciona.
Sin una SGBD, los desarrolladores tendrían que buscar manualmente la información que necesitan en los archivos de las bases de datos. Se podría decir que una base de datos sin SGBD es como un coche sin carrocería. En teoría, es un coche: se puede repostar, cambiar el aceite y las piezas. Pero no se podrá conducir normalmente. Habrá que montar todo primero, hacer la carrocería y luego conducir.
Una SGBD es necesaria para simplificar la vida de los programadores y proporcionarles todas las herramientas necesarias para trabajar con bases de datos.
¿Para qué sirven las SGBD?
Las SGBD son necesarias para todas las manipulaciones con las bases de datos, es decir, para:
- Crear bases de datos y administrarlas: eliminarlas, modificarlas y combinarlas;
- Mantener los datos en un formato y estructura adecuados;
- Proteger los datos de cambios no deseados e intentos de intrusión;
- Cargar y ordenar datos mediante filtros;
- Realizar copias de seguridad, restaurar las bases de datos tras fallos y mantener la integridad general.
Con la ayuda de las SGBD, los desarrolladores realizan un seguimiento de todos los cambios en las bases de datos. Y las BD almacenan la información de los usuarios: sus transacciones y acciones.
Por ejemplo, para crear una base de datos con un catálogo de todos los productos de un marketplace, hay que crear una tabla enorme con filas, donde cada una tendrá ciertas propiedades. Pueden ser las siguientes:
- Nombre del producto;
- Coste;
- Número de unidades en stock;
- Proveedor.
Para mantener esta tabla ordenada y añadir constantemente nuevos elementos, es necesario garantizar la fiabilidad y una alta velocidad de funcionamiento. Para ello, precisamente, se necesitan las SGBD.
De qué se compone una SGBD
Una SGBD es un conjunto de herramientas, cada una de las cuales puede realizar una acción determinada con la base de datos: leerla, eliminar elementos o procesar las solicitudes del usuario. Y para que todas estas herramientas funcionen correctamente, una SGBD debe tener una arquitectura bien definida.
Los elementos principales de una SGBD son el núcleo, el procesador, las herramientas de software y las bases de datos. Hablemos de cada uno de ellos con más detalle.
- Núcleo. Se encarga del funcionamiento de todo el sistema en su conjunto. A través de él pasan todos los procesos de procesamiento y almacenamiento de datos. El núcleo realiza un seguimiento de todos los cambios en las bases de datos y los registra.
- Procesador o compilador. Se encarga del procesamiento de las solicitudes de los usuarios. Su principal tarea es transformar la solicitud SQL en comandos comprensibles para el ordenador y luego devolver los resultados.
- Herramientas de software o utilidades. Son necesarias para que el usuario pueda introducir solicitudes y los administradores puedan configurar el acceso y otros parámetros necesarios.
- Bases de datos. El lugar donde se almacenan los datos de forma ordenada y, a veces, cifrada. Las bases de datos pueden diferir en su estructura y tipos de representación de datos.
Tipos de SGBD
Las SGBD se dividen en diferentes tipos y según diferentes parámetros. Analizaremos cómo difieren en cuatro clasificaciones: según la ubicación de las bases de datos, según el almacenamiento y procesamiento de datos, según el lenguaje de las consultas y según la estructura y organización de los datos.
Según la ubicación de las bases de datos
Las SGBD pueden ser locales o distribuidas.
- Locales. Es cuando todo el contenido de la base de datos se encuentra en un solo ordenador, normalmente en el servidor de la empresa.
- Distribuidas. Es cuando la base de datos se encuentra parcialmente en diferentes ordenadores, por ejemplo, en la nube.
Las SGBD modernas pueden ser simultáneamente locales y distribuidas.
Según el almacenamiento y procesamiento de datos
Aquí, las SGBD se dividen en cliente-servidor, archivo-servidor e integradas.
- Cliente-servidor. Es cuando la SGBD con la base de datos se encuentran en un solo ordenador, al que los usuarios acceden con sus solicitudes. Se puede acceder a esta SGBD desde cualquier ordenador.
Muchas tiendas online crean este tipo de bases de datos para que los usuarios puedan obtener rápidamente información actualizada sobre sus productos.
- Archivo-servidor. Es cuando la base de datos se encuentra en un servidor, y la SGBD, en los dispositivos desde los que se envían las solicitudes a la base. Para obtener los datos, el usuario debe tener instalada y configurada la SGBD.
Las SGBD archivo-servidor se utilizan para servicios locales de las empresas, como los sistemas CRM, donde se encuentran los datos sobre los clientes y el flujo de trabajo.
- Integradas. Son SGBD locales que constituyen un módulo independiente para gestionar datos dentro de las aplicaciones. Normalmente se escriben como bibliotecas para diferentes lenguajes de programación.
Por ejemplo, Microsoft Access tiene este tipo de SGBD.
Según el lenguaje de las consultas
Las SGBD admiten el lenguaje de consultas estructuradas y no estructuradas.
- SQL. Es el lenguaje para crear consultas estructuradas a las bases de datos. Estas SGBD son las más populares.
- NoSQL. Es un lenguaje para consultas que se basa en otro lenguaje de programación, como Python o JavaScript. Las SGBD con NoSQL se suelen utilizar cuando se trabaja con grandes volúmenes de datos.
Según la estructura y organización de los datos
La última característica por la que se dividen las SGBD es la forma en que representan la información dentro de las bases de datos.
- Relacionales. Los datos se presentan en forma de tablas que están interconectadas a través de parámetros comunes. Esta arquitectura proporciona un almacenamiento de datos por filas y es necesaria para crear una estructura estricta. Otra de sus características es que, con una sola consulta a la base, el usuario sólo podrá obtener un pequeño número de elementos.
Cada fila tiene un identificador único, o clave. Por lo tanto, es fácil encontrar los datos necesarios y relacionarlos entre sí en una base de datos de este tipo.
Las bases de datos relacionales se utilizan cuando el volumen de datos no supera varios terabytes. Esto las hace adecuadas para prácticamente cualquier proyecto.
Las bases de datos relacionales más populares son PostgreSQL, Microsoft SQL Server, MySQL, Oracle.
Las bases de datos relacionales se aplican cuando son importantes las siguientes características:
- Transaccionalidad. Para realizar una operación, hay que realizar varias consultas a la base de datos. Esto puede ser, por ejemplo, una transferencia de dinero de una tarjeta a otra a través de una aplicación bancaria.
- Cambios frecuentes de datos. Como las bases de datos relacionales tienen una estructura estricta.
- Búsqueda por índices. Cada elemento de esta base de datos es una fila, y es conveniente buscar elementos por filas.
- Consultas de un pequeño número de registros a la vez. Las bases de datos relacionales funcionan según este principio.
- El volumen de datos no supera varios terabytes. Si hay más, esta base de datos funcionará más lentamente.
- Clave-valor. Cada elemento de la base de datos utiliza un identificador único, que consta de una clave y un valor, para el almacenamiento. Este método de almacenamiento es similar al tipo de datos «diccionario» en los lenguajes de programación.
Las bases de datos de tipo «clave-valor» tienen el aspecto de tablas hash, en las que cada entrada tiene sólo un índice. Al mismo tiempo, no hay restricciones estrictas en la estructura de los elementos.
Estas bases de datos se utilizan según el principio de los registros, donde las nuevas entradas se añaden al final del almacenamiento. Los elementos se eliminan añadiendo una entrada especial.
Otras formas de utilizar las bases de datos de tipo «clave-valor» son las colas, la caché y el registro.
Las bases de datos de tipo «clave-valor» más populares son Redis, DynamoDB y Aerospike.
- Documentales. A diferencia de las bases de datos relacionales, las bases de datos orientadas a documentos almacenan la información en forma de «documentos», no de tablas y filas. La principal ventaja de las bases de datos documentales es la posibilidad de almacenar información sin restricciones estrictas en la estructura.
Las bases de datos documentales pueden almacenar la información completa y obtenerla con una sola consulta. Incluso si la estructura de los elementos es diferente. Las bases de datos documentales también permiten utilizar enlaces a otros registros en la base, lo que se parece a un modelo relacional.
Las bases de datos documentales más populares son MongoDB, CouchDB y Amazon DocumentDB.
- Gráficas. En ellas, los elementos tienen interconexiones en forma de grafo, donde cada uno de sus nodos tiene múltiples conexiones con otros nodos. Este tipo de bases de datos se parece a una red. Normalmente, estas bases de datos se utilizan en redes sociales o servicios de recomendación.
Cada nodo de una base de datos gráfica contiene datos, y para establecer interconexiones entre los nodos, se utilizan aristas. Estas almacenan los nodos inicial y final, la dirección y el tipo. Las aristas describen las interconexiones entre dos nodos —por ejemplo, «padre-hijo»—, así como las acciones sobre ellos.
Se puede recorrer todo el grafo muy rápidamente, ya que las conexiones entre los nodos no se cuentan durante la consulta, sino que se almacenan directamente en la base de datos. Por lo tanto, las bases de datos gráficas se utilizan en redes sociales, servicios de recomendación y sistemas de detección de fraudes, donde es necesario establecer interconexiones entre los datos y consultarlos.
Las bases de datos gráficas más populares son Amazon Neptune, Neo4j e InfiniteGraph.
- Columnas. En ellas, los datos se almacenan secuencialmente en forma de una sola columna, y se supone que en el mismo lugar de cada columna se almacenan los elementos que pertenecen a una misma fila. Esto permite comprimir y analizar los datos de forma eficaz: encontrar la suma, la cantidad o el valor medio.
Las bases de datos en columnas permiten cargar nuevos datos en flujo continuo o en porciones. Sin embargo, no se pueden eliminar de esta forma.
El principal campo de aplicación de las bases de datos columnares es el análisis de datos. Los analistas y gestores de las empresas utilizan estas bases de datos para almacenar el historial de eventos.
Las bases de datos en columnas más populares son ClickHouse, Apache Druid, Vertica, BigQuery y Teradata.
SGBD populares
Existen muchas SGBD, pero los programadores suelen utilizar siete de las más populares: PostgreSQL, Microsoft SQL Server, MySQL, SQLite, MongoDB, Redis y Oracle.
PostgreSQL
- Tipo. SGBD relacional de tipo cliente-servidor.
- Coste. Gratuito.
- Licencia. PostgreSQL License, Open Source.
- Para quién. Adecuado para proyectos de cualquier complejidad y volumen.
- Ventajas. La SGBD tiene una gran funcionalidad y un alto rendimiento, por ejemplo, puede trabajar sin problemas con grandes volúmenes de datos bajo una alta carga.
El lenguaje de consultas es SQL, pero se puede cambiar a través de extensiones a PL/Python, PL/Java y PL/Perl. Y otra ventaja de PostgreSQL es que no tiene límite en el tamaño de las bases de datos ni en el número de registros en las tablas.
Se puede descargar la SGBD en el sitio web oficial.
MySQL
- Tipo. SGBD relacional de tipo cliente-servidor.
- Coste. Gratuito.
- Licencia. GPLv2, propietaria.
- Para quién. Adecuado para equipos y proyectos pequeños y medianos.
- Ventajas. La interfaz del programa permite trabajar con tablas de diferentes formatos. MySQL funciona online y admite hasta 50 millones de elementos. Pero en cuanto a funcionalidad, es inferior a PostgreSQL. Sin embargo, se puede integrar con otras SGBD.
Empresas como Twitter, Alibaba, Facebook*, Wikipedia han utilizado MySQL para sus sitios web y tiendas online.
Después de que Oracle comprara MySQL, los usuarios empezaron a preocuparse de que la base de datos pudiera llegar a ser de pago en breve. Pero de momento sigue siendo gratuita.
Se puede descargar la SGBD gratuitamente en el sitio web oficial.
Microsoft SQL Server
- Tipo. SGBD relacional.
- Coste. Gratuito.
- Licencia. Propietaria.
- Para quién. La versión de pago se utiliza en grandes empresas, y la gratuita se puede utilizar sin problemas en proyectos con un volumen de datos de hasta 10 GB.
- Ventajas. Esta SGBD añade automatización de tareas, por ejemplo, se puede establecer un script que gestione la memoria. Además, Microsoft SQL Server permite almacenar cómodamente estructuras de datos complejas y buscarlas rápidamente.
La SGBD es compatible con otros programas de Microsoft, como Excel y Access. Se puede realizar una integración con ellos y exportar datos desde allí, así como modificarlos online.
Como lenguaje de consultas, Microsoft SQL Server utiliza el lenguaje SQL.
Se puede descargar la SGBD en el sitio web oficial.
SQLite
- Tipo. SGBD monofichero en forma de biblioteca para lenguajes de programación.
- Coste. Gratuito.
- Licencia. GPLv2, propietaria.
- Para quién. Adecuado para proyectos pequeños.
- Ventajas. SQLite es una SGBD muy compacta que no utiliza servidores ni otras utilidades. Todos los datos se almacenan en un solo dispositivo.
Con SQLite se puede crear un sitio web o una aplicación sencilla con un tráfico y un volumen de datos almacenados limitados. La SGBD funciona en cualquier dispositivo: smartphones, ordenadores, televisores y otros donde se pueda cargar la biblioteca. No necesita administración, y su lenguaje de consultas es C.
Se puede descargar la SGBD en el sitio web oficial.
MongoDB
- Tipo. SGBD documental con gestión NoSQL, en la que los datos se almacenan en forma de archivos JSON.
- Coste. Gratuito.
- Licencia. Server Side Public License.
- Para quién. Adecuado para aquellos que necesitan trabajar con grandes volúmenes de datos de múltiples fuentes.
- Ventajas. La principal característica de esta SGBD es que los datos se presentan en forma de documentos de texto, que se escriben en formato JSON.
En lugar de tablas, aquí los datos se presentan en forma de colecciones: grupos de documentos. La SGBD está optimizada para el trabajo distribuido, pero también admite el almacenamiento local de datos.
Empresas como Facebook, Google, Twitter, Forbes, IBM, así como muchas tiendas online, utilizan MongoDB.
Se puede descargar la SGBD en el sitio web oficial.
Redis
- Tipo. Base de datos de tipo «clave-valor».
- Coste. Gratuito.
- Licencia. BSD, Open Source.
- Para quién. Redis se utiliza para sitios web de viajes, foros y redes sociales. También es adecuada para aplicaciones SaaS y servicios de comercio electrónico.
- Ventajas. Redis se puede utilizar en la nube: totalmente lista para su uso y con una configuración óptima. Es fácilmente escalable y manejable.
En Redis se pueden transferir datos de otra base de datos mediante un servicio automatizado.
Se puede descargar la SGBD en el sitio web oficial.
Oracle Database
- Tipo. Base de datos objeto-relacional.
- Coste. Gratuito.
- Licencia. Propietaria.
- Para quién. Para proyectos de cualquier complejidad.
- Ventajas. Oracle DB funciona como cliente-servidor. Esto significa que se encuentra en el servidor junto con la base de datos. Por lo tanto, para trabajar con ella, se necesita una interfaz especial de la aplicación cliente. El usuario gestiona la transferencia y la recepción de datos del servicio.
Oracle DB proporciona una alta seguridad y un fácil acceso para los usuarios. Además, permite reducir la carga en los ordenadores cliente. Sin embargo, el servidor para la SGBD debe ser más potente.
Se puede descargar la SGBD en el sitio web oficial.