1 - 23 - Base de Datos Nosql Persistencia Poliglota PDF

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 11

Arquitecturas de Persistencia Polı́glota

Caso de estudio:
MongoDB y Neo4j

Abelardo Moreno David Fernandez Alberto Suarez


Escuela de Computación Escuela de Computación Escuela de Computación
Licenciatura en Computación Licenciatura en Computación Licenciatura en Computación
Universidad Central de Venezuela Universidad Central de Venezuela Universidad Central de Venezuela
Caracas, Venezuela Caracas, Venezuela Caracas, Venezuela
Email: abelardo.moreno@gmail.com Email: davidchuki58@gmail.com Email: albertosuarez25@gmail.com

Resumen—En los últimos años se ha visto un auge en el uso 2. Origen


de los sistemas de bases de datos NoSQL y junto a ello se ha
popularizado la idea de aplicaciones de Persistencia Polı́glota. Debido a que persistencia polı́glota es una idea y forma
Esta consiste en que gracias a la gran variedad y cantidad de de trabajo, no una aplicación ni una tecnologı́a especı́fica,
datos, y los diversos servicios que pueden dar las aplicaciones esta no tiene un origen claro; no hay registros de cuales
hoy en dı́a, es probable que un único tipo de sistema de empresas o aplicaciones fueron las primeras en trabajar de
almacenamiento no sea capaz de cubrir de forma eficiente todas este modo, pero si existe registros de cómo el término se
las necesidades de la aplicación. En este articulo se dará una originó.
idea general de las Aplicaciones de Persistencia Polı́glota En 2006, Neal Ford (Director, Software Architect, y
dando información acerca de su funcionamiento, arquitectura Meme Wrangler en ThoughtWorks) [2] acuñó el término
y motivación; y ademas se hablara especı́ficamente de como programación polı́glota, para expresar la idea de que las
aplicar la Persistencia Polı́glota con MongoDB y Neo4j. aplicaciones deberı́an ser escritas en una mezcla de idiomas
Palabras Clave: NoSQL, Persistencia Polı́glota, MongoDB, para aprovechar el hecho de que diferentes lenguajes son
Neo4j, Neo4j Doc Manager adecuados para abordar diferentes problemas. Aplicaciones
complejas combinan diferentes tipos de problemas, por lo
que escoger el lenguaje adecuado para cada trabajo puede
ser más productivo que tratar de encajar todos los aspectos
1. ¿Que es Persistencia Polı́glota? en un solo idioma [3].
Con el paso del tiempo, se ha aplicado este método de
trabajo al área de base de datos y este ha ido evolucionando
Para entender mejor a que se refiere con este término en este campo, manteniendo la idea original la cual es
podrı́amos definir la palabra polı́glota, su definición es: trabajar con distintos tipos de tecnologı́as pero ahora en vez
alguien que habla o escribe varios idiomas; Entonces de lenguajes de programación se utilizan distintas base de
basado en esa definición pero llevandolo a base datos, datos dentro de una misma aplicación, buscando guardar los
podrı́amos definir persistencia polı́glota como un conjunto datos de la forma más optima, ya no se aplica el término de
de aplicaciones que utilizan varias tecnologı́as básicas programación y se toma el de persistencia porque estamos
de base de datos que se usan para resolver problemas trabajando con el objetivo de guardar una gran cantidad
complejos de almacenamiento. de datos a través del tiempo, al final utilizamos el término
Diferentes bases de datos están diseñadas para resolver persistencia polı́glotas para definir este enfoque hı́brido.
diferentes problemas. El uso de un único motor de base de
datos para todos los requisitos suele conducir a soluciones
no eficientes [1]; por lo tanto estos problemas complejos se
fragmentan en partes más pequeñas y se aplican diferentes 3. Arquitectura
modelos de base de datos según las necesidades especı́ficas
de cada requerimiento del problema. Pero esta solucion Hay distintas enfoques para aplicar y estructurar
tambien trae inconvenientes pues es necesario que la persistencias polı́glota para resolver los problemas que
aplicación o un servicio maneje la comunicación con los tenga la organización con su aplicaciones y base de datos,
diferentes tipos de almacenamientos y análisis de datos. los distintos tipos de enfoques son:
3.1. Enfoque sin Persistencia Polı́glota 3.3. Enfoque Usando Servicios

La aplicación utiliza un único almacén de datos, en este En este enfoque se utilizan servicios para englobar una
enfoque se obliga al almacén a responder ante los distintos base de datos esto sustituyen la comunicación directa con
tipos de datos que son recibidos [fig1]. la base de datos. Esto permite que la aplicación no se
encargue de guardar los datos, todos los datos puedan ser
guardadas en un lugar del servicio y consultadas por todas
las aplicaciones . Las API proporcionadas por el servicio
son más útiles que una única aplicación que habla con varias
bases de datos[fig3].

Figura 1. Ejemplo de aplicación ecommerce con una base de datos RBMS


que se encarga de todos los requerimientos [1]

3.2. Enfoque con Persistencia Polı́glota


Figura 3. Ejemplo de aplicación ecommerce con un servicio que engloba
la base de datos de grafos [1]
No es necesario que la aplicación utilice un único
almacén de datos para todas sus necesidades. Se crean
diferentes bases de datos para diferentes propósitos. La 3.4. Enfoque Usando Servicios en todas las Base de
aplicación se encarga de mantener la consistencia de la bases Datos
de datos[fig2].
Este enfoque es como el anterior pero se envuelve todas
las bases de datos en servicios. Permite que las bases de
datos dentro de los servicios evolucionen sin tener que
cambiar las aplicaciones dependientes[fig4].

3.5. Enfoque Usando Dos capas de Servicios


En este enfoque se aplica las caracterı́sticas del enfoque
anterior pero se agregan capas adicionales de servicios.
La nueva capa de servicio agregada se le trata como un
maestro que administrara las capas de nivel inferior. Este
servicio maestro permite que la aplicación se desvincule
completamente de la tarea de encargarse de mantener la
consistencia y el análisis de los datos de las distintas base
de datos, ahora el servicio maestro es el que mantiene la
consistencia y la entronización entre las distintas base de
datos [fig5].

3.6. Enfoque Expandiendo Funcionalidades


Figura 2. Ejemplo de aplicación ecommerce con varias bases de datos para
cada requerimiento [1] Existen casos en los que no podemos cambiar el al-
macenamiento de datos. Debido a las aplicaciones legadas
Figura 4. Ejemplo de aplicación ecommerce con servicios en cada base de
datos [1]
Figura 6. Ejemplo de aplicación ecommerce con una base de datos RBMS
y una base de datos SOLR paralela indexar y optimizar la primera [1]

4.1. Ventajas

• Mejoras de rendimiento, ya que se utiliza una Base


de Datos dependiendo de las necesidades funciona-
les que se tengan.
• Nos permite manejar mayor volúmen de datos, debi-
do a que las Bases de Datos NoSQL están diseñadas
para operar en cluster. Esto nos permite un escala-
miento horizontal.
• Las consultas son mucho más flexibles porque se
adaptan a la necesidad y están directamente enla-
zadas al formato de datos manejado por la base de
datos.
Figura 5. Ejemplo de aplicación ecommerce con servicios en cada base
de datos y una capa adicional llamada servicio maestro que engloba los 4.2. Desventajas
demás servicios

• Dificultad para que la data almacenada entre las


