Page 1 sur 2

Petit Rappel : LA NORMALISATION d'une base de données

Posté : 08 oct. 2006, 01:33
par zeuf
Salut à tous et Longue vie !

Il y a certaines choses qu'il faut garder en tête quand on met en place une base de données (et moi plus que les autres, c'est clair ! :D). Et pour cela, on a mis en place un processus qui s'appelle la normalisation.

La normalisation, c'est quoi ? C'est le processus de mise en forme des données qui élimine, en 3 phases, les anomalies des données (anomalie de mise à jour, de suppression et d'insertion) et donc d'énormément de problèmes !

- 1er forme normalisée : chaque colonne doit contenir une valeur atomique (une seule valeur donc), chaque colonne doit avoir un nom unique, il faut une clé primaire par table, il ne peut y avoir 2 lignes identiques, et aucune répétition de groupes de données n'est admise).

- 2e forme normalisée : supprimer les données d'une table qui ne dépendent que partiellement d'une clé primaire multicolonne - c'est à dire une clé primaire constituée en fait de 2 colonnes.

- 3e forme normalisée : supprimer les dépendances transitives éventuelles (lorsqu'une colonne ne dépend pas de la clé primaire mais d'une autre colonne qui, elle, en dépend).


Enfin voilà. C'était un petit rappel, qui peut paraître abscon mais faut se pencher la dessus car c'est la base de toute base.

Pour en savoir plus, il y a plein de bouquins dont MySQL Web Training par Jay Greenspan.

Bon vent à tous !!

Zeuf

Posté : 08 oct. 2006, 10:25
par Cyrano
Merci pour cette contribution zeuf, je colle ça en post-it en souhaitant que ce soit lu par tous :)

Posté : 08 oct. 2006, 11:45
par Hubert Roksor
À voir, quelques exemples de formes normales chez Wikipédia. Il y a longtemps de cela, je voulais éditer pour transformer les pseudo tableaux en ASCII pour les faire ressembler à la sortie de MySQL mais... au bout de cinq minutes de mise en forme j'ai eu la flemme :lol:

Posté : 08 oct. 2006, 15:19
par zeuf
Finalement on a toujours ses maîtres et tant mieux !

Un pour la sagesse (Merci Cyrano) et un autre pour le savoir (Merci Hubert).

Longue vie à vous et à bientôt sur le forum.

Amicalement,

Zeuf

Posté : 08 oct. 2006, 15:39
par Cyrano
...Un pour la sagesse (Merci Cyrano)...
N'en jetez plus, la cour est pleine. :langue:

Suis-je vraiment sage ? Bonne question, mais peut-être un petit peu si on considère que j'en arrive à réaliser que "plus j'apprends, plus je mesure l'étendue de mon ignorance" ;)

Posté : 08 oct. 2006, 16:32
par Truc
Qui paraît sage parmi les sots paraît sot parmi les sages.

Est-ce vrai ? :mrgreen:

Posté : 08 oct. 2006, 16:55
par zeuf
Ben heu.... C'est vrai si je suis sot ! mdr !

A +

Posté : 08 oct. 2006, 17:05
par iclo
hum, oui, et "au pays des aveugles, les bornes sont rois". c'est ça ??
Ok, je suis déja dehors :lol: :lol:

Posté : 08 oct. 2006, 17:11
par albat
Vous ai-je dit comment on appellerait ma tante si elle en avait ?... :-*

Attends-moi, Iclo, j'arrive ! :langue:

Posté : 08 oct. 2006, 17:17
par Invité
Je savais bien que la normalisation était un sujet très sérieux !

Bon allez j'arrête là car je dois faire un script PHP pour récupérer les 38950 communes, Dom, Tom et autres de France d'un fichier CSV pour les stocker dans une BD MySQL.

Vive la normalisation !

Posté : 05 mai 2009, 14:59
par Fred Brouard
Votre définition de la première forme normale est redondante... Et la redondance est mauvaise en matière de bases de données :
- 1er forme normalisée : chaque colonne doit contenir une valeur atomique (une seule valeur donc), chaque colonne doit avoir un nom unique, il faut une clé primaire par table, il ne peut y avoir 2 lignes identiques, et aucune répétition de groupes de données n'est admise).
En effet s'il existe une clef, chaque tuple est unique il n'y a donc pas de doublons par essence.

De plus il existe quelques autres formes normales :
FNBC : forme normale de Boyce Codd
4FN : 5e forme normale (dépendance multivaluée)
5FN : 6e forme normale (dépendance de jointure)
FNDC : forme normale domaine clef
6FN : 6e forme normale.

Mais en principe un bon schéma relationnel s'obtient en allant jusqu'à la 3FN, un excellent jusqu'à la 5e (ceci incluant la FNBC) et un parfait jusqu'à la 6e (incluant la FNDC).

A +

Posté : 05 mai 2009, 15:39
par Cyrano
Ho, visite de grande qualité : bienvenue ici Frédéric. :merci:

Ce serait infiniment apprécié si un petit développement sur ces différents points pouvait être élaboré.

Je précise pour ceux qui l'ignorent que Frédéric Brouard est un grand spécialiste en SQL, auteur de divers ouvrage sur le sujet chez divers éditeurs et j'ai toujours sous la main «SQL 2ieme édition » co-écrit avec Rudi Bruchez et Christian Soutou. Et on retrouve ses interventions fort instructives sur sqlpro.developpez.com : à consommer sans modération ;)

Posté : 05 mai 2009, 15:47
par albat
Bienvenue sur PHPFrance, Fred ! :agenouille:

Re: Petit Rappel : LA NORMALISATION d'une base de données

Posté : 05 juil. 2011, 15:36
par sirakawa
http://www.framasoft.net/article1951.html
propose quelques pistes logicielles libres pour aider à ce type de normalisation.

Re: Petit Rappel : LA NORMALISATION d'une base de données

Posté : 01 mars 2013, 21:08
par Normalisons
Pour tout savoir, de la première à la sixième forme normale :

http://fsmrel.developpez.com/basesrelat ... alisation/