En este artículo pretendemos ofrecer una visión general de las alternativas más populares de sistemas gestores de bases de datos (SGBD), que podrás implementar en tus sitios web y aplicaciones de cualquier propósito.
De entre todos los SGBD que existen, que podríamos contar por decenas, nos hemos quedado con estos cinco, que son los más relevantes en el panorama actual.
MySQL
MySQL es el sistema gestor de bases de datos más popular del mundo desde hace décadas… y debido al número de aplicaciones que usan MySQL, como WordPress, y al estupendo tándem que realiza con el lenguaje PHP, esperamos que lo siga siendo durante mucho tiempo.
Se trata de un sistema de bases de datos relacionales (como la mayoría de los sistemas más populares y los que vamos a ver en este post). Los sistemas relacionales tienen la característica de agrupar los datos en entidades que se almacenan en tablas. Las tablas tienen índices que nos permiten pivotar entre los registros que se encuentran en esa tabla y los que se encuentran en las tablas relacionadas.
Hay personas que consideran a MySQL con una base de datos menor, adecuada para proyectos pequeños. Sin embargo actualmente el SGBD ha mejorado tanto que se puede fácilmente usar para proyectos medianos y grandes. Por ejemplo, MySQL comenzó sin soporte a la integridad referencial, pero ya desde hace más de 15 años está disponible. Además, en la actualidad soporta diversos motores de almacenamiento, para ajustarse a las demandas de la mayoría de los proyectos.
MySQL es de código abierto y mantiene versiones del software que se pueden usar de manera gratuita. Sin embargo, este sistema gestor tiene un punto débil desde que fue adquirido por Oracle, que es una empresa con claro enfoque comercial. Este punto oscuro consiste en su doble modelo de licencia, que puede resultar confuso para los desarrolladores y empresas.
Por ello, actualmente existe una alternativa a MySQL que se llama MariaDB y que podemos usar si nos resulta espinosa la política de licencias de MySQL. MariaDB no es más que un fork de MySQL, es decir, un software que se creó como una rama del propio MySQL. Podemos usar MariaDB en cualquier aplicación donde se puede usar MySQL y de hecho en la práctica totalidad de las ocasiones es completamente transparente para el desarrollador.
Oracle
Oracle es el sistema gestor de base de datos relacional más importante en el mundo empresarial. Es considerado como el más potente de todos los sistemas de bases de datos existentes pero sin embargo tiene una desventaja clave, pues las licencias para el uso suelen ser bastante caras. Es por ello que generalmente en el mundo online los desarrolladores acaban confiando en otros modelos de bases de datos más económicos o gratuitos, que en muchos casos nos aportan tantas ventajas como Oracle, incluso para los proyectos de grande envergadura, como es el caso de la siguiente alternativa que te vamos a presentar: PostgreSQL.
PostgreSQL
Es un sistema de bases de datos de grado empresarial y muchas personas lo consideran a la par con Oracle. Por ello es el sistema preferido para proyectos del modelo de startups que desean un producto viable, con bajo coste pero que permita la escalabilidad hasta cualquier límite que se pueda llegar a necesitar.
PostgreSQL también funciona bajo el modelo relacional, que a decir verdad es el más adecuado para la mayoría de las aplicaciones. Su modelo de licencias es completamente abierto y gratuito para cualquier tipo de negocio. Quizás la desventaja con respecto a otros sistemas gestores más limitados como MySQL es que requiere un poco más de esfuerzo para realizar el mantenimiento de las bases de datos y el despliegue de los proyectos, ya que el propio sistema ofrece muchas configuraciones y personalizaciones que se pueden realizar para mejorar su desempeño. No obstante, esto no nos debe asustar porque empezar con PostgreSQL y usar la base de datos puede ser también muy sencillo si no tenemos requisitos especialmente complejos.
Por otro lado, aunque PostgreSQL es una estupenda opción como SGBD lo cierto es que la mayoría de los productos de alojamiento ofrecen MySQL con PHP, por lo que si deseamos usar PostgreSQL estaremos obligados a acudir a servidores VPS o dedicados.
MongoDB
Ya saliendo del modelo relacional encontramos las bases de datos denominadas NoSQL, donde MongoDB es la alternativa más popular con diferencia. Las bases de datos NoSQL se diferencian de las relacionales porque en lugar de tablas los datos se almacenan en colecciones. En las colecciones se pueden almacenar elementos heterogéneos, es decir, miembros que pueden ser distintos de otros guardados en la misma colección.
Otra de las características de las bases de datos no relacionales es que ofrecen generalmente una mayor velocidad de acceso a los datos, para recuperar elementos pero también para hacer operaciones de almacenamiento o actualización. Adicionalmente, también es muy adecuado cuando se tiene la necesidad de almacenar un gran volumen de información.
Sin embargo, el punto más delicado lo encontramos en la manera en la que se puede pivotar entre los elementos y sus relacionados, ya que este modelo de bases de datos no suele ofrecer las mejores condiciones para poder realizar consultas que involucren a varias colecciones al mismo tiempo. MongoDB ha hecho grandes avances para mitigar este problema genérico del modelo NoSQL, pero aún así sigue siendo más restrictivo que las posibilidades de las bases de datos relacionales.
Redis
El último punto de este post lo vamos a dedicar a introducir le motor de bases de datos Redis. Este es un sistema gestor un tanto especial, en comparación con cualquiera de los otros vistos hasta el momento, ya que no ofrece muchas facilidades para almacenar modelos de datos complejos o hacer persistir la información a largo plazo. En lugar de ello, Redis es un modelo de bases de datos que funciona en memoria.
La ventaja de Redis consiste en su sencillez y la velocidad con la que consigue trabajar, justamente porque el almacenamiento lo realiza principalmente en memoria. Reids es de código abierto y su uso es completamente gratuito. Forma parte del stack de tecnologías de multitud de proyectos más o menos avanzados. Sin embargo, los usos de Redis se centran más en el apoyo a las aplicaciones, no para la persistencia de la información sino para otras necesidades como la gestión de colas o las comunicaciones entre sistemas distribuidos.