Database Reference
In-Depth Information
La colonne prix n'est pas précise (de quelle devise s'agit-il ?). Cette colonne sera-t-elle
actualisée au bon moment  ? Cette colonne n'est pas compréhensible (s'agit-il d'un prix
TTC, HT, unitaire, de revient, etc.  ?). Enin, le type lottant ( FLOAT ) peut réserver des
surprises lors de calculs intermédiaires importants (12.499999999 ou 12.5000000001 ?).
La colonne quantite n'est ni précise (les décimales doivent-elles être acceptées, pour
stocker par exemple 1,5 pour un kilo et demi ?), ni compréhensible (quelle est l'unité du
produit, des mètres, des kilos, des livres, etc. ?), ni complète (les contraintes NOT NULL
sont absentes du fait que la case « O » comme obligatoire n'est pas cochée).
Vous trouverez quelques pistes en parcourant les liens suivants :
documentation d'Oracle  : http://download.oracle.com/docs/cd/E11882_01/appdev.112/
e17125/adfns_sqltypes.htm#i1006173 ;
types SQL-Server, MySQL et Access : http://www.w3schools.com/sql/sql_datatypes.asp ;
documentation de MySQL : http://dev.mysql.com/doc/refman/5.0/en/choosing-types.html-
Billet ;
à propos de SQL-Server  : http://www.techrepublic.com/blog/10things/10-common-
questions-about-sql-server-data-types/355.
La normalisation
Bien que les outils permettent de modéliser un schéma logique dans ce modèle de données,
aucun n'offre la possibilité d'automatiser une quelconque normalisation. Les avantages de
normaliser un schéma relationnel sont les suivants.
Éviter des redondances potentielles (donc minimiser l'espace de stockage et diminuer les
risques d'incohérences qui sont appelées anomalies transactionnelles).
Faciliter la programmation de n'importe quelle opération sur les tables (ajout, modiication
et suppression).
Renforcer l'intégrité des données.
Le schéma relationnel suivant, de par sa structure, rend problématique les futures (mais très
probables) actions suivantes.
Ajout d'un client s'il n'est pas inscrit à un cours (la clé primaire de la table Inscriptions
est composée des colonnes et interdit donc qu'une des deux colonnes soit nulle).
Modiication du nom d'un client ou de la société d'un client (la mise à jour doit être réper-
cutée dans toutes les lignes concernées). Si une modiication est partielle, la table est tout
bonnement inexploitable (au niveau de ces deux colonnes).
Suppression d'une inscription (qui entraînerait la perte des données du client).
 
Search WWH ::




Custom Search