Je dois créer un Data Warehouse pour une agence de voyage. Je le fais pour la première fois. J'ai appris toutes les bases sur les schémas d'étoiles, de flocons de neige et de constellations et sur la création de centres de données. Je voudrais demander ce qui pourrait être amélioré et si ce design est globalement bon.

Voici ma hiérarchie de dimensions:

enter image description here

Voici ce que j'ai réalisé pour ne pas (créer un schéma dans MySQL Workbench):

enter image description here

0
anton86993 2 avril 2017 à 03:34

2 réponses

Meilleure réponse

Voici une nouvelle réponse basée sur la question révisée. Il y a un certain nombre de choses que vous voudrez peut-être examiner pour cette conception. Voici quelques conseils mais pas une liste complète:

  • Quelle granularité votre dimension DimTime est-elle censée être? Normalement, vous avez une dimension de date à la granularité jour / date, mais dans votre tableau, cela ressemble à des semaines.

  • Vous pouvez créer une dimension d'heure distincte si cela est important pour l'analyse du moment où les évaluations des ventes ou de la satisfaction ont été effectuées.

  • Le fait de la fidélité semble être un résumé du comportement des clients sur une période de temps - est-ce censé être des semaines? Si c'est le cas, vous pouvez opter pour une dimension supplémentaire au niveau de la semaine

  • Pourquoi le type de paiement contient-il des secondes de la journée? Cela ne semble pas correct - les types de paiement ne sont pas liés à quelques secondes par jour. Peut-être s'agit-il de votre dimension d'heure manquante et le type de paiement doit être séparé?

  • La dimension produit doit-elle avoir une hiérarchie régionale? Êtes-vous en train de dire qu'un produit est différent s'il se trouve dans une autre ville? Vous voudrez peut-être revoir cela.

Je suis sûr que d'autres suggestions pourraient être trouvées, bonne chance avec votre cours!

0
Rich 4 avril 2017 à 13:13

Pour prendre DimClient comme exemple. Vous avez une belle clé de substitution là-dedans. Ensuite, vous devez remplir toutes les informations relatives à un client (y compris le clientID), puis inclure également le district, la ville, la région et le pays. Lorsque vous avez tout cela là-dedans, cette dimension est complète.

Vous créez un lien vers celui-ci dans votre table de faits par ClientKey, vous devez donc placer cette clé dans la table de faits en tant que clé étrangère.

Suivez un processus similaire avec vos autres dimensions, en remplissant à la fois les dimensions et les faits, et vous serez en bonne forme. Vous n'avez pas besoin de sous-dimensions pour refléter vos recherches: les dimensions sont dénormalisées.

Edit: La question était à l'origine assez différente, d'où la réponse ci-dessus qui était pertinente pour sa forme originale.

1
Rich 4 avril 2017 à 07:46