|
Fr:Établir les Relations
From NeoWiki
Une partie de la puissance de Base tient au fait que c'est une base de données relationnelle, ce qui vous permet de relier différentes tables de données. Pour utiiser cette fonction, nous devons établir les relations entre les diverses tables. Dans notre cas toutes les tables n'ont pas besoin d'être reliées. Les tables que nous avons qualifiées de tables pratiques dans le premier article de cette série, n'ont pas à être reliées par un processus en règle, car elles seront utilisées principalement pour créer des combo boxes ou des list boxes. Les tables essentielles doicent être reliées les unes aux autres.
Contents |
Types de Relations
Les relations peuvent être établies d'une table à une seule autre ou d'une table à plusieurs autres. Dans le cas d'une relation unique, un enregistrement est relié à un unique enregistrement dans une autre table. Dans le cas d'une relation multiple, un enregistrement est relié à plusieurs enregistrements dans une autre table. Dans notre cas, la relation entre la table des Sorties (Field Trips) et celle des Apparitions ( Sightings) est une relation multiple ; lors d'une sortie, l'ornithologue devrait voir (espérons le !) beaucoup d'oiseaux. Notez que l'un au moins des champs que vous reliez doit êtrre un champ de clé primaire.
Créez des Relations lorsque l'un des Champs est une Clé Primaire
- Votre base de données étant ouverte, allez dans le menu Outils et choisissez Relations…
- Dans la fenêtre flottante, cliquez sur Sorties puis sur le bouton Ajouter. Une petite fenêtre appelée Sorties apparait dans la fenêtre Ébauche de Relation.
- Répétez le processus avec la table Observations
- Fermez la fenêtre flottante
- Cliquez sur le champ ID dans la fenêtre Sorties ; glissez le pointeur jusqu'au champ SortiesID dans la fenêtre Observations. Une ligne apparait qui relie ces deux champs, avec un 1 près de la fenêtre Sorties et un n près de la fenêtre Observations. Cela identifie une relation multiple.
- Cliquez sur l'icône de disque dur dans la barre d'outils pour enregistrer les modifications, et fermez la fenêtre.
Créer des Relations lorsqu'aucun Champ n'est une Clé Primaire
Dans Base, chaque fois que vous créez une relation entre des tables, l'un au moins des champs utilisés doit être unique. C'est-à -dire que, dans une au moins des tables, deux enregistrements ne peuvent pas avoir des entrées identiques dans le champ utilisé pour créer cette relation. Cela est automatiquement le cas si l'un des champs est une clé primaire. Mais si vous voulez relier des tables en utilisant autre chose que la clé primaire, vous devez introduire une contrainte unique dans l'un des champs que vous voulez utiliser.
Dans le cas de notre base de données d'ornithologie, l'entrée des données sera plus simple si nous faisons cela avec deux des relations, à savoir pour les relations entre :
- Les tables Oiseaux et Observations (NomAnglais lié à NomOiseau)
- Les tables Sites et Sorties (NomLieu lié à Site)
L'exemple ci-dessous décrit le processus utilisé pour relier les tables Oiseaux et Apparitions. Le même processus est nécessaire pour relier les tables Sites et Sorties.
Créer un Index Unique
Bien qu'un index unique ne soit pas absolument nécessaire dans ce processus, il permet de s'assurer que nous n'avons pas entré accidentellement des informarions en double dans les champs en question.
- Dans la fenêtre principale de la base de données, cliquez sur l'icône Tables dans la colonne de gauche
- Faites un clic droit ou Contrôle-clic sur l'icône Oiseaux et choisissez Modifier
- Cliquez dans la cellule contenant le nom du champ "NomAnglais".
- Cliquez sur le bouton Ébauche d'index dans la barre d'outils (il ressemble à une feuille de papier avec un triangle bleu la recouvrant en partie). La fenêtre Index s'ouvre.
- Cliquez sur l'icône Nouvel index (une feuille de papier avec un soleil).
- Index1 apparait dans le panneau de gauche. Entrez un nom approprié (par ex. NomAnglais).
- Cochez la case unique dans la section Index : détails
- Entrez NomAnglais dans le champ Champ index et Croissant dans l'ordre de tri.
- Cliquez sur l'icône Enregistrer l'ndex actif (une feuille de papier avec une disquette).
- Cliquez sur Fermer.
Créer une Contrainte Unique
- Notez les noms exacts du champ et de la table utilisés. Dans ce cas Oiseaux et NomAnglais.
- Note: Le nom du champ ne doit pas contenir d'espace. Bien que Base ne vous autorise pas à créer des champs dont le nom contient des espaces lorsque vous utilisez l'assistant ou le mode ébauche, Base conserve les espaces dans les noms de champs si vous importez un document Calc dans Base.
- La fenêtre principale de la base de données étant ouverte (celle qui contient Tables, Requêtes, Formulaires et Rapports dans la colonne de gauche), allez dans le menu Outils et choisissez SQL….
- Entrez l'instruction suivante dans la partie supérieure de la fenêtre Exécuter l'instruction SQL :
- alter table "Oiseaux" add constraint "uq_NomAn" unique ("NomAnglais" )
- uq_NomAn est le nom de la contrainte créée par cette commande.
- Cliquez sur Exécuter
- Note: La section Statut de la fenêtre vous dira si la commande a été exécutée ou s'il y a eu un problème.
- Fermez la fenêtre Exécuter l'instruction SQL.
Créer la Relation
- La base étant ouverte, allez dans le menu Outils et choisissez Relations…
- Cliquez sur l'icône qui ressemble à un bloc de cellules bleues avec une croix verte dans le coin.
- Dans la fenêtre Ajouter des tables, cliquez sur Oiseaux
- Note: Si vous n'avez pas encore créé de relations, la fenêtre Ajouter des tables s'ouvre automatiquement.
- Si la table Observations n'apparait pas dans le "plan" des relations, ajoutez-la.
- Fermez la fenêtre flottante.
- Cliquez sur le champ NomAnglais dans la petite fenêtre Oiseaux; glissez le pointeur depuis le champ NomOiseau dans la petite fenêtre Observations. Une ligne reliant ces deux champs apparait.
- Cliquez sur l'icône de disque dans la barre d'outils pour enregistrer les modifications et fermez la fenêtre.
Liens Externes
fil de discussion sur les contraintes uniques sur un forum OOo (en anglais)