NoSQL

NoSQL
Información sobre la plantilla
NoSQL.jpeg
Base de Datos No Relacionales

En informática, NoSQL (a veces ampliado a "no sólo SQL") es una amplia clase de sistemas de gestión de base de datos que difieren del modelo clásico del sistema de bases de datos relacionales (RDBMS) de alguna manera significativa. Estos almacenes de datos pueden no requerir esquemas fijos de mesa, por lo general evitar las operaciones de combinación, y por lo general la escala horizontal. Los investigadores académicos se refieren normalmente a estas bases de datos estructurados como storag un término que incluye clásicos de bases de datos relacionales como un subconjunto.

Historia

Originalmente el término NoSQL, que fue acuñado en 1998, se refería a una base de datos relacional de código abierto que no usaba un lenguaje de consultas SQL (Structured Query Language).

Hasta 2009 estas cinco letras cayeron en el olvido, pero fue Johan Oskarsson, entonces empleado de Last.fm, quien organizó un evento para tratar las bases de datos distribuidas de código abierto no relacionales, llamándolas “NOSQL”, Not-Only SQL.

Características

Las características comunes entre todas las implementaciones de bases de datos distribuidas no relacionales, propietarias o no, suelen ser las siguientes:

  • Consistencia Eventual: No se implementan mecanismos rígidos de consistencia como los presentes en las bases de datos relacionales, donde la confirmación de un cambio implica una comunicación del mismo a todos los nodos que lo repliquen. Esta flexibilidad hace que la consistencia se dé, eventualmente, cuando no se hayan modificado los datos durante un periodo de tiempo. Esto se conoce también como BASE (Basically Available Soft-state Eventual Consistency, o coherencia eventual flexible básicamente disponible), en contraposición a [[[ACID]], su analogía en las bases de datos relacionales.
  • Escalabilidad horizontal: La implementación típica se realiza en muchos nodos de capacidad de procesado limitado, en vez de utilizar grandes Mainframes.

De entre todas las implementaciones de bases de datos NoSQL, hay muchas que no utilizan el lenguaje de consultas SQL (por ejemplo, MongoDB usa JSON), pero hay algunas que siguen usándolo, como por ejemplo BigTable (GQL), que lo ha transformado manteniendo su estructura básica.

El término NoSQL se refiere a una multitud de bases de datos que intentan solventar las limitaciones que el modelo relacional se encuentra en entornos de almacenamiento masivo de datos, y concretamente en las que tiene en el momento de escalar, donde es necesario disponer de servidores muy potentes y de balanceo de carga.

Ventajas

  • soportar pequeñas pero frecuentes transacciones de lectura/escritura o grandes baterías de transacciones donde el acceso de escritura no es común.
  • los servicios diseñados con NoSQL soportan un intenso volumen de operaciones de lectura/escritura.
  • NoSQL ofrece garantías de consistencia muy débiles como la consistencia eventual o transacciones limitadas a elementos de datos individuales.
  • Algunos sistemas, ofrecen plenas garantías ACID en algunos casos mediante la adición de capas medias de integración adicionales, ese es el caso de CloudTPS
  • Ofrece soluciones para proporcionar aislamiento a las snapshots de los registros almacenados, por ejemplo el Google Percolator que está basado en BigTable y un sistema transaccional para HBase desarrollado en la [[Universidad de Waterloo
  • Evita carga extra de gestión de datos introducida por una capa media de integración adicional.

¿Quién utiliza NoSQL?

Estos sitios han desplegado infraestructuras NoSQL de forma completamente satisfactoria

  • Digg
  • Facebook
  • eBay

Sistemas

Hay disponibles infinidad de sistemas de NoSQL, algunos son de tipo Graph Database otros son de tipoXML Database o Document Oriented Database entre los más famosos con licencias libres se encuentran:

Fuentes