Normalisation des bases de données
Depuis que je travaille dans l’informatique de gestion, je vois tout et son contraire en terme de normalisation des bases de données. J’ai découvert aujourd’hui un document très intéressant sur le sujet qui pourrait servir à l’ensemble des informaticiens qui travaillent avec une base : http://sqlpro.developpez.com/cours/standards/.
On y apprend comment nommer ses tables relationnelles, leurs colonnes, index, etc. Je ne vais pas réécrire l’article, cela n’aurait pas d’intérêt, mais je vais vous montrer quelques exemples. Voici la proposition pour les tables et les vues :
Préfixe de table | fonction | préfixe de vue |
---|---|---|
T_ | lorsqu’il s’agit d’une table fonctionnelle | V_ |
TR_ | lorsqu’il s’agit d’une table de référence | VR_ |
TS_ | lorsqu’il s’agit d’une table “système” | VS_ |
TJ_ | lorsqu’il s’agit d’une table de jointure | VJ_ |
TG_ | lorsqu’il s’agit d’une table générique (héritage) | VG_ |
On y apprend aussi comment écrire du code SQL (indentation, nom des colonnes résultats, etc.). Par exemple voici un mauvais code :
SELECT CLI_ID, CLI_NOM, CLI_ENSEIGNE, CLI_PRENOM FROM T_CLIENT WHERE CLI_ADR_PAYS = 'F' AND CLI_ENSEIGNE IS NULL OR CLI_ENSEIGNE ='' ORDER BY CLI_NOM
Voici le même code bon cette fois-ci :
SELECT CLI_ID, CLI_NOM, CLI_ENSEIGNE, CLI_PRENOM FROM T_CLIENT WHERE CLI_ADR_PAYS = 'F' AND CLI_ENSEIGNE IS NULL OR CLI_ENSEIGNE ='' ORDER BY CLI_NOM
Au final, je pense que si tout le monde utilisait les mêmes conventions pour les schémas de base de données et les requêtes SQL, les développeurs (Java par exemple) seraient plus à l’aise pour leurs développements et pour changer de projet.