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 :

Essai motorisé


Sujet :

Schéma

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 349
    Points : 439
    Points
    439
    Par défaut Essai motorisé
    Bonjour,

    Je me pose une question sur les NF, car après autant de lecture, je suis un peu perdu ce qui est pas bien et ce qui est bien.....

    Un test motorisé (pour voiture) est effectué par une et une seule personne, et supervisé par une et une seule personne.
    Un employée peut soit superviser ou effectuer un test motorisé, et peut en faire plusieurs.

    Puis-je m'en tenir a celui ci, ou dois-je transformer la relation 'effectuer' en entité, et faire de même pour la relation 'superviser' ? A mon sens le schéma présenté ici est correct ...

    Merci

    Nom : engine1-1.jpg
Affichages : 208
Taille : 18,8 Ko

  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
    Un employée peut soit superviser ou effectuer un test motorisé
    D'après votre phrase, un employé ne peut pas effectuer et superviser le même test. Il faut donc ajouter à votre MCD une contrainte d'exclusion entre les deux associations.

    Il y a quelque part sur DVP un extrait de cours qui présente les contraintes dans les MCD mais je ne le retrouve pas. Par contre, vous trouverez plusieurs exemples dans des sujets de ce forum. Cherchez "MCD contrainte exclusion".

    Le reste du schéma me semble correct, même si je ne comprends pas la signification de [0,1] accolé au nom de la colonne Description de l'entité-type, "test motorise".

    Petit détail tout de même : ne laissez pas d'espace dans le nom de vos entités types car lors de la génération du MLD puis des tables, cet espace perdurera et les problèmes commenceront lors de l'implémentation de la BDD.
    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
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 349
    Points : 439
    Points
    439
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    D'après votre phrase, un employé ne peut pas effectuer et superviser le même test. Il faut donc ajouter à votre MCD une contrainte d'exclusion entre les deux associations.
    Vous avez raison par rapport a l’énoncé sauf que j'ai oublie de dire que c'est possible.


    Le 0-1 sur l'attribut Description signifie qu'il est optionnel.

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


    Citation Envoyé par champomy62 Voir le message
    Le 0-1 sur l'attribut Description signifie qu'il est optionnel.
    @CinePhil,

    Optionnel est synonyme d’intrusion du bonhomme Null...

    @champomy62,

    Autrement dit, il faut rendre l’attribut Description obligatoire, quitte à utiliser au besoin une chaîne de caractères vide : ''.


    Citation Envoyé par champomy62 Voir le message
    Je me pose une question sur les NF, car après autant de lecture, je suis un peu perdu ce qui est pas bien et ce qui est bien...
    Je suppose que par « NF » vous voulez dire « Normal Form ». S’il en est ainsi, au niveau relationnel, les tables TEST et EMPLOYE sont normalisées en BCNF et même en cinquième forme normale, que demande le peuple... ?

    Cela dit, si la normalisation vous turlupine, posez vos questions.


    A propos de la contrainte d’exclusion, voici la proposition faite par feue l’afcet (Le formalisme de données Merise - Extensions du pouvoir d’expression - Journée d’étude organisée par le Groupe de Travail 135 « Conception des systèmes d’information » (Collège AFCET-GID) - Jeudi 15 novembre 1990, Paris).


    A ce sujet, comment procède-t-on avec DB-MAIN ?
    (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.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 349
    Points : 439
    Points
    439
    Par défaut
    @fsmrel

    Dans la documentation fournie avec DB-MAIN, vous avez un pdf "Database-Modelling-Tutorial-Vol-1.pdf"

    Ouvrez ce document et allez a la page 230. Cela parle des contraintes d'existence. Il me semble que ça doit être ça.

  6. #6
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 001
    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 001
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Merci champomy62.

    Je subodore un gros problème avec DB-MAIN : l’exclusion ne serait applicable qu'entre des attributs d’une même entité-type, lesquels devraient donc constituer un groupe exigeant que ces attributs soient optionnels, d’où ouverture la porte au bonhomme Null, et là, halte ! Avez-vous une alternative ?

    Sinon, supposons qu’un employé puisse être indifféremment opérateur ou superviseur, mais qu’il ne puisse pas jouer à la fois les deux rôles pour un test donné : avec DB-MAIN on doit donc autoriser la présence du bonhomme Null, et je dis donc : Niet ! En plus, on est obligé de passer au niveau MLD pour représenter la contrainte :




    Je préfère alors agir au niveau SQL et fermer la porte au bonhomme (exemple avec SQL Server) :

    
    CREATE TABLE EMPLOYE
    (
            EmpId          INT               NOT NULL
          , EmpNom         VARCHAR(32)       NOT NULL
        , CONSTRAINT EMPLOYE_PK PRIMARY KEY (EmpId) 
    ) ;
    
    CREATE TABLE TEST
    (
            TestId          INT               NOT NULL
          , TestNom         VARCHAR(32)       NOT NULL
          , OperateurId     INT               NOT NULL
          , SuperviseurId   INT               NOT NULL
        , CONSTRAINT TEST_PK PRIMARY KEY (TestId) 
        , CONSTRAINT TEST_EMPLOY_OPER_FK FOREIGN KEY (OperateurId) REFERENCES EMPLOYE (EmpId)
        , CONSTRAINT TEST_EMPLOY_SUPER_FK FOREIGN KEY (SuperviseurId) REFERENCES EMPLOYE (EmpId)
        , CONSTRAINT TEST_EXCLUSION_CHK CHECK (OperateurId <> SuperviseurId)
    ) ;
    
    INSERT INTO EMPLOYE (EmpId, EmpNom) VALUES (1, 'Fernand') ;
    INSERT INTO EMPLOYE (EmpId, EmpNom) VALUES (2, 'Raoul') ;
    INSERT INTO EMPLOYE (EmpId, EmpNom) VALUES (3, 'Paul') ;
    
    SELECT '' AS EMPLOYE, * FROM EMPLOYE ;
    
    INSERT INTO TEST (TestId, TestNom, OperateurId, SuperviseurId) VALUES (1, 'test 1', 1, 2) ;
    INSERT INTO TEST (TestId, TestNom, OperateurId, SuperviseurId) VALUES (2, 'test 2', 2, 3) ;
    
    SELECT '' AS TEST, * FROM TEST ;
    
    
    Votre avis ?
    (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.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 349
    Points : 439
    Points
    439
    Par défaut
    @fmsrel,
    Oh, pourtant j'ai réussi a modéliser la contrainte directement dans le MCD.
    Avez-vous eu un message d'erreur?



    Je propose la modélisation ci-dessous. Si un employe est assez expérimenté, il n'y a pas besoin de superviseur. Si c'est un jeune employé il aura tout simplement un superviseur ...

    Nom : engine1-2.jpg
Affichages : 212
Taille : 29,0 Ko

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 349
    Points : 439
    Points
    439
    Par défaut
    Oups, j'ai oublie de representer l'exclusion entre 'effectuer test' et 'superviser test' ...

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 349
    Points : 439
    Points
    439
    Par défaut
    En effet, être obligé d'avoir une valeur optionnelle est dangereuse.

    cela veut dire que pour un test, il peut se retrouver sans opérateur ni/ou superviseur... c'est pas classe.

  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 001
    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 001
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Citation Envoyé par champomy62 Voir le message
    Oups, j'ai oublie de representer l'exclusion entre 'effectuer test' et 'superviser test' ...
    Mais ça m'intéresse !
    (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.

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 349
    Points : 439
    Points
    439
    Par défaut
    Citation Envoyé par fsmrel Voir le message
    Mais ça m'intéresse !


    Je me dis que vous entrain d’Essayé de m'avoir !!! car je me retrouverai dans la même situation que vous, c'est a dire avec des petits bonhomme nuls et je vais me faire gronder

    Est-ce bien ca ?

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


    Eh bien non ! Je me situais dans le cas général de la contrainte d’exclusion décrite dans le document Afcet.


    C'est-à-dire qu’en lisant la phrase :

    Citation Envoyé par Champomy62
    Oups, j'ai oublie de représenter l'exclusion entre 'effectuer test' et 'superviser test' ...
    J’ ai cru que vous étiez en mesure modéliser quelque chose qui ressemble à ceci :



    Mais ça ne semble pas être le cas...
    (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.

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 349
    Points : 439
    Points
    439
    Par défaut
    Hum a ma connaissance dans db-main, ce n'est pas possible de modéliser de cette manière...

    Je vais feuilleter le livre de Jean-Luc Hainaut a ce sujet et je reviens vers vous...

Discussions similaires

  1. du MCD au MLD
    Par pit9.76 dans le forum Schéma
    Réponses: 7
    Dernier message: 09/06/2006, 12h55
  2. Un historique sur un mcd
    Par DarkyDev dans le forum Schéma
    Réponses: 2
    Dernier message: 27/08/2004, 10h33
  3. [MCD] [MCD] Gestion des dates
    Par brionne dans le forum Schéma
    Réponses: 3
    Dernier message: 30/05/2003, 13h01
  4. [MCD] [BEST_PRACTICE] MCD d'une videotheque
    Par tonyskn dans le forum Schéma
    Réponses: 4
    Dernier message: 28/05/2003, 14h43
  5. [BEST_PRACTICE][Merise] MCD & gestion de date
    Par Seb7 dans le forum Schéma
    Réponses: 4
    Dernier message: 16/04/2003, 17h07

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