Upload
dmitry-makarchuk
View
124
Download
0
Tags:
Embed Size (px)
Citation preview
Data modeling . . . with graphs
@PeterBellWednesday, November 28, 12
Agenda
- Terminology- Examples- Patterns- Key takeaways
Wednesday, November 28, 12
Terminology
Wednesday, November 28, 12
relational database
tablescolumnsrecords
foreign keys
Wednesday, November 28, 12
Wednesday, November 28, 12
neo4j
nodesrelationshipsproperties
Wednesday, November 28, 12
Wednesday, November 28, 12
Wednesday, November 28, 12
indexes
Wednesday, November 28, 12
Wednesday, November 28, 12
indexes
Wednesday, November 28, 12
traversals
Wednesday, November 28, 12
Wednesday, November 28, 12
Wednesday, November 28, 12
Wednesday, November 28, 12
Cypher
Wednesday, November 28, 12
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
Examples
Wednesday, November 28, 12
Wednesday, November 28, 12
Wednesday, November 28, 12
Article
Author
WRITTEN_BY
Category
CATEGORIZED_UNDER
Comment
ADDED_TO
Commenter
WRITTEN_BY FOLLOWS
Wednesday, November 28, 12
Geographic
Wednesday, November 28, 12
Bioinformatic
Wednesday, November 28, 12
Patterns
Wednesday, November 28, 12
start with a whiteboard
Wednesday, November 28, 12
Wednesday, November 28, 12
Handling entities
Wednesday, November 28, 12
...provide a familiar and consistent Spring based programming model while retaining
store specific features and capabilities
Wednesday, November 28, 12
Wednesday, November 28, 12
Restaurant
User
- comment- rating
- name- address- cuisine
- first_name- last_name
RECOMMENDS_THE
Wednesday, November 28, 12
Wednesday, November 28, 12
Wednesday, November 28, 12
Restaurant
RECOMMENDS_A
User
- comment- rating
- name- address- cuisine
- first_name- last_name
Wednesday, November 28, 12
Restaurant
RECOMMENDS_THE
User
- comment- rating
- name- address
- first_name- last_name
CuisineSERVES
Wednesday, November 28, 12
Taj Mahal
RECOMMENDS
Fred Jones
- “Great garlic nan and tandoori”- 4/5
Indian cuisineSERVES
Wednesday, November 28, 12
read sentences from graph
Wednesday, November 28, 12
Wednesday, November 28, 12
Indexes for starting points
Wednesday, November 28, 12
User
- email_address- first_name- last_name
Wednesday, November 28, 12
Relationships for querying
Wednesday, November 28, 12
User- email_address- first_name- last_name- shipping_state
Select * where shipping_state = ‘Ca’?
Wednesday, November 28, 12
User
- email_address- first_name- last_name
State
LIVES_IN - name- code
Wednesday, November 28, 12
California
Jess
Andrew
Andreas
LIVES_IN
LIVES_IN
LIVES_IN
Wednesday, November 28, 12
Use meaningful names
Wednesday, November 28, 12
Language Country
- country_id- name- flag url
- language_id- name- word count- country_id
Wednesday, November 28, 12
Language Country
- country_id- name- flag url
- language_id- name- word count
LanguageCountry
- language_id- country_id- spoken_since
Wednesday, November 28, 12
Language Country
- country_id- name- flag url
- language_id- name- word count
LanguageCountry
- language_id- country_id- spoken_since
Wednesday, November 28, 12
Language Country
- name- flag url
- name- word count
IS_SPOKEN_IN
Wednesday, November 28, 12
Language Country
- name- flag url
- name- word count
IS_SPOKEN_IN
SIMILAR_TO ADJACENT_TO
Wednesday, November 28, 12
Anti-Patterns
Wednesday, November 28, 12
Hefty nodes
Wednesday, November 28, 12
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
User
- first_name- last_name- email_address- regular_customer
- street_address- city- state- zip
AddressBILLS_TO
SHIPS_TO
Wednesday, November 28, 12
User
- first_name- last_name- email_address
- street_address- city- state- zip
AddressBILLS_TO
SHIPS_TO
Regular customer
IS_A
Wednesday, November 28, 12
Regularcustomer
Jess
Andrew
Andreas
IS_A
IS_A
IS_A
Wednesday, November 28, 12
Missing nodes
Wednesday, November 28, 12
Peter JimEMAILED
Wednesday, November 28, 12
Peter JimSENT
EmailTO
Wednesday, November 28, 12
Hot node
Wednesday, November 28, 12
Wednesday, November 28, 12
Key takeaways
Wednesday, November 28, 12
Indexes for starting points
Relationships for queries
Read sentences from the graph
Look out for verb’d nouns
Wednesday, November 28, 12
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