+ All Categories
Home > Technology > 14:40: Bell - Data Modeling with Graphs

14:40: Bell - Data Modeling with Graphs

Date post: 20-Jan-2015
Category:
Upload: graphconnect
View: 1,908 times
Download: 0 times
Share this document with a friend
Description:
Essential Tips to Model Your Data within a graph database Neo4j requires you to fundamentally rethink how to model your data. The good news is that data modeling in neo4j is simpler than in a relational database, but there are still a number of gotcha’s that often trip people up. In this session we’ll look at a number of proven patterns for effectively modeling and retrieving your data in neo4j.
Popular Tags:
63
Data modeling . . . with graphs @PeterBell Tuesday, November 6, 12
Transcript
Page 1: 14:40: Bell - Data Modeling with Graphs

Data modeling . . . with graphs

@PeterBellTuesday, November 6, 12

Page 2: 14:40: Bell - Data Modeling with Graphs

Agenda

- Terminology- Examples- Patterns- Key takeaways

Tuesday, November 6, 12

Page 3: 14:40: Bell - Data Modeling with Graphs

Terminology

Tuesday, November 6, 12

Page 4: 14:40: Bell - Data Modeling with Graphs

relational database

tablescolumnsrecords

foreign keys

Tuesday, November 6, 12

Page 5: 14:40: Bell - Data Modeling with Graphs

Tuesday, November 6, 12

Page 6: 14:40: Bell - Data Modeling with Graphs

neo4j

nodesrelationshipsproperties

Tuesday, November 6, 12

Page 7: 14:40: Bell - Data Modeling with Graphs

Tuesday, November 6, 12

Page 8: 14:40: Bell - Data Modeling with Graphs

Tuesday, November 6, 12

Page 9: 14:40: Bell - Data Modeling with Graphs

indexes

Tuesday, November 6, 12

Page 10: 14:40: Bell - Data Modeling with Graphs

Tuesday, November 6, 12

Page 11: 14:40: Bell - Data Modeling with Graphs

indexes

Tuesday, November 6, 12

Page 12: 14:40: Bell - Data Modeling with Graphs

traversals

Tuesday, November 6, 12

Page 13: 14:40: Bell - Data Modeling with Graphs

Tuesday, November 6, 12

Page 14: 14:40: Bell - Data Modeling with Graphs

Tuesday, November 6, 12

Page 15: 14:40: Bell - Data Modeling with Graphs

Tuesday, November 6, 12

Page 16: 14:40: Bell - Data Modeling with Graphs

Cypher

Tuesday, November 6, 12

Page 17: 14:40: Bell - Data Modeling with Graphs

OO language - domain objects

Java domain objectsHibernate

SQLTables/rows/columns/FKs

Object (graph|relational) mapping

Java domain objectsSpring Data Neo4j

CypherNodes/relationships/properties

Tuesday, November 6, 12

Page 18: 14:40: Bell - Data Modeling with Graphs

Examples

Tuesday, November 6, 12

Page 19: 14:40: Bell - Data Modeling with Graphs

Tuesday, November 6, 12

Page 20: 14:40: Bell - Data Modeling with Graphs

Tuesday, November 6, 12

Page 21: 14:40: Bell - Data Modeling with Graphs

Article

Author

WRITTEN_BY

Category

CATEGORIZED_UNDER

Comment

ADDED_TO

Commenter

WRITTEN_BY FOLLOWS

Tuesday, November 6, 12

Page 22: 14:40: Bell - Data Modeling with Graphs

Geographic

Tuesday, November 6, 12

Page 23: 14:40: Bell - Data Modeling with Graphs

Bioinformatic

Tuesday, November 6, 12

Page 24: 14:40: Bell - Data Modeling with Graphs

Patterns

Tuesday, November 6, 12

Page 25: 14:40: Bell - Data Modeling with Graphs

start with a whiteboard

Tuesday, November 6, 12

Page 26: 14:40: Bell - Data Modeling with Graphs

Tuesday, November 6, 12

Page 27: 14:40: Bell - Data Modeling with Graphs

Handling entities

Tuesday, November 6, 12

Page 28: 14:40: Bell - Data Modeling with Graphs

...provide a familiar and consistent Spring based programming model while retaining

store specific features and capabilities

Tuesday, November 6, 12

Page 29: 14:40: Bell - Data Modeling with Graphs

Tuesday, November 6, 12

Page 30: 14:40: Bell - Data Modeling with Graphs

Restaurant

User

- comment- rating

- name- address- cuisine

- first_name- last_name

RECOMMENDS_THE

Tuesday, November 6, 12

Page 31: 14:40: Bell - Data Modeling with Graphs

Tuesday, November 6, 12

Page 32: 14:40: Bell - Data Modeling with Graphs

Tuesday, November 6, 12

Page 33: 14:40: Bell - Data Modeling with Graphs

Restaurant

RECOMMENDS_A

User

- comment- rating

- name- address- cuisine

- first_name- last_name

Tuesday, November 6, 12

Page 34: 14:40: Bell - Data Modeling with Graphs

