Categorías
Techies

¿Qué son las Bases de Datos NoSQL?

Todos estamos más que familiarizados con las bases de datos relacionales tipo MySQL, Oracle, MS SQL… pero desde hace un tiempo cada vez están más presentes las bases de datos NoSQL.

Primero, comencemos con la Wikipedia:

En informática, NoSQL (a veces llamado “no solo SQL”) 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. Los datos almacenados no requieren estructuras fijas como tablas, normalmente no soportan operaciones JOIN, ni garantizan completamente ACID (atomicidad, consistencia, aislamiento y durabilidad) y habitualmente escalan bien horizontalmente. Los sistemas NoSQL se denominan a veces “no solo SQL” para subrayar el hecho de que también pueden soportar lenguajes de consulta de tipo SQL.

NoSQL – Wikipedia

Grandes sistemas como Facebook, Twitter o Youtube se encontraron con problemas a la hora de manejar los grandes volumenes de información con los que trataban. Y la solución no la encontraron en añadir más máquinas, ya que además de ser una solución cara era una solución temporal.

Así, crearon nuevos sistemas escalables y de gran rendimiento para aquellos casos en los que la base de datos está sometida a millones de consultas diarias y miles de sesiones a la vez.

Como todo sistema mas o menos reciente, hay muchos tipos de bases de datos No-SQL. Yo me voy a centrar en dos que son las que conozco:

Tipo clave-valor

Sin bases de datos parecidas a un diccionario. tenvo una clave y un valor o conjunto de valores.

Suelen trabajar en memoria y son muy rápidas.

Tipo familias de columnas

Almacena los datos en columnas en lugar de filas como las bases de datos tradicionales.

Un ejemplo de este tipo de Cassandra, creado por Apache. Está hecho en Java por lo que es multiplataforma. Tiene un lenguaje propio para realizar consultas.

Es la más sencilla y por tanto más popular. Eficiente tanto en lecturas como en escrituras, cada valor tiene una llave única que lo representa.

Tipo orientada a documentos,

Un ejemplo es MongoDB. Creada por 10gen. Escrita en C++. Super eficiente y disponible tanto para Windows como Linux.

En este tipo, la información se almacena como un documento. Suelen utilizar un formato parecido a JSON o XML y cada registro se identifica con una clave única.

En MongoDB cada entrada puede tener un esquema de datos distintos. Para el almacenamiento se utiliza el formato BSON, algo así como un JSON avanzado que permite almacenar incluso datos binarios. Es de las bases de datos más versátiles y por ello de las más utilizadas.

Tipo Grafo

Formada por nodos y aristas que relacionan sus nodos. Podemos almacenar informacion tanto en nodos como en aristas. Podemos relacionar un nodo Antonino con otro nodo Madrid y relacionarlos con una arista cuyo valor es la fecha de nacimiento.

¿Quereis saber más? Pues quizás siga próximamente con una introdución práctica con Cassandra.

Uff que mal ha sonado eso.

2 respuestas a «¿Qué son las Bases de Datos NoSQL?»

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *