# Gnral Dveloppement > ALM > Modlisation > Schma > [Normalisation] [Article] Bases de donnes relationnelles - Normalisation [News]

## fsmrel

*Mise  jour du 14/07/2011*


Bonsoir,


Voici la 3e partie de mon article sur la normalisation des bases de donnes, partie qui traite des quatrime, cinquime et sixime formes normales. 

Comme il ny a pas de normalisation en 7NF par projection/jointure (sauf  chez les farfelus), larticle est achev, aux quelques modifications  prs dusage que je peux toujours tre amen  effectuer suite  vos  observations. 


Bonne lecture ! 		

*Mise  jour du 12/10/10*

Bonjour,

Voici la 2e partie de mon article sur la normalisation des bases de donnes, partie qui a trait  la 2NF, la 3NF et la BCNF. Concernant la 4NF, la 5NF et la 6NF, cest pratiquement au point et jespre que tout sera boucl dici la fin de lanne.

Jai aussi complt la 1re partie et adopt parfois un ton un peu polmique, par exemple en ce qui concerne loptimisation : il peut donc y avoir des ractions, aussi ai-je mon casque lourd  porte de main...

Bonne lecture !

fsmrel

*23/05/2009*




> Bonjour,
> 
> De la normalisation des bases de donnes.
> 
> La connaissance de la thorie de la normalisation est incontournable ds quil sagit de structurer les donnes de faon rationnelle (modlisation conceptuelle et logique des donnes). Nous prsentons ici http://fsmrel.developpez.com/basesre...normalisation/ une tude relativement approfondie mais non hermtique de ce sujet, abord bien souvent de faon superficielle voire approximative.
> Cet article traite en dtail des formes normales, de la premire  la cinquime. Il a t dcoup en quatre parties qui seront publies progressivement. 
> 
> Merci d'avance pour vos commentaires !
> 
> fsmrel

----------


## Philippe Vialatte

Bel article  ::ccool::  (il va falloir que je me l'imprimes et que je me le lise a tte repose...)

Tiens, a fait plaisir, cet article va me permettre de taper encore plus fort sur les doigts de mes petits camarades  :;):  

Ca me rappelle mes cours de sgbd avec Miranda il y'a quelques annes (vive la fac a Sophia, le soleil, les palmiers, et les bases de donnes  ::mouarf:: )

Vivement la fin de relecture des 4nf et 5nf  :;):

----------


## fsmrel

Bonjour,

Merci Philippe pour ce premier commentaire et pour votre compliment.

Au sujet de Serge Miranda : Le 29 septembre 1987, au Palais des congrs  Paris, Ted Codd, Chris Date animent un sminaire dont je vous laisse deviner le thme. La foule des grands jours est prsente (_a priori_ vous tiez un peu trop jeune pour vous joindre  la noble compagnie...) Serge Miranda tait assis bien sagement au fond de la salle (immense est bonde). Codd sadresse  nous  peu prs en ces termes :  Hommage  Serge Miranda, dont le SGBD Campus est le seul que nous avons retenu comme tant totalement relationnel .

----------


## ypicot

Excellent papier, un des meilleurs ( mon sens) sur le sujet.

Ca ne se lit pas aussi facilement qu'un polar de la srie noire, mais l'effort vaut largement le coup.

Une question bte : pourquoi ne pas aller jusqu' la 6NF ? Est-ce parce que son explication est franchement mathmatique ? 

Yvan

----------


## fsmrel

Merci  vous Yvan,

La 6NF ? Jai hsit. En tous cas, les mathmatiques ne sont pas partie prenante dans cette affaire. Quoi qu'il en soit, our le moment, je prfre mabstenir. En effet :

1) Chris Date traite de la 5NF en 5 pages et demies (_An Introduction to Database Systems, 8th edition_, pages 386-391) or le sujet na pas la rputation dtre simple. En ce qui concerne la 6NF, si lon tient compte des tapes prparatoires, Date a besoin de 47 pages (c'est--dire tout le chapitre 23 de louvrage cit) pour faire le tour complet de la question, mais sans l'approfondir... 

2) La 6NF prsente essentiellement de lintrt dans le contexte des bases de donnes dans lesquelles le *temps* joue un rle majeur (date de dbut, date de fin, donne par donne pour prendre un trs grand raccourci). Mais dj, nombre de problmes sont rsolus si au niveau du MCD on isole les donnes  dates  pour lesquelles la date de fin est connue (ce que Date appelle les donnes intervallaires de type  durant  (_during_) par opposition aux donnes pour lesquelles la date de fin nest pas connue, dites de type  depuis  (_since_). Ainsi, dans votre entreprise vous avez pu faire partie de tel et tel services *de telle date  telle date*, mais vous tes actuellement affect  tel service *depuis* telle date, sans limitation dans le temps. 

Voyez par exemple la rponse que je fais  Fayred (Historiser deux entits et leurs relations) : la date dernire date dembauche nest pas mle avec lhistorique, ce qui smantiquement parlant est sain. Au minimum, jvacue le problme des dates marques  NULL ou valorises de faon vaseuse, dans le genre 31/12/9999 et dont il faut tenir compte dans les requtes : dans les banques, assurances, organismes de retraite, etc., les dveloppeurs SQL sont rgulirement confronts  de tels impedimenta.

3) Traiter les donnes temporelles (et plus gnralement intervallaires) conduit  tendre lalgbre relationnelle, de faon significative (nouveaux oprateurs, entre autres PACK et UNPACK), gnraliser tous les oprateurs classiques, Projection, Jointure, Union, Intersection, Diffrence, etc. Ainsi, la jointure gnralise U_JOIN de deux relations r1 et r2 est un raccourci de lexpression hermtique (si lon na pas lu les 30 premires pages du chapitre 23 mentionn) :
  PACK (( UNPACK r1 ON (ACL)) JOIN (UNPACK r2 ON (ACL))) ON (ACL)Et je nai gure envie dentreprendre ici la rdaction dun paquet de pages dexplication. Jespre que vous me comprenez et compatissez. 

Bref, le mieux est de se focaliser sur la *modlisation* des donnes dans leur dimension temporelle, en ayant  l'esprit les mots magiques _during_ et _since_, auquel cas on peut parvenir  la 6NF ( condition de respecter la 5NF), comme M. Jourdain est parvenu  la prose sans le savoir. Et pour sen assurer, lire et relire le fameux chapitre 23. Les plus courageux tudieront louvrage commis par Date, Darwen et Lorentzos : _Temporal Data and the Relational Model_, lequel va encore plus en profondeur.

----------


## ypicot

Merci pour cette rponse.

Elle pourrait figurer -au moins partiellement- en intro ou en conclusion dans le tuto, pour ne pas laisser le lecteur avec un sentiment d'incompltude.

Au lieu d'un manque, cela devient "la 6NF ne sera pas traite ici, et voici pourquoi".

Mais ce n'est qu'une suggestion.

Yvan

----------


## fsmrel

D'accord Yvan,  loccasion de la publication du prochain chapitre, jajouterai un petit couplet sur la 6NF, reprenant en gros mon prcdent message.

----------


## fsmrel

Bonjour,

Voici la 2e partie de mon article sur la normalisation des bases de donnes, partie qui a trait  la 2NF, la 3NF et la BCNF. Concernant la 4NF, la 5NF et la 6NF, cest pratiquement au point et jespre que tout sera boucl dici la fin de lanne.

Jai aussi complt la 1re partie et adopt parfois un ton un peu polmique, par exemple en ce qui concerne loptimisation : il peut donc y avoir des ractions, aussi ai-je mon casque lourd  porte de main...

Bonne lecture !

fsmrel

----------


## Gorwen

