Accueil > Ressources > Schémas de conception d’une Base de Données

Schémas de conception d’une Base de Données

lundi 21 septembre 2009, par Eric Sanjuan, THOME

Pour décrire une BDR, il existe deux types de schémas simples, l’un conceptuel (UML), l’autre logique.

Schéma relationnel

Le schéma est constitué de rectangles reliés par des flèches.

On y représente :

  1. les tables (1 rectangle par table)
  2. les champs avec leur type (une ligne par champ dans les rectangles)
  3. les clefs primaires (identifiant des enregistrements) en soulignant les champs qui constituent la clef
  4. les clefs étrangères (champs contenant des valeurs issues d’une clef primaire) par des flèches pointant sur la clef primaire référencée.

Les clefs sont nécessairement définies avec des INDEX pour un accès rapide aux enregistrements (lignes d’une tables) à partir des valeurs d’un champ (colonnes des tables). En SQL 3 il est par ailleurs possible de définir des contraintes sur les clefs étrangères de manière à interdire l’introduction de valeurs non définies au préalable dans la clef primaire correspondante. De même ces contraintes empêchent de supprimer un enregistrement dont l’identifiant est utilisée dans une clef étrangère. Cependant, la plupart des bases de données MySQL derrière les sites Webs, ces contraintes ne sont pas définies sur le SGBDR de peur de trop le ralentir. C’est alors à l’interface WEB d’assurer la cohérence de la base de données. Le principal but du schéma relationnel est de représenter ce type de contraintes entre clefs étrangères et primaires.

Le schéma relationnel étant statique il est normalement complété par un schéma des flux qui reprend uniquement les noms des tables et les relie par des flèches représentant les requêtes SQL que l’on applique entre les tables. Le shéma des flux se lit de haut en bas, le sens de lecture devant correspondre à l’ordre dans lequel les requêtes doivent être enchaînées. Les noms des tables peuvent être dupliquées autant de fois qu’elles sont utilisées.

Schéma UML E/R

Contrairement au précédent, il ne s’agit pas d’un schéma logique (physique) mais d’une conceptualisation de la base de données. UML/ER est un acronyme pour :

  • U : Universel
  • M : Modeling
  • L : Language
  • E : Entity
  • R : Relation ( au sens d’association)

Qu’apporte cette conceptualisation au simple schéma relationnel ?

On partage en fait les tables en 2 catégories :

  • entités ou objets que l’on veut gérer
  • associations on relations entre ces entités

Par exemple, dans la base de données associée au CMS (Système de Gestion de Contenu) SPIP qui reproduit le fonctionnement d’un journal avec différentes rubriques, on aurait comme entités :
auteurs, articles, rubriques, message et forum.
A noter que chaque entité correspond à une clef primaire.

Par conter on aurait comme associations :

  • « parent de » entre rubrique
  • « auteur de » rubrique
  • « auteur d’ » article
  • « auteur » message
  • etc …

Chaque association correspond ainsi à au moins une clef étrangère. Les associations multiples comme auteur - article devant être représentées par plusieurs clefs étrangères (deux dans ce cas) regroupées en une table.

Sur le schéma on représente les entités par des rectangles et les associations par des ovales.

Par ailleurs on ajoute des cardinaux aux associations qui peuvent être des entiers n, des intervalles p .. n, ou la marque d’un multiple non limité *.

Par exemple l’association auteur - article est de type 1..*___* si on ne limite pas le nombre de co-auteurs mais que l’on demande au moins un auteur, et de type 1..p ____ * si on limite le nombre d’auteurs à p. Si en plus on limite à n le nombre d’articles qu’un auteur peut écrire on obtient une association du type 1..p____0..n.

Chaque association de la forme *___1 (dont une extrémité est unique) se traduit par un simple lien de clef étrangère à clef primaire. Toutes les autres associations multiples nécessitent, dans une Base de données relationnelle, l’introduction d’une table supplémentaire et l’utilisation de au moins deux clefs étrangères.

Les notions supplémentaires d’agrégation et d’héritage issues de la modélisation orienté objet peuvent aussi aider à projeter plus de sens dans ces schémas.

- L’agrégation représentée par des flèches avec une pointe en forme de losange (------<>) permet de représenter des entités composites. Par exemple une entité utilisateur peut être composée d’une entité adresse et d’une entité clef d’identification. Une telle représentation traduit une volonté de traiter séparément ces deux éléments d’une même entité, on imagine que la clef d’identification devra être plus protégée.
Lorsqu’il s’agit d’un composant essentiel, on utilise un losange plein. S’il s’agit d’un composant optionnel, le losange est vide.

- L’héritage, représenté par une flèche (-----|>) permet de définir des supra-entités contenant tous les attributs communs à un ensemble d’entités similaires. Par exemple, dans un journal on peut concevoir une supra entité auteur de laquelle on dérive des entités de rédacteur par spécialité. Tous les rédacteurs ont les attributs et les associations des auteurs plus des attributs et des associations spécifiques à leur spécialité.