|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : septembre 2006 Messages : 4 ![]() |
Bonjour !
en train de réviser mes cours DB2, je bute sur un point : Lors d'un "create table" avec primary key on nomme les colonnes faisant partie de l'index primaire, il est précisé qu'il faut ensuite créer un index primaire, s'agit il de l'ordre "create unique index" qui reprend ces mêmes colonnes ? Si c'est le cas quel est le but de faire un "primary key" avant ? Je ne vois que pour le référencer comme "foreign key" dans une autre table... Autre question : faut-il toujours utiliser l'option "cluster" sur un index unique ? est ce lié au volume ou à l'accés ? A + |
|
|
00
|
|
|
#2 | ||
|
Membre Expert
![]() ![]() François DurandSpécialiste Delivery Mainframe IBM Inscription : octobre 2005 Messages : 1 097 ![]() |
Citation:
Pour moi l'interêt principal est de faire porter la contrainte de clé primaire à la création de la table. Tant que l'index unique associé à la clé primaire n'est pas créé DB2 considère la table comme indisponible. Alors que si on crée la table sans définir de clé primaire dans un premier temps, puis un index unique dans un second temps, rien n'interdit en théorie d'insérer des lignes en double dans l'intervalle. La création de l'index unique dans ce cas de figure deviendra alors impossible. Un autre interêt est documentaire. Dans le cas de la présence de plusieurs index uniques, on peut savoir lequel a été choisi par le concepteur de la table comme clé primaire en interrogeant le catalogue. Enfin, je trouve bon de respecter une des régles du modèle relationnel qui stipule que toute table doit avoir une clé primaire. A contrario, la suppression de l'index associé à la clé primaire ne sera pas possible directement. Il faudra d'abord supprimer la contrainte de clé primaire au niveau de la table. Citation:
L'index CLUSTER (index plaçant ou de rangement en français) définit l'ordre dans lequel DB2 va tenter d'insérer la ligne dans la table et ceci en fonction de l'espace libre (FREESPACE) disponible. C'est aussi en fonction de l'index CLUSTER qu'on détermine qu'une table est désorganisée ou pas. L'utilitaire de réorganisation (IBM ou autre) remet toutes les lignes de la table dans l'ordre de l'index CLUSTER. De par sa définition même, il n'y a qu'un seul index CLUSTER par table. L'index unique définit une contrainte d'unicité sur la ou les colonnes le composant. Plusieurs index uniques sont possibles sur une seule table. |
||
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : septembre 2006 Messages : 4 ![]() |
J'y vois mieux maintenant, grand merci !
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com