3.8 Modification et contraintes d’intégrité
43
© Dunod – La photocopie non autorisée est un délit.
3.8 MODIFICATION ET CONTRAINTES D’INTÉGRITÉ
Les propriétés structurelles (identifiant, contrainte référentielle, colonne obligatoire/
facultative) associées aux données doivent être respectées à tout instant; elles constituent donc des contraintes imposées aux opérations de modification de ces
données. Ajouter une ligne, supprimer une ligne ou modifier une valeur de colonne
d’une ligne sont des opérations qui ne sont autorisées que si ces propriétés sont
toujours respectées par les données après l’opération. Si ces propriétés sont violées,
on dira que les données ont perdu leur intégrité. Ces propriétés constituent dès lors
des contraintes d’intégrité. Nous examinerons brièvement l’impact de ces
contraintes sur les opérations de modification du contenu d’une base de données.
3.8.1 Les contraintes d’unicité (identifiants)
Un identifiant constitue une contrainte d’unicité imposant qu’à tout instant les lignes
d’une table possèdent des valeurs distinctes pour une ou plusieurs colonnes. Il ne
peut exister, à aucun moment, plus d’une ligne de CLIENT ayant la même valeur de
NCLI.
• Création d’une ligne : il ne peut exister de ligne possédant la même valeur de
l’identifiant.
• Suppression d’une ligne : pas de contrainte.
• Modification de l’identifiant d’une ligne : il ne peut exister de ligne possédant
la nouvelle valeur de l’identifiant.
3.8.2 Les contraintes référentielles (clés étrangères)
Une contrainte référentielle précise que certaines colonnes d’une table, appelées clé
étrangère, doivent à tout instant, pour chaque ligne, contenir des valeurs qu’on
retrouve comme identifiant primaire d’une ligne dans une autre table 12 . C’est ainsi
que la table DETAIL est soumise à deux contraintes référentielles. La première
indique que toute valeur de NCOM doit identifier une ligne de COMMANDE. La
seconde indique que toute valeur de NPRO doit identifier une ligne de PRODUIT.
Les règles qui régissent les opérations de modification des données sont plus
complexes que pour les autres contraintes. Nous raisonnerons sur les tables CLIENT
et COMMANDE (figure 3.11), cette dernière faisant l’objet d’une contrainte référentielle, puisque la valeur de NCLI de toute ligne de COMMANDE doit être présente
dans la colonne NCLI d’une ligne CLIENT (en termes de la réalité de l’entreprise,
toute commande doit appartenir à un client enregistré). On ignorera dans cette
analyse l’impact des autres contraintes référentielles du schéma sur les opérations.
12. Il peut d’ailleurs s’agir de la même table.
43
© Dunod – La photocopie non autorisée est un délit.
3.8 MODIFICATION ET CONTRAINTES D’INTÉGRITÉ
Les propriétés structurelles (identifiant, contrainte référentielle, colonne obligatoire/
facultative) associées aux données doivent être respectées à tout instant; elles constituent donc des contraintes imposées aux opérations de modification de ces
données. Ajouter une ligne, supprimer une ligne ou modifier une valeur de colonne
d’une ligne sont des opérations qui ne sont autorisées que si ces propriétés sont
toujours respectées par les données après l’opération. Si ces propriétés sont violées,
on dira que les données ont perdu leur intégrité. Ces propriétés constituent dès lors
des contraintes d’intégrité. Nous examinerons brièvement l’impact de ces
contraintes sur les opérations de modification du contenu d’une base de données.
3.8.1 Les contraintes d’unicité (identifiants)
Un identifiant constitue une contrainte d’unicité imposant qu’à tout instant les lignes
d’une table possèdent des valeurs distinctes pour une ou plusieurs colonnes. Il ne
peut exister, à aucun moment, plus d’une ligne de CLIENT ayant la même valeur de
NCLI.
• Création d’une ligne : il ne peut exister de ligne possédant la même valeur de
l’identifiant.
• Suppression d’une ligne : pas de contrainte.
• Modification de l’identifiant d’une ligne : il ne peut exister de ligne possédant
la nouvelle valeur de l’identifiant.
3.8.2 Les contraintes référentielles (clés étrangères)
Une contrainte référentielle précise que certaines colonnes d’une table, appelées clé
étrangère, doivent à tout instant, pour chaque ligne, contenir des valeurs qu’on
retrouve comme identifiant primaire d’une ligne dans une autre table 12 . C’est ainsi
que la table DETAIL est soumise à deux contraintes référentielles. La première
indique que toute valeur de NCOM doit identifier une ligne de COMMANDE. La
seconde indique que toute valeur de NPRO doit identifier une ligne de PRODUIT.
Les règles qui régissent les opérations de modification des données sont plus
complexes que pour les autres contraintes. Nous raisonnerons sur les tables CLIENT
et COMMANDE (figure 3.11), cette dernière faisant l’objet d’une contrainte référentielle, puisque la valeur de NCLI de toute ligne de COMMANDE doit être présente
dans la colonne NCLI d’une ligne CLIENT (en termes de la réalité de l’entreprise,
toute commande doit appartenir à un client enregistré). On ignorera dans cette
analyse l’impact des autres contraintes référentielles du schéma sur les opérations.
12. Il peut d’ailleurs s’agir de la même table.
