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 :

MCD - problème entre corrigé et mon MCD


Sujet :

Schéma

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 121
    Points : 82
    Points
    82
    Par défaut MCD - problème entre corrigé et mon MCD
    Bonjour,

    J'ai besoin d'aide, j'ai un corrigé qui ne correspond pas à mon exercice, mais je n'arrive pas à comprendre le corrigé.
    La correction :
    Nom : image1.png
Affichages : 902
Taille : 16,8 Ko
    Mon MCD:
    Nom : exo1.jpg
Affichages : 785
Taille : 36,7 Ko

    Au nouveau “Open-Air Music-Hall” de Luxembourg, les abonnés peuvent réserver des places pour différents spectacles et reçoivent des billets d’entrée se présentant comme suit:

    LUXEMBOURG
    OPEN-AIR
    MUSIC-HALL

    22/6/99
    20H30

    Place : 323
    Entrée :
    Centre Balcon
    SPECTACLE
    Numéro : 4711 Titre : Drei Bridder

    SEANCE
    Numéro : 309 Date : 22/6/99 Heure : 20H30

    ABONNE
    Numéro : 222 Nom : Carlos Neves

    PLACE
    Numéro : 323 Couverte : Non Entrée : Centre Balcon
    Catégorie place : C3 Libellé catégorie : Bonne-vue

    Prix à payer : 100 Euro

    Pour une séance d’un spectacle, les prix à payer sont identiques pour toutes les places d’une catégorie.
    Plusieurs question :
    A partir de quand je dois ajouter un type entité. Par exemple, pour le type entité entrée , j'ai une dépendance fonctionnel direct entre le numéro de place et l'entrée. Ce n'était pas le cas pour la catégorie ou il y a une dépendance fonctionnelle transitive, j'ai donc ajouter un type entité. Mais dans la correction, il y a aussi un type entité entrée.

    Pour l'association ternaire, je n'arrive pas à lire correctement l'association; je lis dans la correction qu'une place peut appartenir à plusieurs séances et plusieurs abonnées, ce qui est aberrant.

    Pourquoi faire une association facturer alors que le prix est une dépendance fonctionnelle que de la catégorie. On va se retrouver avec un prix qui dépend à la fois de la séance et de la catégorie ?

    Merci pour vos responses.

  2. #2
    Membre émérite
    Avatar de Paprick
    Homme Profil pro
    Professeur des Universités
    Inscrit en
    Juin 2019
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Professeur des Universités
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2019
    Messages : 678
    Points : 2 716
    Points
    2 716
    Par défaut
    Bonsoir,
    Citation Envoyé par bbsebb Voir le message
    A partir de quand je dois ajouter un type entité. Par exemple, pour le type entité entrée , j'ai une dépendance fonctionnel direct entre le numéro de place et l'entrée. Ce n'était pas le cas pour la catégorie ou il y a une dépendance fonctionnelle transitive, j'ai donc ajouter un type entité. Mais dans la correction, il y a aussi un type entité entrée.
    La classe d'entités "Entrée" ne comprenant qu'une seule rubrique, votre solution est acceptable, mais plusieurs places étant concernées par la même entrée, la correction de votre professeur est préférable.
    En effet, tel que vous l'avez modélisé, on pourrait avoir des divergences d'écriture sur le libellé de l'entrée ("Centre Balcon", "Centre du balcon", ...) : la correction qui vous est proposée permettra ainsi des requêtes plus fiables (par exemple, le nombre de personnes ayant emprunté une entrée donnée).

    Pour l'association ternaire, je n'arrive pas à lire correctement l'association; je lis dans la correction qu'une place peut appartenir à plusieurs séances et plusieurs abonnées, ce qui est aberrant.
    Non, il faut lire qu'il y a une réservation pour un abonné donné, sur une place donnée à une séance donnée.
    Le problème, par contre, vient de la non irréductibilité de l'identifiant : la clé correspondante dans la table de la base de données ne sera pas minimale !
    En effet, pour une place donnée à une séance donnée, il ne peut y avoir qu'un seul abonné : il faut donc rajouter une CIF ayant pour cible la classe d'entités "Abonné".
    Sur ce point, la correction qui vous a été fournie n'est pas correcte.

    Pourquoi faire une association facturer alors que le prix est une dépendance fonctionnelle que de la catégorie. On va se retrouver avec un prix qui dépend à la fois de la séance et de la catégorie ?
    Le sujet indique : "Pour une séance d’un spectacle, les prix à payer sont identiques pour toutes les places d’une catégorie".
    Le prix dépend donc bien de la séance et de la catégorie.

    Donc, à part la CIF manquante au niveau de l'association "réserver", la correction de votre professeur est correcte.
    Patrick Bergougnoux - Professeur des Universités au Département Informatique de l'IUT de Toulouse III
    La simplicité est la sophistication suprême (Léonard de Vinci)
    LIVRE : Modélisation Conceptuelle de Données - Une Démarche Pragmatique
    Looping - Logiciel de modélisation gratuit et libre d'utilisation

  3. #3
    Membre émérite
    Avatar de Paprick
    Homme Profil pro
    Professeur des Universités
    Inscrit en
    Juin 2019
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Professeur des Universités
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2019
    Messages : 678
    Points : 2 716
    Points
    2 716
    Par défaut
    Voici ce que donne le MCD avec la CIF :

    Nom : MCD bbsebb.jpg
