Bases de datos NoSQL

Las bases de datos llevan muchos años ligadas a las aplicaciones informáticas. Sobre todo las bases de datos relacionales. Pero, desde hace poco años, se oye hablar mucho de las bases de datos NoSQL. ¿En qué consisten este nuevo paradigma para guardar la información?

Lo primero sería ver qué significa NoSQL. Viene de Not Only SQL -no solo SQL en inglés. O lo que es lo mismo: Not Only Structured Query Language. Fue nombrado así por Carlo Strozzi en 1998 y retomado por Eric Evans en 2009.

Como su propio nombre indica, no suelen utilizar el lenguaje SQL para manejar o consultar los datos que contienen. Tampoco siguen un esquema cerrado, por lo que son más flexibles. Están pensadas para ser más ágiles, así que son buenas con cantidades elevadas de datos o de operaciones.

Ventajas de NoSQL

Si se han puesto de moda es, entre otras cosas, por las ventajas que aportan. También ha ayudado a darse a conocer, el que sean el compañero ideal de otras tecnologías en auge, como puede ser el Big Data.

Escalabilidad

Las bases de datos NoSQL, suelen estar diseñadas para ser escalables horizontalmente. Es decir, añadiendo más servidores al clúster. En cambio, las bases de datos SQL suelen escalar bien verticalmente: incrementando el espacio de almacenamiento o la capacidad de procesamiento de los servidores ya existentes.

Esto hace que sean más escalables, al poder aumentar indefinidamente el número de servidores del clúster. Mientras que si se aumentan las capacidades de los servidores ya existentes, estos tienen un límite de memoria, discos, etc.

Mejor manejo de los datos no estructurados

Las bases de datos NoSQL no requieren la existencia de una esquema o modelo predefinido, ya que no tienen por qué tener estructuras uniformes o homogéneas.

Por lo tanto, es el desarrollador o el diseñador de la base de datos el encargado de imponer las estructuras que necesite.

Bueno para Big Data

La mayoría de bases de datos relaciones se basan en las mismas características, hay poca variedad de estructuras. En cambio, en las bases de datos NoSQL, existen cuatro tipos pincipalmente: clave-valor, columnar, documental y triple stores (sujeto-predicado-objeto). Entre estos tipos puedes elegir la que más se ajuste a tus necesidades.

Costes eficientes en escalabilidad y mantenimiento

En cuanto a costes se refiere, la escalabilidad horizontal es más eficiente que la vertical en general. Se puede añadir nuevos servidores de bajo coste, en vez de actualizar servidores de alta calidad y capacidad de procesamiento.

Flexibilidad del modelo de datos

Los RDBMS -relational database management system- son muy engorrosos cuando hay que cambiar algo de su configuración. El mínimo cambio debería ser cuidadosamente monitorizado y conlleva un tiempo de parada o ralentización del servicio. Mientras que las bases de datos NoSQL permite una relativa flexibilidad en los cambios.

Lenguaje NoSQL

Las bases de datos NoSQL soportan sus propios lenguajes para interpretar los datos que contienen. No es necesario ser un maestro de SQL para llevar a cabo consultas complejas.

Open source

Muchas de estas bases de datos suelen ser gratuitas y se puede encontrar mucha documentación y aportaciones de la comunidad.

Bases de datos en la nube

Tipos de bases de datos NoSQL

Bases de datos orientadas a documentos

El elemento básico de estas bases de datos, es lo que se llama documento. En otros sistemas, podría equivaler de alguna manera a objeto, registro o tupla.

Se suelen basar en JSON o BSON, pudiendo variar la estructura de los documentos que contenga. En otras palabras, cada documento contendrá un conjunto de pares de clave y valor. Pero no todos los documentos tendrán las mismas claves ni los mismos tipos (cadena, entero decimal, etc.) de valor para una misma clave.

Cuando se habla de este tipo, se suelen destacar las siguientes bases de datos clave-valor.

  • MongoDB
  • CouchDB
  • RavenDB

Bases de datos orientadas a clave / valor

Este tipo de base de datos es bastante similar a la anterior. Los datos también se almacenan en formato JSON normalmente. Este JSON actúa de valor, por lo que cada clave tendrá asociado un JSON con los datos. Esta clave se podría entender con el id o clave primaria del registro.

Las más conocidas son las siguientes.

  • Apache Cassandra
  • Riak
  • Redis

Bases de datos orientadas a grafos

Este tipo de base de datos NoSQL ya es un poco distinto. Se basa en la teoría de grafos. Cada nodo del grafo sólo puede contener una columna, así que los datos deben estar totalmente normalizados.

Las relaciones entro los nodos sólo pueden ser binarias, así que cada nodo sólo puede tener una única relación con otro nodo. Por estas características, estas bases de datos suelen estar enfocadas a la integridad de los datos.

Algunas de las más populares son estas.

  • Neo4j
  • Dex
  • Sones GraphDB

Deja un comentario

Información sobre protección de datos

Vicente SG te informa que los datos de carácter personal que me proporciones rellenando el presente formulario serán tratados por Vicente Sancho Guijarro (Vicente SG) como responsable de esta web. La finalidad de la recogida y tratamiento de los datos personales que te solicito es para gestionar los comentarios que realizas en este blog. Legitimación: Consentimiento del interesado. Como usuario e interesado te informo que los datos que me facilitas estarán ubicados en los servidores de Banahosting.com (proveedor de hosting de Vicente SG) dentro de la UE. Ver política de privacidad de Banahosting.com. El hecho de que no introduzcas los datos de carácter personal que aparecen en el formulario como obligatorios podrá tener como consecuencia que no atender pueda tu solicitud. Podrás ejercer tus derechos de acceso, rectificación, limitación y suprimir los datos en [email protected] así como el derecho a presentar una reclamación ante una autoridad de control. Puedes consultar la información adicional y detallada sobre Protección de Datos en mi página web: https://vicentesg.com, así como consultar mi política de privacidad.