I database e i sistemi di gestione NoSQL sono attualmente popolari nel settore dello storage. L'avvento dei big data è la ragione principale alla base della crescita e della popolarità dei database NoSQL. Gli attuali sistemi di gestione del database sono progettati per dati strutturati con schema predefinito, ma trovano è molto difficile gestire dati semi-strutturati, non strutturati o di altro tipo, comunemente noti come big dati. I sistemi di gestione di database NoSQL non sostituiscono i tradizionali RDBMS. Sono qui per affrontare il problema dei dati non strutturati.
I database sono spazi di archiviazione. Questi spazi sono organizzati sistematicamente per memorizzare in modo strutturato diversi tipi di dati. Questo ci aiuta a recuperare e gestire, mentre NoSQL memorizza sia dati non strutturati che semi-strutturati.
Un sistema di gestione di database è un insieme di programmi software. Può gestire l'archiviazione, l'estrazione e la modifica dei dati insieme alle attività amministrative. Tutti i database relazionali hanno un modello predefinito che definisce la struttura dei dati e il metodo di archiviazione. Ma nell'archiviazione NoSQL, lo schema è definito dinamicamente. Esistono diversi DBMS per modelli relazionali e non relazionali.
Fino ad ora, i dati non strutturati vengono prima strutturati e quindi caricati nell'RDBMS. Ora, per gestire i big data, NoSQL fornisce un meccanismo per archiviare e recuperare i dati, modellati in modo non relazionale, cioè senza relazione tabulare. Esistono diversi database NoSQL disponibili sul mercato per gestire casi specifici di dati semi-strutturati, non strutturati o di altro tipo.
NoSQL DBMS è progettato per gestire dati non strutturati. Fornisce un modello senza schema, prestazioni elevate, scalabilità, archiviazione distribuita, abilitazione cloud.
I dati non strutturati hanno quattro dimensioni: volume, velocità, varietà e complessità. Quindi, il DBMS NoSQL è progettato per avere più modelli operativi basati sui dati e sulla funzionalità di destinazione. Esistono quattro tipi di DBMS NoSQL:
Modello basato su valori-chiave
L'archiviazione NoSQL basata su valore-chiave è la spina dorsale del modello non relazionale. Il valore di qualsiasi dato viene archiviato con una chiave corrispondente e i dati vengono recuperati con l'aiuto della chiave. Ha alte prestazioni con un facile supporto per la scalabilità. Il modello basato su chiave-valore è adatto per memorizzare informazioni di base come profili utente, sessioni utente, dati del carrello degli acquisti, code e informazioni in tempo reale. Questi non sono adatti per eseguire query basate su dati, più operazioni basate su chiavi o recupero basato su relazioni.
Modello basato su colonne
Un modello DBMS basato su colonne memorizza i dati correlati in più colonne e i dati correlati sono identificati da una chiave di riga. Può avere colonne diverse per righe diverse. È possibile aggiungere nuove colonne a qualsiasi riga in qualsiasi momento. È adatto per l'archiviazione di grandi volumi di dati non strutturati e non volatili. Viene utilizzato principalmente per l'aggregazione di log, piattaforme di blogging. Non è consigliato per il modello di query che cambia.
Modello basato su documenti
Un modello basato su documenti è un archivio di valori-chiave. Il documento viene archiviato nella parte del valore e recuperato dalla chiave associata. Questi documenti devono avere una struttura gerarchica e autodefinitiva. Può essere XML, JSON o in qualsiasi altra forma. È adatto per la memorizzazione di informazioni nidificate, CMS, analisi basate sul Web e in tempo reale, applicazioni di e-commerce, ecc. Non è adatto per operazioni complesse in più documenti o query complesse.
Modello basato su grafici
Un database a grafo memorizza le entità con le loro relazioni. Queste entità sono conosciute come nodi e hanno le loro proprietà e le relazioni sono conosciute come bordi. È come una struttura ad albero in cui tutti i nodi sono collegati in base alle loro relazioni. I database grafici sono adatti dove i dati hanno relazioni forti, come i social network. Tuttavia, non è adatto dove il modello di dati non ha forti relazioni tra le entità perché il successo del grafico dipende principalmente dal modello basato sulla relazione.
Si noti che NoSQL DBMS è stato introdotto per supportare i dati non strutturati in RDBMS.
Come vediamo ora, il volume dei dati non strutturati aumenterà, quindi NoSQL ha un futuro brillante, ma non sostituirà RDBMS. I casi d'uso relazionali non hanno alcun problema. Molteplici tecnologie di storage coesisteranno sicuramente, per soddisfare i vari requisiti.