03 maggio 2012 ~ 1 commento ~ Databases

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.

NoSQL Databases: Non Only SQLIl 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
 
In questi giorni ho approfondito la conoscenza di tre databases NoSQL: Redis, MongoDB e OrientDB. Nei prossimi articoli, impegni permettendo, tratterò questi DB partendo dall’installazione, alla configurazione ed al loro utilizzo.
 

Di seguito alcuni link per approfondire l’argomento:


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”


Lascia un Commento