SlideShare una empresa de Scribd logo
1 de 74
Descargar para leer sin conexión
Bases de datos NoSQL Multi-Modelos,
caso de estudio:
OrientDB
Frank T, Vanessa T, Wilmer G.
Universidad Central de Venezuela
Bases de datos NoSQL
February 2, 2016
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 1 / 54
Contenido
1 Conceptos b´asicos.
2 Caso de estudio - OrientDB:
3 Comparaciones
4 Conclusiones
”... 1st generation NoSQL
products, where each tool was
only good at a few use cases...
2nd generation NoSQL is
Multi-Model...”
Luca Garulli - Author of OrientDB
March 26, 2015
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 2 / 54
Conceptos b´asicos. Antecedentes a NoSQL
1 Conceptos b´asicos.
2 Caso de estudio - OrientDB:
3 Comparaciones
4 Conclusiones
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 3 / 54
Conceptos b´asicos. Antecedentes a NoSQL
Conceptos b´asicos123
Integraci´on de base de
datos compartida.
Integraci´on en ´unica base de datos
desde m´ultiples aplicaciones o
componentes.
1
NoSQL Distilled - M. Fowler & P. Sadalage
2
One Size Fits All: An Idea Whose Time Has Come and Gone. - M. Stonebracker
3
Advancing Distributed Systems. - Eric Brewer
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 4 / 54
Conceptos b´asicos. Antecedentes a NoSQL
Conceptos b´asicos123
Integraci´on de base de datos
compartida.
Desajuste de impedancia.
La dificultad generada por la
diferencia entre estructuras de datos
en memoria y el modelo relacional.
1
NoSQL Distilled - M. Fowler & P. Sadalage
2
One Size Fits All: An Idea Whose Time Has Come and Gone. - M. Stonebracker
3
Advancing Distributed Systems. - Eric Brewer
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 4 / 54
Conceptos b´asicos. Antecedentes a NoSQL
Conceptos b´asicos123
Integraci´on de base de datos
compartida.
Desajuste de impedancia.
Alternativa
Arquitectura de Base de Datos
Pol´ıglota:
...The most important result of the
rise of NoSQL is Polyglot
Persistence...
1
NoSQL Distilled - M. Fowler & P. Sadalage
2
One Size Fits All: An Idea Whose Time Has Come and Gone. - M. Stonebracker
3
Advancing Distributed Systems. - Eric Brewer
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 4 / 54
Conceptos b´asicos. Arquitectura de Base de Datos Pol´ıglota
Persistencia Pol´ıglota
Definici´on Uso de diferentes bases de datos para cada requerimiento del
sistema.
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 5 / 54
Conceptos b´asicos. Arquitectura de Base de Datos Pol´ıglota
Persistencia Pol´ıglota
Definici´on Uso de diferentes bases de datos para cada requerimiento del
sistema.
Implicaciones Requiere una capa de integraci´on que interprete los
lenguajes de los DBMS subyacentes y asegure la consistencia
entre las bases de datos.
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 5 / 54
Conceptos b´asicos. Arquitectura de Base de Datos Pol´ıglota
Persistencia Pol´ıglota4
4
de Polyglot programing. - Neal Ford
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 6 / 54
Conceptos b´asicos. Arquitectura de Base de Datos Pol´ıglota
Consideraciones6
Ventajas Desventajas
Compatibilidad hac´ıa atr´as con sistemas legados. Interoperabilidad.
M´ultiples herramientas ⇒ m´ultiples habilidades.
Acceso no uniforme.
Consistencia.
Redundancia l´ogica.*
Seguridad.
Tolerancia a fallos.*5
En el 90% de los casos de uso Base de Datos NoSQL son usados como
segundo DBMS.
5
Polyglot Persistence or Multiple Data Models? - Stephen Pimentel. Author of
FoundationDB
6
Polyglot database architectures = polyglot challenges. - Lena Wise
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 7 / 54
Conceptos b´asicos. Arquitectura de Base de Datos Pol´ıglota
Arquitecturas Lambda
Definici´on Arquitecturas que combinan una capa de procesamiento por
lotes(lenta) con una capa de procesamiento en tiempo real,
para proveer respuestas de baja latencia.
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 8 / 54
Conceptos b´asicos. Arquitectura de Base de Datos Pol´ıglota
Arquitecturas Lambda
Definici´on Arquitecturas que combinan una capa de procesamiento por
lotes(lenta) con una capa de procesamiento en tiempo real,
para proveer respuestas de baja latencia.
Alta velocidad
An´alisis o consultas
solo sobre los datos
mas recientes (pila).
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 8 / 54
Conceptos b´asicos. Arquitectura de Base de Datos Pol´ıglota
Arquitecturas Lambda
Definici´on Arquitecturas que combinan una capa de procesamiento por
lotes(lenta) con una capa de procesamiento en tiempo real,
para proveer respuestas de baja latencia.
Alta velocidad
An´alisis o consultas
solo sobre los datos
mas recientes (pila).
Procesamiento por
lotes
Hist´orico de (todos)
los datos que se han
recopilado,
generalmente usados
para an´alisis.
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 8 / 54
Conceptos b´asicos. Arquitectura de Base de Datos Pol´ıglota
Arquitecturas Lambda
Definici´on Arquitecturas que combinan una capa de procesamiento por
lotes(lenta) con una capa de procesamiento en tiempo real,
para proveer respuestas de baja latencia.
Alta velocidad
An´alisis o consultas
solo sobre los datos
mas recientes (pila).
Procesamiento por
lotes
Hist´orico de (todos)
los datos que se han
recopilado,
generalmente usados
para an´alisis.
Servicio
Combina las consultas
de las capas anteriores
en una sola
estructura.
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 8 / 54
Conceptos b´asicos. Arquitectura de Base de Datos Pol´ıglota
Arquitecturas Lambda
7
7
voltdb.com/products/alternatives/lambda-architecture
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 9 / 54
Conceptos b´asicos. Arquitectura de Base de Datos Pol´ıglota
Consideraciones9
Ventajas Desventajas
Pureza de los datos de entrada. Mantenimiento y complejidad de c´odigo.
Enfatiza Reprocesamiento de los datos.
Disminuye el impacto del teorema CAP.8
8
How to beat the CAP theorem. - Nathan Marz, Author of Storm & ElephantDB
9
Questioning the Lambda Architecture. - Jay Kreps
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 10 / 54
Conceptos b´asicos. Arquitectura de Base de Datos Pol´ıglota
Bases de datos Multi-Modelos
Definici´on Bases de datos que soportan diferentes modelos dentro de su
motor o proveen capas para ellos colocadas sobre un motor
de un solo modelo.
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 11 / 54
Conceptos b´asicos. Arquitectura de Base de Datos Pol´ıglota
Consideraciones
Modelo de datos
Representaci´on de la
organizaci´on de los
datos y sus relaciones.
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 12 / 54
Conceptos b´asicos. Arquitectura de Base de Datos Pol´ıglota
Consideraciones
Modelo de datos
Representaci´on de la
organizaci´on de los
datos y sus relaciones.
Motor de
almacenamiento
Componente que
permite las
operaciones CRUD,
mediante API o
interf´az del DMBS.
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 12 / 54
Conceptos b´asicos. Arquitectura de Base de Datos Pol´ıglota
Consideraciones
Modelo de datos
Representaci´on de la
organizaci´on de los
datos y sus relaciones.
Motor de
almacenamiento
Componente que
permite las
operaciones CRUD,
mediante API o
interf´az del DMBS.
Lenguaje de consulta
Lenguaje usado para
obtener respuestas
basadas en hechos
representados en el
sistema.
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 12 / 54
Conceptos b´asicos. Arquitectura de Base de Datos Pol´ıglota
Consideraciones
Modelo de datos
Representaci´on de la
organizaci´on de los
datos y sus relaciones.
Motor de
almacenamiento
Componente que
permite las
operaciones CRUD,
mediante API o
interf´az del DMBS.
Lenguaje de consulta
Lenguaje usado para
obtener respuestas
basadas en hechos
representados en el
sistema.
Tipo Motor de almacenamiento Modelo de datos Motor de Consulta
Uni-Modelo(Nativo) Multi-Capas ´Unico ´Unico, diferentes APIs Dependiente del API
Multi-Modelo(Nativo) Variado Variado Mixto
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 12 / 54
Conceptos b´asicos. Arquitectura de Base de Datos Pol´ıglota
Bases de datos Multi-Modelos
10
10
orientdb.com
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 13 / 54
Conceptos b´asicos. Arquitectura de Base de Datos Pol´ıglota
Consideraciones
Ventajas Desventajas
Facilidad de administraci´on. Paradigma reciente.
Integraci´on de componentes de bajo nivel.* An´alisis reduccionista de desempe˜no
Tolerancia a fallos.
Escalabilidad.
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 14 / 54
Caso de estudio - OrientDB:
1 Conceptos b´asicos.
2 Caso de estudio - OrientDB:
3 Comparaciones
4 Conclusiones
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 15 / 54
Caso de estudio - OrientDB: Criterio
OrientDB
En desarrollo desde 1998
publicada en 2010, por la
compa˜n´ıa Orient
Technologies.
Licenciada bajo Apache 2
Open Source, libre para
cualquier prop´osito.
´Ultima versi´on liberada:
2.1.7 el 9 de diciembre.
Desarrollada en Java.
Luca Garulli:
”The First Ever Multi-Model Database Combining Flexibility of
Documents with Connectedness of Graphs”.
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 16 / 54
Caso de estudio - OrientDB: Criterio
OrientDB
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 17 / 54
Caso de estudio - OrientDB: Criterio
Popularidad
Data
Data by itself has little value, it’s the relationship between data that gives
it incredible value.a
a
How graph databases started the multi-model revolution. - Luca Garulli
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 18 / 54
Caso de estudio - OrientDB: Criterio
Tendencia
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 19 / 54
Caso de estudio - OrientDB: Criterio
Cuadrantes de complejidad de datos y relaciones
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 20 / 54
Caso de estudio - OrientDB: Caracter´ısticas
Esquema
Schema-full
Permite definir
propiedades a nivel de
clases, campos
mandatorios y
restricciones.
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 21 / 54
Caso de estudio - OrientDB: Caracter´ısticas
Esquema
Schema-full
Permite definir
propiedades a nivel de
clases, campos
mandatorios y
restricciones.
1 OClass account = database . getMetadata () . getSchema () .
c r e a t e C l a s s ( ”Account” ) ;
2 account . c r e a t e P r o p e r t y ( ” i d ” , OType . I n t e g e r ) ;
3 account . c r e a t e P r o p e r t y ( ” birthDate ” , OType . Date ) ;
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 21 / 54
Caso de estudio - OrientDB: Caracter´ısticas
Esquema
Schema-full
Permite definir
propiedades a nivel de
clases, campos
mandatorios y
restricciones.
1 p r o f i l e . c r e a t e P r o p e r t y ( ” nick ” , OType . STRING) . setMin ( ”3” ) .
setMax ( ”30” ) . setMandatory ( t r u e ) . setNotNull ( t r u e ) ;
2 p r o f i l e . c r e a t e I n d e x ( ” n i c k I d x ” , OClass . INDEX TYPE . UNIQUE, ”
nick ” ) ; // Creates unique c o n s t r a i n t
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 21 / 54
Caso de estudio - OrientDB: Caracter´ısticas
Esquema
Schema-full
Permite definir
propiedades a nivel de
clases, campos
mandatorios y
restricciones.
Schema-less
Permite clases sin
propiedades, en las
que los objetos
pueden tener campos
arbitrarios.
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 21 / 54
Caso de estudio - OrientDB: Caracter´ısticas
Esquema
Schema-full
Permite definir
propiedades a nivel de
clases, campos
mandatorios y
restricciones.
Schema-less
Permite clases sin
propiedades, en las
que los objetos
pueden tener campos
arbitrarios.
Schema-mixed
Permite clases con
algunas propiedades,
cuyos objetos pueden
tener campos
arbitrarios.
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 21 / 54
Caso de estudio - OrientDB: Caracter´ısticas
Transacciones
Atomicidad
Ejecuci´on completa o nula de la
transacci´on.
OrientDB almacena las
transacciones en la RAM del
cliente, i.e. tama˜no de la
transacci´on depende de la RAM
asignada a JVM.
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 22 / 54
Caso de estudio - OrientDB: Caracter´ısticas
Transacciones
Consistencia
Cada transacci´on lleva la base de
datos de un estado consistente al
otro.
OrientDB usa MVCC, ´ımplicito
en API de grafos y expl´ıcito en
API de documentos.
1 db . open ( ” remote : l o c a l h o s t :7777/ petshop ” ) ;
2 t r y { db . begin (TXTYPE. OPTIMISTIC) ;
3 // TRANSACTION
4 db . commit () ; }
5 catch ( Exception e ) { db . r o l l b a c k () ;}
6 f i n a l l y { db . c l o s e () ; }
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 23 / 54
Caso de estudio - OrientDB: Caracter´ısticas
Transacciones
Aislamiento
Ejecuci´on concurrente de
transacciones debe ser
equivalente a la ejecuci´on serial
de las mismas.
OrientDB permite dos niveles:
READ COMMITTED y
REPEATABLE READS
1 db . begin ()
2 db . getTransaction () . s e t I s o l a t i o n L e v e l ( OTransaction .
ISOLATION LEVEL .REPEATABLE READ) ;
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 24 / 54
Caso de estudio - OrientDB: Caracter´ısticas
Transacciones
Durabilidad
Una vez que la transacci´on hizo
commit ya perdur´a a pesar de
fallos.
En conecci´on remota con
OrientDB Server, si la aplicaci´on
falla las transacciones pendientes
har´an rollback al recuperarse
Auto-recovery
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 25 / 54
Caso de estudio - OrientDB: Caracter´ısticas
APIs
Lenguaje de consulta a grafos: Gremlin & Blueprint API.
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 26 / 54
Caso de estudio - OrientDB: Caracter´ısticas
APIs
Lenguaje de consulta a grafos: Gremlin & Blueprint API.
Lenguaje de consulta relacional: SQL, extendido con
funcionalidades para grafos.
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 26 / 54
Caso de estudio - OrientDB: Caracter´ısticas
APIs
Lenguaje de consulta a grafos: Gremlin & Blueprint API.
Lenguaje de consulta relacional: SQL, extendido con
funcionalidades para grafos.
Est´andar de conexi´on: JDBC, para herramientas de Inteligencia de
Negocios.
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 26 / 54
Caso de estudio - OrientDB: Caracter´ısticas
APIs
Lenguaje de consulta a grafos: Gremlin & Blueprint API.
Lenguaje de consulta relacional: SQL, extendido con
funcionalidades para grafos.
Est´andar de conexi´on: JDBC, para herramientas de Inteligencia de
Negocios.
Drivers:
Java,Node.js,Ruby,Clojure,Scala,R,Python,PHP,.NET,Perl,c/c++.
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 26 / 54
Caso de estudio - OrientDB: Caracter´ısticas
APIs
Lenguaje de consulta a grafos: Gremlin & Blueprint API.
Lenguaje de consulta relacional: SQL, extendido con
funcionalidades para grafos.
Est´andar de conexi´on: JDBC, para herramientas de Inteligencia de
Negocios.
Drivers:
Java,Node.js,Ruby,Clojure,Scala,R,Python,PHP,.NET,Perl,c/c++.
Rest/JSON: Directamente con TCP/IP.
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 26 / 54
Caso de estudio - OrientDB: Caracter´ısticas
Modelo de datos
M. Relacional M. Documental M. Grafo M. Objetos Modelo de OrientDB
Tabla Colecci´on Clase de V´ertice / Enlace Clase
Clase o Cluster /
Clase que hereda de V´ertice / Enlace
Fila Documento V´ertice Objeto Documento / V´ertice
Columna Clave - valor Propiedades de V´ertice / Enlace Propiedad de objeto
Clave - valor del documento /
propiedad de V´ertice / Enlace
Relaci´on Embeber / Referenciar Enlace Apuntador Links*
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 27 / 54
Caso de estudio - OrientDB: Caracter´ısticas
Modelo de datos
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 28 / 54
Caso de estudio - OrientDB: Caracter´ısticas
Modelo de datos
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 29 / 54
Caso de estudio - OrientDB: Caracter´ısticas
Modelo de datos
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 30 / 54
Caso de estudio - OrientDB: Caracter´ısticas
Modelo de datos
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 31 / 54
Caso de estudio - OrientDB: Caracter´ısticas
Modelo de datos
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 32 / 54
Caso de estudio - OrientDB: Caracter´ısticas
Modelo de datos
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 33 / 54
Caso de estudio - OrientDB: Operaciones
Operaciones
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 34 / 54
Caso de estudio - OrientDB: Operaciones
B´asicas (gui)11
1 /∗ Creacion de c l a s e s : ∗/
2 c r e a t e c l a s s Person extends V
3 /∗ Ceacion de propiedades : ∗/
4 c r e a t e pro pe rty Person . firstName s t r i n g
5 /∗ I n s e r t a r datos : ∗/
6 i n s e r t i n t o Person ( firstName , lastName ) v a l u e s ( ”Wilmer” , ”
Gonzalez ” ) ,( ” Vanessa ” , ”Tovar” ) ,( ” Frank ” , ” Travieso ” )
7 /∗O: ∗/
8 i n s e r t i n t o Company s e t name = ”UCV org . ”
9 /∗ Crear e n l a c e s : ∗/
10 c r e a t e edge WorksAt from #12:1 to #13:0
11 /∗ i n s e r t with content ∗/
12 i n s e r t i n t o CLuster content {”name” : ” C h a r l i e ” , ”age” :10}
11
udemy.com/orientdb-getting-started
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 35 / 54
Caso de estudio - OrientDB: Operaciones
B´asicas (consola)
1 /∗ Crear db∗/
2 c r e a t e database remote : l o c a l h o s t /[NAME] [USER NAME] [PASSW] [
STORAGE]
3 /∗ Ejemplo ∗/
4 c r e a t e database remote : l o c a l h o s t /ConsoleDemo root h e l l o
p l o c a l
5 /∗ d e s c o n e c t a r s e ∗/
6 d i s c o n n e c t
7 /∗ c o n e c t a r s e s e r v i d o r ∗/
8 connect remote : l o c a l h o s t root h e l l o
9 /∗ l i s t a r db∗/
10 l i s t databases
11 /∗ c o n e c t a r s e a alguna db∗/
12 connect remote : l o c a l h o s t / databases /ConsoleDemo
13 admin admin/∗ d e f a u l t user created ∗/
14 /∗ connect l o c a l ∗/
15 connect p l o c a l : . . / databases /ConsoleDemo admin admin
16 /∗ backup database ∗/
17 backup database d i r / to /backup
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 36 / 54
Caso de estudio - OrientDB: Operaciones
Manejo de clases
1 CREATE CLASS Person
2 CREATE CLASS Person EXTENDS V
3 CREATE CLASS v e h i c l e CLUSTER 4
4 CREATE CLASS DataItem ABSTRACT
5 /∗ ˆNo puede almacenar datos directamente ∗/
6 ALTER CLASS Person NAME I n d i v i d u a l
7 ALTER CLASS Acount ADDCLUSTER EuropeA
8 ALTER CLASS car CLUSTERSELECTION round−r o b i n
9 DROP CLASS Person
10 TRUNCATE CLASS Lead
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 37 / 54
Caso de estudio - OrientDB: Operaciones
Manejo de cl´usters
1 CREATE CLUSTER AccountArg
2 CREATE CLUSTER AccountVe POSITION 4
3 ALTER CLUSTER AccountArg NAME ArgentinaA
4 ALTER CLUSTER Europe COMPRESSION gzip
5 ALTER CLUSTER V CONFLICTSTRATEGY automerge
6 DROP CLUSTER AccountArg
7 DROP CLUSTER 4
8 TRUNCATE CLUSTER America
9 ALTER CLASS Person CLUSTERSELECTION balanced
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 38 / 54
Caso de estudio - OrientDB: Operaciones
Manejo grafos
1 CREATE VERTEX Person CLUSTER i t a l y SET f i r s t n a m e = ’BOB ’
2 DELETE VERTEX #20:865
3 DELETE VERTEX Person WHERE i n . @Class = ’ MembershipExpired ’
4 CREATE EDGE FROM #10:6 TO #10:8
5 /∗no genera documento ∗/
6 CREATE EDGE FROM #10:6 TO #10:8 CONTENT { value : 120}
7 SELECT FROM Person WHERE any () t r a v e r s e (0 ,3) ( f i r s t n a m e = ’
Carl ’ )
8 SELECT FROM ( TRAVERSE f r i e n d s FROM #10:5 WHILE $depth <= 3 )
WHERE $depth > 1
9 SELECT i n ( ’ isModel ’ ) . c o l o r FROM #10:7
10 SELECT outV () FROM Bought WHERE PurchasePrice > 1000
11 SELECT s h o r t e s t p a t h (#19:5 ,#82:6 , ’BOTH’ )
12 SELECT d i j k s t r a (#15:7 ,#19:8 , ’ weight ’ ) FROM V
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 39 / 54
Caso de estudio - OrientDB: Operaciones
Manejo grafos
Otras funciones in(), out(), both(), outE(), inE(), bothE(), outV(), inV(),
traversedElement(), traversedEdge(), traversedVertex(),
shortestPath(), dijkstra().
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 40 / 54
Caso de estudio - OrientDB: Operaciones
Seguridad
Orientada a roles,
predefinidos:
admin,reader,writer.
1 INSERT INTO OUser SET name
= ’ j a y ’ , password = ’ JaY
’ , s t a t u s = ’ACTIVE ’ ,
r o l e s = (SELECT FROM
ORole WHERE name = ’
r e a d e r ’ )
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 41 / 54
Caso de estudio - OrientDB: Operaciones
Seguridad
Orientada a roles,
predefinidos:
admin,reader,writer.
A nivel de registro,
mediante campos especiales:
allowRead, allow, allowUpdate, allowDelete
1 CREATE CLASS Order EXTENDS
V, ORestricted
2 UPDATE #43:22 ADD
allowRead #5:10
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 41 / 54
Caso de estudio - OrientDB: Arquitectura
Arquitectura - Multi-Maestro12
12
Implementaci´on de HazelCast.
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 42 / 54
Caso de estudio - OrientDB: Arquitectura
Arquitectura
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 43 / 54
Caso de estudio - OrientDB: Arquitectura
Arquitectura
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 43 / 54
Caso de estudio - OrientDB: Arquitectura
Arquitectura
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 43 / 54
Caso de estudio - OrientDB: Arquitectura
Arquitectura - Distribuci´on de la configuraci´on
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 44 / 54
Caso de estudio - OrientDB: Arquitectura
Arquitectura
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 45 / 54
Caso de estudio - OrientDB: Arquitectura
Arquitectura - Cambio autom´atico de servidor
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 46 / 54
Caso de estudio - OrientDB: Arquitectura
Arquitectura - Actualizaci´on de las configuraciones
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 47 / 54
Caso de estudio - OrientDB: Arquitectura
Otros detalles
´Indice MVRB-tree, RB-Tree con m´ultiples valores en los nodos.13
Multi-Maestro Implementaci´on de HazelCast.
Fallas temporales Hinted handoff & Sloppy quorum?
13
Andrey Lomakin groups.google.com/orient-database
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 48 / 54
Caso de estudio - OrientDB: Limitaciones
Limitaciones14
hotAlignment:Usado para mantener mensajes al nodo
inalcanzable.Si est´a habilitado puede llevar a inconsistencia de la base
de datos, si no, puede no guardarse toda la informaci´on del sharding.
Sharding: No soporta auto-sharding.
Tama˜no del registro Documentos, v´ertices y enlaces son
almacenados como registros de hasta 2GB.
Map-Reduce Solo puede ser simulado con consultas distribu´ıdas
14
M´as detalles en orientdb.com/docs/last/Limits.html
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 49 / 54
Caso de estudio - OrientDB: Usos
Usos
15
15
casos comunes incluyen: series de tiempo, motores de chat,almacenamiento en
clave-valor, entre otros.
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 50 / 54
Comparaciones
Tendencia
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 51 / 54
Conclusiones
1 Conceptos b´asicos.
2 Caso de estudio - OrientDB:
3 Comparaciones
4 Conclusiones
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 52 / 54
Conclusiones
Discusi´on
¿Preguntas o comentarios?
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 53 / 54
Conclusiones
Agradecimientos17
16
¡Gracias!
Disponible en:
bit.do/MultiModel pre
16
xkcd.com/327
17
Realizado en Overleaf.com
Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 54 / 54

Más contenido relacionado

La actualidad más candente (20)

Introducción a Voldemort - Innova4j
Introducción a Voldemort - Innova4jIntroducción a Voldemort - Innova4j
Introducción a Voldemort - Innova4j
 
Diagramas uml
Diagramas umlDiagramas uml
Diagramas uml
 
Motores de bases de datos
Motores de bases de datosMotores de bases de datos
Motores de bases de datos
 
5. Ejercicios normalización
5. Ejercicios normalización5. Ejercicios normalización
5. Ejercicios normalización
 
control de concurrencia
control de concurrenciacontrol de concurrencia
control de concurrencia
 
Reglas de transformación
Reglas de transformaciónReglas de transformación
Reglas de transformación
 
4. OSPF - Multiarea
4. OSPF - Multiarea4. OSPF - Multiarea
4. OSPF - Multiarea
 
Apache CouchDB
Apache CouchDBApache CouchDB
Apache CouchDB
 
Protocolos de red
Protocolos de redProtocolos de red
Protocolos de red
 
Java con base de datos
Java con base de datosJava con base de datos
Java con base de datos
 
Apache cassandra
Apache cassandraApache cassandra
Apache cassandra
 
Guía de ejercicios de normalizacion
Guía de ejercicios de normalizacionGuía de ejercicios de normalizacion
Guía de ejercicios de normalizacion
 
Transaccion
TransaccionTransaccion
Transaccion
 
OSPF MULTIAREA
OSPF  MULTIAREAOSPF  MULTIAREA
OSPF MULTIAREA
 
Modelo de datos
Modelo de datosModelo de datos
Modelo de datos
 
Taller de Base de Datos - Unidad 6 SQL procedural
Taller de Base de Datos - Unidad 6 SQL proceduralTaller de Base de Datos - Unidad 6 SQL procedural
Taller de Base de Datos - Unidad 6 SQL procedural
 
Taller de Base de Datos - Unidad 7 Conectividad
Taller de Base de Datos - Unidad 7 ConectividadTaller de Base de Datos - Unidad 7 Conectividad
Taller de Base de Datos - Unidad 7 Conectividad
 
Bases de Datos NoSQL - Riak
Bases de Datos NoSQL - Riak Bases de Datos NoSQL - Riak
Bases de Datos NoSQL - Riak
 
Dfd
DfdDfd
Dfd
 
Ado net
Ado netAdo net
Ado net
 

Similar a Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

Un acercamiento a las bases de datos NoSQL
Un acercamiento a las bases de datos NoSQLUn acercamiento a las bases de datos NoSQL
Un acercamiento a las bases de datos NoSQLJavier Guillot Jiménez
 
Cursos Big Data Open Source
Cursos Big Data Open SourceCursos Big Data Open Source
Cursos Big Data Open SourceStratebi
 
NoSql introducción -Innova4j
NoSql introducción -Innova4jNoSql introducción -Innova4j
NoSql introducción -Innova4jInnova4j
 
mini-taller de Base de Datos y PostgreSQL
mini-taller de Base de Datos y PostgreSQLmini-taller de Base de Datos y PostgreSQL
mini-taller de Base de Datos y PostgreSQLCarlos Gustavo Ruiz
 
Act4 basede datos
Act4 basede datosAct4 basede datos
Act4 basede datosclaralun123
 
Act4 basede datos
Act4 basede datosAct4 basede datos
Act4 basede datosclaralun123
 
Presentación base de datos bautista marquez_asalia
Presentación base de datos bautista marquez_asaliaPresentación base de datos bautista marquez_asalia
Presentación base de datos bautista marquez_asaliaAsalia Bautista Márquez
 
Base de datos no sql
Base de datos no sqlBase de datos no sql
Base de datos no sqlhnacostan
 
Las principales bases de datos existentes
Las principales bases de datos existentesLas principales bases de datos existentes
Las principales bases de datos existentesDolores Leonor
 
Las principales bases de datos existentes
Las principales bases de datos existentesLas principales bases de datos existentes
Las principales bases de datos existentesDolores Leonor
 
Big table por Matias tesoriero
Big table por Matias tesorieroBig table por Matias tesoriero
Big table por Matias tesorieromtesoriero
 
Big data y las apis
Big data y  las apis Big data y  las apis
Big data y las apis CloudAppi
 

Similar a Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB (20)

Un acercamiento a las bases de datos NoSQL
Un acercamiento a las bases de datos NoSQLUn acercamiento a las bases de datos NoSQL
Un acercamiento a las bases de datos NoSQL
 
Cursos Big Data Open Source
Cursos Big Data Open SourceCursos Big Data Open Source
Cursos Big Data Open Source
 
NoSql introducción -Innova4j
NoSql introducción -Innova4jNoSql introducción -Innova4j
NoSql introducción -Innova4j
 
Apache Cassandra
Apache CassandraApache Cassandra
Apache Cassandra
 
mini-taller de Base de Datos y PostgreSQL
mini-taller de Base de Datos y PostgreSQLmini-taller de Base de Datos y PostgreSQL
mini-taller de Base de Datos y PostgreSQL
 
Act4 basede datos
Act4 basede datosAct4 basede datos
Act4 basede datos
 
Act4 basede datos
Act4 basede datosAct4 basede datos
Act4 basede datos
 
Sergio cano a
Sergio cano aSergio cano a
Sergio cano a
 
S cano a actividad 4 4b
S cano a actividad 4 4bS cano a actividad 4 4b
S cano a actividad 4 4b
 
Presentación base de datos bautista marquez_asalia
Presentación base de datos bautista marquez_asaliaPresentación base de datos bautista marquez_asalia
Presentación base de datos bautista marquez_asalia
 
Base de datos
Base de datosBase de datos
Base de datos
 
Cassandra intro
Cassandra introCassandra intro
Cassandra intro
 
Base de datos no sql
Base de datos no sqlBase de datos no sql
Base de datos no sql
 
Las principales bases de datos existentes
Las principales bases de datos existentesLas principales bases de datos existentes
Las principales bases de datos existentes
 
Las principales bases de datos existentes
Las principales bases de datos existentesLas principales bases de datos existentes
Las principales bases de datos existentes
 
Apache cassandra
Apache cassandraApache cassandra
Apache cassandra
 
Big table por Matias tesoriero
Big table por Matias tesorieroBig table por Matias tesoriero
Big table por Matias tesoriero
 
Actividad 4
Actividad 4Actividad 4
Actividad 4
 
Big data y las apis
Big data y  las apis Big data y  las apis
Big data y las apis
 
Clase 1 introduccion db
Clase 1 introduccion dbClase 1 introduccion db
Clase 1 introduccion db
 

Más de Wilmer Gonzalez

Adopción de la Inteligencia Artificial en el emprendimiento como evolución de...
Adopción de la Inteligencia Artificial en el emprendimiento como evolución de...Adopción de la Inteligencia Artificial en el emprendimiento como evolución de...
Adopción de la Inteligencia Artificial en el emprendimiento como evolución de...Wilmer Gonzalez
 
Reproducible research a case of study on allocation of university places
Reproducible research a case of study on allocation of university placesReproducible research a case of study on allocation of university places
Reproducible research a case of study on allocation of university placesWilmer Gonzalez
 
Twitter a data source for the academy
Twitter a data source for the academyTwitter a data source for the academy
Twitter a data source for the academyWilmer Gonzalez
 
Github social coding, the social network for programmers
Github social coding, the social network for programmersGithub social coding, the social network for programmers
Github social coding, the social network for programmersWilmer Gonzalez
 
(UCV - 6325) Search algorithms
(UCV - 6325) Search algorithms(UCV - 6325) Search algorithms
(UCV - 6325) Search algorithmsWilmer Gonzalez
 
(UCV - 6325) Introduction to artificial intelligence
(UCV - 6325) Introduction to artificial intelligence(UCV - 6325) Introduction to artificial intelligence
(UCV - 6325) Introduction to artificial intelligenceWilmer Gonzalez
 
Ranking de artículos científicos
Ranking de artículos científicosRanking de artículos científicos
Ranking de artículos científicosWilmer Gonzalez
 

Más de Wilmer Gonzalez (7)

Adopción de la Inteligencia Artificial en el emprendimiento como evolución de...
Adopción de la Inteligencia Artificial en el emprendimiento como evolución de...Adopción de la Inteligencia Artificial en el emprendimiento como evolución de...
Adopción de la Inteligencia Artificial en el emprendimiento como evolución de...
 
Reproducible research a case of study on allocation of university places
Reproducible research a case of study on allocation of university placesReproducible research a case of study on allocation of university places
Reproducible research a case of study on allocation of university places
 
Twitter a data source for the academy
Twitter a data source for the academyTwitter a data source for the academy
Twitter a data source for the academy
 
Github social coding, the social network for programmers
Github social coding, the social network for programmersGithub social coding, the social network for programmers
Github social coding, the social network for programmers
 
(UCV - 6325) Search algorithms
(UCV - 6325) Search algorithms(UCV - 6325) Search algorithms
(UCV - 6325) Search algorithms
 
(UCV - 6325) Introduction to artificial intelligence
(UCV - 6325) Introduction to artificial intelligence(UCV - 6325) Introduction to artificial intelligence
(UCV - 6325) Introduction to artificial intelligence
 
Ranking de artículos científicos
Ranking de artículos científicosRanking de artículos científicos
Ranking de artículos científicos
 

Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB

  • 1. Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB Frank T, Vanessa T, Wilmer G. Universidad Central de Venezuela Bases de datos NoSQL February 2, 2016 Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 1 / 54
  • 2. Contenido 1 Conceptos b´asicos. 2 Caso de estudio - OrientDB: 3 Comparaciones 4 Conclusiones ”... 1st generation NoSQL products, where each tool was only good at a few use cases... 2nd generation NoSQL is Multi-Model...” Luca Garulli - Author of OrientDB March 26, 2015 Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 2 / 54
  • 3. Conceptos b´asicos. Antecedentes a NoSQL 1 Conceptos b´asicos. 2 Caso de estudio - OrientDB: 3 Comparaciones 4 Conclusiones Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 3 / 54
  • 4. Conceptos b´asicos. Antecedentes a NoSQL Conceptos b´asicos123 Integraci´on de base de datos compartida. Integraci´on en ´unica base de datos desde m´ultiples aplicaciones o componentes. 1 NoSQL Distilled - M. Fowler & P. Sadalage 2 One Size Fits All: An Idea Whose Time Has Come and Gone. - M. Stonebracker 3 Advancing Distributed Systems. - Eric Brewer Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 4 / 54
  • 5. Conceptos b´asicos. Antecedentes a NoSQL Conceptos b´asicos123 Integraci´on de base de datos compartida. Desajuste de impedancia. La dificultad generada por la diferencia entre estructuras de datos en memoria y el modelo relacional. 1 NoSQL Distilled - M. Fowler & P. Sadalage 2 One Size Fits All: An Idea Whose Time Has Come and Gone. - M. Stonebracker 3 Advancing Distributed Systems. - Eric Brewer Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 4 / 54
  • 6. Conceptos b´asicos. Antecedentes a NoSQL Conceptos b´asicos123 Integraci´on de base de datos compartida. Desajuste de impedancia. Alternativa Arquitectura de Base de Datos Pol´ıglota: ...The most important result of the rise of NoSQL is Polyglot Persistence... 1 NoSQL Distilled - M. Fowler & P. Sadalage 2 One Size Fits All: An Idea Whose Time Has Come and Gone. - M. Stonebracker 3 Advancing Distributed Systems. - Eric Brewer Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 4 / 54
  • 7. Conceptos b´asicos. Arquitectura de Base de Datos Pol´ıglota Persistencia Pol´ıglota Definici´on Uso de diferentes bases de datos para cada requerimiento del sistema. Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 5 / 54
  • 8. Conceptos b´asicos. Arquitectura de Base de Datos Pol´ıglota Persistencia Pol´ıglota Definici´on Uso de diferentes bases de datos para cada requerimiento del sistema. Implicaciones Requiere una capa de integraci´on que interprete los lenguajes de los DBMS subyacentes y asegure la consistencia entre las bases de datos. Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 5 / 54
  • 9. Conceptos b´asicos. Arquitectura de Base de Datos Pol´ıglota Persistencia Pol´ıglota4 4 de Polyglot programing. - Neal Ford Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 6 / 54
  • 10. Conceptos b´asicos. Arquitectura de Base de Datos Pol´ıglota Consideraciones6 Ventajas Desventajas Compatibilidad hac´ıa atr´as con sistemas legados. Interoperabilidad. M´ultiples herramientas ⇒ m´ultiples habilidades. Acceso no uniforme. Consistencia. Redundancia l´ogica.* Seguridad. Tolerancia a fallos.*5 En el 90% de los casos de uso Base de Datos NoSQL son usados como segundo DBMS. 5 Polyglot Persistence or Multiple Data Models? - Stephen Pimentel. Author of FoundationDB 6 Polyglot database architectures = polyglot challenges. - Lena Wise Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 7 / 54
  • 11. Conceptos b´asicos. Arquitectura de Base de Datos Pol´ıglota Arquitecturas Lambda Definici´on Arquitecturas que combinan una capa de procesamiento por lotes(lenta) con una capa de procesamiento en tiempo real, para proveer respuestas de baja latencia. Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 8 / 54
  • 12. Conceptos b´asicos. Arquitectura de Base de Datos Pol´ıglota Arquitecturas Lambda Definici´on Arquitecturas que combinan una capa de procesamiento por lotes(lenta) con una capa de procesamiento en tiempo real, para proveer respuestas de baja latencia. Alta velocidad An´alisis o consultas solo sobre los datos mas recientes (pila). Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 8 / 54
  • 13. Conceptos b´asicos. Arquitectura de Base de Datos Pol´ıglota Arquitecturas Lambda Definici´on Arquitecturas que combinan una capa de procesamiento por lotes(lenta) con una capa de procesamiento en tiempo real, para proveer respuestas de baja latencia. Alta velocidad An´alisis o consultas solo sobre los datos mas recientes (pila). Procesamiento por lotes Hist´orico de (todos) los datos que se han recopilado, generalmente usados para an´alisis. Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 8 / 54
  • 14. Conceptos b´asicos. Arquitectura de Base de Datos Pol´ıglota Arquitecturas Lambda Definici´on Arquitecturas que combinan una capa de procesamiento por lotes(lenta) con una capa de procesamiento en tiempo real, para proveer respuestas de baja latencia. Alta velocidad An´alisis o consultas solo sobre los datos mas recientes (pila). Procesamiento por lotes Hist´orico de (todos) los datos que se han recopilado, generalmente usados para an´alisis. Servicio Combina las consultas de las capas anteriores en una sola estructura. Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 8 / 54
  • 15. Conceptos b´asicos. Arquitectura de Base de Datos Pol´ıglota Arquitecturas Lambda 7 7 voltdb.com/products/alternatives/lambda-architecture Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 9 / 54
  • 16. Conceptos b´asicos. Arquitectura de Base de Datos Pol´ıglota Consideraciones9 Ventajas Desventajas Pureza de los datos de entrada. Mantenimiento y complejidad de c´odigo. Enfatiza Reprocesamiento de los datos. Disminuye el impacto del teorema CAP.8 8 How to beat the CAP theorem. - Nathan Marz, Author of Storm & ElephantDB 9 Questioning the Lambda Architecture. - Jay Kreps Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 10 / 54
  • 17. Conceptos b´asicos. Arquitectura de Base de Datos Pol´ıglota Bases de datos Multi-Modelos Definici´on Bases de datos que soportan diferentes modelos dentro de su motor o proveen capas para ellos colocadas sobre un motor de un solo modelo. Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 11 / 54
  • 18. Conceptos b´asicos. Arquitectura de Base de Datos Pol´ıglota Consideraciones Modelo de datos Representaci´on de la organizaci´on de los datos y sus relaciones. Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 12 / 54
  • 19. Conceptos b´asicos. Arquitectura de Base de Datos Pol´ıglota Consideraciones Modelo de datos Representaci´on de la organizaci´on de los datos y sus relaciones. Motor de almacenamiento Componente que permite las operaciones CRUD, mediante API o interf´az del DMBS. Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 12 / 54
  • 20. Conceptos b´asicos. Arquitectura de Base de Datos Pol´ıglota Consideraciones Modelo de datos Representaci´on de la organizaci´on de los datos y sus relaciones. Motor de almacenamiento Componente que permite las operaciones CRUD, mediante API o interf´az del DMBS. Lenguaje de consulta Lenguaje usado para obtener respuestas basadas en hechos representados en el sistema. Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 12 / 54
  • 21. Conceptos b´asicos. Arquitectura de Base de Datos Pol´ıglota Consideraciones Modelo de datos Representaci´on de la organizaci´on de los datos y sus relaciones. Motor de almacenamiento Componente que permite las operaciones CRUD, mediante API o interf´az del DMBS. Lenguaje de consulta Lenguaje usado para obtener respuestas basadas en hechos representados en el sistema. Tipo Motor de almacenamiento Modelo de datos Motor de Consulta Uni-Modelo(Nativo) Multi-Capas ´Unico ´Unico, diferentes APIs Dependiente del API Multi-Modelo(Nativo) Variado Variado Mixto Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 12 / 54
  • 22. Conceptos b´asicos. Arquitectura de Base de Datos Pol´ıglota Bases de datos Multi-Modelos 10 10 orientdb.com Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 13 / 54
  • 23. Conceptos b´asicos. Arquitectura de Base de Datos Pol´ıglota Consideraciones Ventajas Desventajas Facilidad de administraci´on. Paradigma reciente. Integraci´on de componentes de bajo nivel.* An´alisis reduccionista de desempe˜no Tolerancia a fallos. Escalabilidad. Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 14 / 54
  • 24. Caso de estudio - OrientDB: 1 Conceptos b´asicos. 2 Caso de estudio - OrientDB: 3 Comparaciones 4 Conclusiones Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 15 / 54
  • 25. Caso de estudio - OrientDB: Criterio OrientDB En desarrollo desde 1998 publicada en 2010, por la compa˜n´ıa Orient Technologies. Licenciada bajo Apache 2 Open Source, libre para cualquier prop´osito. ´Ultima versi´on liberada: 2.1.7 el 9 de diciembre. Desarrollada en Java. Luca Garulli: ”The First Ever Multi-Model Database Combining Flexibility of Documents with Connectedness of Graphs”. Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 16 / 54
  • 26. Caso de estudio - OrientDB: Criterio OrientDB Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 17 / 54
  • 27. Caso de estudio - OrientDB: Criterio Popularidad Data Data by itself has little value, it’s the relationship between data that gives it incredible value.a a How graph databases started the multi-model revolution. - Luca Garulli Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 18 / 54
  • 28. Caso de estudio - OrientDB: Criterio Tendencia Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 19 / 54
  • 29. Caso de estudio - OrientDB: Criterio Cuadrantes de complejidad de datos y relaciones Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 20 / 54
  • 30. Caso de estudio - OrientDB: Caracter´ısticas Esquema Schema-full Permite definir propiedades a nivel de clases, campos mandatorios y restricciones. Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 21 / 54
  • 31. Caso de estudio - OrientDB: Caracter´ısticas Esquema Schema-full Permite definir propiedades a nivel de clases, campos mandatorios y restricciones. 1 OClass account = database . getMetadata () . getSchema () . c r e a t e C l a s s ( ”Account” ) ; 2 account . c r e a t e P r o p e r t y ( ” i d ” , OType . I n t e g e r ) ; 3 account . c r e a t e P r o p e r t y ( ” birthDate ” , OType . Date ) ; Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 21 / 54
  • 32. Caso de estudio - OrientDB: Caracter´ısticas Esquema Schema-full Permite definir propiedades a nivel de clases, campos mandatorios y restricciones. 1 p r o f i l e . c r e a t e P r o p e r t y ( ” nick ” , OType . STRING) . setMin ( ”3” ) . setMax ( ”30” ) . setMandatory ( t r u e ) . setNotNull ( t r u e ) ; 2 p r o f i l e . c r e a t e I n d e x ( ” n i c k I d x ” , OClass . INDEX TYPE . UNIQUE, ” nick ” ) ; // Creates unique c o n s t r a i n t Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 21 / 54
  • 33. Caso de estudio - OrientDB: Caracter´ısticas Esquema Schema-full Permite definir propiedades a nivel de clases, campos mandatorios y restricciones. Schema-less Permite clases sin propiedades, en las que los objetos pueden tener campos arbitrarios. Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 21 / 54
  • 34. Caso de estudio - OrientDB: Caracter´ısticas Esquema Schema-full Permite definir propiedades a nivel de clases, campos mandatorios y restricciones. Schema-less Permite clases sin propiedades, en las que los objetos pueden tener campos arbitrarios. Schema-mixed Permite clases con algunas propiedades, cuyos objetos pueden tener campos arbitrarios. Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 21 / 54
  • 35. Caso de estudio - OrientDB: Caracter´ısticas Transacciones Atomicidad Ejecuci´on completa o nula de la transacci´on. OrientDB almacena las transacciones en la RAM del cliente, i.e. tama˜no de la transacci´on depende de la RAM asignada a JVM. Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 22 / 54
  • 36. Caso de estudio - OrientDB: Caracter´ısticas Transacciones Consistencia Cada transacci´on lleva la base de datos de un estado consistente al otro. OrientDB usa MVCC, ´ımplicito en API de grafos y expl´ıcito en API de documentos. 1 db . open ( ” remote : l o c a l h o s t :7777/ petshop ” ) ; 2 t r y { db . begin (TXTYPE. OPTIMISTIC) ; 3 // TRANSACTION 4 db . commit () ; } 5 catch ( Exception e ) { db . r o l l b a c k () ;} 6 f i n a l l y { db . c l o s e () ; } Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 23 / 54
  • 37. Caso de estudio - OrientDB: Caracter´ısticas Transacciones Aislamiento Ejecuci´on concurrente de transacciones debe ser equivalente a la ejecuci´on serial de las mismas. OrientDB permite dos niveles: READ COMMITTED y REPEATABLE READS 1 db . begin () 2 db . getTransaction () . s e t I s o l a t i o n L e v e l ( OTransaction . ISOLATION LEVEL .REPEATABLE READ) ; Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 24 / 54
  • 38. Caso de estudio - OrientDB: Caracter´ısticas Transacciones Durabilidad Una vez que la transacci´on hizo commit ya perdur´a a pesar de fallos. En conecci´on remota con OrientDB Server, si la aplicaci´on falla las transacciones pendientes har´an rollback al recuperarse Auto-recovery Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 25 / 54
  • 39. Caso de estudio - OrientDB: Caracter´ısticas APIs Lenguaje de consulta a grafos: Gremlin & Blueprint API. Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 26 / 54
  • 40. Caso de estudio - OrientDB: Caracter´ısticas APIs Lenguaje de consulta a grafos: Gremlin & Blueprint API. Lenguaje de consulta relacional: SQL, extendido con funcionalidades para grafos. Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 26 / 54
  • 41. Caso de estudio - OrientDB: Caracter´ısticas APIs Lenguaje de consulta a grafos: Gremlin & Blueprint API. Lenguaje de consulta relacional: SQL, extendido con funcionalidades para grafos. Est´andar de conexi´on: JDBC, para herramientas de Inteligencia de Negocios. Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 26 / 54
  • 42. Caso de estudio - OrientDB: Caracter´ısticas APIs Lenguaje de consulta a grafos: Gremlin & Blueprint API. Lenguaje de consulta relacional: SQL, extendido con funcionalidades para grafos. Est´andar de conexi´on: JDBC, para herramientas de Inteligencia de Negocios. Drivers: Java,Node.js,Ruby,Clojure,Scala,R,Python,PHP,.NET,Perl,c/c++. Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 26 / 54
  • 43. Caso de estudio - OrientDB: Caracter´ısticas APIs Lenguaje de consulta a grafos: Gremlin & Blueprint API. Lenguaje de consulta relacional: SQL, extendido con funcionalidades para grafos. Est´andar de conexi´on: JDBC, para herramientas de Inteligencia de Negocios. Drivers: Java,Node.js,Ruby,Clojure,Scala,R,Python,PHP,.NET,Perl,c/c++. Rest/JSON: Directamente con TCP/IP. Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 26 / 54
  • 44. Caso de estudio - OrientDB: Caracter´ısticas Modelo de datos M. Relacional M. Documental M. Grafo M. Objetos Modelo de OrientDB Tabla Colecci´on Clase de V´ertice / Enlace Clase Clase o Cluster / Clase que hereda de V´ertice / Enlace Fila Documento V´ertice Objeto Documento / V´ertice Columna Clave - valor Propiedades de V´ertice / Enlace Propiedad de objeto Clave - valor del documento / propiedad de V´ertice / Enlace Relaci´on Embeber / Referenciar Enlace Apuntador Links* Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 27 / 54
  • 45. Caso de estudio - OrientDB: Caracter´ısticas Modelo de datos Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 28 / 54
  • 46. Caso de estudio - OrientDB: Caracter´ısticas Modelo de datos Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 29 / 54
  • 47. Caso de estudio - OrientDB: Caracter´ısticas Modelo de datos Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 30 / 54
  • 48. Caso de estudio - OrientDB: Caracter´ısticas Modelo de datos Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 31 / 54
  • 49. Caso de estudio - OrientDB: Caracter´ısticas Modelo de datos Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 32 / 54
  • 50. Caso de estudio - OrientDB: Caracter´ısticas Modelo de datos Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 33 / 54
  • 51. Caso de estudio - OrientDB: Operaciones Operaciones Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 34 / 54
  • 52. Caso de estudio - OrientDB: Operaciones B´asicas (gui)11 1 /∗ Creacion de c l a s e s : ∗/ 2 c r e a t e c l a s s Person extends V 3 /∗ Ceacion de propiedades : ∗/ 4 c r e a t e pro pe rty Person . firstName s t r i n g 5 /∗ I n s e r t a r datos : ∗/ 6 i n s e r t i n t o Person ( firstName , lastName ) v a l u e s ( ”Wilmer” , ” Gonzalez ” ) ,( ” Vanessa ” , ”Tovar” ) ,( ” Frank ” , ” Travieso ” ) 7 /∗O: ∗/ 8 i n s e r t i n t o Company s e t name = ”UCV org . ” 9 /∗ Crear e n l a c e s : ∗/ 10 c r e a t e edge WorksAt from #12:1 to #13:0 11 /∗ i n s e r t with content ∗/ 12 i n s e r t i n t o CLuster content {”name” : ” C h a r l i e ” , ”age” :10} 11 udemy.com/orientdb-getting-started Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 35 / 54
  • 53. Caso de estudio - OrientDB: Operaciones B´asicas (consola) 1 /∗ Crear db∗/ 2 c r e a t e database remote : l o c a l h o s t /[NAME] [USER NAME] [PASSW] [ STORAGE] 3 /∗ Ejemplo ∗/ 4 c r e a t e database remote : l o c a l h o s t /ConsoleDemo root h e l l o p l o c a l 5 /∗ d e s c o n e c t a r s e ∗/ 6 d i s c o n n e c t 7 /∗ c o n e c t a r s e s e r v i d o r ∗/ 8 connect remote : l o c a l h o s t root h e l l o 9 /∗ l i s t a r db∗/ 10 l i s t databases 11 /∗ c o n e c t a r s e a alguna db∗/ 12 connect remote : l o c a l h o s t / databases /ConsoleDemo 13 admin admin/∗ d e f a u l t user created ∗/ 14 /∗ connect l o c a l ∗/ 15 connect p l o c a l : . . / databases /ConsoleDemo admin admin 16 /∗ backup database ∗/ 17 backup database d i r / to /backup Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 36 / 54
  • 54. Caso de estudio - OrientDB: Operaciones Manejo de clases 1 CREATE CLASS Person 2 CREATE CLASS Person EXTENDS V 3 CREATE CLASS v e h i c l e CLUSTER 4 4 CREATE CLASS DataItem ABSTRACT 5 /∗ ˆNo puede almacenar datos directamente ∗/ 6 ALTER CLASS Person NAME I n d i v i d u a l 7 ALTER CLASS Acount ADDCLUSTER EuropeA 8 ALTER CLASS car CLUSTERSELECTION round−r o b i n 9 DROP CLASS Person 10 TRUNCATE CLASS Lead Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 37 / 54
  • 55. Caso de estudio - OrientDB: Operaciones Manejo de cl´usters 1 CREATE CLUSTER AccountArg 2 CREATE CLUSTER AccountVe POSITION 4 3 ALTER CLUSTER AccountArg NAME ArgentinaA 4 ALTER CLUSTER Europe COMPRESSION gzip 5 ALTER CLUSTER V CONFLICTSTRATEGY automerge 6 DROP CLUSTER AccountArg 7 DROP CLUSTER 4 8 TRUNCATE CLUSTER America 9 ALTER CLASS Person CLUSTERSELECTION balanced Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 38 / 54
  • 56. Caso de estudio - OrientDB: Operaciones Manejo grafos 1 CREATE VERTEX Person CLUSTER i t a l y SET f i r s t n a m e = ’BOB ’ 2 DELETE VERTEX #20:865 3 DELETE VERTEX Person WHERE i n . @Class = ’ MembershipExpired ’ 4 CREATE EDGE FROM #10:6 TO #10:8 5 /∗no genera documento ∗/ 6 CREATE EDGE FROM #10:6 TO #10:8 CONTENT { value : 120} 7 SELECT FROM Person WHERE any () t r a v e r s e (0 ,3) ( f i r s t n a m e = ’ Carl ’ ) 8 SELECT FROM ( TRAVERSE f r i e n d s FROM #10:5 WHILE $depth <= 3 ) WHERE $depth > 1 9 SELECT i n ( ’ isModel ’ ) . c o l o r FROM #10:7 10 SELECT outV () FROM Bought WHERE PurchasePrice > 1000 11 SELECT s h o r t e s t p a t h (#19:5 ,#82:6 , ’BOTH’ ) 12 SELECT d i j k s t r a (#15:7 ,#19:8 , ’ weight ’ ) FROM V Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 39 / 54
  • 57. Caso de estudio - OrientDB: Operaciones Manejo grafos Otras funciones in(), out(), both(), outE(), inE(), bothE(), outV(), inV(), traversedElement(), traversedEdge(), traversedVertex(), shortestPath(), dijkstra(). Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 40 / 54
  • 58. Caso de estudio - OrientDB: Operaciones Seguridad Orientada a roles, predefinidos: admin,reader,writer. 1 INSERT INTO OUser SET name = ’ j a y ’ , password = ’ JaY ’ , s t a t u s = ’ACTIVE ’ , r o l e s = (SELECT FROM ORole WHERE name = ’ r e a d e r ’ ) Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 41 / 54
  • 59. Caso de estudio - OrientDB: Operaciones Seguridad Orientada a roles, predefinidos: admin,reader,writer. A nivel de registro, mediante campos especiales: allowRead, allow, allowUpdate, allowDelete 1 CREATE CLASS Order EXTENDS V, ORestricted 2 UPDATE #43:22 ADD allowRead #5:10 Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 41 / 54
  • 60. Caso de estudio - OrientDB: Arquitectura Arquitectura - Multi-Maestro12 12 Implementaci´on de HazelCast. Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 42 / 54
  • 61. Caso de estudio - OrientDB: Arquitectura Arquitectura Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 43 / 54
  • 62. Caso de estudio - OrientDB: Arquitectura Arquitectura Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 43 / 54
  • 63. Caso de estudio - OrientDB: Arquitectura Arquitectura Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 43 / 54
  • 64. Caso de estudio - OrientDB: Arquitectura Arquitectura - Distribuci´on de la configuraci´on Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 44 / 54
  • 65. Caso de estudio - OrientDB: Arquitectura Arquitectura Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 45 / 54
  • 66. Caso de estudio - OrientDB: Arquitectura Arquitectura - Cambio autom´atico de servidor Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 46 / 54
  • 67. Caso de estudio - OrientDB: Arquitectura Arquitectura - Actualizaci´on de las configuraciones Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 47 / 54
  • 68. Caso de estudio - OrientDB: Arquitectura Otros detalles ´Indice MVRB-tree, RB-Tree con m´ultiples valores en los nodos.13 Multi-Maestro Implementaci´on de HazelCast. Fallas temporales Hinted handoff & Sloppy quorum? 13 Andrey Lomakin groups.google.com/orient-database Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 48 / 54
  • 69. Caso de estudio - OrientDB: Limitaciones Limitaciones14 hotAlignment:Usado para mantener mensajes al nodo inalcanzable.Si est´a habilitado puede llevar a inconsistencia de la base de datos, si no, puede no guardarse toda la informaci´on del sharding. Sharding: No soporta auto-sharding. Tama˜no del registro Documentos, v´ertices y enlaces son almacenados como registros de hasta 2GB. Map-Reduce Solo puede ser simulado con consultas distribu´ıdas 14 M´as detalles en orientdb.com/docs/last/Limits.html Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 49 / 54
  • 70. Caso de estudio - OrientDB: Usos Usos 15 15 casos comunes incluyen: series de tiempo, motores de chat,almacenamiento en clave-valor, entre otros. Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 50 / 54
  • 71. Comparaciones Tendencia Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 51 / 54
  • 72. Conclusiones 1 Conceptos b´asicos. 2 Caso de estudio - OrientDB: 3 Comparaciones 4 Conclusiones Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 52 / 54
  • 73. Conclusiones Discusi´on ¿Preguntas o comentarios? Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 53 / 54
  • 74. Conclusiones Agradecimientos17 16 ¡Gracias! Disponible en: bit.do/MultiModel pre 16 xkcd.com/327 17 Realizado en Overleaf.com Frank T, Vanessa T, Wilmer G. (UCV) Multimodelos NoSQL - OrientDB February 2, 2016 54 / 54