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

Merise Discussion :

Question MERISE - Matrice des DF


Sujet :

Merise

  1. #1
    Candidat au Club
    Homme Profil pro
    informaticien
    Inscrit en
    Avril 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : informaticien

    Informations forums :
    Inscription : Avril 2015
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Question MERISE - Matrice des DF
    Bonsoir à tous,

    Je souhaiterais avoir des éclaircissements sur les attributs à mettre dans la matrice de dépendances fonctionnelles
    Prenons l'exemple suivant :
    Un salarié fait partie d'un service.
    Un salarié est identifié avec un numéro de salarié, un nom et un prénom
    Le service est identifié avec un numéro de service et un libellé de service

    Pour chaque colonne j'indique num_sala, nom_sala, prenom_sala num_serv et lib_serv
    Pour chaque ligne idem
    num_sala détermine nom_sala et prenom_sala

    Voici le éclaircissements demandés
    num_sala détermine bien num_serv? (num_sala-->num_serv>
    num_serv détermine bien nom_serv (numserv-->nomserv)
    Par transitivité, num_sala-->nom_serv?
    C'est incohérent puisque cela signifie que nom_serv doit faire partie de l'entité salarié!!

    De plus, si num_serv-->nom_serv alors nom_serv-->num_serv??

    Si j'ai bien compris le principe de la matrice DF, on indique 1 à l'intersection ligne/colonne entre 2 données si la DF est vérifiée
    Et on supprime les colonnes vides pour ne garder que les colonnes où il y a des 1 et ainsi garder les colonnes dont les en-têtes seront les noms d'entités
    Mais si num_serv-->nom_serv et nom_serv-->num_serv cela signifie que nom_serv et num_serv sont deux colonnes et donc 2 entités alors que ce sont deux données communes au service!

    Comment indiquer dans la matrice DF que les num_serv et nom_serv font partie de la même entité?

    J'espère avoir été assez clair!
    Merci pour votre aide
    Philippe

  2. #2
    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 PhilInFo,

    Citation Envoyé par PhilInfo75 Voir le message
    Par transitivité, num_sala-->nom_serv?
    C'est incohérent puisque cela signifie que nom_serv doit faire partie de l'entité salarié!!
    Il n’ y a pas d’incohérence, disons que vous mettez la charrue avant les boeufs...

    Situons-nous au niveau de la théorie relationnelle, là où les dépendances fonctionnelles et leurs propriétés ont fait l’objet d’un tas de théorèmes et d’algorithmes, avant que ne naisse Merise.

    Etant donné un ensemble E auquel appartiennent des sous-ensembles d’attributs A, B, C, ..., X, Y, Z, ... non nécessairement distincts, une dépendance fonctionnelle X -> Y dit seulement qu’au sous-ensemble X, partie gauche de la DF, encore appelée déterminant, correspond le sous-ensemble Y, partie droite de la DF, encore appelée dépendant, tels que pour une valeur de X il y a une valeur de Y et une seule.

    Ce n’est qu’après avoir dressé l’inventaire des DF de E que l’on décompose cet ensemble (considéré comme relation universelle, au sens relationnel) en sous-ensembles tels que SERVICE, SALARIE, etc. En relationnel, on applique le théorème de Heath, qui dit que si dans E on a les sous-ensembles A, B, C tels que A -> B, alors E est décomposable sans perte de donnée en {A, B} et {A, C}.

    Dans E, on peut très bien avoir l’ensemble des attributs que vous énumérez, et si d’une part num_sala-->num_serv, et d’autre part num_serv-->nom_serv, il n’est normal que, par transitivité num_sala-->nom_serv. C’est la règle n° 3 des règles (ou axiomes) d’Armstrong (1974). La 1re règle a trait à la réflexivité (par exemple num_sala -> num_sala).
    La 2e règle, dite d’augmentation est extrêmement précieuse, elle dit que si num_sala-->nom_serv alors num_sala, truc-->nom_serv, truc, mais ça sert à prouver des théorèmes, à prouver qu’on respecte la forme normale de Boyce-Codd (ou préférablement Normal Form (1971)), mais en Merise on ne démontre pas de théorèmes...

    c''est grâce à la mise évidence des DF dans « l'entité-type universelle » que vous décomposerez celle-ci en entités-types telles SERVICE, SALARIE, etc. Cette fois-ci, on a commencé par mettre les boeufs devant la charrue...
    (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
    informaticien
    Inscrit en
    Avril 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : informaticien

    Informations forums :
    Inscription : Avril 2015
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Bonjour Fsmrel,
    Merci pour votre réponse!
    Je pense avoir compris cette notion de décomposition et les règles d'Armstrong mais si je me base sur la mise en évidence des DF comme vous le mentionnez ainsi que la matrice des DF de mon exemple, quel est le critère qui me permet d'affirmer que num_serv et nom_serv font partie d'une entité à part entière et doivent être "sortie" de l'entité universelle dont vous parlez et qui regroupe à la fois les données Salarié et les données Service?
    Encore une fois :
    -Selon ma matrice des DF, num_sev et nom_serv sont 2 en-tête de colonne et donc 2 noms d'entité, à moins d'avoir fait une erreur dans ma matrice!
    -num_sala-->nomserv donc nom_serv doit faire partie de l'entité Salarié, ce qui me parait illogique!

    Merci(encore!) pour vos éclaircissements :-)

  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
    Bonjour Philippe,


    J’ai l’habitude de manipuler les dépendances fonctionnelles dans le cadre du modèle relationnel de données (alias théorie relationnelle). Je fuis donc les pâles imitations, les méthodes très limitées comme celles qu’on trouve chez certains merisiens et qui manifestement vous sont imposées. Bref, à l’efficacité du pistolet à bouchons, je préfère celle du canon de 90...

    Je suis très septique quant aux techniques proposées par ces merisiens, du genre mise en œuvre d’une matrice des DF, et des ersatz tels que « la couverture minimale d’un graphe de DF », structure d’accès théorique (SAT), qui trouvent très vite leurs limites. Si l’on n'a sous la main que des ouvrages tels que celui-ci pour traiter des DF : Comprendre Merise, outils conceptuels et organisationnels, alors on ne va pas bien loin. On vous propose de monter à l’assaut avec un char d’assaut en bois, doté d’un armement du même métal.

    En tout cas, pour rester dans le système qui vous est proposé, avant de construire votre matrice, il est écrit dans l’ouvrage cité, qu’il faut d’abord éliminer dans le graphe « les transitivités », c'est-à-dire les DF inférées par la règle de transitivité, par exemple num_sala -> nom_serv (ce qui cache une tentative de normalisation en troisième forme normale).

    Comme je l’ai dit, je reste donc septique quant à la puissance de feu des techniques merisiennes en matière de DF. Dans le contexte du modèle relationnel de données prenons l’exemple suivant proposé par Ullman :

    Soit la variable relationnelle U {A,B,C,D,E,G}
    Et l’ensemble F de DF traduisant les règles de gestion attachées à l’univers U :

    A,B -> C
    C -> A
    B,C -> D
    A,C,D -> B
    D -> E
    D -> G
    B,E -> C
    C,G -> B
    C,G -> D
    C,E -> A
    C,E -> G

    A quoi ressemblent le graphe des DF et l’inénarrable matrice ? Personnellement, ayant beaucoup modélisé dans les entreprises, mais n’ayant jamais utilisé les deux concepts en question, disons que construire le graphe est a priori très simple, même si le résultat est un fouillis inextricable, inexploitable , mais je dispose pas d’éléments suffisants en ce qui concerne la construction de la matrice et reste donc muet à son sujet (sinon, si on applique à la lettre le principe d'élimination des transitivités, la matrice ne ressemble pas à grand-chose...)

    Sans grimper jusqu’aux dépendances de jointure, en passant par les dépendances multivaluées (je ne voudrais pas vous décourager...), à mon sens les concepts fondamentaux, incontournables pour décomposer U à partir des règles de gestion des données et de l’ensemble F des DF qui les symbolisent sont le suivants : variable relationnelle (relvar), en-tête de relvar, DF triviale, forme normale de Boyce-Codd (BCNF), théorème de Heath, axiomes (règles) d’Armstrong, fermeture d’un ensemble d’attributs, ensemble des clés candidates, surclé, décomposition sans perte de données, décomposition sans perte de DF, ensemble irréductible de DF, sans oublier les algorithmes précieux du genre « algorithme du seau à dépendants »)...

    Si vous en avez le courage et l’envie (et un peu de temps), vous pourrez consulter l’article que j’ai pris la peine de consacrer à tout ça.

    Naturellement, si je n’ai pas été clair et si vous avez des points qui vous tracassent dans la mesure où je pourrai fournir des réponses, n’hésitez pas à poser des questions.

    Et surtout, ne vous découragez pas !
    (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
    Candidat au Club
    Homme Profil pro
    informaticien
    Inscrit en
    Avril 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : informaticien

    Informations forums :
    Inscription : Avril 2015
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Bonsoir Fsmrel,

    Merci cette réponse et les éléments à potasser pour être "un bon merisien". Je vais prendre le temps de lire votre article et tenter de trouver des arguments dans la littérature pour savoir quelle est la bonne démarche à suivre pour concevoir un bon système d'information avec Merise, du moins une bonne base de données solide.
    C'est vrai que je suis un peu perdu entre le conceptuel et le logique
    Comme par exemple l'utilisation des dépendances fonctionnelles et les formes normales.
    Il me semblait que les formes normales devaient être utilisées pour le modèle logique ("relationnel") mais je viens de voir que l'on pouvait aussi les utilisés lors de la phase conceptuel (Laurent Audibert). Si j'ai bien compris la différence est sémantique mais on arrive au même résultat (....enfin il me semble!) bref....je dois creuser....
    Merci encore! :-)
    Philippe

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

Discussions similaires

  1. Petite question a propos des itérateurs
    Par Thordax dans le forum C++
    Réponses: 32
    Dernier message: 06/07/2006, 01h45
  2. [AWstat] questions sur interpretation des résultats
    Par norac dans le forum Statistiques
    Réponses: 1
    Dernier message: 16/01/2006, 14h24
  3. [VBA-E] Question à propos des checkbox
    Par Timfg dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 26/04/2005, 15h09
  4. Question a propos des modulos
    Par barthelv dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 24/03/2005, 15h56
  5. Réponses: 9
    Dernier message: 29/07/2003, 14h41

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