NoSQL(Not Only SQL), una alternativa al tradicional SQL

Manuel Raigón 26 Junio 2015
4min
0

 

Concepto NoSQL

Son un tipo de bases de datos estructurales que no usan como lenguaje de consulta SQL(aunque pueden soportarlo) como aspecto más destacado, ya que los datos no requieren de un almacenamiento estructurado fijo, como las tablas.

 

Arquitectura

Las arquitecturas de NoSQL aportan escasas garantías de consistencia, ya que no existe ACID (atomicidad, consistencia, aislamiento y durabilidad) como en las bases de datos relacionales, pero existe algo llamado BASE (Basic Availability, Soft State, Eventual Consistency) que da características para el manejo de datos.

En su distribución las bases de datos relacionales suelen estar centralizadas en una única máquina o bien en una estructura máster–esclavo, sin embargo en los casos NoSQL la información puede estar compartida en varias máquinas mediante mecanismos de tablas Hash* distribuidas.

No utilizan estructuras fijas como tablas para el almacenamiento de los datos. Permiten hacer uso de otros tipos de modelos de almacenamiento de información como sistemas de clave–valor, objetos o grafos.

 

Ventajas y Desventajas

Ventajas

-Se ejecutan en máquinas con pocos recursos, ya que apenas se requiere de computación.

-Gran escalabilidad horizontal.

-Pueden manejar una gran cantidad de datos (tablas Hash).

-No generan cuellos de botella.

Desventajas

-Es de código abierto, lo cual tiene un peor soporte.

-Problemas con las compatibilidades,ya que  Cada base de datos NoSQL tiene su propia API*.

-Falta de experiencia y personal cualificado.

 

Tipos de BBDD NoSQL

Bases de datos clave – valor.

Es el tipo de BBDD NoSQL más sencillo con respecto a su funcionalidad. Cada elemento está identificado por una llave única, lo que permite la recuperación de la información de forma muy rápida, por lo que es muy eficiente para la escritura y lectura. Algunos ejemplos de bbdd son Cassandra, BigTable,HBase,MongoDB o Oracle NoSQL

Bases de datos documentales.

Este tipo almacena la información como un documento, generalmente utilizando para ello una estructura simple como JSON o XML y donde se utiliza una clave única para cada registro. Las bbdd más utilizadas son MongoDB o CouchDB.

Bases de datos en grafo

Este tipo de bases de datos ofrece una navegación más eficiente entre relaciones que en un modelo relacional, ya que la información se representa como nodos de un grafo. Algunos ejemplos de bbdd son OrientDB, Neo4j, Infogrid o HyperGraphDB.

Y por último, Bases de datos orientadas a objetos.

En este tipo, la información se representa mediante objetos, de la misma forma que son representados en los lenguajes de programación orientada a objetos (POO) como ocurre en JAVA, C# o Visual Basic .NET. Algunos ejemplos serían ObjectDB, db4o, Zope o Gemstone.

 

 

NoSQL en la actualidad y futuro

En la mayoría de los sistemas se usan bases de datos relacionales, por ser las más tradicionales y las que más se conocen. Muchos de los grandes sitios como Facebook, Twitter, Google y Yahoo se han cimentado en MySQL, pero en los últimos años se han dado cuenta de que esto no es suficiente y se empezó a optar e incentivar por las NoSQL.

Algunas grandes empresas y organizaciones muy conocidas como Facebook, Instagram,  Apache, 10gen, LinkedIn, Infojobs están empezando a usar NoSQL frente al SQL,lo que  implica un costo enorme.

Una de esas empresas es Twitter, que  emplea tanto SQL como NoSQL en sus sistemas, con lo que se demuestra que ambas pueden convivir perfectamente.

En definitiva, NoSQL es una buena opción par solucionar estos problemas de accesibilidad, como el aumento de máquinas para almacenar toda la información.

*Una tabla hash es una estructura de datos que asocia llaves o claves con valores. La operación principal que soporta de manera eficiente es la “búsqueda”, que permite el acceso a los elementos almacenados a partir de una clave generada.

*API es el conjunto de funciones y procedimientos (en la programación orientada a objetos) que ofrece cierta biblioteca para ser utilizado por otro software, son usadas generalmente en las bibliotecas.

 

Un saludo, nos vemos en el siguiente post.