ATOUTFOX
COMMUNAUTÉ FRANCOPHONE DES PROFESSIONNELS FOXPRO
Visual FoxPro : le développement durable

Normaliser les données, c'est possible !   



L'auteur

Michel Lévy
France France
Membre Simple
# 0000000004
enregistré le 12/10/2004

66 ans
LEVY Michel
34490 CORNEILHAN
Fiche personnelle


Note des membres
20/20
1 vote


Contributions > 07 - SQL

Normaliser les données, c'est possible !
# 0000000842
ajouté le 23/12/2012 17:04:44 et modifié le 23/12/2012
consulté 3715 fois
Niveau initié

Version(s) Foxpro :
VFP 9.0
VFP 8.0
VFP 7.0
VFP 6.0

Description

CRUD et données normalisées

CRUD ?

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.

Fichier MHT :
Mettre en plein écran


Commentaires
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...


Publicité

Les pubs en cours :


www.atoutfox.org - Site de la Communauté Francophone des Professionnels FoxPro - v3.4.0 - © 2004-2019.
Cette page est générée par un composant COM+ développé en Visual FoxPro 9.0-SP2-HF3