Motores de bases de datos: ¿cuáles son los principales y cómo elegirlos?

motores de bases de datos, motores de bases de datos más usados, principales motores de bases de datos

Lee sobre los principales motores de bases de datos, con sus ventajas y desventajas.

Es casi imposible concebir un sistema de información que no maneje una o más bases de datos; y la pieza de software fundamental que se encarga de ello es lo que corrientemente llamamos el motor de bases de datos (antiguamente sistema gestor o sistema de administración de base de datos).

En sus inicios este software involucraba una inversión en dinero muy grande, incluso comparable al costo del hardware y elegirla era una decisión muy importante.

Hoy en día estos productos software avanzan cada vez más a ser una especie de “comodity” en el sentido de que a los desarrolladores pareciera no importarles mucho la elección del motor.

A pesar de lo anterior, es importante saber sobre las opciones existentes y algunas de sus debilidades y fortalezas porque la verdad es que hay diferencias importantes entre ellos.

En este artículo veremos una revisión de algunas de las principales opciones disponibles. Hago énfasis en algunas de las principales porque existen en total hoy día más de 300.

Motores de bases de datos relacionales

1. MySQL

Comencemos por MySQL, creada en 1995 como un proyecto de software abierto. Es un motor tremendamente popular y probablemente el más utilizado en el contexto de aplicaciones web, incluyendo algunas de las más grandes.

Hoy en día es propiedad de Oracle y se ofrece en dos formas distintas: una licencia gratuita (community server) y una pagada (enterprise server).

Soporta transacciones ácidas y particionamiento horizontal (sharding). Aunque creada para soportar el modelo relacional ha sido extendida para manejar también datos semiestructurados (JSON).

Este motor es, en general, una buena elección, pero no debería ser usado cuando los datos requieren modelos poco estructurados (grafos o documentos) o cuando las necesidades apuntan a un sistema distribuido muy grande de nivel global.

2. MariaDB

Es básicamente el mismo software del motor MySQL. Cuando Oracle adquirió a MySQL (en realidad adquirió a Sun Microsystems) Michael Widenius, uno de los creadores de MySQL inició un desarrollo en forma independiente del software (en términos técnicos se denomina un fork) creando MariaDB. Totalmente compatible con MySQL puede reemplazarlo fácilmente.

Es una buena elección para quienes buscan independencia total de Oracle y más “pureza” desde el punto de vista open source.

3. Oracle

Pasemos ahora al líder, representado por el motor de Oracle. Creado por Larry Ellison en 1979 se ha mantenido como el líder indiscutido por décadas. A lo largo de sus 41 años el software ha evolucionado y ha contribuido a innovaciones que se han incorporado en otros motores.

Este es un software propietario, es decir se requiere comprar una licencia para usarlo. Ofrece transacciones ácidas y soporte de datos semiestructurados además del modelo relacional clásico (XML, JSON, RDF).

En general es un motor muy sólido y eficiente y una buena elección si es que hay un presupuesto generoso porque el costo de las licencias puede ser elevado.

4. PostgreSQL

El siguiente motor que vale la pena revisar es PostgreSQL nacido en UC Berkeley a mediados de los 80. Este motor es uno de los más utilizados en el mundo y se considera hoy el más avanzado entre los motores relacionales open source. Suele ser considerado como alternativa a MySQL.

También soporta transacciones ácidas e incluye un optimizador de consultas sofisticado y mecanismos de respaldo muy sólidos para situaciones de desastres.

Nuevamente, este motor es esencialmente relacional por lo que puede no ser el apropiado en casos como el de redes sociales u otros que requieran modelos de grafo.

5. SQL Server

Evidentemente que Microsoft no podía estar ausente de esta revisión. Aunque entraron un poco tarde al ruedo han ido ganando terreno en base a una política agresiva de precios de sus licencias, una mejora constante del producto y un calce natural en ecosistemas donde dominan productos de esta compañía (Windows).

Inteligentemente, denominaron a su motor SQL Server lo que hace que muchos se refieran a el simplemente como SQL.

Hoy en día SQL Server compite con Oracle el liderazgo en el mundo de las soluciones comerciales (no open source).
Otro aspecto que ha potenciado a este motor es que se integra muy bien con la plataforma Cloud (Azure) de esta compañía.

En resumen, un motor en esencia relacional especialmente apropiado para organizaciones en que existe un ecosistema de la compañía. Aunque suele resultar algo menos costoso que las licencias de Oracle igual requiere un presupuesto generoso para este ítem.

6. IBM DB2

