Slide 1

Slide 1 text

WHAT IS THIS HIPSTER GRAPH THINGY?

Slide 2

Slide 2 text

WHAT IS THIS HIPSTER GRAPH THINGY?

Slide 3

Slide 3 text

GRAPH

Slide 4

Slide 4 text

GRAPH NO!

Slide 5

Slide 5 text

GRAPH DB • nodes • edges / relationships • properties / attributes

Slide 6

Slide 6 text

WHY? • natural • graphs are everywhere • easy to think about

Slide 7

Slide 7 text

RELATIONAL DB

Slide 8

Slide 8 text

RELATIONAL DB

Slide 9

Slide 9 text

GRAPH DB

Slide 10

Slide 10 text

NETWORK & DATA CENTER

Slide 11

Slide 11 text

RECOMMENDATIONS

Slide 12

Slide 12 text

SOCIAL

Slide 13

Slide 13 text

ACCESS MANAGEMENT

Slide 14

Slide 14 text

NEO4J • NoSQL • open-source • Java/Scala • the most popular graph DB • full DB characteristics (ACID compliance, cluster support, runtime failover)

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

GETTING STARTED • brew install neo4j • neo4j start • gem 'neo4j' • http://localhost:7474/

Slide 17

Slide 17 text

CYPHER • SQL-like • ASCII-ish SELECT firstname FROM person WHERE person.nickname= 'The Dude' MATCH p:person WHERE p.nickname= 'The Dude' RETURN p.firstname

Slide 18

Slide 18 text

CYPHER • SQL-like • ASCII-ish SELECT firstname FROM person WHERE person.nickname= 'The Dude' MATCH p:person WHERE p.nickname= 'The Dude' RETURN p.firstname FROM person JOIN team ON person.teamid = team.id WHERE person.nickname= 'The Dude' AND team.sport = 'Bowling' MATCH (p:person)-[:in]->(t:team) WHERE p.nickname= 'The Dude' AND t.sport = 'Bowling' RETURN p.firstname, t.name

Slide 19

Slide 19 text

CYPHER • SQL-like • ASCII-ish SELECT firstname FROM person WHERE person.nickname= 'The Dude' MATCH p:person WHERE p.nickname= 'The Dude' RETURN p.firstname FROM person JOIN team ON person.teamid = team.id WHERE person.nickname= 'The Dude' AND team.sport = 'Bowling' MATCH (p:person)-[:in]->(t:team) WHERE p.nickname= 'The Dude' AND t.sport = 'Bowling' RETURN p.firstname, t.name MATCH (p:person)-[*]-(p2:person) WHERE p.nickname= 'The Dude' RETURN p.firstname, p2.firstname MATCH (p:person{nickname: 'The Dude'})-[*]-(p2:person) RETURN p.firstname, p2.firstname

Slide 20

Slide 20 text

DEMO

Slide 21

Slide 21 text

Q&A

Slide 22

Slide 22 text

http://mr.si/
 @mr_foto THANK YOU http://rug.si/
 @RubySlovenia