existentes y su dependencia del almacenamiento de da- distintas bases de datos sea consistente.
tos existente. En estos casos podemos aplicar persistencia • Ahora hay que decidir cuál Base de Datos se va
polı́glota de una forma diferente. en vez de una base de datos a utilizar de entre todas las que hay disponibles,
que maneje directamente requerimientos de la aplicación, esto puede traer problemas si no se tiene mucha
podemos agregar una base de datos que trabaje en paralelo experiencia.
y ayude a una base de datos ya existentes, esto le agrega • La complejidad de la aplicación aumenta debido a
funcionalidades al sistema que ya tenemos para mejorar su que ahora hay que manejar mayor cantidad de Bases
desempeño[fig6]. de Datos y ademas que funcionen en conjunto todas
ellas.
• Se adquieren nuevas responsabilidades administrati-
4. Ventajas y Desventajas vas porque ahora hay que estar a cargo de muchas
mas Bases de Datos y asegurar su funcionamiento.
La Persistencia Polı́glota presenta una serie de ventajas • Si no se tiene ninguna experiencia con las Bases de
y desventajas que tienen que ser analizadas al momento de Datos que se quieren utilizar es necesario entrena-
querer utilizar la Persistencia Polı́glota en algún proyecto de miento, el cual lleva cierto tiempo y afecta en parte
software. al desarrollo.
The real world of Database Administrator study by 5.2. Rapid Time to Market
Dell (March 2015) [4]
Si se necesita un Proyecto de Software que salga lo más
rápido al mercado entonces necesitas que la productividad
sea mucho mayor, por lo tanto si se cuenta con la suficiente
experiencia el uso de Persistencia Polı́glota serı́a una buena
opción, ya que para cada necesidad que se tenga se utili-
zarı́a la tecnologı́a más adecuada y esto traerı́a consigo un
incremento en la productividad.

5.3. Data Intensive


Figura 7. ¿De cuántas Bases de Datos son responsables los Administradores
de Bases de Datos ? [4]
Cuando hablamos de Data Intensive nos podemos referir
a:
• Gran cantidad de data.
• Gran disponibilidad.
• Gran cantidad de tráfico: tanto lectura como escri-
tura.
• Relaciones muy complejas.
Cualquiera de estos aspectos nos puede dar a entender que
necesitamos algún tipo de almacenamiento No-Relacional,
pero es en realidad la naturaleza de la data lo que nos
permitirá escoger si usar Persistencia Polı́glota o no.

6. Casos de Uso

Figura 8. ¿En términos de Administración de Bases de Dato, en los Un caso de uso muy común de Persistencia Polı́glota es
próximos 3 años, cuáles serán los retos para los administradores de Bases el de una plataforma de comercio electrónico (e-commerce).
de Datos ? [4] Esta plataforma tratará muchos tipos de datos (por ejemplo,
carrito de compras, inventario, pedidos completados, etc.).
[5]
5. Consideraciones

Existen varias consideraciones que se pueden tomar 6.1. Modelo Tradicional


antes de querer utilizar Persistencia Polı́glota en alguno de
nuestros proyectos. A continuación se van a explicar cada Un primer enfoque serı́a almacenar todos estos datos en
una de ellas. una sola Base de Datos [fig9], lo que requerirı́a una gran
cantidad de conversión de datos para que el formato de los
datos sea igual.
5.1. Strategic Project

La mayorı́a de los proyectos de software de una empresa


son denominados Utility Project, es decir; que son aquellos
desarrollos que no le traen ninguna ventaja competitiva en
el mercado a la empresa pero son importantes de todos
modos. Para este caso de proyectos (Utility Project), no
es tan beneficioso usar Persistencia Polı́glota debido a que
la complejidad y el tiempo de desarrollo serı́a mayor y a
su vez no valdrı́a tanto la pena hacer dicho esfuerzo. En
cambio para los proyectos denominados Strategic Project si
se verı́a el beneficio, ya que en comparación al anterior estos
si traen alguna ventaja competitiva a la empresa y por ende Figura 9. Modelo Tradicional de Desarrollo en el que se usa una sola Base
serı́a de gran utilidad usar las mejores herramientas para su de Datos
desarrollo.
6.2. Persistencia Polı́glota

Mediante Persistencia Polı́glota se pueden almacenar los


datos en la base de datos más adecuada para cada tipo de
datos [fig10].

Figura 12. Interfaz Gráfica de Wanderu

Además, ellos también necesitan ser capaces de buscar el


