Les 10 erreurs fatales à ne pas commettre lors de la conception d'une base de données
1. CIC CONF.
Les 10 erreurs à éviter
lors de la conception
d’une base de données
2. QUI SUIS-JE?
Klein Houzin, ancien du CIC
Promotion 2008-2011
Consultant informatique
Spécialiste des bases de données
relationnelles
Vit au Ghana, Accra
4. BASE DE DONNÉES (BD)
Collection de données organisées
en particulier pour la recherche
rapide et la récupération par un
ordinateur
5. BASE DE DONNÉES (BD)
Différente d’un SGBD (Système de
Gestion de Base de données)
SQL Server
Oracle
MySql
Postgres
Mongo Db
Différente d’une application
7. CONCEPTION
Fait, pour un être vivant sexué, pour un enfant,
d'être conçu, de recevoir l'existence.
Aptitude à comprendre quelque chose, à le saisir
ou à le produire par l'esprit : Cela dépasse la
conception humaine.
Manière particulière de comprendre une question ;
opinion, représentation, idée que l'on peut se faire
de quelque chose : Des conceptions politiques.
Action d'élaborer quelque chose dans son esprit, de
le concevoir ; résultat de cette action : Mauvaise
conception d'un appartement.
8. CONCEPTION D’UNE BD
Entrée :
Un projet déterminé
Règles de gestion
Domaine
Sortie: Le modèle de la base de données
9. LES 10 ERREURS FATALES A EVITER LORS DE
LA CONCEPTION D’UNE BD
13. ERREUR 1: BD NON NORMALISEE
Causes
- Coder directement sans planifier un schéma de la
base de données
- Travailler avec des EDI comme qui créent la base de
données (CodeFirst)
- Travailler sur une base de données non relationnelle
14. ERREUR 1: BD NON NORMALISEE
Problèmes
1. Augmentation de la nécessité de
restructurer la collection des relations, de
nouveaux types de données sont
introduites, et
2. Model difficilement étendable
3. Le modèle relationnel non-informatif pour
les utilisateurs
4. Répétition groupes de données
5. Faits contradictoires
6. Inconsistance de la base de données
18. ERREUR 2: BD MAL NORMALISEE
Description
Normaliser une
base de données
non-relationnelle
sur le modèle de
Codd
19. ERREUR 2: BD TROP NORMALISEE
Problèmes
Les requêtes peuvent devenir très
compliquées
Les chaines peuvent être brisées
Les jointures sont couteuses en temps pour
les requêtes sur dans les entrepots de données
OLAP(Online Analysis and Processing)
Implémenter un modèle relationnel dans un
SGBD non-relationnel
21. ERREUR 3: DONNEES SPECIFIQUES A UN
SGBD
Description
Utiliser des types comme :
UniqueIdentifier (SQLServer)
Bit pour SQLServer
Boolean
RowId pour Oracle
Blob
Les jointures sont couteuses en temps pour
les requêtes sur dans les bases de données
OLAP(Online Analysis and Processing)
23. ERREUR 4: UTILISATION DES TYPES
NUMERIQUES FLOTTANTS
Description
Utilisation des types numériques comme
float pour des montants précises
24. ERREUR 4: UTILISATION DES TYPES
NUMERIQUES FLOTTANTS
Problèmes
Erreur lors des calculs
2 x 2= 3,99999
Erreurs lors des requêtes comportant des
conditions sur ces colonnes
ex: Montant >= 0,1 peut ramener des
valeurs comme 0,999999
27. ERREUR 5: UTILISATION DES CLÉS PRIMAIRES
NATURELLES
Problèmes
- Requêtes très couteuses en mémoire : les
jointures sur certains champs textes sont
très couteuses
- Obligation de recréer une autre clé lorsque
cette clé ne sera plus « naturelle »
28. ERREUR 6
Ne pas utiliser forcer les
contraintes sur les
champs et les tables
29. ERREUR 6: NE PAS UTILISER LES CONTRAINTES
SUR LES CHAMPS ET LES TABLES
Description
Mettre les champs texte a max
Varchar(max) , CHAR(255), INTEGER(11)
Ne pas mettre des contraintes CHECK sur les
champs nombres
30. ERREUR 6: NE PAS UTILISER LES CONTRAINTES
SUR LES CHAMPS ET LES TABLES
Problèmes
Grossissement des fichiers de la base de données
Requêtes très couteuses en mémoire (pour les
champs trop larges)
Inconsistance de la base de données
Quantité negative
Montant négatif
Vitesse >300 000 m/s
Taille >4m
32. ERREUR 7: CONCEVOIR UNE BD NON
LOCALISABLE
Description
Utilisation des champs textes pour representer les
booleens OUI/NON
Utilisation des champs textes pour representer les
etats
Occupe/Non Occupe
Fait/Non Fait
Utilisation des champs textes pour représenter les
chiffres
33. ERREUR 7: CONCEVOIR UNE BD NON
LOCALISABLE
Problèmes
Requêtes compliquées et couteuses en mémoire
…..WHERE LOWER(Etat) = ‘oui’ OR
LOWER(Etat) =‘yes’ OR LOWER(Etat)=‘ya’
Difficulté de construire des applications localisables
Difficulté de construire des états localisables à partir
de la base
36. ERREUR 8: ENREGISTRER LES DONNEES
SENSIBLES EN CLAIR
PROBLEMES
DONNEES VISIBLES A TOUTE PERSONNE
QUI AACCES AUX TABLES OU VUES
DONNEES PERSONNELLES LISIBLES (MOT
DE PASSE)
MODIFICATIONS FACILES
38. ERREUR 9: MAGIC BEANS
Description
Modèles au niveau de MVC /MVVM / MVP
39. ERREUR 9: MAGIC BEANS
Problèmes
Champs calculées
Confusion du modèle de la base de données et du
modèle de l’application
Difficulté de construire une nouvelle application
basée sur la base de données
41. ERREUR 10: PAUVRE DOCUMENTATION
Description
Mauvaise nomenclature
Niveau des champs
Niveau des tables
Niveau des contraintes
Schéma de la base de données non documenté
42. ERREUR 10: PAUVRE DOCUMENTATION
Problèmes
Maintenance difficile de la base de données
Evolution difficile de la base de données
Etats ad hoc difficiles à générer
43. ERREUR 0
Ne pas communiquer
avec un
Administrateur de
base de données
(ADB) lors d’un projet
44. ERREUR 0
Avoir un ADB :
Permet de séparer
l’application de la BD
Permet de détecter les
erreurs de conception dès le
début