NoSQL: Cómo Elegir Base de Datos

Última actualización: 24/04/2021

En esta entrada explicaremos las características de las bases de datos NoSQL y sus diferencias con las bases de datos relacionales. Además, veremos sus ventajas y algunas recomendaciones para determinar cuándo y cómo elegir la mejor base de datos NoSQL.

seleccionar base de datos nosql

NoSQL vs Relacional (SQL)

Muchos se preguntan las diferencias que existen entre bases de datos SQL, también llamadas relacionales y bases de datos NoSQL.

Las bases de datos relacionales o RDBMS se usan generalmente para almacenar datos estructurados, en los que su formato, esquema, tipos y relaciones son fijas y sufren pocos cambios. Cada columna, define un aspecto del registro.

Estas bases de datos son muy útiles para implementar operaciones transaccionales y garantizar las propiedades ACID. Por ejemplo, son muy usadas en el sector financiero para almacenar registros de transacciones con seguridad y consistencia.

Algunos ejemplos de bases de datos relacionales o SQL son SQL Server, MySQL, PostgreSQL, DB2 y Oracle.

Las bases de datos NoSQL han venido para quedarse. Simplemente son capaces de aportar unas características de escalabilidad y flexibilidad que las bases de datos tradicionales no han podido satisfacer de forma sencilla. NoSQL significa no solo SQL (not only SQL).

Tipos de bases de datos NoSQL

Las bases de datos NoSQL se suelen clasificar en función de las estructuras de datos que usan en su capa de almacenamiento. A continuación voy a describir los 4 tipos más comunes:

Documental

Estas bases de datos almacenan datos autocontenidos llamados documentos. Cada documento puede definir su propio esquema. Estos documentos generalmente tienen formato JSON. Asignan a cada documento un identificador y no es necesario definir relaciones entre ellos.

Algunos ejemplos de Base de datos NoSQL de tipo documental son MongoDB, CouchDB y DynamoDB.

Clave-valor

Estas bases de datos tampoco tienen un esquema de datos predefinido. Son como bases de datos con dos columnas, la primera es la clave y la segunda el valor del registro. Los valores pueden tomar el tipo de dato que sea necesario, incluso JSON.

Algunos ejemplos de Base de datos NoSQL de tipo clave-valor son DynamoDB, Redis.

Tabular

Estas bases de datos orientadas a columnas almacenan cada columna de forma separada. De esta forma, es muy sencillo y eficiente añadir nuevas columnas y realizar operaciones de búsqueda sobre ellas. Son muy populares en sistemas de analítica.

Algunos ejemplos de Base de datos NoSQL de tipo tabular son Cassandra, HBase o BigTable.

Grafo

En estas bases de datos, los registros son almacenados con una estructura en forma de grafo. Las relaciones interconectan los datos entre sí y los distribuyen.

Algunos ejemplos de Base de datos NoSQL de tipo grafo son Neo4J, DEX, InfiniteGraph.

Cuándo elegir una base de datos NoSQL

Debemos recordar que las bases de datos NoSQL no dejan de lado el lenguaje SQL, sino que es posible que lo sacrifiquen en su totalidad o parcialmente para conseguir estas ventajas tan interesantes.

Por lo general, las bases de datos NoSQL escalan horizontalmente de forma barata y muy sencilla, simplemente añadiendo mas nodos de almacenamiento al sistema. También, tienen un esquema dinámico, frente al esquema fijo característico de las bases de datos relacionales.

Por otro lado, satisfacer las propiedades ACID en las bases de datos SQL es más sencillo que en las bases de datos NoSQL. Estas por lo general ofrecerán consistencia eventual.

Deberás considerar una solución NoSQL en el caso de que tengas que satisfacer consultas sencillas y bien conocidas, con patrones de acceso constantes y en aplicaciones de tipo OLTP. En el caso de necesitar consultas complejas con multitud de joins puedes considerar soluciones SQL.

Recomendaciones para seleccionar una base de datos NoSQL

Ten en cuenta las siguientes recomendaciones para seleccionar una base de datos NoSQL para tu proyecto y saca todo el partido de su escalabilidad y disponibilidad en el ámbito del Big Data.

1. Requisitos de rendimiento y latencia

Los tiempos de respuesta de las bases de datos que son mayores a 100 milisegundos se suelen percibir como lentos por el usuario.

Por lo tanto, es necesario considerar y comprender las demandas que se impondrán sobre la base de datos en cuanto a latencias y volumen.

2. Define los objetivos

Es importante concretar la función específica de la base de datos dentro de tu proyecto, así como la naturaleza de los datos y la manera en la que se insertarán y consultarán.

3. Evalúa el teorema CAP

El teorema CAP permite distinguir el comportamiento de una base de datos o un sistema distribuido ante una partición, por ejemplo una falta de conectividad entre sus componentes. Ante esta situación, la base de datos puede optar por la consistencia o la disponibilidad, pero no ambas simultáneamente.

4. Considera un servicio gestionado

Algunos proveedores en la nube como pueden ser Microsoft Azure o AWS (Amazon) pueden facilitar las bases de datos como servicio gestionado, permitiendo reducir el tiempo empleado en su mantenimiento por un coste adicional.

5. Decide el modo de implementación

Considera los siguientes factores para tomar una decisión en el modo de implementación de la base de datos:

  • Disponibilidad de la imagen Docker
  • Escalabilidad en PaaS (Platform as a Service)
  • La compatibilidad que tiene con los proveedores cloud como Azure o AWS

Conclusión Bases de Datos NoSQL

Los arquitectos de datos deben evaluar con detenimiento qué solución de base de datos es adecuada para cada caso de uso. Las opciones NoSQL cada vez están más presentes en sistemas modernos, por sus capacidades de escalabilidad y la flexibilidad que proporcionan.

Siguientes Pasos

Puedes usar la infografía que te dejo a continuación como resumen de los pasos para seleccionar correctamente tu base de datos NoSQL.

También, te recomiendo alguno de estos cursos para profundizar más, ya que te van a resultar de gran ayuda para convertirte en experto en bases de datos NoSQL.

Cómo seleccionar una base de datos NoSQL

Preguntas Frecuentes NoSQL – FAQ

¿Qué es NoSQL?

NoSQL (Not Only SQL) es la denominación que se le da al grupo de bases de datos que manejan datos no estructurados o semiestructurados, al contrario que las bases de datos relacionales o SQL, que trabajan con datos estructurados. Además, pueden no usar SQL como lenguaje de consulta.

¿Cuándo debería usar bases de datos NoSQL?

Debes evaluar las soluciones de bases de datos NoSQL frente a las bases de datos relacionales cuando tus datos sean no estructurados o semiestructurados. También, cuando necesites escalabilidad horizontal en tu sistema y una gran capacidad de crecimiento.


He creado un nuevo vídeo-resumen con las claves para seleccionar tu base de datos NoSQL.


¡Echa un ojo a mis listas de reproducción de Big Data y suscríbete al canal de Youtube para no perderte ningún vídeo nuevo!

Si te ayuda el contenido del blog, considera unirte a la lista de correo para estar al día de Big Data y cupones de formación

Deja una respuesta