Introduction
Jusqu'au présent, nous avons interrogé des bases de données existantes en regardant des schémas déjà faites.
Pendant vos carrières, vous allez devoir concevoir aussi des bases de données. Cette tâche parait simple au début, mais on aimerait que notre base :
répond de façon rapide et efficace de toutes les interrogations (requêtes temps réelles, la génération de rapports)
représente la vérité sans fautes ou inconsistances.
évolue correctement avec le business
Ceci n'est pas toujours facile ni intuitif, et les besoins peuvent-être difficile à anticiper.
Surtout en plus, souvent le client même ne comprend pas totalement son domaine. Il nous demande de concevoir un modèle de son entreprise en connaissant encore moins que lui ! (oui, cela m'est arrivé à plusieurs reprises !!).
La modélisation des données (ou data modeling) donc est une activité multivalente :
étudier et comprendre le domaine
extraire des informations critiques nécessaires pour la tâche en question
concevoir votre modèle, nettoyer le modèle,
réanalyser et tester le modèle
Exemple concret
Nous cherchons toujours à éviter deux problèmes principaux :
la redondance : avoir plusieurs copies de la même information dans plusieurs relations
les données incomplètes : avoir un design qui empêche de représenter toutes les informations correctement
Prenons la base de données sakila. Imaginons si le nom du genre de chaque film était stocké directement dans la table film
. Cette représentation peut être problématique :
Si on voulait modifier simplement corriger une faute d’orthographe dans le nom d’un genre, mais 534 films sont de ce genre. Il y aura 534 lignes à mettre à jour !
Si on voulait ajouter un nouveau genre, ce genre ne serait pas représenté dans la base tant qu’il n’y a pas au moins un film de ce genre !
Depuis des années, des chercheurs, experts et pratiquants ont développé plusieurs techniques ou façons de modéliser les données, pour essayer d'anticiper un grand nombre de problèmes. Dans ce chapitre, nous allons apprendre certaines étapes utiles dans la conception de données :
Design conceptuel
Livrable : ER-diagram
Design logique
Livrable : Schéma ou diagram classe
Normalisation
Livrable : Schéma robuste qui évite de redondances, inconsistances
Design physique
Livrable : SQL DDL / Schéma
Dernière mise à jour