SlideShare a Scribd company logo
1 of 43
The Sequel to SQL:
Le nuove frontiere dei database
Prof Marcello Missiroli
Università di Modena e Reggio Emilia
XII Settimane della Scienza e della Tecnica
IIS Fermo Corni
Modena, 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×(5×10-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 mondo
dell'informazione
1. “Big data”
Esabyte (10 alla 18) salvati ogni anno nel mondo
Ogni anno creiamo
più contenuto digitale
di quanto ne sia stato
creato negli anni
precedenti.
La tendenza è
In aumento.
(*) Immagine da “NoSQL for Dummies”
2. “Connectivity”
Nel corso del tempo,
I dati diventano sempre
più interconnessi.
Link, Hashtags, ...
“Connettività”delleinformazioni
(*) Immagine da “NoSQL for Dummies”
3. Destrutturazione“Connettività”delleinformazioni
● 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:
– “Titolo”
● negli 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à”delleinformazioni
NoSQL
E che sarebbe?“Connettività”delleinformazioni
● 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!
CSC8101-2014-2015–P.Missier
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
Quattro categorie di NoSQLDB“Connettività”delleinformazioni
● Key-valueDB (Dynomite,
Voldermort,TokyoTyrant, ...)
● BigTable DB (Hbase, Hypertable,
Cassandra,...)
● Document DB (CouchDB, MongoDB, ...)
● GraphDB (Neo4j, Pregel, ...)
GraphDB“Connettività”delleinformazioni
● 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”
CSC8101-2014-2015–P.Missier
Un esempio: Twitter in Neo4J
CSC8101-2014-2015–P.Missier
Esempio concreto (in realtà MILIONI di nodi)
Type: user
Name:pippo
Type: tweet
Content:”#saluti a pluto!”
Type: user
Name:pluto
Type: hashtag
Value:”#saluti”
Type: user
Name:paperino
sent
contains
follows
m
entions
follows
CSC8101-2014-2015–P.Missier
Elencare i dieci utenti con più follower
MATCH x-[:FOLLOWS]->y
RETURN count(x), y
ORDER BY count(x) DESC LIMIT 10
CSC8101-2014-2015–P.Missier
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
2A B C
D
E
S
5
30
Esempio: distanza da un dato punto
2
2
2
2
2A
∞
B
∞
C
∞
D
∞
E
∞
S
0
5
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
2A
∞
B
∞
C
∞
D
∞
E
∞
S
0
5
30
Superstep 1
● Il nodo attivo
spedisce a tutti i vicini
il proprio valore + la
distanza
2
2
2
2
30
5
2
2A
∞
B
∞
C
30
D
5
E
2
S
0
5
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
2A
7
B
4
C
30
D
5
E
2
S
0
5
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
26
9
6
2A
6
B
4
C
6
D
5
E
2
S
0
5
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
2A
6
B
4
C
6
D
5
E
2
S
0
5
30
Superstep 5
● A, B, C si disattivano
● D ed S si attivano
● Nessun
aggiornamento
● Nessun messaggio
spedito
2
2
2
2
2A
6
B
4
C
6
D
5
E
2
S
0
5
30
Superstep 6
● D e S si disattivano
● Tutti i nodi sono
disattivati: fine
algoritmo
2
2
2
2
2A
6
B
4
C
6
D
5
E
2
S
0
5
30
Lo pseudocodice del programma
 ∀ Node v:     
SS0:  v.val = +inf;
SSn:
   foreach msg in <incoming 
messages>
   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)
CREDITS
I.Paolo Missier, Dispense del corso “Introduction to Graph
Databases”.
II.Tobias Ivarrson, “NoSQL for Dummies”.
III. 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.

More Related Content

Viewers also liked

Programmazione a oggetti tramite la macchina del caffé (pt. 3)
Programmazione a oggetti tramite la macchina del caffé (pt. 3)Programmazione a oggetti tramite la macchina del caffé (pt. 3)
Programmazione a oggetti tramite la macchina del caffé (pt. 3)Marcello Missiroli
 
L'avvento del programmatore sociale
L'avvento del programmatore socialeL'avvento del programmatore sociale
L'avvento del programmatore socialeMarcello Missiroli
 
Destination building slides
Destination building slidesDestination building slides
Destination building slidesAngelo Presenza
 
