Il n'y a pas de table "OS" dans votre modèle donc il n'y avait pas de raison d'en parler. Par contre si vous en ajoutez une, ça aura un impact effectivement. Un null n'est pas problématique du moment qu'on en tient compte lors de l'écriture de la requête et qu'on fait une jointure ouverte. De manière générale, mis à part les problèmes de performances, il vaut mieux commencer en faisant toujours des jointures ouvertes des faits vers les dimensions : il faut essayer de ne JAMAIS perdre de fait, alors qu'une dimension mal jointe ça se repère rapidement.
Il y a plusieurs solutions pour résoudre ce problème de la dimension applicable à seulement une partie des faits:
- ne pas créer une dimension "OS" et stocker tous les attributs dans la table Objet. A quoi servirait la dimension OS ? Juste à faire "propre" ou y a t-il une utilisation réelle ?
- ajouter 3 lignes dans la table "OS":
- "Non Applicable" avec un id particulier connu à l'avance (disons 1 par exemple)
- "Non Renseigné" avec un id particulier connu à l'avance (disons 2 par exemple)
- "Non Reconnu" avec un id particulier connu à l'avance (disons 3 par exemple)
Quand une ligne venant de "Computers" a l'information "OS" vide, on va la mapper sur l'id 2
Quand une ligne venant de "Computers" a l'information "OS" renseignée mais qui ne correspond pas à la liste des OS connus, on va la mapper sur l'id 3
Une ligne venant d'un équipement sans OS va être mappée sur l'id 1
Ainsi le modèle est cohérent, utilisable avec des jointures fermées, etc. Tenter de faire des statistiques sur le nombre d'équipement par OS quand on a des micro-ondes donnera un chiffre sans utilité (puisque l'OS sera "Non Applicable") mais qui ne sera pas faux.
A noter que c'est la raison pour laquelle il n'est pas forcément facile de modéliser un DWH, il faut la connaissance de tout le fonctionnel, les dimensions, les mesures, les références, le Master Data Management, l'historique de l'entreprise, etc. Ou alors on se trompe, et puis on adapte au fur et à mesure, ça marche aussi. 
Pour la plateforme, ça depend le but: si c'est de faire des trucs sympas "pour voir" sans forcément le diffuser massivement dans l'entreprise, QlikView ou QlikSense sont très bien, sinon il faut effectivement se pencher sur une plateforme complète et là... ça me parait un peu ambitieux pour un stage.
Partager