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 :

[AIDE] MCD avec entité de temps, comment la placer ?


Sujet :

Schéma

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 19
    Points : 8
    Points
    8
    Par défaut [AIDE] MCD avec entité de temps, comment la placer ?
    J'ai un peu de misère a placer mon entité trimestre, la contrainte est que les installations extérieures sont fermées pour le trimestre d'hiver et les cours changent à chaque trimestre, donc comment relier le tout ?


    Nom : image_2020-11-03_193709.png
Affichages : 235
Taille : 40,0 Ko

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 338
    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 338
    Points : 39 726
    Points
    39 726
    Billets dans le blog
    9
    Par défaut
    Bonjour,

    Présenté comme ça, je n'ai pas l'impression que le trimestre soit un acteur de votre modèle conceptuel, ce n'est pas un objet de gestion, mais plutôt un critère qui interviendra dans les traitements.

  3. #3
    Membre émérite
    Avatar de Paprick
    Homme Profil pro
    Professeur des Universités
    Inscrit en
    Juin 2019
    Messages
    708
    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 : 708
    Points : 2 862
    Points
    2 862
    Par défaut
    Bonjour,

    Au-delà de votre question, je m'inquiète de voir l'association "Concerne" contenant des rubriques (journée, heure) alors qu'elle possède des cardinalités 1,1/O,N...
    Pas d'identifiant pour la classe "Activité"...
    Il faudrait finaliser un peu plus ce MCD et définir les règles de gestion avant d'aller plus loin.

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 19
    Points : 8
    Points
    8
    Par défaut
    Effectivement j'étais plus à me casser la tête avec le trimestre que finaliser les attributs et identifiants.

    Donc si je comprend bien, je n'ai pas à faire quoique ce soit avec trimestre pour le moment ?

  5. #5
    Membre émérite
    Avatar de Paprick
    Homme Profil pro
    Professeur des Universités
    Inscrit en
    Juin 2019
    Messages
    708
    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 : 708
    Points : 2 862
    Points
    2 862
    Par défaut
    Finalisez le MCD de base : nous regarderons cette histoire de trimestre ensuite.

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 19
    Points : 8
    Points
    8
    Par défaut
    Donc comme ça et je ne me soucie pas du trimestre malgré le fait que ça implique que les cours changent et que les installations peuvent être fermées pour le trimestre d'hiver ?


    Nom : image_2020-11-04_145958.png
Affichages : 205
Taille : 44,6 Ko

  7. #7
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 338
    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 338
    Points : 39 726
    Points
    39 726
    Billets dans le blog
    9
    Par défaut
    Bonsoir Jekyll82

    Difficile de critiquer un MCD sans avoir la liste des règles de gestion.
    On ne peut faire que des remarques d'ordre général, et poser des questions, parmi lesquelles :

    C'est quoi une "installation" ?

    Votre modèle permet à un même instructeur de donner deux cours simultanément, est-ce volontaire ?

    Votre modèle interdit de connaître un instructeur qui n'a encore jamais donné de cours, est-ce normal ?

    Votre modèle interdit qu'un cours (notez que cours prend un "s" ) soit donné par plusieurs instructeurs, n'y a-t-il aucun cours pluridisciplinaire ou animé par plusieurs instructeurs ?

    etc.

    Autant d'interrogations qui seraient levées si les règles de gestion étaient fournies

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 19
    Points : 8
    Points
    8
    Par défaut
    Je vous remercie d'avoir posé des questions, effectivement ca remet les choses en perspective, donc j'ai finalisé un peu plus et j'ai ca :

    Le client C s'inscrit dans le cours C donné par l'instructeur I qui concerne l'activité A et se déroule pour une date donnée dans l'installation sportive S
    Le client C participe à l'activité A qui se déroule dans l'installation sportive S pour une date donnée
    Le client C réserve l'installation S pour une date donnée

    Chaque cours ne concerne qu'une seule activité
    Le cours C est donné par l'instructeur I mais en cas d'absence il peut être donné par l'instructeur J

    L'instructeur I donne le cours C mais peut aussi donner le cours D

    L'activité A est enseignée dans le cours C mais aussi dans le cours D
    L'activité A se déroule dans l'installation gymnase S et peut aussi se dérouler dans l'installation gymnase T

    Il y a des installations intérieures ouvertes à l'année mais les installations extérieures sont fermées durant le trimestre d'hiver


    Nom : image_2020-11-05_184848.png
