28. • Millions
of
‘joins’
per
second
• Consistent
query
Jmes
as
dataset
grows
• Join
Complexity
and
Performance
• Easy
to
evolve
data
model
• Easy
to
‘layer’
different
types
of
data
together
ProperJes
of
graph
databases
31. • Used
to
represent
enJty
aributes
and/or
metadata
(e.g.
Jmestamps,
version)
• Key-‐value
pairs
• Java
primiJves
• Arrays
• null
is
not
a
valid
value
• Every
node
can
have
different
properJes
Nodes
can
have
properJes
34. • RelaJonships
are
first
class
ciJzens
• Every
relaJonship
has
a
name
and
a
direc.on
– Add
structure
to
the
graph
– Provide
semanJc
context
for
nodes
• ProperJes
used
to
represent
quality
or
weight
of
relaJonship,
or
metadata
• Every
relaJonship
must
have
a
start
node
and
end
node
RelaJonships
35. Nodes
can
be
connected
by
more
than
one
relaJonship
Nodes
can
have
more
than
one
relaJonship
Self
relaJonships
are
allowed
RelaJonships
38. • Nodes
– EnJJes
• RelaJonships
– Connect
enJJes
and
structure
domain
• ProperJes
– EnJty
aXributes,
relaJonship
qualiJes,
and
metadata
• Labels
– Group
nodes
by
role
Four
Building
Blocks
39. Purposeful
abstracJon
of
a
domain
designed
to
saJsfy
parJcular
applicaJon/end-‐user
goals
Models
65. • Goals
scored
in
each
month
by
Michu
• ToXenham
results
when
Gareth
Bale
scores
• What
did
Wayne
Rooney
do
in
April?
• Which
players
only
score
when
a
game
is
televised?
Other
football
queries
68. Rela%onal
Graphs
Tables
Nodes
-‐
no
need
to
set
a
property
if
it
-‐
assume
records
all
have
the
same
structure
doesn’t
exist
Foreign
keys
between
tables
Rela%onships
-‐
joins
calculated
at
run
Jme
-‐
stored
as
a
‘Pre-‐computed
-‐
the
more
tables
you
join
to
a
index’
at
write
Jme
query
the
slower
the
query
gets
-‐
very
easy
to
do
lots
of
‘hops’
between
relaJonships
Graph
vs
RelaJonal
79. ts gy
en lo
i m no
pl h
m ec
Co eo T
N
of
Graph
h
Databases
Ian Robinson,
Jim Webber Emil Eifrem
www.graphdatabases.com
Come
take
a
copy,
it’s
free!