Você está na página 1de 22

INFORME FINAL MONOGRÁFICO

JONATHAN STEVEN SOTO ORJUELA


066131016

Presentado a:

COMITÉ DE PROYECTOS DE GRADO DE INGENIERIA DE SISTEMAS

UNIVERSIDAD LIBRE DE COLOMBIA


DIPLOMADO DE BIG DATA
INGENIERÍA DE SISTEMAS
2018
MANEJO Y ACCESO A LA INFORMACIÓN POR MEDIO DE BASES DE DATOS
NOSQL

Resumen

Con este proyecto, se busca aplicar los conceptos relacionados a las bases de
datos NoSQL esto con el fin de saber su respectivo manejo y acceso a la
información para hacer frente a las necesidades actuales de las organizaciones.
Introducción

Teniendo en cuenta la importancia que han adquirido los datos no estructurados


en el desarrollo actual de cualquier actividad económica, social, cultural, científica
entre otras, cabe destacar que las bases de datos NoSQL aportan demasiado en
términos de Big Data esto debido a que usa características como lo es el volumen,
la variedad y la velocidad de los datos, por lo que es necesario debido al flujo
exponencial de información que ha tenido la internet estos últimos años.

El termino NoSQL fue acuñado en 1998 y se refería a una base de datos


relacional de código abierto que no usaba un lenguaje de consultas SQL, sino en
el 2009 Johan Oskarsson entonces empleado de Last.fm, quien organizó un
evento para tratar las bases de datos distribuidas de código abierto no relacionales
nombrándolas NoSQL, por tanto, busca no reemplazar las bases de datos
relacionales sino que es un movimiento que busca otras opciones de manipulación
de los datos con un rendimiento extremo.

Las bases de datos NoSQL apoya al tratamiento de datos debido a su capacidad


de procesamiento y almacenamiento en cuanto llegó a la red la social media el
flujo de datos creció exponencialmente, Aunque estas estadísticas siempre están
en constante cambio, por lo que Facebook, Google, Amazon manejan las bases
de datos NoSQL, esto con el fin de buscar alternativas para capturar, almacenar,
buscar, compartir y agregar valor a datos para sus soluciones de negocio.

Por lo anterior, el presente documento explicará lo referente acerca de las bases


de datos NoSQL como lo son antecedentes, definición, características, tipos de
bases de datos utilizadas, para hacer frente a las necesidades actuales de las
organizaciones.
Desarrollo

Antecedentes

Una base de datos consiste en la colección de datos interrelacionados que se


encuentran agrupados y estructurados, para acceder a dichos datos se debe tener
programas o software especializados. Surgieron a finales de los años 60 y
principios de los años 70. Por tanto, en dichos años tomó popularidad el modelo
de datos formulado por el científico de la computación Edgar Frank Codd, el
modelo de datos relacional

Blanco (2007) afirma: “El modelo de datos relacional es el más usado


actualmente, su idea base es el concepto de tablas, que a su vez se compone de
registros (las filas de una tabla) y campos (las columnas de una tabla). La tabla es
una estructura lógica para almacenar los datos de un mismo tipo, es decir, de
forma separada a otra entidad. Cada elemento almacenado dentro de la tabla
recibe el nombre de registro tupla o fila.” (p.8)

De acuerdo a este modelo de datos se creó en los años 80 también por el


científico anteriormente mencionado el lenguaje para consultar en tablas
relacionales llamado SQL (Structured Query Language) del cual permite acceder
a los datos por medio de consultas, como lo es su estructura, modificación o
borrado de los mismos de manera sencilla y rápida.

A partir de ese momento las grandes compañías vieron potencial en dicho


lenguaje por lo que crearon los sistemas gestores de bases de datos populares
como Oracle, MySQL, o SQL Server que fueron herramientas estándar para el
manejo de datos de cualquier industria.

Gómez (2013) afirma. ”El objetivo principal de un sistema de administración de


bases de datos es proporcionar una forma de almacenar y recuperar la
información de una base de datos de manera que sea tanto práctica como
eficiente. Los SGBD se diseñan para gestionar grandes cantidades de
información. La gestión de los datos implica tanto la definición de estructuras para
almacenar la información como la provisión de mecanismos para la manipulación
de la información” (p.6)

González (2016) afirma “Se puede señalar que desde el inicio de la historia hasta
2003 los humanos habíamos creado 5 exabytes (es decir, 5 mil millones de
gigabytes) de información. En 2011 ya creábamos esa misma cantidad de
información cada dos días, esto debido a la llegada de la Internet y de la social
media, y se sigue generando más información cada día.”(p.18)

Figura 1 – Tráfico de la internet en tiempo real [1]

Es por tanto que los sistemas gestores de bases de datos populares tuvieron fallos
con respecto a lentitud de accesos, problemas de bloqueos, mantener bases de
datos distribuidas geográficamente, instancias de bases de datos que toman
recursos de hardware.

Por tanto, en 1998 nació un concepto llamado NoSQL del cual no implementa el
modelo de datos relacional ni el lenguaje estructurado de consultas SQL. No
fueron creadas por una compañía específica, sino que fueron creadas por varias
empresas que buscaban soluciones a sus problemas.
¿Qué es NoSQL?

NoSQL significa (No only SQL) por su traducción al español “No solamente SQL”
son sistemas de almacenamiento que no hacen parte del modelo relacional, por
tanto, los datos que almacenan no requieren de una estructura tabular, maneja
múltiples modelos de datos por lo que su almacenamiento es de forma rápida y
escalable ya que puede albergar datos estructurados o sin una estructura previa.

Según (Arcitura Education Inc, S.F) “Una base de datos NoSQL generalmente
proporciona una interfaz de consulta basada en API, en vez de una interfaz SQL.
Sin embargo, algunas bases de datos NoSQL también proporcionan una interfaz
de consulta basada en SQL”. (p.75)

Figura 2 – Base de datos NoSQL puede proporcionar una interfaz de consulta basada en API o en SQL.[2]

Características de las Bases de datos NoSQL

Las bases de datos NoSQL tienen unas características únicas que las diferencian
de las bases de datos relacionales como lo son:

• Consistencia Eventual: No se implementan mecanismos rígidos de


consistencia como los presentes en las bases de datos relacionales, donde
la confirmación de un cambio implica comunicar a todos los nodos que lo
repliquen. Esta flexibilidad hace que la consistencia se pueda dar,
eventualmente, cuando no se hayan modificado los datos durante un
periodo de tiempo.

• Estructura distribuida: Generalmente se distribuyen los datos mediante


mecanismos de tablas de hash distribuidas, para ello se tiene en cuenta la
habilidad de replicar y distribuir los datos sobre los servidores.

• Uso eficiente de recursos: Aprovecha las nuevas tecnologías, como


discos de estado sólido, el uso eficiente de la memoria RAM y los sistemas
distribuidos.

• Escalabilidad horizontal: Consiste en la posibilidad de aumentar el


rendimiento del sistema simplemente añadiendo más nodos, sin necesidad
en muchos casos de realizar ninguna otra operación más que indicar al
sistema cuáles son los nodos disponibles. Muchos sistemas NoSQL
permiten utilizar consultas del tipo Map-Reduce, las cuales pueden
ejecutarse en todos los nodos a la vez (cada uno operando sobre una
porción de los datos) y reunir luego los resultados antes de devolverlos.

• No generan cuellos de botella: el problema de fondo de los sistemas


SQL, es que deben de transcribir cada sentencia para poder ser ejecutada
y, cada sentencia compleja requiere, además de un nivel de ejecución más
concreto para poderse llevar a cabo, por lo que constituye un punto de
entrada común, único y conflictivo en base a rendimiento.

• Libertad de Esquema: Estas bases de datos al no tener un esquema


preestablecido o rígido se permite mayor libertad para modelar los datos.

• Consultas simples: Las consultas en su gran mayoría son basadas en API


enviando peticiones HTTP, generando así que requieran menos
operaciones siendo más simples y eficientes.

• Estructura dinámica: La primera característica significa que los datos no


tienen una definición de atributos fija, es decir: Cada registro puede
contener una información con diferente forma cada vez, pudiendo así
almacenar sólo los atributos que interesen en cada uno de ellos, facilitando
el polimorfismo de datos bajo una misma colección de información.

¿Que hace a NoSQL diferente de SQL?

Las bases de datos NoSQL poseen varias diferencias con respecto a las bases
relacionales entre las cuales se pueden destacar los siguientes aspectos:

Aspecto Bases de Datos Relacionales Bases de datos NoSQL

Modelo de Datos El modelo relacional normaliza los datos en tablas Las bases de datos NoSQL no suelen contener
conformadas por filas y columnas. Un esquema un esquema. Se suele utilizar una clave de
define estrictamente las tablas, las filas, las partición para recuperar valores, conjuntos de
columnas, los índices, las relaciones entre las tablas columnas o documentos JSON o XML
y otros elementos de las bases de datos. semiestructurados, así como otros documentos
que contengan atributos de elementos
relacionados.

Propiedades ACID Los RDBMS tradicionales admiten las propiedades Habitualmente, las bases de datos NoSQL
ACID de una base de datos relacional. intercambian algunas de las propiedades ACID
de los RDBSM. Estas características convierten
las bases de datos NoSQL en una excelente
opción para cuando los SGBD detectan
desafíos a la hora de resolver limitaciones de
desempeño, escalabilidad, complejidad
operativa y el aumento de los costos de
administración y soporte.

Desempeño Normalmente, el desempeño depende del El desempeño es, por lo general, depende del
subsistema de disco. Es necesaria la optimización tamaño del clúster de hardware subyacente, la
de consultas, índices y estructura de tabla para latencia de red y la aplicación que efectúa la
lograr el máximo desempeño. llamada.

Escalado Lo más sencillo es ampliar la escala con un Está diseñada para escalar horizontalmente con
hardware más rápido. Se requieren inversiones clústeres distribuidos de hardware de bajo costo
adicionales para que las tablas relacionales a fin de aumentar el nivel de procesamiento sin
abarquen un sistema distribuido. incrementar la latencia.
Solicita almacenar y recuperar datos que están Las API basadas en objetos permiten a los
comunicados mediante consultas que se ajustan a desarrolladores almacenar y recuperar
API un lenguaje de consulta estructurado (SQL). Estas fácilmente estructuras de datos en memoria.
consultas se analizan y ejecutan con RDBMS. Las claves de partición permiten que las
aplicaciones busquen pares de clave-valor,
conjuntos de columnas o documentos
semiestructurados que contengan atributos y
objetos de aplicación serializados
Herramientas Las bases de datos SQL normalmente ofrecen un Las bases de datos NoSQL suelen ofrecer
amplio conjunto de herramientas que simplifican el herramientas para administrar los clústeres y el
desarrollo de aplicaciones de base de datos. escalado. Las aplicaciones representan la
interfaz primaria de los datos subyacentes.

Figura 3 – Tabla Diferencia SQL con respecto a NoSQL [3]

ACID vs BASE

ACID

Las propiedades ACID son aquellas características que debería tener toda
transacción en una base de datos. García (2016) afirma: “Una transacción es un
conjunto de instrucciones que deben ejecutarse como si fueran una sola de tal
forma que, si falla alguna y existe peligro de que la información en la base de
datos quede en un estado inconsistente, se pueda revertir y volver justo al estado
en el que se inició la transacción.”(p.9)

Se creó las propiedades ACID debido a que las transacciones se ejecutan


individualmente, el problema reside fundamentalmente en la posibilidad de realizar
transacciones simultaneas sobre un mismo dato, por tanto, puede generar
problemas de simultaneidad y más concretamente de concurrencia en los datos.
Garantizando así el correcto funcionamiento y la calidad de los datos
almacenados.

• Atomicidad: Todas las operaciones en la transacción serán completadas o


ninguna lo será.
• Consistencia: La base de datos estará en un estado válido tanto al inicio
como al fin de la transacción.
• Aislamiento: La transacción se comportará como si fuera la única
operación llevada a cabo sobre la base de datos (una operación no puede
afectar a otras).
• Durabilidad: Una vez realizada la operación, ésta persistirá y no se podrá
deshacer aunque falle el sistema
Precisamente, la tecnología NoSQL parte de la premisa de que no todas las bases
de datos necesitan cumplir con las propiedades ACID, de ahí la ganancia en
simplificación y, consecuentemente, en tiempo de respuesta y escalabilidad.

BASE

Las propiedades BASE con respecto a las bases de datos NoSQL permiten una
mayor disponibilidad, perdiendo la consistencia y el aislamiento, a favor de la
disponilidad y del rendimiento.

• Basically Available: Permite que el sistema aún funcione a pesar si alguna


parte falle debido a que el almacenamiento sigue los principios de
distribución y replicación.
• Soft State (Estado suave): Los datos se encuentran en constante cambio
debido a que los nodos no tienen que estar consistentes gran parte del
tiempo.
• Eventual Consistency: Los datos eventualmente serán consistentes entre
todos los nodos en las bases de datos, pero no en cada transacción.

Teorema de CAP

El teorema de CAP o teorema Brewer, indica que en un sistema de bases de


datos distribuido se puede tener dos de las siguientes propiedades:

• Consistencia: Se refiere a la integridad de la información.


• Disponibilidad: Indica si el sistema está disponible siempre.
• Tolerancia a particionamiento: Indica si el sistema continúa funcionando,
aunque existe fallos o caídas parciales que dividan el sistema.

Clasificación de las bases de datos NoSQL según el teorema de CAP

• AP: Son las bases de datos que cumplen con la disponibilidad y tolerancia
a particiones, pero no la consistencia, al menos no de forma completa.
Algunas de ellas consiguen una consistencia parcial a través de la
replicación y la verificación.
• CP: Son las bases de datos que cumplen con la consistencia y tolerancia a
particiones. Para lograr la consistencia y replicar los datos a través de
nodos, no permite la disponibilidad.
• CA: Son las bases de datos que cumplen con la consistencia y
disponibilidad, pero poseen fallas en la tolerancia a particiones. Este
problema lo suelen gestionar replicando los datos.

Figura 4 – Teorema CAP en bases de datos NoSQL [4]

De acuerdo con el gráfico mostrado a continuación las bases de datos NoSQL se


acoplan a este teorema, de acuerdo con su tipo si son Clave-Valor aplica la AP, si
son documentales toma CP, si son orientados a columnas AP, esto debido a que
este tipo de bases de datos manejan una arquitectura tanto en columnas como en
clave-valor y por último de tipo orientado a grafos usa CA.

Cabe recalcar que es posible tener sistemas de bases de datos que cumplan con
las tres condiciones, sino que debido a problemas de infraestructura y de dinero
no es viable su rentabilidad.
Tipos de Bases de Datos NoSQL

Se han creado varias herramientas de bases de datos NoSQL para soportar las
necesidades especificas actuales de las organizaciones, de las cuales se dividen
en cuatro categorías:

• Bases de datos Clave-Valor:

Este tipo de bases de datos almacenan información en tablas hash. Las tablas
hash son estructuras de datos que se utilizan para almacenar un número elevado
de datos sobre los que se necesitan operaciones de búsqueda e inserción muy
eficientes. Una tabla hash almacena un conjunto de pares “(clave, valor)”. La clave
es única para cada elemento de la tabla y es el dato que se utiliza para buscar un
determinado valor. [5]

Figura 5 – Bases de datos Clave-valor [6]

Alguna de sus ventajas radica que proporciona mecanismos de almacenamiento


en caché, lo que mejora el rendimiento. Los datos se almacenan en forma de
String, en documentos JSON o BLOB(objeto grande binario). La base de datos
NoSQL famosa que maneja Key Value es DynamoDB de Amazon, Redis, Oracle
BerkeleyDB.

DynamoDB

