Dopo aver trattato la gestione dei dati distribuita in ambiente relazionale, affrontiamo i sistemi NoSQL.

Nel 1970 un ricercatore di IBM chiamato Codd pubblica un articolo intitolato “A relational model of data for large shared data banks” in cui presenta un modello di rappresentazione dati indipendente dall’implementazione. Si era passati dal modello gerarchico (in cui bisognava usare i puntatori per accedere ai dati) al modello relazionale. Questo passaggio è stato fondamentale per lo sviluppo del mondo dell’informatica, un mondo dove l’hardware dedicato allo storage era estremamente costoso, estremamente poco capiente (nel range di pochissimi megabyte) e logisticamente parecchio ingombrante. Il modello relazionale quindi era studiato in primis per questo contesto, proponendo strategie per la rappresentazione compatta dei dati.

Gli aspetti positivi del modello relazionale si possono comunque riassumere in:

Si hanno però anche delle limitazioni per il modello relazionale, come ad esempio:

Oggigiorno lo standard dal punto di vista hardware è drasticamente cambiato con dischi di capienza enorme (nell’ordine dei terabyte per qualche decina di euro). Il rapporto costo-GB è crollato rispetto a pochi anni fa. Il contesto storico è quindi cambiato e in tal senso anche il modello per la rappresentazione dei dati sta cambiando e sta cambiando anche la scelta tra spazio e tempo, non essendo più la prima una grossa problematica ed essendo la seconda di grande interesse, dovendo rispondere il più in fretta possibile alle interrogazioni.

Sulle slide un elenco dei vari step storici.

I modelli NoSQL

Il termine NoSQL è stato coniato da Carlo Strozzi nel 1998 quando si inventa una sorta di API per Linux per accedere ai dati relazionali senza usare SQL. Il termine è stato ripreso nel 2009 con la “logica” Not Only SQL dopo che per circa 9 anni, a partire dal 2000, erano nati nuovi modelli, a grafi, a documenti etc… (da parte di Amazon, Google, Facebook etc. . .).

Quindi NoSQL è un’insieme di modelli di rappresentazione dati, con relativi software di gestione.

Si hanno 3 caratteristiche fondamentali:

  1. tutti i modelli sono schema free o schemaless