Membre émérite
Bonjour,
La façon dont vous représentez l'agrégation pose vite des problèmes insurmontables lorsque les modèles deviennent plus complexes, en particulier en cas de multiples agrégations, d'agrégation sur une agrégation, ...
Pour mettre en œuvre votre modèle (et les agrégations en général), il convient de passer par une phase de décomposition de l'association "TARIF".
Looping propose de le faire automatiquement dans la fenêtre de description de l'association avec le bouton ci dessous :
Voici alors ce que donnerait votre MCD :
Et le MLD correspondant :
Le 1,1(R) correspond à la notion d'identifiant relatif qui permet de résoudre bon nombre de problèmes tels que celui que vous évoquez.
Concernant le document de référence pour l'utilisation de
Looping, ce forum est la meilleure référence que vous puissiez trouver !
Expert éminent sénior
Bonsoir,
_aguy, votre représentation de l’agrégation est celle qui a été proposée il y a 45 ans par John Miles Smith et Diane C.P. Smith, et n’a du reste pas pas été retenue pour Merise/2. Quant à la transformation de cette agrégation, Paprick a totalement raison, passons de la complexité à la simplicité (mais ne faisons pas plus simple).
Envoyé par
Paprick
Concernant le document de référence pour l'utilisation de Looping, ce forum est la meilleure référence que vous puissiez trouver !
A noter que depuis 18 mois, le forum Schema a lui aussi accumulé pas mal d’exemples intéressants d’utilisation de l'excellent Looping...
Candidat au Club
Bonjour à tous,
Merci pour ces réponses, la mienne est tardive car j'étais en révision pour mes partielles, un parcours de formation dans ma carrière.
Me voilà totalement satisfait ;o)
Une dernière question technique, looping est développé sur quel langage ? Une portabilité sur linux est-elle envisageable ?
Merci pour votre travail !
Membre émérite
Bonsoir,
Envoyé par
_aguy
Une dernière question technique, looping est développé sur quel langage ? Une portabilité sur linux est-elle envisageable ?
Looping est développé en C++ exclusivement en environnement Windows.
Cependant, sa structure étant très simple (un .exe de moins de 6 Mo sans aucune librairie complémentaire), il s'exécute parfaitement sous Linux et MacOs à travers un outil tel que Wine (version 32 bits).
Beaucoup d'utilisateurs Linux l'ont déjà adopté.
Candidat au Club
Envoyé par
fsmrel
Bonsoir,
_aguy, votre représentation de l’agrégation est celle qui a été proposée il y a 45 ans par John Miles Smith et Diane C.P. Smith, et n’a du reste pas pas été retenue pour Merise/2. Quant à la transformation de cette agrégation, Paprick a totalement raison, passons de la complexité à la simplicité (mais ne faisons pas plus simple).
A noter que depuis 18 mois, le forum Schema a lui aussi accumulé pas mal d’exemples intéressants d’utilisation de l'excellent Looping...
Bonjour,
Apparemment cette notion a bien été intégré dans Merise 2.
Présenté dans mon cours sur Merise, cette présentation d'agrégation est appelé également "pseudo-entité". Je l'ai retrouvé décrite dans de nombreux cours sur Merise 2 dont un ouvrage dans les éditions ENI:
https://www.editions-eni.fr/open/med...542b17bedf1616
Bonne soirée
Candidat au Club
Envoyé par
Paprick
Bonsoir,
Looping est développé en C++ exclusivement en environnement Windows.
Cependant, sa structure étant très simple (un .exe de moins de 6 Mo sans aucune librairie complémentaire), il s'exécute parfaitement sous Linux et MacOs à travers un outil tel que
Wine (version 32 bits).
Beaucoup d'utilisateurs Linux l'ont déjà adopté.
Merci pour cette réponse rapide !
La librairie wine fait 400Mo sur Manjaro... Je trouve cela un peu triste qu'il ne soit pas plus facilement utilisable sur linux le code source n'est-il pas compilable sur linux ? utilise t-il une librairie graphique spécifique à windows ?
Merci
Membre émérite
Membre émérite
Envoyé par
_aguy
Apparemment cette notion a bien été intégré dans Merise 2.
Présenté dans mon cours sur Merise, cette présentation d'agrégation est appelé également "pseudo-entité". Je l'ai retrouvé décrite dans de nombreux cours sur Merise 2 dont un ouvrage dans les éditions ENI
Croyez-moi, j'ai étudié cette notation quand j'étais étudiant à l'IUT (il y donc de nombreuses années !), et on atteint très vite ses limites.
Sur des exemples simples tels que ceux décrits dans les cours que vous avez mentionnés, ça passe... Mais dès que les modèles sont complexes, cela devient très vite illisible, voire irréalisable.
Candidat au Club
Envoyé par
Paprick
Croyez-moi, j'ai étudié cette notation quand j'étais étudiant à l'IUT (il y donc de nombreuses années !), et on atteint très vite ses limites.
Sur des exemples simples tels que ceux décrits dans les cours que vous avez mentionnés, ça passe... Mais dès que les modèles sont complexes, cela devient très vite illisible, voire irréalisable.
OK c'est donc dans sa transcription en MLD que ce la pose problème...
Là je n'ai pas le temps avec la formation mais je garde sous le coude une réécriture (au moins partiel)
Merci pour ces réponses
Expert éminent sénior
Bonsoir,
Envoyé par
_aguy
Me voilà totalement satisfait ;o)
Bravo !
Envoyé par
_aguy
Apparemment cette notion a bien été intégré dans Merise 2.
Présenté dans mon cours sur Merise, cette présentation d'agrégation est appelé également "pseudo-entité". Je l'ai retrouvé décrite dans de nombreux cours sur Merise 2 dont un ouvrage dans les éditions ENI:
https://www.editions-eni.fr/open/med...542b17bedf1616
Vous vous basez sur des cours et sur un ouvrage, aussi bien ficelé soit-il, pour affirmer que l’agrégation a bien été intégrée dans Merise/2 : c’est quand même aller un peu vite en besogne ! Une telle affirmation ne peut être émise que par référence à un organisme habilité à proposer des normes, tel que l’Afcet, voire l’ISO. Dans son rapport de 1990(1), la défunte Afcet a fourni un très gros travail, mais est restée muette au sujet de l’agrégation. Fin des années quatre-vingts, les auteurs de référence d’alors(2) évoquent la norme ISO (mais je n’ai pas le courage de fouiller dans la Toile pour retrouver ce qui s’est dit). Sont muets aussi D. Nanci (RIP) et B. Espinasse dans leur remarquable ouvrage(3), à prendre comme vraiment la référence, même s’il comporte quelques éléments pour lesquels on pourrait tiquer. Cela dit, voyez la FAQ WinDesign où Nanci évoque (en 2004) l’agrégation, en précisant bien que WinDesign ne l’implémente que sous la forme de la double identification relative ! (Comme le très sage et sensé Looping).
N'ayant pas autorité pour définir les normes, vos sources ne sont pas à prendre en considération, à moins qu’elles ne fassent donc référence ès matière à des organismes tels que l’Afcet ou l’ISO. Une somme de sources ne constitue pas plus une norme qu’un ensemble de faits ne constitue une théorie, ou un tas de parpaings une maison. Cela dit, si aujourd’hui WinDesign (que je n’ai pas) permettait d’utiliser l’agrégation, d’accord, je reviendrais sur mes propos, même chose si Looping s’y mettait, but we can always run!
En tout cas, prenons l’exemple auquel vous nous renvoyez :
Cet exemple est assez mal choisi, car il n’est pas bien pertinent... En effet, pour un avion et un pays donnés il ne peut y avoir qu’un seul pilote, ça n’est pas très réaliste ! Si l’avion XYZ314 dessert l’Irlande avec Raoul comme pilote, Paul ne pourra pas l’accompagner. Si le soir ils veulent boire une Guinness au pub, Paul devra piloter un autre avion (ou n’être qu’un passager dans l’avion de Raoul).
Un exemple plus pertinent :
Une société de financement propose de 1 à N produits.
Un produit donné peut être proposé par 0 à N sociétés.
Un contrat concerne un et un seul produit.
Ce contrat est financé par une et une seule société.
Ce contrat ne peut être financé par cette société que si celle-ci propose le produit concerné par le contrat.
Avec Paint (merci Paint ) :
Avec Looping (ou WinDesign) :
Cela suffit à notre bonheur, et comme disait Guillaume d’Ockham, ne multiplions pas inutilement les concepts...
Votre auteur montre une version qu’il trouve « moins explicite » : forcément, car il est approximatif, il oublie tout simplement de préciser la nature, le rôle déterminant que joue la contrainte censée être représentée par le cercle connectant l’association Desservir et l’entité-type Pilotes.
Cet OVNI (forcément, ça vole) qu’est cette contrainte non identifiée est probablement une CIF (contrainte d’intégrité fonctionnelle), concept déjà officiellement présent dans Merise en 1979 !(4) :
Votre auteur devrait procéder comme on peut le faire avec Looping, au moyen d’une CIF (version repliée) :
Ou au moyen d’une CIF « dépliée » :
N.B. Les attributs d’une entité-type constituent un prédicat dont les instances sont les entités. Il est donc préférable d’utiliser le singulier pour nommer cette entité-type, à l’instar des attributs.
_________________
(1) 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.
(2) H. Tardieu, A. Rochfeld, R. Colletti - La méthode Merise, Tome 1, Principes et outils (Editions d’organisation, impression de 1989). Au paragraphe 4.4.7. « Exemple d’un Bureau des Immatriculations », les auteurs évoquent le rapport de l’ISO « Concept et terminologie pour le schéma conceptuel et la base d’information ».
(3) Ingénierie des systèmes d'information : Merise deuxième génération (4e édition, 2001).
(4) Ministère de l'Industrie - Mission à l'informatique - Centre technique informatique - Méthode de définition d'un système d'informations - Fascicule 4, guide pratique pour l'élaboration des modèles de données et de traitements - juin 1979.
Membre émérite
Candidat au Club
Envoyé par
fsmrel
Bonsoir,
Bravo !
Vous vous basez sur des cours et sur un ouvrage, aussi bien ficelé soit-il, pour affirmer que l’agrégation a bien été intégrée dans Merise/2 : c’est quand même aller un peu vite en besogne ! Une telle affirmation ne peut être émise que par référence à un organisme habilité à proposer des normes, tel que l’Afcet, voire l’ISO. Dans son rapport de 1990(1)
Pour être bref, je n'ai pas du tout apprécié votre ton.
Et comme j'ai autre chose à faire qu'à dépeindre ma science sur un ton présomptueux dans un forum sur developpez.com, je vous conseille avant de vous lancer dans une démonstration qui n'intéresse que vous, relisez ma phrase et surtout par quoi elle commence, prenez le temps de la respiration et de l'analyse. Vous verrez que cela peut être bénéfique avant de se lancer dans une diatribe.
"Apparemment ..."
Et pour finir remplacer des liens par d'autre qui ne font toujours pas autorité, je ne vois pas l'intérêt à part avoir un goût prononcé pour les shadoks.
Expert éminent sénior
Bonsoir,
Envoyé par
_aguy
je vous conseille avant de vous lancer dans une démonstration qui n'intéresse que vous
Eh ben dites donc ! En 40 ans d’informatique de terrain, de barouds au quotidien, il se trouve que j’ai eu à en faire des démonstrations pour que des DSI incrédules arrivent enfin à comprendre que leurs bases de données en production contenaient entre 20% et 30% d’erreurs. Chez d’autres, j’ai pu prévenir avant de guérir, mais il fallait démontrer, démontrer, et encore démontrer... Et je parle d’entreprises importantes (banques, assurances, industrie, etc.) Il est par exemple une caisse de retraite qui par mégarde aurait mis à la poubelle des centaines de milliers de périodes de carrière pour des futurs retraités si je n’étais pas intervenu. Il a fallu là encore que je démontre...
Quand à mon tour j’ai pris ma retraite, j’ai aidé et conseillé bénévolement les plus jeunes, et vu leurs témoignages, ils ne s’en plaignent pas, au contraire, à l’exception manifestement d’un seul.
Pour sa part, Paprick (qui a du vécu et pourrait être mon fils !) est partisan des démonstrations, vous aurez pu le constater. Certes le thème de l’agrégation est rarement abordé chez DVP, mais de là à dire que je suis seul à être intéressé, il y a quand même une marge... Bref, avant de me donner des conseils, crapahutez d’abord dans l’informatique des entreprises et nous pourrons alors échanger nos impressions.
Envoyé par
_aguy
Vous verrez que cela peut être bénéfique avant de se lancer dans une diatribe.
Merci encore pour vos conseils à un grand-père encore actif et qui en a vu d’autres. Pour ma part, j’ai fait quelques observations légitimes d’usage, et montré que l’auteur en cause pourrait aménager la page à laquelle vous nous avez renvoyés, en tout cas mes propos n’ont certainement pas la violence que vous leur prêtez.
Envoyé par
_aguy
Et pour finir remplacer des liens par d'autre qui ne font toujours pas autorité, je ne vois pas l'intérêt à part avoir un goût prononcé pour les shadoks.
Je ne remplace pas le lien que vous avez proposé. Je fournis seulement les liens habituels vers des ouvrages de référence, qui n’ont pas étés écrits par des Shadocks, mais des pointures qui, comme moi, n’ont certes plus 20 ans, mais grâce à qui j’ai appris à modéliser. Attention au ad hominem quand il s’agit de Tardieu, Rochfeld, Nanci, Espinasse et autres Merisiens à l’origine de la Méthode.
Bonne chance pour votre carrière.
Candidat au Club
Envoyé par
fsmrel
Bonsoir,
....
Bonne chance pour votre carrière.
Bonjour,
Relisez moi, Je n'ai jamais remis en question vos connaissances mais leurs usages dans l'interprétation de mes propos.
Ma carrière est en grande partie derrière moi mais je ne reste courtois qu'avec les gens qui me le sont. L'écoute est une très grande qualité, et son usage précis permet d'éviter certaines ambiguïtés.
Pour mieux comprendre ma réaction, voilà deux citations :
"Il est louable de rechercher la vérité, il faut être fou pour croire l'avoir trouvée", Friedrich Nietzsche
Dit avec plus de simplicité et de poésie
"La vérité est un lieu sans chemin", jiddu Krishnamurti
Ce qui m'amène, en autres, à douter rapidement de la simplicité d'une vérité exacte dans une situation apparemment complexe.
Je vous souhaite en retour une bonne continuation.
Modérateur
Pour ma part, quand j'ai revu de manière plus approfondie Merise au CNAM, mon prof, M. Mazet (Paprick, si tu le connais et as encore contact avec lui, passe lui le bonjour de la part d'un de ses anciens élèves), nous a donné une règle : On ne relie jamais deux patates ! Traduire par : On ne relie jamais deux associations.
De fait, le schéma que vous donnez emploie un artifice pour contourner cette règle de bon sens : le rectangle qui entoure les deux entités-types et l'association de manière à associer l'ensemble a une autre entité-type.
En pareil cas, plutôt que de contourner la règle, il faut transformer le schéma en transformant la première association en ce que j'appelle une "entité-type associative" de manière à pouvoir cette fois associer celle-ci à une autre entité-type.
D'ailleurs, en revoyant votre schéma d'origine, il contrevient aussi à une autre règle qui m'avait été donnée par mon prof du CNAM : on nomme les entités-types par des noms au singulier et les associations par des verbes à l'infinitif. Votre schéma présente une association nommée "tarif" qui n'est pas un verbe mais un nom. Indice de plus qu'il s'agit d'une entité-type et pas d'une association. Et tarif n'est peut-être même pas, sémantiquement, le nom qui convient. Commandez-vous un tarif ? Ou plutôt un article qui est en l'occurrence un meuble d'une certaine couleur ?
La bonne modélisation est donc bien celle qui vous a été donnée par mes deux collègues, plus expérimentés que moi en modélisation.
Un autre exemple, classique... En première approche, on considère une commande qui peut contenir plusieurs articles et chaque article pouvant être l'objet de plusieurs commandes. Nous arrivons donc facilement au premier MCD suivant :
Commande -1,n----contenir----0,n- Article
Puis vient le moment de traiter soit l'expédition de la commande si on se pose du côté du fournisseur, soit sa réception si on se pose du côté du client. Et là, comme une commande peut être expédiée ou livrée en plusieurs fois, on se rend compte qu'on doit traiter non pas la commande dans sa globalité mais chaque ligne de commande individuellement. On transforme donc l'association "contenir" en entité-type associative "ligne_commande" :
Commande -1,n----comprendre----(1,1)- Ligne_commande -(1,1)----concerner----0,n- Article
À la suite de quoi on peut créer un bon de livraison ne comprenant que les lignes L1 et L3 de la commande C1, la ligne L2 étant livrée plus tard :
Bon_livraison -1,n----comprendre----(1,1)- Ligne_commande
Idem pour la facturation.
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 !
Membre chevronné
"Les cons, ça ose tout. C'est même à ça qu'on les reconnaît." Michel Audiard - Les tontons flingueurs
Site Web :
https://www.admin-libre.fr
Candidat au Club
Envoyé par
CinePhil
Pour ma part, quand j'ai revu de manière plus approfondie Merise au CNAM, mon prof, M. Mazet (Paprick, si tu le connais et as encore contact avec lui, passe lui le bonjour de la part d'un de ses anciens élèves), nous a donné une règle : On ne relie jamais deux patates ! Traduire par : On ne relie jamais deux associations.
Idem pour la facturation.
Merci pour cette réponse. Il y a vraiment un problème récurrent avec les forums c'est l'emballement, La première réponse que m'a donné Paprick sur ce cas était largement suffisante pour moi, je l'en ai remercié et suis passé à autre chose :
Croyez-moi, j'ai étudié cette notation quand j'étais étudiant à l'IUT (il y donc de nombreuses années !), et on atteint très vite ses limites.
Sur des exemples simples tels que ceux décrits dans les cours que vous avez mentionnés, ça passe... Mais dès que les modèles sont complexes, cela devient très vite illisible, voire irréalisable.
Après j'ai trouvé le ton de l'interpellation de @fsmrel pas agréable, je pense en avoir le droit vu la tournure des propos. Et le fait que je n'ai rien affirmé mais fait remarquer ("Apparemment...") qu'il existait des personnes +/- compétentes, qui enseignent, proposer cette extension de Merise 2.
Pour ce qui est du fond du problème il y a apparemment deux courants vu le nombre de fois où cette notion d'agrégation et la possibilité de créer une "pseudo-entité" est reprise dans des cours et dans les livres dont au moins un est référencé sur ce site.
Après je ne sais pas du tout qui a raison ou tord mais j'ai dû mal avec les tons péremptoires.
La modélisation est en règle générale une assistance dans interprétation d'un réel, d'un concept, .... qui peut posséder des règles intransigeantes, d'usage, flexibles... dont une partie ou la totalité d'entre elles peut-être +/- discutable, interprétable, ...
La réponse de Paprick a été pour moi un argument logique qui justifie son choix, d'autre logiciel le permettent. Je lui fais confiance (à priori ) pour la réalité de sa réponse.
Voilà c'est tout.
Donc je vous remercie pour vos interventions et vous souhaite un bon week-end.
Modérateur
Bonsoir à tous
On est confrontés ici à toute la difficulté de l'expression écrite : le ressenti du lecteur est parfois très loin de ce qu'a voulu exprimer le rédacteur (je parle évidemment de la forme et non du fond).
C'est vrai aussi pour l'expression orale, mais beaucoup moins, la présence physique permet de percevoir des choses que l'écrit ne permet pas.
Il y a de nombreuses années que Fsmrel nous aide les uns et les autres à comprendre les subtilités du modèle relationnel et de la méthode Merise.
Il est clair qu'il excelle en la matière, son aide est précieuse et je n'ai pas souvenir qu'il n'ait jamais manqué de respect envers quiconque.
Des maladresses sont possibles, ça nous arrive à tous, moi le premier
+ Répondre à la discussion
Cette discussion est résolue.
Discussions similaires
-
Réponses: 4
Dernier message: 07/09/2006, 15h41
-
Réponses: 6
Dernier message: 20/05/2006, 11h41
-
Réponses: 2
Dernier message: 20/01/2006, 17h05
-
Réponses: 8
Dernier message: 13/01/2006, 01h20
-
Réponses: 18
Dernier message: 09/01/2006, 18h47
×
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité,
merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager