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 :

Anchor Modeling : questions pour démarrer


Sujet :

Schéma

  1. #1
    Membre confirmé Avatar de Monstros Velu
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 619
    Points : 601
    Points
    601
    Par défaut 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
    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 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.
    (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
    Membre confirmé Avatar de Monstros Velu
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 619
    Points : 601
    Points
    601
    Par défaut
    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
    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 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...

     
    (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 confirmé Avatar de Monstros Velu
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 619
    Points : 601
    Points
    601
    Par défaut
    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
    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 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 !

    Nom : monstros velu(5nf).png
Affichages : 348
Taille : 10,3 Ko

    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...

     
    (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 confirmé Avatar de Monstros Velu
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 619
    Points : 601
    Points
    601
    Par défaut
    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
    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 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.

     
    (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.

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

Discussions similaires

  1. [Cocoon]De l'aide pour démarrer
    Par rozwel dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 11/03/2005, 13h00
  2. [bochs] Question pour un kernel de base...
    Par hudson dans le forum Assembleur
    Réponses: 2
    Dernier message: 24/02/2005, 12h07
  3. Problème pour démarrer la base
    Par eXiaNazaire dans le forum Oracle
    Réponses: 11
    Dernier message: 10/01/2005, 10h57
  4. Petite question pour Backup
    Par chicken92000 dans le forum Administration
    Réponses: 2
    Dernier message: 16/09/2004, 16h10
  5. [MIB] Questions pour construire une mib
    Par fadoua dans le forum Développement
    Réponses: 4
    Dernier message: 11/03/2004, 10h47

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