Introduction à la modélisation de base de données

Publié le 03 octobre 2008 par Dave Lizotte

La présente introduction explique comment modéliser une base de données pour un projet web. L'approche est simple :
  1. Définir les entités (Tables)
  2. Identifier les attributs de chaques tables
  3. Définir les relations et les cardinalités entre chaques tables

Définir les entités

Cette étape conciste donc à identifier les entités que vous aurez besoin. Prenons comme exemple simple, un site de type Digg-Like tel que del.icio.us ou Digg. Votre base de données aura certainement les tables :
  1. USAGER (Contients les données de l'utilisateur ; email, usager, mot de passe ...)
  2. SITE (Contients les données des sites ajoutés par l'utilisateur)
  Pour la compréhension, nous n'aurons besoin d'aucune autre table pour le moment. D'une manière ou d'une autre, plusieurs autres tables viendrons ce greffer lorsque vous serez en mesure de créer vos relations.

Définir les attributs

Une fois que vous avez déterminé les entités nécessaires, nous allons leur définir des attributs. C'est attribut représente dans les faits les champs de chaques tables. Dans notre exemple nous aurons les attributs suivants pour chacunes des tables.
USAGER
-----------
id_usager_pk (Primary Key)
nickname
email
mot_de_passe
date_inscription
SITE
-----------
id_site_pk (Primary Key)
site_url
site_description
date_inscription
total_usager_partage

Définir les relations

Notre base de données très simple fonctionne de la manière suivante : Un usager ajoute un site qui peut être partagé par les autres usager. Les cardinalités des relations entre la table USAGER et SITE seront :
  • USAGER > SITE (M:M) - Plusieur à plusieurs (Many to Many) - Un usager peut ajouter plus d'un site.
  • SITE > USER (M:M) - Plusieur à plusieurs (Many to Many) - Un site peut être partagé par plus d'un usager.
Dans le cas présent, nous devrons ajouter une table suplémentaire afin d'être en mesure de respecter la cardinalité déterminé. C'est à dire qu'il nous faut une table de jointure qui va contenir les informations de partages des sites, c'est à dire ; Quel usager partage un site X ?. Dans cette nouvelle table PARTAGE, nous allons y insérer 2 clés étrangères afin de conserver l'intégrité.
  PARTAGE
-----------
id_partage_pk (Primary Key)
id_usager (Foreign Key > USAGER)
id_site (Foreign Key > SITE)
soumis_par (boolean: Détermine si l'usager courant à soumis le site)

Implanter la base de données SQL

Maintenant, votre base de données est prète à être implanté sur votre SGBD préféré. La base de données n'est pas très évolué, mais les principes de conception sont ici bien évident.