Data Modeling With Graph Databases
Data Modeling With Graph Databases
DATABASES
Ross McNeely
Principal Consultant, Practice Manager, Business Intelligence
“Data Junkie”
DATA MODELING WITH GRAPH DATABASES
HTTP://TAILWINDTECH.COM
• Introduction to the Graph Model (15 min)
• Data Modeling with Graph Databases (15 min)
• Relational and Graph Models (10 min)
• Healthcare Use Case (20 min)
Agenda • Deeper Dive into Graph Databases (20 min)
• Logistics Use Case (15 min)
• Security Use Case (15 min)
• Summary (5 min)
Document
Graph
INTRODUCTION TO THE GRAPH MODEL
Graph Defined:
1“Formally, a graph is just a collection of vertices and edges-or, in less
intimidating language, a set of nodes and the relationships that connect
them.”
Graph
Less Formally Defined:
-A graph is a set of nodes, relationships, and properties.
-A network of connected objects.
INTRODUCTION TO THE GRAPH MODEL
• Nodes (“vertices”)
Property • Relationships (“edges”)
Graph • Properties
INTRODUCTION TO THE GRAPH MODEL
name: bode
miller
INTRODUCTION TO THE GRAPH MODEL
Olympic
_Address
INTRODUCTION TO THE GRAPH MODEL
Address:123
Fake Street
INTRODUCTION TO THE GRAPH MODEL
Basic Graph
Node Ross
Property
Relationship
knows knows
ArangoDB
Trinity Neo4J BigData
Graph Processing
Bitsy
BrightStartDB
DEX/Sparksee
Filament
GraphBase
Horton
HyperGraphDB
FlockDB Allegro OpenLink
R2DF
Titan
Graph Storage VelocityGraph
VertexDB
INTRODUCTION TO THE GRAPH MODEL
*Triple Stores come from the Semantic Web movement. A triple is a subject-predicate-object
data structure
BENEFITS OF THE GRAPH MODEL
INTRODUCTION TO THE GRAPH MODEL
DATA MODELING WITH GRAPH DATABASES
Type: Activity
Label: isMember
Name: Jack Name: Martial
Since: 6/15/2013
Age: 7 Arts
Label: Member
GRAPH MODELING
DATA MODELING WITH GRAPH DATABASES
DATA MODELING WITH GRAPH DATABASES
Graph CRUD
CRUD Matrix
Function\Entity Appointment
Enter C
Confirm RU
Cancel D
DATA MODELING WITH GRAPH DATABASES
Relational
Graph
• Patient Matching
Healthcare Use
Case
PK PatientMasterID PK FirstName
• FirstName
PK LastName
FK1,FK2 FirstName PK DOB
• LastName FK1,FK2 LastName PK Gender
Master • DOB
FK1,FK2
FK1,FK2
DOB
Gender
PK
PK
SSN
Address1
Data • Gender
FK1
FK1
SSN
Address1
Lookup
• SSN PatientSourceC
• Address1 PK FirstName
PK LastName
PK DOB
PK Gender
HEALTHCARE USE CASE
Normalization
PatientExternal PatientMaster
PK PatientExternalID PatientSourceRef PK PatientMasterID
FirstNameOriginal PK PatientSourceRefID
FK1,FK2 FirstName
LastNameOriginal FK1,FK2 LastName
DOBOriginal FK1 PatientExternalID
FK1,FK2 DOB
GenderOriginal FK2 PatientMasterID
FK1,FK2 Gender
SSNOriginal IsActiveRecord
FK1 SSN
Address1Original FK1 Address1
HEALTHCARE USE CASE
Came_From
I created a
matching site based
Patient Patient Patient Patient Patient
on social graph William Bill Pat Pat Joe
database example
Lives_At Lives_In
CHAOS
I started without a
plan
DEEPER DIVE INTO GRAPH DATABASES
This is easy!
DESIGN PATTERNS3
Linked List
Multiple Relationships
Tags and Categories
Multi Level Tree
R-Tree (spatial)
Activity Stream
Anti-pattern: Unconnected graph
PATTERNS
DEEPER DIVE INTO GRAPH DATABASES
DEEPER DIVE INTO GRAPH DATABASES
Name: super
combined slalom
Rank: 7
DEEPER DIVE INTO GRAPH DATABASES
Olympian country:
name Competes_in
usa
country Competes Order: 1
sport1_name _for
sport1_rank name: bode Placed
Rank: 8
Downhill
sport2_name miller
sport2_rank
sport3_name Placed Competes_in
sport3_rank Rank: 12 Order: 2
Super
Combined
DEEPER DIVE INTO GRAPH DATABASES
Year Year
2013 2014
Month Month
december january
15 25 1 2
on on on on
http://blog.bruggen.com/2013/11/clickstreams-are-so-much-nicer-in-neo4j.html
MISCELLANEOUS
DEEPER DIVE INTO GRAPH DATABASES
DEEPER DIVE INTO GRAPH DATABASES
Olympic Address
_Address Type:Olympic
Address:123 Address:123
Fake Street Fake Street
DEEPER DIVE INTO GRAPH DATABASES
OLAP •
•
Index-free adjacency processing
Identify clusters in data
• Optimized for scanning and processing large sets
DEEP DIVE INTO GRAPH DATABASES
• Monitoring
Enterprise • Live backups
Ready • High performance caches,
• HA clustering
DEEPER DIVE INTO GRAPH DATABASES
PickDropRef
Carrier Site
PK PickDropRefID
PK CarrierID PK SiteID
FK1 CarrierID
Name FK2 SiteID Name
SomeAttribute SiteType SomeAttribute
Sequence
LOGISTICS USE CASE
Package Drop
2 C
Pickup
Carrier
A
“Graph Databases”1
• Graph Modeling
• Graph Databases
• Tail Wind Informatics
Summary • Ross McNeely