Please enable JavaScript.
Coggle requires JavaScript to display documents.
Database NO-SQL Lez. 5 - Coggle Diagram
Database NO-SQL
Lez. 5
Problemi database relazionali
Sempre più dati
non strutturati
Mancaza di flessibilità.
strutture rigide
Sempre più quantità non prevedibili (es. social)
Scalabilità
Aumento
costi per
Gestione aumento utenti
Ridondanza
infrastruttura
Disponibilità
Tipologie
Key-Values
Non tipizzati
Gestiscono coppie
chiave-valore
Documentali
Associano a chiave un document Json o Xml
Anche ricorsivi
Colonnari
Ogni record può essere composto da colonne differenti
Su base colonna
A grafo
Dati strutturati in
nodi e archi
Nodi -> dati
Archi -> relazioni
Es. per analisi predittiva
Obiettivi
Persistenza
Memorizzare in modo persistente i dati
Dati non persi a
seguito di guasti
Disponibilità
A seguito di
guasto nodo
Risposta in tempi rapidi
Consistenza
Dati coerenti a
seguito di scrittura
'+ consistenza
'- performances
Eventual
consistency
Dati in
stato soft
Consistenza applicata
in un tempo
t
Quorum
Dato valido se
letto/scritto su
n
nodi
Lettura
Valido se restituito
da
n
server
Scrittura
Problema solo se
fallisce prima replica
Bilanciamento tra tempo di risposta e mantenimento dati nel tempo
'+
n
alto
'+' tempo di propagazione
'+' certezza e durabilità del dato
Teorema di CAP
Consistency, Availability (tempo
risposta), Partition Protection (Rete)
No-Sql
vs relazionali
Disponibilità basica
Eventual consistency
Dati non sempre in stato univoco
Database
Key-Value
Array
associativi
Array che possono avere indici non numerici e valori non dello stesso tipo
Chiavi univoche
Hash
MKC + [mkc]
Una MKC
(
Major Key Component)
Distribuite uniformemente su
tutte le partizioni orizzontali
Una MKC su
un solo shard
Eventuali una o più "mck"
(
Minor Key Component
)
Chiave -> Hash
Valore -> array di bytes
Valori non tipizzati,
opzionale schema Avro
Operazioni
Leggere valore da chive
Scrivere valore da chiave
Eliminare record da chiave
Architettura
Insieme di
storage
node
distribuiti
Contiene
replication node
RN ha almeno
una partizione
Singolo db che
contiene coppie
Distribuiscono dati nell'infrastruttura
Replication factor: numero di partizioni su cui un dato viene inserito