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 :

problèmes de cardinalités


Sujet :

Schéma

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 12
    Points : 6
    Points
    6
    Par défaut problèmes de cardinalités
    Bonjour à tous,

    Après quelques mois de modélisation "schématique" bien propre à moi j'ai commencé à travailler avec Merise. Tout de suite j'ai rencontré quelques problèmes et le plus dur était celui des cardinalités. En faisant des exercices trouvées sur le net je commettais toujours quelques erreurs par rapport aux réponses. J'ai donc établi mon MCD (imaginaire) d'un librairie avec des commentaires sur des cardinalités.

    Voici le diagramme:


    Et le commentaire:
    LIVRES -- APPARTENIR -- CATEGORIE
    1 livre peut appartenir à une et une seule catégorie
    1 catégorie peut concerner un ou plusieurs livres


    LIVRES -- ECRIRE -- ECRIVAINS
    1 livre peut être écrit par un ou plusieurs écrivains (ouvrage collectif par exemple)
    1 écrivain peut écrire un ou plusieurs livres

    ECRIVAINS -- NAITRE -- PAYS
    1 écrivain naît dans un et un seul pays
    1 pays peut être lieu de naissance d'aucun ou plusieurs écrivains

    LIVRES -- ACHETER -- CLIENT
    1 livre peut être vendu à aucun ou 1 client
    1 client peut acheter un ou plusieurs livres

    CLIENT -- HABITER -- VILLE
    1 client peut habiter dans une et une seule ville
    1 ville peut être habitée par aucun ou plusieurs clients

    VILLE -- SE TROUVER -- DEPARTEMENT
    1 ville peut se trouver dans un et un seul département
    1 département peut avoir aucune ou plusieurs villes

    Pourriez-vous m'indiquer si j'ai bien compris et réalisé les cardinalités dans ce modèle ? Je suis conscient que je devrais y mettre les identifiants etc. mais mon objectif est de comprendre des cardinalités.

    Merci d'avance pour vos opinions.

  2. #2
    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
    Juste un truc : D'après votre commentaire, une catégorie contient au moins un livre donc cardinalité 1,n au lieu de 0,n.

    Le reste est bon.
    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 !

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Effectivement, j'ai dû me mal corriger avant de poster le message. Mais en tout cas, merci pour ton aide.

  4. #4
    wazup
    Invité(e)
    Par défaut
    juste une petite remarque

    comme tu sembles débuter en MERISE (la remarque est vraie quelque soit le formalisme),

    je te conseilles vivement, même si ça ne te parait pas important sur un tel exemple d'école,

    de ne jamais utiliser le pluriel pour nommer les entités

    (livre etc..)

  5. #5
    wazup
    Invité(e)
    Par défaut
    autre chose concernant la contradiction relevée pour les catégories.

    Malgré le fait que le MCD relève de la partie statique,

    tu peux te poser la question déjà en terme de dynamique :

    autorisera-t-on la création de catégories en avance de phase, ou est-ce qu'une catégorie sera créée "au fil de l'eau ?

    dans le premier cas, il faut du 0,n

    dans le second cas, du 1,n interdit cela - sans pour autant compromettre
    la création au fil de l'eau.

    Alors pourquoi se créer des contraintes inutiles ?

    0,n serait un bon choix de départ

  6. #6
    wazup
    Invité(e)
    Par défaut
    comme diraient les dupondt,

    je dirait même plus :

    entre livre et categoris, si tu mets du 1,1 d'un côté et du 1,n de l'autre,

    il va y avoir un léger problème pour insérer un livre (avant la catégorie) ou une catégorie (avant un livre)


  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Merci pour vos remarques qui sont tout à fait justes. Je viens d'analyser un autre exemple (un n-ième déjà) et cette fois j'ai une hésitation dans l'élaboration du MCD. L'énoncé, je l'ai trouvé sur un forum mais je n'ai pas pu récupérer la réponse car le sujet datait de 2002.

    Le problème est suivant:
    Un nain de jardin en a assez de devoir compulser en permanence ses revues pour savoir quoi
    planter et quand dans son petit potager. Il décide d?informatiser cela.
    Chaque légume se plante à des mois précis et se récolte à d?autres mois (par exemple, la
    salade se plante de mai à juillet et se récolte de juillet à septembre). Un légume se plaît dans
    un type de sol donné, a besoin d?une certaine exposition solaire et d?arrosages plus ou moins
    fréquents.
    Les légumes sont sensibles à beaucoup de maladies qui sont de deux types : animaux (limace,
    puceron?) ou végétaux (mousse, mildiou?).
    Notre nain de jardin est soucieux d?utiliser des traitements naturels. Par exemple :
    - pour lutter contre les pucerons, on peut mettre du marc de café au pied des rosiers ;
    - le fumier d?orties est un bon déparasitaire pour les carottes?
    Il faut savoir comment préparer chaque traitement (comment réaliser un fumier d?orties?).
    Un traitement permet de soigner une ou plusieurs maladies sur un ou plusieurs légumes. Par
    exemple, le marc de café permet d?éliminer les pucerons des rosiers mais est également
    efficace pour éloigner les limaces des salades. Un traitement s?administre selon une posologie
    précise en fonction de la plante et de la maladie (pulvérisation 2 fois par semaine, en dépôt au
    pied des légumes?).
    Attention, un traitement peut être utile pour un légume mais toxique pour un autre. Les
    toxicités doivent être stockées pour ne pas commettre d?impair ! Notre nain de jardin souhaite également connaître l?efficacité de chaque traitement en fonction de la maladie et du légume.
    Travail à faire :
    Réalisez le MCD du potager du nain de jardin.
    Ma solution se présente de la façon suivante:


    Les hésitations concernent:
    - les mois des plantations - dans mon modèle de base j'ai fait un entité MOIS auquel j'ai attribué deux associations: récolter et planter. Dans le graphisme au-dessus, je les ai supprimées. Je pense qu'on pourrait mettre 4 propriétés dans l'entité LEGUME: debut_planter, fin_planter, debut_recolter, fin_recolter et placer dedans les mois qui ont une valeur inchangeable. Mais bon, j'ai des doutes et je voudrais savoir quel raisonnement est correct pour cet exemple-là ?
    - la notion de toxicité - je ne sais pas si j'ai bien compris l'énoncé en créant un nouvel entité. Peut-être plus efficace serait la création d'une propriété toxique (avec la valeur TRUE ou FALSE) dans l'association LEGUME -- concerner -- MALADIE ?

    Merci d'avance pour de nouvelles remarques.

  8. #8
    wazup
    Invité(e)
    Par défaut
    nos remarques, tu les trouves "très justes",

    mais ça ne t'empêche pas de rebalancer des 1,1 --- 1,n en pagaille !

    Enfin passons...

    Je vois principalement un manque d'information :

    Il y a une association entre légume et toxicité, mais pour quel traitement ?

    En fait, un traitement appliqué à un légume génère une toxicité.

    Cependant, il n'y a pas apriori besoin d'une association ternaire entre légume, toxicité et traitement.

    Il suffit d'une association entre traitement et légume, appelée toxicité et porteuse de l'information "taux de toxicité" et/ou tout autre qualifiant.

    En outre, les maladies ne sont que de deux types. Pourquoi une entité "type" ? un discriminant (champ) type porté par maladie suffit largement, même en cas d'augmentation du nombre de types possibles.

    Bon courage...

  9. #9
    wazup
    Invité(e)
    Par défaut
    PS:

    et les posologies ?

    A+

  10. #10
    wazup
    Invité(e)
    Par défaut
    Sinon, pour les toxicités, c'est bien la seconde solution qui est la meilleure, comme tu le pensais.

    Concernant les mois de début/fin de plantation et de récolte, les deux sont possibles.

    Je te conseille d'aller vers la simplicité, aussi les quatre propriétés dans la table (debut_plantation, fin_plantion, debut_recolte, fin_recolte) on l'air plus simple que quatre associations vers une même entité "mois", mais en fait cela revient presque à optimiser avant l'heure.

    Tu peux donc faire ton modèle conceptuel avec les quatre associations, et au moment du passage au modele logique, tu vas donc obtenir 4 clés étrangères vers une table mois de cardinalité 12 et immuable.

    Alors à ce moment tu peux très bien décréter que la table mois (car à présent c'est une table) est inutile, et tu reviens à la solution initiale, mais dûment justifiée (optimisation)

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par wazup Voir le message
    nos remarques, tu les trouves "très justes",

    mais ça ne t'empêche pas de rebalancer des 1,1 --- 1,n en pagaille !
    Mais j'ai déjà employé la singularité des noms Maintenant après une deuxième lecture j'ai élaboré des MCD deux exemples du Net qui n'ont pas eu la solution proposée. Sinon je résolut tout seul et je vérifie avec la proposition de l'auteur mais parfois je suis obligé passer par ici. Merci donc de votre engagement et aide (plus particulièrement à toi wazup). J'espère que bientôt je passerai un sans-faute.

    Énoncé 1
    La Cerisaie peut accueillir des tentes, des caravanes, des camping-cars et propose la location de bungalows. Chaque tente, caravane, etc.,.., occupe un emplacement. Pour la tarification les emplacements sont regroupés par type.

    D'autre part chaque emplacement possède des caractéristiques propres : sa surface, le nombre maximum de personnes qu'il peut accueillir. De plus, il appartient bien entendu à un type d'emplacement.

    Les vacanciers effectuent des séjours à la Cerisaie. Pour plus de commodité, chaque séjour est repéré par un numéro.

    A l'arrivée d'un client, la direction lui attribue un emplacement, et enregistre son nom (nom de la personne responsable s'il s'agit d'un groupe), la date du début de séjour, le nombre de personne qui vont séjourné..

    Au départ, la direction enregistre la date de départ, et édite la facture qui comprend la location d'un emplacement ainsi que le montant dû pour l'utilisation des équipements sportifs.

    En effet : "La Cerisaie" offre à ses clients, la possibilité d'exercer divers sports : le tennis, le vélo tout terrain, la planche à voile, le Pédalo et le canoë.

    Pendant leur séjour, les vacanciers louent des équipements pour un certain nombre d'unités, l'heure de tennis, la demi-journée de VTT, la journée de planche à voile, etc.

    Au moment de leur départ et pour être en mesure d'établir la facture correspondant au séjour effectué, la direction doit connaître ces nombres d'unités. Pour chaque séjour, seront donc enregistrés le nom du sport, le nombre d'unité et le jour de location (jour, mois, année).
    Ma réponse:


    Énoncé 2
    Chaque employé d'une entreprise est identifié par un numéro personnel de matricule, il est rattaché à un département de l'entreprise aussi tôt après sa période de formation. Il partage un bureau, avec ses collègues, et participe à un certain nombre de projets de l'entreprise.

    On connaît pour chaque employé son nom, prénom, la liste des différents salaires qu'il a touché lors de ses différentes fonctions au sein de l'entreprise (on a pour cela une date de début de prise de fonction).

    Chaque département identifié par un numéro de département a un budget propre, et est dirigé par un directeur qui fait partie du personnel, un directeur ne peut gérer qu'un seul département.

    Chaque bureau représenté par un numéro de bureau est rattaché à un département, et est caractérisé par une surface en mètres carrés, et un numéro de téléphone.

    Chaque projet représenté par un numéro de projet possède un certain budget, et emploie plusieurs personnes appartenant à différents départements.

    On connaît le nombre d'heures de travail effectué par chaque employé pour un projet donné.

    Chaque fonction est associée à un salaire de base, qui va évoluer en fonction de l'ancienneté calculée dans le poste.

    On souhaite gérer l’organisation générale de l’entreprise.
    Ma réponse:



    J'espère que cette fois je n'ai pas répété l'erreur avec les cardinalités 0,N .

Discussions similaires

  1. [MCD -> MPD] Problème avec cardinalités 1:1 - 0:1
    Par WarDrone dans le forum PowerAMC
    Réponses: 2
    Dernier message: 07/06/2011, 11h34
  2. Problème de cardinalité
    Par tech_77 dans le forum Merise
    Réponses: 4
    Dernier message: 10/10/2010, 01h40
  3. [MCD] Problème de cardinalité dans un MCD
    Par laracroft87 dans le forum Schéma
    Réponses: 2
    Dernier message: 07/02/2010, 12h31
  4. [MCD] Problème de cardinalité (3-3)
    Par kazehino dans le forum Schéma
    Réponses: 2
    Dernier message: 02/06/2009, 17h22
  5. Expert - Problème de cardinalité
    Par gie_icare dans le forum Langage SQL
    Réponses: 4
    Dernier message: 19/07/2007, 16h17

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