NoSQL Databases: Not Only SQL
Negli ultimi mesi, i database non relazionali (NoSQL), stanno facendo registrare una crescita esponenziale, sia per ciò che concerne il loro sviluppo, ma soprattutto il loro utilizzo.
Il termine NoSQL è stato utilizzato per la prima volta da Carlo Strozzi nel 1998 in merito al suo Database Open Source Light Weight, che non disponeva di un’interfaccia SQL.
Dopo circa 10 anni, Eric Evans, un impiegato Rackspace, riutilizzò il termine NoSQL per riferirsi ai database che sono non-relazionali.
Oggi il termine NoSQL (Not Only SQL) è usato per identificare tutti quei database che non si possono identificare nel paradigma relazionale.
Il movimento NoSQL ha fatto notizia negli ultimi anni, poiché molti dei leader del Web hanno adottato una tecnologia NoSQL. Aziende come Facebook, Twitter, Digg, Amazon, LinkedIn e Google utilizzano NoSQL.
Caratteristiche comuni di tutti i database NoSQL sono:
- progettati per memorizzare enormi quantità di dati
si pensi a Google e Facebook che memorizzano terabyte di dati ogni giorno - schema-free
non prevedono uno schema fisso - horizontally scalable
ovvero la possibilità di aggiungere nodi al sistema per distribuirne il carico in modo semplice (pensate infatti ai sempre più in voga sistemi cloud in cui i nodi possono diventare parecchi)
Possiamo dividere i databases NoSQL in tre categorie principali:
- Key-value store
Questi databases prevedono una memorizzazione key-value in cui ogni valore può essere una stringa, hash, lista, insieme o insieme ordinato.
Alcuni database appartenenti a questa categoria sono : Cassandra, Redis, memcached, BigTable, Riak
- Document Oriented
I dati vengono memorizzati come documenti. Un documento è in pratica un insieme di chiavi/valori.
Un formato di esempio di un documento è:
{ nome : “Andrea”, cognome : “Cardinale”, contatto : {telefono: “+39000000″, email: “miaemail@miodominio.it”} }
Alcuni database appartenenti a questa categoria sono : MongoDB, CouchDB, Jackrabbit, SimpleDB
- Graph databases
I dati sono memorizzati come un insieme di nodi, in cui i nodi sono analoghi agli oggetti dei linguaggi di programmazione. I nodi sono collegati tramite edges.
Alcuni database appartenenti a questa categoria sono : OrientDB, AllegroGraph, DEX, Neo4j, FlockDB, Sones GraphDB
Di seguito alcuni link per approfondire l’argomento:
- NoSQL Databases eBook
eBook di quasi 150 pagine scritto da Christof Strauch. L’eBook risale agli inizi del 2011, dunque non è aggiornatissimo, ma rimane un ottimo documento che introduce i concetti fondamentali, tecniche e modelli che vengono comunemente utilizzati dai database NoSQL. - NoSQL Day
Sito ufficiale del NoSQL Day tenutosi a Brescia il 25 Marzo 2011.
Il sito contiene le slides ed i video dell’evento. - Salvatore ‘antirez’ Sanfilippo, intervista allo sviluppatore di Redis
Intervista al creatore di Redis che fornisce una panoramica su Redis. - Perché potresti avere bisogno di un database NOSQL
Video e slides dell’intervento di Luca Garulli al Codemotion 2011. - Guida all’uso di OrientDB: introduzione al mondo NoSQL
Guida intrroduttiva ad OrientDB scritta da Luca Garulli (creatore di OrientDB). - MongoDB, DocumentDB, NoSQL
Video dell’intervento di Massimiliano Dessì al Codemotion 2011.
Qualcuno di voi ha utilizzato databases NoSQL? Quali? Hanno soddisfatto le vostre necessità?
Ti è piaciuto questo articolo? Condividilo… oppure lascia un commento
Un Commento a “NoSQL Databases: Not Only SQL”