En los últimos 15 años, las exi­ge­n­cias del de­sa­rro­llo moderno de apli­ca­cio­nes han cambiado ra­di­ca­l­me­n­te, cada vez hay que almacenar, procesar y ac­tua­li­zar volúmenes de datos más extensos de forma más rápida. En lo que respecta al manejo de grandes volúmenes de datos, las bases de datos no re­la­cio­na­les o NoSQL llevan tiempo dando de qué hablar. Pero ¿qué es una base de datos NoSQL exac­ta­me­n­te y qué ventajas ofrece este moderno juego de bases de datos?

¿Qué hay detrás del nombe NoSQL?

NoSQL significa “not only SQL” y es así como hay que entender el modelo de bases de datos: no se trata del elemento an­ta­gó­ni­co, sino de un en­ri­que­ci­mie­n­to y co­m­ple­me­n­to útil de las tra­di­cio­na­les bases de datos SQL re­la­cio­na­les. En este contexto, las bases de datos NoSQL traspasan los límites de los sistemas re­la­cio­na­les y, en su lugar, usan modelos al­te­r­na­ti­vos de bases de datos. No obstante, esto no significa que no se van a usar sistemas SQL. También existen numerosas variantes mixtas, en las que se usan ambas so­lu­cio­nes y que también se engloban en el hi­pe­ró­ni­mo NoSQL.

Hasta los últimos años de la primera década del 2000, las bases de datos SQL eran el no va más del de­sa­rro­llo de apli­ca­cio­nes. Otros enfoques, como las bases de datos orie­n­ta­das a objetos, nunca al­ca­n­za­ron esa posición de peso, debido a la compleja im­ple­me­n­ta­ción que co­n­lle­va­ban. El de­sa­rro­llo de las bases de datos NoSQL, que surgió en respuesta a las li­mi­ta­cio­nes y los problemas de las bases de datos re­la­cio­na­les, supuso la creación de una auténtica al­te­r­na­ti­va, ya que, en muchas ocasiones, las bases de datos re­la­cio­na­les ya no son capaces de hacer frente a las exi­ge­n­cias del de­sa­rro­llo moderno de apli­ca­cio­nes. En cambio, las bases de datos NoSQL usan novedades, como los se­r­vi­do­res en la nube, para ofrecer un modelo de datos al­te­r­na­ti­vo en el que se pueden almacenar y procesar muchos datos distintos. Las es­tru­c­tu­ras de datos re­su­l­ta­n­tes son potentes y flexibles, y cuentan con la capacidad de reac­cio­nar rá­pi­da­me­n­te a distintas exi­ge­n­cias.

A menudo, los sistemas NoSQL se designan como soportes de datos es­tru­c­tu­ra­dos, una de­no­mi­na­ción que hace hincapié en la principal di­fe­re­n­cia con respecto a las bases de datos SQL re­la­cio­na­les: a di­fe­re­n­cia de estas últimas, las bases de datos NoSQL no usan rígidos esquemas de tablas en los que hay que definir los datos antes de su al­ma­ce­na­mie­n­to. Apuestan por métodos más flexibles que permiten la in­te­gra­ción sencilla de nuevos juegos de datos que se ac­tua­li­zan de forma continua en la apli­ca­ción. Las so­lu­cio­nes NoSQL también son adecuadas para procesar datos no es­tru­c­tu­ra­dos o de­s­co­no­ci­dos, una tarea prá­c­ti­ca­me­n­te imposible con una base de datos re­la­cio­nal.

¿Cómo funcionan las bases de datos NoSQL?

