2012 11-28 rich web data modeling with graphs-1

63
Data modeling . . . with graphs @PeterBell Wednesday, November 28, 12

Upload: dmitry-makarchuk

Post on 12-May-2015

455 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: 2012 11-28 rich web data modeling with graphs-1

Data modeling . . . with graphs

@PeterBellWednesday, November 28, 12

Page 2: 2012 11-28 rich web data modeling with graphs-1

Agenda

- Terminology- Examples- Patterns- Key takeaways

Wednesday, November 28, 12

Page 3: 2012 11-28 rich web data modeling with graphs-1

Terminology

Wednesday, November 28, 12

Page 4: 2012 11-28 rich web data modeling with graphs-1

relational database

tablescolumnsrecords

foreign keys

Wednesday, November 28, 12

Page 5: 2012 11-28 rich web data modeling with graphs-1

Wednesday, November 28, 12

Page 6: 2012 11-28 rich web data modeling with graphs-1

neo4j

nodesrelationshipsproperties

Wednesday, November 28, 12

Page 7: 2012 11-28 rich web data modeling with graphs-1

Wednesday, November 28, 12

Page 8: 2012 11-28 rich web data modeling with graphs-1

Wednesday, November 28, 12

Page 9: 2012 11-28 rich web data modeling with graphs-1

indexes

Wednesday, November 28, 12

Page 10: 2012 11-28 rich web data modeling with graphs-1

Wednesday, November 28, 12

Page 11: 2012 11-28 rich web data modeling with graphs-1

indexes

Wednesday, November 28, 12

Page 12: 2012 11-28 rich web data modeling with graphs-1

traversals

Wednesday, November 28, 12

Page 13: 2012 11-28 rich web data modeling with graphs-1

Wednesday, November 28, 12

Page 14: 2012 11-28 rich web data modeling with graphs-1

Wednesday, November 28, 12

Page 15: 2012 11-28 rich web data modeling with graphs-1

Wednesday, November 28, 12

Page 16: 2012 11-28 rich web data modeling with graphs-1

Cypher

Wednesday, November 28, 12

Page 17: 2012 11-28 rich web data modeling with graphs-1

OO language - domain objects

Java domain objectsHibernate

SQLTables/rows/columns/FKs

Object (graph|relational) mapping

Java domain objectsSpring Data Neo4j

CypherNodes/relationships/properties

Wednesday, November 28, 12

Page 18: 2012 11-28 rich web data modeling with graphs-1

Examples

Wednesday, November 28, 12

Page 19: 2012 11-28 rich web data modeling with graphs-1

Wednesday, November 28, 12

Page 20: 2012 11-28 rich web data modeling with graphs-1

Wednesday, November 28, 12

Page 21: 2012 11-28 rich web data modeling with graphs-1

Article

Author

WRITTEN_BY

Category

CATEGORIZED_UNDER

Comment

ADDED_TO

Commenter

WRITTEN_BY FOLLOWS

Wednesday, November 28, 12

Page 22: 2012 11-28 rich web data modeling with graphs-1

Geographic

Wednesday, November 28, 12

Page 23: 2012 11-28 rich web data modeling with graphs-1

Bioinformatic

Wednesday, November 28, 12

Page 24: 2012 11-28 rich web data modeling with graphs-1

Patterns

Wednesday, November 28, 12

Page 25: 2012 11-28 rich web data modeling with graphs-1

start with a whiteboard

Wednesday, November 28, 12

Page 26: 2012 11-28 rich web data modeling with graphs-1

Wednesday, November 28, 12

Page 27: 2012 11-28 rich web data modeling with graphs-1

Handling entities

Wednesday, November 28, 12

Page 28: 2012 11-28 rich web data modeling with graphs-1

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

store specific features and capabilities

Wednesday, November 28, 12

Page 29: 2012 11-28 rich web data modeling with graphs-1

Wednesday, November 28, 12

Page 30: 2012 11-28 rich web data modeling with graphs-1

Restaurant

User

- comment- rating

- name- address- cuisine

- first_name- last_name

RECOMMENDS_THE

Wednesday, November 28, 12

Page 31: 2012 11-28 rich web data modeling with graphs-1

Wednesday, November 28, 12

Page 32: 2012 11-28 rich web data modeling with graphs-1

Wednesday, November 28, 12

Page 33: 2012 11-28 rich web data modeling with graphs-1

Restaurant

RECOMMENDS_A

User

- comment- rating

- name- address- cuisine

- first_name- last_name

Wednesday, November 28, 12

Page 34: 2012 11-28 rich web data modeling with graphs-1

Restaurant

RECOMMENDS_THE

User

- comment- rating

- name- address

