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

SSAS Discussion :

[2K5][SSAS] Problème conception cube


Sujet :

SSAS

  1. #1
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 225
    Points : 96
    Points
    96
    Par défaut [2K5][SSAS] Problème conception cube
    Bonjour à tous,

    J'ai deux tables de faits ayant chacune plusieurs dimensions.
    Ces deux tables sont en relations "un à plusieurs".
    C'est le cas typique d'une table de fait contenant le solde d'un compte, et de l'autre table de fait contenant le détails du solde.
    Je ne comprend pas très bien la notion de relation plusieurs à plusieurs dans SSAS , et je ne sais pas si je dois l'employer dans ce cas de figure (un à plusieurs).
    Pouvez vous m'éclairer un petit peu?

  2. #2
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 225
    Points : 96
    Points
    96
    Par défaut
    ptit up je commence à comprendre un peu mieux les relations many to many.. mais bon toujours pas résolu mon pb

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    269
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2008
    Messages : 269
    Points : 339
    Points
    339
    Par défaut
    Les relations "Many to many" permettent de relier 2 dimensions séparée par une ralation N à N. La table de résultant de l'explosion de la relation N à N est souvent appellée "Factless fact table" (dans le cas où cette table ne contient pas de mesures).

    Si tu veux plus d'infos, recherche un document appelé "M2M Revolution" de Marco Russo.

    Juste une question par rapport à ton problème. Est-ce que ta table contenant le solde du compte est vraiment nécessaire? Le cube OLAP va se charger de le calculer à partir des données détaillées non?

  4. #4
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 225
    Points : 96
    Points
    96
    Par défaut
    Merci pour ta réponse,j'ai parcouru le pdf de Marc Russo.
    Mais mon problème est que mes deux tables de fait contiennent des mesures, je ne suis pas vraiment dans le cas d'un solde relié à un détails sinon effectivement la table de fait contenant le solde n'était pas nécessaire.
    D'une manière plus générale je cherche à savoir comment relié deux tables de fait ayant une relation "un à plusieurs"..
    Pour l'instant je relie bien mes tables dans la vue de donnée,au niveau du cube ça me donne deux groupes de mesure,mais au niveau de la navigation dans le cube cela ne marche pas,c'est comme si les deux groupes de mesures n'avaient aucune relation entre elles..

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    269
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2008
    Messages : 269
    Points : 339
    Points
    339
    Par défaut
    Pour relier 2 tables de faits (qui ont un lien 1-N comme les tiennes), tu peux créer une dimension sur ta table de faits "enfant". Pour cela, il faut que tu puisses identifier de manière unique chaque ligne de cette table (si tu as un id de ligne, c'est parfait). Sinon, tu dois sélectionner l'ensemble de colonnes identifiant uniquement chaque ligne.
    Cette dimension ne dois pas contenir autre chose que l'attribut clé de dimension et l'attribut te servant à faire le lien avec ton autre table de faits.

    Ensuite, tu peux ajouter cette dimension à ton cube et la masquer pour la navigation (propriété visible = false).

    Dans le "dimension usage" du cube, tu configure la relation de cette dimension avec le mesure group de la table de faits sur laquelle elle est construite à "fact" et pour la relation avec ton autre mesure group, tu configure la relation à "regular" (normal quoi).

    Cela devrait fonctionner, je l'ai déjà fait...

  6. #6
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 225
    Points : 96
    Points
    96
    Par défaut
    Merci pour ton aide j'ai essayer ce que tu m'as dit mais ça ne marche toujours pas.Il y a du mieux c'est à dire que lorsque je navigue dans le cube les deux groupes de mesure me fournissent des mesures (ce qui n'était pas le cas avant,un seul fonctionnait) mais seul celle de la table de fait principale sont justes.

    Je vais prendre un exemple afin de t'expliquer comment j'ai réalisé ce que tu m'as dit.

    Deux tables de dimensions :

    Dim1 : KeyDim1
    Dim2: KeyDim2

    Deux tables de fait :

    MainFact :
    KeyMainFact ,
    NoDoc,
    Date,
    KeyDim1,
    MainFactMeasure1,
    MainFactMeasure2


    ChildFact :

    KeyChildFact ,
    NoDoc,
    Date,
    KeyDim2,
    ChildFactMeasure1,
    ChildFactMeasure2

    La jointure entre les deux tables de fait s'effectue sur NoDoc et Date.

    J'ai donc crée une dimension sur ChildFact avec comme clé
    KeyChildFact et comme attribut NoDoc,Date

    Mais est ce vraiment cela?ne faut-il pas crée la dimension avec
    NoDoc,Date comme clé?
    (j'ai essayé ça ne marche pas mieux)
    je pense que c'est à ce niveau que je n'ai pas tout saisi

    Ensuite j'ai configuré la relation de cette dimension comme tu as dit.

    En ce qui concerne les dimensions je ne sais pas trop comment les configuré, pour l'instant le plus satisfaisant au niveau de la navigation est many-to-many mais ce n'est pas logique.

    En faite je souhaite pouvoir afficher :
    Dim1 Dim2 MainFactMeasure ChildFactMeasure

    Je ne sais pas si j'ai été très clair, en tout cas merci de m'avoir lu jusqu'ici.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    269
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2008
    Messages : 269
    Points : 339
    Points
    339
    Par défaut
    Salut,

    Je viens de relire ce que j'avais écrit. C'est correct execpté que je me suis trompé de table de faits pour la création de la dimension de type fact.

    C'est l'inverse en fait. Tu dois créer la dimension sur la table de faits "parent". Dans le "dimension usage", cette dimension est liée avec sa table de faits via une relation de type "fact" et une relation de type "regular" avec la table de faits "enfant". C'est logique puisque la jointure se fait de la table "enfant" vers la table "parent".

    A la navigation du cube, pour que tes faits de la table "enfant" et ceux de la table "parent" changent ensemble (quand tu mets une dimension en colonne par exemple), il faut que chacune de tes tables de faits soient liées à cette dimension.

    Donc sur base de ton exemple, tu pourrais obtenir ce résultat avec la dimension "Dim1" si tu la lies à ta table de faits "enfant" grâce à une relation de type "referenced" (en passant par la dimension intermédiaire créée sur ta table de faits parent).

  8. #8
    Membre expérimenté

    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    690
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 690
    Points : 1 478
    Points
    1 478
    Par défaut
    Je me permet de revenir un peu en arrière.
    1- Pourquoi ne fusionne tu pas les deux tables en une seule ?
    2- Est ce vraiment pertinent de lier ces deux tables dans le cas ou tu voudrais quand même en garder deux ?

    Il ne faut pas courrir vers la 3eme forme normale dans les modèles multi-dimensionnels, sinon ça devient trop compliqué pour les utilisateurs

  9. #9
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 225
    Points : 96
    Points
    96
    Par défaut
    Tes questions sont bonnes et j'espère que te réponse te permettront de me donner une autre solution si elle existe

    1.
    Je veux un report comme cela

    IdFaitParent IdFaitsEnfant Dim1Parent Dim2Enfant Mesure1 Mesure2

    1 1000 valA val1 2400euros 1200 euros
    1 1001 valA val2 ________ 1200 euros

    la mesure1 est la somme des mesure2,lors d'un regroupement j'aurais bien mesure1=2400 et mesure2=2400, si je mettais tout dans une seule table j'aurais mesure1=4800 et mesure2=2400.

    2. je pense que c'est pertinent car A la navigation du cube, je souhaite que les faits de la table "enfant" et ceux de la table "parent" changent ensemble selon les dimensions

    hum je ne suis peut-être pas très clair..

    je ne cours pas vers la 3FN,les utils auront deux groupes de mesures et des dimensions rien de bien compliqué..

  10. #10
    Membre expérimenté

    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    690
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 690
    Points : 1 478
    Points
    1 478
    Par défaut
    Quel est le type de relation entre les deux tables, many to many ?
    Les mesures semi-additives pourraient être une solution pour toi. Ou encore mieux, une dimension avec une relation many to many avec cette grande table de faits

  11. #11
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 225
    Points : 96
    Points
    96
    Par défaut
    Citation Envoyé par ygrim Voir le message
    Quel est le type de relation entre les deux tables, many to many ?
    Les mesures semi-additives pourraient être une solution pour toi. Ou encore mieux, une dimension avec une relation many to many avec cette grande table de faits
    Le type de relation entre les deux tables est un à plusieurs.
    Pourrait tu m'en dire un peu plus sur les mesures semi additives? il me semble que c'est des mesures qui ne s'aditionnent pas sur certaines dimensions,mais là je vois pas comment utiliser cela..
    Je ne vois pas trop non plus ce que tu veux dire avec "une dimension..avec cette grande table"

Discussions similaires

  1. Réponses: 3
    Dernier message: 17/09/2009, 15h06
  2. [SSAS] [2K5] Connextion html à un cube OLAP via IIS
    Par anayathefirst dans le forum SSAS
    Réponses: 2
    Dernier message: 03/07/2009, 09h44
  3. [SSAS] [2K5] Traçabilité mise à jour cube
    Par jdmbh dans le forum SSAS
    Réponses: 3
    Dernier message: 29/06/2009, 09h00
  4. [SSAS]Problème dans le traitement d'un cube
    Par Safaritn dans le forum SSAS
    Réponses: 2
    Dernier message: 27/09/2008, 09h35
  5. [SSAS][2k5] process d'un cube automatique
    Par t-die dans le forum SSAS
    Réponses: 6
    Dernier message: 10/07/2008, 12h24

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