Dal modello Relazionale al Grafo: cosa cambia?
Alfonso Focareta
[email protected] – Pro-Netics S.p.A. – NuvolaBase ltdTwitter : @afocareta
Nome speakerMail speaker – company or community
RDBMS Features
• Born in 1970• Slow• Commonly used• Support SQL language
Nome speakerMail speaker – company or community
3
Graph Database (Property Graph)
Graph = (Vertex,Edge)
Nome speakerMail speaker – company or community
4
Graph
Nome speakerMail speaker – company or community
5
Graph
An object that contains vertices and edges.
Nome speakerMail speaker – company or community
6
Vertex
An object that is connected to other objects by edges.
Nome speakerMail speaker – company or community
7
Edge
An object that connects two vertices.
Nome speakerMail speaker – company or community
8
Graph “Real” example
Love Love
Nome speakerMail speaker – company or community
9
Graph “Real Example” 2
Love Love
Know
Know Know
Sell
Nome speakerMail speaker – company or community
10
Property Graph
• Key/value-based• Directed• multi-relational
Nome speakerMail speaker – company or community
11
2012:The year of Graph (blogs.forrester.com)
• social media analytics• marketing campaign optimization• customer experience fine-tuning
Nome speakerMail speaker – company or community
12
GraphDb list
• OrientDB• Neo4j• Dex• GiraffeDB
Nome speakerMail speaker – company or community
13
Document-Graph database with the support of ACID Transactions, SQL and Native Queries, Asynchronous Commands, Intents.
Nome speakerMail speaker – company or community
14
OrientDb - Fast
150.000 documents per second
10 billions of documents per day
Nome speakerMail speaker – company or community
15
OrientDB – Transactional
Supports ACID Transaction:• Atomicity• Consistency• Isolation• Durability
Nome speakerMail speaker – company or community
16
OrientDB – SQL
Supports SQL language with extensions to handle relationships without JOINs, manage trees and graphs of connected documents
Nome speakerMail speaker – company or community
17
OrientDB – Web Ready
• HTTP• RESTful • JSON
Nome speakerMail speaker – company or community
18
OrientDb - Ø config
download, unzip, run!
cut & paste the db
Nome speakerMail speaker – company or community
19
OrientDB – Portability
• Runs everywhere is available Java® JRE1.5+• Driver in JAVA, Javascript, C, Php, Ruby, .NET, Python …
Nome speakerMail speaker – company or community
20
OrientDb – Hooks
similar to triggers catch events against records, database and transactions implement custom cascade deletion algorithm
enforce constraints
Nome speakerMail speaker – company or community
21
OrientDB - Free
FREE for any use : Open Source License Apache 2.0
Nome speakerMail speaker – company or community
22
Example
Classical Business domain : Billing
Objects: • Bill• Customer• Vendor• Products
Nome speakerMail speaker – company or community
23
Example Domain
Nome speakerMail speaker – company or community
24
OrientDB – Create vertexODocument product = database.createVertex();vertex.field(”id", ”1");vertex.field(”price", 10000);
Vertex.field(“vat type”,10)vertex.save();
Nome speakerMail speaker – company or community
25
OrientDB create EdgeODocument product= database.createVertex();vertex.field(”id", ”1");vertex.field(”price", 10000);
Vertex.field(“vat type”,10)
ODocument bill = database.createVertex();vertex2.field(”id", ”1");
ODocument edge = database.createEdge( product, bill);edge.field(”number", ”20");edge.save();
Nome speakerMail speaker – company or community
26
OrientDB – remove Edge / delete Vertex
database.removeEdge( edge )
database.removeVertex( vertex )
Nome speakerMail speaker – company or community
27
Demo
Nome speakerMail speaker – company or community
28
ThinkerPopproposes standards for the world of GraphDB through the development of open source projects
Nome speakerMail speaker – company or community
29
ThinkerPop - BlueprintsBlueprints is a collection of interfaces, implementations, ouplementations, and test suites for the property graph data model.
Blueprints is analogous to the JDBC, but for graph databases.
Nome speakerMail speaker – company or community
30
BluePrints - ExampleGraph graph = new OrientGraph("/tmp/my_graph");
Vertex a = graph.addVertex(null);
Vertex b = graph.addVertex(null);
a.setProperty("name","marko");
b.setProperty("name","peter");
Edge e = graph.addEdge(null, a, b, "knows"); e.setProperty("since", 2006);
graph.shutdown();
Nome speakerMail speaker – company or community
31
ThinkerPop - GremlinGremlin is a graph traversal language used for graph query, analysis, and manipulation.
Nome speakerMail speaker – company or community
32
Gremlin - Example
TBD
Nome speakerMail speaker – company or community
33
NuvolaBase
Create your GraphDatabase on the cloud in 1 minute.
www.nuvolabase.com
Dal modello Relazionale al Grafo: cosa cambia?
Alfonso Focareta
[email protected] Pro-Netics S.p.A. - Team Leader/Senior DeveloperNuvolaBase Ltd – Software EngineerTwitter : @afocareta