Rappelons que cet acronyme signifie "Create / Retrieve / Update / Delete". Les CRUD, c'est donc le code SQL qui permet de lire les données, en insérer, les modifier, en supprimer. Notre objectif ici va être de présenter à la couche client les données sous une forme fonctionnelle, non normalisée, et de traiter toutes les demandes d'ajout, modification ou suppression qui émaneront de cette présentation dénormalisée.
Données normalisées ?
Les données sont considérées comme normalisées si elles répondent au moins à la 3ème forme NF. Une table sera donc normalisées si et seulement si :
chaque colonne ne contient qu'une seule information (tout attribut est atomique)
une colonne correspond à une vraie information
une colonne contient des informations de même type
deux colonnes distinctes ne contiennent pas des informations de même type
On rencontre fréquemment des données non normalisées dans les applications anciennes, qui datent d'une époque où le respect de la normalisation était trop couteux en temps d'exécution client pour pouvoir être appliqué. Une des raisons le plus souvent invoquées pour la non normalisation est la souplesse que ça apporte en terme d'évolution structurelle.
Nous verrons dans cette étude que la normalisation est parfaitement réalisable, sans diffculté majeure.
le 14/01/2013, Olivier Hamou a écrit : Bravo ! Michel !
le 16/01/2013, Olivier Hamou a écrit : Bonjour Michel,
Dans toutes les formes de select que tu proposes CTE, PIVOT , ou version classic,
nous sommes obligés de mettre des max dans le télephone afin de n'avoir qu'une seule ligne par personne ?
Je me pose la question car le max m'oblige de group sur tous mes champs !
Merci pour cet article précieux
le 16/01/2013, Michel Lévy a écrit : Oui, on est bien obligé d'utiliser une fonction d'aggrégation, pusiqu'on veut regrouper sur une seule lignes des informations qui sont sur plusieurs (par le GROUP BY). Soit les champs servent au GROUP (ils ne sont pas aggrégés) soit ils n'y servent pas et ils doivent être aggrégés - sinon tu produis des lignes en trop! Et de ce fait, il n'y a pas d'autre solution...
Bravo ! Michel !