> Tech > Opérations de mise à  jour

Opérations de mise à  jour

Tech - Par Renaud ROSSET - Publié le 24 juin 2010
email

Les étapes d'une opération de mise à  jour sont les suivantes :

1. Appel du trigger exécuté avant la mise à  jour.

2. Vérification des contraintes de clé étrangère pour toutes les tables dépendantes qui spécifient l'option "On Update Restrict". Le système vérifie que la modification d'une colonne

Opérations de mise à  jour

de cette ligne ne laisse pas de lignes orphelines dans une table
dépendante.

3. Mise à  jour de la ligne et vérifications (par exemple, pour les données décimales
invalides) autres que les contraintes.

4. Appel du trigger exécuté après la mise à  jour.

5. Vérification des contraintes clés étrangères de toutes les tables dépendantes
qui spécifient l’option « On Update No Action ».

6. Vérification de toutes les contraintes de clé étrangère de cette table.

7. Vérification des contraintes de clé primaire, unique et de contrôle.

Dans cette séquence, on peut remarquer l’une des différences existant entre les
règles « On Update Restrict » et « On Update No Action » pour une contrainte de clé
étrangère : il existe une implication subtile mais importante liée au moment où
ces contraintes sont vérifiées. Actuellement, DB2 UDB ne prend pas en charge l’option
de clé étrangère « On Update Cascade » pour les mises à  jour comme il le fait pour
les suppressions.

Cependant, si la clé étrangère précise « On Update No Action », on peut mettre en
oeuvre sa propre action en utilisant un trigger exécuté après la mise à  jour. Pour
modifier par exemple toutes les valeurs de clés étrangères des lignes dépendantes
lorsqu’on change la clé primaire d’une ligne parent, on peut écrire un programme
déclencheur exécuté après la mise à  jour pour effectuer les modifications des
tables dépendantes. Ainsi, au moment où l’étape 5 vérifiera la table dépendante
à  la recherche de lignes sans correspondance, toutes les lignes dépendantes trouveront
leur équivalent dans les lignes parents mises à  jour.

Notez que l’on ne peut pas mettre en oeuvre cette approche en utilisant un trigger
exécuté avant la mise à  jour. Supposons que ce dernier tente de remplacer les
valeurs des clés étrangères des lignes dépendantes par la valeur de la nouvelle
clé primaire de la ligne parent. La ligne parent n’est pas encore modifiée. Aussi,
les mises à  jour des lignes dépendantes seront bloquées car les nouvelles valeurs
de leurs clés étrangères ne correspondent à  aucune ligne parent.

Par conséquent, étant donné que l’on doit utiliser un trigger exécuté après la
mise à  jour pour mettre en oeuvre une modification en cascade, il faut aussi utiliser
« On Update No Action » pour différer la vérification de la contrainte de clé étrangère
jusqu’à  ce que le programme exécuté après la mise à  jour soit terminé.

Téléchargez cette ressource

Comment sécuriser une PME avec l’approche par les risques ?

Comment sécuriser une PME avec l’approche par les risques ?

Disposant de moyens financiers et humains contraints, les PME éprouvent des difficultés à mettre en place une véritable stratégie de cybersécurité. Opérateur de services et d’infrastructures, Naitways leur propose une approche pragmatique de sécurité « by design » en priorisant les risques auxquelles elles sont confrontées.

Tech - Par Renaud ROSSET - Publié le 24 juin 2010