Saltar la navegación

7.1. Tipos

Las tecnologías NoSQL han evolucionado para dar respuesta a distintos problemas, y aunque tienen muchos aspectos en común, también son muy diferentes entre sí. Dada la diversidad de tecnologías NoSQL, habitualmente se clasifican en cuatro grupos, por su forma de modelar los datos:

  • Bases de datos Clave-Valor: Tienen el modelo de datos más sencillo de todos, una clave indexada asociada a un valor, que desde el punto de vista de la base de datos es información opaca que simplemente almacena y recupera asociada a la clave. El consumidor de esta información es responsable de conocer la estructura de la información almacenada. Están diseñadas para escalar masivamente manteniendo un tiempo de respuesta muy rápido y disponibilidad total. Se suelen usar para almacenar información de sesión, preferencias o perfiles de usuario, carritos de la compra y en general como cachés de cualquier conjunto de información que se pueda recuperar por una clave. Algunos ejemplos son Redis, Riak o Aerospike.
  • Orientadas a Documento: Utilizan el modelo de documento, mayoritariamente en formato JSON, para almacenar y consultar información. Permiten gestionar información con complejas estructuras jerárquicas, y ofrecen índices secundarios y completos lenguajes de consulta y agregación de datos. Esto unido a la flexibilidad del esquema de datos las convierten en las más versátiles y de propósito general. Dentro de este grupo tenemos tecnologías como MongoDB, CouchDB o CouchBase entre otras.
  • Orientadas a Grafos: El modelo de datos se centra en entidades y las relaciones entre éstas. Tanto las entidades (nodos del grado) como las relaciones (aristas) pueden además tener atributos. Una entidad puede tener numerosas relaciones con cualquier otra entidad. Recorrer las uniones entre entidades a través de estas relaciones es el fuerte de las bases de datos orientadas a grafos, y permiten hacerlo con gran velocidad, independientemente del volumen de datos, lo que posibilita explorar conexiones entre entidades que de otra forma sería muy difícil con las bases de datos relacionales. El caso de uso más conocido de este tipo de bases de datos son las redes sociales. Ejemplos de esta tecnología son Neo4j, OrientDB o Titan.
  • Orientadas a Columnas: Este tipo de bases de datos son similares a una tabla en las bases de datos relacionales, de hecho derivan en su mayoría del modelo BigTable publicado por Google, pero un registro puede contener cualquier número de columnas (o familias de columnas). Son ideales para realizar consultas y agregaciones sobre grandes cantidades de datos cuando éstas se pueden determinar previamente y no cambian con frecuencia. En este grupo encontramos ejemplos como Cassandra o HBase.

Creado con eXeLearning (Ventana nueva)