no sql intro
DESCRIPTION
A bref introduction on NoSql database. Principes, applications and market share.TRANSCRIPT
![Page 1: No Sql Intro](https://reader033.vdocumenti.com/reader033/viewer/2022052600/55874c4bd8b42ac7168b4668/html5/thumbnails/1.jpg)
NOSQL DATABASE
Università degli Studi di Salerno Sistemi Informatici e Tecnologie del Software
!Basi di Dati II
Anno 2013/2014
Prof.ssa G.Tortora Prof. G.Polese
Branca Carlo Grano Giovanni
Merola Matteo Scalabrino Simone
Overview, classificazione e utilizzi pratici
![Page 2: No Sql Intro](https://reader033.vdocumenti.com/reader033/viewer/2022052600/55874c4bd8b42ac7168b4668/html5/thumbnails/2.jpg)
![Page 3: No Sql Intro](https://reader033.vdocumenti.com/reader033/viewer/2022052600/55874c4bd8b42ac7168b4668/html5/thumbnails/3.jpg)
Introduzione Caratteristiche
Classificazione Mercato
![Page 4: No Sql Intro](https://reader033.vdocumenti.com/reader033/viewer/2022052600/55874c4bd8b42ac7168b4668/html5/thumbnails/4.jpg)
Introduzione
![Page 5: No Sql Intro](https://reader033.vdocumenti.com/reader033/viewer/2022052600/55874c4bd8b42ac7168b4668/html5/thumbnails/5.jpg)
WHY RDBMS?
![Page 6: No Sql Intro](https://reader033.vdocumenti.com/reader033/viewer/2022052600/55874c4bd8b42ac7168b4668/html5/thumbnails/6.jpg)
RDBMS - Motivazioni
![Page 7: No Sql Intro](https://reader033.vdocumenti.com/reader033/viewer/2022052600/55874c4bd8b42ac7168b4668/html5/thumbnails/7.jpg)
• Schema predefinito per lo storage di dati strutturati
• Struttura BCNF già familiare
• Strong consistency
• Transazioni
• Maturi e accuratamente testati (la maggior parte)
• Facile adozione/integrazione
• Basati sulle proprietà ACID
• Data Retrieval: Standard Query Language (SQL) - versatile e potente
• Scalabilità verticale: se volessimo rendere un DB SQL scalabile, l’unica alternativa sarebbe quella di potenziare l’hardware sul quale il DBMS è installato
RDBMS - Motivazioni
![Page 8: No Sql Intro](https://reader033.vdocumenti.com/reader033/viewer/2022052600/55874c4bd8b42ac7168b4668/html5/thumbnails/8.jpg)
WHY NOSQL?
![Page 9: No Sql Intro](https://reader033.vdocumenti.com/reader033/viewer/2022052600/55874c4bd8b42ac7168b4668/html5/thumbnails/9.jpg)
Introduzione - BIG USERS
![Page 10: No Sql Intro](https://reader033.vdocumenti.com/reader033/viewer/2022052600/55874c4bd8b42ac7168b4668/html5/thumbnails/10.jpg)
Un gran numero di utenti combinato con la una natura fortemente dinamica dei pattern di gestione dei dati sta guidando il bisogno di nuove database scalabili. Con le tecnologie relazionali, molti sviluppatori trovano difficile raggiungere la scalabilità dinamica richiesta dalle applicazioni per garantire il livello di performance richiesto dagli utenti…
… molti si stanno rivolgendo ai NoSQL!
Introduzione - BIG USERS
![Page 11: No Sql Intro](https://reader033.vdocumenti.com/reader033/viewer/2022052600/55874c4bd8b42ac7168b4668/html5/thumbnails/11.jpg)
Introduzione - BIG DATA
![Page 12: No Sql Intro](https://reader033.vdocumenti.com/reader033/viewer/2022052600/55874c4bd8b42ac7168b4668/html5/thumbnails/12.jpg)
Introduzione - BIG DATA
L’ammontare dei dati è in rapida crescita e la natura di questi dati dati sta cambiando in conseguenza all’utilizzo che gli sviluppatori fanno di nuovi tipi di dati (per la maggior parte non strutturati o semi strutturati) nelle loro applicazioni
![Page 13: No Sql Intro](https://reader033.vdocumenti.com/reader033/viewer/2022052600/55874c4bd8b42ac7168b4668/html5/thumbnails/13.jpg)
Introduzione - The Internet of Things
![Page 14: No Sql Intro](https://reader033.vdocumenti.com/reader033/viewer/2022052600/55874c4bd8b42ac7168b4668/html5/thumbnails/14.jpg)
Introduzione - The Internet of Things
THE INTERNET OF THINGS
!
• Ci sono 14 milioni di “cose” connesse ad Internet. Si tratta di fabbriche, aziende agricole, ospedali e warehouses. Ci si connette da casa o dall’auto. Ci si connette dallo smarthphone e dal tablet. Si ricevono continuamente dati su ambiente, posizioni geografiche, spostamenti, temperature, meteo da oltre 50 bilioni di sensori
• La chiave è l’accesso globale real-time!
• I dati relativi alle telemetrie sono di piccole dimensioni, semi-strutturati e continui. Si tratta di una grossa sfida per i database relazionali i quali richiedono dati strutturati e con uno schema rigido
• I NoSQL raccolgono questa sfida! Sempre più aziende innovative si affidano a questi database richiedendo una tecnologia per sia in grado di scalare con le milioni di “cose” connesse ad Internet
![Page 15: No Sql Intro](https://reader033.vdocumenti.com/reader033/viewer/2022052600/55874c4bd8b42ac7168b4668/html5/thumbnails/15.jpg)
Caratteristiche
![Page 16: No Sql Intro](https://reader033.vdocumenti.com/reader033/viewer/2022052600/55874c4bd8b42ac7168b4668/html5/thumbnails/16.jpg)
Caratteristiche
![Page 17: No Sql Intro](https://reader033.vdocumenti.com/reader033/viewer/2022052600/55874c4bd8b42ac7168b4668/html5/thumbnails/17.jpg)
Caratteristiche
NOSQL KEYWORD
• Non relazionali: l’approccio rigido dei db relazionali non permette di memorizzare dati fortemente dinamici. I db NoSQL sono “schemaless” e consentono di memorizzare “on the fly” attributi, anche senza averli definiti a priori
• Distribuiti: la flessibilità nella clusterizzazione e nella replicazione dei dati permette di distribuire su più nodi lo storage, in modo da realizzare potenti sistemi “fault tollerance”
• Scalabili orizzontalmente: in contrapposizione alla scalabilità verticale, abbiamo architetture enormemente scalabili, che consentono di memorizzare e gestire una grande quantità di informazioni
• Open-source: filosofia alla base del movimento NoSQL
![Page 18: No Sql Intro](https://reader033.vdocumenti.com/reader033/viewer/2022052600/55874c4bd8b42ac7168b4668/html5/thumbnails/18.jpg)
Caratteristiche
![Page 19: No Sql Intro](https://reader033.vdocumenti.com/reader033/viewer/2022052600/55874c4bd8b42ac7168b4668/html5/thumbnails/19.jpg)
• Grossi volumi di dati
• Goodbye DBAs: un sistema RDBMS di alto l ivel lo può essere mantenuto s o l a m e n t e c o n l ’ a s s i s t e n z a d i amministratori altamente esperti (e costosi ) . I Database NoSQL sono generalmente ideati per richiede una minore manutenzione.
• Velocità di risposta alle query!
• BASE - le proprietà ACID non sono richieste
• CAP Theorem
Caratteristiche
![Page 20: No Sql Intro](https://reader033.vdocumenti.com/reader033/viewer/2022052600/55874c4bd8b42ac7168b4668/html5/thumbnails/20.jpg)
Transazioni BASE
I NoSQL si basano su un modello più morbido e flessibile. Il modello BASE si sposa con la flessibilità offerta dai NoSQL e da approcci similari per il management dei dati non strutturati
• Basically Available: l’approccio dei database NoSQL si basa sul garantire la disponibilità dei dati anche in presenza di fallimenti multipli. Questo obiettivo è raggiunto attraverso un approccio fortemente distribuito
• Soft state: i database BASE abbandonano il requisito della consistenza dei modelli ACID quasi completamente. La consistenza dei dati è un problema dello sviluppatore e non deve essere gestita dal database.
• Eventually Consistent: l’unico requisito riguardante la consistenza è garantire che in un certo punto nel futuro i dati possano convergere ad uno stato consistente
Caratteristiche
![Page 21: No Sql Intro](https://reader033.vdocumenti.com/reader033/viewer/2022052600/55874c4bd8b42ac7168b4668/html5/thumbnails/21.jpg)
Caratteristiche
![Page 22: No Sql Intro](https://reader033.vdocumenti.com/reader033/viewer/2022052600/55874c4bd8b42ac7168b4668/html5/thumbnails/22.jpg)
Caratteristiche
Brewer’s CAP Theorem
Un sistema distribuito è in grado di supportare solamente due tra le seguenti caratteristiche:
• Consistency: tutti i nodi vedono lo stesso dato allo stesso tempo
• Availability: ogni operazione deve sempre ricevere una risposta
• Partition Tolerance: capacità di un sistema di essere tollerante ad una aggiunta, una rimozione di un nodo nel sistema distribuito o alla non disponibilità di un componente singolo
![Page 23: No Sql Intro](https://reader033.vdocumenti.com/reader033/viewer/2022052600/55874c4bd8b42ac7168b4668/html5/thumbnails/23.jpg)
Caratteristiche - Challenges
![Page 24: No Sql Intro](https://reader033.vdocumenti.com/reader033/viewer/2022052600/55874c4bd8b42ac7168b4668/html5/thumbnails/24.jpg)
Caratteristiche - Challenges
Troppo entusiasmo…?
• Maturità: i sistemi RDBMS sono in esercizio da tanto tempo. Per i sostenitori del movimento NoSQL questo è un segno della loro obsolescenza; per molti CIO invece, la maturità di un RDBMS è rassicurate
• Supporto: tutte le aziende che sviluppato e vendono RDBMS forniscono un alto livello di supporto alle aziende. I sistemi NoSQL invece sono spesso progetti open source
• Business Intelligence: la business intelligence è un elemento chiave per le aziende IT; spesso i tools per la BI non supportano connettività con i database NoSQL
• Amministrazione: un obiettivo di design per i database NoSQL è quello di non necessitare di gran supporto amministrativo ma la realtà è che al giorno d’oggi sono necessarie grosse competenze per la loro installazione e manutenzione
• Expertise: è più semplice trovare un esperto amministrazione RDBMS che non un espero in NoSQL
![Page 25: No Sql Intro](https://reader033.vdocumenti.com/reader033/viewer/2022052600/55874c4bd8b42ac7168b4668/html5/thumbnails/25.jpg)
Classificazione
![Page 26: No Sql Intro](https://reader033.vdocumenti.com/reader033/viewer/2022052600/55874c4bd8b42ac7168b4668/html5/thumbnails/26.jpg)
Classificazione
![Page 27: No Sql Intro](https://reader033.vdocumenti.com/reader033/viewer/2022052600/55874c4bd8b42ac7168b4668/html5/thumbnails/27.jpg)
Classificazione
KEY-VALUE DATA STORE !
• Utilizza un associative array (chiave-valore) come modello fondamentale per lo storage
• Storage, update e ricerca basato sulle chiavi
• Tipi di dati primitivi familiari ai programmatori
• Semplice
• Veloce recupero dei dati
• Grandi moli di dati
![Page 28: No Sql Intro](https://reader033.vdocumenti.com/reader033/viewer/2022052600/55874c4bd8b42ac7168b4668/html5/thumbnails/28.jpg)
Classificazione
![Page 29: No Sql Intro](https://reader033.vdocumenti.com/reader033/viewer/2022052600/55874c4bd8b42ac7168b4668/html5/thumbnails/29.jpg)
Classificazione
DOCUMENT DATA STORE !
• Utilizzando dati non strutturati
• Supporto a diversi tipi di documento
• Un documento è identificato da una chiave primaria
• Schema-less
• Scalabilità orizzontale
!
![Page 30: No Sql Intro](https://reader033.vdocumenti.com/reader033/viewer/2022052600/55874c4bd8b42ac7168b4668/html5/thumbnails/30.jpg)
Classificazione
![Page 31: No Sql Intro](https://reader033.vdocumenti.com/reader033/viewer/2022052600/55874c4bd8b42ac7168b4668/html5/thumbnails/31.jpg)
Classificazione
COLUMN-ORIENTED DATA STORE
!
• I dati sono nelle colonne anziché nelle righe
• Un gruppo di colonne è chiamato famiglia ed vi è un’analogia con le tabelle di un database relazionale
• Le colonne possono essere facilmente distribuite
• Scalabile
• Performante
• Fault-tollerance
!
![Page 32: No Sql Intro](https://reader033.vdocumenti.com/reader033/viewer/2022052600/55874c4bd8b42ac7168b4668/html5/thumbnails/32.jpg)
Classificazione
![Page 33: No Sql Intro](https://reader033.vdocumenti.com/reader033/viewer/2022052600/55874c4bd8b42ac7168b4668/html5/thumbnails/33.jpg)
Classificazione
GRAPH-BASED DATA STORE !
• Utilizza nodi (entità), proprietà (attributi) e archi (relazioni)
• Modello logico semplice e intuitivo
• Ogn i e lemento cont iene un punta to re all’elemento adiacente
• Attraversamento del grafo per trovare i dati
• Efficiente per la rappresentazione di reti sociali o dati sparsi
• Relazioni tra i dati centrali
![Page 34: No Sql Intro](https://reader033.vdocumenti.com/reader033/viewer/2022052600/55874c4bd8b42ac7168b4668/html5/thumbnails/34.jpg)
Classificazione
![Page 35: No Sql Intro](https://reader033.vdocumenti.com/reader033/viewer/2022052600/55874c4bd8b42ac7168b4668/html5/thumbnails/35.jpg)
Operational complexity: all’aumentare della complessità nella struttura dati diminuisce la capacità di memorizzazione dei dati stessi (parametro size)
Classificazione
![Page 36: No Sql Intro](https://reader033.vdocumenti.com/reader033/viewer/2022052600/55874c4bd8b42ac7168b4668/html5/thumbnails/36.jpg)
Ranking
![Page 37: No Sql Intro](https://reader033.vdocumenti.com/reader033/viewer/2022052600/55874c4bd8b42ac7168b4668/html5/thumbnails/37.jpg)
Ranking
![Page 38: No Sql Intro](https://reader033.vdocumenti.com/reader033/viewer/2022052600/55874c4bd8b42ac7168b4668/html5/thumbnails/38.jpg)
Ranking
DB-Engines elenca 221 tipi differenti di database management systems, ognuno classificato secondo un modello differente.
Questo chart mostra il numero di sistemi per ogni categoria. Alcuni sistemi possono appartenere a più di una categoria.
![Page 39: No Sql Intro](https://reader033.vdocumenti.com/reader033/viewer/2022052600/55874c4bd8b42ac7168b4668/html5/thumbnails/39.jpg)
Ranking
![Page 40: No Sql Intro](https://reader033.vdocumenti.com/reader033/viewer/2022052600/55874c4bd8b42ac7168b4668/html5/thumbnails/40.jpg)
Ranking
Questo chart-diagram mostra la popolarità di ogni categoria. È calcolato utilizzando la popolarità (lo score nel ranking) di ogni sistema per categoria.
La somma dei ranking rappresenta il 100%
![Page 41: No Sql Intro](https://reader033.vdocumenti.com/reader033/viewer/2022052600/55874c4bd8b42ac7168b4668/html5/thumbnails/41.jpg)
Ranking
![Page 42: No Sql Intro](https://reader033.vdocumenti.com/reader033/viewer/2022052600/55874c4bd8b42ac7168b4668/html5/thumbnails/42.jpg)
Ranking
Questo diagramma mostra il trend storico della popolarità per ogni categoria. Ogni mese, i primi tre sistemi per categoria sono scelti e la media del loro ranking score è calcolata. Per permettere delle comparazioni, il valore iniziale è normalizzato a 100.
![Page 43: No Sql Intro](https://reader033.vdocumenti.com/reader033/viewer/2022052600/55874c4bd8b42ac7168b4668/html5/thumbnails/43.jpg)
![Page 44: No Sql Intro](https://reader033.vdocumenti.com/reader033/viewer/2022052600/55874c4bd8b42ac7168b4668/html5/thumbnails/44.jpg)
Scarica questa presentazionehttp://goo.gl/NHIC8k
Giovanni [email protected]
Università degli Studi di Salerno