120
Chapitre 5 • Le langage SQL DML
5.8.5 Modification des structures de données
La modification du schéma d’une base de données implique le plus souvent des
modifications de données. Par exemple, l’ajout d’une colonne à une table contenant
des lignes est suivi de la modification de cette colonne pour chacune des lignes
(mise à null ou à la valeur par défaut). Ou encore, la suppression d’une table est
précédée de la suppression de chacune de ses lignes. Il est évident que ces opérations de modification doivent respecter les contraintes d’intégrité au moment de leur
exécution. Nous donnerons quelques exemples de règles induites par la modification des données.
a) Ajout d’une colonne
Si la colonne est facultative, l’opération s’effectue sans contrainte. Si elle est obligatoire (not null), alors la table doit être vide ou la colonne doit être accompagnée
d’une valeur par défaut (default).
b) Suppression d’une colonne
Cette colonne ne peut intervenir dans la composition d’un identifiant ou d’une clé
étrangère. Si nécessaire, ces derniers doivent d’abord être supprimés.
c) Suppression d’une table
Si la table est référencée par une clé étrangère, alors une opération delete est
appliquée à chacune de ses lignes avant sa suppression. Cette suppression peut donc
être refusée si le delete mode de cette clé est no action et si la table référençante
contient au moins ligne dont la clé étrangère a une valeur non null.
d) Ajout d’un identifiant
Si la table n’est pas vide, les lignes doivent respecter la contrainte d’unicité.
e) Suppression d’un identifiant
Cette suppression n’est pas soumise à des conditions sur les données. Cependant,
cet identifiant ne doit pas être référencé par une clé étrangère.
f) Ajout d’une clé étrangère
Si la table n’est pas vide, les lignes doivent respecter la contrainte référentielle.
g) Autres opérations
En revanche, l’ajout d’une table, l’ajout et la suppression d’un index non identifiant
ainsi que la suppression d’une clé étrangère ne sont pas soumis à conditions.
Précédent

- 120/436

Suivant