|
Chapitre 17 :
les requêtes de maintenance |
|
|
1 – Introduction |
|
|||||||
|
|
|
Une
base de données évolue sans arrêt : de nouveaux enregistrements sont
introduits, d'autres sont archivés, d'autres sont modifiés, d'autres enfin
sont supprimés. Des contrôles, suivis éventuellement de corrections, sont
effectués. |
|
||||||
|
|
|
Deux
types de requête sont particulièrement utilisés pour ces opérations de
maintenance : |
|
||||||
|
|
|
|
|
||||||
|
|
|
Sont
supprimés ou modifiés les enregistrements qui répondent à certains critères. Ces opérations sont généralement
effectuées sur une seule table à la fois. Cependant, par le jeu des
relations, suppressions et modifications peuvent se répercuter en cascade
dans d'autres tables, si l'option correspondante a été choisie lors de la
création de la relation, après que l'intégrité référentielle eût été requise
(Cf. le chapitre 5). |
|
||||||
|
|
|
La
suppression est une opération qui s'effectue au niveau de l'enregistrement.
La mise à jour intervient souvent à un niveau plus fin : seuls certains
champs, dans certains enregistrements, sont concernés. |
|
||||||
|
|
|
Attention
! Une fois effectuées, suppressions et mises à jour sont irréversibles.
Avant d'effectuer une requête de ce type, il est indispensable d'effectuer
une copie des tables concernées, voire de la BDD toute entière. |
|
||||||
|
|
|
Bien
entendu, une opération de modification ou de suppression concernant un tout
petit nombre d'enregistrements ne justifie pas la création d'une
requête ; il suffit d'intervenir ponctuellement dans la table
considérée. Par contre, si le nombre d'opérations à effectuer croit, la
création d'une requête fait gagner du temps et diminuer le risque d'erreurs. |
|
||||||
|
|
|
Comme
il est d'usage dans tout ce tutoriel (encore appelé "cours en
ligne" ou tutorial), nous utiliserons le SGBD Access comme support
pratique. |
|
||||||
|
|
|||||||||
|
|
2 - La suppression |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
La
requête de suppression opère sur une table. Elle supprime les enregistrements
(ou lignes) répondant à un ou plusieurs critères. Dans la figure ci-dessous,
les enregistrements répondant à ces critères sont colorés en rouge ; la
requête les fait disparaitre irrémédiablement. |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
A
titre d'exemple, l'opération de suppression peut être utile dans les cas
suivants : |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
Supposons,
à titre d'exemple, que nous voulions éliminer d'une table
"Factures" toutes les factures soldées avant le 1er janvier de
cette année (2002). Dans la fenêtre "Base de données" nous
sélectionnons l'objet "Requêtes", puis nous double-cliquons sur
"Créer une requête en mode Création". Dans la boite "Afficher
la table", nous sélectionnons la table "Factures", nous
l'ajoutons et nous fermons. Dans la fenêtre "Microsoft Access",
nous cliquons sur l'icône |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
<#01/01/2002# |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
l'opérateur
< signifiant "antérieur à", et les signes # rappelant que nous
opérons sur une date. |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
Attention
! Si nous basculons en mode feuille de données en cliquant sur l'icône |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
Si
nous exécutons la requête (icône |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
L'écriture
d'un critère de suppression doit tenir compte du type de données du champ
auquel il s'applique. Nous associerons sous peu à ce chapitre des annexes
détaillant les règles d'écriture des critères pour les différents cas. |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
3 - La mise à jour |
|
||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
Les
informations contenues dans une BDD peuvent avoir besoin d'une mise à jour.
Ainsi, un taux de TVA peut varier, de même que le prix de vente des produits
et services de l'entreprise, etc. Mais la mise à jour peut être soumise
à un ou plusieurs critères, s'appliquant ou non au champ susceptible
d'être modifié. Par exemple, une prime peut être versée à l'ancienneté, et
donc dépendre de la date d'embauche du salarié (laquelle figure dans la table
du personnel de l'entreprise). Par conséquent, la mise à jour s'applique à
une table, et concerne soit une colonne complète, soit seulement certains
enregistrements de la colonne (colorés en rose dans la figure ci-dessous). |
|
|||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
L'actualité
proche nous fournit un excellent exemple mise à jour simple : lors du
passage à l'euro, tous les prix contenus dans les base de données durent être
convertis de francs en euros à l'aide du fameux coefficient 6,55957. Pour
traiter ce cas, créons une table "Produits" contenant trois champs
: le code, le nom, et le prix unitaire HT de chaque produit. Les types de
données correspondants sont : NuméroAuto, texte, et numérique (réel,
deux décimales, pas de format particulier). Saisissons quelques
enregistrements, et créons une copie de la table ainsi remplie. |
|
|||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
Créons
une requête en mode création. Introduisons la table "Produits",
cliquons sur l'icône , et sélectionnons
"Requête Mise à jour" dans la liste déroulante. Introduisons le
champ "Prix_unitaire" dans la grille et, sur la ligne "Mise à
jour :", saisissons l'expression représentée dans la figure ci-dessous.
Laissons la ligne "Critères :" vide, puisque le passage des francs
aux euros concerne tous les enregistrements de la colonne sans exception. |
|
|||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
Attention
! si nous passons en mode feuille de données à l'aide de l'icône
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
Si
nous exécutons la requête, nous constatons que tous nos prix ont bien été
convertis en euros. Mais prenons garde de ne pas exécuter la requête une
deuxième fois ! |
|
|||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
Cet
exemple de requête "mise à jour" est particulièrement simple, parce
qu'il s'applique à tous les enregistrements sans distinction. On peut créer
facilement un exemple avec critère, comme le montre
la figure ci-dessous. La requête portera à 20,6 % le taux de TVA de
19,6 %, mais ne touchera pas aux autres taux. |
|
|||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
4 - Conclusion |
|
|
|
|
|
Les
bases de données nécessitent des opérations de maintenance. Pour réaliser ces
dernières, on utilise des requêtes, et plus particulièrement deux d'entre
elles, la suppression et la mise à jour. |
|
|
|
|
Ces
requêtes ne créent pas de table, elles modifient les tables existantes. Ces
modifications étant irréversibles, il est indispensable d'effectuer des
copies de sauvegarde avant d'exécuter les requêtes. |
|
|
|
|
Quelles
que soient les précautions prises, il est parfois difficile d'éviter que des
informations soient saisies deux fois. La recherche et l'élimination des
doublons est donc également utilisée pour la
maintenance des BDD. |
|
|
|
|||