Saltar al contenido

Base de Datos NoSQL

image_print

Autora: Keila Chacón / Centro de Seguridad Informática y Certificación Electrónica (CSICE). FIIIDT

Resumen

Centralizar información no estructurada, es de vital importancia para la sobrevivencia y competitividad de los organismos que generan este tipo de información.

Por esta razón las Base de Datos NoSQL ha capturado la atención en organismos donde generen este tipo de información, ya que éste permite de manera sistemática organizar, filtrar, buscar y presentar información, garantizando su persistencia en el tiempo, su adecuado almacenamiento y recuperación para una mejor comprensión de los miembros de la organización en un área de interés.

En la Fundación Instituto de Ingeniería para la Investigación y Desarrollo Tecnológico (FIIIDT), se realizan proyectos de investigación, desarrollos tecnológicos, asesorías y servicios para la industria y el sector público del país. La información gerencial y técnica que se genera en los proyectos, entre otro tipo de documentación no se encuentra debidamente estructurada, por ello el interés de implementar base de datos NoSQL para la gestión de dicha información.

En la presente investigación, principalmente se definirán términos de relevancia para la selección y uso de una base de datos NoSQL según uso a dar en la FIIIDT, dando el enfoque a la importancia de su implementación.

Introducción

  1. BASE DE DATOS NoSQL

Al pensar en bases de datos relacionales se va a la mente Oracle, Microsoft SQL Server del lado comercial y del lado del software libre, tenemos opciones como PostgreSQL o MySQL. Aunque cada una tiene sus peculiaridades, para un desarrollador no es difícil elegir entre un sistema y otro. Al final todo son tablas, columnas, claves primarias, y sobre todo, consultas SQL.

En este sentido, NoSQL también conocido como Not Only SQL, consiste en una amplia gama de SGBD cuyas principales características son el uso de un lenguaje alternativo al SQL y guardan información no estructurada. Es decir, no existen tablas ni columnas, como en el modelo relacional.

Ahora al enfocarnos en base de datos NoSQL existen diferentes tipos, dependiendo de lo que requiera se debe seleccionar la que más se adapte a las necesidades.  Aunque hay varias aproximaciones diferentes para clasificar las bases de datos NoSQL (Teorema CAP, basándonos en el modelo de datos etc.), en general se considera que existen cuatro tipos diferentes que se detallan a continuación:

  • Orientadas a documentos

Son aquellas que gestionan datos semi estructurados, es decir, documentos. Estos datos son almacenados en algún formato estándar como puede ser XML, JSON o BSON. Un ejemplo documento enfocado a la Fundación Instituto de Ingeniería a:

Son las bases de datos NoSQL más versátiles. Se pueden utilizar en gran cantidad de proyectos, incluyendo muchos que tradicionalmente funcionarían sobre bases de datos relacionales. En esta categoría encontramos: MongoDB y CouchDB.

  • Orientadas a columnas

Este tipo de bases de datos están pensadas para realizar consultas y agregaciones sobre grandes cantidades de datos. Funcionan de forma parecida a las bases de datos relacionales, pero almacenando columnas de datos en lugar de registros.

En esta categoría encontramos: Cassandra y HBase.

  • De clave valor

Estas son las más sencillas de entender. Simplemente guardan tuplas que contienen una clave y su valor. Cuándo se quiere recuperar un dato, simplemente se busca por su clave y se recupera el valor. En esta categoría encontramos: DynamoDB y Redis.

  • En grafo

Basadas en la teoría de grafos utilizan nodos y aristas para representar los datos almacenados. Son muy útiles para guardar información en modelos con muchas relaciones, como redes y conexiones sociales. En esta categoría encontramos: Infinite Graph y Neo4j.

En base a lo antes expuesto, se debe conocer el tipo de modelo de datos y se debe considerar otros factores, ya que las bases de datos NoSQL están pensadas para ser escalables y distribuidas. Y por ser distribuidas tendremos que tener en cuenta el teorema CAP.

El Teorema CAP

El teorema CAP o teorema Brewer, indica en los sistemas distribuidos es imposible garantizar a la vez: consistencia, disponibilidad y tolerancia a particiones (Consistency-Availability-Partition Tolerance).

  • Consistencia: al realizar una consulta o inserción siempre se tiene que recibir la misma información, con independencia del nodo o servidor que procese la petición.
  • Disponibilidad: que todos los clientes puedan leer y escribir, aunque se haya caído uno de los nodos.
  • Tolerancia a particiones: Los sistemas distribuidos pueden estar divididos en particiones (generalmente de forma geográfica). Así que esta condición implica, que el sistema tiene que seguir funcionando, aunque existan fallos o caídas parciales que dividan el sistema.

Clasificación de cada base de datos NoSQL según el teorema CAP

Para ser escalables y distribuidas, las bases de datos NoSQL, siguen distintos métodos, por lo que no todas cumplen los mismos puntos del teorema CAP.

En la imagen anterior, se aprecia cómo se reparten algunas de las bases de datos según las condiciones que cumplen del teorema CAP.

  • AP: garantizan disponibilidad y tolerancia a particiones, pero no la consistencia, al menos de forma total. Algunas de ellas consiguen una consistencia parcial a través de la replicación y la verificación.
  • CP: garantizan consistencia y tolerancia a particiones. Para lograr la consistencia y replicar los datos a través de los nodos, sacrifican la disponibilidad.
  • CA: garantizan consistencia y disponibilidad, pero tienen problemas con la tolerancia a particiones. Este problema lo suelen gestionar replicando los datos.

Se debe tener en cuenta, que esta clasificación no es definitiva, ya que algunos de estos sistemas NoSQL pueden configurarse para cambiar su comportamiento.

Por ejemplo, MongoDB es CP por defecto. Pero también podemos configurar el nivel de consistencia, eligiendo el número de nodos a los que se replicarán los datos. O podemos configurar si se pueden leer datos de los nodos secundarios (en MongoDB solo hay un servidor principal, que es el único que acepta inserciones o modificaciones). Si permitimos leer de un nodo secundario, sacrificamos consistencia, pero ganamos disponibilidad.

Por tanto, además de pensar en el tipo de base de datos NoSQL que se mejor se adapta a nuestro modelo de datos, también tendremos que pensar en su funcionamiento. Así podremos conseguir que nuestra aplicación funcione de la mejor manera posible.

  1. FUTURAS INVESTIGACIONES

Conociendo las características de las bases de datos NoSQL, se debe analizar la implementación de su uso en la Fundación Instituto de Ingeniería y otros entes del estado, con el fin centralizar información estructurada y no estructurada, permitiendo que la misma esté disponible en el momento que se requiera para la reutilización entre los interesados.

En este sentido, se debe enfocar su uso en la gestión de los documentos elaborados durante las actividades diarias (como Punto de Cuentas, Punto de información, entre otros), en la gestión del conocimiento o resultados de investigaciones durante la ejecución de proyectos, donde se permita de manera sistemática centralizar, organizar, garantizar su persistencia en el tiempo, un adecuado almacenamiento y recuperación para una mejor comprensión de los interesados.

Por lo antes mencionado, en los próximos artículos se continuará la investigación sobre las Bases de Datos NoSQL y como implementar su uso en aplicaciones para la Fundación Instituto de Ingeniería y otros entes del estado.

Referencias

  1. FA, R. (2014). Bases de datos NoSQL. Elige la opción que mejor se adapte a tus necesidades.
         https://www.genbeta.com/desarrollo/bases-de-datos-nosql-elige-la-opcion-que-mejor-se-adapte-a-tus-necesidades
  2. FA, R. (2014).  NoSQL: clasificación de las bases de datos según el teorema CAP.
         https://www.genbeta.com/desarrollo/nosql-clasificacion-de-las-bases-de-datos-segun-el-teorema-cap
  3. Barrera, A. Estas son las principales bases de datos NoSQL.
         https://www.nextu.com/blog/bases-datos-nosql/
  4. Bases de Datos NoSQL: Tipos y Beneficios (2018).
         https://www.tecnologias-informacion.com/nosql.html

 

Contacto: kchacon@fii.gob.ve; jefecentrocsice.1@gmail.com

Compartir en Redes Sociales
0 Shares