Tipos de gestores de base de datos NoSQL

Comienza Ya. Es Gratis
ó regístrate con tu dirección de correo electrónico
Tipos de gestores de base de datos NoSQL por Mind Map: Tipos de gestores de base de datos NoSQL

1. 1. MongoDB

1.1. Es una base de datos NoSQL de código abierto orientado a documentos con un alto rendimiento y disponibilidad. Guarda estructuras de datos en documentos similares a JSON con esquema dinámico llamadas BSON.

1.1.1. Estructura de un documento en MongoDB

1.1.1.1. Áreas que trabajan con el software

1.1.1.1.1. Empresas como AirFrance, KPMG Francia y la ciudad de Chicago, quienes se inclinaron hacia el uso de una base de datos NoSQL, cuentan con imágenes, vídeos, documentos Word, pdf, tweets, y muchos otros tipos de datos no estructurados que «no entran» dentro del formato de tabla.

1.1.1.2. Características de MongoDB

1.1.1.2.1. Indexación: En MongoDB el termino de indice es similar al de bases de datos relacionales, con la diferencia de que cualquier campo documentado puede ser indexado y añadir múltiples índices secundarios.

1.1.1.2.2. Replicación: la replicación es un proceso básico en la gestión de bases de datos. MongoDB soporta el tipo de replicación primario-secundario.

1.1.1.2.3. Balanceo de carga: se ejecuta de manera simultánea en múltiples servidores, ofreciendo un balanceo de carga o servicio de replicación de datos, de modo que podemos mantener el sistema funcionando en caso de un fallo del hardware.

2. 7. Riak

2.1. RIAK KV es una base de datos de valores-clave NoSQL distribuida con replicación local y multi-cluster avanzada que garantiza lecturas y escrituras incluso en caso de fallas de hardware o particiones de red.

2.1.1. Escalamiento Horizontal de Riak

2.1.1.1. Áreas que trabajan con el software

2.1.1.1.1. Bet365 utiliza Riak para almacenar información de apuestas para todos los clientes. Riot Games y Rovio almacenan resultados de juegos, tablas de clasificación y estadísticas de usuarios.

2.1.1.1.2. BestBuy, Betzold, Dubzille, ideel y Shopzilla utilizan Riak como la tienda principal de contenido para el catálogo de productos

2.1.1.1.3. League of Legends de Riot Games utiliza Riak KV para brindar chat en el juego a nivel mundial para millones de jugadores.

2.1.1.2. Características de Riak

2.1.1.2.1. Base clave – valor escalable : que simplifica el desarrollo, con él los usuarios se permiten formar prototipos, probar y desplegar aplicaciones de manera mucho más rápida que con otros modelos.

2.1.1.2.2. Tolerante a fallos, por lo que no pierden toda la información una vez haya un fallo, que consistente y tiene alta disponibilidad.

2.1.1.2.3. La escalabilidad de la que presume es lineal y predecible, permite agregar nuevas máquinas sin mayor problema y sin que se cargue excesivamente el sistema.

3. En informática, NoSQL es una amplia clase de sistemas de gestión de bases de datos que difieren del modelo clásico de SGBDR (Sistema de Gestión de Bases de Datos Relacionales) en aspectos importantes, siendo el más destacado que no usan SQL como lenguaje principal de consultas.

3.1. •La escalabilidad y su carácter descentralizado. •Soportan estructuras distribuidas. •Suelen ser bases de datos mucho más abiertas y flexibles. Permiten adaptarse a necesidades de proyectos mucho más fácilmente que los modelos de Entidad Relación. •Se pueden hacer cambios de los esquemas sin tener que parar bases de datos. •Escalabilidad horizontal: son capaces de crecer en número de máquinas, en lugar de tener que residir en grandes máquinas. •Se pueden ejecutar en máquinas con pocos recursos. •Optimización de consultas en base de datos para grandes cantidades de datos.

3.1.1. Ventajas

3.2. Desventajas:

3.2.1. •No todas las bases de datos NoSQL contemplan la atomicidad de las instrucciones y la integridad de los datos. •Soportan lo que se llama consistencia eventual. •Problemas de compatibilidad entre instrucciones SQL. El soporte a problemas en una base de datos NoSQL es más complicado. •Falta de estandarización. Hay muchas bases de datos NoSQL y aún no hay un estándar como sí lo hay en las bases de datos relacionales. Se presume un futuro incierto en estas bases de datos. •Soporte multiplataforma. Aún quedan muchas mejoras en algunos sistemas para que soporten sistemas operativos que no sean Linux. •Suelen tener herramientas de administración no muy usables o se accede por consola.

4. 3. CouchDB

4.1. Apache CouchDB, es un gestor de bases de datos de código abierto, cuyo foco está puesto en la facilidad de su uso y en ser "una base de datos que asume la web de manera completa" emplea JSON para almacenar los datos, JavaScript como lenguaje de consulta CouchDB no almacena los datos y sus relaciones en tablas. En cambio, cada base de datos es una colección de documentos independientes. Cada documento mantiene sus propios datos y su esquema autocontenido.

4.1.1. Documento JSON en CouchDB

4.1.1.1. Áreas que trabajan con el software

4.1.1.1.1. La BBC, para sus plataformas de contenidos dinámicos

4.1.1.1.2. Credit Suisse, para usos internos en el departamento de commodities para su framework de mercados

4.1.1.1.3. Meebo, para su plataforma social (web y aplicaciones) - Meebo fue adquirido por Google y cesó sus operaciones el 12 de julio de 2012.

4.1.1.2. Características de CouchDB

4.1.1.2.1. Ofrece una API JSON API que se puede acceder desde cualquier entorno que permite a las peticiones HTTP.

