194
Chapitre 7 • Applications avancées en SQL
new.debut, old.NOM, old.LOCALITE, old.CAT);
end
create trigger TRG_DELETE_CLI
after delete on H_CLIENT
on each row
begin
insert into H_CLIENT values (old.NCLI, old.debut,
current_timestamp, old.NOM, old.LOCALITE, old.CAT);
end
7.23 Compléter les déclencheurs de la section 7.3.5 de manière telle qu’ils gèrent
la stabilité de l’identifiants d’entité (NCLI), la différence de deux états
consécutifs et l’intégrité référentielle (LOCALITE vers H_LOCALITE).
7.24 Il existe d’autres représentations des états historiques d’une collection
d’entités. L’une d’elles, bien que peu économique en place occupée, offre
une grande simplicité de gestion et d’exploitation. Elle consiste à utiliser
deux tables : CLIENT et H_CLIENT. La première contient uniquement les
états courants tandis que la seconde contient tous les états, courants et passés.
Elles sont définies comme suit :
create table CLIENT
(NCLI
char(8)
not null,
NOM
char(18) not null,
LOCALITE char(20) not null,
CAT
char(2),
primary key (NCLI));
create table H_CLIENT
(NCLI
char(8)
not null,
debut
timestamp not null,
fin
timestamp not null,
NOM
char(18) not null,
LOCALITE char(20) not null,
CAT
char(2),
primary key (NCLI,debut))
Rédiger les déclencheurs de gestion automatique de l’historique à partir des
opérations courantes insert, update et delete effectuées sur la table
CLIENT.
7.25 Soit une table EMPLOYE, d'identifiant MATRICULE, et qui donne pour
chaque employé, son nom, sa période d'engagement (debut-fin) et le projet
auquel il a été affecté. Pour simplifier, les dates sont représentées par des
nombres entiers. Si un employé travaille encore aujourd'hui, la date de fin de
période est mise à 999. Par exemple, la première ligne indique que l'employé
Précédent

- 194/436

Suivant