next up previous contents index
Next: Evoluzione dei domini Up: Basi di dati temporali Previous: Basi di dati temporali   Indice   Indice analitico

Problema dell'evoluzione degli schemi dei dati

Con il procedere del tempo, le necessità di gestione delle informazioni all'interno di un dominio applicativo possono cambiare anche considerevolmente. Basta pensare alle continue modifiche che sono necessarie a causa degli interventi di riorganizzazione aziendale e di razionalizzazione delle risorse, esempi tipici di una realtà che cambia e si adatta alle esigenze espresse per adattarsi ad un mercato sempre più competitivo e dai confini sempre meno definiti.

I processi aziendali si evolvono e la necessità di mantenere il minimo distacco possibile tra la realtà e la sua astrazione all'interno dei sistemi informativi è sempre maggiore, con le diverse problematiche connesse.

Sebbene le stime in questo campo differiscano, gli esperti sono concordi nell'affermare che il 50% o più degli sforzi dei progettisti e dei programmatori sono causati da modifiche del sistema dopo l'implementazione [Lie83], ed il compito di facilitare questi cambiamenti è reso più difficile se sono coinvolte grandi quantità di dati o di applicazioni. Secondo questa analisi, le modifiche ad un sistema informativo che coinvolgono cambiamenti nella struttura del database sono abbastanza frequenti. Come risultato, le modifiche agli schemi dei database sono un compito comune ed abbastanza problematico degli amministratori di database. Queste considerazioni sono molto importanti, sia dal punto di vista dei produttori di sistemi informativi, sia da quello degli utenti aziendali di questi sistemi.

I database temporali sono stati introdotti per gestire l'evoluzione temporale degli oggetti modellati e per venire incontro a queste esigenze. Solitamente gestiscono due diverse dimensioni temporali: transaction time, che esprime il momento nel quale l'evento è registrato nel database, e valid time, che indica quando l'evento accade, è accaduto o è stimato che accada nel mondo reale. A seconda delle dimensioni temporali che essi supportano, i database temporali sono classificati in monotemporali (sia transaction time che valid time), bi-temporali o Snapshot. I database transaction time registrano tutte le versioni dei dati inseriti, cancellati o modificati in transazioni successive. I database valid time mantengono le versioni dei dati più recenti, ognuna relativa ad un distinto intervallo valid time. I database bi-temporali supportano sia il tempo delle transazioni che il valid time e quindi mantengono tutte le versioni valid time registrate in transazioni successive. I database snapshot non supportano direttamente la gestione del tempo: mantengono solamente l'ultima versione. I database nei quali coesistono relazioni di diversi formati temporali (snapshot, valid time, bi-temporali) sono chiamati multi-temporali.

L'applicazione di queste estensioni temporali sono state studiate per un buon numero di paradigmi di database, incluso quelli relazionali, quelli orientati agli oggetti e quelli deduttivi.

Nel campo dei database tradizionali, una modifica allo schema dei dati comporta immediatamente la sostituzione di quello precedente. I dati corrispondenti allo schema precedente sono persi, oppure mantenuti ed adattati al nuovo schema nel caso il database supporti lo Schema Evolution. In entrambi i casi, una porzione delle informazioni intensionali possono non essere più disponibili, insieme con i corrispondenti insiemi di informazioni estensionali.

Definizione 1 (Schema Modification)   Viene eseguita una modifica allo schema (Schema Modification) quando un DBMS permette di cambiare la definizione dello schema in un database popolato di dati

Le modifiche agli schemi dei database hanno comunque bisogno dell'intervento del database administrator, in maniera più o meno pesante. In ogni caso è auspicabile che queste operazioni richiedano il minimo numero di interventi possibili affinché tutti i cambiamenti necessari vengano effettuati. I dettagli dell'implementazione dei cambiamenti dipendono in misura maggiore dal sistema sul quale si opera, piuttosto che sulle necessità dell'utente. E' chiaro, quindi, che l'attenzione dell'amministratore vada focalizzata sulle necessità del dominio sul quale vengono applicate le modifiche, piuttosto che sui dettagli dell'implementazione.

Queste considerazioni portano alla necessità di astrarre le singole operazioni necessarie alla gestione delle modifiche, e di gestirle in maniera semiautomatica attraverso l'uso di interfacce che semplifichino la modellazione concettuale e la propagazione dei cambiamenti.



Subsections
next up previous contents index
Next: Evoluzione dei domini Up: Basi di dati temporali Previous: Basi di dati temporali   Indice   Indice analitico
Alessandro Ronchi 2005-07-16