Gestion des cardinalités multiples
Prenons l’exemple d’une table de faits ORDER_FACTS
contenant les commandes d’un produit PRODUCT
passées à une date donné DAY
, par un client donné CUSTOMER
mais suivies par potentiellement plusieurs commerciaux SALESREP
.
Comment modéliser le fait qu’une table de faits ait une relation N-M (plusieurs à plusieurs) avec une dimension ?
La solution consiste à introduire une table, appelée table passerelle, pour gérer la multiplicité des cardinalités. Cette table passerelle permet de gérer différentes situations :
- La relation N-M se situe entre la table de faits et une dimension (dimension multivaluée)
- La relation N-M se situe entre deux dimensions (attribut multivalué)
Considérons plus en détail ces deux situations.
Dimension multivaluée (Relation N-M entre une table de faits et une dimension)
Poursuivons notre exemple où une commande (ligne dans ORDER_FACTS
) est rattachée à plusieurs commerciaux au sein de l’entreprise. Nous allons résoudre le problème au moyen d’une table passerelle SALES_GROUP
qui va permettre de définir des équipes de commerciaux. La table de faits ORDER_FACTS
n’aura qu’un seul groupe à référencer, tandis que chaque groupe pourra être associé à plusieurs commerciaux (figure ci-dessous).
On remarquera dans la table SALES_GROUP
une clef d’allocation allocation
permettant d’attribuer une part de la commande (quelle que soit la mesure choisie) entre les différents commerciaux.
Lecture Dimension multivaluée : Star Schema. Christopher Adamson. pages 195, 198-200
Lecture Dimension multivaluée : Agile Data Warehouse Design: Collaborative Dimensional Modeling, from Whiteboard to Star Schema Laurence Corr, and Jim Stagnitto. pages 265-266
Lecture Table passerelle pour la gestion des cardinalités multiples : Star Schema. Christopher Adamson. pages 199-204
Lecture Table passerelle pour la gestion des cardinalités multiple : Agile Data Warehouse Design: Collaborative Dimensional Modeling, from Whiteboard to Star Schema Laurence Corr, and Jim Stagnitto. pages 268-276
Attribut multivalué (Relation N-M entre une dimension et une table déportée).
Considérons un autre exemple où un client CUSTOMER
est associé à un type d’industrie INDUSTRY
. Un problème se pose lorsqu’il peut y avoir plusieurs types d’industries permettant de qualifier le client.
Nous résolvons le problème ici en plaçant la table passerelle entre les dimensions CUSTOMER
et INDUSTRY
(figure ci-dessous).
Lecture Attribut multivalué : Star Schema. Christopher Adamson. pages 195, 207-210
Gestion des hiérarchies à profondeur variable
Prenons l’exemple d’une société qui fait ses produits uniquement en B2B (c’est-à-dire à une autre société). Cependant, certains de ses clients sont des entreprises qui font partie d’un groupe plus global et ainsi de suite.
Il n’est cependant pas possible de savoir, pour chaque client, le niveau de hiérarchie auquel il faut s’attendre. C’est pourquoi nous devons utiliser ici un patron de conception nommé hiérarchie à profondeur variable.
Lecture Hiérarchie récursive / Hiérarchie à profondeur variable : Star Schema. Christopher Adamson. pages 219-221
Lecture Hiérarchie récursive / Hiérarchie à profondeur variable : Agile Data Warehouse Design: Collaborative Dimensional Modeling, from Whiteboard to Star Schema Laurence Corr, and Jim Stagnitto. pages 76, 175
Lecture Table passerelle pour hiérarchie à profondeur variable : Star Schema. Christopher Adamson. pages 227-235
Lecture Table passerelle pour hiérarchie à profondeur variable : Agile Data Warehouse Design: Collaborative Dimensional Modeling, from Whiteboard to Star Schema Laurence Corr, and Jim Stagnitto. pages 176-178