NoSQL (Not only SQL) es un término que se refiere a bases de datos no relacionales. Una base de datos NoSQL almacena sus datos en un formato no tabular. Entre las más famosas están:
- MongoDB.
- Redis.
- Neo4j (orientada a grafos).
- CouchDB.
- Cassandra.
- Entre otras más.
MongoDB.
Es un sistema de base de datos NoSQL, orientado a documentos y de código abierto.
Redis.
Es un motor de base de datos en memoria, basado en el almacenamiento en tablas de hashes (clave/valor) pero que opcionalmente puede ser usada como una base de datos durable o persistente.
Neo4j.
Es un software libre de Base de datos orientada a grafos, implementado en Java.
CouchDB.
Es una base de datos NoSQL que emplea JSON para almacenar los datos, JavaScript como lenguaje de consulta por medio de MapReduce y HTTP como API.
Cassandra.
Es un software NoSQL distribuido y basado en un modelo de almacenamiento «tabular», de código abierto que está escrito en Java.
NoSQL según https://nosql-database.org/, se refiere a bases de datos "no relacionales" o "no solo SQL": sistemas de almacenamiento de datos que no se basan en el formato tradicional de tablas de filas y columnas de las bases de datos relacionales. Y ofrecen modelos flexibles como documentos, pares clave-valor, gráficos o columnas anchas, según cómo se estructuren y accedan los datos.
Su objetivo no es reemplazar a SQL por completo. Más bien, aborda limitaciones específicas de los sistemas relacionales, especialmente al trabajar con datos no estructurados, grandes volúmenes o arquitecturas distribuidas.
Algunas de las diferencias más importantes entre una BD relacional y una no relacional son:
Estructuras de datos:
- Las bases de datos SQL utilizan un esquema fijo con tablas, filas y columnas. La estructura debe definirse con antelación y cada registro sigue el mismo formato.
- Las bases de datos NoSQL son flexibles en cuanto a esquemas. Los datos pueden almacenarse como documentos JSON, pares clave-valor o gráficos, lo que permite que cada entrada tenga un aspecto diferente.
Escalabilidad:
- Las bases de datos SQL suelen escalarse verticalmente, lo que implica añadir más potencia a un solo servidor (CPU, RAM, etc.).
- Las bases de datos NoSQL están diseñadas para el escalado horizontal: distribuyen los datos entre varios servidores para gestionar tráfico intenso y grandes conjuntos de datos.
Lenguaje de consulta:
- El lenguaje de consulta estructurado (SQL) se utiliza en bases de datos SQL para interactuar con los datos.
- Las variantes de las bases de datos NoSQL dependen del tipo: MongoDB permite el envío de un lenguaje de consulta similar a SQL y también ejecuta consultas completas desde el shell, mientras que Cassandra utiliza su lenguaje de consulta CQL (Cassandra Query Language) integrado.
Transacciones:
- Los sistemas SQL ofrecen una sólida conformidad con ACID (atomicidad, consistencia, aislamiento y durabilidad), lo que garantiza una estricta fiabilidad de los datos.
- Los sistemas NoSQL varían: algunos admiten ACID a nivel de documento, pero muchos se centran en el rendimiento y la disponibilidad, y en ocasiones solo ofrecen consistencia eventual.
Tipos de BD NoSQL
Bases de datos basadas en documentos. Como MongoDB o CouchDB.
Bases de datos basadas en de clave-valor. Como Redis o DynamoDB.
Bases de datos basadas en almacenaje de columnas anchas. Como Cassandra o HBase.
Bases de datos basadas en grafos. Como Neo4j o ArangoDB.
Las bases de datos NoSQL surgen de la necesidad de resolver los problemas dejados por las bases de datos relaciones. Como lo pueden ser las complejas consultas (JOIN, INNER JOIN, etc.), la inflexibilidad de los datos y hasta su integridad.
Enlaces:
https://www.mongodb.com/https://neo4j.com/
https://cassandra.apache.org
https://es.wikipedia.org/wiki/NoSQL
https://redis.io/
https://couchdb.apache.org/
https://nosql-database.org/
https://mkyong.com/tutorials/java-mongodb-tutorials/
No hay comentarios:
Publicar un comentario