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 :
Recevez ce cours au format PDF en envoyant un message ici
Téléchargez la base de données ici pour suivre le cours
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.
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.
Le mode page permet un certain nombre de manipulations sur les données telles que l'ajout, la suppression, le tri, le filtrage etc.
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.
L'animation suivante montre les différentes méthodes pour basculer d'un mode d'affichage à l'autre.
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 :
Important :
Une clé primaire ne supporte pas deux choses :
Les étapes ci-après montrent comment désigner le champ codeModule comme clé primaire :
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.
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.
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.
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.
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.
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.
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
Trois types de relations peuvent exister entre deux tables :
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.
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.
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.
La table Niveaux est maintenant ajoutée à la page des relations, il reste à la lier avec la table Modules
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.
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.
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 :
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.
À 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.
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
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.
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.
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 :
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.
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.
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.
Recevez ce cours au format PDF en envoyant un message ici