Che cos’è NoSQL?
Il database NoSQL è un sistema di gestione dei dati non relazionale, che non richiede uno schema fisso. Evita i join ed è facile da scalare. Lo scopo principale dell’utilizzo di un database NoSQL è per archivi di dati distribuiti con enormi esigenze di archiviazione dei dati. NoSQL viene utilizzato per Big data e applicazioni web in tempo reale. Ad esempio, aziende come Twitter, Facebook e Google raccolgono terabyte di dati degli utenti ogni singolo giorno.,
NoSQL database sta per “Non solo SQL” o “Non SQL.”Anche se un termine migliore sarebbe” NoREL”, NoSQL ha preso piede. Carl Strozz ha introdotto il concetto NoSQL nel 1998.
RDBMS tradizionale utilizza la sintassi SQL per memorizzare e recuperare i dati per ulteriori approfondimenti. Invece, un sistema di database NoSQL comprende una vasta gamma di tecnologie di database in grado di memorizzare dati strutturati, semi-strutturati, non strutturati e polimorfici., Capiamo su NoSQL con un diagramma in questo tutorial database NoSQL:
In questo tutorial NoSQL per principianti, imparerete nozioni di base NoSQL come:
- Perché NoSQL?
- Breve storia dei database NoSQL
- Caratteristiche di NoSQL
- Tipi di database NoSQL
- Meccanismo di query strumenti per NoSQL
- Qual è il teorema CAP?
- Coerenza finale
- Vantaggi di NoSQL
Perché NoSQL?,
Il concetto di database NoSQL è diventato popolare tra i giganti di Internet come Google, Facebook, Amazon, ecc. che si occupano di enormi volumi di dati. Il tempo di risposta del sistema diventa lento quando si utilizza RDBMS per enormi volumi di dati.
Per risolvere questo problema, potremmo “scalare” i nostri sistemi aggiornando il nostro hardware esistente. Questo processo è costoso.
L’alternativa per questo problema è distribuire il carico del database su più host ogni volta che il carico aumenta. Questo metodo è noto come ” scaling out.,”
Il database NoSQL non è relazionale, quindi è scalabile meglio dei database relazionali poiché sono progettati pensando alle applicazioni web.,ST con JSON
Distribuita
- Più database NoSQL può essere eseguito in maniera distribuita
- Offre auto-ridimensionamento e la funzionalità di failover
- Spesso ACIDO concetto può essere sacrificato per la scalabilità e la velocità effettiva
- Soprattutto non replica sincrona tra nodi distribuiti Asincrono Multi-Master Replica, peer-to-peer, HDFS Replica
- Solo fornendo l’eventuale coerenza
- Condiviso Nulla Architettura., Ciò consente una minore coordinazione e una maggiore distribuzione.
NoSQL non è condiviso nulla.
Tipi di database NoSQL
I database NoSQL sono principalmente classificati in quattro tipi: coppia chiave-valore, orientata alle colonne, basata su grafici e orientata ai documenti. Ogni categoria ha i suoi attributi e limiti unici. Nessuno dei database sopra specificati è meglio risolvere tutti i problemi. Gli utenti devono selezionare il database in base alle loro esigenze di prodotto.,
Tipi di Database NoSQL:
- Coppia Chiave-valore a Base
- Column-oriented Grafico
- Grafici di base
- Document-oriented
Coppia Chiave-Valore a Base
I dati memorizzati in coppie chiave/valore. È progettato in modo tale da gestire molti dati e carichi pesanti.
I database di archiviazione della coppia chiave-valore memorizzano i dati come una tabella hash in cui ogni chiave è univoca e il valore può essere un JSON, un BLOB(oggetti binari di grandi dimensioni), una stringa, ecc.,
Ad esempio, una coppia chiave-valore può contenere una chiave come “Sito Web” associata a un valore come “Guru99”.
È uno degli esempi di database NoSQL più basilari. Questo tipo di database NoSQL viene utilizzato come raccolta, dizionari, array associativi, ecc. Gli archivi di valori chiave aiutano lo sviluppatore a memorizzare dati senza schema. Funzionano meglio per i contenuti del carrello.
Redis, Dynamo, Riak sono alcuni esempi NoSQL di database chiave-valore store. Sono tutti basati sulla carta Dynamo di Amazon.,
Basato su colonne
I database orientati alle colonne funzionano su colonne e sono basati su BigTable paper di Google. Ogni colonna viene trattata separatamente. I valori dei database a colonna singola vengono memorizzati in modo contiguo.
Database NoSQL basato su colonne
Offrono prestazioni elevate su query di aggregazione come SUM, COUNT, AVG, MIN ecc. poiché i dati sono prontamente disponibili in una colonna.,
I database NoSQL basati su colonne sono ampiamente utilizzati per gestire data warehouse, business intelligence, CRM, cataloghi di schede di libreria,
HBase, Cassandra, HBase, Hypertable sono esempi di query NoSQL di database basati su colonne.
Orientato ai documenti:
Il DB NoSQL orientato ai documenti memorizza e recupera i dati come coppia di valori chiave ma la parte valore viene memorizzata come documento. Il documento è memorizzato nei formati JSON o XML. Il valore è compreso dal DB e può essere interrogato.
Relazionale Vs., Documento
In questo diagramma a sinistra puoi vedere che abbiamo righe e colonne, e a destra, abbiamo un database di documenti che ha una struttura simile a JSON. Ora per il database relazionale, devi sapere quali colonne hai e così via. Tuttavia, per un database di documenti, si dispone di archivio dati come oggetto JSON. Non è necessario definire quali lo rendono flessibile.
Il tipo di documento è utilizzato principalmente per sistemi CMS, piattaforme di blogging, analisi in tempo reale& applicazioni di e-commerce., Non dovrebbe essere utilizzato per transazioni complesse che richiedono più operazioni o query contro diverse strutture aggregate.
Amazon SimpleDB, CouchDB, MongoDB, Riak, Lotus Notes, MongoDB, sono sistemi DBMS di origine documentale popolari.
Basato su grafico
Un database di tipo grafico memorizza le entità e le relazioni tra tali entità. L’entità viene memorizzata come nodo con la relazione come bordi. Un bordo fornisce una relazione tra i nodi. Ogni nodo e bordo ha un identificatore univoco.,
Rispetto ad un database relazionale in cui le tabelle sono liberamente collegate, un database grafico è di natura multi-relazionale. La relazione di attraversamento è veloce in quanto sono già catturati nel DB e non è necessario calcolarli.
Database di base grafico utilizzato principalmente per social network, logistica, dati spaziali.
Neo4J, Infinite Graph, OrientDB, FlockDB sono alcuni popolari database basati su grafici.,
Strumenti di meccanismo di query per NoSQL
Il meccanismo di recupero dei dati più comune è il recupero basato su REST di un valore in base alla sua chiave/ID con GET resource
Document store Database offre query più difficili in quanto comprendono il valore in una coppia chiave-valore. Ad esempio, CouchDB consente di definire le viste con MapReduce
Qual è il teorema CAP?
CAP teorema è anche chiamato teorema di brewer., Afferma che è impossibile per un archivio dati distribuito offrire più di due garanzie su tre
- Coerenza
- Disponibilità
- Tolleranza partizione
Coerenza:
I dati devono rimanere coerenti anche dopo l’esecuzione di un’operazione. Ciò significa che una volta scritti i dati, qualsiasi futura richiesta di lettura dovrebbe contenere tali dati. Ad esempio, dopo aver aggiornato lo stato dell’ordine, tutti i clienti dovrebbero essere in grado di vedere gli stessi dati.
Disponibilità:
Il database deve essere sempre disponibile e reattivo. Non dovrebbe avere alcun tempo di inattività.,
Tolleranza partizione:
Tolleranza partizione significa che il sistema deve continuare a funzionare anche se la comunicazione tra i server non è stabile. Ad esempio, i server possono essere partizionati in più gruppi che potrebbero non comunicare tra loro. Qui, se una parte del database non è disponibile, altre parti sono sempre inalterate.
Coerenza finale
Il termine “coerenza finale” significa avere copie di dati su più macchine per ottenere elevata disponibilità e scalabilità., Pertanto, le modifiche apportate a qualsiasi elemento di dati su una macchina devono essere propagate ad altre repliche.
La replica dei dati potrebbe non essere istantanea poiché alcune copie verranno aggiornate immediatamente mentre altre a tempo debito. Queste copie possono essere reciprocamente, ma a tempo debito diventano coerenti. Quindi, il nome eventuale coerenza.,i> in sostanza, i mezzi disponibili DB è disponibile tutto il tempo come al teorema PAC
Vantaggi di NoSQL
- Può essere utilizzato come Primario o Analitica dei Dati di Fonte
- Grande Capacità in Dati
- Nessun Singolo Punto di Errore
- Facile Replica
- Non c’è Bisogno di Separare Livello di Cache
- fornisce veloce di prestazioni e scalabilità orizzontale.,
- Grado di gestire strutturati, semi-strutturati, dati strutturati e non, con pari effetto.
- programmazione Object-oriented, che è facile da usare e flessibile
- database NoSQL non è necessario un apposito server ad alte prestazioni
- Supporto Chiave Sviluppatore Linguaggi e Piattaforme
- Semplice da implementare rispetto all’utilizzo di RDBMS
- può servire come fonte primaria di dati per le applicazioni online.,ariety, volume, e la complessità
- Eccelle nel database distribuito e multi-operazioni di data center
- Elimina la necessità di uno specifico livello di cache per memorizzare i dati
- Offre uno schema flessibile di design che possono essere modificati facilmente, senza tempi di inattività o di interruzione del servizio
Svantaggi di NoSQL
- Non standardizzazione delle regole
- Limitato di funzionalità di query
- RDBMS di database e strumenti sono relativamente maturo
- non offre alcun database tradizionali funzionalità, come la coerenza quando più operazioni vengono eseguite contemporaneamente.,
- Quando il volume dei dati aumenta è difficile mantenere valori univoci poiché le chiavi diventano difficili
- Non funziona altrettanto bene con i dati relazionali
- La curva di apprendimento è rigida per i nuovi sviluppatori
- Opzioni open source quindi non così popolari per le imprese.
Sommario
- NoSQL è un DMS non relazionale, che non richiede uno schema fisso, evita i join ed è facile da scalare
- Il concetto di database NoSQL è diventato popolare tra i giganti di Internet come Google, Facebook, Amazon, ecc., chi si occupa di enormi volumi di dati
- Nell’anno 1998 – Carlo Strozzi usa il termine NoSQL per il suo database relazionale leggero e open-source
- I database NoSQL non seguono mai il modello relazionale è privo di schemi o ha schemi rilassati
- Quattro tipi di database NoSQL sono 1).Coppia chiave-valore basata 2).Grafico orientato alla colonna 3). Grafici basati 4).,Orientati al documento
- NOSQL in grado di gestire strutturati, semi-strutturati e non strutturati di dati con uguale effetto.
- CAP teorema consiste in tre parole, la Coerenza, la Disponibilità e la Tolleranza di Partizione
- BASE sta per Fondamentalmente a Disposizione, stato Soft, Consistenza finale
- Il termine “consistenza finale” significa avere le copie dei dati su più macchine ad alta disponibilità e scalabilità
- NOSQL offerta limitata di funzionalità di query