UML 2 pour les bases de données
206
© Éditions Eyrolles
Contrainte de totalité
La contrainte de totalité exprime le fait qu’il n’existe aucun personnel n’étant ni PNT ni
PNC (prédicat B), et qu’il peut exister un personnel à la fois PNT et PNC (prédicat C). Le
prédicat B a été programmé plus avant. Le prédicat C revient à ne pas programmer le
prédicat A précédent (ne pas mettre en œuvre les déclencheurs des tables PNT et PNC).
Contrainte d’exclusivité
La contrainte d’exclusivité exprime le fait qu’il n’existe aucun personnel pouvant être à la fois
PNT et PNC (prédicat A), et qu’il peut exister un personnel ni PNT ni PNC (prédicat D). Le
prédicat A a été programmé plus avant. Le prédicat D revient à ne pas programmer le prédicat
B précédent (ne pas mettre en œuvre les procédures d’ajout et de suppression et le déclencheur
de la table Personnel).
Sans contrainte
Aucune contrainte n’est à programmer.
Décomposition descendante
Contrainte de partition
Le prédicat A se programme à l’aide des mêmes déclencheurs sur les tables PNT et PNC que
pour la décomposition ascendante. Le code suivant illustre une tentative d’ajout d’un PNT, qui
est déjà PNC lorsque les déclencheurs sont actifs.
-- État des tables
SQL> SELECT * FROM PNT;
NUMPERS NOMPERS
BREVET
VALIDITE
--------- -------------------- ---------- -------1 Tanguy
4MPY68
10/12/02
3 Laverdure
3MPY69
11/12/03
SQL> SELECT * FROM PNC;
NUMPERS NOMPERS
INDICE
PRIME
--------- -------------------- --------- --------2 Natacha
567
15000,2
-- tentative d’ajout d’un PNT déjà PNC
SQL> INSERT INTO PNT values (2,'Natacha','3MPY99','11-12-2003');
ERREUR à la ligne 1 : ORA-20001: Le personnel 2 est déjà PNC...
ORA-06512: à "SOUTOU.TRI_B_IU_PNT", ligne 6
Le prédicat B n’a pas à être programmé si la table Personnel est inexistante (voir chapitre 2,
section Décomposition ascendante : quand il existe une contrainte de totalité ou de partition
sur l’association d’héritage, il est possible de ne pas traduire la table issue de la sur-entité). En
effet, avec les tables PNT et PNC seules, il n’est pas possible d’avoir un enregistrement ni PNT
ni PNC. En revanche, si la table Personnel est présente, il faut procéder de la même façon
que pour la décomposition ascendante (procédures et déclencheur sur la table Personnel).
Précédent

- 212/316

Suivant