Cap.12 Database NoSQL Flashcards

1
Q

Cos’è un database NoSQL?

A

I DB NoSQL sono appositamente realizzati per far fronte ad un gran numero di utenza e alla rapida crescita dell’ammontare di dati. La chiave a monte
dei NoSQL è l’accesso globale in real-time. NoSQL non è uno specifico linguaggio, ma è il termine che raggruppa un insieme di tecnologie per la
persistenza dei dati che funzionano in modo sostanzialmente diverso dai DB relazionali, quindi non rispettano una o più caratteristiche dei RDBMS.
Infatti, alcuni DB NoSQL garantiscono solo alcune proprietà ACID, esse vengono rilassate per fornire performance migliori. Le principali caratteristiche
dei NoSQL è che sono schemaless e consentono di memorizzare attributi on the fly, anche senza averli definiti a priori, questo per consentire la
memorizzazione di dati fortemente dinamici, la scalabilità che consente di memorizzare e gestire una grande quantità di informazioni e velocità di
risposta alle query.

I NoSQL si basano sul modello BASE:
▪ Basically Available: garantire la disponibilità dei dati anche in presenza di fallimenti multipli. L’obiettivo è raggiunto attraverso un approccio
fortemente distribuito;
▪ Soft State: abbandonano il requisito della consistenza dei modelli ACID quasi completamente. La consistenza è un problema dello sviluppatore e
non deve essere gestita dal database.
▪ Eventually Consistent: l’unico requisito riguardante la consistenza è garantire che, ad un certo momento, nel futuro, i dati possano convergere ad
uno stato consistente

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Caratteristiche dei NoSQL:

A

▪Non relazionali: i database NoSQL sono schemaless e consentono di memorizzare attributi on the fly, anche senza averli definiti a priori, questo
per consentire la memorizzazione di dati fortemente dinamici;
▪ Distribuiti: la flessibilità nella clusterizzazione e nella replica dei dati permette di distribuire su più nodi lo storage, in modo da realizzare potenti
sistemi fault tolerant;
▪ Scalabili orizzontalmente: architetture enormemente scalabili che consentono di memorizzare e gestire una grande quantità di informazioni;
▪ Open-source: filosofia alla base del movimento NoSQL;
▪ Grossi volumi di dati;
▪ I database NoSQL sono generalmente ideati per richiedere una minore manutenzione rispetto a un sistema RDBMS che, invece, può essere
mantenuto solamente con l’assistenza di amministratori esperti e costosi;
▪ Velocità di risposta alle query;
▪ Le proprietà ACID non sono richieste;
▪ CAP theorem

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Brewer’s Cap Theorem

A

Il Brewer’s Cap Theorem dice che un sistema distribuito è in grado di supportare solamente due tra le seguenti caratteristiche:
▪ Consistency: tutti i nodi vedono lo stesso dato nello stesso tempo;
▪ Availability: ogni operazione deve sempre ricevere una risposta;
▪ Partition tolerance: capacità di un sistema di essere tollerante ad una aggiunta o rimozione di un nodo nel sistema distribuito o alla disponibilità di un componente singolo.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Tipi di DBMS NoSQL:

A

La rappresentazione dei dati avviene attraverso strutture simili ad oggetti, dette documenti, ognuno dei quali possiede delle proprietà che
rappresentano le informazioni. I documenti non devono seguire una struttura rigida fissa. Il documento può essere visto come l’equivalente di un
record delle tabelle e possono essere messi in relazione tra loro con dei riferimenti.
I DBMS NoSQL possono essere classificati in quattro categorie:
1. Document data store. Esempio MongoDB:
▪ Utilizzano dati non strutturati;
▪ Schema – less;
▪ Supporto a diversi tipi di documento;
▪ Ogni documento è identificato da una chiave primaria;
▪ Scalabilità orizzontale.
2. Key – value data store. Esempio Redis:
▪ Utilizza un associative array, chiave – valore, come modello 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.
Vengono costruiti come dizionari o mappe, in cui viene inserita una coppia chiave (identificatore) - valore (informazione). Il loro utilizzo principale è
offrire la possibilità di effettuare ricerche rapide di singoli blocchi di informazione. Sono database che puntano tutto sulla velocità.
3. Graph – based data store. Esempio Neo4j:
▪ Utilizza nodi (entità), proprietà (attributi) e archi (relazioni);
▪ Modello logico semplice e intuitivo;
▪ Ogni elemento contiene un puntatore 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.
Le informazioni possono essere custodite sia nei nodi che negli archi. La forza di questa tipologia è tutto l’insieme del valore informativo che si
può estrapolare ricostruendo i percorsi attraverso il grafo.
4. Column – oriented data store. Esempio Cassandra:
▪ I dati sono nelle colonne anziché nelle righe;
▪ Un gruppo di colonne è chiamato famiglia e vi è un’analogia con le tabelle di un database relazionale;
▪ Le colonne possono essere facilmente distribuite;
▪ Scalabile;
▪ Performante;
▪ Fault – tolerant.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly