ACC2000 : définition des relations entre les tables dans une base de données Microsoft Access

Traductions disponibles Traductions disponibles
Numéro d'article: 304467 - Voir les produits auxquels s'applique cet article
Novice : nécessite des connaissances de l'interface utilisateur sur les ordinateurs mono-utilisateur.

Cet article s'applique uniquement à une base de données Microsoft Access (.mdb).

Agrandir tout | Réduire tout

Sommaire

Résumé

Cet article explique comment définir les relations dans une base de données Microsoft Access. Il contient les rubriques suivantes :
  • Que sont les relations de table
  • Types de relations de table
    • Relation un-À-plusieurs
    • Relation plusieurs-À-plusieurs
    • Relations one-To-One

  • Comment définir des relations entre les tables
    • Comment faire pour définir une relation un-À-plusieurs ou One-To-One
    • Comment faire pour définir un plusieurs-À-plusieurs liens

  • L'intégrité référentielle
  • Mises à jour et suppressions en cascade
  • Joindre les types

Plus d'informations

Que sont les relations de table

Dans une base de données relationnelle, relations permettent d'empêcher les données redondantes. Par exemple, si vous créez une base de données qui suivre des informations sur les livres, vous pouvez avoir une table appelée titres qui stocke des informations sur chaque livre, tels que le carnet de? au titre, date de composition et publisher. Il existe également des informations que vous souhaitez stocker sur l'éditeur comme numéro de téléphone de l'éditeur, adresse et code postal. Si vous deviez stocker toutes ces informations dans les titres de tableau, l'éditeur? numéro de téléphone du serait être dupliqué pour chaque titre qui imprime l'éditeur.

Une meilleure solution consiste à stocker les informations d'éditeur une seule fois dans une table distincte, éditeurs. Vous êtes ensuite placer un pointeur de la table titres qui fait référence à une entrée dans la table éditeurs.

Pour vous assurer que vos données ne sont pas hors synchronisation, vous pouvez appliquer l'intégrité référentielle entre les tables de titres et éditeurs. Relations de l'intégrité référentielle vous assurer que les informations dans une table correspondent aux informations dans un autre. Par exemple, chaque titre de la table Titles doit être associé à un éditeur spécifique de la table publishers. Un titre Impossible d'ajouter à la base de données d'un éditeur qui n'existe pas dans la base de données.

Types de relations de table

Une relation fonctionne en correspondance des données en colonnes clés, généralement les colonnes ayant le même nom dans les deux tables. Dans la plupart des cas, la relation correspond à la clé primaire d'une table qui fournit un identificateur unique pour chaque ligne, avec une entrée dans la clé étrangère dans l'autre table. Par exemple, ventes peuvent être associés avec les titres spécifiques vendus en créant une relation entre la colonne title_id de la table Titles (clé primaire) et la colonne title_id dans la table client (la clé étrangère).

Il existe trois types de relations entre tables. Le type de relation qui est créé dépend de la façon dont les colonnes connexes sont définies.

Relation un-À-plusieurs

Une relation un-à-plusieurs est le type de relation le plus courant. Dans ce type de relation, une ligne de table A peut avoir plusieurs lignes correspondantes dans la table B, mais une ligne dans la table B peut être qu'une seule ligne correspondante de table a. Par exemple, les tables éditeurs et des titres ont une relation un-à-plusieurs : chaque éditeur produit plusieurs titres, mais chaque titre provient de qu'un seul éditeur.

Une relation un-à-plusieurs est créée si un seul des colonnes en relation est une clé primaire ou a une contrainte d'unicité.

Dans Access, le côté clé primaire d'une relation un-à-plusieurs est indiqué par le symbole d'une clé. Le côté clé étrangère d'une relation est indiqué par un symbole infini.

Relation plusieurs-À-plusieurs

Dans une relation plusieurs-à-plusieurs, une ligne d'une table A peut avoir autant de lignes correspondantes dans la table B et vice versa. Vous créez une telle relation en définissant une troisième table, appelée table de jonction, dont clé primaire est composée des clés étrangères de table et de table b. Par exemple, la table Authors et la table titres ont une relation plusieurs-à-plusieurs qui est définie par une relation un-à-plusieurs de chacune de ces tables avec la table TitleAuthors. La clé primaire de la table TitleAuthors est la combinaison de la colonne au_id (la table authors? clé primaire s) et la colonne title_id (la table Titles? clé primaire s).

