• Non ci sono risultati.

Le funzionalità (avanzate) di un moderno DBMS

PARTE 2: SISTEMI INFORMATIVI PER L’ANALISI DEI SISTEMI DI

2 I SISTEMI INFORMATIVI GEOGRAFICI NELL’ANALISI SPAZIALE E DI

2.1 DBMS: Caratteristiche e funzionalità

2.1.4 Le funzionalità (avanzate) di un moderno DBMS

I vantaggi di un sistema DBMS, accennati in precedenza, oggigiorno vengono realizzati attraverso funzionalità di crescente potenzialità, le cui caratteristiche salienti vengono descritte nel seguito.

2.1.4.1 Database temporale

La dimensione temporale caratterizza un’ampia casistica di sistemi informativi che non è sempre trattata in maniera adeguata ed efficiente con i database di tipo comune. A tale scopo sono stati sviluppati i database temporali, nei quali vengono considerate diverse dimensioni temporali del dato, come ad esempio la sua validità nel tempo.

Normalmente il dato viene registrato come valido nell’istante attuale, senza tener traccia o esplicitare lo stato futuro e/o passato. Invece, assegnando un valore rappresentativo di un intervallo temporale, diviene possibile registrare lo stato dei dati del sistema informativo con la loro evoluzione nel tempo.

Per un approfondimento dell’argomento si rimanda a testi specifici sull’argomento (ad esempio [104])

2.1.4.2 Basi Dati Attive

Una base di dati si dice attiva quando possiede un sottosistema integrato per definire e gestire regole che agiscono sulla basi dati sul base del paradigma Evento-Condizione-Azione. Tale paradigma prevede che la regola reagisca ad alcuni eventi (che corrispondono generalmente ad una modifica della base dati), valutando il valore di verità di una predeterminata condizione. In base al risultato di tale valutazione, viene eseguita o meno una azione prestabilita.

In tal modo il comportamento della base dati viene ad essere di tipo reattivo, con un alternarsi, gestito tramite un sottosistema autonomo detto processore delle regole (rule engine), tra esecuzioni delle transazioni, lanciate dagli utenti, e delle regole, lanciate dal sistema.

Tali regole possono venire impostate per gestire un ampia gamma di situazioni e operazioni, garantendo la correttezza e coerenza dei dati presenti nel DBMS. Ad

esempio possono essere utilizzate per garantire vincoli di integrità complessi fra diverse tabelle, gestire eccezioni, implementare regole aziendali.

Tali funzionalità aggiungono una nuova dimensione alla indipendenza delle basi dati, di cui s’è detto in precedenza. Si parla in tal caso di “indipendenza della conoscenza”, in quanto la conoscenza viene implementata nelle regole, anziché nel programma applicativo. In tal modo si ottiene anche il vantaggio che tale implementazione deve essere effettuata una sola volta (a livello di DDL) per essere poi condivisa da tutte le applicazioni che si interfacciano col DBMS, con evidente semplificazione.

Quasi tutti gli attuali DBMS relazionali possiedono le caratteristiche delle basi dati attive, mettendo a disposizione la possibilità di implementare semplici regole, dette trigger. Tuttavia va sottolineato come, a causa del lungo tempo intercorso fra la comparsa di tali funzionalità e loro standardizzazione, il processo di uniformazione e conformazione allo standard (SQL-3) non è stato ancora portato a compimento.

2.1.4.3 Architettura centralizzata a più livelli (separazione dati e applicazione)

Il sistema informativo, come s’è detto, comporta una gestione unitaria delle informazioni. Tuttavia tali informazioni devono poter essere rese accessibili ad una pluralità di utenze, con diverse modalità di accesso al sistema informativo. Lo schema classifico di questa interazione fra diversi processi informatici è costituito dall’architettura client-server.

Tale architettura prevede infatti l’interazione fra processsi che richiedono servizi, detti client, e processi che offrono servizi, detti server. Perlopiù il client si interfaccia inoltre direttamente con l’utente finale e, sulla base degli input proventi da quest’ultimo, genera le richieste al server. Quest’ultimo svolge quindi un compito reattivo, determinato dalle richieste che riceve dal client.

Solitamente il singolo client effettua un numero contenuto di richieste verso uno o più server (generalmente comunque pochi e comunque solo nel caso delle cosiddette basi dati distribuite), mentre il server deve rispondere a richieste provenienti da vari client. La distinzione fra client e server corrisponde in origine anche ad una distinzione fra diverse macchine in cui avvengono i rispettivi processi; tuttavia, trattandosi di un paradigma che norma essenzialmente la realizzazione del software, non è necessario che corrisponda ad una distinzione in termini anche di hardware.

In definitiva il paradigma client-server garantisce un’accesso plurimo alla base dati, realizzando una separazione del dato dall’applicazione. In tal modo la base dati viene resa disponibile ai diversi software applicativi, regolando l’efffettuazione delle modifiche, realizzate da diversi punti di accesso al sistema informativo, e garantendo la corenza dei dati.

2.1.4.4 Sistemi informativi su Web

La rapida espansione di Internet, che ha assunto carattere di universalità, ha caratterizzato lo sviluppo dell’informatica negli ultimi anni. La diffusione dei relativi strumenti e protocolli è inoltre accresciuta dal fatto vengono sempre di più adottatti anche nell’ambito di reti private, dette Intranet.

Tale espansione è stata accompagnata anche da un mutamento del Web, che è diventato sempre di più una piattaforma per lo sviluppo di sistemi informativi di vario tipo, accessibili mediante browser.

Va precisato che i sistemi informativi su Web, pur potendo usufruire di strumenti e modelli sviluppati per i sistemi informativi tradizionali, sono caratterizzati da aspetti peculiari piuttosto rilevanti.

Infatti le tipologie di dati presenti sono molto varie e spesso caratterizzate da struttura irregolare. Da ciò nasce, tra l’altro, l’esigenza di realizzare un sistema di rappresentazione per dati semistrutturati come XML, di cui si dirà nel paragrafo seguente.

Per quanto riguarda l’utilizzo, invece, si devono prevedere modalità di accesso ai dati piuttosto eterogenee, finalizzate principalmente alla consultazione anziché all’aggiornamento.

In ragione di queste differenze e della generale maggiore complessità delle applicazioni, l’archittettura di un sistema informativo su Web richiede una strutturazione maggiormente articolata rispetto al caso tradizionale.

L’architettura client/server decritta in precedenza si arricchisce così di un Server Web, che assolve il compito di gestire le richieste degli utenti inviate tramite client web (ossia uno dei comuni navigatori per Internet come Microsoft Internet Explorer o Mozilla

Firefox), inviarle al server centrale, ottenere una risposta e restituire le informazioni risultanti all’utente finale.

Tale architettura su tre livelli è stata realizzata con tecnologie di crecente potenzialità, che permettono di costruire dinamicamente le pagine Web quali: Common Gateway Interface (CGI), Java servlet e Java Server Pages (JSP). Recentemente è stato introdotto anche un ulteriore elemento, l’Application Server (finalizzato ad un incremento delle prestazioni e scalabiltà attraverso un ottica di riutilizzo delle componenti software), giungendo a definire una vera e propria architettura multilivello.

Figura 2-2 – Esempio di architettura a tre livelli di un sistema informativo su Web realizzata on JSP. Fonte:[78].

2.1.4.5 Basi di dati e XML

La recente realizzazione dello standard XML (eXtensible Markup Language), sviluppato per lo scambio di informazioni sul Web, ha rappresentato un’interessante evoluzione nel campo dei modelli dei dati. Tale standard presenta un insieme di regole sintattiche per descrivere, mediante una sintassi basata sui marcatori (come HTML), la struttura di documenti e dati presenti nel caso di documenti di tipo generico.

La versatilità di XML ne consente l’utilizzo, oltre che nella rappresentazione di documenti, anche nella realizzazione di basi di dati, essendo, tra l’altro, dotato di linguaggi di DDL e DML.

Inoltre si tratta di un formato che agevola l’interscambio di informazioni fra diverse piattaforme, in quanto fornisce una descrizione del contenuto informativo indipendente dalla piattaforma harware/software.

Tuttavia, per permettere un utilizzo di XML nella archiviazione di dati complessi, occorre integrarlo con le funzionalità tipiche dei sistemi DBMS.

A tale scopo sono state sviluppate specifiche estensioni del modelli relazionale e ad oggetti per i dati XML. Un altro approccio, invece, ha portato alla creazione di basi dati XML native, ossia concepite espressamente per dati XML.