Bonjour Kwadz,
Envoyé par
Kwadz
J'aurais souhaité savoir s'il est préférable de transformer les associations n-aires en associations binaires et, si oui, pourquoi ? Est-ce LA bonne pratique ? Ou pas du tout ? Qu'en est-il de l'impact sur les performances du SGBD ?
Une relation ternaire est à décomposer en relations binaires quand elle viole la quatrième forme normale ou la cinquième forme normale.
Sinon, considérons les règles de gestion suivantes valant pour les ingénieurs de telle ou telle SSII, lesquels sont en mission chez ses clients :
— Un ingénieur met en œuvre tel ou tel SGBD chez tel ou tel client ;
— Un client a recours aux services de tel et tel de nos ingénieurs pour mettre en œuvre tel et tel SGBD ;
— Etc.
Par exemple :
L’ingénieur Raoul a mis en œuvre SQL Server et DB2 chez Dubicobit. Il a aussi mis en œuvre Oracle, Sybase et DB2 chez Yadupour.
L’ingénieur Paul a mis en œuvre DB2 et IMS chez Dubicobit. Il a aussi mis en œuvre IDMS et Sybase chez Yaudpoil.
Le MCD correspondant est le suivant :
Mathématiquement parlant, la ternaire n’est pas réductible à des binaires (on démontre en effet qu’elle est en sixième forme normale). Je rappelle encore qu’une association correspond à un prédicat, en l’occurrence :
L’ingénieur x met en œuvre le SGBD y chez le client z
Ou à la façon ramassée des logiciens :
x met en œuvre y chez z
Et de façon encore plus ramassée :
Fxyz
Ceci ne date pas d’aujourd’hui, voyez G. Frege, le père de la logique moderne. Dans sa théorie générale de la quantification (voyez Methods of Logic), le Professeur Willard V.O. Quine (un grand philosophe américain du XXe siècle) prend comme exemple le terme triadique « Gxyz » qui pourra signifier « x donne y à z ». Quine présente aussi le terme triadique « Hxyzw » qui pourra signifier « x paye y à z pour w ». Et Quine n’a aucunement l’intention (et pour cause !) de ramener un prédicat triadique ou tétradique à des prédicats dyadiques.
Quant aux MCD, Y. Tabourier traite longuement des ternaires (cf. De l’autre côté de Merise) avec l’exemple (bien connu des cercles merisiens) des personnes qui garent des voitures dans des bâtiments, en notant qu’il est évidemment des cas où la décomposition est impossible.
Quant à la performance, pour avoir été impliqué dans de très gros projets, aussi bien en tant que concepteur ou DBA pendant 40 ans, prototypé encore et encore les performances, je dis qu’elle n’a strictement rien à voir avec cette histoire de transformation a priori de ternaires en binaires : avant de développer les applications, prototypez, prototypez les performances des requêtes qu’elles hébergeront, encore et encore...
Partager