IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Affichage des résultats du sondage: NULL ou -1 dans les tables de faits

Votants
9. Vous ne pouvez pas participer à ce sondage.
  • Tout en NULL. L'espace de stockage est optimisé, le cube gère ça très bien et le LEFT c'est cool

    3 33,33%
  • -1 partout, les DIM sont initialisées, contraintes fortes partout

    6 66,67%
  • Obi-Wan Kenobi laisse parler la force dans le contexte. Il doit alors expliquer à tous les padawans

    0 0%
Microsoft BI Discussion :

NULL ou -1 dans les FK des tables de faits?


Sujet :

Microsoft BI

  1. #1
    Membre chevronné Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Points : 2 145
    Points
    2 145
    Par défaut NULL ou -1 dans les FK des tables de faits?
    Bonjour à tous,
    Une petite question d'habitude, bonne pratique...

    Lorsque vous avez des tables de faits pour lesquelles l’ensemble des FK ne sont pas forcément renseignées, est-ce que :
    - vous laissez une valeur NULL dans la table de faits et les jointures se font alors avec un LEFT OUTER JOIN, le cube utilisant le unknown member pour les gérer
    - vous renseignez la table de faits avec des valeurs de FK à -1 en ayant fais attention à créer ce membre -1 dans la table de dim. On peut alors éviter les LEFT et l'utilisation du Unknown member.

    Quel est le mieux pour vous ?

  2. #2
    Membre émérite Avatar de FrancoisJehl
    Homme Profil pro
    BI Engineer
    Inscrit en
    Juillet 2009
    Messages
    1 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : BI Engineer
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 485
    Points : 2 883
    Points
    2 883
    Par défaut
    J'ai répondu "-1" parce que Ralph Kimball est grand.

    Map all the bad fact rows to the Unknown member for that dimension by supplying a key of –1 (or whatever your Unknown member key is)
    The Data Warehouse Toolkit, chap 4, verset 14.

    Plus sérieusement j'aime pas l'idée de confier à SSAS le NullProcessing, je préfère gérer ça côté ETL. Mais c'est beaucoup plus religieux que réellement argumenté. C'est un sujet à FlameWar (cf par exemple les commentaires sur ce vieux post de Christian Wade http://consultingblogs.emc.com/chris...ices-2005.aspx) et même chez nous (AIT) on est pas tous d'accord sur le sujet...

  3. #3
    Membre confirmé Avatar de dream_rachid
    Homme Profil pro
    DBA & Responsable BI
    Inscrit en
    Mars 2006
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Tunisie

    Informations professionnelles :
    Activité : DBA & Responsable BI
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2006
    Messages : 278
    Points : 461
    Points
    461
    Par défaut
    -1 de ma part

    Malgré qu'on trouve le même résultat dans la navigation du cube mais j'ai choisi -1 pour deux simples raisons :

    I- Au niveau conceptuel me parait plus juste
    II- par analogie au requête SQL le LEFT OUTER JOIN est moins performant que le INNER JOIN ( personnelement j'ai pas testé les deux cas pour affirmer ...mais je laisse le soin à vous pour me confirmer)

    Merci

  4. #4
    Membre chevronné Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Points : 2 145
    Points
    2 145
    Par défaut
    Et dans le cas où votre table de faits contient des faits qui ne se lient pas toutes à l'intégralité des dimensions.
    Exemple vous stockez des ventes de divers produits dont certains sont liés à une dimension de marque, d'autres à des services etc.
    Chaque ligne de faits a donc une combinaison de dimensions auxquelles elle est liée.

  5. #5
    Membre chevronné Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Points : 2 145
    Points
    2 145
    Par défaut
    Encore une petite précision, pour l'ensemble des attributs, sur lesquels il y a par moment des contraintes fortes, laissez-vous à NULL ou systématiquement un caractère respectant la contrainte ?

  6. #6
    Membre averti
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2010
    Messages
    240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2010
    Messages : 240
    Points : 359
    Points
    359
    Par défaut
    Je dis -1 car j'ai pour habitude de remplacer les NULL par une valeur ou un code en fonction de la dimension associée.

  7. #7
    Membre émérite Avatar de FrancoisJehl
    Homme Profil pro
    BI Engineer
    Inscrit en
    Juillet 2009
    Messages
    1 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : BI Engineer
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 485
    Points : 2 883
    Points
    2 883
    Par défaut
    Et d'ailleurs ça appelle une petite question? Amis "UnknownMemberistes" comment gérez vous les relations référencées?

  8. #8
    Membre chevronné Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Points : 2 145
    Points
    2 145
    Par défaut
    Justement pas très bien...
    On a eu le cas où pour une dimension de points de ventes, tout devait être lié à la clef de dimension plutôt que de faire au propre avec des relations d'attributs liés.


    En même temps, mettre uniquement des libellé 'N/A' ne change pas beaucoup les choses.
    Imaginons un point de vente A lié à une région NULL mais également, au-dessus à une enseigne E1.
    Avec cela un point de vente B lié à une région NULL mais pour sa part, lié à une enseigne E2.
    A part générer des nom de région 'N/A xx' pour chaque enseigne, comment gérer cela plutôt que de tout lier à la clef de dimension ?

    Question subsidiaire : toutes les colonnes d'attributs de vos table de DIM ont des contraintes non NULL ?

  9. #9
    Membre chevronné Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Points : 2 145
    Points
    2 145
    Par défaut
    Citation Envoyé par Jinroh77 Voir le message
    Et dans le cas où votre table de faits contient des faits qui ne se lient pas toutes à l'intégralité des dimensions.
    Exemple vous stockez des ventes de divers produits dont certains sont liés à une dimension de marque, d'autres à des services etc.
    Chaque ligne de faits a donc une combinaison de dimensions auxquelles elle est liée.
    Au fait, qui peut donner des éléments de réponse là-dessus ??

Discussions similaires

  1. Problème d'apostrophe dans les noms des tables
    Par anaranjado dans le forum Débuter
    Réponses: 2
    Dernier message: 11/03/2010, 18h16
  2. Réponses: 2
    Dernier message: 06/04/2007, 11h48
  3. les données des tables son perdu dans SqlPlus
    Par princessa dans le forum Sql*Plus
    Réponses: 3
    Dernier message: 09/03/2007, 19h27
  4. Réponses: 2
    Dernier message: 27/07/2006, 15h54
  5. Réponses: 4
    Dernier message: 10/05/2006, 18h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo