domingo, 5 de marzo de 2017

Sistemas de Gestión de Base de Datos NoSQL de Software Libre


Actualmente existen más de 200 tipos de bases de datos NoSQL pero ninguno ha logrado la popularidad de los Sistemas de Gestión de Base de Datos Relacionales (RDBMS) ni tampoco el dominio dentro de su área específica.
En los RDBMS se pueden mencionar productos líderes del mercado como lo son Oracle Database y Microsoft SQL Server en mundo privativo y MySQL y PostgreSQL de lado del  software libre.
El problema de la selección de una base de datos NoSQL se torna difícil porque no existe un solo tipo de base de datos, sino que existen distintos tipos. Básicamente existen cuatro tipos de Base de datos NoSQL según su modelo de datos.
A continuación se mencionan las base de datos NoSQL de mayor uso clasificados por su modelo de datos. Cabe resaltar que existen sistemas de base de datos NoSQL que están diseñados para manejar varios modelos de datos.  


Orientado a documentos
MongoDB de 10Gen
MongoDB es una de las bases de datos NoSQL más conocidas del mercado, posee excelente rendimiento, escalable, de “esquema libre”, orientada a documentos (esquemas de datos tipo JSON) y puede ser utilizado con lenguajes como PHP, Python, Perl, Ruby, JavaScript, C++ y muchos más.



CouchDB de Apache
CouchBD es una base de datos orientada a documentos que puede consultar o indexar en modo MapReduce usando JavaScript. CouchDB ofrece una API JSON RESTful a la que se puede acceder desde cualquier entorno que soporte peticiones HTTP.




Orientado a columnas
Entre las bases de datos NoSQL de este tipo de mayor uso están:
Cassandra de Apache
Cassandra es probablemente uno de los proyectos NoSQL más conocidos del mercado. Es una base de datos distribuida de segunda generación con alta escalabilidad que está siendo usada por empresas como Facebook (que es quien la ha desarrollado), Digg, Twitter, Cisco y más empresas. El objetivo es ofrecer un entorno consistente, tolerante a fallos y de alta disponibilidad a la hora de almacenar datos.

HBase de Apache
HBase es una base de datos distribuida diseñada para trabajos en el cual se necesite acceso aleatorio, en tiempo real de lectura/escritura a enorme cantidad de datos. El objetivo de este proyecto es el alojamiento de tablas muy grandes. (miles de millones de filas por millones de columnas).

Hypertable de Hypertable Inc.
Hypertable es una base de datos distribuida de alto rendimiento diseñado para soportar aplicaciones que requieran máximo rendimiento, escalabilidad y eficiencia. Se ha diseñado y modelado a partir del proyecto BigTable de Google y se enfoca sobre todo a conjuntos de datos de gran escala.



Tipo Clave-Valor:
Entre las bases de datos tipo-valor de software libre se encuentran:
Riak de Basho.
Riak KV es una base de datos NoSQL distribuida altamente disponible, escalable y fácil de operar. Distribuye automáticamente datos a través del clúster para garantizar un rendimiento rápido y tolerancia a fallos. Riak KV Enterprise incluye replicación de múltiples clústeres, lo que garantiza una baja latencia y una sólida continuidad empresarial.

Redis de redislab.
Redis es un almacén de estructura de datos en código abierto (BSD licenciado), utilizado como base de datos, caché y agente de mensajes. Soporta estructuras de datos como cadenas, hashes, listas, conjuntos, conjuntos ordenados con consultas de rango, mapas de bits, hiperloglogs e índices geoespaciales con consultas de radio.
Con el fin de lograr su rendimiento excepcional, Redis trabaja con un conjunto de datos en memoria. Dependiendo de su caso de uso, puede persistir ya sea volcando el conjunto de datos en el disco de vez en cuando, o añadiendo cada comando a un registro. La persistencia puede estar opcionalmente deshabilitada, si solo necesita una caché de memoria en red, rica en funciones.

Memcached de memcached.org
Memcached está diseñado para ser utilizado en la aceleración de las aplicaciones web dinámicas mediante el alivio de la carga de la base de datos. Es un almacén de tipo “clave-valor” en memoria para pequeños fragmentos de datos (cadenas, objetos) de resultados de llamadas a bases de datos, llamadas API o representación de páginas. Memcached es simple pero potente. Su diseño sencillo promueve el despliegue rápido, la facilidad de desarrollo y resuelve muchos problemas que enfrentan los grandes cachés de datos. Su API está disponible para los idiomas más populares.


Base de datos Gráfos
Entre las bases de datos orientadas a grafos tenemos:
Neo4J de neo4j.org
Neo4j es un motor de persistencia completamente transaccional en Java que almacena los datos mediante grafos, y no mediante tablas. Neo4j ofrece una escalabilidad masiva. Puede manejar grafos de varios miles de millones de nodos/relaciones/propiedades en una única máquina, y se puede escalar a lo largo de múltiples máquinas.

WhiteBD de whitebd.org
WhiteDB es una biblioteca de base de datos NoSQL ligera escrita en C, que funciona totalmente en la memoria principal. No hay ningún proceso de servidor. Los datos se leen y escriben directamente desde / a la memoria compartida, no se utilizan sockets entre WhiteDB y el programa de aplicación.



No hay comentarios:

Publicar un comentario