Affichages : 590
Taille : 44,7 Ko

    Une autre CIF peut également être définie avec "Place" pour cible : en effet, pour un abonné et une séance, il ne peut y avoir qu'une place.
    Si les 2 CIF sont implémentées, une clé alternative sera générée par Looping dans le code SQL.
    Patrick Bergougnoux - Professeur des Universités au Département Informatique de l'IUT de Toulouse III
    La simplicité est la sophistication suprême (Léonard de Vinci)
    LIVRE : Modélisation Conceptuelle de Données - Une Démarche Pragmatique
    Looping - Logiciel de modélisation gratuit et libre d'utilisation

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 121
    Points : 82
    Points
    82
    Par défaut
    Citation Envoyé par Paprick Voir le message
    Bonsoir,

    La classe d'entités "Entrée" ne comprenant qu'une seule rubrique, votre solution est acceptable, mais plusieurs places étant concernées par la même entrée, la correction de votre professeur est préférable.
    En effet, tel que vous l'avez modélisé, on pourrait avoir des divergences d'écriture sur le libellé de l'entrée ("Centre Balcon", "Centre du balcon", ...) : la correction qui vous est proposée permettra ainsi des requêtes plus fiables (par exemple, le nombre de personnes ayant emprunté une entrée donnée).
    Merci pour cette précision. Je viens d'avancer dans le cours. C'est tout à fait possible de normaliser après sur le schema relationnel ? ou il vaut mieux le faire déjà sur le schéma entité-association ?
    Citation Envoyé par Paprick Voir le message
    Non, il faut lire qu'il y a une réservation pour un abonné donné, sur une place donnée à une séance donnée.
    Le problème, par contre, vient de la non irréductibilité de l'identifiant : la clé correspondante dans la table de la base de données ne sera pas minimale !
    En effet, pour une place donnée à une séance donnée, il ne peut y avoir qu'un seul abonné : il faut donc rajouter une CIF ayant pour cible la classe d'entités "Abonné".
    Sur ce point, la correction qui vous a été fournie n'est pas correcte.
    Pour le CIF, il n'est pas vu dans les différents cours que j'ai pu avoir, c'est peut être pour cela que c'est simplifié. Par curiosité et perfectionnisme, je vais jeter un œil à l'occasion.
    Enfaite, pour une association ternaire, il faut partir de l'association et la décomposer. On ne peut pas partir de chaque types entités par regroupement des ensembles comme on le ferai pour une association binaire ?
    Par exemple, on peut dire qu'une place contient une et une seule catégorie, et une catégorie peut être contenu dans plusieurs places différentes. Ce raisonnement à partir des entité n'est pas possible avec des relation ternaire ?

    Citation Envoyé par Paprick Voir le message
    Le sujet indique : "Pour une séance d’un spectacle, les prix à payer sont identiques pour toutes les places d’une catégorie".
    Le prix dépend donc bien de la séance et de la catégorie.

    Donc, à part la CIF manquante au niveau de l'association "réserver", la correction de votre professeur est correcte.
    Mon plus gros problème, ne pas lire en profondeur

  5. #5
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 133
    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 133
    Points : 38 556
    Points
    38 556
    Billets dans le blog
    9
    Par défaut
    Bonjour bbsebb

    Citation Envoyé par bbsebb Voir le message
    Merci pour cette précision. Je viens d'avancer dans le cours. C'est tout à fait possible de normaliser après sur le schema relationnel ? ou il vaut mieux le faire déjà sur le schéma entité-association ?
    C'est possible mais pas souhaitable. D'une part déroger d'emblée aux formes normales dès le MCD est une erreur, d'autre part c'est risqué, car à chaque modification du MCD, il faudra penser à modifier manuellement le MLD qui en découle.
    L'inverse est parfois utile : normaliser au niveau MCD puis dénormaliser à la marge dans le modèle tabulaire


    Pensez à passer le sujet à "résolu" quand ce sera le cas

  6. #6
    Membre émérite
    Avatar de Paprick
    Homme Profil pro
    Professeur des Universités
    Inscrit en
    Juin 2019
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Professeur des Universités
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2019
    Messages : 678
    Points : 2 716
    Points
    2 716
    Par défaut
    Bonjour,
    Citation Envoyé par bbsebb Voir le message
    Merci pour cette précision. Je viens d'avancer dans le cours. C'est tout à fait possible de normaliser après sur le schema relationnel ? ou il vaut mieux le faire déjà sur le schéma entité-association ?
    Il est toujours préférable de modéliser de manière exhaustive au niveau conceptuel, surtout lorsque le formalisme le permet (en particulier pour les CIF).
    Les modifications au niveau du schéma relationnel doivent se limiter à des optimisations techniques ou à la mise en œuvre de contraintes non décrites dans le MCD.

    Bonne continuation !
    Patrick Bergougnoux - Professeur des Universités au Département Informatique de l'IUT de Toulouse III
    La simplicité est la sophistication suprême (Léonard de Vinci)
    LIVRE : Modélisation Conceptuelle de Données - Une Démarche Pragmatique
    Looping - Logiciel de modélisation gratuit et libre d'utilisation

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 121
    Points : 82
    Points
    82
    Par défaut
    Merci pour vos réponses.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/12/2020, 14h55
  2. Problème entre mon programme et avast
    Par Cycnos dans le forum C
    Réponses: 5
    Dernier message: 24/11/2015, 08h23
  3. [PHP-JS] Problème entre mon INPUT et du javascript
    Par bodysplash007 dans le forum Langage
    Réponses: 19
    Dernier message: 23/05/2007, 18h03
  4. Problème entre Dev-c++ et Borland c++ compiler 5.5
    Par Argonz dans le forum Dev-C++
    Réponses: 6
    Dernier message: 21/10/2003, 16h21
  5. [ODBC] Problème entre access et ODBC
    Par StephCal dans le forum Access
    Réponses: 4
    Dernier message: 09/07/2003, 16h47

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