Informatique


L'identificateur (clé)

Aller à

Le cas pratique

Soit l'entité PROFESSEURS, celle-ci regroupe les professeurs de l'école.

Extrait de la table PROFESSEURS:

nom_propreno_prodatenaiss_pro
TartempionFlorimon29/03/1983
DoeJohn04/05/1960
VanpiperzeelSam21/07/1970
TartempionFlorimon29/03/1983
VancleemputPetronela14/10/1953


Anomalies

de recherche

Il y a deux Tartempion, ils ont le même prénom et ont la même date de naissance.
C'est possible!
C'est aussi possible d'habiter la même adresse (un immeuble par exemple), d'être né dans la même maternité, etc.

La question est simple: comment savoir à quel Tartemion on a à faire?


Solution

On utilise une clé.

Soit E un ensemble d'attributs (1 à n) et i inclus dans E.
i est une clé (ou identifiant) si quel que soit l'attribut a appartenenant à E, i --> a.

En conséquence de la définition:
La clé (ou identifiant) est un attribut (ou un ensemble d'attributs) qui permet(tent) de distinguer un tuple de l'entité de manière unique et sans aucune ambiguïté par rapport à l'ensemble des autres tuples.

On a pris une valeur numérique automatique (auto-increment), mais dans le cas des personnes, le numéro national pet être une bonne idée.

id_pronom_propreno_prodatenaiss_pro
1TartempionFlorimon29/03/1983
2DoeJohn04/05/1960
3VanpiperzeelSam21/07/1970
4TartempionFlorimon29/03/1983
5VancleemputPetronela14/10/1953

Maintenant, nous remarquons que chaque attribut de l'entité est en DF par rapport à la clé.

En effet:
id_pro ------>nom_pro (l'id détermine à coup sur un et un seul nom!)
id_pro ------>preno_pro (l'id détermine à coup sur un et un seul prénom!)
id_pro ------>datenaiss_pro (l'id détermine à coup sur une et une seule date de naissance!)


La clé est naturelle ou artificielle

Principe

Une clé primaire est choisie parmi les clés naturelles candidates comme, par exemples, le n°national ou le n° de carte d'identité.
Mais il arruive souvent qu'aucune clé naturelle ne s'impose, on choisira dès lors une clé artificielle

Une clé naturelle est donc un attribut connu et compréhensible par tous qui est choisi comme clé.
Une clé artificielle est un attribut que l'on ajoute pour avoir une clé.

Bien réfléchir!

La clé primaire d'une table doit se placer sur des champs qui permettent d'identifier chaque ligne de la table. Il peut donc sembler intéressant de placer une clé primaire sur un numéro de sécurité sociale par exemple, mais on préfèrera utiliser une clé primaire complètement indépendante des données représentées, afin de s'assurer que le champ est toujours rempli et n'évolue pas dans le temps.

Par exemple le n° de sécurité sociale est une mauvaise clef en générale : un individu étranger qui arrive sur le sol belge est doté d'une immatriculation provisoire et ne connaît son numéro définitif que plusieurs mois après avoir rempli les conditions requises par l'administration.
Par exemple l'immatriculation d'un véhicule est une mauvaise clef : en effet, du fait de la fiscalité sur les véhicules à moteur, les sociétés n'hésitent pas à faire immatriculer leur parc de véhicules dans la région où les taxes sont les moins élevées. Cette immatriculation peut donc être amenée à changer.

On veillera donc à prendre une clef totalement indépendante des attributs ordinaires de l'entité.
De plus une clef a intérêt à être la plus courte possible afin que son stockage soit limité à quelques octets dans les fichiers et donc le temps de recherche le plus rapide possible.

Le plus simple consiste donc à introduire dans le descriptif de l'entité une clef strictement « informatique » qui se résumera en général à un numéro (entier long) que l'on pourra incrémenter automatiquement.

La clef (ou identifiant) est :
  • obligatoire ;
  • unique;
  • non nulle;
  • indépendante de l'environnement (vrai quelle que soit les modification d'un règlement administratif par exemple) ;
  • stable, elle ne peut évoluer en fonction d'une autre information (le temps par exemple)
  • sans mise à jour en cascade (dans le cas par exemple de la suppression d'une occurrence!);

Une entité ou association est en 2NF lorsque celle-ci est en 1NF et que ses attributs sont en DF par rapport à l'entièreté de la clé.