Bonjour PhildarZ,
Quelques remarques.
Concernant la table Participation :
Préciser quels attributs composent la clé de la table.
Concernant la table Film :
L’attribut RealisateurId n’a plus d’existence légale et doit disparaître. Pour retrouver le(s) réalisateur(s) d’un film, il faut mettre en œuvre une jointure impliquant les tables Film, Participation et Intervenant.
Concernant Plage :
A moins que vous prouviez le contraire, l’attribut PlageId n’apporte aucune valeur ajoutée et doit disparaître, au nom du rasoir d’Ockham.
En effet, j’avais écrit :
"Un CD est composé de plages numérotée de 1 à N. Plage peut être considérée comme étant une propriété multivaluée de CD. Au niveau tabulaire, on représente cela par une table, appelons-la Plage, dont la clé est composée du couple {CdId, PlageNumero}."
Précision : Quand je dis que Plage est une propriété multivaluée de CD, cela veut dire que lorsqu’on supprime un CD, les plages qui le composent disparaissent avec lui. On dit encore que, conceptuellement parlant, Plage est une entité faible (
weak entity), qui n’a d’existence qu’au travers de CD.
Si l’on s’affranchissait de la première forme normale (1NF), la structure de CD absorberait celle de Plage et serait alors la suivante :
CD (CdId, CdLabel, CdFormat, OeuvreId, Plage (PlageNumero, PlageTitre, PlageDuree))
Mais, pour respecter la 1NF, l’application de l’algorithme proposé par Ted Codd, père du Modèle Relationnel de Données donne lieu à la décomposition suivante :
CD (CdId, CdLabel, CdFormat, OeuvreId)
Plage (CdId, PlageNumero, PlageTitre, PlageDuree)
En l’occurrence, vous pouvez vous reporter à l’article fondateur de Codd,
A Relational Model of Data for Large Shared Data Banks, au paragraphe 1.4 : "Normal Form".
Concernant CD, Livre et Film :
Votre intention de mise en facteur commun au sein de la table Oeuvre de certains attributs est louable (titre, année, genre). Mais reprenons le cas du "Seigneur des anneaux". Si cette œuvre a pu faire l’objet chez différents éditeurs d’autant de livres, CD et films, les relations avec Oeuvre sont a priori correctes. Toutefois, vous perdez en souplesse et gagnez des contraintes pouvant s’avérer gênantes. Par exemple, la parution du livre en France date de 1972. Le film est sorti quelques années après. Selon votre modélisation comment distinguer les dates ? Même choses si le film a connu différentes versions. Comparez avec le diagramme de classes ou le MLD que je vous ai proposés.
Partager