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 :

Anchor Modeling : questions pour démarrer


Sujet :

Schéma

  1. #1
    Membre confirmé
    Anchor Modeling : questions pour démarrer
    Bonjour,

    je souhaite m'initier à l'anchor modeling, car ça parait très intéressant. J'ai cependant 2 questions :
    1. J'ai trouvé quelques ressources pour apprendre, mais peut être en connaissez-vous qui font référence dans le domaine ?
    2. Quel logiciel utiliser pour la modélisation et la génération du SQL (pour SQL Server) ?


    Bonne journée !

  2. #2
    Expert éminent sénior
    Bonjour Monstros,


    Citation Envoyé par Monstros Velu Voir le message
    je souhaite m'initier à l'anchor modeling, car ça parait très intéressant. J'ai cependant 2 questions :
    1. J'ai trouvé quelques ressources pour apprendre, mais peut être en connaissez-vous qui font référence dans le domaine ?
    2. Quel logiciel utiliser pour la modélisation et la génération du SQL (pour SQL Server) ?
    Je ne connais pas l’Anchor Modeling, mais les diagrammes entrevus chez Wikipédia font penser au modèle relationnel binaire (pour lequel on a, en gros, deux attributs par table).

    Pour générer des CREATE TABLE et autres instructions SQL de description des données, voyez Looping, gratuit, proposé par le professeur Patrick Bergougnoux (Paprick). Voyez aussi au sujet de Looping les échanges dans la discussion Quel logiciel télécharger pour réaliser un MCD.

    J’ai quand même vu qu’il est écrit que l’Anchor Modeling délivre une base de données en sixième forme normale : reste à démontrer que la cinquième forme normale est déjà respectée ! Cela suppose un respect des règles de gestion des données (non formellement formulées dans ce qu’on voit) dans leur traduction relationnelle, et à défaut l’affirmation quant à la sixième forme normale est consécutive au non respect des règles de gestion des données, donc fausse, et relève alors de l’incantation.
    Faites simple, mais pas plus simple ! (A. Einstein)
    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 »)

    Je ne réponds pas aux questions techniques par MP. Les forums sont là pout ça.
    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench

  3. #3
    Membre confirmé
    Bonjour Fsmrel,

    Concernant la 5NF, je pense qu'il revient à l'utilisateur de modéliser correctement ses relations d'ordre n>2 pour respecter la 5ème forme normale. Techniquement, un utilisateur peut même mal utiliser l'outil et rater la 1ère forme normale...

    Merci pour Looping, j'y jetterai un coup d'oeil

    J'ai aussi trouvé http://www.anchormodeling.com/modeler/latest/ (dont on peut télécharger le zip sur le site pour une utilisation chez soi, et dont les sources sont sur github)

  4. #4
    Expert éminent sénior
    Citation Envoyé par Monstros Velu Voir le message
    Concernant la 5NF, je pense qu'il revient à l'utilisateur de modéliser correctement ses relations d'ordre n>2 pour respecter la 5ème forme normale. Techniquement, un utilisateur peut même mal utiliser l'outil et rater la 1ère forme normale...



    Donc si l’utilisateur n’a pas modélisé « correctement ses relations d'ordre n>2 pour respecter la 5ème forme normale », la sixième forme normale est de facto violée, et si l’Anchor Modeling méconnaît les dépendances de jointure, ou à tout le moins n’ pas les moyens de les repérer (règles de gestion obligent !), on en reste à l’incantation...

     
    Faites simple, mais pas plus simple ! (A. Einstein)
    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 »)

    Je ne réponds pas aux questions techniques par MP. Les forums sont là pout ça.
    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench

  5. #5
    Membre confirmé
    Je dois dire que je me suis mal exprimé dans mon message précédant, car je ne maîtrise pas bien le vocabulaire sur le sujet, je vais donc réexprimer ce message :
    Je voulais dire qu'à mon avis, il revient à l'utilisateur de modéliser correctement ses tables de jointures à plus de 2 clefs (par exemple : JoinTbl(Tbl1Id, Tbl2Id, Tbl3Id) ) car seul l'utilisateur peut savoir si (Tbl1Id, Tbl2Id, Tbl3I) est valide en tant que clef primaire de la table ou s'il est fonctionnellement pertinent de découper en 2 tables. Pour le reste, c'est en 6ème forme normale, car il n'y a pas de tables à plus de 2 colonnes en dehors des tables temporelles qui sont de la forme (Id, Valeur, DateDeValidité).

    Je pense que cet publication (en Anglais) répond à cette question de 6ème forme normale : http://www.anchormodeling.com/wp-con...010/08/6nf.pdf

  6. #6
    Expert éminent sénior
    Bonsoir Monstros velu,


    Je cite l’article vers lequel vous nous renvoyez :

    Citation Envoyé par Analysis of normal forms for anchor-tables

    Tie-tables that are all-key give rise to tables in 6NF (obviously, decomposing an all-key table clearly gives rise to spurious tuples when joining the projections, so no non-trivial join-dependencies will ever be satisfied by an all-key tie relation).



    Pour l’auteur, dans le diagramme ci-dessous, la table Administrer "all-key" serait donc "clearly" en 6NF, mais est-elle au moins en 5NF ? C’est moins clair !


    Il se trouve qu’il existe la règle suivante :

    "Si l’ingénieur I maîtrise le SGBD S et intervient chez le client C qui utilise S, alors I administre S chez C."

    Il existe donc la dépendance de jointure suivante :

    ★{{IngId, SgbdId}, {SgbdId, CliId}, {CliId, IngId}}

    Et la table Administrer viole la 5NF, ce qui entraîne de facto le viol de la 6NF...

     
    Faites simple, mais pas plus simple ! (A. Einstein)
    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 »)

    Je ne réponds pas aux questions techniques par MP. Les forums sont là pout ça.
    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench

  7. #7
    Membre confirmé
    Merci fsmrel, je comprends mieux la problématique : Le fait que ce soit en 6ème forme normale n'est garantit par l'outil que si c'est déjà en 5ème forme normale.

    Déjà, je n'aurai même pas eu l'idée de modéliser ce problème comme vous le présentez. Voici le processus que j'aurai utilisé :

    l’ingénieur I maîtrise le SGBD S
    => Table Maîtrise (IngId, SGBDId)
    et intervient chez le client C
    => Table Intervient (IngId, SGBDId)
    qui utilise S
    => Utilise(SGBDId, ClientId)
    alors I administre S chez C.
    Pas besoin de table, car la règle de gestion implique un produit cartésien.

    Par contre, si la règle de gestion est plus souple et qu'un ingénieur administre des SGBD (pas forcément tous) chez un client parmi ceux qu'il maîtrise, alors la table Administrer est nécessaire. Du coup, comme je le disais, il appartient à l'utilisateur de modéliser correctement ses tables : l'outil ne peut pas connaître les règles de gestion, et doit offrir la possibilité de créer ce qui est nécessaire.

    Je rajoute que le modèle présenté ne respecte même pas la 1ère forme normale, car l'utilisateur peut, s'il le souhaite, écrire "Oracle/SQL Server" dans SGBDNom, et ni l'outil, ni le modèle ne l'en empêche.

    Du coup, je comprends tout à fait ce que vous voulez dire, quant au non-respect de la 5ème forme normale : il n'est ni automatique, ni garantit par l'application : C'est à moi de m'appliquer

  8. #8
    Expert éminent sénior
    Bonsoir,


    Citation Envoyé par Monstros Velu Voir le message
    Déjà, je n'aurai même pas eu l'idée de modéliser ce problème comme vous le présentez. Voici le processus que j'aurai utilisé :

    l’ingénieur I maîtrise le SGBD S
    => Table Maîtrise (IngId, SGBDId)

    et intervient chez le client C
    => Table Intervient (IngId, SGBDId)

    qui utilise S
    => Utilise(SGBDId, ClientId)

    alors I administre S chez C.



    Il est évident que la connaissance de la règle — appelons-la R :

    "Si l’ingénieur I maîtrise le SGBD S et intervient chez le client C qui utilise S, alors I administre S chez C."

    conduit de façon naturelle à mettre uniquement en oeuvre les 3 tables Maîtrise, Intervient, Utilise.

    Par contre, si cette règle n’existe pas, c’est la table Administrer qui doit être modélisée. En fait, l’exemple que j’ai proposé reprend un cas réel dont j’ai seulement changé les noms des tables (inférées d’un MCD Merise). Il y a un peu plus de 20 ans, j’ai eu à expertiser un MCD et produire la structure de la base de données correspondante (et cela va sans dire, m’engager sur la validité et la performance de cette base). Dans ce genre d’exercice, j’ai toujours été d’une vigilance extrême quant aux associations ternaires (et plus). Une ternaire — appelons-la donc ADMINISTRER — m’avait paru suspecte et J’ai donc enquêté à son sujet auprès de la direction des études informatiques et de la MOE (maîtrise d’oeuvre), en cherchant à voir si la décomposition de l’association ADMINISTRER était possible, résolvant ainsi un éventuel viol de 5NF. Finalement, mes interlocuteurs convinrent que la règle R s’appliquait, entraînant la disparition d’ADMINISTRER et la naissance des 3 projections MAITRISE, INTERVIENT, UTILISE.

    Ainsi, la base de données était au départ labélisée 5NF, puis elle perdit son label du fait de l’arrivée de la règle R.

    Mais l’histoire ne s’arrête pas là... Un représentant de la MOE poursuivit l’expertise de son côté et trouva alors quelques cas d’exception mettant R à mal : il fallut qu’ADMINISTRER renaisse de ses cendres, sous la forme d’une association entre MAITRISE, INTERVIENT, UTILISE, et récupère ainsi son label 5NF.

    Moralité, toutes les ternaires doivent être expertisées très soigneusement, il en va de la 4NF et de la 5NF (tables "all-key"), voire aussi de la BCNF (cas des tables non "all-key"). Anchor Modeling ou pas, la modélisation est un art qui a à voir avec le yoyo...



    Citation Envoyé par Monstros Velu Voir le message
    Je rajoute que le modèle présenté ne respecte même pas la 1ère forme normale, car l'utilisateur peut, s'il le souhaite, écrire "Oracle/SQL Server" dans SGBDNom, et ni l'outil, ni le modèle ne l'en empêche.
    L’attribut SGBDNom est du type CHARACTER, et "Oracle/SQL Server" une valeur de ce type ! La 1NF n’est donc pas violée.

     
    Faites simple, mais pas plus simple ! (A. Einstein)
    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 »)

    Je ne réponds pas aux questions techniques par MP. Les forums sont là pout ça.
    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench

###raw>template_hook.ano_emploi###