> 2.  Dfinir au besoin une vue, appelons-la FACT_RGLT, pour effectivement  faciliter la communication , c'est--dire tout savoir sur les factures rgles.
>     Dans le style SQL, cette vue (parmi d'autres, selon les besoin) pourrait tre :
> 
> 
> 
> 
> ```
> 
> ```
> ...


Il ne sagit certes pas du cur de larticle, mais je me demandais sil ne serait pas plus pertinent dutiliser une jointure externe. 

Pour la vue sur les factures non rgles, je veux bien que vous utilisiez not exists de prfrence  une jointure externe, aprs tout, chacun ses petites manies, mais la vue permettant de prsenter toutes les factures tourne au vice.
Cette vue fait lunion de 2 recherche des factures avec une jointure (ou son quivalent  en not exists). Il me semble plus naturel de faire une jointure externe. Cette vue permet mme de rpondre aux trois problmatiques (si IdReglement est null cest quaucun rglement nest associ  cette facture et donc que la facture na pas t rgle), il nest pas ncessaire de multiplier les vues.
Et si cela vous semble un peut trop dtourn, il est mme possible de crer un champ ddi, par exemple : 

```
decode(y.IdReglement,null, 'Non Rgl', 'Rgl') as Regle
```

La vue donnerai donc :



```

```

Je critique un peu, mais c'est juste pour alimenter le dbat.
Bravo pour larticle.  ::ccool::

----------


## fsmrel

Bonsoir Gorwen, et merci pour vos commentaires.





> Il ne sagit certes pas du cur de larticle, mais je me demandais sil ne serait pas plus pertinent dutiliser une jointure externe.


Du strict point des facilits offertes par le langage SQL, votre remarque est bien sr recevable. Mais dans cet article, je tiens  rester le plus possible dans les clous du Modle Relationnel de Donnes, lequel tient la jointure externe  lcart parce que celle-ci a pour objet la production de rsultats dans lesquels se manifeste le bonhomme NULL (contrairement  ce qui se passe avec la jointure naturelle classique). Du point de vue thorique, le rsultat dune opration relationnelle dont les oprandes sont des relvars (variables relationnelles, voyez lannexe A.2) est une relvar qui  son tour doit pouvoir servir comme oprande dune autre opration, cest le principe de *fermeture* que le Modle Relationnel de Donnes se refuse de violer. Si NULL apparaissait dans le rsultat, comme NULL nest pas une valeur, la relation correspondante (cf. annexe A.2)  perdrait  sa proprit densemble (au sens de la thorie des ensembles), et le principe de fermeture ne sappliquerait plus (_horresco referens_...)





> Pour la vue sur les factures non rgles, je veux bien que vous utilisiez not exists de prfrence  une jointure externe.


Puisque jessaie de ne pas mcarter de la thorie relationnelle, jaurais d en toute rigueur ne pas utiliser NOT EXISTS, mais une opration de DIFFERENCE (oprateur MINUS ou EXCEPT selon les dialectes), donc coder ainsi la vue utilise pour les factures non rgles :



```

```

Si le SGBD ne propose pas loprateur EXCEPT (MINUS, ...) alors, toujours dans le cadre du Modle Relationnel de Donnes, je prfre recommander lemploi de NOT EXISTS. 

Dans la pratique, le choix final se fera en ralit sur la base dun prototypage des performances (dj un EXPLAIN (DB2, ORACLE, TERADATA), ou un SHOWPLAN (SQL Server), etc.) devrait dj permettre de fournir de bonnes indications). (Notez que la performance des applications est un sujet auquel je suis sensible, voyez par exemple le paragraphe 3.8 et lannexe F.3).





> la vue permettant de prsenter toutes les factures tourne au vice


Peu importe la teneur du code encapsul dan linstruction CREATE VIEW. En effet, on peut le modifier  volont, cela reste transparent pour ceux qui se servent de la vue (utilisateurs, applications). Cela dit, la vue FACT_STATUT est  considrer ici dans son acception mathmatique, c'est--dire lUNION de deux ensembles, celui des factures rgles et celui des factures non rgles.

Jaurais pu aussi coder directement la vue FACT_STATUT sans y faire mention des deux autres vues. videmment, lutilisation dEXCEPT et UNION fait que le code est un peu plus verbeux quavec un OUTER JOIN, mais comme je lai dit,  quand on en arrive au ct pratique des choses, si daprs  le prototypage des performances la jointure externe savre plus efficace, on pourra bien sr la mettre en uvre, et cela restera  transparent pour les utilisateurs, le code tant encapsul dans la vue. 

Une observation quand mme : 

La vue que vous proposez est source de NULL pour les attributs IdReglement, DateReglement, MontantReglement : l'utilisation de la fonction COALESCE permettrait dviter cela et de garantir que le rsultat soit un ensemble.

Un point de dtail : DECODE nest pas une fonction reconnue par la norme, il serait prfrable dutiliser par exemple CASE ou COALESCE.

De mon ct, je complterai probablement ainsi cette partie de larticle : 
Les habitus de SQL prfreront sans doute directement coder ainsi la vue FACT_STATUT :



```

```

----------


## Gorwen

> Du strict point des facilits offertes par le langage SQL, votre remarque est bien sr recevable. Mais dans cet article, je tiens  rester le plus possible dans les clous du Modle Relationnel de Donnes


Je m'attendais un peu  ce que vous me rpondiez quelque chose comme a, mais j'ai bien fait de poser quand mme la question puisque vous avez dvelopp votre rponse de manire fort intressante.




> Du point de vue thorique, le rsultat dune opration relationnelle dont les oprandes sont des relvars (variables relationnelles, voyez lannexe A.2) est une relvar qui  son tour doit pouvoir servir comme oprande dune autre opration, cest le principe de fermeture que le Modle Relationnel de Donnes se refuse de violer. Si NULL apparaissait dans le rsultat, comme NULL nest pas une valeur, la relation correspondante (cf. annexe A.2) perdrait sa proprit densemble (au sens de la thorie des ensembles), et le principe de fermeture ne sappliquerait plus (horresco referens...)


Merci pour cette explication. Donc en thorie, on fait tout ce qu'il faut pour ne pas avoir de NULL, mais en pratique le null est une notion trs pratique  :;): 




> Un point de dtail : DECODE nest pas une fonction reconnue par la norme, il serait prfrable dutiliser par exemple CASE ou COALESCE.


Effectivement, la fonction COALESCE est ici bien plus approprie et votre remarque sur la norme est tout  fait judicieuse.

Merci encore pour votre rponse. J'attends la suite de votre article avec impatience.

----------


## Matre Kenobi

bonjour bonjour,
juste un petit mot pour dire qu'il est fort dommage qu'on ne puisse pas imprimer ce document pour une lecture "offline".

----------


## Philippe Vialatte

> bonjour bonjour,
> juste un petit mot pour dire qu'il est fort dommage qu'on ne puisse pas imprimer ce document pour une lecture "offline".


Il suffit de tlcharger le pdf et de l'imprimer  :;): 