Restaurant

RECOMMENDS_THE

User

- comment- rating

- name- address

- first_name- last_name

CuisineSERVES

Tuesday, November 6, 12

Page 35: 14:40: Bell - Data Modeling with Graphs

Taj Mahal

RECOMMENDS

Fred Jones

- “Great garlic nan and tandoori”- 4/5

Indian cuisineSERVES

Tuesday, November 6, 12

Page 36: 14:40: Bell - Data Modeling with Graphs

read sentences from graph

Tuesday, November 6, 12

Page 37: 14:40: Bell - Data Modeling with Graphs

Tuesday, November 6, 12

Page 38: 14:40: Bell - Data Modeling with Graphs

Indexes for starting points

Tuesday, November 6, 12

Page 39: 14:40: Bell - Data Modeling with Graphs

User

- email_address- first_name- last_name

Tuesday, November 6, 12

Page 40: 14:40: Bell - Data Modeling with Graphs

Relationships for querying

Tuesday, November 6, 12

Page 41: 14:40: Bell - Data Modeling with Graphs

User- email_address- first_name- last_name- shipping_state

Select * where shipping_state = ‘Ca’?

Tuesday, November 6, 12

Page 42: 14:40: Bell - Data Modeling with Graphs

User

- email_address- first_name- last_name

State

LIVES_IN - name- code

Tuesday, November 6, 12

Page 43: 14:40: Bell - Data Modeling with Graphs

California

Jess

Andrew

Andreas

LIVES_IN

LIVES_IN

LIVES_IN

Tuesday, November 6, 12

Page 44: 14:40: Bell - Data Modeling with Graphs

Use meaningful names

Tuesday, November 6, 12

Page 45: 14:40: Bell - Data Modeling with Graphs

Language Country

- country_id- name- flag url

- language_id- name- word count- country_id

Tuesday, November 6, 12

Page 46: 14:40: Bell - Data Modeling with Graphs

Language Country

- country_id- name- flag url

- language_id- name- word count

LanguageCountry

- language_id- country_id- spoken_since

Tuesday, November 6, 12

Page 47: 14:40: Bell - Data Modeling with Graphs

Language Country

- country_id- name- flag url

- language_id- name- word count

LanguageCountry

- language_id- country_id- spoken_since

Tuesday, November 6, 12

Page 48: 14:40: Bell - Data Modeling with Graphs

Language Country

- name- flag url

- name- word count

IS_SPOKEN_IN

Tuesday, November 6, 12

Page 49: 14:40: Bell - Data Modeling with Graphs

Language Country

- name- flag url

- name- word count

IS_SPOKEN_IN

SIMILAR_TO ADJACENT_TO

Tuesday, November 6, 12

Page 50: 14:40: Bell - Data Modeling with Graphs

Anti-Patterns

Tuesday, November 6, 12

Page 51: 14:40: Bell - Data Modeling with Graphs

Hefty nodes

Tuesday, November 6, 12

Page 52: 14:40: Bell - Data Modeling with Graphs

User

- first_name- last_name- email_address- bill_address- bill_city- bill_state- bill_zip

- ship_address- ship_city- ship_state- ship_zip- regular_customer

Tuesday, November 6, 12

Page 53: 14:40: Bell - Data Modeling with Graphs

User

- first_name- last_name- email_address- regular_customer

- street_address- city- state- zip

AddressBILLS_TO

SHIPS_TO

Tuesday, November 6, 12

Page 54: 14:40: Bell - Data Modeling with Graphs

User

- first_name- last_name- email_address

- street_address- city- state- zip

AddressBILLS_TO

SHIPS_TO

Regular customer

IS_A

Tuesday, November 6, 12

Page 55: 14:40: Bell - Data Modeling with Graphs

Regularcustomer

Jess

Andrew

Andreas

IS_A

IS_A

IS_A

Tuesday, November 6, 12

Page 56: 14:40: Bell - Data Modeling with Graphs

Missing nodes

Tuesday, November 6, 12

Page 57: 14:40: Bell - Data Modeling with Graphs

Peter JimEMAILED

Tuesday, November 6, 12

Page 58: 14:40: Bell - Data Modeling with Graphs

Peter JimSENT

EmailTO

Tuesday, November 6, 12

Page 59: 14:40: Bell - Data Modeling with Graphs

Hot node

Tuesday, November 6, 12

Page 60: 14:40: Bell - Data Modeling with Graphs

Tuesday, November 6, 12

Page 61: 14:40: Bell - Data Modeling with Graphs

Key takeaways

Tuesday, November 6, 12

Page 62: 14:40: Bell - Data Modeling with Graphs

Indexes for starting points

Relationships for queries

Read sentences from the graph

Look out for verb’d nouns

Tuesday, November 6, 12

Page 63: 14:40: Bell - Data Modeling with Graphs

Data modeling with graphs @PeterBell

- Indexes for starting points- Relationships for queries- Read sentences from the graph- Look out for verb’d nouns

Tuesday, November 6, 12


Recommended