Bases de datos NoSql

Las bases de datos NoSql están compuestas por una amplia clase de sistemas de gestión de bases de datos que difieren del modelo clásico del sistema de gestión de bases de datos relacionales (RDBMS), aportando frente a estas  esquemas más flexibles y entornos altamente distribuidos.

Este tipo de bases de datos crecieron al amparo de las principales compañías de Internet con el fin de para solucionar los desafíos del tratamiento de datos que las tradicionales RDBMS no solucionaban.

 

Características de bases de datos NoSQL:

  1. Utilizan APIs comunicación diferentes, muchas de ellas reconocen el formato JSON.
  2. Esquema flexible, se puede ir definiendo según se incorporan nuevos datos.
  3. No garantiza las propiedades ACID (Atomicity, Consistency, Isolation and Durability).
  4. Normalmente no soportan operaciones JOIN.
  5. Favorecen la escalabilidad, principalmente la horizontal.
  6. Suelen ser distribuidas y de código abierto.
  7. Suelen escalan bien horizontalmente.
  8. Suelen tener varios modelos de datos.

 

Comparativa de bases de datos NoSQL

Modelo de datos Características Tipo de aplicaciones Ejemplos

Clave-Valor

  • Muy alto rendimiento.
  • Muy escalable.
  • Útil para representar datos no estructurados.
  • No existe el concepto de relaciones
Aplicaciones que busca alto rendimiento en las consultas, que precisen de alta escalabilidad y no necesiten implementar relaciones entre sus datos.
  • Cassandra
  • Redis
  • HBase
  • Mencached
  • Riak
  • MariaDB

Columnas

Variante de clave-valor que permite más de un valor (columna) por clave.

Documento

XML, JSON o BSON.

  • Almacenan datos de tipo documento (los documentos representan estructuras clave valor anidadas)
  • Se representan en formato XML, JSON o BSON.
  • Flexible en esquemas de datos dinámicos.
  • Reducción de la complejidad en la consultas para datos asociados.
Aplicaciones que preceden de esquemas cambiantes y necesiten flexibilidad.
  • MongoDB
  • Couchbase
  • Amazon_Dynamo
  • CouchDB
  • RethinkDB
  • RavenDB
  • Cloudant
  • GemFire

Grafo

Atributos: Nodos con propiedades.

Aristas: relaciones.

  • Los datos se modelan como un conjunto de relaciones entre elementos.
  • Alto rendimiento en consultas de  relaciones de proximidad entre datos, y no para ejecutar consultas globales.
  • Flexibilidad en la definición de atributos y longitud de registros.
Redes sociales, software de recomendación, aplicaciones de geolocalización, aplicaciones de optimización de rutas, topologías de red …
  • Neo4j
  • Titan
  • DEX/Sparksee
  • AllegroGraph
  • OrientDB
  • InfiniteGraph
  • Sones GraphDB
  • InfoGrid
  • HyperGraphDB

 

Autor: Diego Calvo