(attention tout de mme, il y' 100 pages  ::aie:: )

----------


## Matre Kenobi

> Il suffit de tlcharger le pdf et de l'imprimer 
> 
> (attention tout de mme, il y' 100 pages )


c'est ce que je fais toujours mais l y a un soucis car l'icone imprimer est grise, voir pj

----------


## Philippe Vialatte

ok, j'ai rien dit 

 ::dehors::

----------


## CinePhil

Euh... je viens de cliquer sur Version PDF en bas du sommaire et j'ai pu tlcharger le document PDF normalement.  :8O:

----------


## fsmrel

> juste un petit mot pour dire qu'il est fort dommage qu'on ne puisse pas imprimer ce document pour une lecture "offline".


Pouvez-vous essayer  nouveau ?

----------


## fsmrel

> attention tout de mme, il y' 100 pages


Et a n'est pas fini, il reste  venir la 4NF, la 5NF et la 6NF... ::D:

----------


## fsmrel

Attention !

L'article publi est une version obsolte, je viens donc d'effectuer la mise  jour qui s'impose  ::zoubi:: . Quant au PDF c'est bien le dernier (j'aurai quand mme deux ou trois bricoles  affectuer).

----------


## alassanediakite

Bonjour
J'imagine la discussion entre un prof et un tudiant "ceinture blanche" qui tombe sur cet article.
Nous attendons impatiemment la "fin". ::ccool::

----------


## fsmrel

Bonsoir alassanediakite,


La rdaction de l'article est termine, et je suis en train de le relire pour la nime fois, tout en dcouvrant  chaque fois que j'ai un bout de paragraphe  rajouter sur la partie 6NF, en relation avec la modlisation des donnes temporelles (et l, la ceinture blanche part en courant  ::D:  ). 

Par ailleurs, je suis bien frein parce qu'il me faut rpondre dans le cadre de discussions o les pinailleurs (pour rester poli) de service en remettent une couche aprs l'autre (a redonde, a prend du temps et a lasse  ::whistle2::  ...)

a ne devrait quand mme pas tarder.  Patience...

Et merci pour l'attention que vous portez  l'article.

----------


## MacFly58

Bonsoir,




> F.3. Le clustering selon DB2 for z/OS
> 
> (...)
> 
> Deuxime scnario : L'index est rendu cluster :
> 
> 	Cots estims : CPU Time = 00:17:21 ; I/O Time = 00:01:20 ; Min. Elapsed Time = *00:17:21*.



Petite faute de frappe : 17:21 + 1:20 = *00:18:41*


PS : Je ne sais pas si c'est le meilleur endroit pour poster ce genre de commentaires.

----------


## fsmrel

Bonsoir Mac,


C'est un plaisir de vous revoir. Vous postez au bon endroit, mais votre remarque est nulle et non avenue, car vous additionnez des choux et des navets  ::D:  . En effet, dans cet exemple, l'I/O time n'a pas d'incidence sur le temps elapse et il n'y a rien  rectifier...

A bientt,

fsmrel

----------


## alassanediakite

Salut fsmrel
Dans ce poste qu'est ce qui empche de mettre datedemission dans la table emplois et de supprimer la table historique?
Je me prpare pour une discussion  la fin de votre article. J'attends d'avoir une ceinture bleu (comme a pas de KO au premier round). Le gros problme c'est l'anglais (je peine  comprendre le franais et on me dis que les meilleurs documents sont en anglais) faut-il vraiment apprendre l'anglais?
En tous cas, merci pour l'effort immense ::ccool::

----------


## fsmrel

Bonjour alassanediakite,





> qu'est ce qui empche de mettre datedemission dans la table emplois et de supprimer la table historique?


Ce qui empche ?

Il sagit tout dabord de respecter la logique des prdicats. En effet, len-tte de la table EMPLOI correspond au prdicat suivant, relatif aux employs *en activit* :
 La personne _PsnId_ a t embauche  la date _DateEmbauche_ par lentreprise _EntId_.Et lajout dun paramtre _DateDemission_ introduirait une contradiction puisquun employ en activit par dfinition na pas dmissionn.

Il sagit de respecter la smantique pour les mmes raisons.

Par voie de consquence, au niveau tabulaire, il faudrait autoriser la prsence de ce menteur de bonhomme Null et l, je sors ma sulfateuse (de mme si lon utilise des valeurs spciales pour les dates, du genre '31/12/9999').

Voyez par exemple les discussions suivantes :

http://www.developpez.net/forums/d96...ions-binaires/
http://www.developpez.net/forums/d94...e/#post5394163
http://www.developpez.net/forums/d65...n/#post3873719

Il s'agit d'un chantillon significatif (je pense)...

Au plan de la manipulation de donnes, au quotidien on sintresse essentiellement aux donnes vives. Sil fallait les rechercher dans la table HISTORIQUE, a reviendrait  patauger dans une montagne de tuples, avec  la clef des requtes plus complexes, et des problmes de performance en vue (il est plus sympathique davoir des tables de plus faible volumtrie et d'accs plus rapide, en tout cas cest le point de vue de la direction de la production informatique).





> on me dis que les meilleurs documents sont en anglais


Donc, pour tre plus sr, je vais traduire ma prose in this language...  ::P: 





> En tous cas, merci pour l'effort immense


A mon tour, je vous remercie  nouveau pour lintrt que vous portez  larticle (qui arrive aujourd'hui  150 pages d'un fichier PDF...)  ::D: 


_



			
				Le monde est trop bien programm pour tre luvre du hasard
			
		

_... Et le hasard, cest Dieu qui passe incognito (A. Einstein) ...   :;):

----------


## fsmrel

Bonjour,

La 3e (et dernire) partie de larticle est dans les tuyaux, prte  publication. a ne devrait pas tarder. 

fsmrel

----------


## alassanediakite

Bonjour maitre Franois
Vite vite et n'oublie pas d'autoriser l'impression de la version pdf.
Pour la suite de mon article, j'arrive pas  trouver un moment de rel concentration.
@ trs bientt.

----------


## fsmrel

*Mise  jour du 14/07/2011*


Bonsoir,


Voici la 3e partie de mon article sur la normalisation des bases de donnes, partie qui traite des quatrime, cinquime et sixime formes normales. 

Comme il ny a pas de normalisation en 7NF par projection/jointure (sauf chez les farfelus), larticle est achev, aux quelques modifications prs dusage que je peux toujours tre amen  effectuer suite  vos observations. 


Bonne lecture !

----------


## Philippe Vialatte

Enorme...

A l'poque o combien lointaine de mes tudes, je m'tais arrt a Boyce-Codd (si je me rappelle bien du contexte, Miranda avait abord le sujet brivement, mais suite a un malaise vagal d'un tiers de l'amphi...)

Flicitations pour le travail accompli, cela faisait un moment que, mme dans l'dition, je n'avais pas vu un tel rsultat 

Chapeau  ::applo::  ::applo::  ::applo::

----------


## fsmrel

Merci Philippe  ::D: 

J'espre qu'il ne trane pas trop d'erreurs...

Que des tudiants ne s'enthousiasment pas pour le sujet, a se comprend. Pour ma part,  cest un peu diffrent, jai tout appris sur le terrain (avec les bouquins de Codd et Date quand mme en tte), en concevant ou auditant des bases de donnes dans tous les secteurs dactivit, sur toutes leurs facettes (dossiers de conception, modlisation, performances, etc., etc.), en pratiquant le conseil, le sauvetage en catastrophe, en encadrant les ingnieurs, en les consolant (ou en les eng...) jen passe et des meilleures. 

Jai mme souvent enseign les bases de donnes  des ingnieurs qui ntaient pas des perdreaux de lanne et quand jen arrivais  la 5NF, si certains me demandaient la permission de dormir, je la leur accordais volontiers  ::P: 

En gros, ce que jai crit ici (_scripta manent_) est le fruit de nombreux barouds, dune longue, longue exprience  que jessaie de prolonger et de faire un peu partager...

----------


## f-leb

+ de 150 pages fsmrel ! Ce nest pas un article, cest une uvre, que dis-je un Monument (historique 6FN) !!

Petite question fondamentale, il faut bien que quelquun la pose:

Pourquoi avoir mis une image de castor en 1re page ? ::aie::

----------


## fsmrel

Bonsoir Achille,

Plus de 150 pages, certes, mais jai taill drastiquement dans la masse, car je commenais  raconter ma vie...

Quant  la question fondamentale et impertinente que vous posez (ne prenez pas cet air gn) :

Un peu avant que vous ne vntes au monde, javais pris got  larchitecture des bases de donnes (bon daccord,  lpoque c'tait le modle hirarchique et le modle rseau, mais on fait avec ce qu'on a), et comme le castor a la rputation dtre un excellent architecte, je nai pas rsist  la tentation de le faire figurer symboliquement dans le roman (historique lui aussi, 6NF oblige l encore).
Vous le trouverez  luvre par exemple au paragraphe 4.2 ou au paragraphe 5.3. De fil en aiguille, il est remont jusqu la 1re page...

Vous me direz que javais le choix de l'emblme, le cerveau choc faisant montre ci-dessous dexcellentes qualits, mais j'avoue ne pas avoir pens  lui  ::aie::  (mais a me donne des ides  ::idea::  ...)Jaurais pu aussi retenir Naf-Naf qui a la rputation de btir du solide.

Mais bon, va pour le castor comme emblme...

----------


## PyNub

Je vous remercie pour la grande qualit de votre article, qui m'a aid  distinguer le vrai du faux dans le fatras des crits sur le sujet pas forcment, et bien souvent, non arguments comme le sont au contraire les vtres.

----------


## fsmrel

Bonjour PyNub,

Votre message fait plaisir. Plutt que de recopier des affirmations plus ou moins vraies ou fausses, il est vrai que jai prfr mappuyer dune part sur les travaux de chercheurs et auteurs de trs grande qualit, tels Codd, Fagin ou Date, et dautre part sur mon exprience de terrain (quelques dcennies de barouds...) pour tenter de transmettre quelque chose qui soit pertinent, mme si a nest pas toujours facile... 

Si jai pu vous aider  y voir plus clair, mon objectif aura t atteint. Bonne route !

----------


## PyNub

Bonjour,

Je suis tomb sur votre ouvrage dans le cadre de mes tudes, et celui-ci m'a aid  clarifier certaines notions de normalisation. Actuellement je suis en train de le reprendre depuis le dbut car je l'ai parcouru en complment de mon cours et en sautant quelques tapes. De fait certaines subtilits m'ont chappes. Mais cette relecture est agrable et se fait sans effort, de dchiffrage j'entends, car l'effort de rflexion est par contre certain.

Encore merci.

----------


## Bob_the_developper

Bonjour,

J'ai vraiment trs envie de lire votre document en entier, seulement, cela me serait bien plus ais si je pouvais l'imprimer: sauf erreur de ma part le pdf semble non disponible, est-ce bien vrai?  ::): 

En tout cas bravo pour le travail ralis et  bientt.

Cordialement,

----------


## fsmrel

Bonjour Bob,

Je viens de vrifier : le PDF a effectivement disparu. Je vais voir ce que je peux faire pour que vous puissiez y avoir accs.

A bientt,

Franois

----------


## fsmrel

Hello Bob,


J'ai russi  remettre en place le PDF (enfin une de ses versions...) J'espre que cette version est synchrone et ne contient pas de bogues...

Merci de me signaler ce qui pourrait vous paratre bizarre...

Il va falloir que je surveille de temps en temps la prsence du fichier.

Bonne lecture !

----------


## Invit

Bonjour fsmrel

Jai une petite question concernant le nommage de certains attributs de certaines relations.

Imaginons un concept VOITURE reprsent par la relation car ayant pour cl primaire car.id. Si jai besoin dune information optionnelle telle une description par exemple, alors afin dviter le bonhomme NULL, je cr une relation car_description ayant pour attribut car_description.id (cl primaire et trangre) ainsi quun autre attribut reprsentent le texte de la description.
De par votre exprience, quel serait le mot le plus appropri pour nommer cet autre attribut:
car_description.description
(a fait redondant et plus particulirement au niveau du code applicatif)
car_description.textcar_description.contentcar_description.value
?

Jai beaucoup de relations reprsentant des informations optionnelles tel que des descriptions textuelles, acronymes, grandeurs numriques et je me pose cette question afin davoir de lhomognit dans mon projet.

Merci pour vos conseils

----------


## CinePhil

Adopte une norme de nommage des objets de base de donnes.
Personnellement, je me suis inspir de celle de SQLPro.

----------


## fsmrel

Bonsoir titinetine,


C'est un plaisir de vous revoir. Comment se porte la classification botanique ? 

En ce qui concerne le nommage des attributs, cest un sujet qui n'a strictement rien  voir avec la normalisation des bases de donnes relationnelles, aussi je me contente de suivre les rgles de nommage en vigueur dans les entreprises o jinterviens, rgles tablies par la cellule Administration des donnes. Je ne partage pas compltement  la vision de SQLpro quant aux noms des tables (quil prfixe par  la lettre T), des vues (prfixes par la lettre V), ou la vision de CinePhil qui utilise une paire de lettres : je men explique ici (j'espre qu'ils ne m'en veulent pas  ::zen:: ). De toute faon ces conventions sont inapplicables dans les systmes urbaniss (pluri-rfrentiels). Nanmoins, vous pouvez vous inspirez de leurs rgles, en les adaptant  votre convenance.

Bonne continuation et bonne classification !

----------


## Invit

Merci pour vos rponses.

Quant  moi, et bien la classification botanique se porte bien, je suis toujours en train de dvelopper mon application. Aprs la base de donnes, je me suis intress au livre de Martin Fowler Patterns of Enterprise Application Architecture, ce qui m'a amener  dcouvrir l'ORM SQLAlchemy et le langage python. Dcouvertes trs bnfiques !
Je me frotte galement aux d'interfaces utilisateurs (ergonomie, accessibilit), c'est trs intressant et trs prenant.
Voil, j'espre que tout va bien pour vous aussi.

----------


## fsmrel

Bonsoir et merci  vous titinetine,

Tout va bien, pourvu que a dure comme disait Laetitia !

Keep up the good work  ::chin::

----------


## Oppenheimer

Bonjour Monsieur de Sainte Marie,

(J'avais essay de vous envoyer un message, avant de voir qu'il existait une discussion sur le sujet)

Je vois que vous avez ajout la 6NF



> 1) Chris Date traite de la 5NF en 5 pages et demies (_An Introduction to Database Systems, 8th edition_, pages 386-391) or le sujet na pas la rputation dtre simple. En ce qui concerne la 6NF, si lon tient compte des tapes prparatoires, Date a besoin de 47 pages (c'est--dire tout le chapitre 23 de louvrage cit) pour faire le tour complet de la question, mais sans l'approfondir...


juste pour vous dire que j'ajouterai la prcieuse rfrence que vous mentionnez ci-dessus  mes prochaines lectures. J'tais convaincu que Date navait crit quun livre  ce sujet (je pense  lexpos de la dfinition).



> 2) La 6NF prsente essentiellement de lintrt dans le contexte des bases de donnes dans lesquelles le *temps* joue un rle majeur (date de dbut, date de fin, donne par donne pour prendre un trs grand raccourci). Mais dj, nombre de problmes sont rsolus si au niveau du MCD on isole les donnes  dates  pour lesquelles la date de fin est connue (ce que Date appelle les donnes intervallaires de type  durant  (_during_) par opposition aux donnes pour lesquelles la date de fin nest pas connue, dites de type  depuis  (_since_). Ainsi, dans votre entreprise vous avez pu faire partie de tel et tel services *de telle date  telle date*, mais vous tes actuellement affect  tel service *depuis* telle date, sans limitation dans le temps.


En lisant la partie (2), je me dis que la Domain/Key NF le fait dj, puisqu'elle permet - en ayant vu des exemples et contre-exemples - de contourner le type intervalle, par un dbut, respectivement un fin, spars.

En ce sens, la Domain/Key NF ferait mme mieux, puisqu'elle serait capable:
et de grer les limitations par un dbut et une fin, 
et de grer les donnes estampilles que par un dbut.

Mais c'est l que cette D/K NF pche, qui entrane  mon sens une dfinition seulement implicite de la dure, qui quant  cette dernire, nest  finalement  quune succession de timestamps. Ce pourquoi la D/K NF ne saurait tre complte.


-Enfin, jai deux demandes :
Jai limpression pour ma part que  si une normalisation par restriction-union (que vous voquiez sans lexposer) ne fait que considrer les enregistrements  elle est triviale (puisque je peux limiter les enregistrement et par l, la redondance, et ainsi respecter un forme normale "classique"). Ai-je tors ?Pourquoi ne pas mettre la Domain/Key NF,  cause de son problme de dtour de l'intervalle ?

En vous remerciant de votre attention, et en attendant votre rponse, je vous souhaite Monsieur de Sainte Marie, une trs bonne journe.

----------


## Kropernic

Bonjour fsmrel,

Cela faisait longtemps.  J'espre que vous vous portez bien.

Grce  Oppenheimer, qui a fait ressortir cette discussion (et  qui nous devons donc plus que la bombe A  ::mouarf:: ), je dcouvre le passage ci-dessous : 



> En ce qui concerne le nommage des attributs, cest un sujet qui n'a strictement rien  voir avec la normalisation des bases de donnes relationnelles, aussi je me contente de suivre les rgles de nommage en vigueur dans les entreprises o jinterviens, rgles tablies par la cellule Administration des donnes. Je ne partage pas compltement  la vision de SQLpro quant aux noms des tables (quil prfixe par  la lettre T), des vues (prfixes par la lettre V), ou la vision de CinePhil qui utilise une paire de lettres : je men explique ici (j'espre qu'ils ne m'en veulent pas ). De toute faon ces conventions sont inapplicables dans les systmes urbaniss (pluri-rfrentiels). Nanmoins, vous pouvez vous inspirez de leurs rgles, en les adaptant  votre convenance.


