/OpenOffice-Base/ManipRelations

Définition des relations entre tables dans OpenOffice-Base

Cette page présente comment créer et modifier des relations entre les tables.

Objectifs

Les connaissances à acquérir sont :

  • avoir compris ce qu'est une contrainte d'intégrité référentielle,
  • avoir compris à quoi sert de définir des relations (maintenance de la cohérence de la base de données)

Les compétences à atteindre sont :

  • savoir définir et modifier des relations simples,
  • savoir choisir le "bon sens" pour définir une relation de cardinalité 1:n,
  • comprendre les messages d'erreur afficher en cas de mauvais choix dans les options de mise à jour ou de suppression

Utilisation de l'outil Relations...

Les relations entre les tables concrétisent, au niveau du modèle logique des données, ce qui vient des contraintes définies par les associations entre les entités identifiées dans l'étape de conception de la base de données.

Au niveau du modèle logique des données, les cardinalités entre les tables ne sont que

  • soit 1:1 : chaque enregistrement d'une des tables est en relation avec 1 et 1 seul enregistrement de l'autre table - et réciproquement... ;
  • soit 1:n : chaque enregistrement de la table du côté du 1 est en relation avec éventuellement plusieurs enregistrement de la table du côté du n ;
  • soit 1:? : il peut y avoir des enregistrements de la table du côté du 1 qui ne sont en relation avec aucun élément de l'autre table (OpenOffice ne visualise pas ces cardinalités graphiquement) ; il s'agit de contraintes sur les valeurs NULL à vérifier à chaque mise à jour ou en cas de supression d'enregistrement ;
  • soit ?:n : il peut y avoir des enregistrements de la table du côté du n qui ne sont en relation avec aucun élément de l'autre table (OpenOffice ne visualise pas ces cardinalités graphiquement) ; il s'agit de contraintes sur les cascades, lors des mises à jour pour ajouts ou suppressions d'enregistrement.

Ainsi, les relations mettent en jeu essentiellement les clés primaires et étrangères de tables pour assurer que les jointures "se passeront bien" :

Si la clé primaire d'une table doit être utilisée pour concrétiser une relation, alors comme ses valeurs sont obligatoirement uniques dans la table, cette table devra être du côté d'un 1 dans les cardinalités.

Les clés étrangères doivent se retrouver visuellement pointées par des relations du côté du n.

Pour définir des relations, il faut

  • avoir au préalable défini des tables dans les quels certains attributs peuvent être contraints à contenir les mêmes valeurs,
  • activer l'outil Relations... pour accéder à la fenêtre de présentation des realtions définies dans la base de données,
  • cliquer sur l'outil pour ajouter des tables dans cette fenêtre,
  • ajouter l'une après l'autre toutes les tables désirées,
  • cliquer sur l'outil pour ajouter des relations,
  • ajouter 1 à 1 chaque relation entre tables, 1 relation pouvant relier plusieurs champs à la fois, ce qui se fait dans une boîte de dialogue spécifique dans laquelle il faut

    1. sélectionner dans la zone de gauche la table qui sera du côté de la cardinalité la plus faible,
    2. sélectionner dans la zone de droite l'autre table,
    3. choisir chacun des attributs de chacune des tables dans la colonne du tableau du même côté, en procédant ligne par ligne, ce qui met en place les correspondances une à une,
    4. choisir les contraintes d'intégrité à assurer lors des mises à jour ou des suppressions d'enregistrement.
  • sauver les relations ainsi paramétrées

Pour modifier des relations déja définies, il faut

  • revenir sur la fenêtre des relations (via Outils > Relations...),
  • sélectionner les liens représentés entre les tables,
  • avec un clic droit (CTRL + clicsur Mac), choisir l'item Éditer... du menu contextuel,
  • modifier le paramétrage de la relation,
  • sauver et sortir de l'éditeur de relations.

Les copies d'écran capturées sont accessibles dans la page OutilRelations.

remonter plus récent revenir

LicPro - PAGORA