SlideShare una empresa de Scribd logo
1 de 38
Descargar para leer sin conexión
KW-JS.Everywhere() 
October 2014 
Node.js with OrientDB 
Presented by Greg McCarvell 
Orient Technologies www.orientdb.com
DISCLAIMER 
I am shallow. 
not Greg… the presentation 
both Node.js and OrientDB are full featured technologies 
Orient Technologies www.orientdb.com
Why OrientDB? 
Understanding the landscape 
Orient Technologies www.orientdb.com
NEW DATA REQUIREMENTS 
interwebs 
Orient Technologies www.orientdb.com 
Reach WEB 
ACCESS Social 
Relational Databases 
i18n 
From 1970 until today, relational 
databases have ruled the landscape. 
In 2009 the NoSQL movement 
gained traction due to the 
shortcomings of the relational 
model. MANY FACTORS contributed 
to the need for new ideas. 
It’s not 1970 anymore 
broadband 
mobile access 
cultural changes
the minds of developers opened 
! Choices, choices 
Today there are a variety of 
choices in DBMS. Each has their own 
strengths, evaluating your needs is 
critical. 
NoSQL OPTIONS 
Document 
Orient Technologies www.orientdb.com 
Column Based 
Key/Value 
Object Graph
WHAT ABOUT OrientDB? 
where do we fit in the scheme of things? 
Document Graph 
OrientDB is a document-graph database 
We provide the flexibility and speed of a document store combined 
with the advanced relationship features of a graph database 
…and lots more 
Orient Technologies www.orientdb.com
RELATIONAL VS GRAPH 
what are the major differences? 
ID Name Employer 
10 Gary Weis 232 
12 Betty Crocker 899 
13 Bob Jones 232 
88 Tessa Virtue 12 
Companies 
ID Name 
899 ABC Inc. 
232 Acme Corp. 
998 Z Industries 
12 BMO 
Orient Technologies www.orientdb.com 
People 
Relational databases store data in tables 
They use a foreign key and a JOIN operation to determine relationships
RELATIONAL VS GRAPH 
what are the major differences? 
Company 
#14:15 
ABC Inc. 
Graph databases use direct links for relationships 
“Edges” allow for index free adjacency and tremendous FLEXIBILITY! 
Orient Technologies www.orientdb.com 
Person 
#12:10 
Gary Weis 
Person 
#12:10 
Gary Weis 
Person 
#12:10 
Gary Weis 
Company 
#14:15 
ABC Inc. 
Employee 
status: full-time 
Employee 
status: full-time 
Employee 
status: part-time 
LOOK MA! 
I have two jobs! 
Customer 
last order: today
RELATIONAL VS GRAPH 
what are the major differences? 
Relationships 
based on context 
Partner 
ownership: 1% 
Many to Many? 
Pie ce of cake 
Graph databases make data modelling natural 
Build your model as you would think of the data intuitively 
Orient Technologies www.orientdb.com 
Company 
#14:15 
ABC Inc. 
Person 
#12:10 
Gary Weis Employee 
status: full-time 
Customer 
last order: today 
Tag 
#12:10 
Seller 
Person 
#14:10 
Bob 
Tag 
#12:11 
Buyer 
Tag 
#12:11 
Hot Lead 
Person 
#14:12 
Dave 
Person 
#14:22 
Ruby 
Employee 
#12:10 
VP 
Employee 
#12:10 
Director 
Employee 
#12:10 
Director 
Employee 
#12:10 
Manager 
Employee 
#12:10 
Manager 
Employee 
#12:10 
Manager 
Employee 
#12:10 
Manager 
Hierarch i cal data? 
C hild’s play
MORE OrientDB FEATURES 
We will cover these later… 
Orient Technologies www.orientdb.com 
" 
Schema-less, schema-ful or schema-mixed 
Inheritance and polymorphism in your model 
Extended SQL syntax, blueprints, gremlin 
Multi-master replication and sharding for horizontal scalability 
A wide selection of language API’s 
Browser based development Studio 
Embedded functions, record level security, REST, web server…. 
Phew! Lets get to some hands on learning.
AN IMPORTANT ONE 
APACHE 2.0 
A truly permissive license 
! 
! 
Use for free for ANY purpose - guaranteed 
we’ll pa ss o n GPL thanks 
Orient Technologies www.orientdb.com
Installation 
No worries, it’s easy 
Orient Technologies www.orientdb.com
$ 
You only need a JVM installed to run the server 
Orient Technologies www.orientdb.com 
# 
Download 
Unzip 
% 
Run 
THREE STEPS 
and 5 minutes
Section 3 - Data Modelling Concepts 
& Concepts 
The moving parts 
Orient Technologies www.orientdb.com
Links 
Orient Technologies www.orientdb.com 
DATA ENTITY 
The primary storage 
container of data. Also 
referred to as a record. 
In Graph mode it is 
called a Vertex (or Node) 
RELATIONSHIP 
A direct connection 
between two Vertices or 
Documents. Edges and 
Links are the relationships 
in OrientDB. 
DATA ATTRIBUTE 
Typed or JSON data 
embedded in Documents, 
Vertices or Edges. Useful 
to query, sort and more! 
KEY ELEMENTS 
the building blocks 
Document 
& Vertex 
firstName: “Bob” 
lastName: “Barker” 
age: 102 
createdAt: 10/12/12 
Edge 
Pro p ert ie s 
mother: #22:187
♂ Person Characteristics 
Orient Technologies www.orientdb.com 
' 
{! 
@rid: 20:12,! 
first: “Bob”,! 
last: “Barker”,! 
birth: 03/04/1920,! 
children: [! 
#22:123,! 
#20:776! 
]! 
}! 
• Inherently unstructured 
• Varied contents (schema-less) 
• Can contain Links to other documents 
• Can contain sub-documents 
• Has a Class type 
• Has an unique ID (graph wide) 
• Are stored inside of a Cluster 
• Record ID is composed of cluster & 
position (#13:1) 
♂ 
DOCUMENTS 
Fast, efficient and flexible storage 
Person 
{! 
@rid: 20:23,! 
first: “Wendy”,! 
last: “Smith”,! 
birth: 06/02/1974,! 
children: [],! 
pet: {! 
name: “Davis”,! 
type: “Dog”,! 
color: “Black”! 
},! 
gender: “female”! 
}!
PROPERTIES 
A place to store your stuff 
♂ Person 
{! 
@rid: 20:23,! 
first: “Wendy”,! 
last: “Smith”,! 
birth: 06/02/1974,! 
children: [],! 
pet: {! 
name: “Davis”,! 
type: “Dog”,! 
color: “Black”! 
},! 
gender: “female”! 
}! 
Orient Technologies www.orientdb.com 
) 
Characteristics 
• Have an unique name 
• Have a data type 
• Can be indexed 
• Schema-full restrictions 
• Min/Max 
• Mandatory 
• Readonly 
• Not Null 
• Unique 
• Regexp 
DATA TYPES 
• Boolean 
• Integer 
• Short 
• Long 
• Float 
• Double 
• Datetime 
• String 
• Binary 
• Embedded 
• Embedded list 
• Embedded set 
• Embedded map 
• Link 
• Link list 
• Link set 
• Link map 
• Byte 
• Transient 
• Date 
• Custom 
• Decimal 
• LinkBag 
• Any (non determined) 
* Tes t on 
Tuesday!
VERTEX 
Storage for a graph 
♂ Person 
{! 
@rid: 20:23,! 
first: “Wendy”,! 
last: “Smith”,! 
birth: 06/02/1974,! 
children: [],! 
in: [! 
#13:2, #13:45! 
],! 
out: [! 
#12:10, #14:33! 
]! 
}! 
Orient Technologies www.orientdb.com 
* 
Characteristics 
• Similar to a document 
• Can store data 
• Has ID, cluster, links etc 
• Has a collection of 
• incoming edges 
• outgoing edges 
• Also called “Nodes” 
They are also 
ALWAYS round
EDGE 
Fast, efficient and flexible storage 
,Company 
Orient Technologies www.orientdb.com 
Characteristics 
• Stored as a document 
• Can have properties 
• Has ID, cluster 
• Has a name (E by default) 
• Has a direction (from & to) 
• Incoming Vertex (Head) 
• Outgoing Vertex (Tail) 
+ Employs 
♂ Person 
{! 
@rid: 20:23,! 
first: “Wendy”,! 
last: “Smith”,! 
birth: 06/02/1974! 
}! 
+ 
{! 
@rid: 18:99,! 
name: “ACME”,! 
volume: 980000,! 
: 06/02/1974! 
}! 
{! 
startDate: “2010-01-01”! 
}!
CLASS 
Types of Data 
Orient Technologies www.orientdb.com 
- 
Characteristics 
• Each record must have one 
• Can inherit from another class 
• Still allows for schema-less data 
• Can have multiple clusters 
• Has a default cluster 
• Can contain properties for a 
schema-ful or schema-mixed model 
♂ Person 
{! 
superclass: “V”,! 
clusters: [12,14],! 
defaultCluster: 12,! 
properties: [! 
{! 
name: "lastName",! 
type: "STRING",! 
mandatory: false,! 
readonly: false,! 
notNull: false,! 
min: null,! 
max: null,! 
collate: "default"! 
}! 
]}! 
♂ SuperHero 
{! 
superclass: “Person”,! 
clusters: [15],! 
defaultCluster: 15,! 
properties: [! 
{! 
name: "strength",! 
type: “LONG",! 
mandatory: false,! 
readonly: false,! 
notNull: false,! 
min: 1,! 
max: 1000000,! 
collate: "default"! 
}! 
]}!
CLUSTER 
Storage flexibility 
. USA . 
• Where a group of records are stored 
• By default, one cluster per class 
• Can have multiple clusters per class 
• Useful for storage, scaling and 
archiving purposes 
• Can be used for optimized queries 
♂ ♂ 
♂ Person 
♂ Person 
♂ Person 
♂ Person 
♂ Person 
Orient Technologies www.orientdb.com 
Characteristics 
♂ Person 
{! 
@rid: 20:23,! 
first: “Wendy”,! 
last: “Smith”,! 
country: USA! 
}! 
♂ Person 
{! 
@rid: 20:18,! 
first: “Bill”,! 
last: “Brown”,! 
country: USA! 
}! 
♂ Person 
{! 
@rid: 20:231,! 
first: “Tammy”,! 
last: “Taylor”,! 
country: USA! 
}! 
♂ Person 
{! 
@rid: 20:881,! 
first: “Tiffany”,! 
last: “Henry”,! 
country: USA! 
}! 
♂ Person 
{! 
@rid: 20:31,! 
first: “Alex”,! 
last: “Chang”,! 
country: USA! 
}! 
. Europe 
{! 
@rid: 22:23,! 
first: “Jacques”,! 
last: “Revere”,! 
country: France! 
}! 
{! 
@rid: 22:922,! 
first: “Guilia”,! 
last: “Abruzzo”,! 
country: Italy! 
}! 
{! 
@rid: 22:11,! 
first: “Fabio”,! 
last: “Gilberti”,! 
country: Italy! 
}! 
{! 
@rid: 22:313,! 
first: “Laurent”,! 
last: “Biraghi”,! 
country: France! 
}! 
{! 
@rid: 22:111,! 
first: “Erwan”,! 
last: “Enault”,! 
country: France! 
}!
CLUSTER 
Storage scalability 
 Automatic Map/Reduce Query 
