Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Conception/Modélisation Décisionnelle
Conception/Modélisation Décisionnelle Forum d'entraide sur la conception de datawarehouse, datamarts et la modélisation décisionnelle : Tables de faits et de dimension, Modèles en étoile ou en flocons, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/12/2010, 20h06   #1
Invité de passage
 
me apple
Inscription : octobre 2009
Messages : 10
Détails du profil
Informations personnelles :
Nom : me apple

Informations forums :
Inscription : octobre 2009
Messages : 10
Points : 2
Points : 2
Par défaut probléme de conception entrepot de données

bonjour tous le monde,
je suis vraiment en desordre dans mes idées je cherche un guide, j'ai un projet data warehouse, je suis dans la phase conception mais quand j'ai commencé a faire un fait inscription qui calcule le nombre de client inscrit j'ai pas su quoi faire avec les dimensions, je met la dimension client ou pas en plus j'ai trouvé un probleme de comprehension pour le fait et comment il calcule???
aidez moi svp
apple me est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2010, 14h03   #2
Membre Expert
 
Avatar de nuke_y
 
Inscription : mai 2004
Messages : 1 812
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 1 812
Points : 1 609
Points : 1 609
Bonjour.

Globalement, vu ton problème, on ne pourra pas t'aider sans une explication d'au moins 30 ou 40 lignes avec des exemples.

Merci
__________________
Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes.

Mon combat pour les droits des consommateurs face aux abus des grandes marques.
nuke_y est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2010, 21h53   #3
Invité de passage
 
me apple
Inscription : octobre 2009
Messages : 10
Détails du profil
Informations personnelles :
Nom : me apple

Informations forums :
Inscription : octobre 2009
Messages : 10
Points : 2
Points : 2
Par défaut Bonjour,

moi je demande des idées ou bien un cours qui exprime le détail du fait et comment il se construit étape par étape
Merci a vous tous
apple me est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2010, 10h42   #4
Modérateur
 
Avatar de doc malkovich
 
Homme
Consultant en Business Intelligence
Inscription : juillet 2008
Messages : 950
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : juillet 2008
Messages : 950
Points : 1 467
Points : 1 467
Tu as bien un cours sur developpez, mais comme le dit nuke tu devrais expliciter ton problème si tu veux que l'on t'aide ...
__________________
Avez-vous 60 secondes pour répondre aux sondages sur BO ici et ?
doc malkovich est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2010, 12h04   #5
Membre Expert
 
Avatar de nuke_y
 
Inscription : mai 2004
Messages : 1 812
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 1 812
Points : 1 609
Points : 1 609
Ah oui tiens il est pas mal ce cours.

Non mais je vois ce qu'il veut: un bon guide pour apprendre à modéliser les tables de faits avec les bonnes pratiques, les pièges à éviter, etc.

La plupart des bouquins qui parlent de projets BI ont un chapitre là dessus mais c'est vrai qu'un petit cours/tuto/récap disponible gratuitement en ligne serait intéressant. Et je suis sûr qu'il y a ici les compétences pour le faire.
__________________
Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes.

Mon combat pour les droits des consommateurs face aux abus des grandes marques.
nuke_y est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2010, 13h02   #6
Modérateur
 
Avatar de doc malkovich
 
Homme
Consultant en Business Intelligence
Inscription : juillet 2008
Messages : 950
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : juillet 2008
Messages : 950
Points : 1 467
Points : 1 467
Citation:
Envoyé par nuke_y Voir le message
c'est vrai qu'un petit cours/tuto/récap disponible gratuitement en ligne serait intéressant. Et je suis sûr qu'il y a ici les compétences pour le faire.
Sans doute, c'est une bonne idée d'article ... Mais ça prend du temps

En attendant si on peut aider appleme il faudrait en savoir + sur son problème.
__________________
Avez-vous 60 secondes pour répondre aux sondages sur BO ici et ?
doc malkovich est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2010, 15h45   #7
Invité de passage
 
me apple
Inscription : octobre 2009
Messages : 10
Détails du profil
Informations personnelles :
Nom : me apple

Informations forums :
Inscription : octobre 2009
Messages : 10
Points : 2
Points : 2
Par défaut Bonjour

avant je vous remercie pour vos reponse
voila mon problème en quelques lignes:
je veux faire un entrepôt pour des données clients qui s'inscrivent dans des formations selon les moyennes du concours, moi je veux calculer le nombre d'inscrit selon le lieu de résidence, le niveau intellectuelles, la profession pour avoir des tendances, des statistiques pour les décideurs.
aussi voir les fomrations pour chaque clients pour voir les formations les plus demandé et aussi les moins demandé
voir le nombre de clients qui ont passé le concours mais ils poursuivent pas l'inscription,... etc.
mon problème c’est que j’arrive pas a le faire même j’ai vu le tutoriel mais j’ai pas bien compris l’idée du fait parce que j’ai l’habitude de faire des base de données transactionnel mais multidimensionnel c’est ma première expérience
apple me est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2010, 15h52   #8
Membre Expert
 
Avatar de nuke_y
 
Inscription : mai 2004
Messages : 1 812
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 1 812
Points : 1 609
Points : 1 609
ça peut aider ça:http://hal.archives-ouvertes.fr/docs...itMesureVF.pdf
__________________
Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes.

Mon combat pour les droits des consommateurs face aux abus des grandes marques.
nuke_y est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2010, 16h34   #9
Invité de passage
 
me apple
Inscription : octobre 2009
Messages : 10
Détails du profil
Informations personnelles :
Nom : me apple

Informations forums :
Inscription : octobre 2009
Messages : 10
Points : 2
Points : 2
Par défaut Bonjour

j'arrive pas a ouvrire le lien
apple me est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2010, 17h06   #10
Modérateur
 
Avatar de doc malkovich
 
Homme
Consultant en Business Intelligence
Inscription : juillet 2008
Messages : 950
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : juillet 2008
Messages : 950
Points : 1 467
Points : 1 467
Citation:
Envoyé par apple me Voir le message
je veux faire un entrepôt pour des données clients qui s'inscrivent dans des formations selon les moyennes du concours, moi je veux calculer le nombre d'inscrit selon le lieu de résidence, le niveau intellectuelles, la profession pour avoir des tendances, des statistiques pour les décideurs.
aussi voir les fomrations pour chaque clients pour voir les formations les plus demandé et aussi les moins demandé
voir le nombre de clients qui ont passé le concours mais ils poursuivent pas l'inscription,... etc.
Si on reprend ce que tu as dit tu as :

en faits / indicateurs :
- le nombre d'inscrits
- le nombre de clients qui ont passé le concours
- le nombre de clients qui ont poursuivi l'inscription
- le nombre de clients qui ont passé le concours mais qui n'ont pas poursuivi ( qu'on peut aussi déduire des indicateurs précédents ? )

en dimensions :
- le lieu de résidence
- le niveau intellectuelles
- la profession
- la formation
- le temps

ta table de faits est une table agrégée, elle est l'intersection des 5 dimensions. tu fais abstraction de la dimension client ( que tu agrèges ), et tu rajoutes le temps ( par exemple le mois ? )

après bien sûr je devine que tu ne nous as pas tout dit, mais c'est une base pour commencer ...
__________________
Avez-vous 60 secondes pour répondre aux sondages sur BO ici et ?
doc malkovich est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 10/12/2010, 17h46   #11
Invité de passage
 
me apple
Inscription : octobre 2009
Messages : 10
Détails du profil
Informations personnelles :
Nom : me apple

Informations forums :
Inscription : octobre 2009
Messages : 10
Points : 2
Points : 2
Par défaut Bonjour

merci pour la reponse aussi clair sauf pour la dimension client, j'ai pas compris pour quoi je la met pas parceque moi se qui me derange c'est que comment je peut avoir le nombre d'inscrit sans voir le client
apple me est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2010, 17h51   #12
Modérateur
 
Avatar de doc malkovich
 
Homme
Consultant en Business Intelligence
Inscription : juillet 2008
Messages : 950
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : juillet 2008
Messages : 950
Points : 1 467
Points : 1 467
j'ai dû rater un épisode alors

c'est quoi un client ?
pour moi c'est quelqu'un qui s'inscrit ...
__________________
Avez-vous 60 secondes pour répondre aux sondages sur BO ici et ?
doc malkovich est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2010, 18h30   #13
Invité de passage
 
me apple
Inscription : octobre 2009
Messages : 10
Détails du profil
Informations personnelles :
Nom : me apple

Informations forums :
Inscription : octobre 2009
Messages : 10
Points : 2
Points : 2
oui, donc je comprend que le fait insciption est analogue a une relation inscription qui contient un identifiant client, identifiant formation ....etc dans un modéle entité-relation.
apple me est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2010, 23h25   #14
Membre Expert
 
Avatar de nuke_y
 
Inscription : mai 2004
Messages : 1 812
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 1 812
Points : 1 609
Points : 1 609
T'as pas de chance pour le lien, ça marche nickel chez moi, même sous MAC et safari.

Bon en gros l'état de l'art, dans un monde idéal:
- tu détermines tout ce qui est dimension et ce qui est fait.
- tu créés 1 table par dimension, qui contient un select distinct de tes données de chaque dimension, et qui est identifié par une clé unique générée automatiquement : une clé de substitution
- tu crées ta table de faits : tu agrèges tes faits par clé de substitution

Au final tu obtiens donc 1 table de faits et n tables de dimension

Dans la vraie vie ce qui n'est pas assez développé pour en faire une dimension tu le laisses en attribut dans ta table de faits. Et les clés de substitution ne sont pas obligatoires.


