La solution d'Exercice SQL Corrigé : Passage au relationnel




Le modèle relationnel déduit de la modélisation ci-dessus est le suivant. Les clés primaires sont soulignées. Les clés étrangères sont précédées d'un '#'.

Revue(Nom, Périodicité)
Cette relation est déduite du passage au relationnel de l'ensemble d'entités (ou classe) Revue.


Numéro(ID, Année, #NomRevue, NbPages) 
Cette relation est issue du passage au relationnel de l'ensemble d'entités (classes) Numéro, qui est un ensemble d'entités faibles (ou une association quali fiée) de Revue. La clé primaire de la relation Numéro est donc composée du couple (ID, Année) qui identi fie un numéro pour une revue donnée et de l'attribut #NomRevue, clé étrangère faisant référence à la clé primaire de la relation Revue (c'est-à-dire faisant référence à la revue à laquelle le numéro est relatif).

Auteur(ID, Nom, Prénom, Email)
Cette relation est déduite du passage au relationnel de l'ensemble d'entités (ou classe) Auteur.
Article(Titre, Contenu)
Cette relation est déduite du passage au relationnel de l'ensemble d'entités (ou classe) Article.
Ecriture(#Titre, #IDAuteur)
Cette relation est déduite du passage au relationnel de l'association entre Article et Auteur.
En effet, un article peut être écrit par plusieurs auteurs et un auteur peut écrire plusieurs articles. L'attribut #Titre est une clé étrangère qui fait référence à la clé primaire de la relation Titre. L'attribut #IDAuteur est une clé étrangère qui fait référence à la clé primaire de la relation Auteur.


Publication(#Titre, #NomRevue, #IDNuméro, #AnnéeNuméro, PageDébut, PageFin)
Cette relation est déduite du passage au relationnel de l'association entre Article et Numéros.
La clé primaire de la relation est composée du titre de l'article publié (identi é par #Titre) et du numéro dans lequel l'article apparaît (identi é par le triplet #NomRevue, #IDNuméro, #AnnéeNuméro). L'attribut #Titre est une clé étrangère qui fait référence à la clé primaire de la relation Titre. Les attributs (#NomRevue, #IDNuméro, #AnnéeNuméro) forment une clé étrangère qui fait référence à la clé primaire de la relation Numéro. Il faut bien noter, ici, qu'une clé étrangère fait toujours référence à la clé primaire d'une autre relation. Or,dans cet exemple, la clé primaire de la relation Numéro est composée de trois attributs qui doivent également apparaître dans toutes clés étrangères y faisant référence. Il ne faut pas


non plus oublier d'ajouter dans la relation Publication les attributs PageDébut et PageFin qui caractérise l'association est_publié_dans.


Référence(#TitreArticleRéférençant, #TitreArticleRéférencé, #NomRevueArticleRéférencé, #IDNuméroArticleRéférencé, #AnnéeNuméroArticleRéférencé)
Cette relation est déduite du passage au relationnel de l'association entre l'ensemble d'entités (ou la classe) Article et l'agrégat (ou la classe-association) regroupant Numéro et Article. Les noms des attributs sont particulièrement longs pour que la sémantique soit claire. L'attribut #TitreArticleRéférençant est une clé étrangère qui fait référence à la clé primaire de la relation Article. Cet attribut représente le titre de l'article référençant (contenant une référence à un article publié dans un numéro). L'attribut #TitreArticleRéférencé est une clé étrangère qui fait référence à la clé primaire de la relation Article. Cet attribut représente le titre de l'article référencé. Les attributs (#NomRevueArticleRéférencé, #IDNuméroArticleRéférencé, #AnnéeNuméroArticleRéférencé) forment une clé étrangère qui fait référence à la clé primaire de la relation Numéro. Ils représentent le numéro de la revue dans lequel a été publié l'article référencé.