This document provides an overview of how graph databases started the multi-model revolution. It begins with background on big data and the value of relationships between data. It then contrasts the relational model with graph databases and how graph databases allow for faster traversal of relationships. The document introduces the concept of multi-model databases that can handle different data models like documents, graphs, and key-value stores through a single platform. It presents OrientDB as an example of the first multi-model database that combines flexibility of documents with connectivity of graphs. Finally, it highlights some features and use cases of OrientDB.
4. Just Data
Order #134
(Order)
Luca
(Provider)
Commodore
Amiga 1200
(Product)
Jill
(Customer)
Monitor 40”
(Product)
Mouse
(Product)
Bruno
(Provider)
Data by itself has little
value, it’s the relationship
between data that gives it
incredible value
5. Relationships give data “meaning”
Order #134
(Order)
Luca
(Provider)
Commodore
Amiga 1200
(Product)
(Sells)
Jill
(Customer)
(Has)
(Makes)
Monitor 40”
(Product)
(Sells)
(Has)
Mouse
(Product)
Bruno
(Provider)
(Sells)
(Has)
8. Why do most NoSQL products
avoid
managing relationships?
9. Joins is the Evil
ID Name
10 John
11 John
24 Mike
28 Mike
ID Address
10 24
10 33
32 44
ID Location
24 Milan
33 London
18 Paris
18 Madrid
44 Moscow
Customer CustomerAddress Address
Is this
familiar?
15. Index Lookup: how does it work?
A-‐Z
A-‐L M-‐Z
A-‐L
A-‐D E-‐L
M-‐Z
M-‐R S-‐Z
A-‐D
A-‐B C-‐D
E-‐L
E-‐G H-‐L
E-‐G
E-‐F G
H-‐L
H-‐J K-‐L
Luca
Found!
This
lookup
took
5
steps.
With
millions
of
indexed
records,
the
tree
depth
could
be
1000’s
of
levels!
16. Joins Kill Performance
ID Name
10 John
11 John
24 Mike
28 Mike
ID Address
10 24
10 33
32 44
ID Location
24 Milan
33 London
18 Paris
18 Madrid
44 Moscow
Customer CustomerAddress Address
Joins are executed every time
you cross relationships
Querying million of records
joining 3-4 tables could
generate billions of
combinations
17. This is why the database
query performance
suffers as the database
increases in size
O(Log N)
19. In a world that’s becoming
more connected, we need a
better way to store data and
manage relationships
Read: Data is important, but relationships are even more fundamental today
20. “A graph database is any
storage system
that provides
index-free adjacency”
- Marko Rodriguez
(author of TinkerPop Blueprints)
24. Vertices
and
Edges
can
have
properties
Vertices
are
directed
*
https://github.com/tinkerpop/blueprints/wiki/Property-‐Graph-‐Model
Property Graph Model*
Sao
Paulo
people:
12,000,000
Luca
company:
OrientTechnologies
Vertices
and
Edges
can
have
properties
Vertices
and
Edges
can
have
properties
Visited
on:
2015
25. Luca Sao
Paulo
Visited
on:
2015
An
Edge
connects
only
2
vertices
Use
multiple
edges
to
represent
1-‐N
and
N-‐M
relationships
Worked
on:
2015
1-N and N-M Relationships
28. How does a true* Graph
Database
manage relationships?
*a “Graph” layer on top of a DBMS doesn’t qualify as a true GraphDB
29. Luca Sao
Paulo
Visited
on:
2015
#13:55
#15:99
Each element in the Graph
has own immutable Record ID
#22:11
(Edge)
(Vertex)
(Vertex)
Each element in the Graph
has own immutable Record ID
Each element in the Graph
has own immutable Record ID
30. Luca Sao
Paulo
Visited
on:
2015
#13:55
#15:99
Connections use
persistent pointers
out = #22:11
in = #22:11
#22:11
(Edge)
(Vertex)
(Vertex)
out = #13:55
in = #15:99
31. Luca Sao
Paulo
Visited
on:
2015
#13:55
#15:99out = #22:11
in = #22:11
#22:11
(Edge)
(Vertex)
(Vertex)
out = #13:55
in = #15:99
32. Luca Sao
Paulo
Visited
on:
2015
#13:55
#15:99out = #22:11
in = #22:11
#22:11
(Edge)
(Vertex)
(Vertex)
out = #13:55
in = #15:99
33. A Graph Database creates the
relationship just once
(when the edge is created)
VS
RDBMS computes the
relationship every time
you query a database
34. When you move from a RDBMS
to a Graph Database you jump
from a O(log N) speed to a near O(1)
With a Graph Database, the
traversing time is
not affected by database size!
This is huge in the BigData age
35. Graph Databases Easily Manage Complex
Relationships
No costs to traverse relationships:
• Recommendation engines
• Social Applications
• Spatial Apps
• Master Data Management
• Information Clustering
John
Thriller
Comedy
Pulp
Fiction
Mr Bean
Theater
B
Theater
A
Theater
C
NYC
San Josè
Lives in
Likes
44. What’s Multi-Model DBMS?
GraphDocument
Object
Key/Value
Multi Model represents the
intersection
of multiple models in just one
product
- Just one product to learn and maintain
- Just one vendor relationship to manage
- No ETL, no synchronization required
- Performance and Reliability is easy to test from the
beginning
45. Relationships give data “meaning”
Order #134
(Order)
Luca
(Provider)
Commodore
Amiga 1200
(Product)
(Sells)
Jill
(Customer)
(Has)
(Makes)
Monitor 40”
(Product)
(Sells)
(Has)
3 Wheel
Mouse
(Product)
Bruno
(Provider)
(Sells)
(Has)
46. Multi-Model domain schema
Customer Provider
Product
name: string
qty: int
Actor
name: string
surname: string
Sells
price: decimal
Inherits
Edge
Legenda:
V Vertex
Makes
Order
number: int
date: datetime
Has
price: decimal
47. `
Vertices and Edges are Documents
{
”@rid": “12:382”,
”@class": ”Customer",
“name”: “Jill”,
“surname” : “Raggio”,
“phone” : “+39 33123212”,
“details”: {
“city”:”London",
“tags”:”millennial”
}
}
Jill
Order
M
akes
General purpose solution:
• JSON
• Schema-less
• Schema-full
• Schema-hybrid
• Nested documents
• Rich indexing and querying
• Developer friendly
53. There are a few DBMSs that claim
to be Multi-Model, but they do not
have a true Graph Engine.
The “Graph” is only a layer on top
of the engine.
Under the hood they do JOINs,
which means traversal time is
affected by database size.
54. Meet OrientDB
The First Ever Multi-Model
Database Combining Flexibility
of Documents with
Connectedness of Graphs
55. With a true Graph, Document,
Key/Value and Object Oriented engine
56. FEATURES ORIENTDB)) MONGODB NEO4J
MYSQL)
(RDBMS)
Operational Database X X X
Graph Database X X
Document Database X X
Object-Oriented Concepts X
Schema-full, Schema-less, Schema mix X
User and Role & Record Level Security X
Record Level Locking X X X
SQL X X
ACID Transaction X X X
Relationships (Linked Documents) X X X
Custom Data Types X X X
Embedded Documents X X
Multi-Master Zero Configuration Replication X
Sharding X X
Server Side Functions X X X
Native HTTP Rest/ JSON X X
Embeddable with No Restrictions X
OrientDB features
58. • Support for TinkerPop standard
for Graph DB: Gremlin language
and Blueprints API
• SQL + extensions for graphs
• JDBC driver to connect any BI tool
• HTTP/JSON support
• Drivers in Java, Node.js, Python,
PHP, .NET, Perl, C/C++ and
more
API & Standards
59. Availability and Integrity
• Atomic, Consistent, Isolated and Durable (ACID)
multi-statement transactions
Master
Node
Master
Node
C
C C C
CC
C
Multi-master
Replication
60. Scalability and Performance
• Multi-Master Replication, Sharding and Auto-
Discovery to Simplify Ops
• +200k Tps on Commodity Hardware
Master
Node
Master
Node
C
C C C
CC
C
Auto-
Discovered
Node
61. Some numbers
50,000
Downloads per
Month from 200+
countries.
70+
Committers
contributing to
the product
1000s
Users from SMBs
to Fortune 10
Companies.
17+
Years of Research
have been put in
the product
62. A Bright Future
Graph DBMS increased their popularity by 500% within the last 2 years
Document DBMS are the 3rd fastest growing category
64. Get Started for Free
OrientDB Community Edition is FREE
for any purpose (Apache 2 license)
Udemy Getting Started Training is
★★★★★ and Free
http://www.orientechnologies.com/getting-started
OrientDB Enterprise is Free for
Development
65. Thank you.
Ask your questions on Twitter for the
Big Data Panel using #QCONBIGDATA
Luca Garulli
@lgarulli
www.orientdb.com