Bertero destination management 13.11.2014 low
Bertero destination management 13.11.2014 lowBertero destination management 13.11.2014 low
Bertero destination management 13.11.2014 lowLiketourism Ancona
 
Destination Management per i nuovi turismi: cosa apprendere dai migliori
Destination Management per i nuovi turismi: cosa apprendere dai miglioriDestination Management per i nuovi turismi: cosa apprendere dai migliori
Destination Management per i nuovi turismi: cosa apprendere dai miglioriBruno Bertero
 
Destination Management 101
Destination Management 101Destination Management 101
Destination Management 101Nelleke Pruijs
 
How to write a formal Report
How to write a formal ReportHow to write a formal Report
How to write a formal ReportOmar Hussein
 
How to prepare a basic training module
How to prepare a basic training moduleHow to prepare a basic training module
How to prepare a basic training moduleKALYANASUNDARAM Ar_Umu
 
Corso di formazione avanzato in "Destination Social Media Marketing" Four Tou...
Corso di formazione avanzato in "Destination Social Media Marketing" Four Tou...Corso di formazione avanzato in "Destination Social Media Marketing" Four Tou...
Corso di formazione avanzato in "Destination Social Media Marketing" Four Tou...FTourism & Marketing
 
La nuova sfida del Destination Management.
La nuova sfida del Destination Management.La nuova sfida del Destination Management.
La nuova sfida del Destination Management.FTourism & Marketing
 

Viewers also liked (20)

Programmazione a oggetti tramite la macchina del caffé (pt. 3)
Programmazione a oggetti tramite la macchina del caffé (pt. 3)Programmazione a oggetti tramite la macchina del caffé (pt. 3)
Programmazione a oggetti tramite la macchina del caffé (pt. 3)
 
L'avvento del programmatore sociale
L'avvento del programmatore socialeL'avvento del programmatore sociale
L'avvento del programmatore sociale
 
Eccezioni in java
Eccezioni in javaEccezioni in java
Eccezioni in java
 
Moodle: i compiti (homework)
Moodle: i compiti (homework)Moodle: i compiti (homework)
Moodle: i compiti (homework)
 
Investire nelle user story
Investire nelle user storyInvestire nelle user story
Investire nelle user story
 
Routing dinamico
Routing dinamicoRouting dinamico
Routing dinamico
 
Destination building slides
Destination building slidesDestination building slides
Destination building slides
 
Espressioni regolari
Espressioni regolariEspressioni regolari
Espressioni regolari
 
Bertero destination management 13.11.2014 low
Bertero destination management 13.11.2014 lowBertero destination management 13.11.2014 low
Bertero destination management 13.11.2014 low
 
Flipped classroom
Flipped classroomFlipped classroom
Flipped classroom
 
Controllo di versione e Git
Controllo di versione e GitControllo di versione e Git
Controllo di versione e Git
 
Introduzione al dns
Introduzione al dnsIntroduzione al dns
Introduzione al dns
 
Il sistema binario
Il sistema binarioIl sistema binario
Il sistema binario
 
Moodle Spiegato Con Il Lego
Moodle Spiegato Con Il LegoMoodle Spiegato Con Il Lego
Moodle Spiegato Con Il Lego
 
Destination Management per i nuovi turismi: cosa apprendere dai migliori
Destination Management per i nuovi turismi: cosa apprendere dai miglioriDestination Management per i nuovi turismi: cosa apprendere dai migliori
Destination Management per i nuovi turismi: cosa apprendere dai migliori
 
Destination Management 101
Destination Management 101Destination Management 101
Destination Management 101
 
How to write a formal Report
How to write a formal ReportHow to write a formal Report
How to write a formal Report
 
How to prepare a basic training module
How to prepare a basic training moduleHow to prepare a basic training module
How to prepare a basic training module
 
Corso di formazione avanzato in "Destination Social Media Marketing" Four Tou...
Corso di formazione avanzato in "Destination Social Media Marketing" Four Tou...Corso di formazione avanzato in "Destination Social Media Marketing" Four Tou...
Corso di formazione avanzato in "Destination Social Media Marketing" Four Tou...
 
La nuova sfida del Destination Management.
La nuova sfida del Destination Management.La nuova sfida del Destination Management.
La nuova sfida del Destination Management.
 

Similar to The Sequel to sql

