Au sujet de votre tutoriel, veuillez accepter à nouveau "quelques" suggestions.
Monsieur de Sainte Marie,
J’ai crû voir quelque part que vous aviez 40 ans de pratique en bases de données ; sachez donc que vous avez tout mon respect.
Je vous présente une volée de remarques et suggestions. J’ai eu l’opportunité de lire attentivement jusqu’en page 44 de votre document. (J’ai cependant sauté la section sur la dé-normalisation versus optimisation.)
Je vous suis très reconnaissant, car j’ai pu en outre noter des références, comme l’évocation des bases de données « décisionnelles » pour ne citer qu’elles.
En outre, j’ai en conscience qu’il est facile de « démolir » le travail de quelqu’un, sauf que – outre le fait qu’il faille reconstruire après – d’une part j’ai toujours refusé et refuse les voies de facilité, et d’autre part ce n’est tout simplement pas mon intention. Je vous prie donc de faire bon accueil à ce post.
-Je ne note pas toutes mes remarques ; l’une d’entre elles est partie dans un délire dont je ne connaissais plus la référence.
Je les ai classées dans l’ordre d’apparition, elles n’ont donc pas toutes la même importance.
- Page 8 : « Une relation de degré 3 pourrait avoir pour attributs (A1, A2, A3) » - je crois que vous voulez parler du nom des attributs. Loin de moi l’idée que vous puissiez confondre, je sais qu’on a souvent envie de faire le raccourci, mais dans son livre Temporal Data and the Relational Model, Date insiste bien sur la différence, qui – même sans Date – est littérale.
- Page 9 : Vous évoquez l’équivalence d’un type est d’un domaine, à la faveur du type. Je regrette cet état de choses, car – si ma notion mathématique de ces termes est la bonne – on peut avoir l’ensemble des nombres naturels comme type, alors qu’on peut très bien en prendre une restriction comme domaine (ne serait-ce que cet ensemble sans l’élément zéro).
- Page 11 : A propos de la normalisation qui n’est pas la panacée, mais vaut mieux que l’alternative… je vais faire deux traits d’humour : encore faut-il que l’alternative existe, et si elle existe… elle ne sera jamais qu’une alternative !
Je crois que vous allez dans ce sens, mais je pense que ce serait bien d’insister sur le fait que le but de la normalisation est bien d’atteindre le stade le plus poussé (6NF). Je me permets par là un petit hors-sujet : en général, l’exclusion de formes normales ultérieures m'apparaît n'être que le reflet de la compétence des auteurs des tutoriels. Pourtant j’en ai trouvé un très bon, mais qui excluait la 6NF. Quant au délire d’autres auteurs de tutos consistant à dire qu’il est inutile de dépasser 3NF pour des bases de taille « modérée », vous devinez ma pensée à plus forte raison par les guillemets que je viens de placer.
Je constate donc avec bonheur que vous avez inclus la NF la plus poussée (6NF), mais peut-être une petite insistance sur le but de la normalisation pourrait être fait, après avoir dit ce qu’elle n’est pas (une panacée).
- Page 12 : Je ne sais pas ce que vous appelez un « Sotomayor », mais c’est bien la définition de la forme normale 5 qui ne requiert – en elle-même – pas la précédente, bien qu’elle la satisfasse. (Je pense qu'une petite insistance sur les "NF sans pré-requis" pourrait être bon en évitant la confusion des lecteurs.)
- Page 21 : À propos des théoriciens qui sont restés en phase avec Codd. Là aussi, je me permets un trait d’humour ; je me plaît parfois à imaginer ce que donnerait un clash entre Date et Codd. Car – bien que ne connaissant pas aujourd’hui même l’affinité entre les (ces) théoriciens – par plusieurs fois, Date et Codd m’ont paru en sacrée divergence.
Dans son livre que je mentionne plus haut, Date dit bien qu’il a longtemps renié la probité de la notion de « valeur vide » - en fait, il continue à le faire ; jusqu’à ce qu’on tombe sur une page, où il dit que – grosso-modo – il y a renoncé. Je pense aussi à la forme de dédain que Codd semble s’être mis à vouer à la normalisation, lorsque vous mentionnez dans votre tutoriel, que Codd n’a parlé que de ses « bénéfices », et sur seulement 2 pages d’un de ses livres. Ou encore à un intitulé sur la première forme normale, par Date, qui a été (d’après Wikipedia) : « What first normal form really means » (ce que signifie vraiment la première forme normale). J’aime beaucoup votre usage du terme « compagnon de route », mais si ces exemples – qui sont encore seulement ceux que je connais ou pense connaître – signifient « rester en phase », admettons que « rester » ou « en phase » ont une acceptation bien large.
- Page 39 : Vous signifiez, à juste titre, qu’une « clé » est une clé candidate. Quoique vous mentionnez beaucoup plus loin pourquoi, je pense qu’il est utile de préciser dès ce moment pourquoi, en place de mentionner qu’il s'agit (seulement) d’une abréviation.
-Pour ma part, j’avais construit ma « petite théorie ».
Je ne sais pas ce qu’est le rasoir d’Ockham, mais je pense pour ma part que l’absence de notion de clé primaire en normalisation, est due à une préséance de la normalisation sur le MCD et à plus forte raison sur le MLD qui – lui – invoque des clés étrangères et primaires.
-Y’a-t-il vraiment une confusion Normalisation-MERISE (cf. I. plus bas) (à vrai dire, je pense l’avoir fait plus d’une fois dans mon apprentissage, sachant que les deux nous sont enseignés simultanément) dans les rapprochements clé-NF (la 1NF pour être exact) que vous dénoncez en page 32 ? Je comprends que des énoncés soient rocambolesques, mais je pense qu’il faut faire attention de ne pas faire trop peur à des gens qui pourraient commencer à se mettre des freins en disant « Il n’y a aucun lien entre clé et NF », alors que plusieurs définitions de formes normales ultérieures (Boyce-Codd et 4NF) invoquent la notion de super-clé (et que vous appelez assez heureusement sur-clé), qui peut éventuellement être une clé (candidate).
(I.)D’ailleurs, si je me souviens bien de ce que je viens de lire aujourd’hui, vous semblez dire que Normalisation et MERISE sont bel et bien complémentaires.
- Page 41 : Vous avez placé à l’origine de la définition, en place de l’énoncé de Boyce et Codd, semble-t-il - ou alors j’ai loupé quelque chose -, un énoncé de Date.
-La variante 1 : je n’ai rien à redire.
-Mais la variante 2, elle est de qui ?
-Et Boyce et Codd, qu’ont-ils donc dit au sujet de leur propre forme normale ?
- Page 44 : Je me pose la question de savoir pourquoi vous placez la 2NF après la BCNF, alors que – comme vous l’avez mentionné – la 2NF précède BCNF et en temps, et en concept.
Voilà, je sais que ça fait beaucoup, ce pourquoi j’ai souhaité vous mettre mes remarques après un premier tiers de lecture.
À part ça, vous m’avez passionné avec votre descriptif Normalisation Synthétique (le synthétique étant selon Kant, ce qui se réfère à l’interne pour faire court) versus MERISE analytique (l’analytique se référant à l’externe).
Et puis vous citez – hormis pour la forme Boyce-Codd (je crois) au sujet de quoi je vous ai aussi écrit ici - vos sources de manière très précise.
Me permettez-vous de faire une copie papier de votre document pour mon examen ?
N.B. :
Si ma liste de remarques devait n’être que le résultat d’approximations de ma part, je vous adresserai alors mes demandes d’excuses ; je ne suis qu’apprenant en informatique.
Je crois que vous tricotez projection et jointure
Monsieur de Sainte Marie,
Je n'aime pas faire la police des polices, cependant comme vous citez, dans votre tutoriel, des auteurs comme tricotant allègrement des concepts merisiens et relationnels (ndr: quelles "relations" ?)
Citation:
Envoyé par fsmrel
Penchez-vous sur les « Nine Requirements »
Citation:
Envoyé par
Oppenheimer
Ces "requirements" soit pré-requis ne sont exposés qu'après l'exposé de la 6NF, et de plus, concernent les contraintes d'intégrité.
je me permets d'attirer votre attention sur le fait que je pense que vous tricotez allègrement concepts normatifs et concepts analytiques, sachant que la normalisation n'est qu'une décomposition d'une "entité" par projection. (Autant appeler un chat un chat.)
L'encyclopédie Wikipedia n'est pas totalement fiable, et l'était encore moins à ses débuts (où je la méprisais), mais force est de constater que les simples images définissant - dans sa section francophone comme dans sa section anglophone - les contre-exemples et exemples rectifiés des formes normales, ignorent toute forme de références entre entités.
Donc: je passerai au point suivant - si vous me le permettez - quand on aura réglé la considération sur les intervalles (étant donné l'enjeu et la quantité).
Réflexion sur l'intervalle comme une donnée.
Monsieur de Sainte Marie,
Je viens seulement de parcourir vos réponses en entier, et: je ne vois essentiellement aucun autre point de divergence.
Je vous remercie par là pour vos précieuses explications, notamment concernant la normalisation par restriction, dont je continue cependant à penser qu'elle n'est quant à elle pas très pertinente (à cause probablement de son aspect "facile" - je vous rappelle que j'ai tendance à renoncer à la facilité).
Je sais que cela ne vous fait pas plaisir, que je mette en évidence un intervalle comme étant une donnée, et qui à mon sens, a de grandes chances de valoir un prix Nobel à Date, si le comité Nobel n'est pas aveugle ou "démonstratif".
On est bien en peine de concrétiser les conséquences, étant donné que 10 ans plus tard, les SGBDR ne feraient - peut-être - que commencer à gérer la 6NF (si un descriptif d'Oracle dit juste à propos de sa version 12, en disant qu'il gère les données temporelles).
Je pense pour ma part qu'en corollaire de ses mathématiques, Date a dû faire le raisonnement suivant:
une date n'est qu'une durée implicite. De plus, au cas où l'Univers n'aurait pas eu de naissance ("Big Bang"), soit aurait été éternel, ça peut remettre en cause l'image que nous nous faisons du temps, à la façon "d'un écoulement" (probablement favorisé par nos idées sur l'entropie irréversible).
Si cette image eût été effectivement remise en cause, cela débouche sur la notion - plus digne des philosophies orientales que de nos petites équerres et délimitations (qui nous ont toutefois menés où nous sommes) - qu'un intervalle est effectivement tout autant une donnée qu'une date (je ne parle pas de leur essence au sujet de laquelle nous ne finirions pas), avec pour corollaire:
qu'une "fin" (d'intervalle) n'existe que relativement au "début" (de l'intervalle).
Du coup, mais c'est plus difficile à montrer, un tel "début" n'existe également que relativement à la "fin". (Pour donner une image: "la fin justifie les moyens" soit le début ici; -ce n'est qu'une image - mais je fais confiance à la "sagesse populaire".)
Voilà, je voulais vous contextualiser l'intervalle comme donnée avec une réflexion.
----------
N.B.:
Un intervalle est probablement encore plus une donnée qu'une date, en prenant conscience que la date n'a qu'un début inconnu (Big Bang), ou potentiellement non crû (le Christ), soit très lointain et non-observé.
L'intervalle, lui, est observé (sans quoi il n'est pas un intervalle), et - qui plus est - se réfère bel et bien - dans le cas de la gestion - à un objet particulier (auquel l'intervalle est "relatif" en ce sens qu'Einstein a dû entendre: l'absolu relatif à, respectivement, l'objet et l'observateur).
Une normalisation par projection"-jointure" m'apparaît être une contradiction.
Bonjour Monsieur de Sainte Marie,
Je vous prie de m'excuser, mais la normalisation me passionne. Or je commence à me sentir un peu seul sur ce thème. :P (Je n'ai pas trouvé le smiley qui pleure.)
Ce que je voulais vous écrire (je vais vous mettre une version anglophone, car la notion de contradiction y est traduite de manière implacable); je pense que:
A project"-join" normalization is a contradiction in term.
-Une normalisation par projection"-jointure" (P"-J"/NF) est une contradiction en soi.
Je sais que PJ/NF est un terme utilisé, et même très courant, seulement:
dans une approche a priori, la notion de jointure n'intervient pas, ou en tout cas pas immédiatement.
Je sais que la situation sur le terrain me mènera bientôt - au cas où je dois (dénormaliser puis) normaliser une base déjà existante - soit des tables liées - à adopter l'approche a posteriori.
Cependant, et c'est en ce sens que je vous écris, je vous met la définition exacte de la 6NF:
Citation:
A relvar R is in sixth normal form (abreviated 6NF) if and only if it satisfies no nontrivial join dependancies at all - where, as before, a join dependancy is trivial if and only if at least one of the projections (possibly U_projections) involved is taken over the set of all attributes of the relvar concerned.
Et c'était cela le sens d'un précédent message: Une normalisation qui invoquerait positivement la notion de jointure, soit clairement: invoquerait la jointure, ne serait plus une normalisation!
La définition de Date et ses collègues pour la 6NF ne fait que considérer la négation d'un type de jointures, et n'a jamais affirmé son type opposé !
(En clair: "A implique B" n'est pas égal à "Non-A implique non-B".)
Dans votre tutoriel (j'ai passé de la page 44 à celle de la 6NF, inquiet de votre compréhension de l'intervalle), vous évoquez:
Citation:
Une relvar est en sixième forme normale (6NF) si et seulement si, quelle que soit la dépendance de jointure à laquelle elle satisfait, cette dépendance est triviale.
J'ai bien conscience que "quelle que soit", autrement dit: "pour tout", a une notion de dire: éventuellement aucun, mais bien des non-mathématiciens ou non-ingénieurs ne le comprendront pas de cette manière. La conception de bases de données s'adresse... à des concepteurs de bases de données, qui ne sont par définition pas tous mathématiciens (j'entends par là: ayant dû passer 5 ans à maitriser (et ré-inventer) non seulement l'algèbre relationnelle mais tous les autres domaines de l'analyse à l'algèbre "générale") - sans quoi les travaux de Codd, Date et autres auraient été quasi-inutiles.
Or Date a été très clair:
Une relvar R est en sixième forme normale (abrégée 6NF) si et seulement si elle ne satisfait aucune dépendance de jointure non-triviale du tout - où comme avant, une dépendance de jointure est triviale si et seulement si au moins une de ses projections (possiblement U_projections) invoquée est prise sur l'ensemble de tous les attributs de la relvar concernée.
Voilà, j'aimerais avoir votre avis sur ce que j'appellerais le mythe de la normalisation par jointure ?
En effet, comme vous scindez Normalisation et MERISE, je pense qu'on peut aller plus loin, et distinguer la projection de la jointure dans la normalisation.
En fait on ne parle de PJ/NF que pour la 5NF.
Bonjour Monsieur da Sainte Marie,
Tout d'abord, merci de m'avoir dit que "la fonction imprimer existe", mais je me permets de citer à vous même votre document:
Citation:
Copyright (C) 2008 - François de Sainte Marie. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu: texte, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 € de dommages et intérêts.
Je risque de passer pour un coupeur de cheveux en quatre comme m'en qualifient mes proches, ou encore un pointilleux de service si je pense à un qualificatif mesuré dont vous usâtes, mais l'envie de devoir payer trois fois (cent mille euros d'amende et an de prison) ne me tente pas spécialement si vous voyez ce que je veux dire.
Or l'existence de la fonction imprimer, je la vois comme une autorisation implicite, et non expresse.
Je vous réitère donc ma demande de faire une impression papier de votre document pour mon examen.
Ensuite, j'ai évoqué précédemment ce qui m'apparaissait comme le délire de la normalisation P"J".
En vérité, je n'oppose pour ma part pas les normalisations par restriction ou par projection, car ce qui fait la forme normale n'est pas la méthode, mais le but de n'avoir aucune anomalie dans la base.
Finalement, la seule forme normale qui soit qualifiable de project"-join" est la 5NF - non pas parce que Wikipedia l'asserte - mais parce que la jointure y est évoquée de manière positive en définition:
Citation:
Une relvar R est en 5NF si et seulement si toute dépendance de jointure en son sein, est induite par une clé candidate.
Dite "Toute dépendance" qui - rappelons-le - peut signifier éventuellement "Aucune", ce qui participe à rendre équivoque à mon sens le terme "PJ/NF", je parlerai donc pour ma part que de 5NF à son endroit.
En regardant maintenant votre document, je vois que vous connaissez assez fidèlement l'énoncé. Cependant, tout en la connaissant, vous continuez à parler d'une normalisation "par projection-jointure entendue comme opposée à celle de restriction-union", et cela m'étonne au cas où vous voudriez parler d'une "méthode globale de normalisation".
D'avance merci pour votre autorisation expresse.