Introducción a NoSQL
CategoriasBases de datosNoSQL

Introducción a NoSQL

Bases de datos NoSQL

Introducción a NoSQL

Las bases de datos NoSQL fueron diseñadas para manejar grandes volúmenes de datos permitiendo una gran flexibilidad y facilidad a la hora de escalar en comparación con las bases de datos relacionales tradicionales (SQL). Esto es, una base de datos NoSQL, no usa el formato tradicional de tablas y filas como sí lo hacen todas las demás relacionales (MySQL, PostgreSQL, etc). Una base de datos NoSQL, almacena los datos en formatos más flexibles como documentos, pares clave-valor o grafos.

Esto las hace especialmente útiles en aplicaciones modernas donde se manejan grandes volúmenes de datos o datos que cambian de estructura con frecuencia.

Tipos de Bases de Datos NoSQL

Existen diferentes tipos de bases de datos clasificadas según en como almacenan los datos.

Como comenté al principio, nos podemos encontrar:

Documentales: Es decir, almacenan los datos en documentos tipo JSON o BSON. Un ejemplo seria MongoDB.

Clave-valor: Los datos son almacenados en pares clave-valor, donde cada clave es única y se utiliza para identificar y recuperar su valor correspondiente. Es parecido a un diccionario. Un ejemplo de este tipo es la base de datos Redis.

Almacenamiento de columnas: Tipo de base de datos NoSQL que organiza los datos en columnas en lugar de filas. Útil para almacenar y consultar grandes volúmenes de datos que están distribuidos en varios servidores.  Un ejemplo es Cassandra.

Grafos: Representa los datos como un grafo, compuesto por nodos, aristas y propiedades. Esta estructura es ideal para representar redes, relaciones y conexiones complejas entre datos, ya que esta base de datos está pensada especialmente para almacenar y gestionar datos que están altamente relacionados entre sí. Un ejemplo es Neo4j.

¿Por qué usar una Base de Datos NoSQL?

Deberías usar una base de datos de este tipo si vas a manejar grandes volúmenes de datos que son muy variables, no tienen una estructura fija o requieren una escalabilidad y flexibilidad que una base de datos tradicional no puede dar.

¿Necesitas flexibilidad en la estructura de los datos? ¿Necesitas un rápido acceso a datos en aplicaciones en tiempo real?

Usa NoSQL.

Por ejemplo, en una red social, donde los datos son muy variados, pues existen: perfiles de usuario, publicaciones, comentarios, fotos, reacciones, etc. En este caso cada usuario puede tener diferentes datos en su perfil. En este caso, una base de datos NoSQL sería ideal, ya que te permitiría almacenar este tipo de datos de forma más flexible sin tener una estructura rígida.

¡Ojo aquí! No interpretes que estoy diciendo que, si quieres crear una red social, por ejemplo, debes de usar una base de datos NoSQL. No, te explico.

Como ya sabes la NoSQL la usaremos para datos que cambian constantemente o necesitamos consultarlos rápidamente.

En el caso de la red social, los comentarios, por ejemplo, son datos que crecen rápido y se consultan con bastante frecuencia, pues bien, en el sistema de comentarios sería ideal implementar NoSQL. Por ejemplo, MongoDB vendría bien.

En las relaciones de usuarios, ya sabes, lo típico de “seguir a” o “amigos”, también se puede usar una base de datos NoSQL para consultar de forma rápida y eficiente sobre quién sigue a quién o poder encontrar amigos en común. En este caso la base de datos Neo4j sería estupenda. ¿Recuerdas por qué? 😉

Ahora bien, también deberías de usar una base de datos tradicional SQL, porque en una red social también se requieren datos bien estructurados y con alta consistencia como por ejemplo el perfil del usuario, donde se almacena el correo electrónico, nombre, contraseña, etc.

Todo esto son datos estructurados que pueden almacenarse en una base de datos SQL típica (MySQL, por ejemplo).

Hay más ejemplos. Si la red social maneja pagos, suscripciones… llámalo como quieras, está claro que las transacciones financieras son ideales manejarlas en una base de datos SQL, ya que la consistencia y seguridad son prioritarias.

¿Vas viendo la diferencia? 😊

Algunas ventajas y desventajas de NoSQL

Flexibilidad, escalabilidad y velocidad pueden ser las grandes ventajas que ofrecen las bases de datos NoSQL.

Flexibilidad porque no se necesita establecer una estructura fija. Podemos almacenar diferentes tipos de datos.

Escalabilidad porque podemos manejar grandes volúmenes de datos divididos en varios servidores sin demasiada complejidad.

Velocidad porque NoSQL esta optimizado para realizar consultas rápidas y directas.

Y en contra encontramos algunas desventajas como son:

Falta de estandarización, es decir, no hay un sistema común para realizar una consulta, sino que cada base de datos NoSQL, tiene su propio sistema de consultas, conllevando esto una cierta curva de aprendizaje debido a los diferentes tipos de base de datos NoSQL que existen (clave-valor, documentales, etc).

No es ideal para datos que estén estrechamente relacionados, es decir, NoSQL no esta diseñado para manejar relaciones complejas como SQL.

Falta de consistencia, es decir, NoSQL prioriza la velocidad y la disponibilidad de los datos sobre la consistencia.

Como ves, NoSQL es excelente para aplicaciones donde necesitamos esa flexibilidad, velocidad o escalabilidad, sin embargo, debido a su falta de consistencia y que no nos sirve para relaciones complejas, lo ideal es combinar un sistema con NoSQL y SQL.

Y en principio, este seria un acercamiento a lo que una base de datos NoSQL es.

Para no hacer el articulo/post demasiado largo, en otro hablaremos y practicaremos sobre el uso de una base de datos de tipo documental, concretamente MongoDB.

Decirte también que mi intención es hablar y practicar un poco con todas ellas, pero poco a poco 😉

Saludos!

Sobre el autor

Comparte:

Este artículo está publicado bajo una licencia Creative Commons Atribución-CompartirIgual 4.0 Internacional . Puedes compartirlo y adaptarlo, incluso con fines comerciales, siempre que cites al autor y mantengas esta misma licencia.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Información básica sobre protección de datos
Responsable Óscar Martínez +info...
Finalidad Gestionar y moderar los comentarios +info...
Legitimación Consentimiento del interesado. +info...
Destinatarios No se cederán datos a terceros, salvo obligación legal +info...
Derechos Acceder, rectificar y cancelar los datos, así como otros derechos. +info...
Información adicional Puedes consultar la información adicional y detallada sobre protección de datos en nuestra página de política de privacidad.

Este sitio esta protegido por reCAPTCHA y laPolítica de privacidady losTérminos del servicio de Googlese aplican.

El periodo de verificación de reCAPTCHA ha caducado. Por favor, recarga la página.