A di­fe­re­n­cia de las bases de datos basadas en SQL, las bases de datos NoSQL no usan tablas tra­di­cio­na­les con líneas y columnas para almacenar datos. En su lugar, organizan los grandes volúmenes de datos con técnicas más flexibles, como, por ejemplo, do­cu­me­n­tos, gráficos, pares de valores y columnas. Por ello, las bases de datos NoSQL son ideales para apli­ca­cio­nes en las que se procesan grandes volúmenes de datos y que requieren es­tru­c­tu­ras flexibles. Como los sistemas NoSQL hacen uso de clústeres de hardware y se­r­vi­do­res de nube, las ca­pa­ci­da­des se di­s­tri­bu­yen de manera uniforme y la base de datos funciona con fluidez, aunque el volumen de datos sea grande. En co­n­tra­po­si­ción a las bases de datos re­la­cio­na­les, que bajan el re­n­di­mie­n­to en cuanto crece el volumen de datos, las bases de datos NoSQL suponen una solución potente, flexible y escalable incluso con grandes volúmenes de datos.

Otra pa­r­ti­cu­la­ri­dad de las bases de datos NoSQL es el es­ca­la­mie­n­to ho­ri­zo­n­tal. Las bases de datos SQL re­la­cio­na­les cuentan con un es­ca­la­mie­n­to vertical y toda su capacidad de re­n­di­mie­n­to se basa en un solo servidor. Para poder aumentar su capacidad, habría que invertir en un servidor más potente: a largo plazo no solo se trata de una opción muy cara, sino que además limita no­ta­ble­me­n­te las po­si­bi­li­da­des del de­sa­rro­llo de apli­ca­cio­nes. Por norma general, las so­lu­cio­nes NoSQL di­s­tri­bu­yen los datos en varios se­r­vi­do­res. Si aumenta el volumen de datos, si­m­ple­me­n­te se añaden nuevos se­r­vi­do­res. Así, las bases de datos NoSQL pueden almacenar grandes ca­n­ti­da­des de datos sin ningún problema, por lo que son es­pe­cia­l­me­n­te adecuados para apli­ca­cio­nes de Big Data.

Los cuatro conceptos NoSQL más im­po­r­ta­n­tes

Los soportes de datos es­tru­c­tu­ra­dos no echan mano de los esquemas rígidos de sus co­m­pe­ti­do­res re­la­cio­na­les, por lo que son es­pe­cia­l­me­n­te adecuados para las apli­ca­cio­nes de Big Data. Ya existen numerosas bases de datos NoSQL distintas en todo el mundo, no­r­ma­l­me­n­te de código abierto, que en función del proveedor y los re­qui­si­tos cuentan con una es­tru­c­tu­ra diferente. Aunque no existan re­gu­la­cio­nes uniformes, los distintos conceptos NoSQL se pueden cla­si­fi­car en cuatro ca­te­go­rías pri­n­ci­pa­les.

Bases de datos orie­n­ta­das a do­cu­me­n­tos

En las bases de datos NoSQL orie­n­ta­das a do­cu­me­n­tos, los datos se almacenan di­re­c­ta­me­n­te en do­cu­me­n­tos de di­fe­re­n­tes lo­n­gi­tu­des. No hace falta que los datos estén es­tru­c­tu­ra­dos. Se les asignan distintos atributos o de­no­mi­na­dos “Tags” sobre cuya base se pueden rastrear los co­n­te­ni­dos de los do­cu­me­n­tos. Las bases de datos NoSQL orie­n­ta­das a do­cu­me­n­tos son es­pe­cia­l­me­n­te adecuadas para sistemas de gestión de co­n­te­ni­dos y blogs. Hoy en día se usa sobre todo JSON (Ja­va­S­cri­pt Object Notation) como formato de archivo, ya que permite el in­te­r­ca­m­bio de datos más rápido entre apli­ca­cio­nes.

Bases de datos de grafos

Una base de datos de grafos forma re­la­cio­nes entre datos mediante nodos y cantos. El entramado de re­la­cio­nes de datos se organiza mediante puntos nodulares y sus co­ne­xio­nes entre sí. Así, con co­n­te­ni­dos de datos con in­fo­r­ma­ción muy en­tre­la­za­da, las bases de datos NoSQL ofrecen un re­n­di­mie­n­to muy superior a las bases de datos SQL re­la­cio­na­les. Se usan sobre todo en el ámbito de las redes sociales para re­pre­se­n­tar las re­la­cio­nes entre se­gui­do­res de Twitter o Instagram.

