Tipos de bases de datos que existen

8min

En este nuevo post vamos a abordar el tema de las bases de datos desde un punto de vista general, explicando cuáles son los tipos de bases de datos que existen y sus características.

Índice

¿Qué es una base de datos?

Antes de empezar queremos aportar una definición básica, por si alguien no conoce exactamente qué son las bases de datos y qué función desempeñan. Pues bien, una base de datos es uno de los componentes principales de las aplicaciones que se usa como soporte para la persistencia de la información que deben mantener las aplicaciones para dar la respuesta adecuada a los usuarios. Podemos entenderlas como una aplicación especial empleada para desarrollar otras aplicaciones y centrada en los propósitos de almacenamiento de la información.

Tipos de bases de datos que existen

Existen diversos tipos de bases de datos, cada uno de ellos enfocados a funciones específicas. Los vamos a resumir.

Base de datos relacional

Las bases de datos relacionales son las más comunes en la actualidad. Consisten en una serie de contenedores de información denominados tablas, en los que se almacenan registros. Los registros serían las filas de las tablas mientras que sus campos de éstos serían las columnas.

La característica más importante de las bases de datos relacionales es que los datos de las tablas pueden estar relacionados entre sí por medio de índices que nos permiten pivotar de una tabla a otra o otras.

Base de datos distribuida

Las bases de datos distribuidas son aquellas en las que la información no reside en un único servidor de bases de datos, sino que existen diversos servidores, a menudo en redes distintas, que mantienen una porción de los datos.

Debido a su característica distribuida, las bases de datos están alojadas en diversos nodos y se produce un trasiego de la información continuo entre ellos. Sin embargo, los clientes pueden acceder a los datos y recuperar la información sin necesidad de preocuparse de que ésta se encuentre distribuida entre varias máquinas.

Base de datos orientada a objetos

Son un modelo de bases de datos en las que la información se almacena mediante objetos. Los objetos son conjuntos heterogéneos de datos, tan complejos como sea necesario para modelizar aquella información que se necesite.

Para los que vienen del área de la programación podemos entenderlas como bases de datos que consiguen almacenar registros igual que si se tratase de objetos de la Programación Orientada a Objetos. Al almacenarse la información organizada en objetos resulta muy adecuado para el trabajo directo desde lenguajes de programación capaces de usar este paradigma.

Base de datos gráfica

Son un tipo de bases de datos donde se guardan datos y sus relaciones. Sin embargo, las relaciones podemos considerarlas en este modelo de base de datos como ciudadanos de primer nivel, ya que se almacenan tal cual en la base de datos y no mediante índices como en las relacionales.

Las bases de datos gráficas permiten realizar recorridos muy rápidos entre los distintos nodos, ya que las relaciones apuntan directamente a los nodos a los que se puede llegar desde otro nodo y no requieren  cálculos y aplicación de uniones. Este tipo de bases de datos es frecuente en motores sociales o en motores de recomendación.

Base de datos NoSQL

Las bases de datos NoSQL (Not only SQL) son aquellas en las que no se usan tablas sino colecciones de elementos. Los elementos almacenados en las colecciones pueden ser heterogéneos, de modo que en una colección podemos almacenar registros con juegos de datos distintos entre sí. Además, este tipo de base de datos no suele usar SQL para realizar consultas, sino programación funcional para hacer filtrados y otros tipos de operaciones.

Las NoSQL son otro modelo de bases de datos muy popular, sin llegar al grado de las relacionales, pero muy frecuente en la actualidad en muchos tipos de aplicaciones donde se requiere variabilidad entre la información almacenada en las colecciones así como velocidad de recuperación de la información.

¿Base de datos en la nube o en local?

Cuando necesitamos una base de datos para un proyecto de desarrollo podemos plantearnos si vamos a ser nosotros los encargados de gestionar los servidores donde estarán instalados los sistemas gestores de base de datos, así como su administración. La otra opción sería utilizar un servicio en la nube que nos provea la infraestructura sin la necesidad de instalarla o administrarla nosotros mismos.