Directed query to one cluster 
/ VPS: Dallas TX / VPS: San Jose CA / VPS: Paris FR 
.♂ USA1 .♂ USA2 .♂ Europe1 
Orient Technologies www.orientdb.com
CLUSTER 
Storage replication 
/ VPS: Dallas TX / VPS: San Jose CA / VPS: New York NY 
.♂ USA1 .♂ USA2 .♂ USA3 
.♂ USA2 .♂ USA3 .♂ USA1 
Multi-Master Replication! 
Orient Technologies www.orientdb.com
Studio 
5 minute overview 
Orient Technologies www.orientdb.com
Console Tool 
There is one… no time to demo 
Orient Technologies www.orientdb.com
Node.js & OrientDB 
The HelloWorld of my world 
Orient Technologies www.orientdb.com
Setup 
Orient Technologies www.orientdb.com
Let’s see some examples 
& SQL API 
Getting Started 
Orient Technologies www.orientdb.com
Language Bindings 
& APIs 
Choose your platform 
Orient Technologies www.orientdb.com
EXAMPLES 
Working with Classes 
Orient Technologies www.orientdb.com 
1 
2 
3 
4 
5 
6 
7 
8 
9
EXAMPLES 
Working with clusters 
Orient Technologies www.orientdb.com 
1 
2 
3 
4 
5 
6 
7 
8
EXAMPLES 
Working with properties 
Orient Technologies www.orientdb.com 
1 
2 
3 
4 
5 
6 
7
CREATING RECORDS 
C is for create 
Orient Technologies www.orientdb.com 
1 
2 
3 
4 
5 
6 
7 
8 
9
SELECTING RECORDS 
R is for read 
Orient Technologies www.orientdb.com 
1 
2 
3 
4 
5 
6 
7 
8
UPDATING RECORDS 
U is for update 
Orient Technologies www.orientdb.com 
1 
2 
3 
4 
5 
6
DELETING RECORDS 
D is for delete 
Orient Technologies www.orientdb.com 
1 
2
Contribute to build or improve a library!
The Document-Graph Database 
www.orientdb.com 
twitter: @OrientDB 
Greg McCarvell! 
g.mccarvell@orientechnologies.com 
twitter: @mccarvell

