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 :

Souci avec le design d'une base de données musicale


Sujet :

Schéma

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    employé
    Inscrit en
    Août 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : employé
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2011
    Messages : 17
    Points : 1
    Points
    1
    Par défaut Souci avec le design d'une base de données musicale
    Bonjour à tous,

    C'est mon premier message et j'espère avoir suivi correctement les indications pour le choix du forum...

    Je travaille à la conception d'une base de données qui sera par la suite interconnectée avec une application audio. Et je bute sur un problème de choix des entités et de leurs relations.

    Si l'on prend le cas basique de la relation d'un artiste qui a enregistré plusieurs albums, la relation "1 à plusieurs" s'impose assez logiquement. Cependant. Il y a un cas particulier et qui est loin d'être anecdotique. C'est celui des compilations, qui illustre l'hypothèse inverse: un album pour plusieurs artistes.

    Pour casser cette relation "plusieurs à plusieurs", j'ai envisagé de créer un "artiste collectif", qui serait systématiquement lié aux compilations. Chaque chanson aurait alors une relation avec l'Id du véritable artiste. Mais si je choisis cette solution, je me retrouve face à une probable incohérence.

    En effet, on a un "artiste collectif" lié à un album. L'album est lié à des chansons et ces chansons ont donc un lien avec d'une part un album et d'autre part un artiste (l'artiste réel, donc). Autrement dit, une chanson a un lien direct avec l'artiste correct et un lien indirect avec l'artiste collectif, à travers le titre de l'album. N'est-ce pas un peu "dangereux" comme schéma? Je crains que ce ne soit pas très adéquat comme entourloupe de design.

    Je suis donc à la recherche d'une autre piste pour solutionner ce problème des compilations. J'imagine que je suis loin d'être le premier à rencontrer cette particularité des bases de données musicales. Malheureusement, je n'ai pas réussi à mettre la main sur des messages qui l'abordaient.

    Toute réflexion sur mon petit problème sera extrêmement bienvenue

    Merci et bonne journée ensoleillée!

    Alain

  2. #2
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour Dataweary,

    Les entités fictives sont toujours sources de problèmes futurs...

    Suggestion :

    Entité Artiste
    - Id_Artiste (PK)
    - Nom
    ...

    Entité Oeuvre
    - Id_Oeuvre (PK)
    - Titre_Oeuvre
    ...
    ==> entité des chansons, par exemple.

    Entité Artiste_Oeuvre
    - Id_Artiste (PK)
    - Id_Oeuvre (PK)
    - Type de création (par exemple)
    ...
    ==> eh oui, une oeuvre pourrait être créée par plusieurs artistes.

    Entité Album
    - Id_Album (PK)
    - Titre_Album
    ...

    Entité Album_Oeuvre
    - Id_Album (PK)
    - Id_Oeuvre (PK)
    ==> l'oeuvre te permet de retrouver l'ensemble des artistes (ainsi qu'elle-même, bien entendu)

    Relations
    Artiste ---(0,n)---[est l'auteur de]---(1,1)--- Artiste_Oeuvre ;
    Oeuvre ---(0,n)---[a été créée par]---(1,1)--- Artiste_Oeuvre ;
    Album ---(1,n)---[est composé de]---(1,1)--- Album_Oeuvre ;
    Oeuvre ---(0,n)---[est présente dans]---(1,1)--- Album_Oeuvre.
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    employé
    Inscrit en
    Août 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : employé
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2011
    Messages : 17
    Points : 1
    Points
    1
    Par défaut
    Bonjour Richard,

    Merci pour cette réponse rapide et éclairante!

    Citation Envoyé par Richard_35 Voir le message
    Les entités fictives sont toujours sources de problèmes futurs...
    oui, c'est clair. Je sentais bien que c'était pas hyper clean, en y travaillant

    Citation Envoyé par Richard_35 Voir le message
    Suggestion :

    Entité Artiste
    - Id_Artiste (PK)
    - Nom
    ...
    Je fais mouliner ton idée de découpage dans ma petite caboche et je te tiens au courant, bien entendu!

    Merci encore pour ton aide et à bientôt

    - alain -

  4. #4
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Notes, également, qu'une même oeuvre (une même chanson) pourra être présente dans plusieurs albums.

    Tout ça pour illustrer qu'il ne faut surtout pas
    .../... casser cette relation "plusieurs à plusieurs" .../...
    car, si c'est la réalité, eh bien... c'est la réalité.
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    employé
    Inscrit en
    Août 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : employé
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2011
    Messages : 17
    Points : 1
    Points
    1
    Par défaut
    Bonsoir Richard,

    Citation Envoyé par Richard_35 Voir le message
    une même oeuvre (une même chanson) pourra être présente dans plusieurs albums.

    Tout ça pour illustrer qu'il ne faut surtout pas "casser la relation plusieurs à plusieurs" car, si c'est la réalité, eh bien... c'est la réalité.
    Je me demande si je ne me suis pas mal exprimé dans mon message tout à l'heure. Ce que je voulais dire (mais c'est peut-être erroné, tu me le diras si tu veux bien), c'est qu'une entité comme artiste/oeuvre que tu proposes, transforme la relation "plusieurs à plusieurs" entre les entités "artiste" et "oeuvre" en deux relations "1 à plusieurs", impliquant chacune la nouvelle entité artiste/oeuvre. C'est en cherchant à ajouter une relation intermédiaire de ce type-là que je parlais de "casser". Le terme n'est en effet pas très approprié.

    Sinon, j'ai un peu avancé dans la réflexion. Dès que j'ai un brouillon de schéma, je le poste et, si tu en as le temps, j'aimerais avoir ton avis critique

    cordialement,

    - alain -

  6. #6
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Citation Envoyé par Dataweary
    C'est en cherchant à ajouter une relation intermédiaire de ce type-là que je parlais de "casser"
    ==> OK ! Nous sommes d'accord, donc.
    Citation Envoyé par Dataweary
    Dès que j'ai un brouillon de schéma, je le poste et, si tu en as le temps, j'aimerais avoir ton avis critique
    ==> OK.

    Bonne réflexion, donc.
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    employé
    Inscrit en
    Août 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : employé
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2011
    Messages : 17
    Points : 1
    Points
    1
    Par défaut
    Rebonsoir...

    Citation Envoyé par Richard_35 Voir le message
    Bonne réflexion, donc.
    Nouveau point épineux. Je me demande si je ne vais pas devoir faire une distinction entre musique classique et non classique. Voici le souci qui se présente. En "non classique", qu'il s'agisse de chanson française, de techno, de rock, de jazz ou de musique du monde, une chanson (notre entité "oeuvre" dans ta suggesion) forme un tout, détachable de l'album à laquelle elle appartient et que l'on retrouve parfois sur d'autres albums, soit parce qu'elle a fait l'objet d'une compilation, soit parce qu'elle a été interprétée par quelqu'un d'autre.

    Je vais utiliser quelques exemples réels pour mieux expliquer ce qui coince.
    Prenons par exemple Blowin' in the wind, de Bob Dylan. La chanson se trouve sur le deuxième album du chanteur, Freewheelin'. Mais elle se trouve également sur des compilations de Bob Dylan comme le très connu Greatest Hits, de 1967. Il l'a également interprétée en live, comme sur le Live at Budokan. La chanson a également été reprise par une multitude d'artistes, de Peter, Paul and Mary à Joan Baez, en passant par Stevie Wonder.

    Pour tous ces exemples que je viens de donner, ta solution qui consiste à passer par une entité artiste/oeuvre fonctionne impeccablement et je compte l'adopter telle quelle.

    Mais il y a un cas où ça ne semble pas coller. C'est la musique classique. Une oeuvre classique, identifiée comme un tout et dont les contours ne correspondent ni à un morceau unique ni à un album est souvent composée de plusieurs parties.

    Prenons par exemple les Images pour piano, de Debussy. C'est une oeuvre en deux parties, le livre I et le livre II. Chaque livre comprend trois pièces, qui ont chacune un nom comme "Reflets dans l'eau" et "Les cloches à travers les feuilles". Les symphonies de Mahler ou de Beethoven ont aussi plusieurs mouvements avec leur dénomination.

    Chaque partie n'existe que comme faisant partie d'une oeuvre. Mais l'oeuvre représente un tout même si parfois, dans un album-récital, par exemple, un interprète sélectionne seulement l'une ou l'autre pièce.

    Je ne sais pas comment faire. Je me demande s'il ne faudrait pas faire une distinction entre musique non-classique (qui reprendrait le schéma de tout à l'heure) et musique classique, qui contiendrait un découpage en entités différents.

    Ou bien simplement ajouter une ou plusieurs entités, comme "partie", par exemple. qui permettraient de prendre en compte la spécificité de la catégorie musique classique.

    Voilà, l'explication est un peu longuette, je crois, mais c'est pour être bien certain d'avoir exprimé le problème que je rencontre ici...

    cordialement,

    - alain -

  8. #8
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Tu pourrais tout simplement considérer qu'une oeuvre (symphonie) peut être composée de plusieurs oeuvres (mouvements) et qu'une oeuvre peut entrer au plus dans la composition d'une autre oeuvre.
    oeuvre -0,n----composer
    |-----------0,1----------|

    Ce schéma conduit à la création d'une table associative.
    oeuvre (ovr_id, ovr_nom...)
    ovr_composer_ovr (oco_id_oeuvre_composante, oco_id_oeuvre_globale)
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    employé
    Inscrit en
    Août 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : employé
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2011
    Messages : 17
    Points : 1
    Points
    1
    Par défaut
    Bonsoir CinePhil,

    C'est une piste à creuser. Ne risque-t-on pas, cependant, d'avoir une confusion entre oeuvre et partie d'oeuvre lors de recherches?

    A propos de tables associatives, je découvre ton blog dans ta signature et il y justement ce long développement sur le sujet. Je vais doucement digérer tout ça, par la même occasion!

    merci de ton aide,

    - alain -

    Citation Envoyé par CinePhil Voir le message
    Tu pourrais tout simplement considérer qu'une oeuvre (symphonie) peut être composée de plusieurs oeuvres (mouvements) et qu'une oeuvre peut entrer au plus dans la composition d'une autre oeuvre.

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    employé
    Inscrit en
    Août 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : employé
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2011
    Messages : 17
    Points : 1
    Points
    1
    Par défaut
    Bonjour CinePhil,

    En y regardant d'un peu plus près, je suppose que c'est tout simplement la distinction entre les Id de l'oeuvre composante et de l'oeuvre globale qui permettront de faire la distinction lors du codage d'un processus de recherche.

    Ce qui me laisse penser que ta solution très simple est vraiment une très bonne piste!

    cordialement,

    - alain -

  11. #11
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour Dataweary et CinePhil,

    Citation Envoyé par CinePhil
    Tu pourrais tout simplement considérer qu'une oeuvre (symphonie) peut être composée de plusieurs oeuvres (mouvements) et qu'une oeuvre peut entrer au plus dans la composition d'une autre oeuvre.
    oeuvre -0,n----composer
    |-----------0,1----------|
    ==> c'est une excellente possibilité : établir une "nomenclature" d'oeuvre. En outre, l'ajout de niveau supplémentaire est aisé.

    Mais, effectivement, les "oeuvres composantes" seront "mélangées" aux "oeuvres globales" dans l'entité oeuvre. Dans l'entité oeuvre, le seul moyen de repérer les "oeuvres globales" sera l'extraction des enregistrements de "Oeuvre" non présentes dans "ovr_composer_ovr" (via oco_id_oeuvre_composante). A moins, que nous considérions qu'une "oeuvre globale" est composée, au moins, d'elle-même... mais bon, je ne pense pas qu'il faille aller jusque là.


    Juste une autre possibilité : gestion d'une arborescence :
    Tu as défini 3 niveaux d'arborescence : Oeuvre globale (Images pour piano, de Debussy) ==> Oeuvre composante 1er niveau (livre I et livre II) ==> Oeuvre composante 2ème niveau ("Reflets dans l'eau" et "Les cloches à travers les feuilles"). Peut-être est-ce le maximum de niveau à prévoir ?

    Nous pourrions donc avoir :
    Entité Oeuvre
    - Id_Oeuvre (PK)
    - Titre_Oeuvre
    ...

    Entité Oeuvre composante 1er niveau
    - Id_Oeuvre (PK)
    - Id_Oeuvre_1 (PK)
    - Titre_Oeuvre_Composante_1
    ...

    Entité Oeuvre composante 2ème niveau
    - Id_Oeuvre (PK)
    - Id_Oeuvre_1 (PK)
    - Id_Oeuvre_2 (PK)
    - Titre_Oeuvre_Composante_2
    ...

    ==> je te laisse trouver les relations, relativement évidentes.
    ==> cela permet de ne "rentrer" dans les composantes QUE par le niveau immédiatement supérieur.

    L'entité Album_Oeuvre deviendrait :
    - Id_Album (PK)
    - Id_Oeuvre (PK)
    - Id_Oeuvre_1 (PK)
    - Id_Oeuvre_2 (PK)
    ...
    ==> avec les les relations, relativement évidentes, qui vont bien.
    ==> mais, c'est vrai que nous voyons apparaître de nombreux Id_Oeuvre_1 et Id_Oeuvre_2 = Null. Personnellement, cela ne me dérange pas trop.
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  12. #12
    Nouveau Candidat au Club
    Homme Profil pro
    employé
    Inscrit en
    Août 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : employé
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2011
    Messages : 17
    Points : 1
    Points
    1
    Par défaut
    Bonjour Richard et CinePhil,

    Citation Envoyé par Richard_35 Voir le message
    Juste une autre possibilité : gestion d'une arborescence :
    Tu as défini 3 niveaux d'arborescence : Oeuvre globale (Images pour piano, de Debussy) ==> Oeuvre composante 1er niveau (livre I et livre II) ==> Oeuvre composante 2ème niveau ("Reflets dans l'eau" et "Les cloches à travers les feuilles"). Peut-être est-ce le maximum de niveau à prévoir ?
    Même s'il faudra encore réfléchir aux implications de ta suggestion, dans la foulée de celle de CinePhil qui avait ouvert cette porte, ça me semble un nouveau progrès dans la conception de cette petite base qui m'occupe.

    D'autant que je n'ai pas encore trouvé d'exemples où ton arborescence des oeuvres à trois niveaux était prise en défaut.

    Outre l'exemple à trois niveaux des Images de Debussy, voici un exemple à deux niveaux: une sonate de Beethoven est constituée la plupart du temps (mais il y a des exceptions) de trois ou quatre mouvements.

    On aurait donc pour niveau principal de l'oeuvre: Sonate n°28 et pour niveaux secondaires, les quatre mouvements qu'elle comporte.

    Merci à tous les deux, je continue à mouliner (malheureusement en faisant un max d'autres choses simultanément...)

    - alain -

  13. #13
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Attention : il ne faut pas complexifier la chose plus que nécessaire ! (je ne dis pas que c'est le cas).

    Le dernier niveau doit comporter des parties d'oeuvres globales (oeuvres composantes) qui sont susceptibles de se retrouver, seules, sur un album (s'il s'agit de gestion d'album). Par exemple, il n'est (peut-être) pas nécessaire de créer un niveau par mouvement, s'il est impossible de trouver un album qui ne comporte qu'un seul mouvement de la Sonate n°28 et pas les autres.

    A toi de définir le niveau le plus fin.
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  14. #14
    Nouveau Candidat au Club
    Homme Profil pro
    employé
    Inscrit en
    Août 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : employé
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2011
    Messages : 17
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par Richard_35 Voir le message
    Attention : il ne faut pas complexifier la chose plus que nécessaire! (...) Par exemple, il n'est (peut-être) pas nécessaire de créer un niveau par mouvement, s'il est impossible de trouver un album qui ne comporte qu'un seul mouvement de la Sonate n°28 et pas les autres.
    A toi de définir le niveau le plus fin.
    Je crois qu'il ne sera pas possible de faire l'économie de ces trois niveaux. Il est très fréquent de trouver sur un album-récital d'un chanteur des extraits de divers opéras. Un pianiste, pour un concert enregistré, picorera quelques-unes des 24 études de Chopin (elles-mêmes réparties en deux douzaines, avec, pour chacun des deux cahiers, un numéro d'opus).

    Quand je vais me lancer dans le prototype, je verrai vite si c'est gérable

    - alain -

  15. #15
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    OK, bon courage et à bientôt.
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  16. #16
    Nouveau Candidat au Club
    Homme Profil pro
    employé
    Inscrit en
    Août 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : employé
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2011
    Messages : 17
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par Richard_35 Voir le message
    OK, bon courage et à bientôt.
    merci

    A propos des NULL que tu évoquais un peu plus tôt, j'aimerais aussi poser une question très générique.

    Dans le cas de l'oeuvre, des champs permettront de définir le genre ou encore la durée. Ces données ne sont pas toujours disponibles. Dans ce cas, est-il préférable de permettre une valeur NULL pour ce champ ou vaut-il mieux malgré tout imposer d'encoder une valeur.

    La réponse est d'ailleurs peut-être différente pour le genre et la durée. Dans le cas du genre, on pourrait avoir une entrée "Indéterminé" dans une liste de sélection lors d'un encodage. En revanche, la durée ne se prêtera pas à l'emploi d'une telle liste et dans ce cas, on pourrait peut-être tolérer une valeur NULL.

    C'est un point certainement un peu secondaire par rapport au design général auquel je m'attaque. Mais je viens de me poser la question en réfléchissant à l'entité Oeuvre_principale.

    merci encore pour ton aide, c'est vraiment précieux!

    - alain -

  17. #17
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Il faut distinguer l'emploi des NULL :
    • pour les champs de clé, ou clé étrangère : qui posent fréquemment débat (bonhomme NULL). C'est le cas de "genre", car tu devras créer une entité "Genre" et lier "Album" à "Genre". Personnellement, je ne trouve pas qu'il soit nécessaire de créer une table association uniquement pour éviter le bonhomme NULL, mais je conçois qu'il y a débat ;
    • dans des champs ne faisant pas partie d'une clé : c'est le cas pour "durée", qui est un attribut pur et simple. Si tu ne connais pas une durée, eh bien tu laisseras le champ à NULL, aucun problème.
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  18. #18
    Nouveau Candidat au Club
    Homme Profil pro
    employé
    Inscrit en
    Août 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : employé
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2011
    Messages : 17
    Points : 1
    Points
    1
    Par défaut
    Bonsoir,

    Citation Envoyé par Richard_35 Voir le message
    Il faut distinguer l'emploi des NULL :
    Comme ceci, c'est très clair, merci!

    cordialement,

    - alain -

  19. #19
    Nouveau Candidat au Club
    Homme Profil pro
    employé
    Inscrit en
    Août 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : employé
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2011
    Messages : 17
    Points : 1
    Points
    1
    Par défaut
    Rebonsoir,

    Voici une autre interrogation, qui, à nouveau, touche à la distinction entre musique classique et non classique. Elle concerne la distinction artiste/auteur/interprète qui se présente, me semble-t-il, très différemment entre les deux catégories ci-dessus.

    Je vais essayer d'être le plus concis et clair possible en espérant que cela permettra à quelqu'un de m'aider dans cette petite analyse.

    Pour commencer, je précise que j'ai ajouté une entité Auteur, qui permet de préciser quel est l'auteur d'une chanson. Dans de nombreux cas, cela apporte une information importante. C'est le cas du jazz (mais ce n'est pas du tout limitatif). Un nombre important de jazzmen incluent dans leur répertoire des standards dont ils font leur propre interprétation. L'intérêt serait, par exemple, de retrouver toutes les interprétations d'un classique tel que Caravan ou My funny Valentine disponibles dans la base de données.

    C'est un peu secondaire dans mon projet mais je l'explique ici car cela m'aidera à mieux exposer le problème qui m'embête.

    En musique "non classique" on aura par exemple un artiste (Miles Davis) qui interprète une oeuvre (My funny Valentine) dont l'auteur (en fait, les auteurs) est le célèbre tandem Rodgers and Hart. Ca me semble assez basique comme schéma, jusque là.

    Le problème est que les choses me semblent légèrement différentes en musique classique. Du moins avec les choix que je veux faire. Voici encore un exemple (plus facile pour moi de m'expliquer avec des exemples qu'en faisant des abstractions, sorry lol):

    Jean-Sébastien Bach a composé un grand nombre de cantates. Elles ont fait l'objet de multiples enregistrements par différents interprètes. Gardiner ou Harnoncourt, pour n'en citer que deux parmi toute une kyrielle.

    Dans ma base, je souhaite considérer que l'artiste, ce n'est pas Gardiner mais Bach lui même. Ca me paraît évident du point de vue de l'utilisateur. S'il fait une recherche par artiste, c'est Nirvana, les Beatles, Bach ou Mozart qu'il va introduire dans sa requête. Pas le chef d'orchestre ou le pianiste. Du moins s'il fait une recherche par "Artiste".

    S'il cherche des oeuvres de Bach pour clavier, pour lui, l'artiste, c'est Bach et, par exemple, Glenn Gould est son interprète. Pour faire la comparaison avec l'exemple précédent en "non classique", l'artiste, c'est Miles Davis et non pas Rodgers & Hart, dont il serait simplement l'interprète.

    Ceci pour montrer qu'il y a, me semble-t-il, une sacrée nuance et que je ne vois pas comment faire cohabiter classique et non classique à cause de cela.

    Quelqu'un aurait-il une piste pour réconcilier les deux mondes?

    Excellente soirée,

    - alain -

  20. #20
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Dans ma base de données sur le cinéma, j'ai ceci :

    artiste -0,n----participer----0,n- film
    fonction -0,n-------|

    Un artiste (Charlie Chaplin) peut participer à plusieurs films (Les temps modernes) en assumant plusieurs fonctions (réalisateur, acteur, compositeur...)

    Ton cas me semble similaire.
    En musique "non classique" on aura par exemple un artiste (Miles Davis) qui interprète une oeuvre (My funny Valentine) dont l'auteur (en fait, les auteurs) est le célèbre tandem Rodgers and Hart. Ca me semble assez basique comme schéma, jusque là.
    Rodgers and Hart sont aussi des artistes qui ont participé à l'oeuvre en tant que compositeurs.

    Les amateurs de musique classique privilégient parfois certaines interprétations plutôt que d'autres, donc tu as raison de vouloir tout mentionner, le compositeur, l'orchestre, son chef et le soliste du concerto pour piano par exemple. Mon modèle générique répond je pense à toutes les situations. Il suffit que tu remplaces film par oeuvre.
    Au passage, les musiques de film sont aussi des oeuvres musicales dont des thèmes figurent sur des compilations et ont put être reprises par certains artistes sur un disque.

    Personnellement, j'interdis désormais les clés étrangères nulles et j'évite autant que possible les colonnes nullables, de plus en plus convaincu par les arguments de fsmrel qui tire à vue sur le bonhomme NULL.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

Discussions similaires

  1. Réponses: 2
    Dernier message: 02/07/2009, 16h06
  2. Réponses: 9
    Dernier message: 06/04/2007, 19h45
  3. Jtree avec des informations d'une base de données
    Par Lebas dans le forum Composants
    Réponses: 4
    Dernier message: 23/01/2007, 16h27
  4. Problème avec les indexes sur une base de données.
    Par osoudee dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 09/02/2006, 09h24
  5. Pb avec les références d'une base de données
    Par Celia1303 dans le forum Access
    Réponses: 8
    Dernier message: 01/12/2005, 15h44

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