3. Langages de requête et de manipulation des données
95
Figure 3-11
Le traitement
délicat des
valeurs nulles
Règle de
suppression avec
mise à la valeur
nulle
Normalement les clés étrangères n’admettent pas de valeurs
nulles, sauf si elles sont soumises à une règle d'intégrité référentielle
spéciale. Ainsi, par exemple, dans la règle de suppression pour la
table référencée DÉPARTEMENT, nous pouvons spécifier si les valeurs
de la clé étrangère dans la table référençante doivent être mises à la
valeur nulle ou pas. La règle d'intégrité référentielle «Mettre à la
valeur nulle» signifie que les valeurs d'une clé étrangère deviennent
nulles lors de la suppression des tuples référencés. Supprimons par
exemple le tuple (D6, Finances) dans la table DÉPARTEMENT soumise
à la règle d'intégrité référentielle «Mettre à la valeur nulle». À ce
moment, les valeurs de la clé étrangère «Affectation» deviennent
nulles pour les employés Savoy et Brodard dans la figure 3-11. Cette
règle complète les règles de suppression restreinte et en cascade déjà
énoncées dans la section 2.5.
Prudence en
présence de
valeurs nulles
La gestion des valeurs nulles n'est pas sans poser des problèmes.
Au-delà des valeurs TRUE et FALSE, la valeur nulle introduit
notamment la nouvelle information UNKNOWN. Nous nous écartons
donc de la logique bivalente selon laquelle chaque prédicat ne peut
être que vrai ou faux.
EMPLOYÉ
E19
E1
E7
E4
Savoy
Meier
Humbert
Brodard
avenue de la Gare
?
route des Alpes
?
Romont
?
Bulle
?
E#
Nom
Rue
Ville
D6
D3
D5
D6
Affectation
SELECT
*
FROM
EMPLOYE
WHERE
Ville = 'Fribourg
UNION
SELECT
*
FROM
EMPLOYE
WHERE
NOT Ville = 'Fribourg'
TABLE RÉSULTAT
E19
E7
Savoy
Humbert
avenue de la Gare
route des Alpes
Romont
Bulle
E#
Nom
Rue
Ville
D6
D5
Affectation
Précédent

- 110/301

Suivant