Accueil > Bases de données relationnelles et indexation du contenu > Clé primaire, clé étrangère et les relations qui existe entre les (...)

Clé primaire, clé étrangère et les relations qui existe entre les tables.

lundi 25 janvier 2010, par AMRI

Dans cette article je vais répondre à des question que l’on se pose souvent (et je me suis moi-même posées) lorsque l’on débute dans les bases de données, notamment lors de création de tables et établir les liens qui existe entre chacune d’elles.

        1) Comment choisir le clef d'une table?
        2) Qu'elle différence existe t-il entre clé étrangère et clé primaire?
        3) Comment relier les informations contenues dans différentes tables d'une même bases de             données?

Clé primaire(celle que l’on choisie pour une table)

        La clé primaire d'une table peut être formé d'un ou plusieurs champs, afin qu'ils n'existe pas de doublons c'est à dire que chaque enregistrement des champs qui compose la clé primaire doit être unique. (Par exemple le numéro étudiant est unique pour chaque étudiants il fera donc une bonne clé primaire → sans doublon)
        Une clé primaire peut aussi être un champ numérique auto-incrémenté, c'est-à-dire que les enregistrements sont numérotés automatiquement dans la table. Le premier enregistrement aura le numéro 1 et ainsi de suite.
ATTENTION:  Pas de réel en clef primaire !!!
On reconnaît une clé primaire dans  une table par ce qu'elle est soulignée.

Clé étrangère

         Une  clé étrangères est une clé qui représente la valeur de la clé primaire d'une table connexe. Elles servent à établir des relations entre les tables, ce sont elles qui permettent les jointures entre les tables. Contrairement aux clés primaires, qui doivent être uniques, les clés étrangères peuvent prendre plusieurs fois la même valeur dans une table.

Index

        Un index est une liste ordonnée qui permet un accès rapide à un enregistrement  spécifique d'une base de données à partir de la valeur de l'un des éléments de cet enregistrement (cela signifie que l'on ne va pas parcourir toute la base pour trouver une valeur).  Il ne peut être associé ni à une clé primaire ni à une clé étrangère. Une clé primaire est toujours définie comme un index, par contre un index n'est pas forcément une clé primaire.

Type de relations entre les tables

1__* : un enregistrement d'une table est en relation avec plusieurs enregistrements d'une
autre table.

1__1 : un enregistrement d'une table est en relation avec un seul enregistrement d'une autre table.

*__* : dans ce cas, il est nécessaire de créer une table intermédiaire.  

        Clé primaires, clé étrangères et index sont d'importante notions à connaître avant de se lancer créations de tables et l'élaboration d'un schéma UML,qui est la base, afin de ne pas revenir sur les enregistrement effectués.