SlideShare a Scribd company logo
ROME 11-12 april 2014ROME 11-12 april 2014
OrientDB: a Document-Graph Database
ready for the Cloud
OrientDB Committer
OrientDB Academy Coordinator at Orient Technologies LTD
Project Manager at AssetData S.r.l.
Email: l.dellaquila – at – orientechnologies.com
Twitter: @ldellaquila
Luigi Dell’Aquila
ROME 11-12 april 2014 - Luigi Dell’Aquila
Relational Databases:
Everybody knows what a TABLE is
Everybody knows SQL
ROME 11-12 april 2014 - Luigi Dell’Aquila
These are tables,
Data ARE Tables!
ROME 11-12 april 2014 - Luigi Dell’Aquila
These are tables,
Data ARE Tables!
ROME 11-12 april 2014 - Luigi Dell’Aquila
These are tables,
Data ARE Tables!
ROME 11-12 april 2014 - Luigi Dell’Aquila
But this is not
ROME 11-12 april 2014 - Luigi Dell’Aquila
But this is not
ROME 11-12 april 2014 - Luigi Dell’Aquila
But this is not
ROME 11-12 april 2014 - Luigi Dell’Aquila
But this is not
ROME 11-12 april 2014 - Luigi Dell’Aquila
But this is not
ROME 11-12 april 2014 - Luigi Dell’Aquila
These are
GRAPHS!
ROME 11-12 april 2014 - Luigi Dell’Aquila
And sometimes
Representing them in tables
Can be difficult
And
Inefficient
ROME 11-12 april 2014 - Luigi Dell’Aquila
Think about it…
ROME 11-12 april 2014 - Luigi Dell’Aquila
When you write your code
You have to deal with
Links, References, Pointers
ROME 11-12 april 2014 - Luigi Dell’Aquila
When you write your code
You have to deal with
Collections and Maps
(and dynamic data structures!)
ROME 11-12 april 2014 - Luigi Dell’Aquila
When you write your code
You have to deal with
Nested and complex objects
ROME 11-12 april 2014 - Luigi Dell’Aquila
When you write your code
You have to deal with
Class hierarchies,
Inheritance, Polymorphism
ROME 11-12 april 2014 - Luigi Dell’Aquila
Would You Like
A Storage Layer
That Supports ALL
These Conceps
Out Of The Box?
ROME 11-12 april 2014
This is why
Was born
- Luigi Dell’Aquila
ROME 11-12 april 2014 - Luigi Dell’Aquila
Two data models:
Graph
and
Document
ROME 11-12 april 2014 - Luigi Dell’Aquila
Classes, not Tables
create class Person
create class Student extends Person
select from Person
Polymorphic query: returns both instances of Person and
Student
ROME 11-12 april 2014 - Luigi Dell’Aquila
Dynamic schema
create class Person
insert into Person (name, surname) values (“Luigi”,
“Dell’Aquila”)
No need to fully specify the class structure, you can work in
schemaless mode
ROME 11-12 april 2014 - Luigi Dell’Aquila
Complex attributes
Update person
set address = {
“street”: “5th Ave”,
“city”: “NY”
},
tags = [“developer”, “artist”, “geek”]
Collections and embedded properties
ROME 11-12 april 2014 - Luigi Dell’Aquila
Physical links
(no Join!)
Update person set address.city =
(select from city where name = ‘Rome’)
where name = ‘Luigi’
Select address.city.country.name
from Person where name = ‘Luigi’
Dot notation instead of Join
No need for foreign keys
O(1) computational cost – compared to O(log N) in relational Join
ROME 11-12 april 2014 - Luigi Dell’Aquila
The Graph API
(TinkerPop Blueprints)
Traverse out(“Friend”) from
(select from Person where name = ‘Luigi’)
while address.city = ‘Rome’
Find my friends network in my city (friends, firends of frineds,
friends of friends of friends…)
Deep traversal, no need to know in advance HOW deep
ROME 11-12 april 2014 - Luigi Dell’Aquila
Every record has unique ID
Select from Person
{"result": [
{
"@rid": "#13:0",
"@class": “Person",
"name": "Luigi",
"surname": "Dell'Aquila",
"friendOf": "#13:1"
}
]}
ROME 11-12 april 2014 - Luigi Dell’Aquila
Every record has unique ID
Select from Person
{"result": [
{
"@rid": "#13:0",
"@class": “Person",
"name": "Luigi",
"surname": "Dell'Aquila",
"friendOf": "#13:1"
}
]}
ROME 11-12 april 2014 - Luigi Dell’Aquila
Every record has unique ID
Select from Person
{"result": [
{
"@rid": "#13:0",
"@class": “Person",
"name": "Luigi",
"surname": "Dell'Aquila",
"friendOf": "#13:1"
}
]}
ROME 11-12 april 2014 - Luigi Dell’Aquila
Record ID (RID)
=
Physical position
ROME 11-12 april 2014 - Luigi Dell’Aquila
Traversing relationships
=
Following a physical path
ROME 11-12 april 2014 - Luigi Dell’Aquila
It means:
• Accessing linked data is very efficient
• No calculation *
• Independent from cluster size **
• Deep traversal is allowed and encouraged ***
* In RDMS, a Join is calculated EVERY TIME you execute a query
** RDBS use index-based optimization to speed up joins, but index
access is O(log N), so it depends on data size – what about Big
Data???
*** in RDMS multiple joins are inefficient (would you dare to write a
query with 1000 joins?)
ROME 11-12 april 2014 - Luigi Dell’Aquila
But OrientDB
Gives you more!
ROME 11-12 april 2014 - Luigi Dell’Aquila
Javascript In the Storage
Extend the query language
With you own functions
ROME 11-12 april 2014 - Luigi Dell’Aquila
Javascript functions
As REST services
ROME 11-12 april 2014 - Luigi Dell’Aquila
But of course you can use it
from
ROME 11-12 april 2014 - Luigi Dell’Aquila
90’s are gone
Today you need
ROME 11-12 april 2014 - Luigi Dell’Aquila
Scalability
ROME 11-12 april 2014 - Luigi Dell’Aquila
High availability
ROME 11-12 april 2014 - Luigi Dell’Aquila
Fault tolerance
ROME 11-12 april 2014 - Luigi Dell’Aquila
Today everybody
(with a little luck)
Can write a killer app
And reach billions of users
ROME 11-12 april 2014 - Luigi Dell’Aquila
provides:
Replication (Multi Master)
and
Sharding
Also on cloud infrastructures
ROME 11-12 april 2014 - Luigi Dell’Aquila
HAZELCAST HAZELCAST
HAZELCAST
Multi Master
ROME 11-12 april 2014 - Luigi Dell’Aquila
Example
ROME 11-12 april 2014 - Luigi Dell’Aquila
HAZELCAST HAZELCAST
HAZELCAST
Amazon
Elastic
Load
Balancing
+
Auto
Scaling
ROME 11-12 april 2014 - Luigi Dell’Aquila
HOWTO 1/3
Key pair
ROME 11-12 april 2014 - Luigi Dell’Aquila
HOWTO 2/3
Security group
ROME 11-12 april 2014 - Luigi Dell’Aquila
HOWTO 3/3
ROME 11-12 april 2014ROME 11-12 april 2014
http://www.orientechnologies.com
http://www.orientechnologies.com/training
https://github.com/orientechnologies/orientdb/
Job opportunities: jobs@assetdata.it
References
ROME 11-12 april 2014ROME 11-12 april 2014
http://www.orientechnologies.com/event/orientdb-
planet-first-conference-orientdb-rome-italy/
OrientDB Planet