Affichages : 189
Taille : 49,4 Ko
    J'ai toujours de la misère avec le concept de temps ... est-ce que l'entité Date est au on endroit si j'en ai besoin pour que les activités ne rentre pas en conflit d'horaire avec les réservations des clients ?

  9. #9
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 112
    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 : 8 112
    Points : 31 586
    Points
    31 586
    Billets dans le blog
    16
    Par défaut
    Bonsoir Jekyll,


    Vous avez écrit :

    « Le client C réserve l'installation S pour une date donnée »

    Mais selon votre MCD, deux clients peuvent réserver la même installation au même moment.

    Pour qu’à une date donnée une installation ne puisse être réservée que pour un et un seul client, il faut mettre en oeuvre une CIF (contrainte d’intégrité fonctionnelle), comme ci-dessous :

    Nom : Jekyll(reserver).png
Affichages : 196
Taille : 11,7 Ko

    Pour parvenir à cela il faut que vous utilisiez l’excellent Looping, gracieusement proposé par le professeur Patrick Bergougnoux (merci mille fois Paprick !)

    Notez que dans le diagramme le nom de l’entité-type DATE_X est mis entre parenthèses (1), ce qui a pour conséquence qu’au stade SQL il n’y aura pas de table DATE_X, laquelle serait un boulet, surtout si 1000 tables y faisaient référence (combien de bases de données ai-je nettoyées chez mes clients pour y supprimer la table DATE !) En revanche, Looping n’oublie évidemment pas de définir un attribut uneDate pour la table RESERVER.


    Avec Looping, vous obtenez le code SQL qui va bien (pas de table DATE !) :

    CREATE TABLE INSTALLATION
    (
       idInstall INT,
       nomInstall VARCHAR(50) NOT NULL,
       CONSTRAINT INSTALLATION_PK PRIMARY KEY(idInstall),
       CONSTRAINT INSTALLATION_AK UNIQUE(nomInstall)
    );
    
    CREATE TABLE CLIENT
    (
       idClient INT,
       nomClient VARCHAR(50) NOT NULL,
       CONSTRAINT CLIENT_PK PRIMARY KEY(idClient)
    );
    
    CREATE TABLE RESERVER
    (
       idInstall INT,
       uneDate DATE,  
       idClient INT NOT NULL,
       CONSTRAINT RESERVER_PK PRIMARY KEY(idInstall, uneDate),
       CONSTRAINT RESERVER_INSTALLATION_FK FOREIGN KEY(idInstall) REFERENCES INSTALLATION(idInstall),
       CONSTRAINT RESERVER_CLIENT_FK FOREIGN KEY(idClient) REFERENCES CLIENT(idClient)
    );
    

    A propos des CIF, je vous engage aussi à lire ce qu’écrivent D. Nanci (RIP) et B Espinasse Ingénierie des systèmes d'information : Merise deuxième génération (4e édition, 2001), au chapitre 7 (« Modélisation conceptuelle des données », paragraphe « Contraintes intra-relation », pages 114 et suivantes.

    ____________________

    (1) Dans la fenêtre Entité, cocher la case « Classe d’entité fictive ».

  10. #10
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 112
    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 : 8 112
    Points : 31 586
    Points
    31 586
    Billets dans le blog
    16
    Par défaut
    Bonjour Jekyll,

    En attendant...

    Il y a deux façons d’associer CLIENT vers ACTIVITE :

    a) via l’association Participe,

    (b) transitivement via les associations s’inscrit et Concerne.

    Il y a là ce qu’on appelle une boucle (c’est parfois cause d’erreurs) et cela conduit à poser certaines questions :

    (Q1) Un client peut-il participer à une activité sans être inscrit à des cours concernant cette activité ?

    (Q2) Si un client est inscrit à des cours, peut-on en conclure qu’il participe forcément aux activités concernées par ces cours ?

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 19
    Points : 8
    Points
    8
    Par défaut
    Activité est plus comme "le sport", ne pas voir comme activité bricolage par exemple. Donc l'activité volleyball, soccer, natation ....

    Le client peut s'inscrire à l'activité seule, exemple le client s'inscrit à l'activité volleyball le mercredi soir et peut aussi s'inscrire à un cours sur le volleyball

    Et les cours concernent tous une activité, donc quand il s'inscrit à un cours ça concerne nécessairement une activité



    Je viens de télécharger le logiciel looping, par contre du moment que je met une CIF je suis incapable de faire des liens vers quoique ce soit ...

    Nom : image_2020-11-06_130649.png