J'ai donc t regard la discussion  laquelle vous faites rfrence mais j'aimerais en apprendre davantage sur les rgles de nommage utilises dans les systmes pluri-rfrentiels.  Dj, je ne suis pas certain de savoir  100% ce qu'est un rfrentiel...

----------


## Oppenheimer

Monsieur de Sainte Marie,

Jai cr voir quelque part que vous aviez 40 ans de pratique en bases de donnes ; sachez donc que vous avez tout mon respect.

Je vous prsente une vole de remarques et suggestions. Jai eu lopportunit de lire attentivement jusquen page 44 de votre document. (Jai cependant saut la section sur la d-normalisation versus optimisation.)

Je vous suis trs reconnaissant, car jai pu en outre noter des rfrences, comme lvocation des bases de donnes  dcisionnelles  pour ne citer quelles.

En outre, jai en conscience quil est facile de  dmolir  le travail de quelquun, sauf que  outre le fait quil faille reconstruire aprs  dune part jai toujours refus et refuse les voies de facilit, et dautre part ce nest tout simplement pas mon intention. Je vous prie donc de faire bon accueil  ce post.

-Je ne note pas toutes mes remarques ; lune dentre elles est partie dans un dlire dont je ne connaissais plus la rfrence.

Je les ai classes dans lordre dapparition, elles nont donc pas toutes la mme 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 lide que vous puissiez confondre, je sais quon a souvent envie de faire le raccourci, mais dans son livre _Temporal Data and the Relational Model_, Date insiste bien sur la diffrence, qui  mme sans Date  est littrale.Page 9 : Vous voquez lquivalence dun type est dun domaine,  la faveur du type. Je regrette cet tat de choses, car  si ma notion mathmatique de ces termes est la bonne  on peut avoir lensemble des nombres naturels comme type, alors quon peut trs bien en prendre une restriction comme domaine (ne serait-ce que cet ensemble sans llment zro).Page 11 : A propos de la normalisation qui nest pas la panace, mais vaut mieux que lalternative je vais faire deux traits dhumour : encore faut-il que lalternative existe, et si elle existe elle ne sera jamais quune alternative !
Je crois que vous allez dans ce sens, mais je pense que ce serait bien dinsister sur le fait que le but de la normalisation est bien datteindre le stade le plus pouss (6NF). Je me permets par l un petit hors-sujet : en gnral, lexclusion de formes normales ultrieures m'apparat n'tre que le reflet de la comptence des auteurs des tutoriels. Pourtant jen ai trouv un trs bon, mais qui excluait la 6NF. Quant au dlire dautres auteurs de tutos consistant  dire quil est inutile de dpasser 3NF pour des bases de taille  modre , vous devinez ma pense  plus forte raison par les guillemets que je viens de placer.

