No Sql Intro

44
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

description

A bref introduction on NoSql database. Principes, applications and market share.

Transcript of No Sql Intro

Page 1: No Sql Intro

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
Page 3: No Sql Intro

Introduzione Caratteristiche

Classificazione Mercato

Page 4: No Sql Intro

Introduzione

Page 5: No Sql Intro

WHY RDBMS?

Page 6: No Sql Intro

RDBMS - Motivazioni

Page 7: No Sql Intro

• 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

WHY NOSQL?

Page 9: No Sql Intro

Introduzione - BIG USERS

Page 10: No Sql Intro

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

Introduzione - BIG DATA

Page 12: No Sql Intro

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

Introduzione - The Internet of Things

Page 14: No Sql Intro

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

Caratteristiche

Page 16: No Sql Intro

Caratteristiche

Page 17: No Sql Intro

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

Caratteristiche

Page 19: No Sql Intro

• 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

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

Caratteristiche

Page 22: No Sql Intro

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

Caratteristiche - Challenges

Page 24: No Sql Intro

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

Classificazione

Page 26: No Sql Intro

Classificazione

Page 27: No Sql Intro

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

Classificazione

Page 29: No Sql Intro

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

Classificazione

Page 31: No Sql Intro

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

Classificazione

Page 33: No Sql Intro

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

Classificazione

Page 35: No Sql Intro

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

Ranking

Page 37: No Sql Intro

Ranking

Page 38: No Sql Intro

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

Ranking

Page 40: No Sql Intro

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

Ranking

Page 42: No Sql Intro

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
Page 44: No Sql Intro

Scarica questa presentazionehttp://goo.gl/NHIC8k

Giovanni [email protected]

Università degli Studi di Salerno