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