© Éditions Eyrolles
33
chapitre n° 1
Définition des données
Bilan
• Un index ralentit les rafraîchissements de la base (conséquence de la mise à jour de l’arbre
ou des bitmaps). En revanche il accélère les accès.
• Il est conseillé de créer des index sur des colonnes (majoritairement des clés étrangères)
utilisées dans les clauses de jointures (voir chapitre 4).
• Il est possible de créer des index pour toutes les colonnes d’une table (jusqu’à concurrence
de 16).
• Les index sont pénalisants lorsqu’ils sont définis sur des colonnes très souvent modifiées ou
si la table contient peu de lignes.
Destruction d’un schéma
Il vous sera utile d’écrire un script de destruction d’un schéma (j’entends « schéma » comme
ensemble de tables, contraintes et index composant une base de données et non pas en tant
qu’ensemble de tous les objets d’un utilisateur) pour pouvoir recréer une base propre. Bien
entendu, si des données sont déjà présentes dans les tables, et que vous souhaitez les garder, il
faudra utiliser une stratégie pour les réimporter dans les nouvelles tables. À ce niveau de
l’ouvrage, vous n’en êtes pas là, et le script de destruction va vous permettre de corriger vos
erreurs de syntaxe du script de création des tables.
Nous avons vu qu’il fallait créer d’abord les tables « pères » puis les tables « fils » (si des
contraintes sont définies en même temps que les tables). L’ordre de destruction des tables,
pour des raisons de cohérence, est inverse (il faut détruire les tables « fils » puis les tables
« pères »). Dans notre exemple, il serait malvenu de supprimer la table Compagnie avant la
table Pilote. En effet la clé étrangère compa n’aurait plus de sens.
Suppression d’une table (DROP TABLE)
Pour pouvoir supprimer une table dans une base, il faut posséder le privilège DROP sur cette
base. L’instruction DROP TABLE entraîne la suppression des données, de la structure, de la
description dans le dictionnaire des données, des index, des déclencheurs associés (triggers) et
la récupération de la place dans l’espace de stockage.
DROP [TEMPORARY] TABLE [IF EXISTS]
[nomBase.] nomTable1 [,[nomBase2.]nomTable2,...]
[RESTRICT | CASCADE]
Précédent

- 55/418

Suivant