Please enable JavaScript.
Coggle requires JavaScript to display documents.
NoSQL (1) (Differenza tra SQL e NoSQL (Scalabilità, Modellazione, che non…
NoSQL (1)
Differenza tra SQL e NoSQL
Scalabilità
Modellazione, che non deve essere effettuata in fase di progettazione
Dati non strutturati/semi-strutturati
No transazioni ma analisi dei dati
Gestione Big Data
Linked e Open data
((mappa concettuale))
3V = Volume, Varietà e Velocità
Il reperimento delle informazioni non avviene attraverso meccanismi di hashtable ma attraverso meccanismi basati su indicizzazione, map-reduce e query distribuite
In NoSQL non abbiamo risultati precisi ma stime
NoSQL è progettato per architetture basate su cloud
Nascono in risposta alle problematiche di SQL
Big Data: grossa quantità e diversità di dati che devono essere collezionati, analizzati, processati, ricercati, memorizzati, trasferiti, visualizzati
((mappa dedicata ai BigData))
Privacy, ovvero come gestire i Big Data
Metodi per estrarre più conoscenza possibile dai Big Data
Perché?
I server tradizionali non riescono a gestire il carico delle richieste
Abbiamo delle tabelle che contengono dati semi-strutturati
Non abbiamo il concetto di Join
Come correlare i dati?
Diverse tecniche
Annidamento
Incapsulamento
Altre tecniche che astraggono il concetto di Join
Nei DB NoSQL si preferisce variare il data model invece di utilizzare astrazioni software che consentono di effettuare il Join
Vantaggio: reperimento più rapido dei dati; Svantaggio: cambiamento repentino del data model
Diverse definizioni
Un DBMS NoSQL può essere classificato secondo diverse categorie
Una definizione definita dall'organizzazione nosql-database.org è: un DB NoSQL è un DB che consente di soddisfare i seguenti requisiti
Open source
Orizzontalmente scalabile
Non relazionale e distribuito
Punto forte: scalabilità
Data model non definito all'origine
Semplice replicazione
API semplici
Consistente
Soddisfazione delle proprietà BASE
Gestione grossa mole di dati
Principali categorie
Document store: memorizzano i dati come documenti, esempio MongoDB
Coloumn Based: esempio Cassandra, HBase
Graph: Neo4J
Key Value: memorizzano dati in coppia chiave-valore, esempio BigTable (di Google)
Caratteristiche
I dati devono essere processati in modo asincrono
Il datamodel deve contenere il meccanismo di versioning così le modifiche e gli aggiornamenti verranno effettuate sui dati aggiornati
Possiamo ottenere i dati attraverso i linguaggi di programmazione e un linguaggio non strutturato di query
Concetto di path
Non abbiamo ottimizzatori di query
Risposte veloci a discapito della correttezza assoluta
Lavorano su hardware e software eterogenei (DB open source)
API generiche (condivise da quasi tutti i DBMS): get (key), put (key, value), delete (key), execute (key, operation, parametri), operazioni sui valori
Proprietà BASE
I dati devono essere disponibili
Lo stato dei dati non deve essere consolidato
Consistenza sommaria alla fine delle operazioni
Caratteristiche
Disponibilità dei dati il prima possibile
Risposte approssimative dei dati
Approccio aggressivo
Semplicità e velocità
Cosa non forniscono i DB NoSQL
Operazioni di Join
Proprietà ACID
SQL
Operazioni di aggregazione
Quale DB scegliere?
CAP Theorem: Consistenza, Availability, Partition Tolerance
Forma di triangolo. In base al tipo di soluzione da adottare ho diversi DB da scegliere
Per la consistenza e tolleranza al partizionamento: BigTable, HBase, MongoDB
Per la consistenza e disponibilità (RDBMS): MySQL, PostGree
Più disponibilità e tolleranza al partizionamento: Cassandra, SimpleDB
Categoria Key-Value
Key-Value: chiave valore. Le operazioni possibili sono
Insert (key, value)
Fetch (key)
Update (key)
Delete (key)
I record vengono identificati da una chiave
Struttura replicabile
Single record transaction: transazioni applicate ad un record per volta
Consistenza dei dati in seguito ad una determinata transazione
Valori multipli all'interno di una coppia
Dati accessibili da diversi domini utente
Esempio di DB: SimpleDB, sviluppato da Amazon S3 (Single Storage Service)
Utilizzati da: sistemi che memorizzano le sessioni (WebAPP), gestione profili utenti e loro preferenze, ecommerce
Da non utilizzare in
Relazione tra i dati
Transazioni di operazioni multiple
query complesse sui dati
Operazioni su insieme, operazioni effettuare singolarmente su una chiave limitata