Séparation du logique et du physique
Bonsoir,
Citation:
Envoyé par
Artemus24
Je crois que vous confondez le rôle joué par la 'primary key' avec le rôle de l'indexe.
En l’occurrence, il faut séparer soigneusement le niveau relationnel et le niveau physique.
1) Le niveau relationnel ressortit aux mathématiques appliquées (voyez l’algèbre relationnelle), et à la logique des prédicats (voyez le calcul relationnel de tuples et le calcul relationnel de domaines).
Le niveau relationnel n’est pas concerné par les aspects spatio-temporels bassement matériels (coût de stockage, durée des opérations), il s’occupe du QUOI, en l’occurrence des ensembles que sont les relations (au sens du modèle relationnel de données défini par Ted Codd en 1970, cf. A Relational Model of Data for Large Shared Data Banks). Qu’une opération relationnelle consomme zéro ou un temps et un espace un infini n’est pas du ressort de ce niveau.
Par ailleurs, l’ordre de rangement des éléments dans un ensemble n’ayant pas de sens, cela vaut évidemment pour une relation et ses n-uplets.
Dans ce contexte, la clé primaire est un concept relationnel qui a été défini par Ted Codd dans son article fondateur de 1970, et dont le rôle est de garantir l’intégrité d’entité. En réalité, il n’y a plus qu’en SQL qu’on parle de clé primaire, cette clé qui serait « plus égale » que les autres, ravalées au rang de clés alternatives : il y a belle lurette que le qualificatif de « primaire » a disparu de la théorie relationnelle, où l’on ne trouve que des clés candidates (ou plus simplement clés), qui continuent à jouer implicitement leur rôle quant à l’intégrité d’entité.
2) Le niveau physique ressortit notamment à la gestion de l’espace et du temps, à avoir le coût de stockage, la durée des opérations, et c’est seulement là que le COMMENT et le COMBIEN ÇA COÛTE ont un sens.
Un index est un concept physique, un fichier (VSAM LDS par exemple en DB2) dont l’objet est surtout de réduire le plus possible le temps d’accès aux données (sans préjuger du ralentissement provoqué dans les opérations de mise à jour). Accessoirement, un index peut être qualifié de UNIQUE, de PRIMAIRE, ou tout ce que vous voulez, et sous le capot les éditeurs de SGBD, qui sont pragmatiques, s’en servent pour garantir l’unicité des valeurs des clés primaires, mais c’est un moyen (efficace), on est dans la série des « comment, sous le capot, implémenter au mieux une fonctionnalité, au moindre coût, avec un bon fer à souder ».