Je constate donc avec bonheur que vous avez inclus la NF la plus pousse (6NF), mais peut-tre une petite insistance sur le but de la normalisation pourrait tre fait, aprs avoir dit ce quelle nest pas (une panace).

 Page 12 : Je ne sais pas ce que vous appelez un  Sotomayor , mais cest bien la dfinition de la forme normale 5 qui ne requiert  en elle-mme  pas la prcdente, bien quelle 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 thoriciens qui sont rests en phase avec Codd. L aussi, je me permets un trait dhumour ; je me plat parfois  imaginer ce que donnerait un clash entre Date et Codd. Car  bien que ne connaissant pas aujourdhui mme laffinit entre les (ces) thoriciens  par plusieurs fois, Date et Codd mont paru en sacre divergence.
Dans son livre que je mentionne plus haut, Date dit bien quil a longtemps reni la probit de la notion de  valeur vide  - en fait, il continue  le faire ; jusqu ce quon tombe sur une page, o il dit que  grosso-modo  il y a renonc. Je pense aussi  la forme de ddain que Codd semble stre mis  vouer  la normalisation, lorsque vous mentionnez dans votre tutoriel, que Codd na parl que de ses  bnfices , et sur seulement 2 pages dun de ses livres. Ou encore  un intitul sur la premire forme normale, par Date, qui a t (daprs Wikipedia) :  What first normal form really means  (ce que signifie vraiment la premire forme normale). Jaime beaucoup votre usage du terme  compagnon de route , mais si ces exemples  qui sont encore seulement ceux que je connais ou pense connatre  signifient  rester en phase , admettons que  rester  ou  en phase  ont une acceptation bien large.Page 39 : Vous signifiez,  juste titre, quune  cl  est une cl candidate. Quoique vous mentionnez beaucoup plus loin pourquoi, je pense quil est utile de prciser ds ce moment pourquoi, en place de mentionner quil s'agit (seulement) dune abrviation.
-Pour ma part, javais construit ma  petite thorie .
Je ne sais pas ce quest le rasoir dOckham, mais je pense pour ma part que labsence de notion de cl primaire en normalisation, est due  une prsance de la normalisation sur le MCD et  plus forte raison sur le MLD qui  lui  invoque des cls trangres et primaires.
-Ya-t-il vraiment une confusion Normalisation-MERISE (cf. I. plus bas) ( vrai dire, je pense lavoir fait plus dune fois dans mon apprentissage, sachant que les deux nous sont enseigns simultanment) dans les rapprochements cl-NF (la 1NF pour tre exact) que vous dnoncez en page 32 ? Je comprends que des noncs soient rocambolesques, mais je pense quil faut faire attention de ne pas faire trop peur  des gens qui pourraient commencer  se mettre des freins en disant  Il ny a aucun lien entre cl et NF , alors que plusieurs dfinitions de formes normales ultrieures (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.)Dailleurs, si je me souviens bien de ce que je viens de lire aujourdhui, vous semblez dire que Normalisation et MERISE sont bel et bien complmentaires.Page 41 : Vous avez plac  lorigine de la dfinition, en place de lnonc de Boyce et Codd, semble-t-il - ou alors jai loup quelque chose -, un nonc de Date.
-La variante 1 : je nai rien  redire.
-Mais la variante 2, elle est de qui ?
-Et Boyce et Codd, quont-ils donc dit au sujet de leur propre forme normale ?Page 44 : Je me pose la question de savoir pourquoi vous placez la 2NF aprs la BCNF, alors que  comme vous lavez mentionn  la 2NF prcde BCNF et en temps, et en concept.
 
