• 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

SENSING SENSING

DATA ANALYSI

S DATA ANALYSI

S

MODEL BUILDING

MODEL BUILDING DATA

FILTERING DATA FILTERING

(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

1. SENSE 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

ERP ERP

Sensori Transazio

ni finanziari

e Sensori Transazio

ni finanziari

e

CRM CRM

Web Serve

r Log Web Serve

r Log Dati Scientifi

ci Dati Scientifi

ci

Document i

Word, Excel, PDF Document

i Word, Excel, PDF

Social Media

User Generated

Contents Social Media

User Generated

Contents

(15)

Introduzione ai database NoSQL

 Velocity: Big data = stream di dati

Esempio: Sistemi health-carehttp://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

DATA

WAREHOUSE DATA

WAREHOUSE SOCIAL MEDIA

SITO WEB

SOFTWARE DI SUPPORTO DECISIONALE

REPORT

(17)

Introduzione ai database NoSQL

GARTNER HYPE CYCLE, 2014

(18)

Introduzione ai database NoSQL

 Acquisizione

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

 Organizzazione/Storage

 Hadoop, DMBS NoSQL

 Integrazione

 Hive, Sqoop

 Analisi

 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 Nom

e Cognom

e 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à lineare

Scalabilità RBDMS

Gestione dei vincoli

Repliche dei dati

Gestione delle transazioni

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

SERVER1

SERVER1 SERVER2SERVER2

Write X Read X

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

SERVER1

SERVER1 SERVER2SERVER2 Write X Read

(old X)

NO Consistency

 Repliche del dato non aggiornate!

(29)

Introduzione ai database NoSQL

CAP THEOREM PER DB DISTRIBUTI:

CASO 3: Consistency+ Partition Tolerance

APPLICAZIONE

SERVER1

SERVER1 SERVER2SERVER2 Write X

NO Availability

 La query non

produce risposta No rep

ly!

(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 Contrat to

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