Bon maintenant, fonctionnellement sur ton sujet, la réponse de doc malkovich me semble bien mais il y a un truc qui me dérange. Si je comprends bien tes explications tu as:
- Des gens qui passent un concours
- Certains le réussissent
- Sur ceux qui l'ont réussi certains s'inscrivent à des formations
- Une personne peut s'inscrire à 0 ou n formations

Globalement tu peux t'en sortir avec une seule table de faits (et sans table de dimension) mais ça me semble moyennement propre. Je m'explique:
Si tu choisis de faire rentrer la dimension "Formation" dans ta table de faits tu auras une table comme ça (les K montrent la clé de la table):
Code :
1
2
3
4
5
6
- [K] identifiant client (= identifiant de la personne qui a passé le concours)
- [K] identifiant de la formation
- date d'inscription à la formation
- lieu de résidence
- Niveau Intellectuel
- Profession
Donc tu as une table qui présente les formations réalisées par chaque client. Mais comment trouves-tu les clients qui ne se sont pas inscrits? Effectivement comme ils ne se sont pas inscrits à une formation, ils n'apparaissent pas dans ta table. La solution non propre consiste à les rentrer quand même avec un identifiant de formation vide ou bien nommé "PAS DE FORMATION" mais là ton modèle est peu propre.

Globalement si tu veux faire proprement les analyses dont tu as parlé, je pense qu'il faut faire au moins 1 tables de fait de laquelle tu as retiré les attributs liés au client:
Code :
1
2
3
- [K] identifiant client (= identifiant de la personne qui a passé le concours)
- [K] identifiant de la formation
- date d'inscription à la formation
et 1 table de dimension: la dimension client avec ses attributs:
Code :
1
2
3
4
- [K] identifiant client (= identifiant de la personne qui a passé le concours)
- lieu de résidence
- Niveau Intellectuel
- Profession
Tu auras:
- le nombre de clients qui ont passé le concours en faisant un
Code :
SELECT count(*) FROM DIMENSION_CLIENT
- le nombre de clients inscrits en faisant un
Code :
SELECT count(DISTINCT "identifiant client") FROM FAIT_FORMATION
- le nombre de clients qui ont poursuivi l'inscription : c'est quoi la différence avec le nombre de clients inscrits juste au dessus?
- le nombre de clients qui ont passé le concours mais qui n'ont pas poursuivi :
Code :
SELECT count(DISTINCT "identifiant client") FROM DIMENSION_CLIENT WHERE NOT EXISTS (SELECT 1 FROM FAIT_FORMATION WHERE DIMENSION_CLIENT."identifiant client" = FAIT_FORMATION."identifiant client"
- les 10 formations les plus suivies:
Code :
SELECT * FROM (SELECT "identifiant formation", count(*) FROM FAIT_FORMATION GROUP BY FAIT_FORMATION."identifiant formation" ORDER BY 2 DESC) WHERE rownum <=10
- les 10 formations les moins suivies (attention là il y a un piège s'il y a des formations qui ne sont suivies par personne. Dans ce cas il faut une table de dimension formation) :
Code :
SELECT * FROM (SELECT "identifiant formation", count(*) FROM FAIT_FORMATION GROUP BY FAIT_FORMATION."identifiant formation" ORDER BY 2 ASC) WHERE rownum <=10
- le nombre d'inscrit selon un attribut client:
Code :
SELECT DIMENSION_CLIENT.attribut, count(DISTINCT FAIT_FORMATION."identifiant client") FROM FAIT_FORMATION INNER JOIN DIMENSION_CLIENT ON (DIMENSION_CLIENT."identifiant client" = FAIT_FORMATION."identifiant client") GROUP BY DIMENSION_CLIENT.attribut

Enfin après il y a plein de modélisation possibles. Dans ton cas je pense qu'il faut choisir la plus simple à faire et à maintenir, mais qui te permette au moins de remplir ton cahier des charges de départ.

A noter aussi que la dimension temps devrait être traitée dans une table à part, jointe sur la date, sauf très gros volumes de données.


On a largement dépassé les 30 lignes là...
__________________
Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes.

Mon combat pour les droits des consommateurs face aux abus des grandes marques.
nuke_y est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2010, 11h11   #15
Modérateur
 
Avatar de doc malkovich
 
Homme
Consultant en Business Intelligence
Inscription : juillet 2008
Messages : 950
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : juillet 2008
Messages : 950
Points : 1 467
Points : 1 467
Citation:
Envoyé par nuke_y Voir le message
On a largement dépassé les 30 lignes là...
Pas mieux
__________________
Avez-vous 60 secondes pour répondre aux sondages sur BO ici et ?
doc malkovich est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h28.


 
 
 
 
Partenaires

Hébergement Web