Voil, je sais que a fait beaucoup, ce pourquoi jai souhait vous mettre mes remarques aprs un premier tiers de lecture.

 part a, vous mavez passionn avec votre descriptif Normalisation Synthtique (le synthtique tant selon Kant, ce qui se rfre  linterne pour faire court) versus MERISE analytique (lanalytique se rfrant  lexterne).

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 manire trs prcise.

Me permettez-vous de faire une copie papier de votre document pour mon examen ?

N.B. :
Si ma liste de remarques devait ntre que le rsultat dapproximations de ma part, je vous adresserai alors mes demandes dexcuses ; je ne suis quapprenant en informatique.

----------


## fsmrel

Bonsoir,


Oppenheimer, concernant votre 1er message : 




> En lisant la partie (2), je me dis que la Domain/Key NF le fait dj


Je rappelle que la 6NF est essentiellement un point dentre dans le monde des donnes temporelles, elle concerne leur structure, leur manipulation et leur intgrit alors que la DK/NF est muette  ce sujet, ce qui nest pas dune grande aide... Ce que jai expos dans larticle nest quune prsentation trs limite dun vaste sujet, trait en profondeur dans louvrage de Date, Darwen et Lorentzos _Temporal Data and the Relational Model_ (pour un survol, voir aussi les PDF de Darwen, par exemple _ Temporal Data and The Relational Model_). Penchez-vous sur les  Nine Requirements  : les contraintes qui en sont les consquences ne sont pas triviales et chappent  la DK/NF, car Fagin  (qui la invente) demande que ces contraintes soient  faciles   mettre en uvre, nous voil prvenus... A ce propos, je cite ce quil  qui a crit dans _A Normal Form for Relational Databases That Is Based on Domains and Keys_ :
Our viewpoint on DK/NF is that in the best of all possible worlds, every relation schema in a database would be in DK/NF (and there would be no interrelational constraints, or perhaps only easily enforceable interrelational constraints, such as inclusion dependencies). In practice, this goal is unlikely to be attained.
En attendant dtre dans le meilleur des mondes et de se limiter  des contraintes interrelationnelles  faciles   mettre en uvre, il faut faire avancer le schmilblick, et Date, Darwen et Lorentzos qui ne sont ni des utopistes ni des manchots ont mis le paquet.





> En ce sens, la Domain/Key NF ferait mme mieux
> [...]
>  et de grer les limitations par un dbut et une fin, 
> et de grer les donnes estampilles que par un dbut.


Pauvre DK/NF ! Elle est compltement dmunie pour assurer les _Nine Requirements_. Une dfinition de 2 lignes donne par Fagin sur laquelle lui-mme doute ( perhaps only *  easily*  enforceable ...)  face  une cathdrale de 400 pages : je prfre ne rien dire, sinon vous conseiller dassimiler,  de vous pntrer du contenu de ces pages trs riches et instructives. 





> Jai limpression pour ma part que  si une normalisation par restriction-union (que vous voquiez sans lexposer) ne fait que considrer les enregistrements  elle est triviale (puisque je peux limiter les enregistrement et par l, la redondance, et ainsi respecter un forme normale "classique"). Ai-je tors ?


 Si une relvar R viole par exemple la 2NF, tant donn que la normalisation par restriction-union prserve les schmas, elle prserve les dpendances fonctionnelles (ainsi que les dpendances multivalues et de jointure), donc les dcompositions qui rsultent de la restriction violent elles aussi la 2NF : la normalisation par restriction-union est peut-tre utile pour le DBA mais elle ne rsout pas le problme de 2NF, contrairement  lapplication intelligente du thorme de Heath. 





> Pourquoi ne pas mettre la Domain/Key NF,  cause de son problme de dtour de l'intervalle ?


Des thormes comme celui de Heath nous permettent de dcomposer une relvar violant la BCNF, mais la DK/NF ne nous propose aucun moyen de cette nature pour dcomposer, sinon d'appliquer des techniques et astuces  ad-hoc du genre normalisation par restriction-union, permettant dvacuer certaines contraintes. Comme le fait observer Date dans _An Introduction to Database Systems_  :  DK/NF is not always achievable, nor has the question Exactly when _ can_   it be achieved? been answered. . Jen resterai donc  la 5NF (et bien sr  la 6NF pour les donnes temporelles).

----------


## fsmrel

Bonsoir,


Oppenheimer, concernant votre 2e message : 





> Page 8 :  Une relation de degr 3 pourrait avoir pour attributs (A1, A2, A3)  - je crois que vous voulez parler du nom des attributs.


