En unos pocos
años las bases de datos NoSQL se han dado a conocer ampliamente. Resuelven algunas
problemáticas para las que las bases de datos relacionales más longevas no
proporcionan una solución totalmente satisfactoria como el escalado horizontal
y un modelo de datos normalizado en varias tablas, filas y columnas
predefinidas y significativamente diferente del modelo de datos usados por las
aplicaciones.
¿Qué es?
También conocido como no solo sql(Not only SQL) es un amplia clase de sistemas de gestión de datos caracterizado por no usar SQL como el principal lenguaje de consultas.
Capaz de almacenar grandes cantidades de datos facilitando un crecimiento horizontal, enfocándose en rendimiento más que en consistencia.
¿Qué es una BD NoSQL?
• Sistema de almacenamiento de información
• No cumple con el esquema entidad-relación
• No impone una estructura de datos
• Almacena los datos en diferentes formatos

¿Por qué surgen las base de datos NoSQL?
Surgen en respuesta a las limitaciones de las tablas convencionales SQL las cuales vienen con restricciones como un esquema rígido que las hacen menos adecuadas para otros tipos de aplicaciones.
Los sistemas NoSQL almacenan y gestionan datos de forma que permiten una gran velocidad de funcionamiento y una gran flexibilidad por parte de los desarrolladores. Debido al gran crecimiento de la web, servicios en la nube y startups de éxito con millones de usuarios nacen las bases de datos NoSQL las cuales muchas fueron desarrolladas por compañias como Google, Amazon, Yahoo y Facebook quienes buscaban mejores formas de almacenar contenido o procesar datos para sitios web masivos.

Retos de las base de datos NoSQL
Dada la amplia variedad de bases de datos NoSQL, es necesario prestar atención a las debilidades genéricas de estos modelos y, en cada caso particular aplicar las medidas necesarias en cada implementación particular. Comparando con las bases de datos relacionales podemos resumir los siguientes campos de seguridad:
Autenticación.
La fortaleza de la autenticación es uno de los campos de batalla donde muchas implementaciones NoSQL muestran debilidad. Es común encontrar que la las bases de datos NoSQL incorporen credenciales por defecto, o incluso sin autenticación necesaria o deshabilitada (por ejemplo, Redis). En muchos casos se basan en entornos de confianza en lugar de autenticación de usuario. Dependiendo del software siempre será un punto fundamental a chequear.
Integridad de los datos.
Siguiendo una filosofía donde prima la disponibilidad y el rendimiento, se penaliza en la integridad de los datos. Por ello es necesario utilizar frecuentemente mecanismos complementarios ajenos al motor de la base de datos para asegurar la integridad.
Confidencialidad y cifrado en el almacenamiento.
Por lo general, el almacenamiento de los datos se realiza en texto plano y salvo escasas excepciones como por ejemplo Cassandra y su tecnología Transparent data encryption, no se incorporan mecanismos de cifrado integrados. En la mayoría de los casos sigue siendo necesario delegar el cifrado a procesos en la capa de aplicación o del propio sistema de ficheros.
Auditoria de datos
La mayoría de bases de datos NoSQL carecen de mecanismos propios y robustos de auditoría de datos, de gran peso a la hora de detectar posibles ataques mediante la observación de eventos sobre registros concretos tal y como se hace en bases de datos relacionales.
Seguridad en las comunicaciones.
El uso de cifrado y protocolo SSL es habitual en bases de datos relaciones, en cambio en sistemas NoSQL generalmente se encuentra deshabilitado por defecto, es opcional (por ejemplo Cassandra), o bien es necesaria una configuración específica en la instalación (MongoDB).

Tipos de base de datos NoSQL

- Bases de datos de documentos (p. Ej., CouchDB, MongoDB). Los datos insertados se almacenan en forma de estructuras JSON de forma libre o «documentos», donde los datos pueden ser cualquier cosa, desde enteros hasta cadenas y texto de forma libre. No existe una necesidad inherente de especificar qué campos, si corresponde, contendrá un documento.


- Tiendas de valores clave (por ejemplo, Redis, Riak). Los valores de forma libre, desde enteros simples o cadenas hasta documentos JSON complejos, se acceden en la base de datos por medio de claves.

- Tiendas de columna ancha (por ejemplo, HBase, Cassandra). Los datos se almacenan en columnas en lugar de filas como en un sistema SQL convencional. Se puede agrupar o agregar cualquier cantidad de columnas (y, por lo tanto, diferentes tipos de datos) según sea necesario para consultas o vistas de datos.


- Bases de datos Graph (por ejemplo, Neo4j). Los datos se representan como una red o gráfico de entidades y sus relaciones, con cada nodo en el gráfico como un fragmento de datos de forma libre.


Conclusión
NoSQL es un modelo
no relacional, este nos facilita la programación
de base de datos
en las redes sociales, desarrollo web, desarrollo móvil, entre otras en donde se
requiera almacenar una gran cantidad de datos y es más rápida ya que no utiliza
los “join”, aunque
estos “join” en SQL se
pueden optimizar para trabajar más rápido.
NoSQL no utilizan
completamente el sistema ACID (atomicidad, consistencia,
aislamiento y durabilidad). Sin embargo pueden ofrecer operaciones
de manera mas optimizadas
como el agregar y recuperar, tienen una mejor escalabilidad y rendimiento dependiendo
del modelo de datos.
Dependiendo los alcances de nuestro proyecto a elaborar es que dependerá si haremos uso de base de datos NoSQL o SQL ya que dependerá mas que nada el enfoque a futuro para saber que tipo de base de datos se adapta mejor a nuestro proyecto.
Referencias
AMAZON. (2019). AWS. Obtenido de AWS:
https://aws.amazon.com/es/nosql/
Equipo de pandorafms.
(20 de Abril de 2017). Pandorafms. Obtenido de Pandorafms:
https://pandorafms.com/blog/nosql-databases-the-definitive-guide/
Innovacion Tecnologica.
(19 de Abril de 2016). Blog oracle. Obtenido de Blog oracle:
https://blogs.oracle.com/spain/qu-es-una-base-de-datos-nosql
Lopez, A. (3 de Febrero
de 2015). Incibe Cert. Obtenido de Incibe Cert:
https://www.incibe-cert.es/blog/bases-de-datos-nosql
Mesa, L. F. (31 de
Agosto de 2018). Pragma. Obtenido de Pragma:
https://www.pragma.com.co/blog/los-beneficios-de-las-bases-de-datos-nosql
MongoDB. (2019). MongoDB.
Obtenido de MongoDB: https://www.mongodb.com/nosql-inline
Oscar. (9 de Diciembre
de 2017). Code Hoven. Obtenido de Code Hoven:
https://www.codehoven.com/nosql-vs-sql/
Prensa Cambio Digital.
(4 de Agosto de 2018). Cambio Digital. Obtenido de Cambio Digital:
https://cambiodigital-ol.com/2018/08/que-es-nosql-las-bases-de-datos-nosql-explicadas/
Rouse, M. (Marzo de
2017). TechTarget. Obtenido de TechTarget:
https://searchdatamanagement.techtarget.com/definition/NoSQL-Not-Only-SQL
SaranshSharma. (2018). GeeksForGeeks.
Obtenido de GeeksForGeeks:
https://www.geeksforgeeks.org/introduction-to-nosql/