N.World
Bancos de dados NoSQL

Desde que começaram a ser desenvolvidos no início da década de 1970, os bancos de dados SQL se tornaram um padrão no campo de armazenamento de dados. Sin embargo, el aumento de los volúmenes almacenados y la necesidad de ejecutar consultas a tiempo real sobre grandes cantidades de datos ha hecho que poco a poco vayan apareciendo nuevos modelos de almacenamiento, denominados NoSQL. Dado que estas bases de datos SQL están altamente extendidas e instauradas en la industria, en este documento vamos a centrarnos en exponer ese otro tipo de bases de datos: los modelos NoSQL.

1. comparação do NoSQL com o SQL. O teorema da PAC

Antes de entrar en las características de estas, es importante mencionar otro concepto: el teorema CAP. Toda base de datos se basa en 3 pilares: consistencia, disponibilidad y tolerancia a partición

  • Consistência: toda consulta va a devolver siempre los mismos datos, y en caso de error, antes optará por no devolver datos que por devolver algo erróneo. Importante en bases de datos donde transacciones sean importantes, como bancos.
  • Disponibilidade: toda consulta va a devolver datos, pese a posibles errores en el sistema, aunque estos no tengan por qué ser consistentes (pueden devolver diferentes salidas a dos clientes diferentes)
  • Tolerancia a particiónOs dados podem ser armazenados de forma distribuída em diferentes nós.

Pese a que son los tres pilares entre los que se mueve una base de datos, no es posible que los tres se cumplan a la vez. Siempre van a ser mutuamente excluyentes. Esto significa que en todos los casos se va a tener que priorizar dos de los pilares sobre el tercero. Es por ello que este teorema se representa sobre el triángulo CAP. Elegir en que vértices nos moveremos dependerá de nuestras necesidades.

O Bancos de dados SQL se basan en el segmento CA: proporcionan consistencia y disponibilidad. Sin embargo, esto se consigue teniendo todos los datos en un mismo equipo, lo cual lo hace intolerante a partición y por consiguiente no escalable horizontalmente. Bases de datos que requieren transacciones se moverán habitualmente en este vértice.

O Bancos de dados NoSQL van a ser por definición escalables, y por tanto van a poseer la propiedad P. De este modo, si la escalabilidad horizontal es una necesidad, según las propiedades que necesitemos, tendremos que optar por una base de datos CP o una AP.

Las bases de datos CP priorizan consistencia, de modo que la respuesta va a ser siempre única. Pero esto se consigue a base de bloquear el sistema a consultas en caso de ocurrir dos consultas simultaneas o un fallo (por supuesto, hasta que este fallo haya sido subsanado), lo que da el riesgo de que una consulta no devuelva resultados. Estas soluciones van a ser ideales en los casos de bancos o compañías donde tengan lugar transacciones económicas, ya que priorizarán que la transacción sea correcta aun a riesgo de que en caso de fallo la transacción no se produzca.

Por otro lado, las bases de datos AP priorizan disponibilidad. Esto quiere decir que, en caso de fallo (o de estar el nodo primario ocupado), el sistema tirará de una de las réplicas en nodos secundarios. Esto significa que siempre nos van a devolver resultados, pero corremos el riesgo de que ese fallo (u operación simultanea) haya hecho perder información como para que dos consultas den resultados diferentes. Estas soluciones serán ideales cuando busquemos la respuesta en todo momento a una consulta, incluso si esta información no es 100% precisa, por lo que podremos aplicarlas en el uso de redes sociales o sistemas que requieran consultas a tiempo real.

2. Bases de datos NoSQL. Características generales

Como mencionado na seção anterior, o Bancos de dados NoSQL se crean con el objetivo de cubrir el hueco que dejan las SQL en el triangulo CAP: la posibilidad de particionar los datos y ofrecer una escalabilidad horizontal. Además, el esquema rígido y predefinido de las bases de datos SQL, aunque funcionalmente muy útil, supone un problema debido a que a menudo los datos son heterogéneos y no responden a un esquema prestablecido. Como resultado, todas las Bancos de dados NoSQL baseará suas propriedades em torno deste fator de escalabilidade horizontal e flexibilidade. Estas propriedades podem ser resumidas da seguinte forma:

  • Esquemas flexíveis: se pierde la estructura en tabla, pudiendo establecer diferentes niveles jerárquicos, e incluso pudiendo guardarse diferentes tipos de datos en un mismo campo
  • Nenhum esquema pré-definido: no es necesario predefinir el esquema de la base de datos, sino que se pueden añadir nuevos campos a posteriori. Aun así, es recomendable en general tener una estructura predefinida, aunque luego se cambie (esto se conoce como datos semi-estructurados)
  •  Escalabilidade horizontal: Permiten el funcionamiento en clusters. Ya no es necesario tener todos los datos en un mismo equipo, por lo que cuando se requiere más espacio o capacidad de procesamiento, solamente hay que añadir una nueva máquina. Estas bases de datos en general están preparadas para que este proceso sea sencillo y dinámico, sin necesidad de reestructuraciones o migraciones.
  • Replicabilidade e alta disponibilidade: Al funcionar en clusters, es posible tener varias copias de un mismo documento en varios equipos, de modo que si uno de los equipos falla, automáticamente los otros toman el mando sin perdidas de datos ni rendimiento.
  • Particionado: uno de los mayores problemas de almacenar grandes cantidades de datos es que no puede guardarse toda una base de datos en un solo documento debido al gran tamaño de éste. La posibilidad de particionar se basa en que un documento puede distribuirse en varios equipos, eliminando la necesidad de que un solo disco tenga la capacidad de guardar todo un conjunto de datos.
  • Rapidez na consulta: Cuando las bases de datos crecen en tamaño, los tiempos de consulta de una SQL crecen, sobre todo cuando se requieren joins. Diferentes estructuras de datos y las arquitecturas en clusters reducen los tiempos de consulta cuando la cantidad de datos que maneja da es elevada.
  •  Velocidade de processamento: quando você quiser realizar operações em todo o banco de dados, o Bancos de dados NoSQL possuem motores de processamento paralelo integrados, que reduzem os tempos de leitura e escrita em mesas grandes.

É importante notar que, embora o Bancos de dados NoSQL giran generalmente en torno a estas propiedades, esto no significa que toda bases de datos NoSQL vaya a cumplirlas todas, ni que todas las NoSQL vayan a ser igual de efectivas en cumplir todas las propiedades. De hecho, las bases de datos NoSQL se dividen en varios tipos, orientados a satisfacer unas prioridades u otras de acuerdo a diferentes necesidades. Entraremos en más detalle en estos aspectos en las siguientes secciones.

3. Tipos de bases de datos NoSQL. División por grupos

  • Valor chave.
  • Graphene.
  • Séries cronológicas.
  • Documentários.
  • Colunar.
  • Repositórios de conteúdo.
Bosonit

Bosonit

Técnica e Dados

Você pode estar interessado em

Dê o salto
tecnológico.

Entre em contato conosco.