mosprepaPréparez votre certification
Microsoft Office Specialist

MS Access 2013

Gérer les relations et les clés

Les tables forment la colonne vertébrale d'une base de données. Chaque table contient les informations relatives à un sujet spécifique de telle façon qu'il n'y ait pas de redondance de données dans la base. Pour pouvoir extraire des informations qui se trouvent dans des tables différentes, celles-ci doivent être jointes par des relations qui forment une sorte de passerelles entre les tables concernées.

Conformément aux compétences évaluées dans l'examen 77-424 de la certification MOS, on va voir les points suivants :

  1. Modes d'affichage d'une table
  2. Définition des champs de clé primaire
  3. Définition des clés étrangères
  4. Création et modification des relations
  5. Affichage des relations
  6. Modification des références entre les tables
  7. Respect de l'intégrité référentielle

Recevez ce cours au format PDF en envoyant un message ici

Téléchargez la base de données ici pour suivre le cours

Modes d'affichage d'une table

Une table peut s'ouvrir en mode Feuille de données (ou Mode Page), c'est le mode par défaut qui s'ouvre lorsqu'on double-clique sur son icône dans le volet de navigation, comme elle peut s'ouvrir en mode Création accessible par un clic droit. Le passage d'un mode d'affichage à un autre se fait en utilisant le clic droit ou bien en passant par le bouton Affichage du groupe Affichage de l'onglet ACCUEIL, lorsque la table est ouverte.

Gérer les relations et les clés

Mode feuille de données

Le mode feuille de données (ou mode page), affiche le contenu de la table sous forme d'un tableau avec des colonnes et des lignes. Les colonnes forment les champs et lignes forment les enregistrements. La case formée par l'intersection d'un champ avec un enregistrement, contient la valeur de ce champ pour cet enregistrement.

Gérer les relations et les clés

Le mode page permet un certain nombre de manipulations sur les données telles que l'ajout, la suppression, le tri, le filtrage etc.

Mode création

Le mode création affiche la structure de la table. Il permet le paramétrage des types des données ainsi que la définition des propriétés des champs.

Gérer les relations et les clés

L'animation suivante montre les différentes méthodes pour basculer d'un mode d'affichage à l'autre.

Gérer les relations et les clés

Définition des champs de clé primaire

Une Clé primaire est un champ (ou un ensemble de champs) qui définit de manière unique un enregistrement de la table. Exemple le matricule d'une voiture peut bien servir comme clé primaire pour une table rassemblant des voitures de différentes marques. Ainsi, deux voitures d'une même marque, d'un même modèle et même, de couleurs identiques, sont différenciées par leurs matricules. Un autre exemple, pour distinguer des personnes portant le même Nom et le même Prénom, on utilise le Numéro de leurs cartes d'identité, ce numéro étant unique pour chaque personne, il permet de supprimer toute ambiguïté.

Une clé primaire peut prendre trois formes :

  • Une clé simple : formée d'un seul champ de type texte ou numérique
  • Une clé composée : dans le cas où un seul champ ne peut pas assurer le rôle de la clé, on peut utiliser plusieurs champs (deux champs, rarement plus)
  • Un numéroAuto : C'est une valeur qui s'auto-incrémente à chaque fois qu'un enregistrement est ajouté à la table. C'est un moyen simple et sûr pour créer une clé primaire.

Important :

Une clé primaire ne supporte pas deux choses :

  • Les doublons : On ne doit jamais avoir une même valeur de clé primaire pour deux enregistrements différents.
  • Une valeur vide : Access n'accepte pas une valeur vide pour un champ clé primaire.

Les étapes ci-après montrent comment désigner le champ codeModule comme clé primaire :

  1. Ouvrir la table en mode création
  2. Sélectionner le champ (ou les champs) qui formeront la clé
  3. Dans le groupe Outils de l'onglet Création, cliquer sur le bouton Créer clé primaire, une clé vient s'ajouter à gauche du champ (des champs) concerné (s)

Gérer les relations et les clés

On peut aussi définir un champ (des champs) comme clé primaire en le(s) sélectionnant puis un clic droit et choisir la ligne Clé primaire dans le menu contextuel qui apparait.

Gérer les relations et les clés

Définition des clés étrangères

On voudrait créer une relation entre la table Modules et la table Niveaux. Ces deux tables ont quelque chose de particulier, c'est que, un module ne peut avoir qu'un seul niveau comme correspondant (un module ne peut pas être à la fois niveau Specialist et niveau Expert), alors que, un niveau peut avoir plusieurs modules comme correspondants, voir le diagramme des relations, suivant.

Gérer les relations et les clés

Pour pouvoir créer la relation, il faut qu'il y ait un champ en commun entre les deux tables. Dans ce cas de figure, c'est le champ codeNiveau de la table Niveaux qui va migrer vers la table Modules comme clé étrangère et ainsi former le champ commun entre les deux tables.

Gérer les relations et les clés

C'est quoi une clé étrangère

Une clé étrangère c'est la clé primaire d'une table, introduite dans une autre table pour y faire référence. De cette manière, les deux tables auront un champ en commun et on pourra les lier par le biais de ce champ.

Gérer les relations et les clés

Créer une clé étrangère

On va donc ajouter manuellement le champ codeNiveau dans la table Modules et ce, en l'ouvrant en mode création. Le champ homologue dans la table Niveaux étant de type NuméroAuto, on doit veiller que le nouveau champ à créer soit du même type. Une clé étrangère ne pouvant pas être un NuméroAuto, on va lui attribuer le type le plus proche, soit Numérique entier long.

Gérer les relations et les clés

Le nouveau champ étant ajouté comme clé étrangère à la table Modules, les deux tables ont maintenant ce champ en commun et on va pouvoir les lier.

Gérer les relations et les clés

Création et modification des relations

Le rôle des relations est de former des passerelles entre les tables et ainsi permettre à Access d'aller chercher les informations là où elles se trouvent dans la base. De cette manière, dans les bases de données relationnelles, on évite les répétitions (les redondances) des informations.

À ce stade, on n'est pas encore en mesure de créer une relation "forte" entre la table Niveaux et la table Modules, pour cause, le champ codeNiveau n'est pas encore désigné comme clé primaire dans la table Niveaux.

Travail à faire :

Définissez le champ codeNiveau comme clé primaire de la table Niveaux

Types des relations

Trois types de relations peuvent exister entre deux tables :

  • Relation 1 à plusieurs : Un élément de la première table peut être en relation avec plusieurs élément de la seconde table, mais un élément de la deuxième table ne peut être en relation qu'avec un seul élément de la première. Par exemple, la relation entre la table Niveaux et la table Modules, un module ne peut appartenir qu'à un seul niveau, alors qu'un niveau peut correspondre à plusieurs modules.
  • Relation plusieurs à plusieurs : Ce cas de figure est illustré par la relation entre la table Modules et la table Candidats. Un candidat peut passer l'examen de plusieurs modules et l'examen d'un module peut être passé par plusieurs candidats. Pour représenter cette relation, on va devoir créer une table intermédiaire et qu'on va appeler Examens dans laquelle on va ajouter la clé primaire de la table Candidats et celle de la table Modules. Ces deux clés introduites, pourraient former ensemble, la clé primaire de cette table intermédiaire. En plus de ces deux champs, on va créer le champ dateExamen pour stocker la date de passation de l'examen, et le champ noteExamen pour stocker la note reçue par le candidat.
  • Relation 1 à 1 : Un élément de la première table ne peut avoir comme correspondant qu'un seul élément de la deuxième table, et vice versa. C'est un cas rarement rencontré.

Affichage des relations

Pour ouvrir la fenêtre des relations, on active l'onglet OUTILS DE BASE DE DONNÉES puis dans le groupe Relations, on clique sur le bouton Relations.

Gérer les relations et les clés

Le fait de cliquer sur ce bouton, ouvre la page Relations et ajoute un nouvel onglet CRÉER qui contient des outils de manipulation des relations.

Gérer les relations et les clés

La page des relations contient déjà les tables Modules, Examen et Candidats, liées entre-elles. Il manque la table Niveaux que nous allons ajouter par le biais du bouton Afficher la table du groupe Relations sous le nouvel onglet CRÉER comme le montre l'animation suivante.

Gérer les relations et les clés

La table Niveaux est maintenant ajoutée à la page des relations, il reste à la lier avec la table Modules

Gérer les relations et les clés

Créer une relation

Maintenant que les deux tables ont le champ codeNiveau en commun et que ce champ est désigné comme clé primaire dans la table Niveaux et comme clé étrangère dans la table Modules, on peut créer la relation en suivant les étapes ci-dessous :

Si vous n'avez pas encore ajouté la table Niveaux à la page Relations, exécutez les étapes 1 à 4.

  1. Activer l'onglet OUTILS DE BASE DE DONNÉES
  2. Dans le groupe Relations, cliquer sur le bouton Relations pour ouvrir l'onglet CRÉER
  3. Cliquer sur le bouton Afficher la table pour ouvrir la boite de dialogue qui porte le même nom
  4. Dans cette boite, sélectionner la table Niveaux, puis cliquer sur le bouton Ajouter. Faire de même pour la table Modules puis cliquer sur le bouton Fermer pour fermer la boite de dialogue. Cette opération a pour effet d'ajouter les deux tables à la zone de travail
  5. Cliquer sur le champ codeNiveau dans l'une des deux tables et le faire glisser sur son homologue dans l'autre table
  6. Dans la nouvelle boite de dialogue qui apparait, cliquer sur le bouton Créer

Gérer les relations et les clés

Gérer les relations et les clés

Modifier une relation

Un double-clic sur le trait de la relation, ouvre la boite de dialogue Modifier des relations qui permet de modifier le paramétrage de la relation. Cette même boite de dialogue est accessible par un clic droit sur le trait de la relation puis Modifier une relation.

Gérer les relations et les clés

Cette opération ouvre la boite de dialogue Modifier des relations qui permet d'apporter des modifications concernant le paramétrage de la relation, notamment :

  • Changer les champs à mettre en relation
  • Appliquer l'intégrité référentielle
  • Modifier le type de jointure

Gérer les relations et les clés

Vous pouvez aussi ouvrir cette boite de dialogue en passant par l'onglet CRÉER (une fois la fenêtre des relations ouverte), puis de cliquer sur le bouton Modifier des relations.

Gérer les relations et les clés

Modification des références entre les tables

À travers la boite de dialogue Modifier des relations, vous pouvez définir les tables qui participent de part et d'autre de la relation, ainsi que les champs de référence dans chaque table.

Gérer les relations et les clés

Modification du type de jointure entre les tables

Le type de jointure entre deux tables, renseigne Access sur la façon d'extraction des données à partir des deux tables reliées. Il existe trois options de choix d'une jointure comme le montre la boite de dialogue Propriétés de la jointure accessible en cliquant sur le bouton Type de jointure de la fenêtre Modifier des relations

Gérer les relations et les clés

Pour mettre en évidence la différence entre ces trois types de jointures, prenons par exemple les deux tables Modules et niveaux qui sont jointes par le champ codeNiveau, et faisons une extraction des modules avec leurs niveaux.

Gérer les relations et les clés

Remarquez dans la table Modules qu'aucun module ne correspond au niveau 3 (Master) et qu'il y a des modules qui n'ont pas de correspondants dans la table niveaux.

  • La première option Inclure seulement les lignes des deux tables pour lesquelles les champs joints sont égaux, c'est l'option par défaut, donnerait l'extraction suivante :
    Gérer les relations et les clés.
    Tous les enregistrements ont un correspondant dans la table niveaux.
  • La deuxième option Inclure TOUS les enregistrements de la table "niveaux" et seulement ceux de la table "Modules" pour lesquels les champs joints sont égaux, donnerait l'extraction suivante
    Gérer les relations et les clés
    Remarquez la petite flèche pointant vers la table Modules pour indiquer le sens de l'association, et remarquez aussi la dernière ligne qui affiche le niveau Master qui ne correspond à aucun module.
  • La troisième option Inclure TOUS les enregistrements de la table "Modules" et seulement ceux de la table "niveaux" pour lesquels les champs joints sont égaux, donnerait l'extraction suivante
    Gérer les relations et les clés
    Remarquez la petite flèche pointant vers la table niveaux pour indiquer le sens de l'association, et remarquez aussi les lignes qui affichent les modules qui n'ont pas de correspondants dans la table niveaux.
Respect de l'intégrité référentielle

L'intégrité référentielle permet d'avoir une base de données cohérente en obligeant l'utilisateur à respecter les deux points suivants lors de la saisie des données :

  • la clé étrangère doit être compatible avec la clé primaire à laquelle elle fait référence
  • la valeur de la clé étrangère doit être l'une des valeurs saisies pour la clé primaire à laquelle elle fait référence

Pour appliquer l'intégrité référentielle à une association, on double-clique dessus pour afficher la boite de dialogue Modifier des relations et on coche la case Appliquer l'intégrité référentielle puis on valide.

Gérer les relations et les clés

La conséquence visuelle de cette opération, est le changement de l'aspect du trait de l'association qui affiche le symbole 1 d'un côté et le symbole infinie de l'autre. On dit que c'est une association forte.

Gérer les relations et les clés

Pour consolider l'intégrité référentielle, il convient de cocher les deux cases Mettre à jour en cascade les champs correspondants et Effacer en cascade les enregistrements correspondants. Ces deux options permettent d'éviter la création des enregistrements orphelins, c'est à dire des enregistrements qui font référence à des correspondants qui n'existent pas ou qui n'existent plus.

Gérer les relations et les clés

Recevez ce cours au format PDF en envoyant un message ici

MOS Prepa