the sequel to sql

Download The Sequel to sql

Post on 21-Jul-2015

114 views

Category:

Technology

0 download

Embed Size (px)

TRANSCRIPT

The Sequel to SQL:

Le nuove frontiere dei database

Prof Marcello MissiroliUniversit di Modena e Reggio Emilia

XII Settimane della Scienza e della TecnicaIIS Fermo CorniModena, 9 Dicembre 2014

Quiz

Quiz

Quiz

375.000.000 in 0,21 secondi

Il tempo di accesso medio di un SSD 5ns, 5 nanosecondi = 5.0 10-9 secondi

375.000.000(510-9)=1,78s

Questi sono solo i risultati TROVATI da Google

Il numero delle pagina ANALIZZATE circa 2.000.000.000.

I database relazionali

Un grande idea

Una grande tecnologia

Ottime implementazioni

Un linguaggio quasi-standard (SQL) per l'utilizzo

I database relazionali

Un'idea del 1970

Boom negli anni 80

Tutti li usano (pi o meno consciamente)

Per, oggi il mondo cambiato (informatico e non). MOLTO cambiato!

QUATTRO EVENTI

che stanno cambiando il mondodell'informazione

1. Big data

Esabyte (10 alla 18) salvati ogni anno nel mondo

Ogni anno creiamo pi contenuto digitaledi quanto ne sia stato creato negli anniprecedenti.La tendenza In aumento.(*) Immagine da NoSQL for Dummies

2. Connectivity

Nel corso del tempo, I dati diventano sempre
pi interconnessi.
Link, Hashtags, ... Connettivit delle informazioni

(*) Immagine da NoSQL for Dummies

3. Destrutturazione

Connettivit delle informazioni

La tendenza alla personalizzazione impedisce di trovare un modello adatto per tutti.

Necessario memorizzare molte informazioni per la stessa entit (accelerata dal cosiddetto web 2.0)

Esempi di evoluzione: Titolonegli anni 70: Stringa;

oggi: Titolo multilinguaggio, con ideogrammi, multifont, da sinistra a destra

Ricavo da lavoro negli anni 70: float.

oggi: una lista di possibili lavori (occasionali, stagionali, fissi).

4. Architettura

Anni ottanta: applicazioni Indipendenti

(*) Immagine da NoSQL for Dummies

4. Architettura

Anni novanta: database come punto di connessione

(*) Immagine da NoSQL for Dummies

4. Architettura

Anni duemila: applicazioni indipendenti e interagenti

(*) Immagine da NoSQL for Dummies

Il risultato

Complessit di dati

Performance

Per tutti questi motivi,
i DB relazionali non
sono pi adeguati alle
necessit delle grandi
applicazioni moderne(*) Immagine da NoSQL for Dummies

(*) Immagine da A Walk in graph databases

(*) Immagine da A Walk in graph databases

La risposta?

Connettivit delle informazioni

NoSQL

E che sarebbe?

Connettivit delle informazioni

Sta per Not OnlySQL

Non vuol dire che SQL e i RDMBS non si devono pi usare!

Indica che ci sono soluzioni che POTREBBERO funzionare meglio!

Evoluzione dei modelli di dati

(*) Renzo Angles and Claudio Gutierrez. 2008. Survey of graph database models. ACM Comput. Surv. 40, 1, Article 1 (February 2008), 39 pages. DOI=10.1145/1322432.1322433 http://doi.acm.org/10.1145/1322432.1322433

The Forbes article

Quattro categorie di NoSQLDB

Connettivit delle informazioni

Key-valueDB (Dynomite, Voldermort,TokyoTyrant, ...)

BigTable DB (Hbase, Hypertable, Cassandra,...)

Document DB (CouchDB, MongoDB, ...)

GraphDB (Neo4j, Pregel, ...)

GraphDB

Connettivit delle informazioni

Come esempio guarderemo quest'ultimo perch....Il tempo limitato.

E' quello che si discosta di pi dagli altri

E' quello che conosco meglio!

Cos' un grafo?

Un grafo un insieme di elementi detti nodi che possono essere collegati fra loro da linee chiamate archi.

(*) Immagine da A Walk in graph databases

Grafo: il nodo

Un identificatore

Varie propriet

Lista di nodi in uscita

(*) Immagine da A Walk in graph databases

Grafo: l'arco

Un identificatore

Varie propriet

Un nodo d'ingresso

Un nodo in uscita

(*) Immagine da A Walk in graph databases

Un esempio: Twitter in Neo4J

Esempio concreto (in realt MILIONI di nodi)

Type: userName:pippoType: tweetContent:#saluti a pluto!Type: userName:plutoType: hashtag
Value:#salutiType: userName:paperinosent