Ventajas de las bases de datos en local

Si tenemos una base de datos en local generalmente tendrá un coste menor, ya que simplemente tenemos que invertir en el servidor donde va a estar instalado el sistema gestor de la base de datos, aunque tendremos que encargarnos de su mantenimiento, que no siempre es fácil. 

Además de la economía las bases de datos administradas por nosotros mismos nos pueden aportar mayor versatilidad, ya que tendremos más libertad de escoger el modelo del sistema gestor y la configuración del mismo.

Ventajas de las bases de datos en la nube

Sin embargo, las bases de datos en la nube, a las que accedemos como servicio, nos ofrecen la posibilidad de alojar nuestros datos sin la necesidad de mantener un sistema gestor. El propio alojador se encargará de mantener los servidores de las bases de datos, asegurar la disponibilidad, optimizar su funcionamiento, etc.

Este tipo de soluciones están pensadas para ofrecer un rápido despliegue, aislar a los desarrolladores de la complejidad del mantenimiento de los servidores y ofrecer alta disponibilidad y una escalabilidad inmediata.

Ejemplos de base de datos para tu proyecto online

Ahora queremos dar unas pinceladas sobre los sistemas gestores de bases de datos más populares y que se usan en la mayoría de los proyectos online.

MySQL

MySQL es el sistema gestor de bases de datos relacionales más popular desde hace décadas. Comenzó siendo un proyecto con unas características limitadas, muy orientado a sistemas pequeños y sencillos, pero actualmente podemos considerarla una base de datos de nivel empresarial.

Actualmente MySQL es propiedad de la empresa Oracle y desde su adquisición se generó un fork llamado MariaDB, con mayor vocación «Open Source», que podemos usar como un reemplazo total y transparente en la mayoría de los casos.

SQL Server

SQL Server es el sistema de bases de datos relacionales propiedad de Microsoft. Es un sistema de elevadas prestaciones frecuentemente utilizado en despliegues en servidores Windows, aunque actualmente se trata de una base de datos multiplataforma.

SQL Server es un sistema gestor de base de datos comercial, con un coste de licencia, aunque existen versiones más limitadas que se pueden utilizar de manera gratuita.

Oracle

El sistema de bases de datos relacionales comercial más importante de la actualidad es Oracle. Es un sistema gestor de nivel empresarial, con las características más potentes del mercado. Sin embargo, su coste es también muy elevado por lo que se usa solamente a nivel empresarial y no es tan frecuente en los proyectos web o startups.

PostgreSQL

Es el sistema de bases de datos relacionales más potente a nivel de código abierto, prácticamente al nivel de la todopoderosa Oracle, pero gratuita.

Presenta un poco más de dificultad para la configuración y su administración que otros sistemas open source como MySQL, por lo que es más usada en proyectos donde existen mayores requisitos técnicos. Sin embargo, para proyectos online es cada día más usada, incluso para aquellos de tamaño medio donde se desea contar con una base de datos robusta y con elevada escalabilidad.

MongoDB

Entre las bases de datos NoSQL, el sistema gestor más usado es MongoDB. Es un sistema de código abierto y también de uso gratuito que permite beneficiarnos de características como la velocidad y la versatilidad. Tiene además una gran comunidad de usuarios y multitud de herramientas en su ecosistema.

Firebase

Es una base de datos más rudimentaria, ofrecida como servicio en el cloud de Google. Es adecuada sobre todo para proyectos pequeños o micro-proyectos y tiene como su principal característica la posibilidad del acceso a los datos en tiempo real. Esto quiere decir que cuando se accede a un dato, la base de datos es capaz de avisarnos si ese dato cambia a lo largo del tiempo.

Fernán García de Zúñiga

Productos relacionados: