Chaque ensemble de liens peut être traduit en une table distincte. Elle doit alors contenir les clés primaires des ensembles d'entités participantes comme clés étrangères. La clé primaire de la table ainsi obtenue est alors généralement la concaténation des clés étrangères. Les autres attributs de l'ensemble de liens complètent les colonnes de la table.
Une clé étrangère dans une table est un attribut qui sert de clé primaire dans une autre table et permet d'établir les liens désirés entre les tables en question.
Dans l'exemple ci-dessus, nous avons créé une table pour chacun des ensembles de liens CHEF DE DEPARTEMENT, AFFECTATION et APPARTENANCE. Dans les tables CHEF DE DEPARTEMENT et AFFECTATION, les clés étrangères sont respectivement le numéro du département et le numéro de l'employé. La table APPARTENANCE utilise quant à elle les clés d'identification des tables EMPLOYE et PROJET comme clés étrangères et contient un attribut appelé Taux participation.
Etant donné que chaque département est dirigé par un seul chef, le numéro de département departementID suffit pour former la clé primaire de la table CHEF DE DEPARTEMENT. De même, le numéro d'employé employeID suffit pour définir la clé d'identification de la table AFFECTATION, car chaque employé est affecté à un seul département. Néanmoins, la clé d'identification de la table APPARTENANCE doit être formée par la concaténation de deux clés étrangères: le numéro d'employé et le numéro de projet. En effet, un employé peut participer à plusieurs projets et, inversement, un projet peut impliquer plusieurs employés.
La transformation en table distincte de chaque ensemble de liens ne conduit pas toujours à un schéma de base de données relationnelle optimal. En effet, selon les circonstances, elle pourrait engendrer un grand nombre de tables. En se référant à l'exemple ci-dessus, nous pourrions nous demander s'il est judicieux de créer une nouvelle table pour représenter la fonction de chef de département. En effet, cette fonction pourrait être intégrée dans la table DEPARTEMENT tout simplement comme attribut supplémentaire dont la valeur correspondrait au numéro d'employé du chef pour chaque département.
Dès lors, le passage d'un ensemble de liens du modèle entité-association aux tables du modèle relationnel se fait en fonction du degré de l'ensemble de liens considéré:
Un ensemble de liens plusieurs-à-plusieurs doit être traduit en une table relationnelle distincte dont le nom correspond au nom de l'ensemble de liens. Elle contient les clés d'identification des ensembles d'entités participantes comme clés étrangères et sa clé primaire est alors la clé formée par la concaténation des clés étrangères. Cette table fait donc office de table de correspondance entre les entités participant à la relation. Notons que les autres attributs de l'ensemble de liens complètent les colonnes de la table.
Dans l'exemple ci-dessus, nous avons créé une table pour l'ensemble de liens APPARTENANCE. Cette table utilise les clés primaires des tables EMPLOYE et PROJET comme clés étrangères et contient un autre attribut appelé Taux participation qui indique le degré d'appartenance d'un employé à un projet en pour-cent. La clé primaire de la table APPARTENANCE est formée par la concaténation des clés étrangères: le numéro d'employé et le numéro de projet. En effet, un employé peut participer à plusieurs projets et, inversement, un projet peut impliquer plusieurs employés.
Un ensemble de liens un-à-plusieurs peut s'exprimer dans l'une des tables des ensembles d'entités participantes sans avoir besoin de créer une table distincte. A ce dessein, dans la table d'où part l'association simple ou conditionnelle, il est nécessaire de définir une clé étrangère qui fait référence à l'autre table de l'association. Pour mettre en évidence le lien, il convient d'ajouter un nom de rôle au nom de la clé primaire correspondante, explicitant la signification de ses valeurs dans la table étrangère.
Dans l'exemple ci-dessus, pour exprimer les liens qu'il existe entre les départements et les employés de l'entreprise, nous avons ajouté à la table EMPLOYE une clé étrangère AffectationID. Pour chaque employé, la valeur de cette clé indique le numéro du département auquel il est affecté. La liaison établie par la clé étrangère est définie par un attribut dont le nom se compose de son rôle dans la liaison.
Un ensemble de liens un-à-un peut s'exprimer dans les deux tables des ensembles d'entités participantes sans avoir besoin de créer une table distincte. A ce dessein, la clé primaire de la table référencée est choisie comme clé étrangère dans la seconde table. Il est important de désigner correctement l'une des deux tables dans laquelle nous choisissons une clé étrangère. En principe, nous introduisons la clé étrangère de la table référencée dans la table d'où part l'association de type simple.
Dans l'exemple ci-dessus, nous complétons la table DEPARTEMENT par le numéro d'employé du chef de département. Ainsi, l'ensemble de liens CHEF DE DEPARTEMENT s'exprime à travers l'attribut ChefDepID. Chaque valeur de cette clé étrangère identifie un employé dans le rôle de chef de département.
Les règles de transformation de liens permettent donc d'aboutir au schéma logique suivant:
En vous basant sur le schéma entités-associations ci-dessous représentant la structure des données nécessaires à la gestion d'une librairie en ligne, créez le schéma logique de la base de données relationnelle associée:
En plus de leurs clés d'identification, les entités du schéma relationnel seront caractérisées par les attributs suivants:
|
Entité |
Attributs |
Entité |
Attributs |
|---|---|---|---|
|
Livre |
|
Editeur |
|
|
Fournisseur |
|
Commande |
|
|
Client |
|
Employé |
|
|