next up previous contents index
Next: Schema modification Up: Basi di dati temporali Previous: Versioning   Indice   Indice analitico

Gestione dei dati estensionali

Se fino ad ora abbiamo considerato prevalentemente la gestione degli schemi in presenza di versioning, la gestione dei dati estensionali relativi alle versioni è uno degli aspetti più problematici. Le scelte implementative analizzate in letteratura sono diverse, a seconda degli obbiettivi richiesti dall'ambito di utilizzo e delle semplificazioni che si possono imporre alla gestione dello Schema Versioning

Possiamo chiarire con un esempio i diversi livelli di intervento richiesti all'amministratore di un database relazionale in presenza di modifiche allo schema, mostrando i tre casi principali di supporto agli aggiornamenti che abbiamo introdotto e le operazioni di migrazione dei dati che vengono richieste.

Nell'esempio 1 viene creato lo schema di una nuova relazione (snapshot) $ SV_1$ e vengono inserite nel catalogo le corrispondenti informazioni.

Esempio 1   La tabella IMPIEGATI è inizialmente vuota, poi vengono inserite le due tuple nella nuova relazione.

CREATE TABLE IMPIEGATI

(NOME CHAR(10) NOT NULL PRIMARY KEY, INDIRIZZO CHAR(20), CITTA CHAR(10));

INSERT INTO IMPIEGATI

VALUES('Brown', 'King's road 15', 'London');

INSERT INTO EMPLOYEE

VALUES('Rossi', 'Via Veneto 7', 'Rome');

Nella tabella che segue viene mostrato il contenuto della relazione relativa allo schema $ SV_1$, che dopo le operazioni eseguite nell'esempio 1 è diventato:

$ SV_1$ IMPIEGATI(NOME, INDIRIZZO, CITTA)

NOME INDIRIZZO CITTA
Brown

Consideriamo ora i cambiamenti nello schema:

$ S_1$ ALTER TABLE IMPIEGATI DROP COLUMN ADDRESS;

$ S_2$ ALTER TABLE IMPIEGATI ADD COLUMN TELEFONO CHAR(8);

ed esaminiamo quello che accade nelle tre tipologie di supporto ai cambiamenti dello schema.



Subsections
next up previous contents index
Next: Schema modification Up: Basi di dati temporali Previous: Versioning   Indice   Indice analitico
Alessandro Ronchi 2005-07-16