Affichages : 183
Taille : 40,0 Ko

  12. #12
    Membre émérite
    Avatar de Paprick
    Homme Profil pro
    Professeur des Universités
    Inscrit en
    Juin 2019
    Messages
    708
    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 : 708
    Points : 2 862
    Points
    2 862
    Par défaut
    Bonsoir,
    Citation Envoyé par Jekyll82 Voir le message
    Je viens de télécharger le logiciel looping, par contre du moment que je met une CIF je suis incapable de faire des liens vers quoique ce soit ...
    Après avoir créé la CIF, vous devez tout d'abord la lier à l'association pivot.
    Puis, vous pouvez effectuer le lien vers la classe d'entités cible, puis les classes d'entités émettrices.

  13. #13
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 19
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par Paprick Voir le message
    Bonsoir,

    Après avoir créé la CIF, vous devez tout d'abord la lier à l'association pivot.
    Puis, vous pouvez effectuer le lien vers la classe d'entités cible, puis les classes d'entités émettrices.


    Merci infiniment !

  14. #14
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 19
    Points : 8
    Points
    8
    Par défaut
    Nom : image_2020-11-06_155334.png
Affichages : 201
Taille : 33,3 Ko


    C'est toujours la que je bloque, si j'ai besoin d'un calendrier. Pour l'inscription d'un client a un cours, pour la participation d'un client à une activité ou encore pour la réservation d'une installation. Est-ce que j'ai besoin d'un calendrier pour chaque ou un seul peut faire tout ca.

    Parce que si un cours se donne, l'installation ne doit pas être accessible pour une réservation, même chose si une activité a lieu, l'installation n'est pas disponible pour un cours ou pour une réservation ....

  15. #15
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 338
    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 338
    Points : 39 726
    Points
    39 726
    Billets dans le blog
    9
    Par défaut
    Attention, il ne faut pas confondre un simple attribut de type date comme dans le cas de la date d'inscription d'un client à un cours, avec une date qui participe comme type d'entité à une d'association.

    Dans le premier cas, l'attribut date est simplement placé dans l'association (puisque c'est une association naire de chaque côté) dans l'autre, on utilise une entité-type pour que la date contribue à l'identification de chaque occurrence de l'association.

    Au niveau tabulaire, on a dans le premier cas :
    table INSCRIRE (association client cours) : identifiant du client et identifiant du cours constituent la PK, date d'inscription est un simple attribut

    Et dans le deuxième cas :
    table RESERVER (association client, installation, date) : identifiant de l'installation + date constituent la PK, identification du client est un simple attribut pour garantir l'unicité du client pour la PK

Discussions similaires

  1. [Python 3.X] Comment afficher des données avec tk en temps réel et non en fin de traitement
    Par Tonivege dans le forum Général Python
    Réponses: 3
    Dernier message: 16/03/2017, 13h40
  2. Réponses: 7
    Dernier message: 21/05/2008, 15h47
  3. Aide pour MCD avec clés étrangères
    Par tiger33 dans le forum Langage SQL
    Réponses: 12
    Dernier message: 19/07/2006, 16h01
  4. besoin d'aide fonction avec fichier (debutant)
    Par boby61 dans le forum Débuter
    Réponses: 9
    Dernier message: 14/03/2005, 11h22
  5. ASP + PHP avec le même phpmyadmin comment faire?
    Par King Boulet dans le forum ASP
    Réponses: 8
    Dernier message: 29/10/2003, 16h57

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