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

47
CIC CONF. Les 10 erreurs à éviter lors de la conception d’une base de données

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

Page 1: 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

Page 2: Les 10 erreurs fatales à ne pas commettre 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

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

SOMMAIRE

Conception d’une BD

10 erreurs

Description

Problèmes

Solutions implicites

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

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

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

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

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

UNE BD

transforme une donnée

en Information

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

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.

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

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

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

LES 10 ERREURS FATALES A EVITER LORS DE

LA CONCEPTION D’UNE BD

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

ERREUR 1

Une base de données non

normalisée

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

ERREUR 1: BD NON NORMALISEE

Description

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

ERREUR 1: BD NON NORMALISEE

Description

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

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

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

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

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

ERREUR 2

Une base de

données trop/mal

normalisée

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

ERREUR 2: BD TROP NORMALISEE

Description

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

ERREUR 2: BD TROP NORMALISEE

Description

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

ERREUR 2: BD MAL NORMALISEE

Description

Normaliser une

base de données

non-relationnelle

sur le modèle de

Codd

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

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

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

ERREUR 3

Utilisation des types de

spécifiques a un SGBD

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

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)

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

ERREUR 4

Utilisation des types

numériques flottants

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

ERREUR 4: UTILISATION DES TYPES

NUMERIQUES FLOTTANTS

Description

Utilisation des types numériques comme

float pour des montants précises

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

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

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

ERREUR 5

UTILISATION DES

CLES PRIMAIRES

NATURELLES

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

ERREUR 5: UTILISATION DES CLÉS PRIMAIRES

NATURELLES

Description

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

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 »

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

ERREUR 6

Ne pas utiliser forcer les

contraintes sur les

champs et les tables

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

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

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

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

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

ERREUR 7

Concevoir une base de

données non localisable

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

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

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

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

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

ERREUR 8

Enregistrer les mots

de passe en plein texte

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

ERREUR 8: ENREGISTRER LES DONNEES

SENSIBLES EN CLAIR

Description

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

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

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

ERREUR 9

Magic beans

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

ERREUR 9: MAGIC BEANS

Description

Modèles au niveau de MVC /MVVM / MVP

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

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

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

ERREUR 10

Pauvre

Documentation

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

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é

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

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

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

ERREUR 0

Ne pas communiquer avec un

Administrateur de base de données

(ADB) lors d’un projet

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

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

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

ERREUR 0

Les applications passent

mais les BD restent

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

ERREUR 0

Les applications passent

mais les BD restent

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

MERCI

QUESTIONS

Suivez moi

Blog besklein01.wordpress.com

Twitter @bestklein

Facebook

« It always seems impossible until its done »Nelson Mandela