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

Mis Ă  jour