Más contenido relacionado

La actualidad más candente

A quick review of Python and Graph Databases
A quick review of Python and Graph DatabasesA quick review of Python and Graph Databases
A quick review of Python and Graph DatabasesNicholas Crouch
 
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...Codemotion
 
RDF SHACL, Annotations, and Data Frames
RDF SHACL, Annotations, and Data FramesRDF SHACL, Annotations, and Data Frames
RDF SHACL, Annotations, and Data FramesKurt Cagle
 
The Lonesome LOD Cloud
The Lonesome LOD CloudThe Lonesome LOD Cloud
The Lonesome LOD CloudRuben Verborgh
 
Data modeling with neo4j tutorial
Data modeling with neo4j tutorialData modeling with neo4j tutorial
Data modeling with neo4j tutorialMax De Marzi
 
Using Neo4j from Java
Using Neo4j from JavaUsing Neo4j from Java
Using Neo4j from JavaNeo4j
 
Hadoop and Neo4j: A Winning Combination for Bioinformatics
Hadoop and Neo4j: A Winning Combination for BioinformaticsHadoop and Neo4j: A Winning Combination for Bioinformatics
Hadoop and Neo4j: A Winning Combination for Bioinformaticsosintegrators
 
How Graph Databases efficiently store, manage and query connected data at s...
How Graph Databases efficiently  store, manage and query  connected data at s...How Graph Databases efficiently  store, manage and query  connected data at s...
How Graph Databases efficiently store, manage and query connected data at s...jexp
 
Gerry McNicol Graph Databases
Gerry McNicol Graph DatabasesGerry McNicol Graph Databases
Gerry McNicol Graph DatabasesGerry McNicol
 
How to use NoSQL in Enterprise Java Applications - NoSQL Roadshow Basel
How to use NoSQL in Enterprise Java Applications - NoSQL Roadshow BaselHow to use NoSQL in Enterprise Java Applications - NoSQL Roadshow Basel
How to use NoSQL in Enterprise Java Applications - NoSQL Roadshow BaselPatrick Baumgartner
 
MongoDB 2.4 and spring data
MongoDB 2.4 and spring dataMongoDB 2.4 and spring data
MongoDB 2.4 and spring dataJimmy Ray
 
Introduction to graph databases, Neo4j and Spring Data - English 2015 Edition
Introduction to graph databases, Neo4j and Spring Data - English 2015 EditionIntroduction to graph databases, Neo4j and Spring Data - English 2015 Edition
Introduction to graph databases, Neo4j and Spring Data - English 2015 EditionAleksander Stensby
 
Hotcode 2013: Javascript in a database (Part 1)
Hotcode 2013: Javascript in a database (Part 1)Hotcode 2013: Javascript in a database (Part 1)
Hotcode 2013: Javascript in a database (Part 1)ArangoDB Database
 

La actualidad más candente (20)

A quick review of Python and Graph Databases
A quick review of Python and Graph DatabasesA quick review of Python and Graph Databases
A quick review of Python and Graph Databases
 
Neo4j in Depth
Neo4j in DepthNeo4j in Depth
Neo4j in Depth
 
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...
 
