Please enable JavaScript.
Coggle requires JavaScript to display documents.
NOSQL - Coggle Diagram
NOSQL
Perché nasce NoSQL
Social network
Cloud computing
Big data
Internet of Things
Necessità di gestire molti dati in tempo reale
Caratteristiche NoSQL
Schema-less
Non serve definire prima una struttura rigida
Flessibilità
Adatto a dati diversi e variabili
Distribuzione
I dati possono stare su più nodi
Scalabilità orizzontale
Si aggiungono server per aumentare capacità
Elevate prestazioni
Utile per grandi quantità di dati
Teorema CAP
Un sistema distribuito non può garantire sempre tutte e tre le proprietà insieme
Consistency
Tutti i nodi vedono lo stesso dato
Availability
Ogni richiesta riceve una risposta
Partition tolerance
Il sistema continua a funzionare anche se ci sono problemi di comunicazione
Combinazioni
CA
Coerenza e disponibilità
Non tollera partizioni
AP
Disponibilità e tolleranza alle partizioni
Può perdere coerenza immediata
CP
Coerenza e tolleranza alle partizioni
Può perdere disponibilità
Quando usare NoSQL
Grandi quantità di dati
Dati eterogenei
Sistemi distribuiti
Applicazioni web e mobile
Prestazioni elevate
Proprietà ACID
Atomicità
La transazione avviene tutta o non avviene
Consistenza
Il database resta coerente
Isolamento
Le transazioni non si disturbano tra loro
Durabilità
I dati restano salvati anche dopo un errore di sistema
Tipologie NoSQL
Database a documenti
Memorizzano documenti JSON o simili
Esempi: MongoDB, Firebase
Database chiave-valore
Associano una chiave a un valore
Esempi: Redis, DynamoDB
Database a grafo
Usano nodi e relazioni
Esempi: Neo4j, Titan
Database a colonne
Organizzano dati per famiglie di colonne
Esempi: Cassandra, HBase, BigTable
Quando preferire relazionale
Quando ci sono molte relazioni tra dati
Quando serve integrità referenziale forte
Quando servono transazioni ACID
Esempio: ERP
Definizione
NoSQL significa Not Only SQL
Indica una famiglia di database diversi dal modello relazionale
Non elimina SQL ma supera alcuni limiti dei database tradizionali
Modello BASE
Basically Available
Il sistema resta disponibile
Soft State
Lo stato può cambiare nel tempo
Eventually Consistent
La coerenza arriva dopo un certo tempo
Differenza con SQL
Database relazionali
Usano tabelle
Hanno schema fisso
Usano chiavi primarie e chiavi esterne
Garanticono integrità referenziale
Usano proprietà ACID
Database NoSQL
Possono non avere schema fisso
Sono più flessibili
Sono spesso distribuiti
Sono pensati per scalabilità e prestazioni elevate