contains

follows

mentions

follows

Elencare i dieci utenti con pi follower

MATCH x-[:FOLLOWS]->y RETURN count(x), y ORDER BY count(x) DESC LIMIT 10

Verificare la teoria dei sei gradi di separazione

Trovare il numero massimo di salti necessari per collegare due qualsiasi utenti

MATCH x-[p:FOLLOWS*]->y RETURN max(length(p))

Pregel / Giraph

Approccio fortemente parallelo (Bulk Synchronous Parallel)

Una serie di iterazioni (supersteps)

Ogni vertice richiama una funzione in parallelo

Pu leggere e spedire messaggi agli altri nodi

Pu decidere di fermarsi

Quando tutti si fermano, l'algoritmo termina

2

A

B

C

D

E

S

5

30

Esempio: distanza da un dato punto

2

2

2

2

2

A
B
C
D
E
S
05

30

Inizializzazione

Tutti i nodi sono inizializzati a infinito

Il nodo di partenza inizializzato a 0

Il nodo di partenza attivo

2

2

2

2

2

A
B
C
D
E
S
05

30

Superstep 1

Il nodo attivo spedisce a tutti i vicini il proprio valore + la distanza

2

2

2

2

30

5

2

2

A
B
C
30D
5E
2S
05

30

Superstep 2

Il nodo S non ha ricevuto messaggi, e si disattiva

I nodi C,D,E si attivano

Aggiornano il proprio valore, se pi basso di quello memorizzato

Inviano il messaggio ai vicini (tranne da dove arrivato il messaggio con valore minimo)

2

2

2

2

7

4

32

2

A
7B
4C
30D
5E
2S
05

30

Superstep 3

I nodi C,D,E non hanno ricevuto messaggi, e si disattivano

I nodi A e B si attivano

Aggiornano il proprio valore, se pi basso di quello memorizzato (B riceve due messaggi, e memorizza il minore)

Inviano il messaggio ai vicini (tranne da dove arrivato il messaggio con valore minimo)

2

2

2

2

6

9

6

2

A
6B
4C
6D
5E
2S
05

30

Superstep 4

Il nodo C si attiva

C e A aggiornano il proprio valore, mentre B no

C e A Inviano il messaggio

2

2

2

2

8

36

2

A
6B
4C
6D
5E
2S
05

30

Superstep 5

A, B, C si disattivano

D ed S si attivano

Nessun aggiornamento

Nessun messaggio spedito

2

2

2

2

2

A
6B
4C
6D
5E
2S
05

30

Superstep 6

D e S si disattivano

Tutti i nodi sono disattivati: fine algoritmo

2

2

2

2

2

A
6B
4C
6D
5E
2S
05

30

Lo pseudocodice del programma

Node v: SS0: v.val = +inf;SSn:foreach msg in minimum = min (min, msg.value)if (minimum < v.val) { v.val = minimum; send v.val + distance(v,v) to all neighbours v except minimum origin}

2

2

2

2

Riassumendo

I Database relazionali, adatti a tanti problemi, non sono in grado di gestire la grande mole di dati dell'Information Age

I Database NoSQL sono una possibile risposta: sono scalabili, flessibili e in grado di sfruttare le architetture parallele

Non sono in competizione con i RDBMS, quanto uno strumento aggiuntivo a nostra disposizione.

Riassumendo

Imparare i DB NoSQL una freccia in pi al vostro arco di conoscenza

Forse al momento sembrano eccessivi, ma l'evoluzione tecnologica inarrestabile: chi si limita all'esistente, rischia di restare indietro.

Riassumendo

DOMANDE?
(non vi mangio!)

640K ought to be
enough for anybody.

Per saperne di pi

GRAZIE DELL'ATTENZIONE!

Marcello Missiroli
(prof.missiroli@gmail.com)

CREDITSPaolo Missier, Dispense del corso Introduction to Graph Databases.

Tobias Ivarrson, NoSQL for Dummies.

Pierre De Wilde A Walk in Graph databases

Per le parti di mia competenza, la licenza CC BY-SA. Per tutto il resto la licenza dei rispettivi autori.

CSC 8101- 2014-2015 P.MissierFate clic per modificare il formato del testo del titoloClick to edit Master title style

Fate clic per modificare il formato del testo della strutturaSecondo livello strutturaTerzo livello strutturaQuarto livello strutturaQuinto livello strutturaSesto livello struttura

Settimo livello strutturaClick to edit Master text styles

Second level

Third level

Fourth level

Fifth level

CSC 8101- 2014-2015 P.MissierFate clic per modificare il formato del testo del titoloClick to edit Master title style

Recommended

View more >