1) Dans le cadre du Modèle Relationnel de Données, le concept de clé primaire est obsolète. En revanche il perdure dans le modèle SQL (disons la norme SQL).
2) Dans le cadre du Modèle Relationnel de Données, la notion d’enregistrement n’existe pas. En effet, il s’agit d’une notion de niveau fichier. Dans le cadre de ce modèle, on parle de n-uplet (
tuple en anglais).
3) Pour la même raison, dans le cadre du Modèle SQL, la notion d’enregistrement n’existe pas, on parle alors habituellement de ligne (
row).
4) Le concept de table fait partie du Modèle SQL. Dans le cadre du Modèle Relationnel de Données, on parle de variable relationnelle, en abrégé
relvar. Une relvar étant une variable, elle prend des valeurs qui sont des ensembles particuliers appelés relations. Comme dans le cas d’un programme écrit en C++ ou en Cobol, une variable se situe dans le temps et dans l’espace. Au contraire, une relation ne se situe ni dans le temps ni dans l’espace, tout comme les nombres 1,2, 3, etc. Voyez Platon ou Gödel à ce sujet.
Par ailleurs, une relvar est constituée :
D’un en-tête qui est un ensemble, celui de ses attributs.
D’un corps qui est l’ensemble de ses tuples.
5) La définition donnée de la clé primaire est incomplète, l’unicité n'e suffit pas, il y a aussi l’irréductibilité (voir ci-dessous).
Passons aux définitions des types de clés.Clé candidate
Une clé candidate est un sous-ensemble d’attributs K de l’en-tête d’une relvar R, respectant les deux contraintes suivantes :
Unicité. Deux n-uplets distincts de R ne peuvent avoir même valeur de K.
Irréductibilité (ou minimalité). Il n’existe pas de sous-ensemble strict de K garantissant la règle d’unicité.
Une relvar peut être dotée de plus d’une clé candidate. Par exemple, une hypothétique relvar Membre des membres de developpez.com peut être dotée des clés candidates : {MbrId} (identifiant de la relvar), {Pseudonyme} (pseudonyme de chaque membre), {AdrCourriel} (adresse de courriel), etc. Notez l’emploi des accolades, car il s’agit d’ensembles (singletons dans cet exemple, mais ensembles quand même).
Surclé
Le concept de surclé intervient souvent dans la théorie de la normalisation, il est donc important d’en faire mention. La surclé est un surtype de la clé candidate :
Une surclé est un sous-ensemble d’attributs K de l’en-tête d’une relvar R, respectant la contrainte d’unicité, mais pas nécessairement celle d’irréductibilité. Une clé candidate est donc une surclé, mais astreinte à respecter la contrainte d’irréductibilité.
N.B. On parle plutôt de surclé que de superclé, tout comme on parle plutôt de surhomme que de superhomme.
Clé primaireDans le cadre du Modèle SQL, une clé primaire est une clé candidate choisie comme telle parmi l’ensemble des clés candidates d’une table. Elle est choisie sur la base essentiellement de deux critères qui ne sont pas imposés, mais plus que vivement recommandés :
Stabilité : une clé primaire ne doit pas pouvoir changer de valeur.
Absence de signification : ne pas répéter les erreurs du passé à ce sujet.
Dans l’exemple ci-dessus, par hypothèse {MbrId} garantit ces deux critères et sera élue Miss clé primaire. Ses dauphines, à savoir {Pseudonyme} et {AdrCourriel} seront ravalées au rang de clés
alternatives.