More Related Content

ODP
Omeka s workshopdcmi
PDF
OrientDB
PDF
My app social business - Guarnacci e Delvecchio
PPTX
Graph Databases for SQL Server Professionals - SQLSaturday #350 Winnipeg
PDF
Session 203 iouc summit database
PDF
DSD-INT 2014 - Delft-FEWS Users Meeting - Recent developments in FEWS, Gerben...
PPTX
What's New in Oracle SQL Developer for 2018
PPTX
EdTechJoker Spring 2020 - Lecture 7 Drupal intro
Omeka s workshopdcmi
OrientDB
My app social business - Guarnacci e Delvecchio
Graph Databases for SQL Server Professionals - SQLSaturday #350 Winnipeg
Session 203 iouc summit database
DSD-INT 2014 - Delft-FEWS Users Meeting - Recent developments in FEWS, Gerben...
What's New in Oracle SQL Developer for 2018
EdTechJoker Spring 2020 - Lecture 7 Drupal intro

Similar to OrientDB: a Document-Graph Database ready for the Cloud - Dell'Aquila (20)

PDF
Vert.x - Dessì
PDF
“Publishing and Consuming Linked Data. (Lessons learnt when using LOD in an a...
ODP
sopac : connecting koha and drupal
PPTX
.NET Development for SQL Server Developer
PPTX
Drupal
DOC
Mostafa EL-Masry Project
PPT
Session 5 - SOPAC: Further Separateing Front Office and Back Office Application
PPTX
Ddd cqrs - Forat Latif
PPTX
Sviluppare in cloud con M.E.A.N.: il caso Crowdcore
PPTX
How to execute the performance tests during a build in a continuous delivery ...
PPTX
How execute perfomance tests in a continuous delivery environment
PDF
Hive sq lfor-hadoop
PDF
Oracle Service Bus and Oracle SOA Suite in the Mobile World
PPTX
THE POWER OF OPENDJ AND REST
PDF
Web Frameworks
PPTX
Microsoft Flow : what you need to know before starting a real project
PDF
Session Flow advanced - Serge Luca, Isabelle van Campenhoudt
KEY
Sybase To Oracle Migration for Developers
PDF
CV_Vaira_Pasquale - Eng
PDF
Sketchnotes+Service Design=BFFs :: Service Design Meetup [Tue Feb 11, 2014]
Vert.x - Dessì
“Publishing and Consuming Linked Data. (Lessons learnt when using LOD in an a...
sopac : connecting koha and drupal
.NET Development for SQL Server Developer
Drupal
Mostafa EL-Masry Project
Session 5 - SOPAC: Further Separateing Front Office and Back Office Application
Ddd cqrs - Forat Latif
Sviluppare in cloud con M.E.A.N.: il caso Crowdcore
How to execute the performance tests during a build in a continuous delivery ...
How execute perfomance tests in a continuous delivery environment
Hive sq lfor-hadoop
Oracle Service Bus and Oracle SOA Suite in the Mobile World
THE POWER OF OPENDJ AND REST
Web Frameworks
Microsoft Flow : what you need to know before starting a real project
Session Flow advanced - Serge Luca, Isabelle van Campenhoudt
Sybase To Oracle Migration for Developers
CV_Vaira_Pasquale - Eng
Sketchnotes+Service Design=BFFs :: Service Design Meetup [Tue Feb 11, 2014]
Ad

More from Codemotion (20)

PDF
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
PDF
Pompili - From hero to_zero: The FatalNoise neverending story
PPTX
Pastore - Commodore 65 - La storia
PPTX
Pennisi - Essere Richard Altwasser
PPTX
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
PPTX
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
PPTX
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
PPTX
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
PDF
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
PDF
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
PDF
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
PDF
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
PDF
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
PDF
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
PPTX
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
PPTX
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
PDF
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
PDF
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
PDF
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
PDF
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Pompili - From hero to_zero: The FatalNoise neverending story
Pastore - Commodore 65 - La storia
Pennisi - Essere Richard Altwasser
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Ad

Recently uploaded (20)

PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPT
Teaching material agriculture food technology
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Approach and Philosophy of On baking technology
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PPTX
Cloud computing and distributed systems.
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
Big Data Technologies - Introduction.pptx
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Empathic Computing: Creating Shared Understanding
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
MIND Revenue Release Quarter 2 2025 Press Release
Building Integrated photovoltaic BIPV_UPV.pdf
Teaching material agriculture food technology
MYSQL Presentation for SQL database connectivity
Unlocking AI with Model Context Protocol (MCP)
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Approach and Philosophy of On baking technology
Digital-Transformation-Roadmap-for-Companies.pptx
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Cloud computing and distributed systems.
Understanding_Digital_Forensics_Presentation.pptx
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Big Data Technologies - Introduction.pptx
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Empathic Computing: Creating Shared Understanding
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Review of recent advances in non-invasive hemoglobin estimation
MIND Revenue Release Quarter 2 2025 Press Release

OrientDB: a Document-Graph Database ready for the Cloud - Dell'Aquila

  • 1. ROME 11-12 april 2014ROME 11-12 april 2014 OrientDB: a Document-Graph Database ready for the Cloud OrientDB Committer OrientDB Academy Coordinator at Orient Technologies LTD Project Manager at AssetData S.r.l. Email: l.dellaquila – at – orientechnologies.com Twitter: @ldellaquila Luigi Dell’Aquila
  • 2. ROME 11-12 april 2014 - Luigi Dell’Aquila Relational Databases: Everybody knows what a TABLE is Everybody knows SQL
  • 3. ROME 11-12 april 2014 - Luigi Dell’Aquila These are tables, Data ARE Tables!
  • 4. ROME 11-12 april 2014 - Luigi Dell’Aquila These are tables, Data ARE Tables!
  • 5. ROME 11-12 april 2014 - Luigi Dell’Aquila These are tables, Data ARE Tables!
  • 6. ROME 11-12 april 2014 - Luigi Dell’Aquila But this is not
  • 7. ROME 11-12 april 2014 - Luigi Dell’Aquila But this is not
  • 8. ROME 11-12 april 2014 - Luigi Dell’Aquila But this is not
  • 9. ROME 11-12 april 2014 - Luigi Dell’Aquila But this is not
  • 10. ROME 11-12 april 2014 - Luigi Dell’Aquila But this is not
  • 11. ROME 11-12 april 2014 - Luigi Dell’Aquila These are GRAPHS!
  • 12. ROME 11-12 april 2014 - Luigi Dell’Aquila And sometimes Representing them in tables Can be difficult And Inefficient
  • 13. ROME 11-12 april 2014 - Luigi Dell’Aquila Think about it…
  • 14. ROME 11-12 april 2014 - Luigi Dell’Aquila When you write your code You have to deal with Links, References, Pointers
  • 15. ROME 11-12 april 2014 - Luigi Dell’Aquila When you write your code You have to deal with Collections and Maps (and dynamic data structures!)
  • 16. ROME 11-12 april 2014 - Luigi Dell’Aquila When you write your code You have to deal with Nested and complex objects
  • 17. ROME 11-12 april 2014 - Luigi Dell’Aquila When you write your code You have to deal with Class hierarchies, Inheritance, Polymorphism
  • 18. ROME 11-12 april 2014 - Luigi Dell’Aquila Would You Like A Storage Layer That Supports ALL These Conceps Out Of The Box?
  • 19. ROME 11-12 april 2014 This is why Was born - Luigi Dell’Aquila
  • 20. ROME 11-12 april 2014 - Luigi Dell’Aquila Two data models: Graph and Document
  • 21. ROME 11-12 april 2014 - Luigi Dell’Aquila Classes, not Tables create class Person create class Student extends Person select from Person Polymorphic query: returns both instances of Person and Student
  • 22. ROME 11-12 april 2014 - Luigi Dell’Aquila Dynamic schema create class Person insert into Person (name, surname) values (“Luigi”, “Dell’Aquila”) No need to fully specify the class structure, you can work in schemaless mode
  • 23. ROME 11-12 april 2014 - Luigi Dell’Aquila Complex attributes Update person set address = { “street”: “5th Ave”, “city”: “NY” }, tags = [“developer”, “artist”, “geek”] Collections and embedded properties
  • 24. ROME 11-12 april 2014 - Luigi Dell’Aquila Physical links (no Join!) Update person set address.city = (select from city where name = ‘Rome’) where name = ‘Luigi’ Select address.city.country.name from Person where name = ‘Luigi’ Dot notation instead of Join No need for foreign keys O(1) computational cost – compared to O(log N) in relational Join
  • 25. ROME 11-12 april 2014 - Luigi Dell’Aquila The Graph API (TinkerPop Blueprints) Traverse out(“Friend”) from (select from Person where name = ‘Luigi’) while address.city = ‘Rome’ Find my friends network in my city (friends, firends of frineds, friends of friends of friends…) Deep traversal, no need to know in advance HOW deep
  • 26. ROME 11-12 april 2014 - Luigi Dell’Aquila Every record has unique ID Select from Person {"result": [ { "@rid": "#13:0", "@class": “Person", "name": "Luigi", "surname": "Dell'Aquila", "friendOf": "#13:1" } ]}
  • 27. ROME 11-12 april 2014 - Luigi Dell’Aquila Every record has unique ID Select from Person {"result": [ { "@rid": "#13:0", "@class": “Person", "name": "Luigi", "surname": "Dell'Aquila", "friendOf": "#13:1" } ]}
  • 28. ROME 11-12 april 2014 - Luigi Dell’Aquila Every record has unique ID Select from Person {"result": [ { "@rid": "#13:0", "@class": “Person", "name": "Luigi", "surname": "Dell'Aquila", "friendOf": "#13:1" } ]}
  • 29. ROME 11-12 april 2014 - Luigi Dell’Aquila Record ID (RID) = Physical position
  • 30. ROME 11-12 april 2014 - Luigi Dell’Aquila Traversing relationships = Following a physical path
  • 31. ROME 11-12 april 2014 - Luigi Dell’Aquila It means: • Accessing linked data is very efficient • No calculation * • Independent from cluster size ** • Deep traversal is allowed and encouraged *** * In RDMS, a Join is calculated EVERY TIME you execute a query ** RDBS use index-based optimization to speed up joins, but index access is O(log N), so it depends on data size – what about Big Data??? *** in RDMS multiple joins are inefficient (would you dare to write a query with 1000 joins?)
  • 32. ROME 11-12 april 2014 - Luigi Dell’Aquila But OrientDB Gives you more!
  • 33. ROME 11-12 april 2014 - Luigi Dell’Aquila Javascript In the Storage Extend the query language With you own functions
  • 34. ROME 11-12 april 2014 - Luigi Dell’Aquila Javascript functions As REST services
  • 35. ROME 11-12 april 2014 - Luigi Dell’Aquila But of course you can use it from
  • 36. ROME 11-12 april 2014 - Luigi Dell’Aquila 90’s are gone Today you need
  • 37. ROME 11-12 april 2014 - Luigi Dell’Aquila Scalability
  • 38. ROME 11-12 april 2014 - Luigi Dell’Aquila High availability
  • 39. ROME 11-12 april 2014 - Luigi Dell’Aquila Fault tolerance
  • 40. ROME 11-12 april 2014 - Luigi Dell’Aquila Today everybody (with a little luck) Can write a killer app And reach billions of users
  • 41. ROME 11-12 april 2014 - Luigi Dell’Aquila provides: Replication (Multi Master) and Sharding Also on cloud infrastructures
  • 42. ROME 11-12 april 2014 - Luigi Dell’Aquila HAZELCAST HAZELCAST HAZELCAST Multi Master
  • 43. ROME 11-12 april 2014 - Luigi Dell’Aquila Example
  • 44. ROME 11-12 april 2014 - Luigi Dell’Aquila HAZELCAST HAZELCAST HAZELCAST Amazon Elastic Load Balancing + Auto Scaling
  • 45. ROME 11-12 april 2014 - Luigi Dell’Aquila HOWTO 1/3 Key pair
  • 46. ROME 11-12 april 2014 - Luigi Dell’Aquila HOWTO 2/3 Security group
  • 47. ROME 11-12 april 2014 - Luigi Dell’Aquila HOWTO 3/3
  • 48. ROME 11-12 april 2014ROME 11-12 april 2014 http://www.orientechnologies.com http://www.orientechnologies.com/training https://github.com/orientechnologies/orientdb/ Job opportunities: jobs@assetdata.it References
  • 49. ROME 11-12 april 2014ROME 11-12 april 2014 http://www.orientechnologies.com/event/orientdb- planet-first-conference-orientdb-rome-italy/ OrientDB Planet