COMPETENCES

Les relations entre les tables

 

OBJECTIFS

- Définir des relations entre tables

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

CAS PAPETIERE : 3ème partie

 

 

 

UTILISER ACCESS AVEC PLUSIEURS TABLES

PREMIERE SOUS-PARTIE : Définir des relations simples  (page 1/1)

 

I.                   CONNAISSANCES PREALABLES

Au cours des étapes précédentes, vous avez créé la table PRODUIT et CATEGORIE. Ces deux tables peuvent être mises en relation car une catégorie de produits comprend plusieurs produits ou encore un produit appartient à une seule catégorie de produits.

 

Pour qu’il y ait relation entre deux tables, il faut que les deux tables comportent un champ commun.

 

 

 

ATTENTION AUX ABUS DE LANGAGE :

Dans la théorie des bases de données relationnelles, le terme relation n’a pas le même sens. Dans La terminologie Access, une relation représente une JOINTURE . S’agissant d’une jointure entre une clé primaire et une clé étrangère, on parle de jointure naturelle.

 
Légende encadrée 3: Clé primairePar exemple les relations entre les 2 tables apparaissent comme suit dans ACCESS et ont pour champ commun CODECAT :

 

 

Légende encadrée 3: Relation

 

Légende encadrée 3: Clé étrangère 

 

 

 

 


La table CATEGORIE comporte comme champ CODECAT qui constitue la clé primaire.

La table produit comporte également le champ CODE CAT car chaque produit appartient à une catégorie. On dit que ce champ constitue la clé étrangère de la table PRODUIT.

 

La relation est du type UN - PLUSIEURS : Une catégorie comporte plusieurs produits.

 

QUEL EST L’INTERET DES RELATIONS ?

 

La mise en relation de tables évite la redondance d’informations : par exemple le champ LIBELLECAT n’a pas à figurer dans la table PRODUIT car à partir d’un numéro de produit donné on connait le codecat qui lui-même nous permettra de connaître, grâce à la relation, le libellé de la catégorie.

 

COMMENT DETERMINE-T’ON LES RELATIONS A DEFINIR ?

 

En respectant trois  règles :

·      Le bon sens et la logique prédominent en la matière : par exemple entre la table PRODUIT et la table REGLEMENT il n’y aucune relation logique

·      les relations doivent être de type UN – PLUSIEURS, ou UN – UN : contre exemple : Il n’y a pas de relation directe possible entre la table PRODUIT et la table CLIENT car plusieurs produits peuvent être achetés par plusieurs clients

·      la table côté UN comporte une clé primaire et la table côté PLUSIEURS comporte une clé étrangère du même nom

 

II.                Application

Vous allez mettre en relation la table produit et la table catégorie

A.                Création des relations entre la table Produit et Catégorie

 

1.                  Ouvrez la base de données PAPETIERE.MDB

2.                  Activez le menu Outils - relations

3.                  La boîte de dialogue « Ajouter une table »  est affichée à l’écran. Vous devez selectionner les tables devant être mises en relation (soit PRODUIT et CATEGORIE). Cliquez sur le bouton Ajouter pour ajouter la table sélectionnée et sur le bouton Fermer pour fermer la boîte de dialogue. Vous devez obtenir l’écran suivant :

 

 

 

Remarque : pour déplacer les tables à l’écran pointez le titre de la table et faites glisser.

 

4.                  Créez la relation en faisant glisser le champ CODECAT de la table CATEGORIE (côté UN) vers le champ CODECAT de la table PRODUITS (côté plusieurs) (Cf schéma ci-dessus). La boîte de dialogue suivante apparaît :

 

 

 

Cochez la case Appliquer l’intégrité référentielle puis vérifiez que soit cochée la case Une à plusieurs cliquez sur Créer pour terminer.

 

 

Remarques :

a) L’intégrité référentielle signifie qu’un code catégorie saisi dans la table PRODUIT doit avoir été au préalable saisi dans la table CATEGORIE. Inversement, si on essaie de supprimer une catégorie donnée de produits (dans la table catégorie) alors qu’il existe des produits appartenant à cette catégorie, ACCESS refusera de supprimer la catégorie concernée.

Pour créer des relations UN à PLUSIEURS on doit obligatoirement cocher la case Appliquer l’intégrité référentielle

b) La case « Mettre à jour en cascade les champs correspondants », lorsqu’elle est cochée, permet de changer automatiquement les valeurs du champ clé étrangère de la table côté plusieurs lorsqu’on modifie la valeur correspondante de la clé primaire côté un. Pour cela, la case « appliquer l’intégrité référentielle doit être cochée »

c) La case « Effacer en cascade les enregistrements correspondants », lorsqu’elle est cochée, permet de supprimer les enregistrements de la table côté Plusieurs dont la clé étrangère fait référence à une valeur de clé primaire dans la table côté Un que l’on a effacé. En d’autres termes, si on supprime une Catégorie de produit donnée dans la table catégorie, tous les produits de la catégorie donnée seront effacées en cascade. Pour utiliser cette option, il faut « appliquer l’intégrité référentielle ».

 

5. Pour avoir une représentation concrète de la relation établie entre les tables CATEGORIE et PRODUIT, ouvrez la table CATEGORIE (côté 1) en mode feuille de données :

ACCESS a ajouté à gauche une colonne supplémentaire contenant des symboles +. Ce symbole indique la présence d’enregistrements liés. Un clic sur l’un de ces symboles ouvre les enregistrements liés, cela donne pour la catégorie OUV :

 

APPLICATION NON GUIDEE :

Créez la relation existante entre la table CLIENT et la table REGLEMENT.


Auto formation ACCESS 2000 - sommaire