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 :

Personnage et influences


Sujet :

Schéma

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Personnage et influences
    Bonjour à tous et à toutes,

    Dans le cadre d'un projet personnel, je tente de modéliser la base de donnée d'un jeu. N'étant que peu expérimenté en MERISE, je me heurte à un problème pour lequel j'ai le plus grand mal à trouver une solution. Je me demandais si les plus expérimentés d'entre vous pourraient m'aider à le résoudre ?

    Soit données les 3 entités suivantes :
    1. CATÉGORIES DE CERCLES D'INFLUENCES: Proche, Éloigné, Opposé, Ennemi -> Nombre de valeurs fini que sont les quatre citées
    2. CERCLES D'INFLUENCES : Culturel, Gotha, Business, Globe-Trotters, Fonctionnaires, Forces de l'ordre, Pègre, Notables, etc. -> Nombre de valeurs infinie
    3. PERSONNAGE -> entité en relation avec les cercles d'infuences.


    Je voudrais associer chaque personnage à un couple (catégorie / cercle) pour chaque catégorie existante.

    Par exemple un personnage serait :
    • 'proche' du cercle 'culturel'
    • 'éloigné' du cercle 'forces de l'ordre'
    • 'opposé' du cercle 'notables'
    • 'ennemi' du cercle 'pègre'



    Cependant certaines règles d'exclusion viennent compliquer la chose : par exemple ce personnage, après qu'il ait été déclaré 'proche' du cercle 'culturel' ne pouvait plus ni être 'proche' d'un autre cercle, ni même associer le cercle 'culturel' à une autre catégorie de cercles d'influence telle que 'éloigné'.

    Aucune des modélisations que j'ai envisagé jusqu'ici ne m'est apparu comme satisfaisante. Comment modéliseriez vous cela en merise ?

    Merci par avance pour vos éventuelles réponses !

  2. #2
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    7 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 7 965
    Points : 30 774
    Points
    30 774
    Billets dans le blog
    16
    Par défaut
    Bonsoir Ian,

    Dans un 1er temps, votre MCD ressemble à celui-ci, dans lequel les 3 entités-types sont en relation au moyen d’une association ternaire R, correspondant au prédicat suivant :

    Le personnage PersonnageId est associé au cercle CercleId pour la catégorie CategorieId



    Mais s’il existe la contrainte selon laquelle « Dans une catégorie donnée, un personnage ne peut appartenir qu’à un seul cercle », alors il faut mettre en oeuvre une CIF (contrainte d’intégrité fonctionnelle), à la manière de la FAQ Merise.

    La représentation peut être ainsi simplifiée :



    S’il existe la contrainte selon laquelle « Pour une cercle donné, un personnage ne peut appartenir qu’à une seule catégorie », de la même façon :




    Et si les deux contraintes sont à assurer :




    Le problème est que souvent les AGL ne répercutent pas les contraintes lors du passage au MLD, où le triplet {PersonnageId, CategorieId, CercleId} est alors clé candidate de R, c'est-à-dire que pour une catégorie donnée, un personnage peut se retrouver associé à plusieurs cercles, et que pour un cercle donné, ce personnage peut être associé à plusieurs catégories. Avec DB-MAIN (gratuit) on sait assurer les contraintes, car cet AGL permet de déclarer les identifiants de l’association R dès le MCD : {PERSONNAGE, CATEGORIE} et {PERSONNAGE, CERCLE} :


    Et l’on observe dans le MLD les deux contraintes sous forme des clés candidates {PersonnageId, CategorieId} et {PersonnageId, CercleId} :



    On retrouve le problème qui se pose par exemple avec les courses de chevaux : lors d’une course, un jockey ne peut monter qu’un seul cheval, un cheval ne peut être monté que par un seul jockey et être porteur d’un seul numéro. Ces 3 contraintes peuvent être prises en compte ainsi avec DB-MAIN, voyez ici et .

    Maintenant, votre récit est ambigu. Par exemple, vous écrivez :

    Citation Envoyé par Ian
    Je voudrais associer chaque personnage à un couple (catégorie / cercle) pour chaque catégorie existante.

    Est-ce à dire que les paires {CATEGORIE, CERCLE} sont prédéfinies, et que vous voulez associer chaque personnage à une et une seule de ces paires ? Si oui, la modélisation se simplifie.
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Bonjour fsmrel,

    tout d'abord je voulais vous remercier pour votre réponse qui dépasse de très loin tous mes espoirs et dont les nombreux détails vont m'aider à progresser dans ma compréhension future des problèmes !

    pour évacuer l’ambiguïté de ma formulation, je précise que le personnage sera systématiquement associé à 4 couples :

    'proche' + CERCLE
    'éloigné' + CERCLE
    'opposé' + CERCLE
    'ennemi' + CERCLE

    c'est à dire que toutes les valeurs de CATÉGORIE (qui sont les 4 citées dessus, 'proche', etc.) seront systématiquement utilisées (une fois et une seule fois) et associées à un cercle qui lui peut varier mais ne se retrouver qu'une fois dans l'un de ces 4 couples.

    j'espère avoir mieux formulé mes contraintes cette fois !

  4. #4
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    7 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 7 965
    Points : 30 774
    Points
    30 774
    Billets dans le blog
    16
    Par défaut
    Bonsoir Ian,

    Si je comprends bien, les contraintes sont donc les suivantes :

    (R1) Pour un personnage et une catégorie, il y a au moins et au plus un cercle ;

    (R2) Pour un personnage et un cercle, il y a au moins et au plus une catégorie ;

    (R3) Pour un personnage, il y au moins et au plus 4 catégories.

    Si c’est bien cela, R1 et R2 sont l’objet des CIF que j’avais proposées :



    Ou dans le style DB-MAIN :

    MCD


    MLD :



    Quant à R3, il faudra vérifier au niveau SQL qu’il n’existe pas de personnage n’étant pas présent exactement 4 fois dan la table R.

    Sommes-nous en phase ?
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

Discussions similaires

  1. Problème de modélisation MCD
    Par willytito dans le forum Schéma
    Réponses: 4
    Dernier message: 19/11/2008, 04h34
  2. [MCD] Problème de modélisation d'un QCM
    Par Dam)rpgheaven dans le forum Schéma
    Réponses: 1
    Dernier message: 15/01/2008, 00h57
  3. [CONCEPTION MCD] Problème avec les clés composées
    Par fabriceMerc dans le forum Schéma
    Réponses: 3
    Dernier message: 14/02/2005, 10h43
  4. [Class/PHP/Postgres] Problème de modélisation...
    Par k-reen dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 27/02/2003, 09h49

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