Figura 10. Mediante Persistencia Polı́glota se observan las distintas Bases camino mas óptimo desde el origen hasta el destino. Esto es
de Datos utilizadas para cada funcionalidad
perfecto para una base de datos orientada a grafos como por
ejemplo: Neo4j, ya que Neo4j puede manejar las relaciones
Por lo tanto, estamos utilizando una mezcla de solu-
entre cada una de las rutas o trayectos.
ciones RDBMS (por ejemplo, SQL Server) con soluciones
Wanderu no querı́a forzar MongoDB (un almacén de datos
NoSQL de las cuales hay cuatro tipos: Valor-clave, Do-
basado en documentos) para que manejara las relaciones de
cumento, Gráfico, Columna (ver Tipos de bases de datos
estilo gráfo porque la implementación habrı́a sido costosa
NoSQL). Una guı́a [fig11] sobre el tipo de base de datos a
e ineficiente. En su lugar, utilizaron un enfoque de persis-
utilizar en función de la funcionalidad de los datos:
tencia polı́glota para capitalizar las fortalezas de cada uno,
decidiendo usar tanto MongoDB como Neo4j juntos. [6]

7.2. Twitter

Figura 11. Cuadro con cada una de las funcionalidades de la aplicación


e-commerce y porqué se usó cada una de las Base de Datos

7. Trabajos Relacionados
Figura 13. Interfaz Gráfica de Twitter
A continuación se presentan 3 ejemplos de desarrollos
de software que han optado por la persistencia polı́glota y Twitter [fig13] es un servicio de microblogging,
tienen gran éxito en la actualidad. con sede en San Francisco, California, con filiales en
San Antonio (Texas) y Boston (Massachusetts) en Estados
7.1. Wanderu Unidos. Twitter, Inc. fue creado originalmente en California,
pero está bajo la jurisdicción de Delaware desde 2007.
Wanderu [fig12] es una aplicación web que provee a los Desde que Jack Dorsey lo creó en marzo de 2006, y lo
usuarios la búsqueda de tickets para bus y tren, con trayectos lanzó en julio del mismo año, la red ha ganado popularidad
que pueden combinar múltiples compañı́as de transporte. La mundial y se estima que tiene más de 500 millones de
data de las rutas está almacenada en JSON, lo que permite usuarios, generando 65 millones de tweets al dı́a y maneja
que una Base de Datos como MongoDB sea una buena más de 800 000 peticiones de búsqueda diarias. Ha sido
solución para almacenar dichas rutas. denominado como el ”SMS de Internet”. [7]
La red permite enviar mensajes de texto plano de corta Entre las tecnologı́as de almacenamiento que utiliza
longitud, con un máximo de 140 caracteres, llamados actualmente LinkedIn tenemos [10]:
tweets, que se muestran en la página principal del usuario.
• Oracle para almacenar la mayorı́a de sus datos.
Los usuarios pueden suscribirse a los tweets de otros
• Voldemort (una Base de Datos clave-valor) en la cual
usuarios – a esto se le llama ’seguir’ y a los usuarios
almacenan los datos de los perfiles de los usuarios
abonados se les llama ’seguidores’, ’followers’ y a veces
y ası́ obtenerlos mucho más rápido.
tweeps’ (’Twitter’ + ’peeps’, seguidores novatos que aún no
han hecho muchos tweets). Por defecto, los mensajes son
públicos, pudiendo difundirse privadamente mostrándolos 8. Caso de Estudio: MongoDB y Neo4j
únicamente a unos seguidores determinados. Los usuarios
pueden twitear desde la web del servicio, con aplicaciones Hasta ahora hemos hablado de la persistencia polı́glota
oficiales externas (como para teléfonos inteligentes), o de forma general, en esta sección ahondaremos en un caso
mediante el Servicio de mensajes cortos (SMS) disponible especifico, combinar las virtudes de MongoDB y Neo4j, el
en ciertos paı́ses. Si bien el servicio es gratis, acceder a él porque y como se combinarı́an estos sistemas manejadores
vı́a SMS comporta soportar tarifas fijadas por el proveedor de base de datos.
de telefonı́a móvil. [7]
8.1. MongoDB
Entre las tecnologı́as de almacenamiento que utiliza
actualmente Twitter tenemos [8]: MongoDB[fig15] es una base de datos documental tra-
baja con archivos json, lo que permite que tenga un modelo
• MySQL para almacenar tanto tweets como usuarios. de datos flexible, provee alta disponibilidad gracias al shar-
• FlockDB (una Base de Datos orientada a grafos) en ding ó escalabilidad horizontal y puede almacenar una gran
la cual almacenan las relaciones entre los usuarios cantidad de datos y accederlos de forma rápida. [11]
(following, follower, etc). Tiene como desventaja el hecho de que realizar las consultas
• Redis para almacenar el timeline por su velocidad puede resultar ser un trabajo bastante complejo y tedioso.
para lectura y escritura.
• Cassandra se dice que se ha empezado a utilizar para
migrar lo que se tiene en MySQL y ası́ proveer una
mayor escalabilidad.