Bases de datos de clave-valor

Mientras que las bases de datos SQL echan mano de esquemas rígidos y tablas, las bases de datos de clave-valor guardan los datos como pares de valores y clave. Los valores in­di­vi­dua­les están asignados a claves es­pe­cí­fi­cas y el propio juego de datos funciona como clave (key) y re­pre­se­n­ta un valor (value). De forma si­mu­l­tá­nea, la clave crea un Índice que se puede usar para buscar en la base de datos. Las claves de las bases de datos NoSQL de clave-valor siempre son unívocas y se pueden equiparar a las Primary Keys de las bases de datos re­la­cio­na­les.

Bases de datos orie­n­ta­das a columnas

A di­fe­re­n­cia de los modelos de bases de datos re­la­cio­na­les, los sistemas de bases de datos co­lu­m­na­res no guardan los juegos de datos en líneas, sino en columnas. Este cambio implica procesos de lectura de datos más cortos y una mayor capacidad de re­n­di­mie­n­to. Este modelo NoSQL se usa sobre todo para programas de minería de datos y de análisis.

Ventajas de NoSQL frente al SQL

En función del propósito de apli­ca­ción, NoSQL puede ofrecer ciertas ventajas frente a las clásicas bases de datos re­la­cio­na­les. En las si­tua­cio­nes en las que los sistemas SQL se so­bre­ca­r­gan, por ejemplo, al manejar Big Data, las bases de datos NoSQL triunfan con modelos es­ca­la­bles con una enorme capacidad de re­n­di­mie­n­to que permiten leer y procesar grandes volúmenes de datos en tiempos récord.

Las bases de datos NoSQL se alejan de los esquemas rígidos de los sistemas SQL y tienden hacia modelos más flexibles que son ideales para el pro­ce­sa­mie­n­to de grandes volúmenes de datos. Gracias al al­ma­ce­na­mie­n­to en clústeres de hardware di­s­tri­bui­dos están menos expuestas a las in­te­r­fe­re­n­cias y errores y son mucho más eco­nó­mi­cas que la in­s­ta­la­ción de un único servidor potente, cuya capacidad se va agotando co­n­ti­nua­me­n­te y necesita ser re­m­pla­za­do.

