Saltar al contenido

Sistemas de Bases de Datos NoSQL, Descripción.

Sistemas de bases de datos NoSQL

Según se plantea, actualmente el recurso más importante que se puede poseer es la información. Las bases de datos son sistemas informáticos de gran utilidad en el mundo moderno de hoy. Poder guardar, recuperar y analizar información se ha convertido en una herramienta primordial en los negocios modernos. Desde análisis de ventas históricos para realizar predicciones, hasta evaluaciones de fluctuaciones de mercados a nivel internacional.

De seguro conocerás las bases de datos relacionales. Estas emplean el lenguaje SQL para la interacción con los datos. Pero esta no es la única forma ni los únicos tipos de bases de datos que existen. Tenemos también los sistemas de bases de datos NoSQL. Si quieres conocer las características y usos de estas bases de datos, te invitamos a que continúes leyendo. Ya comenzamos.

Tabla de contenidos


¿Qué es una base de datos NoSQL?

En el mundo de la informática existen sistemas de bases de datos con características diferentes al clásico sistema de bases de datos relacional. De estas características diferenciadoras, la más destacada es que estos sistemas no usan el lenguaje SQL para la interacción con los datos guardados en el sistema.

Además, estos sistemas tienen una manera diferente de organizar los datos. Estos no son guardados en tablas eliminando generalmente la posibilidad de relacionar los datos mediante operaciones JOIN. A consecuencia, es poco probable poder garantizar la atomicidad, aislamiento, durabilidad y consistencia de los datos.

Estos sistemas también son denominados como sistemas “no siempre SQL”. Esto significa que no están limitados al no uso del lenguaje SQL. Algunos de estos sistemas permiten hacer uso de este lenguaje.

Historia de los sistemas de bases de datos NoSQL

El año 1998, Carlo Strozzi creó un sistema de base de datos a la cual llamó no «Strozzi NoSQL«, empleando así por primera vez el término. Esta era una base de datos relacional ligera y de código abierto, pero que no tenía una interfaz que emplea el lenguaje SQL.

Strozzi plantea que quizás “NoSQL” no es el término más correcto para referirse a este tipo de bases de datos. Según la lógica, ya que estas bases de datos se apartan de modelo relacional, pero algunas pueden emplear lenguajes SQL, deberían de llamarse de otra manera, como “NoREL”, a manera de ejemplo.

Un empleado de la compañía de gestión de datos en la nube RackSpace, Erick Evans, retomó el término en un evento de dicha empresa. En este caso, fue usado para referirse a todas las bases de datos que se salían del modelo relacional. La principal característica para clasificarlas era la casi nula validación de integridad de datos de estos sistemas NoSQL.

Uso de los sistemas de bases de datos NoSQL

Los sistemas NoSQL han ido cobrando fuerza a medida que se incrementó el desarrollo de aplicaciones en la web. En las redes sociales, por ejemplo, se manejan volúmenes de datos muy grandes en tiempo real, y los sistemas relacionales no daban soluciones óptimas a este problema.

Para las compañías gestoras de aplicaciones web y redes sociales, era más importante el rendimiento en tiempo real del procesado de los datos, que la coherencia. Para mantener esta última. Los sistemas relacionales emplean grandes recursos computacionales.

La necesidad principal era la de procesar grandes volúmenes de datos con estructuras horizontales en gran medida similares.

Características de los sistemas de bases de datos NoSQL

Muchos desarrolladores usan el término “bases de datos estructuradas” para referirse a los sistemas de bases de datos NoSQL y sistemas relacionales en conjunto. Los sistemas NoSQL no invierten muchos recursos en garantizar que se mantenga la coherencia e integridad de los datos.

Las operaciones de agregar y recuperar datos no están optimizadas a niveles significativos. Esto trae como consecuencia que algunas no ofrecen funcionalidades más allá que la de guardar registros. La baja flexibilidad, en comparación a los sistemas relacionales, es compensada por un gran rendimiento y escalabilidad para ciertos modelos de datos.

Arquitectura

Las bases de datos relacionales son poco eficientes cuando se manejan grandes flujos de datos en tiempo real, incluyendo también la indexación de estos datos. Por ejemplo, durante una transmisión Streaming de contenido multimedia.

Los sistemas relacionales son eficientes para realizar gran cantidad de transacciones, pero con pocos accesos de escritura/lectura a los datos. Sin embargo, los sistemas de base de datos NoSQL son muy eficientes para grandes cargas de escritura y lectura de datos.

El diseño de la arquitectura de un sistema NoSQL posee pocas o nulas garantías de integridad o consistencia de los datos. No obstantes, es posible implementar, y de hecho algunos sistemas lo hacen, una capa intermedia que se encargue de garantizar esta consistencia. Todo esto sin comprometer el objetivo principal que es la escalabilidad horizontal de estos sistemas.

En cuanto a los fallos en servidores, muchos de estos sistemas emplean una arquitectura distribuida con redundancia de datos en varios servidores. De esta manera, se garantiza que el sistema seguirá funcionando, aunque falle un servidor específico.

Clasificación de los sistemas NoSQL

Los sistemas NoSQL pueden ser clasificados atendiendo a la forma que emplean para guardar los datos. Entre estas tenemos las bases de datos clave-valor, documentales y orientadas a grafo. También tenemos las bases de datos tabulares y orientadas a objetos.

Bases de datos Documentales

Estos sistemas de bases de datos NoSQL realizan la interacción con los datos a partir de datos en documentos o datos que han sido estructurados de algún modo. El concepto “documento” es una abstracción sobre la cual gira toda la implementación de la base de datos.

Entre las más conocidas tenemos MongoDB, la cual es un sistema documental de esquema libre, esto significa que puede existir un esquema de datos de entrada que no tenga ningún tipo de relación con el resto de los esquemas. Los datos almacenados son de tipo binarios, permitiendo grandes velocidades de escritura y lectura.

Este sistema, implementado en lenguaje C++, está disponible para sistemas operativos Windows, Linux, OS/X y Solaris. La estructura que emplea para almacenar los datos recibe el nombre de BSON, la cual es una evolución del formato JSON. Esta estructura permite escribir los datos como cadenas binarias.

Sistemas de bases de datos NoSQL MongoDB.

Otras bases de datos documentales son CouchDB de Apache, RavenDB de Hibernating Rhinos, BaseX, djondb, eXist, SimpleDB de Amazon, IBM Lotus Domino y Terrastore.

Sistemas Clave-Valor

Estos sistemas están diseñados para permitir la interacción con los datos en forma de arreglos asociativos o tablas hash. La estructura de una tabla hash contiene una colección de registros, sobre los cuales se asocian muchos otros registros. Para almacenar los datos se emplean claves únicas que identifican a cada registro, la cual es usada para recuperarlo rápidamente.

Sistemas de bases de datos NoSQL Clave-Valor.

Entre las más usadas de este tipo tenemos el sistema Cassandra. Este es un sistema de bases de datos NoSQL creada por la empresa Apache. Para realizar las consultas, Cassandra implementa un lenguaje propio, conocido como CQL (del inglés Cassandra Query Language). Esta es un software desarrollado en lenguaje Java. Esto implica, que puede ser ejecutado en cualquier sistema que tenga la máquina virtual de java instalada, es decir, Cassandra es un sistema multiplataforma.

Orientadas a grafos

En estos sistemas la información se representa mediante nodos y las relaciones como aristas. De esta forma es posible utilizar la teoría de grafos para recorrer y obtener los datos desde estos sistemas. En los nodos solo tendremos una columna y en las relaciones o aristas dos. De esta manera el sistema queda totalmente normalizado, y cualquier cambio tiene una implicación solo local.

Bases de datos NoSQL orinetadas a grafos.

Ventajas y desventajas de los sistemas NoSQL

Estos sistemas tienen grandes ventajas para muchas compañías importantes de negocio. Los sistemas NoSQL brindan la escalabilidad horizontal que se requiere en grandes volúmenes de datos en tiempo real. El volumen de datos manejados puede ser enorme sin generar ningún tipo de cuello de botella. Además, se pueden ejecutar en cluster de ordenadores más baratos y pueden ser usados diferentes sistemas NoSQL en diferentes proyectos.

Sus principales desventajas radican en que no cuenta con soporte oficial al ser de código abierto, aunque este puede ser cambiado y amoldado para un uso específico. Su uso limitado aún genera dudas en cuanto a la fiabilidad de estos sistemas por grandes empresas lo que detiene su crecimiento y aplicación. Además, no se han obtenido resultados positivos encuarto a su aplicación y uso en el campo de la Inteligencia de Negocio y minería de datos.

Otro aspecto negativo de los diferentes sistemas es la poca compatibilidad entre ellos mismo. Mientras que los sistemas de bases de dato relacionales poseen varias características en común que los hace bastantes compatibles entre ellos, en los sistemas NoSQL no ocurre así.


Artículos relacionados que te podrían resultar interesantes:

Deja una respuesta

Tu dirección de correo electrónico no será publicada.