Je vous prie de * bien noter*    que je me suis born  citer et traduire Codd qui a crit (cf. _Further Normalization of the Data Base Relational Model_  - E. F. Codd, IBM Research, 1971) :
Now, not all these n cited domains need be distinct. Instead of using an ordering to distinguish these n citations from one another (as is an ordering to distinguish these n citations from one another (as is common in mathematics), we shall use a distinct name for each citation and call this the attribute name for that particular use of a data base domain. Each distinct use (or citation) of a data base domain in defining R is accordingly called an attribute of R. For example, a relation R of degree 3 might have attributes (A1,A2,A3) while the corresponding data base domains are (DS,D7,D5). Attribute names provide an effective means of protecting the user from having to know domain positions.




> Page 9 : Vous voquez lquivalence dun type est dun domaine,  la faveur du type.


Je vous prie de bien noter que je nai fait que reprendre les dfinitions et orientations de Chris Date, et je ne me permettrais pas d'altrer ses crits. Je vous renvoie  ses diffrents ouvrages. Par exemple, en Tutorial D Chris Date dfinit le type QTY (voyez _SQL and Relational Theory_ Second Edition page 170) :



```

```

Date explique dans ce mme ouvrage pourquoi il utilise le terme  Type .





> Page 12 : Je ne sais pas ce que vous appelez un  Sotomayor


Javier Sotomayor est quelquun quil est trs difficile de dpasser (a viendra, mais  ce jour personne ny est parvenu, et a fait 20 ans que a dure...)





> je me plat parfois  imaginer ce que donnerait un clash entre Date et Codd


Divorce il y a eu et cela ne ma pas donn le cur  rire. Je vous renvoie au chapitre 9  Much Ado about Nothing  de _ Relational Database Writings 1991-1994_. 





> Page 41 : Vous avez plac  lorigine de la dfinition, en place de lnonc de Boyce et Codd, semble-t-il - ou alors jai loup quelque chose -, un nonc de Date.


Je nai pas de raison de fournir les noncs selon la chronologie, disons que je privilgie la clart et llgance (qui du reste vont de pair). Cela dit, vous aurez not que jai fait prcder lnonc de Date de rfrences : [Fagin 1977], [Ullman 1982]. Pour vous faire plaisir et quand jen aurai le temps, jessaierai de placer la rfrence  lnonc original de 1974, _Recent Investigations in Relational Data Base Systems_, nonc qui est le suivant (veuillez noter que Boyce et Codd ont baptis leur forme normale :  Third Normal Form ...) : 

 A relation R is in third normal form if it is in first normal form and, for every attribute, collection C of R, if any attribute not in C is functionally dependent on C, then all attributes in R are functionally dependent on C.
Maintenant, quitte  rendre  Csar ce qui est  Csar, Chris Date rappelle que la BCNF avait dj t nonce en 1971 par Ian Heath (collgue chez IBM de Boyce, Codd, Date, Fagin, Chamberlin, etc.), malheureusement je nai pas larticle en ma possession : _Unacceptable File Operations in a Relational Database_. Si vous y  avez accs...





> la variante 2, elle est de qui ?


A propos de cette variante, jai crit (page 42) :
 A noter que cette dfinition a pour origine une de celles qui sont proposes dans [Date 2004] :
 A relvar is in BCNF if and only if every nontrivial, left-irreducible FD has a candidate key as its determinant. 
_(Une relvar est en BCNF si et seulement si le dterminant de chaque DF non triviale, irrductible  gauche est
une cl candidate de la relvar.)_ Autrement dit la variante telle quelle figure dans le cartouche  nest quune mise en forme de ma part de la dfinition de Date.





> Page 44 : Je me pose la question de savoir pourquoi vous placez la 2NF aprs la BCNF.


Quand on normalise, on peut tout de suite passer  la BCNF, plutt que de consacrer du temps  vrifier laborieusement la 2NF puis la 3NF que je renvoie donc en arrire plan. En tout cas, quand on est sur le terrain et quon a des dizaines, voire des centaines de relvars  expertiser, on ne peut pas perdre de temps et on procde ainsi. Je ne suis pas un universitaire perdu dans un nuage mais un ingnieur rompu  au crapahut dans les bases de donnes de mes clients, gens pour qui tout est urgent.





> Me permettez-vous de faire une copie papier de votre document pour mon examen ?


Normalement la fonction  imprimer  est disponible.

----------


## Oppenheimer

Bonjour Monsieur de Sainte Marie,

Les _Nine requirements_, oui, je me souviens d'une telle liste.

Maintenant, je vous cris seulement pour prciser que j'ai la "Bible" en question auprs de moi, tant donn que je la prends dans mes dplacement (manquer d'une rfrence m'est toujours dsagrable). Dite rfrence que je n'ai pas encore acheve, pour une raison d'avoir d me pencher sur du PHP.


_Je n'arrive pas  retrouver ces requirements alors que je n'ai lu que le dbut de votre message_, nots par l'index comme figurant en page 173.

Mais, aprs avoir galement parcouru le sommaire, je n'arrive pas  les trouver.

Je vois que vous tes en ligne.
Pourriez-vous me donner un petit coup de main s'il vous plat ?

----------
(Edit:  )
Ah, en fait ils sont en section 12.4, page 214.

Ces "requirements" soit pr-requis ne sont exposs qu'aprs l'expos de la 6NF, et de plus, concernent les contraintes d'intgrit.

Tout en avouant ne pas avoir atteint ce stade, dire que les requirements de 6NF n'ont pas lieu pour la D/K NF (et non "DK/NF", une "cl de domaine" ne voulant rien dire) m'apparat comme une lapalissade.

Ce n'est pas les gnralisations  partir de la 6NF dont je parlais, mais bel et bien les lments que vous exposiez:




> date de dbut, date de fin, donne par donne.


 ce titre, considrer (et je devine que c'est dans ce sens que Date a travaill en disant qu'il tait inutile d'tendre le modle relationel pour inclure ventuellement une relvar dans une autre) un intervalle comme une donne a t une rvolution copernicienne,  mon sens.


_C'est ce que je voulais signifier: dans l'intervalle, le dbut et la fin ne sont justement pas considrs comme des donnes spares_, ou alors Date a dj dmontr la non-ncessit d'viter une extension du modle relationnel.


-Et en plus, si la 6NF est le dbut de la gestion de donnes pleinement temporelles, elle est *avant cela* le dbut de la gestion des intervalles.

Vous qui avez entendu parler d'Einstein, dont la thorie n'existerait que par rapport  ses partisans, sachez que la relativit n'est pas de dire que "Tout est relatif", mais au contraire (et c'est a le gag que peu ont compris) de dire que certaines choses ne changent pas, dont l'"_intervalle_" qu'il considre, et qui pourrait trs bien rentrer dans une 6NF, bien que n'tant pas compos exclusivement de temps.

C'est aussi le cas de n'importe quel autre intervalle.


-L'mergence du cas d'cole qu'est le temps, a t d au problme de l'instant prsent, rappelant une variable.

----------


## Oppenheimer

Monsieur de Sainte Marie,

Je n'aime pas faire la police des polices, cependant comme vous citez, dans votre tutoriel, des auteurs comme tricotant allgrement des concepts merisiens et relationnels (ndr: quelles "relations" ?)




> Penchez-vous sur les  Nine Requirements





> Ces "requirements" soit pr-requis ne sont exposs qu'aprs l'expos de la 6NF, et de plus, concernent les contraintes d'intgrit.


je me permets d'attirer votre attention sur le fait que je pense que vous tricotez allgrement concepts normatifs et concepts _analytiques_, sachant que la normalisation n'est qu'une dcomposition d'une "entit" par projection. (Autant appeler un chat un chat.)

L'encyclopdie Wikipedia n'est pas totalement fiable, et l'tait encore moins  ses dbuts (o je la mprisais), mais force est de constater que les simples images dfinissant - dans sa section francophone comme dans sa section anglophone - les contre-exemples et exemples rectifis des formes normales, _ignorent toute forme de rfrences entre entits_.

Donc: je passerai au point suivant - si vous me le permettez - quand on aura rgl la considration sur les intervalles (tant donn l'enjeu et la quantit).

----------


## Oppenheimer

Monsieur de Sainte Marie,

Je viens seulement de parcourir vos rponses en entier, et: je ne vois essentiellement aucun autre point de divergence.

Je vous remercie par l pour vos prcieuses explications, notamment concernant la normalisation par restriction, dont je continue cependant  penser qu'elle n'est quant  elle pas trs 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 donne, et qui  mon sens, a de grandes chances de valoir un prix Nobel  Date, si le comit Nobel n'est pas aveugle ou "dmonstratif".


On est bien en peine de concrtiser les consquences, tant donn que 10 ans plus tard, les SGBDR ne feraient - peut-tre - que commencer  grer la 6NF (si un descriptif d'Oracle dit juste  propos de sa version 12, en disant qu'il gre les donnes temporelles).



Je pense pour ma part qu'en corollaire de ses mathmatiques, Date a d faire le raisonnement suivant:

une date n'est qu'une dure 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 faon "d'un coulement" (probablement favoris par nos ides sur l'entropie irrversible).


Si cette image et t effectivement remise en cause, cela dbouche sur la notion - plus digne des philosophies orientales que de nos petites querres et dlimitations (qui nous ont toutefois mens o nous sommes) - qu'un intervalle est effectivement tout autant une donne 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 "dbut" (de l'intervalle).

Du coup, mais c'est plus difficile  montrer, un tel "dbut" n'existe galement que relativement  la "fin". (Pour donner une image: "la fin justifie les moyens" soit le dbut ici; -ce n'est qu'une image - mais je fais confiance  la "sagesse populaire".)


Voil, je voulais vous contextualiser l'intervalle comme donne avec une rflexion.

----------
N.B.:
Un intervalle est probablement encore plus une donne qu'une date, en prenant conscience que la date n'a qu'un dbut inconnu (Big Bang), ou potentiellement non cr (le Christ), soit trs lointain et non-observ.

L'intervalle, lui, _est_ observ (sans quoi il n'est pas un intervalle), et - qui plus est - se rfre 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).

----------


## Oppenheimer

Monsieur de Sainte Marie,

je n'ai pas pu reprendre ma citation dans la vtre, mais



> Divorce il y a eu et cela ne ma pas donn le cur  rire. Je vous renvoie au chapitre 9  Much Ado about Nothing  de _ Relational Database Writings 1991-1994_.


on voit encore une fois - bien qu'implicite ici - les malheurs de l'extrapolation.