Base de datos SQL Base de datos NoSQL
Tipo Una base de datos para todo. Distintos modelos de base de datos, como, por ejemplo, de do­cu­me­n­tos, grafos, clave-valor y columnas.
Al­ma­ce­na­mie­n­to de datos Los datos in­di­vi­dua­les (p. ej., “títulos de libros”) se almacenan en líneas de una tabla y se asignan a de­te­r­mi­na­dos atributos (p. ej., “autor”, “año de pu­bli­ca­ción”, etc.). Los juegos de datos se guardan en tablas separadas y el sistema las une en caso de consultas de búsqueda complejas. Las bases de datos NoSQL no usan tablas, sino do­cu­me­n­tos enteros, claves y valores, grafos o columnas, en función del tipo.
Esquemas El tipo y la es­tru­c­tu­ra de los datos se de­te­r­mi­nan pre­via­me­n­te. Para almacenar in­fo­r­ma­ción nueva, hay que adaptar toda la base de datos (y para ello debe de­s­co­ne­c­tar­se de la red). Fle­xi­bi­li­dad. Los nuevos grupos de datos se pueden añadir in­me­dia­ta­me­n­te. Los datos es­tru­c­tu­ra­dos, se­mie­s­tru­c­tu­ra­dos y no es­tru­c­tu­ra­dos se pueden almacenar juntos, sin necesidad de una co­n­ve­r­sión previa.
Es­ca­la­mie­n­to Es­ca­la­mie­n­to vertical. Un único servidor debe soportar el re­n­di­mie­n­to de todo el sistema de base de datos, lo que implica una reducción del re­n­di­mie­n­to con grandes volúmenes de datos. Es­ca­la­mie­n­to ho­ri­zo­n­tal. Cada ad­mi­ni­s­tra­dor puede añadir un nuevo servidor de nube o base, la base de datos NoSQL envía los datos au­to­má­ti­ca­me­n­te a todos los se­r­vi­do­res.
Modelo de de­sa­rro­llo Código abierto (p. ej., MySQL) o software de pago (Oracle Database). Código abierto o software de pago.
Ca­ra­c­te­rí­s­ti­cas ACID: Atomicity, Co­n­si­s­te­n­cy, Isolation, Du­ra­bi­li­ty En las bases de datos SQL se dan todas las ca­ra­c­te­rí­s­ti­cas ACID. Para que las bases de datos NoSQL se mantengan flexibles y ho­ri­zo­n­ta­les, no suelen ser co­m­pa­ti­bles con tra­n­sac­cio­nes ACID. En su lugar, se usa el modelo BASE (Basically Available, Soft State, Eve­n­tua­lly Co­n­si­s­ta­nt). Dicho modelo consiste en lo siguiente: di­s­po­ni­bi­li­dad antes que co­n­si­s­te­n­cia.
Re­n­di­mie­n­to Utilidad en caso de índices de grandes volúmenes de datos. Para aumentar el re­n­di­mie­n­to de los sistemas SQL, hay que optimizar las consultas, los índices y la es­tru­c­tu­ra. Gracias al uso de se­r­vi­do­res de nube y clústeres de hardware, las bases de datos NoSQL cuentan con una capacidad de re­n­di­mie­n­to no­ta­ble­me­n­te superior.
API Las consultas para el al­ma­ce­na­mie­n­to y el acceso a los datos se tra­n­s­mi­ten mediante SQL (Stru­c­tu­red Query Language). Los datos se almacenan y se consultan a través de los API basados en objetos.

Vista general de cinco so­lu­cio­nes NoSQL de uso frecuente

La mayoría de las bases de datos NoSQL son software de código abierto di­s­po­ni­ble para todos los usuarios de Internet sin re­s­tri­c­cio­nes. Esto si­m­pli­fi­ca su uso: puedes descargar muchas apli­ca­cio­nes NoSQL de forma gratuita, fa­mi­lia­ri­zar­te con ellas y, en primera instancia, solo usarlas como co­m­ple­me­n­to a las bases de datos SQL. Las si­guie­n­tes bases de datos NoSQL ya se han asentado en el sector:

Cassandra

Cassandra es una base de datos NoSQL basada en columnas y op­ti­mi­za­da para el al­ma­ce­na­mie­n­to y pro­ce­sa­mie­n­to de juegos de datos de gran volumen.

CouchDB

La base de datos orientada a do­cu­me­n­tos CouchDB usa API HTTP/JSON de co­m­pre­n­sión intuitiva y se puede usar en todos los ámbitos de apli­ca­ción, desde Big Data hasta apli­ca­cio­nes móviles y web.

Neo4j

Con Neo4j se pueden integrar datos en la base de datos NoSQL de gráfico basada en la nube. Sirve pri­n­ci­pa­l­me­n­te para mostrar de forma gráfica las re­la­cio­nes entre los distintos juegos de datos y para reconocer patrones.

Redis

La base datos de clave-valor Redis es una de las de­no­mi­na­das bases de datos In-Memory: almacena los datos di­re­c­ta­me­n­te en la memoria caché y, así, alcanza un re­n­di­mie­n­to aún más alto.

MongoDB

MongoDB lleva siendo durante años uno de los sistemas de bases de datos NoSQL más populares. Esta base de datos, escrita en el lenguaje de pro­gra­ma­ción C++, funciona de manera orientada a do­cu­me­n­tos y almacena la in­fo­r­ma­ción en formato BSON (Binary JSON).

Ir al menú principal