RDF SHACL, Annotations, and Data Frames
RDF SHACL, Annotations, and Data FramesRDF SHACL, Annotations, and Data Frames
RDF SHACL, Annotations, and Data Frames
 
The Lonesome LOD Cloud
The Lonesome LOD CloudThe Lonesome LOD Cloud
The Lonesome LOD Cloud
 
Data modeling with neo4j tutorial
Data modeling with neo4j tutorialData modeling with neo4j tutorial
Data modeling with neo4j tutorial
 
Using MRuby in a database
Using MRuby in a databaseUsing MRuby in a database
Using MRuby in a database
 
Using Neo4j from Java
Using Neo4j from JavaUsing Neo4j from Java
Using Neo4j from Java
 
Hadoop and Neo4j: A Winning Combination for Bioinformatics
Hadoop and Neo4j: A Winning Combination for BioinformaticsHadoop and Neo4j: A Winning Combination for Bioinformatics
Hadoop and Neo4j: A Winning Combination for Bioinformatics
 
How Graph Databases efficiently store, manage and query connected data at s...
How Graph Databases efficiently  store, manage and query  connected data at s...How Graph Databases efficiently  store, manage and query  connected data at s...
How Graph Databases efficiently store, manage and query connected data at s...
 
Gerry McNicol Graph Databases
Gerry McNicol Graph DatabasesGerry McNicol Graph Databases
Gerry McNicol Graph Databases
 
Linked Process
Linked ProcessLinked Process
Linked Process
 
How to use NoSQL in Enterprise Java Applications - NoSQL Roadshow Basel
How to use NoSQL in Enterprise Java Applications - NoSQL Roadshow BaselHow to use NoSQL in Enterprise Java Applications - NoSQL Roadshow Basel
How to use NoSQL in Enterprise Java Applications - NoSQL Roadshow Basel
 
MongoDB 2.4 and spring data
MongoDB 2.4 and spring dataMongoDB 2.4 and spring data
MongoDB 2.4 and spring data
 
Introduction to graph databases, Neo4j and Spring Data - English 2015 Edition
Introduction to graph databases, Neo4j and Spring Data - English 2015 EditionIntroduction to graph databases, Neo4j and Spring Data - English 2015 Edition
Introduction to graph databases, Neo4j and Spring Data - English 2015 Edition
 
Linked Data Fragments
Linked Data FragmentsLinked Data Fragments
Linked Data Fragments
 
Intro to Neo4j 2.0
Intro to Neo4j 2.0Intro to Neo4j 2.0
Intro to Neo4j 2.0
 
Mongo db operations_v2
Mongo db operations_v2Mongo db operations_v2
Mongo db operations_v2
 
Mongo db queries
Mongo db queriesMongo db queries
Mongo db queries
 
Hotcode 2013: Javascript in a database (Part 1)
Hotcode 2013: Javascript in a database (Part 1)Hotcode 2013: Javascript in a database (Part 1)
Hotcode 2013: Javascript in a database (Part 1)
 

Destacado

​Fully Reactive - from Data to UI with OrientDB + Node.js + Socket.io
​Fully Reactive - from Data to UI with OrientDB + Node.js + Socket.io​Fully Reactive - from Data to UI with OrientDB + Node.js + Socket.io
​Fully Reactive - from Data to UI with OrientDB + Node.js + Socket.ioLuigi Dell'Aquila
 
OrientDB vs Neo4j - and an introduction to NoSQL databases
OrientDB vs Neo4j - and an introduction to NoSQL databasesOrientDB vs Neo4j - and an introduction to NoSQL databases
OrientDB vs Neo4j - and an introduction to NoSQL databasesCurtis Mosters
 
Neo4j Spatial - Backing a GIS with a true graph database
Neo4j Spatial - Backing a GIS with a true graph databaseNeo4j Spatial - Backing a GIS with a true graph database
Neo4j Spatial - Backing a GIS with a true graph databaseCraig Taverner
 
Neo4j Spatial - GIS for the rest of us.
Neo4j Spatial - GIS for the rest of us.Neo4j Spatial - GIS for the rest of us.
Neo4j Spatial - GIS for the rest of us.Peter Neubauer
 
FOXX - a Javascript application framework on top of ArangoDB
FOXX - a Javascript application framework on top of ArangoDBFOXX - a Javascript application framework on top of ArangoDB
FOXX - a Javascript application framework on top of ArangoDBArangoDB Database
 
Grafos - Uma abordagem divertida - Latinoware 2014
Grafos - Uma abordagem divertida - Latinoware 2014Grafos - Uma abordagem divertida - Latinoware 2014
Grafos - Uma abordagem divertida - Latinoware 2014Christiano Anderson
 
An agile approach to cloud infrastructure
An agile approach to cloud infrastructureAn agile approach to cloud infrastructure
An agile approach to cloud infrastructureRichard Seroter
 
The Open Source Messaging Landscape
The Open Source Messaging LandscapeThe Open Source Messaging Landscape
The Open Source Messaging LandscapeRichard Seroter
 
OrientDB for real & Web App development
OrientDB for real & Web App developmentOrientDB for real & Web App development
OrientDB for real & Web App developmentLuca Garulli
 
ArangoDB – A different approach to NoSQL
ArangoDB – A different approach to NoSQLArangoDB – A different approach to NoSQL
ArangoDB – A different approach to NoSQLArangoDB Database
 
OrientDB Distributed Architecture v2.0
OrientDB Distributed Architecture v2.0OrientDB Distributed Architecture v2.0
OrientDB Distributed Architecture v2.0Orient Technologies
 
