38
Università degli Studi di Salerno Simone Scalabrino Prof.ssa G. Tortora NoSQL Graph Databases Sistemi Informatici e Tecnologie del Software Basi di Dati II Anno 2013/2014 Prof. G. Polese Carlo Branca Matteo Merola Giovanni Grano

Graph databases

Embed Size (px)

DESCRIPTION

An introduction to graph databases, which shows pros and cons of this kind NoSQL databases.

Citation preview

Page 1: Graph databases

Università degli Studi di Salerno

Simone Scalabrino

Prof.ssa G. Tortora

NoSQL Graph Databases

Sistemi Informatici e Tecnologie del Software

Basi di Dati IIAnno 2013/2014

Prof. G. Polese

Carlo Branca

Matteo Merola

Giovanni Grano

Page 2: Graph databases

Progettazione di un RDBMS

Modello concettuale

Page 3: Graph databases

Progettazione di un RDBMS

Modello concettualerifinito

Page 4: Graph databases

Progettazione di un RDBMS

Modello logico

Page 5: Graph databases

Progettazione di un RDBMS

SQL

Page 6: Graph databases

Progettazione di un RDBMS

Tanti modelli!

Page 7: Graph databases

Dove sono le relazioni?

Page 8: Graph databases

Dove sono le relazioni?

Nascoste nei modelli di basso livello

Ricostruibili solo attraverso join

Page 9: Graph databases

Si possono superare questi limiti?

Page 10: Graph databases

Graph Database

Page 11: Graph databases

Grafo orientato

nodo

nodo

nodo

nodoarco arco

arco

arco

Page 12: Graph databases

Verso un nuovo tipo di grafo...

nodo

nodo

nodo

nodorelazione relazione

relazione

relazione

Page 13: Graph databases

Grafo con proprietà

nodo

nodo

nodo

nodorelazione relazione

relazione

relazione

Proprietà 1: Valore 1Proprietà 2: Valore 2…Proprietà n: Valore n

Etichetta

Page 14: Graph databases

… le relazioni sono centrali!

In un grafo con proprietà...

Page 15: Graph databases

In un grafo con proprietà...

… le relazioni sono centrali!

Più del

dell'informazione

Page 16: Graph databases

Progettazione

Page 17: Graph databases

Scenario-based

Page 18: Graph databases

Scenario-based

Dinamico

Aiuta a comprendere il dominio applicativo

Modellazione test-driven

Page 19: Graph databases

Model-based

Area

Artist

Track

Recording

Work

ReleaseMedium

Label

FROM_AREA

CREDITED_ON

CREDITED_ON

IS_RECORDING

PERFORMANCE

APPEARS_ON RELEASED_ON

RELEASED_ON

Page 20: Graph databases

Model-based

Area

Artist

Track

Recording

Work

ReleaseMedium

Label

FROM_AREA

CREDITED_ON

CREDITED_ON

IS_RECORDING

PERFORMANCE

APPEARS_ON RELEASED_ON

RELEASED_ON

Aiuta nella definizionedi query complesse

Molto simile a undiagramma ER

Permette di farerequirement elicitation

Page 21: Graph databases

Confronto

Page 22: Graph databases

Esperimento

Page 23: Graph databases

Esperimento

utentitra

Trovare gli amici di amici

Page 24: Graph databases

Profondità 20

0

0

0,01

0,01

0,01

0,01

0,01

0,02

RDBMS

Graph DB

Tempi di risposta

Page 25: Graph databases

Profondità 2 Profondità 30

5

10

15

20

25

30

35

RDBMS

Graph DB

Tempi di risposta

Page 26: Graph databases

Profondità 2 Profondità 3 Profondità 40

200

400

600

800

1000

1200

1400

1600

RDBMS

Graph DB

Tempi di risposta

Page 27: Graph databases

Live demoLive demo

Page 28: Graph databases

Live demo

PersonMessage

Tag

Link

MENTIONS

TWEETED

USED

TAGS

LINKS

KN

OW

S

Page 29: Graph databases

Live demo

Page 30: Graph databases

Quando scegliere i grafi?

Page 31: Graph databases

Quando scegliere i grafi?

Tanti dati prodotti

Progettazione rapida

Performance

Relazioni importanti

Page 32: Graph databases

Quando non scegliere i grafi

Page 33: Graph databases

Quando non scegliere i grafi

Linguaggi

Poche relazioni

Sistemi critici

Sharding

Page 34: Graph databases

In sintesi

Page 35: Graph databases

Approfondimenti

Page 36: Graph databases

Approfondimenti

Page 37: Graph databases

Approfondimenti

Page 38: Graph databases

Grazie per l'attenzione!

Simone [email protected]

Università degli Studi di Salerno

http://goo.gl/NHIC8k