ACCESS 07/ Chap 6 - RELATIONS ENTRE LES TABLES
1. L'INTERET DE LIER DES TABLES
Même étant isolées, les tables présentent des avantages, en particulier : informations structurées, saisie des données facilitée, application de tris et de filtres, affichage et sélection des données.
La création de relations est utile, elle offre des avantages supplémentaires :
- Reliées, les tables permettent de présenter un système encore mieux structuré, ainsi que des données plus cohérentes (notamment en appliquant « l'intégrité référentielle », cf. § 5 de ce chapitre).
- Représentées par des lignes, les relations permettent d'identifier facilement les champs correspondants.
- Les relations s'avèrent pratiques lors de l'élaboration des requêtes, ainsi que pour la réalisation de formulaires et d'états (création de sous-formulaires et de sous-états).
2. CHAMP IDENTIFIANT, CLE PRIMAIRE ET CLE ETRANGERE
Usuellement, une relation entre deux tables est représentée par une ligne qui part de la clé primaire d'une table, et qui arrive sur une autre table à la clé étrangère correspondante.
Les notions de champs identifiants et de clés seront expliquées en détail dans les paragraphes suivants.
Champs identifiants
Une table doit toujours contenir un champ ou un groupe de champs identifiant, d'où l'étude des champs identifiants dès l'étape de la création de la table (cf. chapitre 2 § 2 « Champs identifiants »).
La caractéristique d'un champ ou d'un groupe de champs identifiant est de permettre d'identifier un enregistrement de la table.
Table comportant un champ identifiant
Lorsqu'une table comprend un champ identifiant, une valeur de ce champ permet d'identifier l'enregistrement correspondant : connaissant une valeur du champ identifiant, on peut déduire les valeurs des autres champs de l'enregistrement.
Exemple
Dans une table LIVRE, un numéro de livre permet d'identifier le livre correspondant. Connaissant le numéro d'un livre, on peut déduire le titre, le numéro d'auteur et l'éditeur de ce livre (quand le champ est renseigné).
Table comportant un groupe de champs identifiant
Lorsqu'une table comprend un groupe de champs identifiant, un ensemble de valeurs des champs de ce groupe permet d'identifier l'enregistrement correspondant. Connaissant les valeurs de tous les champs du groupe, on peut déduire les valeurs des autres champs de l'enregistrement.
Le groupe de champs identifiant comporte uniquement les champs nécessaires à l'identification d'un enregistrement.
Exemple
Considérons la table EMPRUNT :
- EMPRUNT
- NoLivre
- NoPersonne
- DateEmprunt
- DateRetour
On suppose qu'une personne ne peut emprunter qu'une seule fois un même livre.
La table EMPRUNT a pour identifiant le groupe de champs composé de NoLivre et de NoPersonne.
Il est nécessaire et suffisant de connaître un numéro de livre et un numéro de personne pour identifier l'emprunt correspondant. On peut en déduire la date d'emprunt et la date de retour du livre (le champ DateRetour n'est pas renseigné si le livre n'a pas été rendu).
Supposons maintenant qu'une même personne puisse emprunter plusieurs fois le même livre, à des dates différentes. Le groupe de champs identifiant doit dans ce cas inclure également le champ DateEmprunt.
L'attribution d'une clé primaire
Sans que cela soit obligatoire, il est vivement conseillé d'attribuer une clé primaire à tout champ ou groupe de champs identifiant.
Il est usuel de désigner alors ce champ ou ce groupe de champ la « clé primaire » de la table.
Vérifications préalables à l'attribution d'une clé primaire
Avant d'attribuer une clé primaire à un champ ou un groupe de champs, vérifiez que :
- Le champ a le type NuméroAuto, Numérique ou Texte. Ce sont les seuls types acceptés pour une clé primaire.
- Le champ ou le groupe de champs permet d'identifier un enregistrement.
- Tous les enregistrements de la table ont ou doivent avoir une valeur pour ce champ.
- Les valeurs de ce champ sont et seront uniques.
Il est habituel de choisir NuméroAuto en type de champ identifiant.
Dans un champ de ce type, Access génère automatiquement les valeurs, donc il ne peut pas y avoir d'absence de valeur.
De plus, ces valeurs étant uniques, il n'y a pas de risque de « doublons », c'est-à-dire de valeurs identiques.
Attribuer une clé primaire
La table étant ouverte en Mode Création, pour attribuer une clé primaire à un champ ou à un groupe de champs, procédez ainsi :
- Désignez le champ ou le groupe de champs identifiant :
- S'il s'agit d'un champ identifiant : cliquez sur la ligne de champ concerné.
- S'il s'agit d'un groupe de champ identifiant : sélectionnez les lignes de tous les champs du groupe.
Si les lignes de champs ne sont pas juxtaposées, déplacez-les de sorte qu'elles le soient : cliquez sur une ligne, puis cliquez-glissez jusqu'à l'emplacement souhaité.
- A l'onglet Création, dans le groupe Outils, activez le bouton « Clé primaire ».
Une icône représentant une clé s'affiche :
- Pour un champ identifiant : l'icône s'affiche dans sa case d'en-tête. On peut dès lors désigner le champ comme « clé primaire de la table ».
- Pour un groupe de champs identifiant : l'icône s'affiche dans la case d'en-tête de chaque champ du groupe. C'est le groupe qui est clé primaire.
Création d'un index
(
)