next up previous contents index
Next: Storia delle versioni Up: Versioni Previous: Migrazione dei dati   Indice   Indice analitico


Aggiornamento degli schemi

Per permettere una maggiore flessibilità e potenza nella realizzazione di query che interrogano basi di dati corrispondenti a versioni diverse dello schema vengono introdotti gli Schemi Aumentati, che rappresentano un aggiornamento degli schemi precedenti. Gli Schemi Aumentati sono schemi che vengono prodotti attraverso insiemi di operazioni di modifica, riportate nelle versioni precedenti per allargare i limiti del range delle interrogazioni multi-schema. Ad ogni versione dello Schema Graph corrisponde un diverso schema aumentato, se il progettista decide di riportare in quel determinato schema una o più modifiche apportate all'ultima versione.

Una transazione di operazioni di modifica porta ad ottenere una versione $ S'=(\hat{U}', F')$ a partire da $ S=(\hat{U}, F)$. Sia $ S_i$ una versione precedente (eventualmente coincidente con $ S$), ed $ S_i^{AUG}$ il suo schema aumentato. Mentre la migrazione coinvolge i dati che hanno una validità che si sovrappone ad entrambe le versioni $ S$ ed $ S'$, l'aumento di $ S_i$ coinvolge solamente i dati che hanno la stessa validità temporale di $ S_i$ ($ [t_1, t_2]$). A differenziare ulteriormente le due operazioni è la gestione degli eventi: mentre nella migrazione non vengono coinvolti, l'aumento deve prendere in considerazione tutti gli eventi che sono accaduti durante $ [t_1, t_2]$ ed eventualmente alcune istanze di gerarchie non erano valide in $ [t_1, t_2]$.

Come nella migrazione, tuttavia, esistono anche in questo caso delle azioni che non dipendono dalla specifica sequenza delle operazioni di modifica applicate, ma sull'effetto di rete per gli attributi e le dipendenze funzionali coinvolte nella transazione. In particolare:

Le operazioni di aumento degli schemi $ S_i$ coinvolgono solamente le operazioni di aggiunta, a differenza di quanto visto per la migrazione, per un motivo preciso. Mentre il progettista può aggiungere ed eliminare attributi e dipendenze funzionali dagli schemi, non è affatto utile ai fini delle interrogazioni cross-versionali la propagazione di una cancellazione negli schemi precedenti. Nell'ottica di trovare il sistema migliore per rendere possibile l'interrogazione sia degli schemi singoli che di schemi multipli, la cancellazione non farà parte dei nostri schemi aumentati.

Introduciamo quindi la definizione 22 di versione aumentata, costruita sulla base di $ S$, $ S'$ e sullo schema aumentato basato su queste due versioni dello schema.

Definizione 22 (Versione Aumentata)   Sia $ S_i^{AUG} = (\hat{U}_i, F_i)$ lo schema aumentato costruito sulla base delle operazioni di modifica dello schema $ S$ che portano allo schema $ S'$. Siano $ \widehat{\mathtt{Diff_A}}(S,S')$ e $ \widehat{\mathtt{Diff_F}}(S,S')$ i sottoinsiemi di $ \mathtt{Diff_A^+}(S,S')$ e $ \mathtt{Diff_F^+}(S,S')$, rispettivamente, che includono solo gli attributi e le dipendenze funzionali che il progettista decide di inserire nelle operazioni di aumento. La versione aumentata di $ S_i^{AUG}$ è definita come $ \mathtt{Aug}(S_i^{AUG},S,S') := (\hat{U}_i \cup \widehat{\mathtt{Diff_A}}(S,S'...
...thtt{Diff_A}}(S,S')}
(\widehat{\mathtt{Diff_F}}(S,S')
%\cup \DiffD{S}{S'}
))^-)$

E' necessario che tutti gli attributi coinvolti dalle dipendenze funzionali presenti in $ \widehat{\mathtt{Diff_F}}(S,S')$ devono essere presenti in $ \widehat{\mathtt{Diff_A}}(S,S')$, dal momento che si possono aumentare solamente le dipendenze funzionali che coinvolgono attributi già presenti.


Tabella 4.2: Azioni di aumento associate agli inserimenti di attributi e dipendenze funzionali
Elemento Condizione Azione di aumento
    $ A$ è una misura stimare i valori per $ A$
  $ (E \to A) \in F_i$ $ A$ è una dimensione disaggregare i valori delle misure
    $ A$ è una misura derivata calcolare i valori per $ A$
$ A \in \widehat{\mathtt{Diff_A}}(S,S')$ $ (E \to A) \not \in F_i$ $ A$ è una proprietà aggiungere i valori di $ A$
$ f \in \widehat{\mathtt{Diff_F}}(S,S')$ - controllare se $ f$ è soddisfatta

Le azioni di aumento associate a ciascun elemento in $ \mathtt{Diff_A^+}(S,S')$ e $ \mathtt{Diff_F^+}(S,S')$ sono riportate nella tabella 4.2 e sono definite come segue:


next up previous contents index
Next: Storia delle versioni Up: Versioni Previous: Migrazione dei dati   Indice   Indice analitico
Alessandro Ronchi 2005-07-16