OrientDB vs Neo4j - Comparison of query/speed/functionality
OrientDB vs Neo4j - Comparison of query/speed/functionalityOrientDB vs Neo4j - Comparison of query/speed/functionality
OrientDB vs Neo4j - Comparison of query/speed/functionalityCurtis Mosters
 
Data Modeling with Neo4j
Data Modeling with Neo4jData Modeling with Neo4j
Data Modeling with Neo4jNeo4j
 

Destacado (14)

​Fully Reactive - from Data to UI with OrientDB + Node.js + Socket.io
​Fully Reactive - from Data to UI with OrientDB + Node.js + Socket.io​Fully Reactive - from Data to UI with OrientDB + Node.js + Socket.io
​Fully Reactive - from Data to UI with OrientDB + Node.js + Socket.io
 
OrientDB vs Neo4j - and an introduction to NoSQL databases
OrientDB vs Neo4j - and an introduction to NoSQL databasesOrientDB vs Neo4j - and an introduction to NoSQL databases
OrientDB vs Neo4j - and an introduction to NoSQL databases
 
Neo4j Spatial - Backing a GIS with a true graph database
Neo4j Spatial - Backing a GIS with a true graph databaseNeo4j Spatial - Backing a GIS with a true graph database
Neo4j Spatial - Backing a GIS with a true graph database
 
Neo4j Spatial - GIS for the rest of us.
Neo4j Spatial - GIS for the rest of us.Neo4j Spatial - GIS for the rest of us.
Neo4j Spatial - GIS for the rest of us.
 
FOXX - a Javascript application framework on top of ArangoDB
FOXX - a Javascript application framework on top of ArangoDBFOXX - a Javascript application framework on top of ArangoDB
FOXX - a Javascript application framework on top of ArangoDB
 
Grafos - Uma abordagem divertida - Latinoware 2014
Grafos - Uma abordagem divertida - Latinoware 2014Grafos - Uma abordagem divertida - Latinoware 2014
Grafos - Uma abordagem divertida - Latinoware 2014
 
Introdução ao neo4j
Introdução ao neo4jIntrodução ao neo4j
Introdução ao neo4j
 
An agile approach to cloud infrastructure
An agile approach to cloud infrastructureAn agile approach to cloud infrastructure
An agile approach to cloud infrastructure
 
The Open Source Messaging Landscape
The Open Source Messaging LandscapeThe Open Source Messaging Landscape
The Open Source Messaging Landscape
 
OrientDB for real & Web App development
OrientDB for real & Web App developmentOrientDB for real & Web App development
OrientDB for real & Web App development
 
ArangoDB – A different approach to NoSQL
ArangoDB – A different approach to NoSQLArangoDB – A different approach to NoSQL
ArangoDB – A different approach to NoSQL
 
OrientDB Distributed Architecture v2.0
OrientDB Distributed Architecture v2.0OrientDB Distributed Architecture v2.0
OrientDB Distributed Architecture v2.0
 
OrientDB vs Neo4j - Comparison of query/speed/functionality
OrientDB vs Neo4j - Comparison of query/speed/functionalityOrientDB vs Neo4j - Comparison of query/speed/functionality
OrientDB vs Neo4j - Comparison of query/speed/functionality
 
Data Modeling with Neo4j
Data Modeling with Neo4jData Modeling with Neo4j
Data Modeling with Neo4j
 

Similar a OrientDB & Node.js Overview - JS.Everywhere() KW

OrientDB - the 2nd generation of (MultiModel) NoSQL - Luigi Dell Aquila - Cod...
OrientDB - the 2nd generation of (MultiModel) NoSQL - Luigi Dell Aquila - Cod...OrientDB - the 2nd generation of (MultiModel) NoSQL - Luigi Dell Aquila - Cod...
OrientDB - the 2nd generation of (MultiModel) NoSQL - Luigi Dell Aquila - Cod...Codemotion
 
MongoDB, E-commerce and Transactions
MongoDB, E-commerce and TransactionsMongoDB, E-commerce and Transactions
MongoDB, E-commerce and TransactionsSteven Francia
 
CouchDB Open Source Bridge
CouchDB Open Source BridgeCouchDB Open Source Bridge
CouchDB Open Source BridgeChris Anderson
 
Making Sense of Schema on Read
Making Sense of Schema on ReadMaking Sense of Schema on Read
Making Sense of Schema on ReadKent Graziano
 
Real-time Semantic Web with Twitter Annotations
Real-time Semantic Web with Twitter AnnotationsReal-time Semantic Web with Twitter Annotations
Real-time Semantic Web with Twitter AnnotationsJoshua Shinavier
 
Semi Formal Model for Document Oriented Databases
Semi Formal Model for Document Oriented DatabasesSemi Formal Model for Document Oriented Databases
Semi Formal Model for Document Oriented DatabasesDaniel Coupal
 
A Real-World Implementation of Linked Data
A Real-World Implementation of Linked DataA Real-World Implementation of Linked Data
A Real-World Implementation of Linked DataDimitri van Hees
 
OrientDB - the 2nd generation of (Multi-Model) NoSQL - Devoxx Belgium 2015
OrientDB - the 2nd generation  of  (Multi-Model) NoSQL - Devoxx Belgium 2015OrientDB - the 2nd generation  of  (Multi-Model) NoSQL - Devoxx Belgium 2015
OrientDB - the 2nd generation of (Multi-Model) NoSQL - Devoxx Belgium 2015Luigi Dell'Aquila
 
Lighting talk neo4j fosdem 2011
Lighting talk neo4j fosdem 2011Lighting talk neo4j fosdem 2011
Lighting talk neo4j fosdem 2011Jordi Valverde
 
CouchDB at JAOO Århus 2009
CouchDB at JAOO Århus 2009CouchDB at JAOO Århus 2009
CouchDB at JAOO Århus 2009Jason Davies
 