7.3. Linkedin

Figura 15. Colecciones en MongoDB [12]

8.2. Neo4j
Neo4j[fig16] es una base de datos de grafos, este im-
plementa los grafos de forma nativa, a diferencia de otros
sistemas manejadores de base de datos que no solamente
están dedicados al manejo de grafos. [13]
Figura 14. Interfaz Gráfica de Linkedin Tambien provee el lenguaje de consultas Cypher, que hace
que estás sean muy sencillas.
LinkedIn [fig14] es una comunidad social orientada a las Una base de datos de grafos tiene como fortaleza la repre-
empresas, a los negocios y el empleo. Partiendo del perfil de sentación de relaciones y el recorrido de caminos.
cada usuario, que libremente revela su experiencia laboral
y sus destrezas en un verdadero currı́culum laboral, la web 8.3. MongoDB + Neo4j
pone en contacto a millones de empresas y empleados.
Fundada en diciembre de 2002 por Reid Hoffman, Allen Ya una vez vistas las ventajas que nos ofrece cada siste-
Blue, Konstantin Guericke, Eric Ly y Jean-Luc Vaillant, ma manejador de base de datos, podemos darnos cuenta de
fue lanzada en mayo de 2003. [9] que si combinamos ambos[fig17] podemos tener la capaci-
dad de almacenar gran cantidad de datos de MongoDB junto
con el poder de representar las relaciones y los caminos entre
8.4. Conectando MongoDB con Neo4j

Existen muchas formas y métodos de conectar estos dos


sistemas manejadores de base de datos para que trabajen
conjuntamente, aquı́ solo estudiaremos haremos referencia
a las que hacen una conexión unidireccional de MongoDB
a Neo4j, es decir, en donde solo los datos son transferidos
de MongoDB a Neo4j.

8.4.1. ETL:. Un ETL o programa de extracción, transfor-


mación y carga, es la forma mas básica de transferir los
Figura 16. Grafo en Neo4j [14] datos de una base de datos a otra, pero es la que requiere mas
trabajo, depende completamente del desarrollador de que
forma sera implementado y las soluciones son a la medida,
nodos fácilmente de Neo4j en una sola aplicación. es decir, no siempre existe un único ETL que funcione para
Esto nos es de utilidad en por ejemplo una aplicación de cada caso.
cursos de una universidad[fig18], donde los cursos pueden
ser almacenados y manejados con MongoDB mientras que 8.4.2. APOC:. Otra forma de conectar MongoDB con
un sistema de recomendaciones de los cursos, basados en Neo4j es utilizando las APOC, acronimo de Awesome Pro-
los que ya se han visto con anterioridad, puede ser manejado cedures, estas son unas librerı́as que proveen herramientas
con Neo4j. para realizar la importación y exportación desde y hacia
Neo4j de forma mas sencilla, es una alternativa mas general
que el de un ETL, pero aun ası́ requiere de un gran trabajo
por parte del desarrollador. [16]

8.4.3. Neo4j Doc Manager:. Este método es el que habla-


remos de forma mas detallada en este articulo, se trata de
una herramienta proveı́da por los desarrolladores de Neo4j
para automatizar la transferencia de los datos de MongoDB
a Neo4j. [17]

8.5. Neo4j Doc Manager

Como se dijo anteriormente, esta es una herramienta


