• Non ci sono risultati.

Corso di Basi di Dati

N/A
N/A
Protected

Academic year: 2021

Condividi "Corso di Basi di Dati"

Copied!
42
0
0

Testo completo

(1)

Corso di Basi di Dati

Introduzione ai Database NoSQL

Home page del corso:

http://www.cs.unibo.it/~difelice/dbsi/

(2)

Introduzione ai database NoSQL

NoSQLà Movimento che promuove l’adozione di DMBS non basati sul modello relazionale.

²  Il termine NOSQL appare per la prima volta in una pubblicazione di Carlo Strozzi nel 1998.

²  Oggi, il termine NOSQL viene usato per lo più nell’accezione NoT Only SQL.

“Next generation databases mostly addressing some of the points:

being non-relational, distributed, open source and horizzontally scalable” (definizione da http://nosql-database.org/)

(3)

Introduzione ai database NoSQL

²  Database distribuiti

²  Strumenti generalmente open-source

²  NON dispongono di schema

²  NON supportano operazioni di join

²  NON implementano le proprietà ACID delle transazioni

²  Sono scalabili orizzontalmente

²  Sono in grado di gestire grandi moli di dati

²  Supportano le repliche dei dati

PROPRIETA dei SISTEMI NO-SQL

(4)

Introduzione ai database NoSQL

Motivazioni legate alla diffusione dei database NoSQL:

²  Gestione dei Big-data

²  Limitazioni del modello relazionale

²  Teorema CAP

(5)

Introduzione ai database NoSQL

Big data: moli di dati, eterogenee, destrutturate, difficili da gestire attraverso tecnologie tradizionali.

²  Il termine big-data è oggi usato sia per denotare tipologie di dati, sia le tecnologie e i tool di

gestione degli stessi.

²  Tecnologie tradizionali à RDBMS

(6)

Introduzione ai database NoSQL

² Volume: Big data = grosse moli di data

Esempio: Dati da esperimenti scientifici

Acceleratore di particelle del

CERN

²  600 milioni di collisioni al secondo

²  30 Petabyte di dati annui relativi ai collision event

http://home.web.cern.ch/about/computing

(7)

Introduzione ai database NoSQL

Un esempio di sorgente di Big-Data: Sensoristica

7

(8)

From an Internet of Humans … to an Internet of Things …

Source: Cisco IBSG, April 2011

8

Introduzione ai database NoSQL

(9)

Introduzione ai database NoSQL

Un esempio di sorgente di Big-Data: Sensoristica

9

GOOGLE NEST

(domotica) (e-health) ALIVECOR

(automazione industriale)

(automotive)

(10)

Introduzione ai database NoSQL

Un esempio di sorgente di Big-Data: Sensoristica

Esempio: BARCELLONA SMART CITY

SMART LIGHTINING SMART WASTE MANAGEMENT

(11)

Introduzione ai database NoSQL

Un esempio di sorgente di Big-Data: Sensoristica

²  Le applicazioni legate alla sensoristica possono generare moli ingenti di dati, a frequenza costante o variabile.

²  Tuttavia, più che il contenuto dei dati singoli, spesso l’interesse delle applicazioni è rivolto alla conoscenza “estraibile” dai dati.

SISTEMA REALE

(12)

Introduzione ai database NoSQL

Data Mining: tecniche di apprendimento computerizzato per analizzare ed estrarre conoscenze da collezioni di dati.

Pattern e relazioni non note a priori e non immediatamente identificabili.

Disciplina complessa: utilizzo di tecniche di machine learning, intelligenza

artificiale e statistiche …

(13)

Un esempio di sorgente di Big-Data: Dispositivi mobili

Fonte: Lane, Miluzzo et alt, A survey of mobile phone sensing, IEEE Communication Magazine, 2010

2. SHARE

3. ANALYZE

4. PROVIDE SERVICES

13

Introduzione ai database NoSQL

(14)

Introduzione ai database NoSQL

² Volume: Big data = grosse moli di data

Complessità bassa Complessità media Complessità alta MB

GB TB PB

(15)

Introduzione ai database NoSQL

² Velocity: Big data = stream di dati

Esempio: Sistemi health-care http://www-03.ibm.com/press/us/en/pressrelease /40624.wss?cm_mc_uid=34296522129514448284754

&cm_mc_sid_50200000=1444828475

Early-Warning System

²  Predict rising brain pressure in patients with traumatic brain injuries.

²  Stream di 1000 dati al secondo.

(16)

Introduzione ai database NoSQL

² Variety: Big data = dati eterogenei, multi-sorgente

DBMS OPERATIVO SOCIAL MEDIA

SITO WEB

REPORT

(17)

Introduzione ai database NoSQL

GARTNER HYPE CYCLE, 2014

(18)

Introduzione ai database NoSQL

² Acquisizione

q  API Social Media, Web Scraping, Apache Flume, Microsoft StreamInsight

² Organizzazione/Storage

q  Hadoop, DMBS NoSQL

² Integrazione

q  Hive, Sqoop

² Analisi

q  Pig, R, Mahout

ESEMPI DI TECNOLOGIE BIG DATA

(19)

Introduzione ai database NoSQL

Motivazioni legate alla diffusione dei database NoSQL:

²  Gestione dei Big-data

²  Limitazioni del modello relazionale

²  Teorema CAP

(20)

Introduzione ai database NoSQL

²  (LIMITAZIONE1) Il modello relazionale

presuppone una rappresentazione tabellare, che accade se i dati non si presentano in tale forma?.

ANAGRAFICA CF Nome Cognome Luogo Data

PAGINA WEB

? ? ? ? ?

(21)

Introduzione ai database NoSQL

²  (LIMITAZIONE2) Alcune operazioni non possono essere implementate in SQL.

Memorizzazione

di un grafo, e calcolo del percorso minimo tra due punti.

(22)

Introduzione ai database NoSQL

²  (LIMITAZIONE3) Scalabilità orizzontale dei DMBS relazionali.

Scalabilità (def informale): capacità di un sistema di migliorare le proprie prestazioni per un certo carico di lavoro, quando

vengono aggiunte nuove risorse al sistema.

Scalabilità verticale àaggiungere più potenza di calcolo (RAM, CPU) ad i nodi che gestiscono il DB.

Scalabilità orizzontale àaggiungere più nodi al cluster.

(23)

Introduzione ai database NoSQL

²  (LIMITAZIONE3) Scalabilità orizzontale dei DMBS relazionali.

#Servers Throughput (operazioni / sec)

Scalabilità RBDMS

q Gestione dei vincoli q Repliche dei dati q Gestione delle

transazioni

q Soddisfacimento delle proprietà ACID

PROBLEMI

(24)

Introduzione ai database NoSQL

Motivazioni legate alla diffusione dei database NoSQL:

²  Gestione dei Big-data

²  Limitazioni del modello relazionale

²  Teorema CAP

(25)

Introduzione ai database NoSQL

Il teorema di Brewer (CAP Theorem) afferma che un sistema distribuito può soddisfare al massimo solo due delle tre proprietà elencate sotto:

²  Consistency à Tutti i nodi della rete vedono gli stessi dati

²  Availability à Il servizio è sempre disponibile

²  Partion Tolerance à Il servizio continua a

funzionare correttamente anche in presenza di perdita di messaggi o di partizionamenti della rete.

(26)

Introduzione ai database NoSQL

Nel caso di un DB distribuito (gestito da un

cluster), è possibile soddisfare al massimo solo due delle tre proprietà elencate sotto:

²  Consistency à Se l’utente A modifica il dato X sul server 1, e B legge X dal server 2, B legge l’ultima versione disponibile di X.

²  Availability à Se un utente effettua una query sul server A o B, la query restituisce un risultato.

²  Partion Tolerance à Il servizio continua a funzionare correttamente anche in presenza di perdita di messaggi o di

partizionamenti della rete.

CAP THEOREM PER DB DISTRIBUTI:

(27)

Introduzione ai database NoSQL

CAP THEOREM PER DB DISTRIBUTI:

CASO 1: Consistency + Availability

APPLICAZIONE

NO Partition Tolerance à Il sistema non funziona correttamente in caso di perdita di messaggi.

(28)

Introduzione ai database NoSQL

CAP THEOREM PER DB DISTRIBUTI:

CASO 2: Availability + Partition Tolerance

APPLICAZIONE

NO Consistency à Repliche del dato non aggiornate!

(29)

Introduzione ai database NoSQL

CAP THEOREM PER DB DISTRIBUTI:

CASO 3: Consistency+ Partition Tolerance

APPLICAZIONE

NO Availability à La query non produce risposta

(30)

Introduzione ai database NoSQL

(31)

Introduzione ai database NoSQL

Basically Available à I nodi del sistema distribuito possono essere soggetti a guasti, ma il servizio è

sempre disponibile.

Soft State à La consistenza dei dati non è garantita in ogni istante.

Eventually Consistent à Il sistema diventa

consistente dopo un certo intervallo di tempo, se le attività di modifica dei dati cessano.

PROPRIETA’ BASE

(32)

Introduzione ai database NoSQL

Il termine NoSQL identifica una moltitudine di DBMS, basati su modelli logici differenti:

²  Database chiave/valore

²  Database document-oriented

²  Database column-oriented

²  Database graph-oriented

(33)

Introduzione ai database NoSQL

² Esempi: BerkeleyDB, Project Voldemort

² Dati di un DB come liste di coppie chiave/valore (array associativi o dizionari)

² Chiave à valore univoco per operazioni di ricerca

² Valore à qualsiasi cosa …

Chiave Valore

1 {Mario Rossi, 02311323}

2 {Mario Bianchi, 23}

3 {Dipartimento Informatica, Via Zamboni, 05143242}

(34)

Introduzione ai database NoSQL

Il termine NoSQL identifica una moltitudine di DBMS, basati su modelli logici differenti:

²  Database chiave/valore

²  Database document-oriented

²  Database column-oriented

²  Database graph-oriented

(35)

Introduzione ai database NoSQL

² Esempi: MongoDB, CouchDB

² Gestione di dati eterogeneei e complessi (semi- strutturati)

² Scalabili orizzontalmente, supporto per

partizionamento (sharding) dei dati in sistemi distribuiti

² Documenti à coppie chiave/valore (JSON)

² Forniscono funzionalità per aggregazione/analisi dei dati (MapReduce)

(36)

Introduzione ai database NoSQL

²  Documento à collezione coppie chiave-valore {name: ‘Marco’,

cognome: ‘Rossi’, eta: 22,

data:new Date(1997,6,2,12,30)

address: {via: Zamboni, numero: 7}

{via: Irnerio, numero: 49}

email: [rossi@gmail.com, rossi@tiscali.it]

}

(37)

Introduzione ai database NoSQL

Il termine NoSQL identifica una moltitudine di DBMS, basati su modelli logici differenti:

²  Database chiave/valore

²  Database document-oriented

²  Database column-oriented

²  Database graph-oriented

(38)

Introduzione ai database NoSQL

² Esempi: HBase, Cassandra

² Dati organizzati su colonne anziché su righe.

² Column family à contenitore di colonne. Ogni

column family è scritta su un file diverso. Ogni riga dispone di una chiave primaria (row key).

(39)

Introduzione ai database NoSQL

ID Nome Cognome Nascita Lavoro Salario Contratto

Chiave della riga

Column Family 1 (dati anagrafica)

Column Family 2 (dati lavoro)

FILE 1 FILE 2

(40)

Introduzione ai database NoSQL

² Schema flessibile

² Maggiore efficienza nello storage

² Maggiore possibilità di compressione dati

² Usato in sistemi dati read-oriented (es. warehousing)

(41)

Introduzione ai database NoSQL

Il termine NoSQL identifica una moltitudine di DBMS, basati su modelli logici differenti:

²  Database chiave/valore

²  Database document-oriented

²  Database column-oriented

²  Database graph-oriented

(42)

Introduzione ai database NoSQL

² Esempi: Neo4J, Titan

² Dati strutturati sotto forma di grafi: nodi à

attributi/righe, archi à relazioni tra attributi/righe

PROPERTY GRAPH

Riferimenti

Documenti correlati

 Intestazione della tabella (i.e. nome tabella + nome attributi)  Schema della relazione..  Righe della tabella Istanze

Nel caso precedente, la query interna restituisce solo un valore … Cosa accade se la query interna restuisce più di un valore.. Gli operatori di confronto <,=,> non

123 Marco Marchi Associato Chimica 20000 124 Michele Micheli Associato Fisica 20000 125 Lucia Di Lucia Ordinario Fisica 30000 126 Dario Rossi Ordinario Informatica 35000 127 Mario

Record di transizione  tengono traccia delle operazioni svolte da ciascuna transizione sul DBMS. Record di sistema  tengono traccia delle operazioni di

Quali tipi di dato e’ possibile memorizzare in un DB MySQL?..  Tipi di dato numerici supportati da

Il termine NoSQL identifica una moltitudine di DBMS, basati su modelli logici differenti:. 

L’obiettivo della progettazione logica è la realizzazione del modello logico (es. relazionale) a partire dalle informazioni del modello E-R?.

Di ogni cliente si vuole memorizzare nome, cognome, data di nascita, indirizzo di residenza (strada, via, CAP).. ➢ Di ogni immobile si vogliono memorizzare le proposte