Sharing a Startup’s Big Data Lessons
Sharing a Startup’s Big Data LessonsSharing a Startup’s Big Data Lessons
Sharing a Startup’s Big Data LessonsGeorge Stathis
 
BBC Linked Data Platform (SemTechBiz San Fran 2013)
BBC Linked Data Platform (SemTechBiz San Fran 2013)BBC Linked Data Platform (SemTechBiz San Fran 2013)
BBC Linked Data Platform (SemTechBiz San Fran 2013)Dave Rogers
 
Creating a Single View: Data Design and Loading Strategies
Creating a Single View: Data Design and Loading StrategiesCreating a Single View: Data Design and Loading Strategies
Creating a Single View: Data Design and Loading StrategiesMongoDB
 
Crafting Evolvable Api Responses
Crafting Evolvable Api ResponsesCrafting Evolvable Api Responses
Crafting Evolvable Api Responsesdarrelmiller71
 
Real time data processing with spark & cassandra @ NoSQLMatters 2015 Paris
Real time data processing with spark & cassandra @ NoSQLMatters 2015 ParisReal time data processing with spark & cassandra @ NoSQLMatters 2015 Paris
Real time data processing with spark & cassandra @ NoSQLMatters 2015 ParisDuyhai Doan
 

Similar a OrientDB & Node.js Overview - JS.Everywhere() KW (20)

OrientDB - the 2nd generation of (MultiModel) NoSQL - Luigi Dell Aquila - Cod...
OrientDB - the 2nd generation of (MultiModel) NoSQL - Luigi Dell Aquila - Cod...OrientDB - the 2nd generation of (MultiModel) NoSQL - Luigi Dell Aquila - Cod...
OrientDB - the 2nd generation of (MultiModel) NoSQL - Luigi Dell Aquila - Cod...
 
MongoDB, E-commerce and Transactions
MongoDB, E-commerce and TransactionsMongoDB, E-commerce and Transactions
MongoDB, E-commerce and Transactions
 
CouchDB Open Source Bridge
CouchDB Open Source BridgeCouchDB Open Source Bridge
CouchDB Open Source Bridge
 
mongoDB at Visibiz
mongoDB at VisibizmongoDB at Visibiz
mongoDB at Visibiz
 
Couchdb Nosql
Couchdb NosqlCouchdb Nosql
Couchdb Nosql
 
Making Sense of Schema on Read
Making Sense of Schema on ReadMaking Sense of Schema on Read
Making Sense of Schema on Read
 
Real-time Semantic Web with Twitter Annotations
Real-time Semantic Web with Twitter AnnotationsReal-time Semantic Web with Twitter Annotations
Real-time Semantic Web with Twitter Annotations
 
Semi Formal Model for Document Oriented Databases
Semi Formal Model for Document Oriented DatabasesSemi Formal Model for Document Oriented Databases
Semi Formal Model for Document Oriented Databases
 
A Real-World Implementation of Linked Data
A Real-World Implementation of Linked DataA Real-World Implementation of Linked Data
A Real-World Implementation of Linked Data
 
OrientDB - the 2nd generation of (Multi-Model) NoSQL - Devoxx Belgium 2015
OrientDB - the 2nd generation  of  (Multi-Model) NoSQL - Devoxx Belgium 2015OrientDB - the 2nd generation  of  (Multi-Model) NoSQL - Devoxx Belgium 2015
OrientDB - the 2nd generation of (Multi-Model) NoSQL - Devoxx Belgium 2015
 
Lighting talk neo4j fosdem 2011
Lighting talk neo4j fosdem 2011Lighting talk neo4j fosdem 2011
Lighting talk neo4j fosdem 2011
 
CouchDB at JAOO Århus 2009
CouchDB at JAOO Århus 2009CouchDB at JAOO Århus 2009
CouchDB at JAOO Århus 2009
 
When?
When?When?
When?
 
CouchDB introduction
CouchDB introductionCouchDB introduction
CouchDB introduction
 
Sharing a Startup’s Big Data Lessons
Sharing a Startup’s Big Data LessonsSharing a Startup’s Big Data Lessons
Sharing a Startup’s Big Data Lessons
 
BBC Linked Data Platform (SemTechBiz San Fran 2013)
BBC Linked Data Platform (SemTechBiz San Fran 2013)BBC Linked Data Platform (SemTechBiz San Fran 2013)
BBC Linked Data Platform (SemTechBiz San Fran 2013)
 
Creating a Single View: Data Design and Loading Strategies
Creating a Single View: Data Design and Loading StrategiesCreating a Single View: Data Design and Loading Strategies
Creating a Single View: Data Design and Loading Strategies
 
SQL vs NoSQL
SQL vs NoSQLSQL vs NoSQL
SQL vs NoSQL
 
Crafting Evolvable Api Responses
Crafting Evolvable Api ResponsesCrafting Evolvable Api Responses
Crafting Evolvable Api Responses
 
Real time data processing with spark & cassandra @ NoSQLMatters 2015 Paris
Real time data processing with spark & cassandra @ NoSQLMatters 2015 ParisReal time data processing with spark & cassandra @ NoSQLMatters 2015 Paris
Real time data processing with spark & cassandra @ NoSQLMatters 2015 Paris
 

Último

Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024The Digital Insurer
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 

Último (20)

Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 

