View
815
Download
1
Tags:
Embed Size (px)
DESCRIPTION
Citation preview
© All Rights Reserved 2013 | Neo Technology, Inc.
Graph����������� ������������������ Databases����������� ������������������ -����������� ������������������ How����������� ������������������ does����������� ������������������ it����������� ������������������ work?
Pernilla����������� ������������������ Lindh
1måndag 15 juli 13intro me
© All Rights Reserved 2013 | Neo Technology, Inc.
About Me
2måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
About Me
Geek Girl Meetup Öresund, Sweden
2måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
About Me
Developer Evangelist Geek Girl Meetup Öresund, Sweden
2måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
About Me
Developer Evangelist Started at Neo4j 2012
Geek Girl Meetup Öresund, Sweden
2måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
About Me
Developer Evangelist Started at Neo4j 2012My Blog: www.p3rnilla.com
Geek Girl Meetup Öresund, Sweden
2måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
About Me
Developer Evangelist Started at Neo4j 2012My Blog: www.p3rnilla.comFind me on Twitter: @p3rnilla
Geek Girl Meetup Öresund, Sweden
2måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
About Me
Developer Evangelist Started at Neo4j 2012My Blog: www.p3rnilla.comFind me on Twitter: @p3rnillaEmail me: [email protected]
Geek Girl Meetup Öresund, Sweden
2måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
(Big)DataNOSQLWhat is a Graph Database, Not?What is a Graph, then?What is a Graph Database?What is Neo4j?
AGENDA
3måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
4måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
http://nostarch.com/mg_databases.htm#reviews
5måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
http://nostarch.com/mg_databases.htm#reviews
5måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
6måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
7måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
7måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
7måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
8måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
9måndag 15 juli 13
Formally, the term "database" refers to the data itself and supporting data structures. Databases are created to operate large quantities of information by inputting, storing, retrieving, and managing that information.
Databases are set up, so that one set of software programs provides all users with access to all the data.(http://en.wikipedia.org/wiki/Database)
Databases are created to operate large quantities of information by inputting, storing, retrieving, and managing that information.
© All Rights Reserved 2013 | Neo Technology, Inc.
inputting
9måndag 15 juli 13
Formally, the term "database" refers to the data itself and supporting data structures. Databases are created to operate large quantities of information by inputting, storing, retrieving, and managing that information.
Databases are set up, so that one set of software programs provides all users with access to all the data.(http://en.wikipedia.org/wiki/Database)
Databases are created to operate large quantities of information by inputting, storing, retrieving, and managing that information.
© All Rights Reserved 2013 | Neo Technology, Inc.
inputtingstoring
9måndag 15 juli 13
Formally, the term "database" refers to the data itself and supporting data structures. Databases are created to operate large quantities of information by inputting, storing, retrieving, and managing that information.
Databases are set up, so that one set of software programs provides all users with access to all the data.(http://en.wikipedia.org/wiki/Database)
Databases are created to operate large quantities of information by inputting, storing, retrieving, and managing that information.
© All Rights Reserved 2013 | Neo Technology, Inc.
inputtingstoringretrieving
9måndag 15 juli 13
Formally, the term "database" refers to the data itself and supporting data structures. Databases are created to operate large quantities of information by inputting, storing, retrieving, and managing that information.
Databases are set up, so that one set of software programs provides all users with access to all the data.(http://en.wikipedia.org/wiki/Database)
Databases are created to operate large quantities of information by inputting, storing, retrieving, and managing that information.
© All Rights Reserved 2013 | Neo Technology, Inc.
inputtingstoringretrievingmanaging information
9måndag 15 juli 13
Formally, the term "database" refers to the data itself and supporting data structures. Databases are created to operate large quantities of information by inputting, storing, retrieving, and managing that information.
Databases are set up, so that one set of software programs provides all users with access to all the data.(http://en.wikipedia.org/wiki/Database)
Databases are created to operate large quantities of information by inputting, storing, retrieving, and managing that information.
© All Rights Reserved 2013 | Neo Technology, Inc.
DATA???
10måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
11måndag 15 juli 13
Computer data is information processed or stored by a computer. This information may be in the form of text documents, images, audio clips, software programs, or other types of data. Computer data may be processed by the computer's CPU and is stored in files and folders on the computer's hard disk. http://www.techterms.com/definition/data
© All Rights Reserved 2013 | Neo Technology, Inc.
11måndag 15 juli 13
Computer data is information processed or stored by a computer. This information may be in the form of text documents, images, audio clips, software programs, or other types of data. Computer data may be processed by the computer's CPU and is stored in files and folders on the computer's hard disk. http://www.techterms.com/definition/data
© All Rights Reserved 2013 | Neo Technology, Inc.
11måndag 15 juli 13
Computer data is information processed or stored by a computer. This information may be in the form of text documents, images, audio clips, software programs, or other types of data. Computer data may be processed by the computer's CPU and is stored in files and folders on the computer's hard disk. http://www.techterms.com/definition/data
© All Rights Reserved 2013 | Neo Technology, Inc.
11måndag 15 juli 13
Computer data is information processed or stored by a computer. This information may be in the form of text documents, images, audio clips, software programs, or other types of data. Computer data may be processed by the computer's CPU and is stored in files and folders on the computer's hard disk. http://www.techterms.com/definition/data
© All Rights Reserved 2013 | Neo Technology, Inc.
11måndag 15 juli 13
Computer data is information processed or stored by a computer. This information may be in the form of text documents, images, audio clips, software programs, or other types of data. Computer data may be processed by the computer's CPU and is stored in files and folders on the computer's hard disk. http://www.techterms.com/definition/data
© All Rights Reserved 2013 | Neo Technology, Inc.
11måndag 15 juli 13
Computer data is information processed or stored by a computer. This information may be in the form of text documents, images, audio clips, software programs, or other types of data. Computer data may be processed by the computer's CPU and is stored in files and folders on the computer's hard disk. http://www.techterms.com/definition/data
© All Rights Reserved 2013 | Neo Technology, Inc.
11måndag 15 juli 13
Computer data is information processed or stored by a computer. This information may be in the form of text documents, images, audio clips, software programs, or other types of data. Computer data may be processed by the computer's CPU and is stored in files and folders on the computer's hard disk. http://www.techterms.com/definition/data
© All Rights Reserved 2013 | Neo Technology, Inc.
11måndag 15 juli 13
Computer data is information processed or stored by a computer. This information may be in the form of text documents, images, audio clips, software programs, or other types of data. Computer data may be processed by the computer's CPU and is stored in files and folders on the computer's hard disk. http://www.techterms.com/definition/data
© All Rights Reserved 2013 | Neo Technology, Inc.
11måndag 15 juli 13
Computer data is information processed or stored by a computer. This information may be in the form of text documents, images, audio clips, software programs, or other types of data. Computer data may be processed by the computer's CPU and is stored in files and folders on the computer's hard disk. http://www.techterms.com/definition/data
© All Rights Reserved 2013 | Neo Technology, Inc.
Data?
12måndag 15 juli 13
So Data is getting bigger as you can see here we are sending 20 million email every second.....
recognize this one? Eric Schmidt Executive Chairman of google, he made a nice quote about big data
© All Rights Reserved 2013 | Neo Technology, Inc.
Data?
12måndag 15 juli 13
So Data is getting bigger as you can see here we are sending 20 million email every second.....
recognize this one? Eric Schmidt Executive Chairman of google, he made a nice quote about big data
© All Rights Reserved 2013 | Neo Technology, Inc.
Data?
12måndag 15 juli 13
So Data is getting bigger as you can see here we are sending 20 million email every second.....
recognize this one? Eric Schmidt Executive Chairman of google, he made a nice quote about big data
© All Rights Reserved 2013 | Neo Technology, Inc.
Data?
12måndag 15 juli 13
So Data is getting bigger as you can see here we are sending 20 million email every second.....
recognize this one? Eric Schmidt Executive Chairman of google, he made a nice quote about big data
© All Rights Reserved 2013 | Neo Technology, Inc.
Data?
12måndag 15 juli 13
So Data is getting bigger as you can see here we are sending 20 million email every second.....
recognize this one? Eric Schmidt Executive Chairman of google, he made a nice quote about big data
© All Rights Reserved 2013 | Neo Technology, Inc.
Data?
12måndag 15 juli 13
So Data is getting bigger as you can see here we are sending 20 million email every second.....
recognize this one? Eric Schmidt Executive Chairman of google, he made a nice quote about big data
© All Rights Reserved 2013 | Neo Technology, Inc.
Data?
12måndag 15 juli 13
So Data is getting bigger as you can see here we are sending 20 million email every second.....
recognize this one? Eric Schmidt Executive Chairman of google, he made a nice quote about big data
© All Rights Reserved 2013 | Neo Technology, Inc.
Data?
Every 2 days we create as much
information as we did up to 2003.”-Eric Schmidt,
12måndag 15 juli 13
So Data is getting bigger as you can see here we are sending 20 million email every second.....
recognize this one? Eric Schmidt Executive Chairman of google, he made a nice quote about big data
© All Rights Reserved 2013 | Neo Technology, Inc.
13måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
?
13måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
? BIG DATA
13måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
?
=
BIG DATA
13måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
?
=
BIG DATA
NOSQL
13måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
14måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
15måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
A Swedish Smorgasbord filled with different types of databases
15måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
16måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
SQL
16måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
SQL Structured Query Language
16måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
SQL Relational Database (MySQL)
Structured Query Language
16måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
17måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
Relational
17måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
Relational
17måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
Relational
People
17måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
Relational
People Cats
17måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
Relational
People CatsPeople_Cats
17måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
Relational
People CatsPeople_Cats
17måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
Relational
People CatsPeople_Cats
17måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
Relational
17måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
NOSQL (Not Only SQL)
non-relational
open-source (mostly)
cluster-friendly
21st Centery Web
schema optional
18måndag 15 juli 13charachterictics for a nosql database
© All Rights Reserved 2013 | Neo Technology, Inc.
NOSQL family
19måndag 15 juli 13The difference between these databases is the so called datamodel the building blocks that they exposed to the developers
Building blocks for Mongo Db are document in Column Oriented database like Cassandra it’s columnsthe keyvalue stores are key and value
column based on bigtables -
© All Rights Reserved 2013 | Neo Technology, Inc.
NOSQL family
19måndag 15 juli 13The difference between these databases is the so called datamodel the building blocks that they exposed to the developers
Building blocks for Mongo Db are document in Column Oriented database like Cassandra it’s columnsthe keyvalue stores are key and value
column based on bigtables -
© All Rights Reserved 2013 | Neo Technology, Inc.
NOSQL familyFour types of NOSQL databases
19måndag 15 juli 13The difference between these databases is the so called datamodel the building blocks that they exposed to the developers
Building blocks for Mongo Db are document in Column Oriented database like Cassandra it’s columnsthe keyvalue stores are key and value
column based on bigtables -
© All Rights Reserved 2013 | Neo Technology, Inc.
NOSQL family
Document-Oriented Database
Four types of NOSQL databases
19måndag 15 juli 13The difference between these databases is the so called datamodel the building blocks that they exposed to the developers
Building blocks for Mongo Db are document in Column Oriented database like Cassandra it’s columnsthe keyvalue stores are key and value
column based on bigtables -
© All Rights Reserved 2013 | Neo Technology, Inc.
NOSQL family
Document-Oriented Database
Four types of NOSQL databases
19måndag 15 juli 13The difference between these databases is the so called datamodel the building blocks that they exposed to the developers
Building blocks for Mongo Db are document in Column Oriented database like Cassandra it’s columnsthe keyvalue stores are key and value
column based on bigtables -
© All Rights Reserved 2013 | Neo Technology, Inc.
NOSQL family
Document-Oriented Database
Column Oriented
Four types of NOSQL databases
19måndag 15 juli 13The difference between these databases is the so called datamodel the building blocks that they exposed to the developers
Building blocks for Mongo Db are document in Column Oriented database like Cassandra it’s columnsthe keyvalue stores are key and value
column based on bigtables -
© All Rights Reserved 2013 | Neo Technology, Inc.
NOSQL family
Document-Oriented Database
Column Oriented
Four types of NOSQL databases
19måndag 15 juli 13The difference between these databases is the so called datamodel the building blocks that they exposed to the developers
Building blocks for Mongo Db are document in Column Oriented database like Cassandra it’s columnsthe keyvalue stores are key and value
column based on bigtables -
© All Rights Reserved 2013 | Neo Technology, Inc.
NOSQL family
Document-Oriented Database
Column Oriented
Key Value Stores
Four types of NOSQL databases
19måndag 15 juli 13The difference between these databases is the so called datamodel the building blocks that they exposed to the developers
Building blocks for Mongo Db are document in Column Oriented database like Cassandra it’s columnsthe keyvalue stores are key and value
column based on bigtables -
© All Rights Reserved 2013 | Neo Technology, Inc.
NOSQL family
Document-Oriented Database
Column Oriented
Key Value Stores
Four types of NOSQL databases
19måndag 15 juli 13The difference between these databases is the so called datamodel the building blocks that they exposed to the developers
Building blocks for Mongo Db are document in Column Oriented database like Cassandra it’s columnsthe keyvalue stores are key and value
column based on bigtables -
© All Rights Reserved 2013 | Neo Technology, Inc.
NOSQL family
Document-Oriented Database
Column Oriented
Key Value Stores
Four types of NOSQL databases
19måndag 15 juli 13The difference between these databases is the so called datamodel the building blocks that they exposed to the developers
Building blocks for Mongo Db are document in Column Oriented database like Cassandra it’s columnsthe keyvalue stores are key and value
column based on bigtables -
© All Rights Reserved 2013 | Neo Technology, Inc.
NOSQL family
Document-Oriented Database
Column Oriented
Key Value Stores
Graph Database
Four types of NOSQL databases
19måndag 15 juli 13The difference between these databases is the so called datamodel the building blocks that they exposed to the developers
Building blocks for Mongo Db are document in Column Oriented database like Cassandra it’s columnsthe keyvalue stores are key and value
column based on bigtables -
© All Rights Reserved 2013 | Neo Technology, Inc.
NOSQL family
Document-Oriented Database
Column Oriented
Key Value Stores
Graph Database
Four types of NOSQL databases
19måndag 15 juli 13The difference between these databases is the so called datamodel the building blocks that they exposed to the developers
Building blocks for Mongo Db are document in Column Oriented database like Cassandra it’s columnsthe keyvalue stores are key and value
column based on bigtables -
© All Rights Reserved 2013 | Neo Technology, Inc.
So,����������� ������������������ graphs...
20måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
21måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
22måndag 15 juli 13marshall ”how I meet your mother”
© All Rights Reserved 2013 | Neo Technology, Inc.
23måndag 15 juli 13what do google say?
© All Rights Reserved 2013 | Neo Technology, Inc.
23måndag 15 juli 13what do google say?
© All Rights Reserved 2013 | Neo Technology, Inc.
23måndag 15 juli 13what do google say?
© All Rights Reserved 2013 | Neo Technology, Inc.
23måndag 15 juli 13what do google say?
© All Rights Reserved 2013 | Neo Technology, Inc.
So,����������� ������������������ graphs...
24måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
25måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
What is a graph?
25måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
Object (vertex, node)
What is a graph?
25måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
Object (vertex, node)
What is a graph?
25måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
Object (vertex, node)
Link (edge, arc, relationship)
What is a graph?
25måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
Object (vertex, node)
Link (edge, arc, relationship)
What is a graph?
25måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
Different Kinds of Graphs
Undirected Graph
Directed Graph
Hyper Graph
26måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
More Kinds Of Graphs
27måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
Graph����������� ������������������ databases����������� ������������������ you����������� ������������������ might����������� ������������������ heard����������� ������������������ about
28måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
29måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
Most well known graph
29måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
Most well known graph
29måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
Most well known graph
29måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
Most well known graph
29måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
Most well known graph
29måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
So,����������� ������������������ graphs...
30måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
30måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
what����������� ������������������ are����������� ������������������ they����������� ������������������ good����������� ������������������ at?����������� ������������������
30måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
Highly connected data (social networks)
31måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
Highly connected data (social networks)
31måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
Highly connected data (social networks)
31måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
Highly connected data (social networks)
31måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
Recommendations (e-commerce)
32måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
Path Finding (how do I know you?)
33måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
Path Finding (how do I know you?)
33måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
Path Finding (how do I know you?)
33måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
Shortest Path (from a -> b)
34måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
Shortest Path (from a -> b)
34måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
35måndag 15 juli 13a graphdatavase with an ecxlpit graph structure, each node knows its adjacent nodes as the number of nodes increases the cost of a local step or hop remains the same plus an index for lookups
© All Rights Reserved 2013 | Neo Technology, Inc.
So what is a Graph Database?
35måndag 15 juli 13a graphdatavase with an ecxlpit graph structure, each node knows its adjacent nodes as the number of nodes increases the cost of a local step or hop remains the same plus an index for lookups
© All Rights Reserved 2013 | Neo Technology, Inc.
So what is a Graph Database?
35måndag 15 juli 13a graphdatavase with an ecxlpit graph structure, each node knows its adjacent nodes as the number of nodes increases the cost of a local step or hop remains the same plus an index for lookups
© All Rights Reserved 2013 | Neo Technology, Inc.
So what is a Graph Database?
35måndag 15 juli 13a graphdatavase with an ecxlpit graph structure, each node knows its adjacent nodes as the number of nodes increases the cost of a local step or hop remains the same plus an index for lookups
© All Rights Reserved 2013 | Neo Technology, Inc.
35måndag 15 juli 13a graphdatavase with an ecxlpit graph structure, each node knows its adjacent nodes as the number of nodes increases the cost of a local step or hop remains the same plus an index for lookups
© All Rights Reserved 2013 | Neo Technology, Inc.
Compered to Relational Database...
35måndag 15 juli 13a graphdatavase with an ecxlpit graph structure, each node knows its adjacent nodes as the number of nodes increases the cost of a local step or hop remains the same plus an index for lookups
© All Rights Reserved 2013 | Neo Technology, Inc.
Compered to Relational Database...
35måndag 15 juli 13a graphdatavase with an ecxlpit graph structure, each node knows its adjacent nodes as the number of nodes increases the cost of a local step or hop remains the same plus an index for lookups
© All Rights Reserved 2013 | Neo Technology, Inc.
What is Neo4j?
36måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
What is Neo4j?
36måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
37måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
- Property Graph
37måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
- Property Graph
- Full ACID (atomicity, consistency, isolation, durability)
37måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
- Property Graph
- Full ACID (atomicity, consistency, isolation, durability)
37måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
- Property Graph
- Full ACID (atomicity, consistency, isolation, durability) Not many NOSQL databases
have ACID except Neo4j...
37måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
- Property Graph
- Full ACID (atomicity, consistency, isolation, durability) Not many NOSQL databases
have ACID except Neo4j...
37måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
- Property Graph
- Full ACID (atomicity, consistency, isolation, durability) Not many NOSQL databases
have ACID except Neo4j...
37måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
- High Availability (with Enterprise Edition)
- Property Graph
- Full ACID (atomicity, consistency, isolation, durability) Not many NOSQL databases
have ACID except Neo4j...
37måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
- Embedded Server
- High Availability (with Enterprise Edition)
- Property Graph
- Full ACID (atomicity, consistency, isolation, durability) Not many NOSQL databases
have ACID except Neo4j...
37måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
- Embedded Server
- High Availability (with Enterprise Edition)
- Property Graph
- Full ACID (atomicity, consistency, isolation, durability)
- REST API
Not many NOSQL databases have ACID except Neo4j...
37måndag 15 juli 13
© All Rights Reserved 2013 | Neo Technology, Inc.
Modeling the data
38måndag 15 juli 13
39måndag 15 juli 13
What do we need
39måndag 15 juli 13
What do we needPeople
Space Crew
Land Crew
Supply Maps/Navigation System
Time schedule
Spacecraft
$$Money
Astronauts
EngineersManagers
Doctors
operative personal
Admin personal
foodwater Test, test ,testWC
space suits
communication tools
documentation
Mars
Earth
stars
training
fuelSystem
Salaries
clothes
training program
<6 months - from Earth> mars
more research
mars rover
planning
prep timerecovering time Summary
sponsors
smart people
39måndag 15 juli 13
40måndag 15 juli 13
41måndag 15 juli 13
to
participate_in
fly
41måndag 15 juli 13
to
participate_in
fly
control
works_
in
look_after
look_after
41måndag 15 juli 13
to
participate_in
fly
control
works_
in
works_at
look_after
look_after
works_atworks_at
part_o
fMars
Mission_To_Mars
Astronaut Pernilla
Spaceship
control_tower
Admin
StinaManager
Lisa
Doctor
MichaelaNASA
Headquarter
41måndag 15 juli 13
to
participate_in
fly
control
works_
in
works_at
look_after
look_after
works_atworks_at
part_o
fMars
Mission_To_Mars
Astronaut Pernilla
Spaceship
control_tower
Admin
StinaManager
Lisa
Doctor
MichaelaNASA
Headquarter
41måndag 15 juli 13
to
participate_in
fly
control
works_
in
works_at
look_after
look_after
works_atworks_at
part_o
fMars
Mission_To_Mars
Astronaut Pernilla
Spaceship
control_tower
Admin
StinaManager
Lisa
Doctor
MichaelaNASA
Headquarter
42måndag 15 juli 13
A graph database =
Nodes and relationships
Nodes RelationshipsMars
Pernilla AstronautAnna Manager
Michaela DoctorLisa Admin
Stina Engineer
Supply
SpaceshipNASA
Control Tower
Mission_to_Mars
Money
goes_into
built
designfly
works_in
look_after
works_at
participate_in
to
manage
pay_mission
43måndag 15 juli 13
44måndag 15 juli 13
Cypher - a graph query language
๏ a pattern-matching query language
๏ declarative grammar with clauses (like SQL)
๏ aggregation, ordering, limits
๏ create, read, update, delete, match
44måndag 15 juli 13
45måndag 15 juli 13
// create a nodecreate (astronaut:Astronaut {name:"Pernilla", age: 27}),(target:Planet {planet:"Mars"}),
(mission:Mission {mission:"Mission to Mars"});// find nodes match to node 1,2,3MATCH (astronaut)-[:PARTICIPATES_IN]->(mission)-[:TO]->(Planet:planet) where planet.planet = "Mars" RETURN astronaut.name
45måndag 15 juli 13
// create a nodecreate (astronaut:Astronaut {name:"Pernilla", age: 27}),(target:Planet {planet:"Mars"}),
(mission:Mission {mission:"Mission to Mars"});// find nodes match to node 1,2,3MATCH (astronaut)-[:PARTICIPATES_IN]->(mission)-[:TO]->(Planet:planet) where planet.planet = "Mars" RETURN astronaut.name
45måndag 15 juli 13
Demohttp://gist.neo4j.org/?5999059
46måndag 15 juli 13
THANKS!
Questions?
47måndag 15 juli 13