Linee di evoluzione
dei Database
DB NoSQL
Linked Open Data
Semantic Web
L. Vigliano
Database NoSQL
Esigenze e caratteristiche
• Presenza di grandi volumi di
dati…..crescenti
• Struttura non regolare dei dati da gestire
• Elementi relativamente omogenei fra loro
(senza particolari correlazioni tra loro)
• Tipi di operazioni semplici
L. Vigliano
Database NoSQL
Esigenze e caratteristiche
• Esempio : Twitter (insieme di utenti che
pubblicano interventi)
• Poche collezioni di interesse (due entità : utenti e
interventi), ma voluminose
• Poche operazioni (inserimento/modifica utente,
inserimento intervento)
• Dati identificati da una chiave, ma solo
parzialmente strutturati
L. Vigliano
Database NoSQL
Esigenze e caratteristiche
•  gestire oggetti non rigidamente strutturati
•  gestire la scalabilità dei dati.
•  offrire solo alcune delle funzioni dei
sistemi tradizionali
•   Sistemi NoSQL
(Not only SQL)
L. Vigliano
Database NoSQL
Esigenze e caratteristiche
“One size does not fit all”
• Modello relazionale come base, ma non basta
• Sistema non transazionale
• Grande scalabilità (molti processori,
partizionamento orizzontale dei dati, architettura
distribuita a bassi costi)
• Adattabilità a diversi scenari applicativi
L. Vigliano
Database NoSQL
Transazionale ?
• No ACID ma BASE (Basically Available,
Soft state, Eventually consistent)
• CAP Theorem : ‘ In un sistema distribuito
non è possibile soddisfare
contemporaneamente : consistency,
availability, partition tolerance’
L. Vigliano
Database NoSQL
Categorie/Famiglie
Le Categorie si basano ognuno su una
specifica organizzazione dei dati
1.
2.
3.
4.
Key-value system
Document Store
Extensible record store
Graph database
L. Vigliano
Database NoSQL
Key-value
•
•
•
I dati sono coppie chiave-valore definiti dal
programma (basi di dati senza schema).
La struttura degli oggetti è trasparente al sistema
e lasciata all’ applicazione che vi accede.
Es. Oracle NoSQL.
L. Vigliano
Database NoSQL
Document Store
•
•
•
Gli oggetti hanno struttura complessa
(documenti) anche se sono organizzati in
collezioni. Formato JSON.
Indici secondari non predefiniti e non hanno
tipo.
Es. MongoDB e CoachDB.
L. Vigliano
Database NoSQL
Extensible record store
•
•
•
Collezioni ( dette tabelle) senza struttura
predefinita, eccetto che per una prima struttura
di ‘famiglie’, o gruppi di colonne.
Possono essere nidificate.
Es. Big Table (Google), Hbase e HyperTable
(Open Source).
L. Vigliano
Database NoSQL
Graph Database
•
Database che si adattano a tutti quei dati che
possono essere efficientemente rappresentati
come grafi, anche di grandi dimensioni.
•
Es. di utilizzo per topologie di reti e
collegamenti stradali.
L. Vigliano
Database NoSQL
Es. MongoDB - obiettivi
•
•
•
•
Alta performance.
Alta scalabilità.
Alta affidabilità.
Fornire un insieme semplice ma ricco di
funzionalità.
Documenti JSON raggruppati in collezioni
L. Vigliano
Database NoSQL
Es. MongoDB - formato dati
•
•
•
•
Dati memorizzati in BSON e rappresentati
in JSON.
Documento JSON come insieme di
chiave-valore. Un valore può essere un
JSON annidato.
Assenza di una definizione di schema.
Assenza di tipizzazione dei dati.
L. Vigliano
Database NoSQL
Es. MongoDB - formato dati
{
“nome”: “Loredana”,
“cognome”: “Vigliano”
}
{
“nome”: “automobile”,
“modello”:
{ “produttore”: “Fiat”,
“tipo”: “Tipo”,
“colore”: “grigio”
}
“targa”: “AA 999 BB”
}
Definisce semplice
oggetto con una chiave
“nome” e una chiave
“cognome”
Es. di JSON annidato con
informazioni dettagliate
sul modello dell’ auto
L. Vigliano
Database NoSQL
Es. MongoDB - Query
SQL
MongoDB
select a,b from Users;
dDb.users.find({}, {a:1,b:1});
select * from users where
age=33;
db.users.find({age:33});
select * from users where
age=33 order by name;
db.users.find({age:33}).sort({name
:1});
create index myind on
users(name);
db.users.ensureIndex({name:1});
L. Vigliano
Database NoSQL
Es. MongoDB - altre caratteristiche
•
Assenza di transazioni, ma proprietà
ACID.
•
Alta affidabilità tramite Replication.
•
Alta scalabilità tramite suddivisione in
“shard”.
L. Vigliano
Database NoSQL
Es. BigTable - obiettivi
•
•
•
•
Alta scalabilità nella gestione dei diversi server
e dei petabyte necessari per immagazzinare i
dati.
Controllo caratteristiche prestazionali.
Persistenza e tolleranza degli errori.
Generazione mappe multilivello.
Sistema di memorizzazione distribuito, dati semistrutturati,
basato su Google File System.
L. Vigliano
Database NoSQL
Es. BigTable - formato dati
•
Formato SSTable :
– Mappa persistente, ordinata e immutabile di
associazioni chiave-valore, viste come
stringhe arbitrarie.
•
Indice dei blocchi finale per localizzare
ogni SSTable.
L. Vigliano
Database NoSQL
Es. BigTable - modello di dati
•
•
•
•
•
Non relazionale, ma basato sul layout di ogni
proprietà del DB.
Mappa multidimensionale, ordinata, sparsa,
distribuita e persistente, indicizzata per chiave di
riga, chiave di colonna e timestamp.
Righe raggruppate in maniera dinamica.
Colonne non predefinite
Multiversioning dei dati di ogni cella.
L. Vigliano
Open Linked Data
• Tim Berners Lee
L. Vigliano