Le schéma en étoile est au coeur de la modélisation dimensionnelle. Il s'agit d'une structure de données non normalisée adaptée à la construction de requêtes métiers complexes.

Schéma en étoile

Définition

Le schéma en étoile est un schéma logique et non normalisé qui est utilisé pour consolider, historiser et agréger des données numériques.

La modélisation dimensionnelle a pour rôle de représenter des faits (qui sont mesurables) et de permettre de les agréger suivant différentes dimensions. Souvent, l’analogie à un cube de données est évoquée où chaque brique à l’intérieur du cube représente une mesure qui est observée suivant les axes ou dimensions représentées par les arêtes du cube. La figure ci-dessous montre par exemple que l’on peut mesurer le chiffre d’affaires concernant un produit vendu à un moment donné dans un magasin donné.

Cependant, la représentation sous forme de cube ne permet pas de représenter plus de 3 dimensions, c’est pourquoi un schéma en étoile est constitué d’une table de faits centrale et de dimensions qui sont reliées au moyen de clefs primaires et référentielles (voir figure ci-dessous).

Les tables de dimensions permettent de décrire les entités métier par exemple des produits, des magasins, des dates. Elles contiennent des colonnes permettant de décrire ces entités. Les tables de faits contiennent, quant à elles, des mesures permettant de décrire les événements métiers, par exemple le nombre de produits vendus ou le chiffre d’affaires généré.

Pour en revenir à la définition donnée en début de paragraphe :

  • Le schéma en étoile est dit logique par opposition à :
    • un schéma physique qui s’intéresse à la représentation de l’implémentation des structures de données en mémoire.
    • à un schéma conceptuel qui a un niveau d’abstraction plus élevé et qui s’intéresse à la représentation des concepts métiers.
  • Le schéma en étoile est dit non normalisé au sens des formes normales définies dans le modèle relationnel. Dans un schéma en étoile des redondances sont explicitement ajoutées afin d’optimiser la vitesse d’exécution de requêtes complexes. Ces redondances sont localisées au niveau des dimensions.

Lorsque plusieurs schémas en étoile partagent des dimensions (voir dimensions conformes) on parle de schéma en constellation.

Lecture Schéma en étoile : Star Schema. Christopher Adamson. pages 10-11

Lecture Schéma en étoile : Agile Data Warehouse Design: Collaborative Dimensional Modeling, from Whiteboard to Star Schema Laurence Corr, and Jim Stagnitto. pages 7-8

Fait / Mesure

Un fait ou une mesure correspond à une valeur dans une ligne d’une table de faits.

Lecture Fait : Star Schema. Christopher Adamson. pages 6-9, 12

Lecture Fait : Agile Data Warehouse Design: Collaborative Dimensional Modeling, from Whiteboard to Star Schema Laurence Corr, and Jim Stagnitto. pages 8-9

Dimension

Une dimension est un axe d’analyse suivant lequel on peut considérer une mesure. Les dimensions permettent de naviguer dans les niveaux de granularités.

Revenons sur la problématique de redondance avec un exemple. Considérons une dimension localisation qui caractérise l’environnement géographique d’un magasin. Nous sommes intéressés de connaître la ville du magasin, sa région et son pays. Pour tous les magasins appartenant à la même ville nous aurons donc les mêmes valeurs de région et pays. Cependant, nous faisons ici le choix de répéter sur chacune des lignes de la dimension toutes les valeurs de ville, région et pays.

Lecture Dimension : Star Schema. Christopher Adamson. pages 6-9, 10-11

Lecture Dimension : Agile Data Warehouse Design: Collaborative Dimensional Modeling, from Whiteboard to Star Schema Laurence Corr, and Jim Stagnitto. page 9

Schéma en flocon

Un schéma en flocon est appelé ainsi car il ressemble à un flocon de neige quand on normalise au maximum chacune des dimensions (voir figure ci-dessous).

Un schéma en flocon a pour objectif de réduire la redondance en normalisant les données. Si nous reprenons notre exemple précédent concernant notre magasin, nous ferions ici le choix de ne conserver que l’information sur la ville et d’exporter dans une autre dimension les informations sur la région et ainsi de suite.

Ainsi un schéma en flocon s’approche des schémas logiques normalisés (généralement en 3NF) qui sont utilisés dans le monde de l’OLTP.

Lecture Schéma en flocon : Star Schema. Christopher Adamson. pages 11, 157-160

Lecture Schéma en flocon : Agile Data Warehouse Design: Collaborative Dimensional Modeling, from Whiteboard to Star Schema Laurence Corr, and Jim Stagnitto. pages 5-6, 156

Schéma en étoile vs Schéma en flocon

Deux mondes différents se confrontent ici. Les schémas en flocon visent à normaliser les données et donc réduire la redondance tandis que les schémas en étoile, orientés processus métiers, introduisent un niveau de redondance utile pour diminuer le nombre de jointures à effectuer.

En décisionnel, il faut éviter donc les schémas en flocon car :

  • ils sont difficiles à comprendre,
  • ils ne sont pas orientés processus métiers,
  • ils ne sont pas performants à cause des nombreuses jointures à effectuer,
  • les requêtes deviennent plus complexes à écrire.