4.1.1.2.2. Librerías de terceros clientes que hacen que este sea aún más fácil a partir de su lenguaje de programación de su elección.

4.1.1.2.3. CouchDB está escrito en Erlang, un robusto ideal funcional lenguaje de programación concurrente para a construcción de sistemas distribuidos. Erlang permite un diseño flexible que es fácilmente escalable y extensible.

5. 2. Cassandra

5.1. Apache Cassandra se trata de un software NoSQL distribuido y basado en un modelo de almacenamiento de «clave-valor», de código abierto que está escrita en Java. Permite grandes volúmenes de datos en forma distribuida. Cassandra es esencialmente un híbrido entre un modelo Clave-Valor y una base de datos Tabular (Orientado a columnas)

5.1.1. Modelo de datos en Cassandra

5.1.1.1. Áreas que trabajan con el software

5.1.1.1.1. Cisco WebEx usa Cassandra para almacenar la retroalimentación y actividades de los usuarios en tiempo real

5.1.1.1.2. IBM realizó investigaciones para desarrollar un sistema de email basado en Cassandra.

5.1.1.1.3. En 2012, Facebook comenzó a usar Apache Cassandra en Instagram, lo usa Twitter para su plataforma

5.1.1.2. Características de Cassandra

5.1.1.2.1. Diseño activo de principio a fin: ya que en todos los nodos se puede escribir y leer.

5.1.1.2.2. Disponibilidad continua: elimina los puntos únicos de fallo y proporciona un tiempo de actividad constante.

5.1.1.2.3. Protección de datos sólida: un diseño de registro de confirmación evita la pérdida de datos y construye copias de seguridad para facilitar la restauración a la vez que se mantienen los datos protegidos y seguros.

6. 4. Redis

6.1. Redis es un motor de base de datos en memoria, basado en el almacenamiento en tablas de hashes (clave/valor) pero que opcionalmente puede ser usada como una base de datos durable o persistente. Está liberado bajo licencia BSD por lo que es considerado software de código abierto.

6.1.1. Estructura de datos en Redis

6.1.1.1. Áreas que trabajan con el software

6.1.1.1.1. Algunos ejemplos de empresas que utilizan Redis son las siguientes: Twitter, GitHub, Pinterest, Snapchat, StackOverflow o Trello.

6.1.1.2. Características de Redis

6.1.1.2.1. Rápido: Los datos se encuentran en la memoria principal, a diferencia de otros sistemas que se encuentran en SSD. Como se elimina el acceso a esos discos, se evitan retrasos: se accede y se opera mucho más rápido.

6.1.1.2.2. Replicación y persistencia: Redis hace uso de una arquitectura maestro-esclavo y acepta la replicación asíncrona que hace que pueda copiar datos en multitud de servidores esclavos. Con esto se mejoran las lecturas y la recuperación cuando falla el servidor principal.

6.1.1.2.3. Compatibilidad con lenguajes : Los que quieran desarrollar en Redis, pueden hacerlo con multitud de lenguajes de programación, como por ejemplo Java, Python, PHP, C, C++, C#, JavaScript, Node.js, Ruby, R, Go y muchos más.

7. 5. Neo4j

7.1. Neo4j es una base de datos orientada a grafos que se compone de dos elementos fundamentales: Nodos, que representan entidades con un concepto de identidad único. Por ejemplo, pueden representar personas en la base de datos. Relaciones, que representan conexiones o interacciones entre los diferentes nodos.

7.1.1. Creación de datos en Neo4j

7.1.1.1. Áreas que trabajan con el software

7.1.1.1.1. Ebay: para la logística de los servicios de entrega (planificación de itinerarios).

7.1.1.1.2. IBM: análisis de impacto o recomendaciones en tiempo real en base a los datos.

7.1.1.2. Características de Neo4j

7.1.1.2.1. Flexibilidad: los datos no tienen que mantener una estructura rígida, los nodos pueden ser cada uno de un tipo diferente, se pueden añadir con facilidad atributos adicionales.

7.1.1.2.2. Búsqueda: podemos hacer búsquedas muy rápidas basadas en las relaciones establecidas entre los nodos.

7.1.1.2.3. Indexación: las bases de datos de grafo se indexan de forma natural por sus relaciones, proporcionando un acceso más rápido en comparación a cómo resuelve una base de datos relacional las foreign keys entre diferentes tablas.

8. 6. HBase

8.1. HBase es un sistema de gestión de bases de datos orientado a columnas hbase que se ejecuta sobre el HDFS y se suele utilizar para distribuir conjuntos de datos. HBase no admite un lenguaje de consulta estructurado como SQL, a diferencia de los gestores de bases de datos relacionales.

8.1.1. Comandos de Hbase

8.1.1.1. Áreas que trabajan con el software

8.1.1.1.1. Airbnb utiliza HBase como parte de su marco de cálculo de flujo en tiempo real

8.1.1.1.2. Bloomberg , para el almacenamiento de datos de series temporales

8.1.1.1.3. Facebook utilizó HBase para su plataforma de mensajería entre 2010 y 2018

8.1.1.2. Características de Hbase

8.1.1.2.1. Balanceador de carga y recuperación de errores automático: HBase corre sobre el sistema de archivos de Hadoop, hdfs, el cual puede recuperarse dado a que cuenta con bloques de recuperación y servidores de replicación.

8.1.1.2.2. Escalabilidad lineal: es decir que podemos prever que va a crecer su performance agragando un servidor o cuanto cae si quitamos un servidor.

8.1.1.2.3. Soporta comandos de shell: Se puede administrar HBase totalmente desde una consola