Tra PostgreSQL, Oracle ed altri: una breve carrellata sui geodatabase in ambito GIS

Quest’oggi vogliamo fare una carrellata sui principali geodatabase utilizzati in ambito GIS.

Inizieremo parlando di PostgreSQL, passeremo per GeoMesa, HadoopGIS e Rasdaman ed arriveremo siano ad Oracle; di questi database solo l’ultimo è distribuito con licenza proprietaria.

Un geodatabase è, fondamentalmente, un comune database ma fornito di estensioni tali da permettergli di potere manipolare le primitive geometriche usate nel nostro ambito. Le primitive geometriche sono 3: i punti, le linee e i poligoni. Attraverso queste primitive, i Sistemi Informativi Territoriali possono essere popolati e acquisire consistenza.

Tutti i database possono, almeno, consentire il trattamento delle geometrie di tipo puntuale attraverso il salvataggio della doppietta di coordinate. Ma questa, lasciatemi dire, è un’operazione banale, poiché è sufficiente gestire 2 campi, X e Y, di tipo double, dove vanno salvate le coordinate dei punti.

Fino a questo punto abbiamo parlato dei database di tipo non geografico. I database geografici (o spaziali o geodatabase) sono particolari tipi di database ottimizzati per immagazzinare dati di tipo geografico e consentirne l‘interrogazione. Laddove i database tradizionali consentono di gestire dati vari di tipo numerico o alfanumerico, alcuni database consentono funzionalità aggiuntive apposite per processare e gestire efficientemente le geometrie.

Anche se un gran numero di database incorporano alcune funzionalità relative al trattamento di dati geografici, solo pochi sistemi db riescono a dare il supporto completo alle le funzionalità di tipo geometrico. Nel mondo Open, il sistema database che offre il supporto più ampio alle funzionalità geografiche e che è attualmente più utilizzato è sicuramente PostgreSQL.

Disponibile per sistemi operativi Windows, Linux, Mac OS X e molti altri Unix, PostgreSQL (o anche detto Postgres e talvolta Postgis), nasce nel 1982 nell’università di Berkeley in California e tra i suoi punti di forza annovera l’estrema scalabilità e adattabilità dai carichi di lavoro minimi relativi a piccole applicazioni in single-user ed a grosse applicazioni web con molti utenti simultanei.

È disponibile sotto licenza FOSS (acronimo di Free and Open Source Software) ed utilizza un linguaggio procedurale chiamato PL/pgSQL simile al PL/SQL di Oracle. È largamente supportato dalla comunità open ed esistono un largo numero di strumenti di amministrazione ad esso dedicati. Queste 2 caratteristiche solitamente sono quelle che ne decretano la sua scelta.

La caratteristica che ho trovato determinante nella scelta per il suo utilizzo è il pieno supporto al software di analisi statistica R. Questa feature aggiunge una serie di funzioni che estendono notevolmente le già larghe possibilità d’uso di questo database, anche perché le analisi di tipo statistico vengono continuamente ad essere richiamate in ambiente GIS, per lo meno in quei contesti d’uso un minimo approfonditi.

Altri 2 database con set di istruzioni e supporto alle funzioni geografiche di discreto livello e licenza d’uso paragonabile a quella di Postgres sono GeoMesa ed HadoopGIS. Questi 2 database possono essere posizionati su un livello simile ma cedono sicuramente il passo rispetto al db dell’elefantino. Sul medesimo livello, ma fortemente orientato ai dati di tipo raster, troviamo Rasdaman.

Per quel che riguarda il mondo dei sistemi non distribuiti con licenza open, spicca sicuramente Oracle nella declinazione Spatial, che propone un set completissimo di opzioni e supporto dedicato al mondo geografico. Nasce nel 1979, solo 3 anni prima di Postgres e dispone di una versione Express totalmente gratuita ma fortemente limitata. Anche per Oracle il supporto verso i sistemi operativi è pressoché totale. È previsto l’uso del linguaggio PL/SQL per estenderne funzioni e procedure e se opportunamente configurato è in grado di garantire un livello di sicurezza estremamente elevato (come d’altronde tutta la suite di prodotti Oracle).

Sia per Postgres che per Oracle, le referenze sono altisonanti: entrambi sono scelti quotidianamente in ambiti dove sono richieste alte prestazioni, sicurezza e scalabilità.

Per le scelte aziendali fatte da Oikos, la nostra scelta si è posata sul database Postgres, ma in diverse occasioni ci siamo trovati a lavorare con il DBMS Oracle per il quale non posso che spendere parole positive (fermo restando la necessità di un livello di conoscenza maggiore necessario per poterlo utilizzare con i medesimi risultati di Postgres).

La scelta è pertanto abbastanza obbligata in ambito GIS, soprattutto se non si vuole sottostare ai gravosi costi delle licenze di Oracle. Inoltre, da un punto di vista di interfacciamento al database a partire da un’applicazione, viste le logiche interne di Postgres, questo risulta estremamente più performante della media dei database esistenti.