OrientDB & Node.js Overview - JS.Everywhere() KW

  • 1. KW-JS.Everywhere() October 2014 Node.js with OrientDB Presented by Greg McCarvell Orient Technologies www.orientdb.com
  • 2. DISCLAIMER I am shallow. not Greg… the presentation both Node.js and OrientDB are full featured technologies Orient Technologies www.orientdb.com
  • 3. Why OrientDB? Understanding the landscape Orient Technologies www.orientdb.com
  • 4. NEW DATA REQUIREMENTS interwebs Orient Technologies www.orientdb.com Reach WEB ACCESS Social Relational Databases i18n From 1970 until today, relational databases have ruled the landscape. In 2009 the NoSQL movement gained traction due to the shortcomings of the relational model. MANY FACTORS contributed to the need for new ideas. It’s not 1970 anymore broadband mobile access cultural changes
  • 5. the minds of developers opened ! Choices, choices Today there are a variety of choices in DBMS. Each has their own strengths, evaluating your needs is critical. NoSQL OPTIONS Document Orient Technologies www.orientdb.com Column Based Key/Value Object Graph
  • 6. WHAT ABOUT OrientDB? where do we fit in the scheme of things? Document Graph OrientDB is a document-graph database We provide the flexibility and speed of a document store combined with the advanced relationship features of a graph database …and lots more Orient Technologies www.orientdb.com
  • 7. RELATIONAL VS GRAPH what are the major differences? ID Name Employer 10 Gary Weis 232 12 Betty Crocker 899 13 Bob Jones 232 88 Tessa Virtue 12 Companies ID Name 899 ABC Inc. 232 Acme Corp. 998 Z Industries 12 BMO Orient Technologies www.orientdb.com People Relational databases store data in tables They use a foreign key and a JOIN operation to determine relationships
  • 8. RELATIONAL VS GRAPH what are the major differences? Company #14:15 ABC Inc. Graph databases use direct links for relationships “Edges” allow for index free adjacency and tremendous FLEXIBILITY! Orient Technologies www.orientdb.com Person #12:10 Gary Weis Person #12:10 Gary Weis Person #12:10 Gary Weis Company #14:15 ABC Inc. Employee status: full-time Employee status: full-time Employee status: part-time LOOK MA! I have two jobs! Customer last order: today
  • 9. RELATIONAL VS GRAPH what are the major differences? Relationships based on context Partner ownership: 1% Many to Many? Pie ce of cake Graph databases make data modelling natural Build your model as you would think of the data intuitively Orient Technologies www.orientdb.com Company #14:15 ABC Inc. Person #12:10 Gary Weis Employee status: full-time Customer last order: today Tag #12:10 Seller Person #14:10 Bob Tag #12:11 Buyer Tag #12:11 Hot Lead Person #14:12 Dave Person #14:22 Ruby Employee #12:10 VP Employee #12:10 Director Employee #12:10 Director Employee #12:10 Manager Employee #12:10 Manager Employee #12:10 Manager Employee #12:10 Manager Hierarch i cal data? C hild’s play
  • 10. MORE OrientDB FEATURES We will cover these later… Orient Technologies www.orientdb.com " Schema-less, schema-ful or schema-mixed Inheritance and polymorphism in your model Extended SQL syntax, blueprints, gremlin Multi-master replication and sharding for horizontal scalability A wide selection of language API’s Browser based development Studio Embedded functions, record level security, REST, web server…. Phew! Lets get to some hands on learning.
  • 11. AN IMPORTANT ONE APACHE 2.0 A truly permissive license ! ! Use for free for ANY purpose - guaranteed we’ll pa ss o n GPL thanks Orient Technologies www.orientdb.com
  • 12. Installation No worries, it’s easy Orient Technologies www.orientdb.com
  • 13. $ You only need a JVM installed to run the server Orient Technologies www.orientdb.com # Download Unzip % Run THREE STEPS and 5 minutes
  • 14. Section 3 - Data Modelling Concepts & Concepts The moving parts Orient Technologies www.orientdb.com
  • 15. Links Orient Technologies www.orientdb.com DATA ENTITY The primary storage container of data. Also referred to as a record. In Graph mode it is called a Vertex (or Node) RELATIONSHIP A direct connection between two Vertices or Documents. Edges and Links are the relationships in OrientDB. DATA ATTRIBUTE Typed or JSON data embedded in Documents, Vertices or Edges. Useful to query, sort and more! KEY ELEMENTS the building blocks Document & Vertex firstName: “Bob” lastName: “Barker” age: 102 createdAt: 10/12/12 Edge Pro p ert ie s mother: #22:187
  • 16. ♂ Person Characteristics Orient Technologies www.orientdb.com ' {! @rid: 20:12,! first: “Bob”,! last: “Barker”,! birth: 03/04/1920,! children: [! #22:123,! #20:776! ]! }! • Inherently unstructured • Varied contents (schema-less) • Can contain Links to other documents • Can contain sub-documents • Has a Class type • Has an unique ID (graph wide) • Are stored inside of a Cluster • Record ID is composed of cluster & position (#13:1) ♂ DOCUMENTS Fast, efficient and flexible storage Person {! @rid: 20:23,! first: “Wendy”,! last: “Smith”,! birth: 06/02/1974,! children: [],! pet: {! name: “Davis”,! type: “Dog”,! color: “Black”! },! gender: “female”! }!
  • 17. PROPERTIES A place to store your stuff ♂ Person {! @rid: 20:23,! first: “Wendy”,! last: “Smith”,! birth: 06/02/1974,! children: [],! pet: {! name: “Davis”,! type: “Dog”,! color: “Black”! },! gender: “female”! }! Orient Technologies www.orientdb.com ) Characteristics • Have an unique name • Have a data type • Can be indexed • Schema-full restrictions • Min/Max • Mandatory • Readonly • Not Null • Unique • Regexp DATA TYPES • Boolean • Integer • Short • Long • Float • Double • Datetime • String • Binary • Embedded • Embedded list • Embedded set • Embedded map • Link • Link list • Link set • Link map • Byte • Transient • Date • Custom • Decimal • LinkBag • Any (non determined) * Tes t on Tuesday!
  • 18. VERTEX Storage for a graph ♂ Person {! @rid: 20:23,! first: “Wendy”,! last: “Smith”,! birth: 06/02/1974,! children: [],! in: [! #13:2, #13:45! ],! out: [! #12:10, #14:33! ]! }! Orient Technologies www.orientdb.com * Characteristics • Similar to a document • Can store data • Has ID, cluster, links etc • Has a collection of • incoming edges • outgoing edges • Also called “Nodes” They are also ALWAYS round
  • 19. EDGE Fast, efficient and flexible storage ,Company Orient Technologies www.orientdb.com Characteristics • Stored as a document • Can have properties • Has ID, cluster • Has a name (E by default) • Has a direction (from & to) • Incoming Vertex (Head) • Outgoing Vertex (Tail) + Employs ♂ Person {! @rid: 20:23,! first: “Wendy”,! last: “Smith”,! birth: 06/02/1974! }! + {! @rid: 18:99,! name: “ACME”,! volume: 980000,! : 06/02/1974! }! {! startDate: “2010-01-01”! }!
  • 20. CLASS Types of Data Orient Technologies www.orientdb.com - Characteristics • Each record must have one • Can inherit from another class • Still allows for schema-less data • Can have multiple clusters • Has a default cluster • Can contain properties for a schema-ful or schema-mixed model ♂ Person {! superclass: “V”,! clusters: [12,14],! defaultCluster: 12,! properties: [! {! name: "lastName",! type: "STRING",! mandatory: false,! readonly: false,! notNull: false,! min: null,! max: null,! collate: "default"! }! ]}! ♂ SuperHero {! superclass: “Person”,! clusters: [15],! defaultCluster: 15,! properties: [! {! name: "strength",! type: “LONG",! mandatory: false,! readonly: false,! notNull: false,! min: 1,! max: 1000000,! collate: "default"! }! ]}!
  • 21. CLUSTER Storage flexibility . USA . • Where a group of records are stored • By default, one cluster per class • Can have multiple clusters per class • Useful for storage, scaling and archiving purposes • Can be used for optimized queries ♂ ♂ ♂ Person ♂ Person ♂ Person ♂ Person ♂ Person Orient Technologies www.orientdb.com Characteristics ♂ Person {! @rid: 20:23,! first: “Wendy”,! last: “Smith”,! country: USA! }! ♂ Person {! @rid: 20:18,! first: “Bill”,! last: “Brown”,! country: USA! }! ♂ Person {! @rid: 20:231,! first: “Tammy”,! last: “Taylor”,! country: USA! }! ♂ Person {! @rid: 20:881,! first: “Tiffany”,! last: “Henry”,! country: USA! }! ♂ Person {! @rid: 20:31,! first: “Alex”,! last: “Chang”,! country: USA! }! . Europe {! @rid: 22:23,! first: “Jacques”,! last: “Revere”,! country: France! }! {! @rid: 22:922,! first: “Guilia”,! last: “Abruzzo”,! country: Italy! }! {! @rid: 22:11,! first: “Fabio”,! last: “Gilberti”,! country: Italy! }! {! @rid: 22:313,! first: “Laurent”,! last: “Biraghi”,! country: France! }! {! @rid: 22:111,! first: “Erwan”,! last: “Enault”,! country: France! }!
  • 22. CLUSTER Storage scalability  Automatic Map/Reduce Query Directed query to one cluster / VPS: Dallas TX / VPS: San Jose CA / VPS: Paris FR .♂ USA1 .♂ USA2 .♂ Europe1 Orient Technologies www.orientdb.com
  • 23. CLUSTER Storage replication / VPS: Dallas TX / VPS: San Jose CA / VPS: New York NY .♂ USA1 .♂ USA2 .♂ USA3 .♂ USA2 .♂ USA3 .♂ USA1 Multi-Master Replication! Orient Technologies www.orientdb.com
  • 24. Studio 5 minute overview Orient Technologies www.orientdb.com
  • 25. Console Tool There is one… no time to demo Orient Technologies www.orientdb.com
  • 26. Node.js & OrientDB The HelloWorld of my world Orient Technologies www.orientdb.com
  • 27. Setup Orient Technologies www.orientdb.com
  • 28. Let’s see some examples & SQL API Getting Started Orient Technologies www.orientdb.com
  • 29. Language Bindings & APIs Choose your platform Orient Technologies www.orientdb.com
  • 30. EXAMPLES Working with Classes Orient Technologies www.orientdb.com 1 2 3 4 5 6 7 8 9
  • 31. EXAMPLES Working with clusters Orient Technologies www.orientdb.com 1 2 3 4 5 6 7 8
  • 32. EXAMPLES Working with properties Orient Technologies www.orientdb.com 1 2 3 4 5 6 7
  • 33. CREATING RECORDS C is for create Orient Technologies www.orientdb.com 1 2 3 4 5 6 7 8 9
  • 34. SELECTING RECORDS R is for read Orient Technologies www.orientdb.com 1 2 3 4 5 6 7 8
  • 35. UPDATING RECORDS U is for update Orient Technologies www.orientdb.com 1 2 3 4 5 6
  • 36. DELETING RECORDS D is for delete Orient Technologies www.orientdb.com 1 2
  • 37. Contribute to build or improve a library!
  • 38. The Document-Graph Database www.orientdb.com twitter: @OrientDB Greg McCarvell! g.mccarvell@orientechnologies.com twitter: @mccarvell