Corso di Basi di Dati Introduzione ai Database
Corso di Basi di Dati Introduzione ai Database No. SQL Home page del corso: http: //www. cs. unibo. it/~difelice/dbsi/
Introduzione ai database No. SQL 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 No. T Only SQL. “Next generation databases mostly addressing some of the points: being non-relational, distributed, open source and horizzontally scalable” (definizione da http: //nosql-
Introduzione ai database No. SQL PROPRIETA dei SISTEMI NO-SQL ² ² ² 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
Introduzione ai database No. SQL Motivazioni legate alla diffusione dei database No. SQL: ² Gestione dei Big-data ² Limitazioni del modello relazionale ² Teorema CAP
Introduzione ai database No. SQL Big data: moli di dati, eterogenee, destrutturate, difficili da gestire attraverso tecnologie tradizionali. ² Tecnologie tradizionali RDBMS ² Il termine big-data è oggi usato sia per denotare tipologie di dati, sia le tecnologie e i tool di gestione degli stessi.
Introduzione ai database No. SQL ² Volume: Big data = grosse moli di data Esempio: Dati da esperimenti scientifici http: //home. web. cern. ch/about/computing Acceleratore di particelle del CERN ² 600 milioni di collisioni al secondo ² 30 Petabyte di dati annui relativi ai collision event
Introduzione ai database No. SQL Un esempio di sorgente di Big-Data: Reti di sensori 7
Introduzione ai database No. SQL Source: Cisco IBSG, April 2011 From an Internet of Humans … to an Internet of Things … 8
Introduzione ai database No. SQL Un esempio di sorgente di Big-Data: Dispositivi mobili 3. ANALYZE 2. SHARE 1. SENSE Fonte: Lane, Miluzzo et alt, A survey of mobile phone sensing, IEEE Communication Magazine, 2010 9 4. PROVIDE SERVICES
Introduzione ai database No. SQL ² Volume: Big data = grosse moli di data Social Media User Generated Contents Dati Scientifici PB Web Server Log Sensori Transazion i finanziarie TB GB ERP CRM Documenti Word, Excel, PDF MB Complessità bassa Complessità media Complessità alta
Introduzione ai database No. SQL ² 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.
Introduzione ai database No. SQL ² Variety: Big data = dati eterogenei, multi-sorge SOCIAL MEDIA DBMS OPERATIVO SITO WEB DATA WAREHOUSE SOFTWARE DI SUPPORTO DECISIONALE REPORT
Introduzione ai database No. SQL GARTNER HYPE CYCLE, 2014
Introduzione ai database No. SQL ESEMPI DI TECNOLOGIE BIG DATA ² Acquisizione q API Social Media, Web Scraping, Apache Flume, Microsoft Stream. Insight ² Organizzazione/Storage q Hadoop, DMBS No. SQL ² Integrazione q Hive, Sqoop ² Analisi q Pig, R, Mahout
Introduzione ai database No. SQL Motivazioni legate alla diffusione dei database No. SQL: ² Gestione dei Big-data ² Limitazioni del modello relazionale ² Teorema CAP
Introduzione ai database No. SQL ² (LIMITAZIONE 1) Il modello relazionale presuppone una rappresentazione tabellare, che accade se i dati non si presentano in tale forma? . ANAGRAFICA PAGINA WEB CF Nome ? ? Cognome ? Luogo ? Data ?
Introduzione ai database No. SQL ² (LIMITAZIONE 2) Alcune operazioni non possono essere implementate in SQL. Esempio: Memorizzazione di un grafo, e calcolo del percorso minimo tra due punti.
Introduzione ai database No. SQL ² (LIMITAZIONE 3) 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.
Introduzione ai database No. SQL ² (LIMITAZIONE 3) Scalabilità orizzontale dei DMBS relazionali. Throughput (operazioni / sec) e r ea in l à t li i b a l a Sc DMS B R à t i alabil Sc #Servers PROBLEMI q. Gestione dei vincoli q. Repliche dei dati q. Gestione delle transazioni q. Soddisfacimento delle proprietà ACID
Introduzione ai database No. SQL Motivazioni legate alla diffusione dei database No. SQL: ² Gestione dei Big-data ² Limitazioni del modello relazionale ² Teorema CAP
Introduzione ai database No. SQL 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.
Introduzione ai database No. SQL CAP THEOREM PER DB DISTRIBUTI: 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.
Introduzione ai database No. SQL CAP THEOREM PER DB DISTRIBUTI: CASO 1: Consistency + Availability NO Partition Tolerance Il sistema non funziona correttamente in caso di perdita di messaggi. APPLICAZIONE rit e. X W SERVER 1 Re ad X SERVER 2
Introduzione ai database No. SQL CAP THEOREM PER DB DISTRIBUTI: CASO 2: Availability + Partition Tolerance NO Consistency Repliche del dato non aggiornate! APPLICAZIONE rit e. X W SERVER 1 Re ad (o ld X) SERVER 2
Introduzione ai database No. SQL CAP THEOREM PER DB DISTRIBUTI: CASO 3: Consistency+ Partition Tolerance NO Availability La query non produce risposta APPLICAZIONE X ir te W SERVER 1 No re ply ! SERVER 2
Introduzione ai database No. SQL
Introduzione ai database No. SQL PROPRIETA’ BASE 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.
Introduzione ai database No. SQL Il termine No. SQL identifica una moltitudine di DBMS, basati su modelli logici differenti: ² Database chiave/valore ² Database document-oriented ² Database column-oriented ² Database graph-oriented
Introduzione ai database No. SQL ² Esempi: Berkeley. DB, 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}
Introduzione ai database No. SQL Il termine No. SQL identifica una moltitudine di DBMS, basati su modelli logici differenti: ² Database chiave/valore ² Database document-oriented ² Database column-oriented ² Database graph-oriented
Introduzione ai database No. SQL ² Esempi: Mongo. DB, Couch. DB ² Gestione di dati eterogeneei e complessi (semistrutturati) ² Scalabili orizzontalmente, supporto per partizionamento (sharding) dei dati in sistemi distribuiti ² Documenti coppie chiave/valore (JSON) ² Forniscono funzionalità per aggregazione/analisi dei dati (Map. Reduce)
Introduzione ai database No. SQL ² 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] }
Introduzione ai database No. SQL Il termine No. SQL identifica una moltitudine di DBMS, basati su modelli logici differenti: ² Database chiave/valore ² Database document-oriented ² Database column-oriented ² Database graph-oriented
Introduzione ai database No. SQL ² 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).
Introduzione ai database No. SQL ID Nome Cognome Nascita Chiave della riga Column Family 1 Lavoro Salario Column Family 2 (dati lavoro) (dati anagrafica) FILE 1 Contratto FILE 2
Introduzione ai database No. SQL ² Schema flessibile ² Maggiore efficienza nello storage ² Maggiore possibilità di compressione dati ² Usato in sistemi dati read-oriented (es. warehousing)
Introduzione ai database No. SQL Il termine No. SQL identifica una moltitudine di DBMS, basati su modelli logici differenti: ² Database chiave/valore ² Database document-oriented ² Database column-oriented ² Database graph-oriented
Introduzione ai database No. SQL ² Esempi: Neo 4 J, Titan PROPERTY GRAPH ² Dati strutturati sotto forma di grafi: nodi attributi/righe, archi relazioni tra attributi/righe
- Slides: 38