les 10 erreurs fatales à ne pas commettre lors de la conception d'une base de données
TRANSCRIPT
CIC CONF.
Les 10 erreurs à éviter
lors de la conception
d’une base de données
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
SOMMAIRE
Conception d’une BD
10 erreurs
Description
Problèmes
Solutions implicites
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
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
UNE BD
transforme une donnée
en Information
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.
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
LES 10 ERREURS FATALES A EVITER LORS DE
LA CONCEPTION D’UNE BD
ERREUR 1
Une base de données non
normalisée
ERREUR 1: BD NON NORMALISEE
Description
ERREUR 1: BD NON NORMALISEE
Description
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
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
ERREUR 2
Une base de
données trop/mal
normalisée
ERREUR 2: BD TROP NORMALISEE
Description
ERREUR 2: BD TROP NORMALISEE
Description
ERREUR 2: BD MAL NORMALISEE
Description
Normaliser une
base de données
non-relationnelle
sur le modèle de
Codd
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
ERREUR 3
Utilisation des types de
spécifiques a un SGBD
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)
ERREUR 4
Utilisation des types
numériques flottants
ERREUR 4: UTILISATION DES TYPES
NUMERIQUES FLOTTANTS
Description
Utilisation des types numériques comme
float pour des montants précises
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
ERREUR 5
UTILISATION DES
CLES PRIMAIRES
NATURELLES
ERREUR 5: UTILISATION DES CLÉS PRIMAIRES
NATURELLES
Description
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 »
ERREUR 6
Ne pas utiliser forcer les
contraintes sur les
champs et les tables
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
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
ERREUR 7
Concevoir une base de
données non localisable
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
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
ERREUR 8
Enregistrer les mots
de passe en plein texte
ERREUR 8: ENREGISTRER LES DONNEES
SENSIBLES EN CLAIR
Description
ERREUR 8: ENREGISTRER LES DONNEES
SENSIBLES EN CLAIR
PROBLEMES
DONNEES VISIBLES A TOUTE PERSONNE
QUI A ACCES AUX TABLES OU VUES
DONNEES PERSONNELLES LISIBLES (MOT
DE PASSE)
MODIFICATIONS FACILES
ERREUR 9
Magic beans
ERREUR 9: MAGIC BEANS
Description
Modèles au niveau de MVC /MVVM / MVP
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
ERREUR 10
Pauvre
Documentation
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é
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
ERREUR 0
Ne pas communiquer avec un
Administrateur de base de données
(ADB) lors d’un projet
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
ERREUR 0
Les applications passent
mais les BD restent
ERREUR 0
Les applications passent
mais les BD restent
MERCI
QUESTIONS
Suivez moi
Blog besklein01.wordpress.com
Twitter @bestklein
« It always seems impossible until its done »Nelson Mandela