Les 10 erreurs fatales à ne pas commettre lors de la conception d'une base de données

Post on 11-Jun-2015

175 views 6 download

Transcript of Les 10 erreurs fatales à ne pas commettre lors de la conception d'une base de données

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

Facebook

« It always seems impossible until its done »Nelson Mandela