Je n'ai parl que du plaisir d'imaginer un "clash" entre Date et Codd, qui plus est: _sous la forme d'un trait d'humour_ (passage que vous avez tronqu).*

Car comme le dit l'adage, _c'est en frottant deux silex qu'on fait des tincelles, pas en les caressant_.

Plus encore, vous savez bien ce que peuvent donner comme discussion leve, les avis de scientifiques d'avis opposs! Je crois que l'Histoire en est remplie.

Je n'ai jamais dit que je jubilais  l'ide d'observer un point de non-retour entre Date et Codd.

*Et par l, je vous prie de *bien noter*, que - bien que je vous ai rendu la politesse une fois - une citation est une phrase. Par consquent, elle commence par une majuscule, et finit par un point, et exclut toute forme de tronquage...
comme j'ai personnellement repris les citations de vous dans mon premier post de ce thme.

Tout de bon  vous.

-------
N.B.: Merci pour la rfrence, je vais commander Relationnal Databases Writings ds ce soir.

----------


## Oppenheimer

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 thme.  ::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 manire 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 mme trs courant, seulement:
_dans une approche a priori,_ la notion de jointure n'intervient pas, ou en tout cas pas immdiatement.


Je sais que la situation sur le terrain me mnera bientt - au cas o je dois (dnormaliser puis) normaliser une base dj existante - soit des tables lies -  adopter l'approche a posteriori.


Cependant, et c'est en ce sens que je vous cris, je vous met la dfinition exacte de la 6NF:




> _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 prcdent message: Une normalisation qui invoquerait positivement la notion de jointure, soit clairement: invoquerait la jointure, ne serait plus une normalisation!

La dfinition de Date et ses collgues pour la 6NF ne fait que considrer la ngation 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 comprhension de l'intervalle), vous voquez:



> Une relvar est en sixime forme normale (6NF) si et seulement si, quelle que soit la dpendance de jointure  laquelle elle satisfait, cette dpendance 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-mathmaticiens ou non-ingnieurs ne le comprendront pas de cette manire. La conception de bases de donnes s'adresse...  des concepteurs de bases de donnes, qui ne sont par dfinition pas tous mathmaticiens (j'entends par l: ayant d passer 5 ans  maitriser (et r-inventer) non seulement l'algbre relationnelle mais tous les autres domaines de l'analyse  l'algbre "gnrale")  - sans quoi les travaux de Codd, Date et autres auraient t quasi-inutiles.

Or Date a t trs clair:
Une relvar R est en sixime forme normale (abrge 6NF) si et seulement si elle *ne* satisfait *aucune dpendance de jointure non-triviale du tout* - o comme avant, une dpendance de jointure est triviale si et seulement si au moins une de ses projections (possiblement U_projections) invoque est prise sur l'ensemble de tous les attributs de la relvar concerne.


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.

----------


## fsmrel

@ Oppenheimer,


Comme je lai laiss entendre, mon article est  destination des forumeurs de Developpez.com et ne se veut donc pas rigoureusement formel, la rigueur absolue pouvant engendrer le dsintrt, lennui chez beaucoup. Si vous voulez des dfinitions plus formelles, vous les trouverez chez Date dans Database Design & Relational Theory, dans son dictionnaire The Database Relational Dictionary, etc.  Si vous trouvez que a nest pas assez formel, allez voir les crits de son pre spirituel Codd, ceux de son ami Fagin, ceux d'Ullman, Zaniolo, Delobel, Bernstein, Beeri, jen passe et des meilleurs. Vous trouverez sur la toile les rfrences aux ouvrages de tous ces gens remarquables, auprs desquels je ne suis quun nain ayant essay de se jucher sur leurs paules, et raconter  ses collgues plus jeunes ce quil en a retir. Les bases de donnes m'ont occup pendant quarante annes, et tout ce temps je ne l'ai pas pass dans les nuages, mais bien sur le terrain, chez mes trs nombreux clients,  peu prs dans tous les secteurs dactivit, pour faire en sorte  que leurs bases de donnes soient robustes, valides, performantes, etc. Cela ne pas empch d'changer avec mes amis universitaires toujours soucieux d'avoir les retours de l'ingnieur.

Sur ce, je retourne donner la becque  des oisillons qui ont faim et accaparent mon temps.

----------


## Oppenheimer

> Vous trouverez sur la toile les rfrences aux ouvrages de tous ces gens remarquables, auprs desquels je ne suis quun nain ayant essay de se jucher sur leurs paules, et raconter  ses collgues plus jeunes ce quil en a retir.


Ne craignez rien, je suis plus petit encore, en tout cas du ct pratique; mais...
de la Fontaine ne dit-il pas que mme le lion a besoin de la souris ?

Apparemment, les NF ont t tablies quand votre thorie  vous tait acheve (si j'estime bien ce que veut dire 40 ans de pratique), mais un petit retour dans la thorie ne fait pas de mal, car on vit bien du tricotage de la thorie et de la pratique, comme d'autres choses - et je suis srieux - si on fait le bilan, non ? (J'entends par l que la jointure est bien complmentaire  la projection, comme MERISE m'apparat l'tre aux formes normales.)



> Cela ne pas empch d'changer avec mes amis universitaires toujours soucieux d'avoir les retours de l'ingnieur.
> Sur ce, je retourne donner la becque  des oisillons qui ont faim et accaparent mon temps.


-Entendriez-vous que je n'ai pas faim de vos avis, ou que je suis trop _convaincu_ que la jointure n'appartient pas  la normalisation ?

La premire possibilit est fausse, quant  la deuxime, hum... a peut se discuter. :;): 

P.S.:
J'espre que vous ne me mprisez pas pour la raison que je ne suis qu'apprenant...
Par ailleurs, je sais qu'_il est interdit de le dire_, mais on trouve la mme proportion de talents - respectivement de manque de talents - dans toutes les couches, universitaires ou autres. Ce genre d'tat de choses a conduit une cole universitaire  crer un diplme spcialis dans le nuclaire, dsesprant d'atteindre l'efficacit, et qui, en Suisse, ne sera plus valide,  cause du prochain moratoire sur les centrales.  mditer.

----------


## Oppenheimer

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 mme votre document:



> Copyright (C) 2008 - Franois de Sainte Marie. Aucune reproduction, mme 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 intrts.


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 ustes, mais l'envie de devoir payer trois fois (cent mille euros d'amende et an de prison) ne me tente pas spcialement 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 ritre donc ma demande de faire une impression papier de votre document pour mon examen.



Ensuite, j'ai voqu prcdemment ce qui m'apparaissait comme le dlire de la normalisation P"J".

En vrit, 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 mthode, 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 voque *de manire positive* en dfinition:



> Une relvar R est en 5NF si et seulement si toute dpendance de jointure en son sein, est induite par une cl candidate.


Dite "Toute dpendance" 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 fidlement l'nonc. Cependant, tout en la connaissant, vous continuez  parler d'une normalisation "par projection-jointure entendue comme oppose  celle de restriction-union", et cela m'tonne au cas o vous voudriez parler d'une "mthode globale de normalisation".


D'avance merci pour votre autorisation expresse.

----------


## Oppenheimer

Merci Monsieur pour votre rponse personnelle - il sera fait selon votre condition.

-----------
(Edition concernant la prcdente citation que j'ai faite, pour ceux que se demanderaient si je n'avais pas dj fait une reproduction de document (considration suprieure qui aurait pu faire rire certains): je pense que ma citation du simple copyright ne tombe pas sous le coup de la reproduction, au sens que d'une part elle est dans le domaine DVP, et surtout: participe  ce qu'aucun n'est cens ignor la loi.) Mes excuses  ceux qui penseraient que ma prcision alourdirais (je pensais aux personnes qui se seraient fait la rflexion).

----------

