IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Schéma Discussion :

Musique : Contrainte sur une association ternaire


Sujet :

Schéma

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Novembre 2016
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Musique : Contrainte sur une association ternaire
    Bonjour à tous,

    Concernant la partie Modele Conceptuel de Données sur Merise, j'ai un problème à vous soumettre auquel je ne trouve pas de solution viable:

    Soit les entités PISTE (chanson d'un d'un album), ARTISTE et SPECIALITE (auteur, compositeur, chanteur, producteur...)

    Ci dessous, un diagramme contraignant l'artiste à n'intervenir sur une chanson qu'avec une seule spécialité. (La table associative aura pour clé primaire Id_Piste + Id_Specialite + Id_Artiste).
    Nom : image.png
Affichages : 756
Taille : 22,5 Ko

    Comment représenter le fait qu'un artiste puisse intervenir dans une même chanson, avec une spécialité différente?
    Par exemple: Lara Fabien est interprète de la chanson Je t'aime.
    Lara Fabian est auteur de la Chanson Je t'aime.

    Physiquement, il est facile de représenter ce modèle en liant une Table d'association (Specialite + Artiste) à la Table Piste

    Voici la modélisation la plus proche que j'ai réussit à produire, cependant la modélisation me semble incorrecte car une entité doit avoir une clé primaire (même si dans ce cas, la clé primaire de ARTISTE_SPECIALITE est portée par les FK de Artiste et Spécialité)
    Nom : image (1).png
Affichages : 721
Taille : 26,0 Ko

    Comment représenter ce cas?

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 136
    Points : 38 909
    Points
    38 909
    Billets dans le blog
    9
    Par défaut
    Bonjour

    Bonne nouvelle : vous n'avez rien à faire pour le mentionner

    Si au contraire la règle était : "un artiste ne peut intervenir que pour une spécialité", alors, vous auriez du poser une contrainte d'intégrité fonctionnelle (CIF) matérialisée par une flèche en direction de l'entité type artiste.
    Ensuite, dans le MPD, il aurait fallu supprimer l'identifiant SPECIALITE de la table résultante de l'association, de sorte a rendre le couple (PISTE, ARTISTE) unique, quelque soit la spécialité

    Mais là, encore une fois, rien à changer

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Novembre 2016
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Bonjour escartefigue et merci pour votre réponse.


    Donc selon vous, la proposition que j'ai proposée pour répondre à cette contrainte est viable:
    Nom : image (1).png
Affichages : 605
Taille : 26,0 Ko
    Il me semblait cependant qu'on ne modélisait jamais d'entités "Vides" (ce qui est le cas pour l'entité ARTISTE_SPECIALITE) mais si vous me confirmez que cette forme de modélisation est correcte j'en suis ravi!

  4. #4
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 136
    Points : 38 909
    Points
    38 909
    Billets dans le blog
    9
    Par défaut
    Non je parlais du premier schéma avec la relation à 3 pattes

    EDIT : j'argumente

    Avec votre premier schéma, la table issue de la relation aura une PK avec 3 composantes id_artiste + id_specialite + id_piste
    Donc rien n'interdit de changer d'id_spécialité sans changer d'artiste, votre PK restera unique

    C'est bien la règle (qui n'est pas la votre) selon laquelle un artiste aurait une et une seule spécialité, qui nécessiterait une modification légère au niveau MCD (la flèche) mais cruciale au niveau des index (clef unique sur 2 colonnes seulement)

  5. #5
    Membre chevronné
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Août 2007
    Messages
    797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Août 2007
    Messages : 797
    Points : 2 060
    Points
    2 060
    Par défaut
    Bonjour,

    Citation Envoyé par escartefigue Voir le message
    Bonne nouvelle : vous n'avez rien à faire pour le mentionner
    Je confirme ce que dit escartefigue.

    En reprenant l'exemple de Lara Fabian, le premier schéma permet bien de créer les occurrences de l'association "Participer" nécessaires à ce cas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Participer (Piste, Spécialité, Artiste)
    -------------------------------------------------
    Occurrence 1 : Je t'aime, Interprète, Lara Fabian
    Occurrence 2 : Je t'aime, Auteur, Lara Fabian
    N'oubliez pas de consulter les Cours Merise et la F.A.Q. Merise
    _______________________________________________________

    Les Règles du Club Developpez.com
    Vous avez votre réponse ? Merci de cliquer sur

Discussions similaires

  1. Problème de contrainte sur une partie de date (l'année)
    Par shefla dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 11/04/2006, 21h50
  2. contraintes sur une date !!
    Par hiko-seijuro dans le forum Oracle
    Réponses: 2
    Dernier message: 12/12/2005, 08h31
  3. SQLServer 2000: Liste des contraintes sur une colonne ?
    Par swirtel dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 08/11/2005, 16h13
  4. retrouver les contraintes sur une colonne
    Par kalari dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 18/10/2005, 17h03
  5. Problème lors d'un Update sur une date
    Par Nany dans le forum ASP
    Réponses: 3
    Dernier message: 19/05/2004, 22h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo