No SQL
No SQL
INTRODUCCIÓN
Las bases de datos NO SQL nacen de la necesidad de:
Pero cuidado, en muchos escenarios las BBDD relacionales siguen siendo la mejor
opción.
DESARROLLO
Bases de Datos NoSQL: Tipos y Beneficios
Bases de Datos NoSQL
NoSQL es un enfoque de las bases de datos que representa un cambio de los
tradicionales sistemas de gestión de bases de datos relacionales. Para definir NoSQL, es
útil comenzar describiendo SQL, que es un lenguaje de consulta utilizado por las BBDD
relacionales.
Las bases de datos relacionales se basan en tablas, columnas, filas o esquemas para
organizar y recuperar datos. Por el contrario, las bases de datos NoSQL no se basan en
estas estructuras y utilizan modelos de datos más flexibles.
Dado que las BBDD SQL han estado fallando cada vez más en satisfacer las necesidades
de rendimiento, escalabilidad y flexibilidad que necesitan las aplicaciones de la
próxima generación que requieren datos intensivos, las empresas mainstream han
adoptado bases de datos NoSQL.
Bases de datos de grafos: una base de datos de grafos utiliza estructuras de grafos para
almacenar, correlacionar y consultar relaciones. Proporcionan una adyacencia libre de
índice, de modo que los elementos adyacentes se unen entre sí sin usar un índice.
Las bases de datos multimodales aprovechan alguna combinación de los cuatro tipos
descritos anteriormente y, por lo tanto, pueden soportar una gama más amplia de
aplicaciones.
Beneficios de NoSQL
Las bases de datos NoSQL ofrecen a las empresas ventajas importantes sobre el
RDBMS tradicional, entre ellas:
¿Qué es MongoDB?
En un artículo anterior ya hablamos sobre MongoDB. Recordemos. MongoDB es una
base de datos orientada a documentos. Esto quiere decir que en lugar de guardar los
datos en registros, guarda los datos en documentos. Estos documentos son
almacenados en BSON, que es una representación binaria de JSON.
Una de las diferencias más importantes con respecto a las bases de datos relacionales,
es que no es necesario seguir un esquema. Los documentos de una misma colección -
concepto similar a una tabla de una base de datos relacional -, pueden tener esquemas
diferentes.
Nombre: "Pedro",
Apellidos: "Martínez Campo",
Edad: 22,
Aficiones: ["fútbol","tenis","ciclismo"],
Amigos: [
Nombre:"María",
Edad:22
},
Nombre:"Luis",
Edad:28
Nombre: "Luis",
Amigos:12
Este documento no sigue el mismo esquema que el primero. Tiene menos campos,
algún campo nuevo que no existe en el documento anterior e incluso un campo de
distinto tipo.
Esto que es algo impensable en una base de datos relacional, es algo totalmente válido
en MongoDB.
db.Clientes.find({Nombre:"Pedro"});
La consulta anterior buscará todos los clientes cuyo nombre sea Pedro.
MongoDB viene de serie con una consola desde la que podemos ejecutar los distintos
comandos. Esta consola está construida sobre JavaScript, por lo que las consultas se
realizan utilizando ese lenguaje. Además de las funciones de MongoDB, podemos
utilizar muchas de las funciones propias de JavaSciprt. En la consola también podemos
definir variables, funciones o utilizar bucles.
Eso sí, aunque las colecciones de MongoDB no necesitan definir une esquema, es
importante que diseñemos nuestra aplicación para seguir uno. Tendremos que pensar
si necesitamos normalizar los datos, denormalizarlos o utilizar una aproximación
híbrida. Estas decisiones pueden afectar al rendimiento de nuestra aplicación. En
definitiva el esquema lo definen las consultas que vayamos a realizar con más
frecuencia.
En esta base de datos no existen las transacciones. Aunque nuestra aplicación puede
utilizar alguna técnica para simular las transacciones, MongoDB no tiene esta
capacidad. Solo garantiza operaciones atómicas a nivel de documento. Si las
transacciones son algo indispensable en nuestro desarrollo, deberemos pensar en otro
sistema.
Tampoco existen los JOINS. Para consultar datos relacionados en dos o más
colecciones, tenemos que hacer más de una consulta. En general, si nuestros datos
pueden ser estructurados en tablas, y necesitamos las relaciones, es mejor que
optemos por un RDBMS clásico.
CONCLUSIÓN
Las bases de datos NoSQL son ya una opción más en la cartera de alternativas
para almacenar los datos de tus aplicaciones. Existen varios tipos de ellas, pero
en general su objetivo principal es resolver los problemas de performance y de
escalabilidad de las RDBMS.
Por otro lado, las RDBMS no desaparecerán ni mucho menos. Sus capacidades
transaccionales las hacen perfectas para la mayoría de las aplicaciones
existentes.
BIBLIOGRAFÍA
García J. (21 de julio 2020). Tecnologías de la infomación. Bases de
Datos NoSQL: Tipos y Beneficios. Recuperado de:
https://www.tecnologias-informacion.com/nosql.html
Jacome D. (5 de marzo 2019). Genbeta. MongoDB: qué es, cómo
funciona y cuándo podemos usarlo Recuperado de:
https://www.genbeta.com/desarrollo/mongodb-que-es-como-funciona-
y-cuando-podemos-usarlo-o-no