Salut à tous,
Comme pas mal de monde, je fais du SQL presqu'au quotidien depuis presqu'une vingtaine d'année mais cette semaine, je me suis (re-)posé une question de débutant à laquelle je n'ai pas réussi à trouver une explication claire dans la norme.
Bien sûr, je sais à quoi sert une clé, et en particulier une clé primaire. Elle permet de désigner un champ ou un agrégat de champ qui, à eux seuls, permettent de distinguer de façon déterministe un enregistrement de la table. Cela implique notamment l'unicité et la non-nullité de la valeur de cette clé. Le fait de désigner une clé principale permet également d'indiquer la méthode préférentielle à suivre pour explorer la table concernée.
Par contre, au niveau du langage SQL, PRIMARY KEY n'est pas un simple raccourci pour une déclaration combinée du style UNIQUE NOT NULL INDEX. C'est aussi un qualificatif qui apparait clairement dans la description d'une table, sur à peu près tous les SGBD. Et à ma connaissance, il n'existe pas de déclaration REGULAR KEY pour définir d'autres clés officielles sur la même table (ce qui ne nous empêche pas de le faire quand même en utilisant les clauses habituelles).
Certes, elle a été définie très tôt par Codd, mais a-t-elle un impact technique au sein des SGBD habituellement utilisés aujourd'hui, autre que ceux décrits ci-dessus, ou bien cette déclaration est-elle purement consultative au delà de la table qu'elle concerne ?
Merci à tous !
Partager