Introduzione ai Big Data e alla scienza dei dati - Exploratory Data Analysis
Introduzione ai Big Data e alla scienza dei dati - Exploratory Data AnalysisIntroduzione ai Big Data e alla scienza dei dati - Exploratory Data Analysis
Introduzione ai Big Data e alla scienza dei dati - Exploratory Data AnalysisVincenzo Manzoni
 
noSQL La nuova frontiera dei Database [DB05-S]
noSQL La nuova frontiera dei Database [DB05-S]noSQL La nuova frontiera dei Database [DB05-S]
noSQL La nuova frontiera dei Database [DB05-S]Andrea Maddalena
 
Il progetto INNO: dal dato alla applicazione - Pierluigi Cau (CRS4)
Il progetto INNO: dal dato alla applicazione - Pierluigi Cau (CRS4)Il progetto INNO: dal dato alla applicazione - Pierluigi Cau (CRS4)
Il progetto INNO: dal dato alla applicazione - Pierluigi Cau (CRS4)Sardegna Ricerche
 
Edsger W. Dijkstra - Flipped Classroom
Edsger W. Dijkstra - Flipped ClassroomEdsger W. Dijkstra - Flipped Classroom
Edsger W. Dijkstra - Flipped ClassroomAntonio De Piano
 
Power bi Clean and Modelling (SQL Saturday #675)
Power bi Clean and Modelling  (SQL Saturday #675)Power bi Clean and Modelling  (SQL Saturday #675)
Power bi Clean and Modelling (SQL Saturday #675)Marco Pozzan
 
ERDAS 2011 World Tour Slideshow Presentazione
ERDAS 2011 World Tour Slideshow PresentazioneERDAS 2011 World Tour Slideshow Presentazione
ERDAS 2011 World Tour Slideshow PresentazionePlanetek Italia Srl
 
Couchbase Meetup - "Introduzione a NoSQL e Couchbase"
Couchbase Meetup - "Introduzione a NoSQL e Couchbase"Couchbase Meetup - "Introduzione a NoSQL e Couchbase"
Couchbase Meetup - "Introduzione a NoSQL e Couchbase"Franco Caporale
 
Digital 1nn0vation saturday pn 2019 - ML.NET
Digital 1nn0vation saturday pn 2019 - ML.NETDigital 1nn0vation saturday pn 2019 - ML.NET
Digital 1nn0vation saturday pn 2019 - ML.NETMarco Zamana
 
What is new in C# 2018
What is new in C# 2018What is new in C# 2018
What is new in C# 2018Marco Parenzan
 
What's Big Data? - Big Data Tech - 2015 - Firenze
What's Big Data? - Big Data Tech - 2015 - FirenzeWhat's Big Data? - Big Data Tech - 2015 - Firenze
What's Big Data? - Big Data Tech - 2015 - FirenzeAlberto Paro
 
Datarace: IoT e Big Data (Italian)
Datarace: IoT e Big Data (Italian)Datarace: IoT e Big Data (Italian)
Datarace: IoT e Big Data (Italian)Davide Mauri
 
I Graph Database: analisi del comportamento degli utenti
I Graph Database: analisi del comportamento degli utentiI Graph Database: analisi del comportamento degli utenti
I Graph Database: analisi del comportamento degli utentiThinkOpen
 
Cloud, IoT and Big Data
Cloud, IoT and Big DataCloud, IoT and Big Data
Cloud, IoT and Big DataSolidQIT
 
Back to Basics webinar 1 IT 17 - Introduzione ai NoSQL
Back to Basics webinar 1 IT 17 - Introduzione ai NoSQLBack to Basics webinar 1 IT 17 - Introduzione ai NoSQL
Back to Basics webinar 1 IT 17 - Introduzione ai NoSQLMongoDB
 
MongoDB - Back to Basics 2017 - Introduzione a NoSQL
MongoDB - Back to Basics 2017 - Introduzione a NoSQLMongoDB - Back to Basics 2017 - Introduzione a NoSQL
MongoDB - Back to Basics 2017 - Introduzione a NoSQLMassimo Brignoli
 
Introduzione ai Big Data e alla scienza dei dati - Big Data
Introduzione ai Big Data e alla scienza dei dati - Big DataIntroduzione ai Big Data e alla scienza dei dati - Big Data
Introduzione ai Big Data e alla scienza dei dati - Big DataVincenzo Manzoni
 
Love Your Database (ESC 2k16)
Love Your Database (ESC 2k16)Love Your Database (ESC 2k16)
Love Your Database (ESC 2k16)PgTraining
 
Laboratorio Internet: 1. Introduzione
Laboratorio Internet: 1. IntroduzioneLaboratorio Internet: 1. Introduzione
Laboratorio Internet: 1. IntroduzioneRoberto Polillo
 

Similar to The Sequel to sql (20)

Introduzione ai Big Data e alla scienza dei dati - Exploratory Data Analysis
Introduzione ai Big Data e alla scienza dei dati - Exploratory Data AnalysisIntroduzione ai Big Data e alla scienza dei dati - Exploratory Data Analysis
Introduzione ai Big Data e alla scienza dei dati - Exploratory Data Analysis
 
3DD 1e 1 Agosto Def Roadmap
3DD 1e 1 Agosto Def Roadmap3DD 1e 1 Agosto Def Roadmap
3DD 1e 1 Agosto Def Roadmap
 
CV completo
CV completoCV completo
CV completo
 
noSQL La nuova frontiera dei Database [DB05-S]
noSQL La nuova frontiera dei Database [DB05-S]noSQL La nuova frontiera dei Database [DB05-S]
noSQL La nuova frontiera dei Database [DB05-S]
 
Il progetto INNO: dal dato alla applicazione - Pierluigi Cau (CRS4)
Il progetto INNO: dal dato alla applicazione - Pierluigi Cau (CRS4)Il progetto INNO: dal dato alla applicazione - Pierluigi Cau (CRS4)
Il progetto INNO: dal dato alla applicazione - Pierluigi Cau (CRS4)
 
Edsger W. Dijkstra - Flipped Classroom
Edsger W. Dijkstra - Flipped ClassroomEdsger W. Dijkstra - Flipped Classroom
Edsger W. Dijkstra - Flipped Classroom
 
Power bi Clean and Modelling (SQL Saturday #675)
Power bi Clean and Modelling  (SQL Saturday #675)Power bi Clean and Modelling  (SQL Saturday #675)
Power bi Clean and Modelling (SQL Saturday #675)
 
ERDAS 2011 World Tour Slideshow Presentazione
ERDAS 2011 World Tour Slideshow PresentazioneERDAS 2011 World Tour Slideshow Presentazione
ERDAS 2011 World Tour Slideshow Presentazione
 
Couchbase Meetup - "Introduzione a NoSQL e Couchbase"
Couchbase Meetup - "Introduzione a NoSQL e Couchbase"Couchbase Meetup - "Introduzione a NoSQL e Couchbase"
Couchbase Meetup - "Introduzione a NoSQL e Couchbase"
 
Digital 1nn0vation saturday pn 2019 - ML.NET
Digital 1nn0vation saturday pn 2019 - ML.NETDigital 1nn0vation saturday pn 2019 - ML.NET
Digital 1nn0vation saturday pn 2019 - ML.NET
 
What is new in C# 2018
What is new in C# 2018What is new in C# 2018
What is new in C# 2018
 
What's Big Data? - Big Data Tech - 2015 - Firenze
What's Big Data? - Big Data Tech - 2015 - FirenzeWhat's Big Data? - Big Data Tech - 2015 - Firenze
What's Big Data? - Big Data Tech - 2015 - Firenze
 
Datarace: IoT e Big Data (Italian)
Datarace: IoT e Big Data (Italian)Datarace: IoT e Big Data (Italian)
Datarace: IoT e Big Data (Italian)
 
I Graph Database: analisi del comportamento degli utenti
I Graph Database: analisi del comportamento degli utentiI Graph Database: analisi del comportamento degli utenti
I Graph Database: analisi del comportamento degli utenti
 
Cloud, IoT and Big Data
Cloud, IoT and Big DataCloud, IoT and Big Data
Cloud, IoT and Big Data
 
Back to Basics webinar 1 IT 17 - Introduzione ai NoSQL
Back to Basics webinar 1 IT 17 - Introduzione ai NoSQLBack to Basics webinar 1 IT 17 - Introduzione ai NoSQL
Back to Basics webinar 1 IT 17 - Introduzione ai NoSQL
 
MongoDB - Back to Basics 2017 - Introduzione a NoSQL
MongoDB - Back to Basics 2017 - Introduzione a NoSQLMongoDB - Back to Basics 2017 - Introduzione a NoSQL
MongoDB - Back to Basics 2017 - Introduzione a NoSQL
 
Introduzione ai Big Data e alla scienza dei dati - Big Data
Introduzione ai Big Data e alla scienza dei dati - Big DataIntroduzione ai Big Data e alla scienza dei dati - Big Data
Introduzione ai Big Data e alla scienza dei dati - Big Data
 
Love Your Database (ESC 2k16)
Love Your Database (ESC 2k16)Love Your Database (ESC 2k16)
Love Your Database (ESC 2k16)
 
Laboratorio Internet: 1. Introduzione
Laboratorio Internet: 1. IntroduzioneLaboratorio Internet: 1. Introduzione
Laboratorio Internet: 1. Introduzione
 

More from Marcello Missiroli

More from Marcello Missiroli (12)

Algorithmist guide II
Algorithmist guide IIAlgorithmist guide II
Algorithmist guide II
 
Guida del perfetto Algoritmista I
Guida del perfetto Algoritmista IGuida del perfetto Algoritmista I
Guida del perfetto Algoritmista I
 
Workshop: Introduzione ad TDD
Workshop: Introduzione ad TDDWorkshop: Introduzione ad TDD
Workshop: Introduzione ad TDD
 
Dal c a Java (3/3)
Dal c a Java (3/3)Dal c a Java (3/3)
Dal c a Java (3/3)
 
Dal C a Java (2/3)
Dal C a Java (2/3)Dal C a Java (2/3)
Dal C a Java (2/3)
 
Dal C a Java (1/3)
Dal C a Java (1/3)Dal C a Java (1/3)
Dal C a Java (1/3)
 
Variabili
VariabiliVariabili
Variabili
 
Sviluppo degli algoritmi
Sviluppo degli algoritmiSviluppo degli algoritmi
Sviluppo degli algoritmi
 
5 stadi dello sviluppo di un gruppo
5 stadi dello sviluppo di un gruppo5 stadi dello sviluppo di un gruppo
5 stadi dello sviluppo di un gruppo
 
Vogliamo programmatori stupidi e pigri!
Vogliamo programmatori stupidi e pigri!Vogliamo programmatori stupidi e pigri!
Vogliamo programmatori stupidi e pigri!
 
Big O Notation
Big O NotationBig O Notation
Big O Notation
 
Introduzione a java doc
Introduzione a java docIntroduzione a java doc
Introduzione a java doc
 

Recently uploaded

Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Associazione Digital Days
 
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Associazione Digital Days
 
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Associazione Digital Days
 
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Associazione Digital Days
 
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Associazione Digital Days
 
Programma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoProgramma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoQuotidiano Piemontese
 
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Associazione Digital Days
 
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Associazione Digital Days
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Associazione Digital Days
 

Recently uploaded (9)

Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
 
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
 
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
 
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
 
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
 
Programma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoProgramma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 Torino
 
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
 
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
 

The Sequel to sql

  • 1. The Sequel to SQL: Le nuove frontiere dei database Prof Marcello Missiroli Università di Modena e Reggio Emilia XII Settimane della Scienza e della Tecnica IIS Fermo Corni Modena, 9 Dicembre 2014
  • 4. 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×(5×10-9 )=1,78s ● Questi sono solo i risultati TROVATI da Google ● Il numero delle pagina ANALIZZATE è circa 2.000.000.000.
  • 5. I database relazionali ● Un grande idea ● Una grande tecnologia ● Ottime implementazioni ● Un linguaggio quasi-standard (SQL) per l'utilizzo
  • 6. 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!
  • 7. QUATTRO EVENTI che stanno cambiando il mondo dell'informazione
  • 8. 1. “Big data” Esabyte (10 alla 18) salvati ogni anno nel mondo Ogni anno creiamo più contenuto digitale di quanto ne sia stato creato negli anni precedenti. La tendenza è In aumento. (*) Immagine da “NoSQL for Dummies”
  • 9. 2. “Connectivity” Nel corso del tempo, I dati diventano sempre più interconnessi. Link, Hashtags, ... “Connettività”delleinformazioni (*) Immagine da “NoSQL for Dummies”
  • 10. 3. Destrutturazione“Connettività”delleinformazioni ● 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: – “Titolo” ● negli 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).
  • 11. 4. Architettura Anni ottanta: applicazioni Indipendenti (*) Immagine da “NoSQL for Dummies”
  • 12. 4. Architettura Anni novanta: database come punto di connessione (*) Immagine da “NoSQL for Dummies”
  • 13. 4. Architettura Anni duemila: applicazioni indipendenti e interagenti (*) Immagine da “NoSQL for Dummies”
  • 14. 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”
  • 15. (*) Immagine da “A Walk in graph databases”
  • 16. (*) Immagine da “A Walk in graph databases”
  • 18. E che sarebbe?“Connettività”delleinformazioni ● 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!
  • 19. CSC8101-2014-2015–P.Missier 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
  • 20. Quattro categorie di NoSQLDB“Connettività”delleinformazioni ● Key-valueDB (Dynomite, Voldermort,TokyoTyrant, ...) ● BigTable DB (Hbase, Hypertable, Cassandra,...) ● Document DB (CouchDB, MongoDB, ...) ● GraphDB (Neo4j, Pregel, ...)
  • 21. GraphDB“Connettività”delleinformazioni ● Come esempio guarderemo quest'ultimo perché.... – Il tempo è limitato. – E' quello che si discosta di più dagli altri – E' quello che conosco meglio!
  • 22. 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”
  • 23. Grafo: il nodo ● Un identificatore ● Varie proprietà ● Lista di nodi in uscita (*) Immagine da “A Walk in graph databases”
  • 24. Grafo: l'arco ● Un identificatore ● Varie proprietà ● Un nodo d'ingresso ● Un nodo in uscita (*) Immagine da “A Walk in graph databases”
  • 26. CSC8101-2014-2015–P.Missier Esempio concreto (in realtà MILIONI di nodi) Type: user Name:pippo Type: tweet Content:”#saluti a pluto!” Type: user Name:pluto Type: hashtag Value:”#saluti” Type: user Name:paperino sent contains follows m entions follows
  • 27. CSC8101-2014-2015–P.Missier Elencare i dieci utenti con più follower MATCH x-[:FOLLOWS]->y RETURN count(x), y ORDER BY count(x) DESC LIMIT 10
  • 28. CSC8101-2014-2015–P.Missier 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))
  • 29. 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
  • 30. 2A B C D E S 5 30 Esempio: distanza da un dato punto 2 2 2 2
  • 31. 2A ∞ B ∞ C ∞ D ∞ E ∞ S 0 5 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
  • 32. 2A ∞ B ∞ C ∞ D ∞ E ∞ S 0 5 30 Superstep 1 ● Il nodo attivo spedisce a tutti i vicini il proprio valore + la distanza 2 2 2 2 30 5 2
  • 33. 2A ∞ B ∞ C 30 D 5 E 2 S 0 5 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
  • 34. 2A 7 B 4 C 30 D 5 E 2 S 0 5 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 26 9 6
  • 35. 2A 6 B 4 C 6 D 5 E 2 S 0 5 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
  • 36. 2A 6 B 4 C 6 D 5 E 2 S 0 5 30 Superstep 5 ● A, B, C si disattivano ● D ed S si attivano ● Nessun aggiornamento ● Nessun messaggio spedito 2 2 2 2
  • 37. 2A 6 B 4 C 6 D 5 E 2 S 0 5 30 Superstep 6 ● D e S si disattivano ● Tutti i nodi sono disattivati: fine algoritmo 2 2 2 2
  • 38. 2A 6 B 4 C 6 D 5 E 2 S 0 5 30 Lo pseudocodice del programma  ∀ Node v:      SS0:  v.val = +inf; SSn:    foreach msg in <incoming  messages>    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
  • 39. 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.
  • 40. 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.
  • 41. Riassumendo DOMANDE? (non vi mangio!) 640K ought to be enough for anybody.
  • 43. GRAZIE DELL'ATTENZIONE! Marcello Missiroli (prof.missiroli@gmail.com) CREDITS I.Paolo Missier, Dispense del corso “Introduction to Graph Databases”. II.Tobias Ivarrson, “NoSQL for Dummies”. III. 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.

Editor's Notes

  1. The Forbes article