I database NoSQL, che sta per “not only SQL”, sono database non tabellari che archiviano i dati in maniera completamente differente dai classici relazionali. Le tipologie di database SQL si dividono tra documentali, key-value, wide-column e grafici e permettono di avere schemi flessibili che si adattano perfettamente per enormi quantità di dati ed elevati carichi di lavoro.
Cos’è e perchè è nato NoSQL
I database NoSQL comunemente si pensa che siano non relazionali ma effettivamente archiviano le relazioni in maniera differente ed in particolare senza usare tabelle.
A partire dagli anni 2000 si è passati da un modello in cui le persone principali dell’IT erano sistemisti ad un modello in cui le persone principali sono diventate gli sviluppatori ( Google ha portato questo paradigma ad un livello ancora più evoluto con il Site Reliability Engineering). Tale passaggio ha comportato la nascita di database NoSQL che sono fortemente orientati agli sviluppatori ed allo sviluppo Agile.
Inoltre i dati si sono trasformati passando dai classici strutturati a dati non strutturati, polimorfici, di differenti dimensioni, semistrutturati, metadata che non permettevano di definire un modello relazionale organico e così i database NoSQL, come MondoDB, sono esplosi in popolarità perchè, oltre allo sviluppo Agile, permettevano di stoccare ed operare con dati non strutturati anche di enormi dimensioni.
Le tipologie di database NoSQL e per cosa usarli
In questi anni sono quattro le tipologie di database NoSQL che sono emerse e che hanno trovato largo uso:
- Documentali : questo tipo di database archivia i i dati in documenti simili agli oggetti JSON. I valori dei dati sono tipicamente stringhe, numeri, booleani, array o oggetti stessi e la loro struttura si allinea agli oggetti del codice di sviluppo. Sono sicuramente i più flessibili e possiamo definirli “general purpose” e possono essere utilizzati praticamente per qualsiasi tipologia di applicativo. In questa categoria troviamo MondoDB e Firestore.
- Key-value: sono database più semplici dove ogni elemento è composto dal binomio chiave-valore. Sono utilizzati quando hai necessità di archiviare un’ enorme quantità di dati e non necessiti di query complesse, il tipico use case è l’archiviazione delle preferenze utente ed il caching. In questa categoria troviamo Redis e DynamoDB.
- Wide-column: sono database in cui esiste il classico scenario delle tabelle ma ogni row non necessita di avere le stesse colonne di un’altra row nella medesima tabella. In pratica è tutto flessibile. Sono utilizzati quando hai necessità di archiviare un’ enorme quantità di dati e puoi stabilire a priori le tue query. Il tipico use case è l’archiviazione di dati dei dispositivi IoT e dei profili utente. In questa categoria troviamo Cassandra e HBase.
- Grafici: sono database che archiviano dati in nodi ed edge, dove i nodi tipicamente archiviano dati su persone, posti ed altre cose e gli edge archiviano le relazioni tra i suddetti nodi. Vengono usati quando c’è necessità di passare attraverso le relazioni per trovare pattern di riferimento come nel caso dei social network e della prevenzione delle frodi. In questa categoria troviamo Neo4j e JanusGraph.
Glue Labs ed i Database NoSQL
Abbiamo utilizzato, implementato ed integrato Database NoSQL sia in ambiente on-premise e Cloud per numerosi Clienti, ti forniamo assistenza e supporto nella progettazione, sviluppo e delivery di qualsiasi applicazione che utilizzi DB NoSQL e ti aiutiamo nell migrazione da Database SQL a NoSQL. Contattaci subito e senza impegno per maggiori informazioni.