- first_name- last_name

CuisineSERVES

Wednesday, November 28, 12

Page 35: 2012 11-28 rich web data modeling with graphs-1

Taj Mahal

RECOMMENDS

Fred Jones

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

Indian cuisineSERVES

Wednesday, November 28, 12

Page 36: 2012 11-28 rich web data modeling with graphs-1

read sentences from graph

Wednesday, November 28, 12

Page 37: 2012 11-28 rich web data modeling with graphs-1

Wednesday, November 28, 12

Page 38: 2012 11-28 rich web data modeling with graphs-1

Indexes for starting points

Wednesday, November 28, 12

Page 39: 2012 11-28 rich web data modeling with graphs-1

User

- email_address- first_name- last_name

Wednesday, November 28, 12

Page 40: 2012 11-28 rich web data modeling with graphs-1

Relationships for querying

Wednesday, November 28, 12

Page 41: 2012 11-28 rich web data modeling with graphs-1

User- email_address- first_name- last_name- shipping_state

Select * where shipping_state = ‘Ca’?

Wednesday, November 28, 12

Page 42: 2012 11-28 rich web data modeling with graphs-1

User

- email_address- first_name- last_name

State

LIVES_IN - name- code

Wednesday, November 28, 12

Page 43: 2012 11-28 rich web data modeling with graphs-1

California

Jess

Andrew

Andreas

LIVES_IN

LIVES_IN

LIVES_IN

Wednesday, November 28, 12

Page 44: 2012 11-28 rich web data modeling with graphs-1

Use meaningful names

Wednesday, November 28, 12

Page 45: 2012 11-28 rich web data modeling with graphs-1

Language Country

- country_id- name- flag url

- language_id- name- word count- country_id

Wednesday, November 28, 12

Page 46: 2012 11-28 rich web data modeling with graphs-1

Language Country

- country_id- name- flag url

- language_id- name- word count

LanguageCountry

- language_id- country_id- spoken_since

Wednesday, November 28, 12

Page 47: 2012 11-28 rich web data modeling with graphs-1

Language Country

- country_id- name- flag url

- language_id- name- word count

LanguageCountry

- language_id- country_id- spoken_since

Wednesday, November 28, 12

Page 48: 2012 11-28 rich web data modeling with graphs-1

Language Country

- name- flag url

- name- word count

IS_SPOKEN_IN

Wednesday, November 28, 12

Page 49: 2012 11-28 rich web data modeling with graphs-1

Language Country

- name- flag url

- name- word count

IS_SPOKEN_IN

SIMILAR_TO ADJACENT_TO

Wednesday, November 28, 12

Page 50: 2012 11-28 rich web data modeling with graphs-1

Anti-Patterns

Wednesday, November 28, 12

Page 51: 2012 11-28 rich web data modeling with graphs-1

Hefty nodes

Wednesday, November 28, 12

Page 52: 2012 11-28 rich web data modeling with graphs-1

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

Wednesday, November 28, 12

Page 53: 2012 11-28 rich web data modeling with graphs-1

User

- first_name- last_name- email_address- regular_customer

- street_address- city- state- zip

AddressBILLS_TO

SHIPS_TO

Wednesday, November 28, 12

Page 54: 2012 11-28 rich web data modeling with graphs-1

User

- first_name- last_name- email_address

- street_address- city- state- zip

AddressBILLS_TO

SHIPS_TO

Regular customer

IS_A

Wednesday, November 28, 12

Page 55: 2012 11-28 rich web data modeling with graphs-1

Regularcustomer

Jess

Andrew

Andreas

IS_A

IS_A

IS_A

Wednesday, November 28, 12

Page 56: 2012 11-28 rich web data modeling with graphs-1

Missing nodes

Wednesday, November 28, 12

Page 57: 2012 11-28 rich web data modeling with graphs-1

Peter JimEMAILED

Wednesday, November 28, 12

Page 58: 2012 11-28 rich web data modeling with graphs-1

Peter JimSENT

EmailTO

Wednesday, November 28, 12

Page 59: 2012 11-28 rich web data modeling with graphs-1

Hot node

Wednesday, November 28, 12

Page 60: 2012 11-28 rich web data modeling with graphs-1

Wednesday, November 28, 12

Page 61: 2012 11-28 rich web data modeling with graphs-1

Key takeaways

Wednesday, November 28, 12

Page 62: 2012 11-28 rich web data modeling with graphs-1

Indexes for starting points

Relationships for queries

Read sentences from the graph

Look out for verb’d nouns

Wednesday, November 28, 12

Page 63: 2012 11-28 rich web data modeling with graphs-1

Data modeling with graphs @PeterBell

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

Wednesday, November 28, 12