proveı́da por los desarrolladores de Neo4j. Esta herramienta
es una especie de extensión del Mongo Connector, que es la
Figura 17. Ejemplo de una aplicacion utilizando MongoDB y Neo4j [15] manera en la que MongoDB puede comunicarse con otros
lenguajes de programación o sistemas manejadores de base
de datos, pero no soporta de forma nativa la conexión con
Neo4j, es por esto que se tuvo que crear el Neo4j Doc
Manager.[fig19]
Usando el Neo4j Doc Manager, al momento de insertar un
nuevo documento en MongoDB, este es transformado de
forma inmediata a un grafo de Neo4j, permitiendo que los
datos sean compartidos de forma fácil y rápida entre ambos
manejadores de base de datos.

8.5.1. Requerimientos. Para utilizar el Neo4j Doc Manager


es necesario tener los siguiente programas instalados:
• MongoDB con un set de replicas.
• Neo4j.
• Mongo Connector.
• Neo4j Doc Manager.
Figura 18. El catalogo de cursos es manejado con MongoDB y las reco-
mendaciones con Neo4j [15] Ya con esto se puede empezar a trabajar con ambos
manejadores de base de datos.
Vemos que cada documento se le asigna un nodo, y no
existen relaciones entre ellos.[fig21]

8.6.2. Documento sin tomar en cuenta las consideracio-


nes. En este ejemplo, usamos un documento de MongoDB
que no ha sido modificado con las consideraciones para ha-
cer una buena conversión utilizando el Neo4j Doc Manager.
[fig22]

Figura 19. Conexion entre MongoDB y Neo4j utilizando el Neo4j Doc


Manager [15]

8.6. Neo4j Doc Manager: Consideraciones

Aunque el Neo4j Doc Manager nos permite automatizar


la conversión de los documentos de MongoDB a Neo4j, Figura 22. Documento sin seguir consideraciones
hay que tener en cuenta ciertas consideraciones para que
esta conversión ocurra de manera exitosa. Se puede ver de que la conversión no nos genero un
grafo que pueda ser utilizable, ya que hay nodos sueltos sin
8.6.1. Documento Simple. En este ejemplo podemos ver relaciones y no toda la información se encuentra desplegada
como se hace la conversión de un documento simple de como se quisiera.[fig23]
MongoDB. [fig20]

Figura 23. Grafo de documento sin seguir consideraciones

Figura 20. Documento simple 8.6.3. Consideraciones 1: Relaciones. Las relaciones son
representadas a través de los subdocumentos dentro de
un documento, es decir, por cada subdocumento se crea-
ra un nuevo nodo y una relacion hacia el, en este
ejemplo se puede observar un documento con múltiples
subdocumentos.[fig24]
Una vez insertado, se observa como el grafo creado po-
see un nodo con tres relaciones hacia tres nodos diferentes,
representando el documento de exposiciones con su infor-
mación como quien la dicta, en donde y los temas.[fig25]

8.6.4. Consideraciones 2: Relaciones con arreglos. Otra


Figura 21. Conversión en Neo4j manera de representar las relaciones es con los arreglos de
corresponde a su posición en el arreglo.[fig27]

Figura 24. Documento con múltiples subdocumentos


Figura 27. Grafo con relación a partir de arreglos de subdocumentos

8.6.5. Consideraciones 3: Relaciones entre diferentes co-


lecciones. La ultima consideración a tener, es la capacidad
de poder relacionar diferentes colecciones de MongoDB en
un solo grafo, para esto se debe de crear una referencia en
el documento hacia el documento de otra colección.
En la imagen se pueden ver como se referencia la colección
lugar con la colección personas.[fig28]

Figura 25. Grafo generado de documento con múltiples subdocumentos

Figura 26. Documento con arreglo de subdocumentos Figura 28. Colecciones distintas referenciandose

Vemos entonces que en Neo4j se creo un grafo en el


subdocumentos, en este caso por cada elemento del arreglo, que los nodos personas están relacionados con el nodo
se creara un nuevo nodo con una relacion hacia el.[fig26] lugar.[fig29]
Vemos entonces que el grafo generado posee un los
nodos que se corresponden a el arreglo de subdocumen- 8.6.6. Aplicaciones 1. Ya una vez vistas todas las conside-
tos, cada uno identificado con la relación bd0 y bd1 que raciones necesarias, podemos aplicarlas para crear un grafo
los han comprado.[fig32]