Relations one-To-One

Dans une relation un-à-un, une ligne dans une table peut avoir pas plus d'une ligne correspondante dans la table B et vice versa. Une relation un-à-un est créée si les deux colonnes en relation sont des clés primaires ou des contraintes uniques.

Ce type de relation n'est pas courant parce que la plupart des informations de cette manière seraient tout dans une table. Vous pouvez utiliser une relation un-à-un pour :
  • Diviser une table avec plusieurs colonnes.
  • Isoler une partie d'une table pour des raisons de sécurité.
  • Stocker les données qui est courte durée et qui ont pu être facilement supprimées en supprimant simplement la table.
  • Stocker des informations qui s'applique uniquement à un sous-ensemble de la table principale.
Dans Access, le côté clé primaire d'une relation un-à-un est indiqué par le symbole d'une clé. Le côté clé étrangère est également indiqué par le symbole d'une clé.

Comment définir des relations entre les tables

Lorsque vous créez une relation entre tables, les champs associés ne pas devoir ont le même nom. Toutefois, les champs associés doivent avoir les mêmes données tapez à moins que le champ de clé primaire est un champ NuméroAuto. Vous pouvez faire correspondre un champ de NuméroAuto avec un champ numérique uniquement si la propriété TailleChamp des deux champs correspondants est identique. Par exemple, vous pouvez faire correspondre un champ NuméroAuto avec un champ numérique si la propriété TailleChamp des deux champs est Entier long. Même lorsque les deux champs correspondants sont des champs numériques, ils doivent avoir le même paramétrage de la propriété TailleChamp .

Comment faire pour définir une relation un-À-plusieurs ou One-To-One

Pour créer un un-à-plusieurs ou une relation un-à-un, procédez comme suit :
  1. Fermez toutes les tables que vous avez ouvert. Vous ne pouvez pas créer ou modifier des relations entre tables ouvertes.
  2. Appuyez sur F11 pour basculer vers la fenêtre base de données.
  3. Dans le menu Outils , cliquez sur relations .
  4. Si vous n'avez pas encore défini les relations toute dans votre base de données, la boîte de dialogue Afficher la table apparaît automatiquement. Si vous souhaitez ajouter les tables que vous souhaitez lier, mais la boîte de dialogue Afficher la table s'affiche pas, cliquez sur Afficher la table dans le menu des relations .
  5. Double-cliquez sur le nom des tables que vous souhaitez lier, puis fermez la boîte de dialogue Afficher la table . Pour créer une relation entre une table et elle-même, ajoutez deux fois cette table.
  6. Faites glisser le champ à lier d'une table au champ lié dans l'autre table. Pour faire glisser plusieurs champs, appuyez sur CTRL, cliquez sur chaque champ, puis faites-les glisser.

    Dans la plupart des cas, vous faites glisser le champ de clé primaire (dont apparaît en gras) d'une table vers un champ similaire (portant généralement le même nom), appelé la clé étrangère dans l'autre table.
  7. La boîte de dialogue Modifier des relations s'affiche. Assurez-vous que le nom de champ affiché dans les deux colonnes est correct. Vous pouvez les modifier si nécessaire.

    Définissez les options de relation si nécessaire. Si vous avez besoin d'informations sur un élément spécifique dans la boîte de dialogue Modifier des relations , cliquez sur le bouton point d'interrogation, puis cliquez sur l'élément. Ces options va être expliquées en détail plus loin dans cet article.
  8. Cliquez sur Créer pour créer la relation.
  9. Répétez les étapes 5 à 8 pour chaque paire de tables que vous souhaitez lier.

    Lorsque vous fermez la boîte de dialogue Modifier une relation , Microsoft Access vous demande si vous souhaitez enregistrer la mise en page. Si vous enregistrez la présentation ou non, les relations que vous créez sont enregistrées dans la base de données.

    Remarque : Vous pouvez créer relations dans les requêtes, ainsi que des tables. Toutefois, l'intégrité référentielle n'est pas appliquée avec des requêtes.

Comment faire pour définir un plusieurs-À-plusieurs liens

Pour créer une relation plusieurs-à-plusieurs, procédez comme suit :
  1. Créez les deux tables ayant une relation de plusieurs-à-plusieurs.
  2. Créez une troisième table, appelée table de jonction, puis puis ajoutez-lui aux nouveaux champs possédant les mêmes définitions que les champs de clé primaire de chacune des deux autres tables. Dans la table de jonction, les champs de clé primaires fonctionnent en tant que clés étrangères. Vous pouvez ajouter des autres champs à la table de jointure, comme vous pouvez le faire à n'importe quel autre table.
  3. Dans la table de jointure, définissez la clé primaire doit inclure les champs de clé primaire des deux autres tables. Par exemple, dans une table de jonction TitleAuthors, la clé primaire serait être constituée des champs RéfCommande et RéfProduit.

    Remarque : pour créer une clé primaire, procédez comme suit :
    1. Ouvrez une table en mode Création.
    2. Sélectionnez la ou les champs que vous souhaitez définir en tant que clé primaire. Pour sélectionner un champ, cliquez sur le sélecteur de ligne pour le champ souhaité.

      Pour sélectionner plusieurs champs, maintenez la touche CTRL enfoncée, puis cliquez sur le sélecteur de ligne de chaque champ.
    3. Cliquez sur clé primaire dans la barre d'outils.

      Remarque : Si vous souhaitez que l'ordre des champs dans une clé primaire multichamp doit être différente de l'ordre de ces champs dans la table, cliquez sur Index dans la barre d'outils pour afficher la boîte de dialogue index et puis réorganiser les noms de champ pour l'index nommé PrimaryKey .
  4. Définir une relation un-à-plusieurs entre chacune des deux tables principales et la table de jointure.

L'intégrité référentielle

L'intégrité référentielle est un système de règles que Microsoft Access utilise pour garantir que les relations entre les enregistrements dans les tables connexes sont valides et que vous ne risque pas supprimer ou modifier des données liées. Vous pouvez définir l'intégrité référentielle si toutes les conditions suivantes sont réunies :
  • Le champ correspondant de la table primaire est une clé primaire ou a un index unique.
  • Les champs associés ont le mêmes type de données. Il existe deux exceptions. Un champ NuméroAuto peut être lié à un champ numérique avec un paramètre de propriété TailleChamp (FieldSize) de type entier long et un champ NuméroAuto avec un paramètre de propriété TailleChamp (FieldSize) N° de réplication peut être lié à un champ numérique avec un paramètre de propriété TailleChamp de réplication.
  • Les deux tables appartiennent à la même base de données Microsoft Access. Si les tables sont des tables liées, elles doivent être au format Microsoft Access, et vous devez ouvrir la base de données dans lequel elles sont stockées pour activer l'intégrité référentielle. L'intégrité référentielle ne peut pas être appliquée des tables liées provenant de bases de données dans d'autres formats.
Les règles suivantes s'appliquent lorsque vous utilisez l'intégrité référentielle :

  • Vous ne pouvez pas entrer une valeur dans le champ de clé étrangère de la table liée qui n'existe pas dans la clé primaire de la table primaire. Toutefois, vous pouvez entrer une valeur Null dans la clé étrangère, pour indiquer que les enregistrements ne sont pas associés. Par exemple, vous ne peut pas être attribuée à un client qui n'existe pas, mais vous pouvez être affectée à personne en entrant une valeur Null dans le champ RéfClient.
  • Vous ne pouvez pas supprimer un enregistrement d'une table primaire si les enregistrements correspondants existent dans une table liée. Par exemple, vous ne peut pas supprimer un enregistrement d'employé de la table Employés si des commandes attribués à l'employé dans la table Commandes sont.
  • Vous ne pouvez pas modifier une valeur de clé primaire dans la table primaire, si cet enregistrement a des enregistrements liés. Par exemple, vous ne pouvez pas modifier numéro d'un employé de la table Employés si des commandes affectés à cet employé dans la table Commandes sont.

Mises à jour et suppressions en cascade

Pour les relations dans lesquelles l'intégrité référentielle est appliquée, vous pouvez spécifier si vous voulez que Microsoft Access automatiquement mise à jour en cascade ou en cascade supprimer les enregistrements liés. Si vous activez ces options, supprimer et mettre à jour les opérations qui seraient normalement interdites par référentielle règles d'intégrité sont autorisées. Lorsque vous supprimez des enregistrements ou modifiez des valeurs de clé primaire dans une table primaire, Microsoft Access apporte les modifications nécessaires dans les tables connexes pour conserver l'intégrité référentielle.

Si vous cochez la case mise à jour en cascade les champs correspondants lorsque vous définissez une relation, chaque fois que vous modifiez la clé primaire d'un enregistrement dans la table primaire, Microsoft Access met automatiquement à jour la clé primaire avec la nouvelle valeur dans tous les enregistrements liés. Par exemple, si vous modifiez un code client dans la table clients, le champ code client dans la table Commandes est automatiquement mis à jour pour chacun des commandes de ce client pour que la relation ne soit pas rompue. Microsoft Access effectue la mises à jour en cascade sans afficher un message.

Remarque : Si la clé primaire de la table primaire est un champ NuméroAuto, activant la case à cocher Mettre à jour en cascade les champs correspondants n'aura aucun effet, car vous ne pouvez pas changer les valeurs d'un champ de type NuméroAuto.

Si vous sélectionnez la case à cocher Supprimer en cascade les enregistrements correspondants lorsque vous définissez une relation, chaque fois que vous supprimez des enregistrements dans la table primaire, Microsoft Access supprime automatiquement les enregistrements dans la table associée. Par exemple, si vous supprimez un enregistrement client de la table Customers, toutes les commandes de ce client sont automatiquement supprimées de la table Commandes (ycompris ceux de la table Détails commandes liée aux enregistrements commandes). Si vous supprimez des enregistrements d'un formulaire ou d'une feuille de données avec la case à cocher Effacer en cascade les enregistrements correspondants activée, Microsoft Access vous avertit que les enregistrements liés peuvent aussi être supprimés. Toutefois, lorsque vous supprimez des enregistrements à l'aide d'une requête de suppression, Microsoft Access supprime automatiquement les enregistrements dans les tables connexes sans afficher un message.

Joindre les types

Il existe trois types de jointure, comme suit :

option 1 définit une jointure interne. Une jointure interne est une jointure dans laquelle les enregistrements de deux tables sont combinés dans les résultats d'une requête uniquement si les valeurs dans les champs joints remplissent une condition spécifiée. Dans une requête, la jointure par défaut est une jointure interne qui sélectionne des enregistrements uniquement si les valeurs dans les champs joints correspondent.

option 2 définit une jointure externe gauche. Une jointure externe gauche est une jointure dans tous les les enregistrements du côté gauche de l'opération LEFT JOIN instruction SQL de la requête sont ajoutés aux résultats de la requête, même s'il n'existe aucune valeur correspondante dans le champ joint de la table de droite.

option 3 définit une jointure externe droite. Une jointure externe droite est une jointure dans le tout les enregistrements du côté droit de l'opération RIGHT JOIN instruction SQL de la requête sont ajoutés aux résultats de la requête, même s'il n'y aucune valeur correspondante dans le champ joint de la table de gauche.

Références

Pour plus d'informations sur les relations dans Microsoft Access, cliquez sur la rubrique Création et conception le tables sur la page d'aide de Microsoft Access 2000 au site Web de Microsoft suivant :
Microsoft Access 2000 Help
Pour plus d'informations sur les relations dans Microsoft Access, cliquez sur l'aide de Microsoft Access dans le menu Aide , tapez créer ou modifier des relations dans le Compagnon Office ou l'aide intuitive et puis cliquez sur Rechercher pour consulter les rubriques correspondantes.

Propriétés

Numéro d'article: 304467 - Dernière mise à jour: mardi 29 juin 2004 - Version: 2.1
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Access 2000 Standard Edition
Mots-clés : 
kbmt kbhowto KB304467 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 304467
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com