Esta empresa (IBM) fue pionera en el desarrollo de los sistemas de bases de datos, siendo la primera que creó un motor relacional usable de verdad. Este motor que inicialmente se llamó System-R dio origen al producto comercial DB2 liberado en 1983 primero para mainframes y posteriormente en otras plataformas (Linux, Windows, Unix).

Aunque inicialmente concebido y diseñado para el modelo relacional hoy en día soporta también datos semiestructurados (JSON) y grafos.

Se trata por supuesto de un motor propietario donde hay licencias de por medio para poder utilizarlo. Es muy sólido y de buen desempeño, con soporte de transacciones ácidas y escalamiento horizontal.

Este motor ha ido perdiendo popularidad en los últimos años, aunque todavía mantiene una posición importante en el mundo de las empresas medianas y grandes.

Motores de bases de datos no relacionales

7. MongoDB

Hasta ahora solo hemos hablado de motores relacionales. Ahora nos referimos al rey de los motores de bases de datos no relacionales (NoSQL) en el sentido de popularidad. Se trata de MongoDB.

Este motor, open source, creado en 2009, ha sido diseñado desde el inicio para manejar data semiestructurada en forma de documentos JSON lo cual permite en muchos casos un enganche más natural con el código de las aplicaciones que lo utilizan (JSON viene desde el mundo JavaScript).

Durante los 10 años desde su nacimiento ha tenido una mejora sostenida y se ha constituido sin duda en el líder de los motores NoSQL. Soporta transacciones ácidas (poco común en este tipo de motores) y es particularmente bueno en cuanto a escalamiento horizontal (sharding) y también en cuanto a confiabilidad (replication). Incluye un lenguaje de consultas muy expresivo y simple (aunque no estándar).

Es una muy buena elección para datos que no son estructurados o que el modelo relacional les quede muy forzado. También cuando no se puede saber en realidad hasta cuánto deberá escalar la solución.

8. Redis

Creado por un desarrollador italiano que buscaba mejorar el desempeño en sus aplicaciones y sacar máximo partido de las grandes cantidades de memoria RAM, Redis está disponible en forma de open source en muchas plataformas.

Redis nace como un motor de procesamiento distribuido con almacenamiento de datos en memoria en forma de pares llave-valor.

Hoy en día se considera una alternativa de almacenamiento estructurado escalable extraordinariamente rápida.

Lo más llamativo de este motor es la sencillez del modelo de datos: pares llave-valor que se pueden estructurar gracias al soporte nativo de una gran cantidad de estructuras de datos como hashes, listas, sets, streams, etc. Se usa especialmente para mejorar el desempeño de otras soluciones actuando como un caché distribuido.

9. Cassandra

Cassandra fue creada por dos ingenieros de Facebook como una solución para los severos problemas de escalamiento que estaba enfrentando la aplicación debido a un crecimiento extraordinario en el número de usuarios.

Soporta un modelo de datos que se conoce como Wide Column y la principal característica es la capacidad de escalamiento, permitiendo ir a volúmenes de datos y número de transacciones muy grandes mediante sharding automático y un enfoque descentralizado.

El producto es open source (licencia Apache) e incluye un lenguaje de consultas propio (CQL).

Puede no ser una buena solución si lo que se requiere es un motor transaccional (OLTP) que maneje información principalmente estructurada. Está basada en la máquina virtual de Java (JVM).

Cassandra es uno de los motores NoSQL que también cuenta con una alta popularidad.

Motor de bases de datos: resumen

En resumen, el mundo de las bases de datos relacionales sigue siendo dominante lo que se expresa en que la mayoría de los motores más populares están orientados a este tipo de base de datos.

En el mundo open source los líderes indiscutidos son MySQL (o MariaDB) y PostgreSQL y su uso puede ser recomendado como alternativa a los motores propietarios en la mayoría de las ocasiones.

En el mundo no open source la mayor parte de la gente opta por el líder Oracle o bien SQL Server si es que ya cuenta con un ecosistema Microsoft. Otra opción es IBM DB2 que entrega funcionalidades similares e incluso mayor versatilidad en cuanto a modelo de datos.

Finalmente, aquellos que opten por motores NoSQL la decisión va a ir por el tipo de datos, desempeño y escalamiento.

Tanto Cassandra como MongoDB permiten desplegar soluciones que escalan bien, pero el modelo de datos de MongoDB es mucho más apropiado si la información es más bien no estructurada.

Finalmente, Redis es muy rápido y simple pero usado para bases de datos en memoria o para combinarlo con otros motores de bases de datos.

 

Actualízate con el curso sobre Python y bases de datos (online) de Clase Ejecutiva UC. 





¿Te gustó? Inscríbete a nuestro newsletter

Artículos más recientes del autor