Figura 32. Grafo representando productos y clientes

A partir de este grafo podemos hacer consultas que


Figura 29. Grafo resultado de dos colecciones distintas referenciandose nos puedan decir que productos recomendar a los clientes,
a partir de los que ha comprado y los que otros clientes
tambien han comprado.[fig33]
que nos permita hacer consultas que nos puedan servir en
nuestras aplicaciones, en este ejemplo tenemos un grafo con
todos los estudiantes del curso y como estan relacionados
entre ellos.[fig30]

Figura 30. Grafo representando a los estudiantes del curso


Figura 33. Consulta de recomendaciones a un usuario
A partir de este grafo podrı́amos realizar una consulta
que nos diga, que en tal caso de que ocurra una epidemia y
el paciente 0 sea un miembro del grafo, que otros miembros 8.7. Conclusión
se infectarı́an.[fig31]
Una vez vistos todos los beneficios que posee la persis-
tencia polı́glota, no nos queda mas que llegar a la conclusión
de que las tecnologı́as tienden hacia este paradigma y que
en un futuro todas nuestras aplicaciones manejaran mas de
un sistema manejador de base de datos, lo que implicara
que nosotros como desarrolladores y administradores de
base de datos tengamos que ser capaces de manejar todos
estos diferentes manejadores y saber en que momento nos
conviene combinar un manejador con otro.

Referencias
[1] M. F. Pramod J. Sadalage, “Nosql distilled a brief guide to the
emerging world of polyglot persistence,” 2013, [Online; accessed 20-
Figura 31. Consulta representando la propagación de una epidemia may-2017].
[2] N. Ford, “about me,” 2006, [Online; accessed 20-may-2017].
8.6.7. Aplicaciones 2. En este ultimo ejemplo, tenemos un [3] ——, “Polyglot programming,” 2006, [Online; accessed 20-may-
grafo que representa los productos de una tienda y quienes 2017].
[4] E. King, “The real world of database administrator,” 2015, [Online;
accessed 17-may-2017].
[5] J. Serra, “What is polyglot persistence?” 2015, [Online; accessed 05-
may-2017].
[6] R. Boyd, “Polyglot persistence case study: Wanderu + neo4j +
mongodb,” 2015, [Online; accessed 05-may-2017].
[7] https://es.wikipedia.org/wiki/Twitter, “Twitter,” 2017, [Online; acces-
sed 05-may-2017].
[8] Anónimo, “Which database system(s) does twitter use,” 2012, [Onli-
ne; accessed 05-may-2017].
[9] https://es.wikipedia.org/wiki/LinkedIn, “Linkedin,” 2017, [Online; ac-
cessed 05-may-2017].
[10] Anónimo, “What is linkedin’s database architecture like?” 2010,
[Online; accessed 05-may-2017].
[11] https://www.mongodb.com/what-is mongodb, “What is mongodb?”
2017, [Online; accessed 05-may-2017].
[12] https://docs.mongodb.com/v3.2/core/databases-and collections/, “Co-
lecciones en mongodb,” 2017, [Online; accessed 05-may-2017].
[13] https://neo4j.com/developer/graph database/, “What is a graph data-
base?” 2017, [Online; accessed 05-may-2017].
[14] http://ugamarkj.blogspot.com/2014/12/a-newbies-experience-with
neo4j.html, “A newbie’s experience with neo4j,” 2017, [Online;
accessed 05-may-2017].
[15] https://neo4j.com/blog/neo4j-doc-manager-polyglot-persistence mon-
godb/, “Neo4j doc manager: Polyglot persistence for mongodb and
neo4j,” 2017, [Online; accessed 05-may-2017].
[16] https://github.com/neo4j-contrib/neo4j-apoc procedures, “Apoc, awe-
some procedures,” 2017, [Online; accessed 05-may-2017].
[17] https://github.com/neo4j contrib/neo4j doc manager, “Neoj4 doc ma-
nager,” 2017, [Online; accessed 05-may-2017].

También podría gustarte