Herranz (2014) afirma: “El servicio de Amazon permite únicamente crear nuevas
tablas en las que alojar los datos, e interactuar con ellas mediante aplicaciones a
través de APIs (interfaces de programación que proporciona Amazon para poder
añadir, actualizar, borrar y consultar información de la base de datos.” (p.57). Es
decir, no se tiene acceso al código fuente, ni al hardware ni a los servicios que
hacen funcionar a la base de datos.

“DynamoDB ha sido implementado como un sistema particionado con replicación y


ventanas muy concretas de consistencia. Está hecho de esta manera para poder
ofrecer una alta disponibilidad a cambio de una consistencia eventual. Además,
DynamoDB ha sido diseñado para estar siempre disponible para escribir, es decir,
en cualquier momento en cualquier nodo se puede realizar una escritura en base
de datos.” Herranz (2014, p.59). El diseño de esta base de datos fue pensado en
un esquema de replicación que incluso permita escribir teniendo errores de
comunicación entre las máquinas, dejando la consistencia inmediata entre
servidores en un segundo plano. Por esa razón, DynamoDB es una base de datos
altamente disponible para escrituras.

Figura 6 – Particiones en DynamoDB filtrando por una función hash [7]

• Bases de Datos Documentales:

Las bases de datos documentales son muy similares a las bases de datos Clave-
valor debido a que no tienen un esquema definido, su principal diferencia con
respecto a clave-valor es en la forma de almacenamiento ya que usa archivos con
formatos JSON, XML. Otra diferencia que cabe resaltar es que la columna puede
almacenar diferentes atributos y los tipos de atributos pueden cambiar de fila en
fila.

Las bases de datos documentales manejan un concepto nombrado como


“Colecciones” que en sí son parecidas a las tablas, pero se distingue debido a que
almacena texto, mensajes de correo, ficheros multimedia.

La herramienta para bases de datos documentales más popular es MongoDB.

Figura 7 – Bases de datos documentales [8]

MongoDB

Esta base de datos documental maneja un concepto llamado “replicación” que


según Herranz (2014) afirma: “Se llama replicación al proceso de sincronización
de datos entre múltiples servidores. Básicamente consiste en tener copias
idénticas de los datos en varios servidores.” (p.117). Esto es con el fin de
incrementar la capacidad de lectura, tener tolerancia a fallos en caso de posibles
caídas de los servidores, si el servidor maestro cae, uno de los servidores
esclavos puede ocupar su lugar.

“La forma que tiene MongoDB de mantener replicación entre sus nodos es a
través de lo que se conoce como replica set. Un replica set es un conjunto de
servidores que siguen una arquitectura de maestro – esclavo. Existe un servidor
maestro y uno o varios esclavos. El servidor maestro puede realizar operaciones
de escritura y lectura, pero los esclavos únicamente permiten la lectura.” Herranz
(2014, p.117)

Teniendo esto en cuenta luego MongoDB maneja el “Sharding” que según Bellido
(S.F) “El sharding hace referencia al proceso de repartir los datos de la base de
datos entremúltiples nodos. El sharding es lo que tradicionalmente se conoce
como particionado horizontal.” (p.44). Mientras que en la replicación buscar
realizar copias de los datos y repartirlos entre los nodos, el sharing busca
particionar las tablas y los distribuye entre múltiples servidores nombrados como
shards, esto a que se hace mas grandes y son más difíciles de particionar.

Por último, manejaría un clúster para vincular tanto el proceso de sharding, la


erutación de las peticiones y la debido a la configuración de este.

Figura 8 – Arquitectura de MongoDB [9]

• Bases de datos en Columnas:

Este tipo de base de datos, almacenan sus datos en forma de columnas, cabe
recalcar que en las bases de datos relacionales se almacenan en filas. Se agrupan
por una clave que se utiliza para identificar el número de columnas que posea la
base de datos. Uno de sus aspectos importantes es, se gana mucha velocidad de
lectura, pero no es tan eficiente para realizar escritura, esto debido a la inserción y
actualización de los datos no es tan rápida como otras.

Cada columna contiene filas que muestra sus atributos con sus respectivos
valores, ordenados y separados por comas.

Figura 9 – Bases de datos en Columnas [10]

Cassandra

Cassandra ha sido desarrollada por la compañia Facebook hasta que su código


fue open source en el año 2008. Desde 2010 forma parte de los proyectos de
primer nivel de Apache.

Implementa una arquitectura Peer-to-Peer, de esta manera hace que los nodos
sean iguales entre ellos, sin haber nodos maestro-esclavo, es decir, que no
posean permisos de escritura ni lectura, sino que todos los nodos posean las
mismas propiedades. Herranz (2014) afirma que “El diseño peer-to-peer hace que
el sistema escale de una forma mucho más sencilla, además de mejorar la
disponibilidad de los datos, ya que la pérdida de un nodo no supone una
degradación del servicio demasiado elevada. Agregar nuevos nodos al clúster se
convierte en una tarea casi trivial, puesto que todos los nodos desempeñan el
mismo rol, lo único que hay que hacer es añadir un nodo nuevo al clúster y él solo
aprenderá la topología existente en ese momento, y cuando esté preparado, se
unirá al anillo de servidores para ser un miembro más del anillo“. (p.107).

Al igual que la base de datos DynamoDB, Cassandra particiona la información a


través de todo el clúster utilizando un token o clave única calculada para cada fila
por una función hash. Cada dato de la base de datos es replicado N veces entre
los nodos del clúster, donde N es el factor de replicación.

Otro aspecto a tener en cuenta es su lenguaje de consultas, Cassandra usa CQL


(Cassandra Query Language) para acceder a los datos siendo derivado de SQL,
para acceder a este lenguaje se pude a través de la Shell de CQL o usando
herramientas con interfaz gráfica como DevCenter.

Figura 10 – Cassandra clúster de nodos [11]

• Bases de datos Orientados a Grafos:

Estas bases de datos reemplazan las tablas relacionales por grafos relacionales,
es decir, que cada elemento tiene un puntero directo hacia elementos adyacentes,
por lo que no es necesario realizar consultas mediante los índices o llaves
primarias.

Un grafo no es más que un conjunto de nodos que mantienen una serie de


relaciones entre sí. Las relaciones tienen nombre y sentido, y siempre tienen un
nodo de inicio y uno de fin. Los recorridos son consultas que se realizan sobre una
parte o la totalidad del grafo. [12]

Las relaciones de los grafos se definen por clave-valor, por tanto, añaden más
información adicional para aplicar algoritmos en cuanto a filtros para encontrar el
camino más corto, el grado de conectividad de los nodos, o la realización de
consultas

Figura 11 – Funcionamiento de las bases de datos orientadas a grafos [13]

Las siguientes expresiones definen las funciones que cumplen cada uno de estos
elementos relacionados con los grafos:

• Un grafo almacena datos en nodos


• Un grafo almacena datos en relaciones
• Los nodos se organizan en relaciones
• Los nodos y relaciones tienen propiedades
• Un recorrido navega un grafo
• Un recorrido identifica rutas
• Las rutas ordenan nodos
• Los índices son recorridos especiales para encontrar nodos o relaciones

El rendimiento de una base de datos orientada a grafos no se deteriora con el


crecimiento de la base de datos, ni con consultas o procesamientos muy
intensivos de los datos. Esto es debido a que el rendimiento será siempre
proporcional al tamaño y el rendimiento que tenga el recorrer la parte del árbol que
esté implicada, y no el tamaño global del grafo. [14]
Neo4j

Neo4j es una base de datos basada en grafos, escrita en java que ha sido
diseñada para correr tanto en modo single-node, es decir, solamente un nodo,
como también en un modo distribuido en el que siempre existe un maestro como
nodo principal del clúster, existiendo la posibilidad de tener también cero, uno o
más esclavos.

La estructura que sigue Neo4j para proporcionar al sistema de alta disponibilidad


es similar a las otras bases de datos que se suele emplear de maestro-esclavo,
con la salvedad de que todos los nodos del sistema pueden recibir operaciones de
escritura, y no solo el maestro.

Cuando un nodo arranca, examinará sus ficheros de configuración. Si pertenece


ya a un clúster, pasará a formar parte del mismo como esclavo. En caso de que
pertenezca a un clúster que no exista, se creará y se colocará como maestro.
Cuando un esclavo se hace cargo de una escritura en el sistema, de forma
síncrona deberá escribirla también en el maestro. Para ello, el esclavo debe estar
completamente actualizado con el maestro, es decir, mantener exactamente las
mismas bases de datos. Una vez que el maestro haya finalizado su escritura, el
esclavo comenzará su transacción. A la vez que se está ejecutando la operación
de escritura anteriormente descrita, el maestro puede implementar una replicación
optimista. La replicación optimista es un método por el cual, en el mismo momento
en el que el maestro intenta realizar la escritura en su base de datos local, también
intenta hacer llegar a los esclavos los nuevos datos. [15]
Conclusiones

• Las bases de datos NoSQL al ser una tecnología que maneja muchos datos
en masa y al emplearse de la mejor manera, resulta ser una herramienta
valiosa que permitirá generar valor a las organizaciones y extraer
conocimiento de ellos de forma eficiente.
• Estas bases de datos son muy flexibles y versátiles, proponiendo
soluciones a problemas que de otra manera han resultado ser difíciles de
abordar con las bases de datos tradicionales. Esta tecnología no llegará a
reemplazar las bases de datos relacionales, solo busca otras opciones para
la manipulación de datos.
• Los tipos de bases de datos NoSQL responden a las necesidades actuales,
por lo que se convierten en una alternativa, debido a su capacidad y
velocidad, que son dos principios que priman hoy en el mundo de los
sistemas.
Referencias

[1] Internet Live Stats (s.f). Internet Live Stats [Figura]. Recuperado de
https://www.internetlivestats.com/

[2] Arcitura Education Inc (s.f). Módulo 2: Conceptos de análisis y tecnología de


Big Data [Figura]. Recuperado de
http://aulavirtual.unilibre.edu.co/ingenieria/pluginfile.php/37295/mod_resource/cont
ent/1/Modulo_2_Workbook_ES.pdf

[3] AWS (s.f). ¿Qué es NoSQL? [Figura]. Recuperado de


https://aws.amazon.com/es/nosql/

[4] Genbeta(2017). NoSQL: clasificación de las bases de datos según el teorema


CAP. Recuperado de https://www.genbetadev.com/bases-de-datos/nosql-
clasificacion-de-las-bases-de-datos-segun-el-teorema-cap

[5] Departamento de Ingeniería Telemática Universidad Carlos III de Madrid


(2011).Tablas Hash. Recuperado de
http://www.it.uc3m.es/abel/as/MMC/M2/HashTable_es.html

[6] Martin, S.(2017) Bases de datos NoSQL: Guía definitiva. Recuperado de


https://blog.pandorafms.org/es/bases-de-datos-nosql/

[7] AWS (s.f).Particiones y distribución de datos.[Figura]. Recuperado de


https://docs.aws.amazon.com/es_es/amazondynamodb/latest/developerguide/How
ItWorks.Partitions.html

[8] acens(2014). Bases de datos NoSQL. Qué son y tipos que podemos encontrar
[Figura]. Recuperado de https://www.acens.com/wp-content/images/2014/02/bbdd-
nosql-wp-acens.pdf

[9] Slideshare(2014).Mongodb Administration. [Figura]. Recuperado de


https://www.slideshare.net/mongodb/mongodb-administration-101

[10] Pech, F (2011). Bases de datos NoSQL. [Figura]. Recuperado de


http://www.tamps.cinvestav.mx/~fpech/ddb/files/slides/nosql.pdf

[11] Zaforas, M (2016). Cassandra, la dama de las bases de datos


NoSQL.[Figura]. Recuperado de https://www.paradigmadigital.com/dev/cassandra-
la-dama-de-las-bases-de-datos-nosql/

[12] Herranz, R (2014). Bases de datos NoSQL: Arquitectura y Ejemplos de


Aplicación. Recuperado de https://e-
archivo.uc3m.es/bitstream/handle/10016/22895/PFC_raul_herranz_gomez_2014.p
df?sequence=1&isAllowed=y

[13] López, D(2012).Bases de datos no relacionales (NoSQL). Recuperado de


https://es.slideshare.net/dipina/nosql-cassandra-couchdb-mongodb-y-neo4j

[14] Herranz,R(2014). Bases de datos NoSQL: Arquitectura y ejemplos de


aplicación. Recuperado de https://e-
archivo.uc3m.es/bitstream/handle/10016/22895/PFC_raul_herranz_gomez_2014.p
df?sequence=1&isAllowed=y

[15] BBVA API_Market(2015). Neo4j: que es y para que sirvauna base de datos
orientada a grafos. Reccuperado de https://bbvaopen4u.com/es/actualidad/neo4j-
que-es-y-para-que-sirve-una-base-de-datos-orientada-grafos

Você também pode gostar