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

Conception/Modélisation Discussion :

Projet DW ,IT: Gestion des congés


Sujet :

Conception/Modélisation

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    avril 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : Tunisie

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

    Informations forums :
    Inscription : avril 2014
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Projet DW ,IT: Gestion des congés
    Je débute tout juste dans un projet DW et je suis dans l’étape de la Modélisation des données , j'ai opté pour la modélisation multidimensionnelle avec des tables de faite et des table de dimension mais j'ai qq difficultés à raisonner le passage des tables relationnels aux tables de fait .

    Dans mon projet , j'ai 2 tables :
    table Effectif (idEffectif , matricule, nom, entité )
    table congé ( id congé , matricule , nom, datedepart, datefin ,nbrjour,etatcuf,etatdir,etatrh ,diplome)

    donc j'ai pensé à faire 3 tables de dimension
    dimeffectif (idEffectif , matricule, nom, entité )
    dimdate
    dimcongé (id congé ,datedepart, datefin ,nbrjour,etatcuf(accepté o refusé ),etatdir(accepté o refusé ),etatrh(accepté o refusé ) ,diplome)

    Mais j' arrive pas à decider kel attribut doit mettre dans la table de fait pour faire les mesures : nbr des demandes de congés accepté , periode frequente des congé

    Qu'en pensez-vous?
    Merci d'avance

  2. #2
    Membre émérite Avatar de nuke_y
    Profil pro
    Indépendant en analyse de données
    Inscrit en
    mai 2004
    Messages
    2 076
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant en analyse de données

    Informations forums :
    Inscription : mai 2004
    Messages : 2 076
    Points : 2 329
    Points
    2 329
    Par défaut
    Tu as un fait "Congé" qui peut se traduire fonctionnellement par "Liste des intervalles de jours pendant lesquels les matricule(s) sont dans un état de Congé". Si cette définition n'est pas exacte alors il faut expliquer pourquoi, ça peut changer BEAUCOUP de choses.

    Je dirais 3 dimensions:
    table Effectif (idEffectif , matricule, nom, entité )
    table DateDepart (idDateDepart, Date, Semaine, Mois, Année). Tu peux aussi passer dans une hiérarchie si tu as de l'argent à perdre
    table DateFin (idDateFin, Date, Semaine, Mois, Année). Tu peux aussi passer dans une hiérarchie si tu as de l'argent à perdre

    1 table de faits:
    table IntervalleCongés ( id congé , idEffectif, idDateDepart, idDateFin, nbrjour,etatcuf,etatdir,etatrh ,diplome) : je ne sais pas ce que sont etatcuf,etatdir,etatrh ,diplome donc je les laisse dans le fait, éventuellement ils peuvent donner lieu à des dimensions. IdEffectif est récupéré par le matricule, Nom part à la poubelle puisqu'en doublon par rapport à la référence qui est Effectif. Si tu veux faire du contrôle ou de la data quality, tu le fais avant de modéliser en étoile.

    Bon maintenant ça sert à quoi ? Je ne vois pas trop ce que tu peux faire de cette modélisation Eventuellement si tu peux travailler directement sur le SQL comme en SQL pur ou avec Business Objects ou Cognos, ça peut servir à sortir la liste des matricules qui étaient en congés à une date précise, saisie par l'utilisateur. Tu peux aussi sortir la liste des matricules qui sont partis ou revenus de congés dans un intervalle de temps. Par exemple pour analyser les Années / mois / semaines où il y a le plus de départ ou de retour de congés.

    Mais ce que tu ne peux pas faire c'est compter les matricules qui sont en congés par période. Donc si ton but c'est de compter par Année / mois / semaine le nombre de matricules simultanément en congés la modélisation actuelle va être assez compliquée à utiliser.

    Si ce que tu veux c'est juste stocker en vue d'une utilisation datamart ultérieure, dans ce cas cette modélisation est suffisante, et je te conseille même de ne pas t'embêter avec les dimensions temps, elles ne servent à rien.
    Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes.

  3. #3
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    avril 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : Tunisie

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

    Informations forums :
    Inscription : avril 2014
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Oui mon but c'est de compter par Année / mois / semaine le nombre de matricules simultanément en congés cad kel est la periode frequente des congés ou on a la plus grand nbr des matricules simultanement en congés .

    Pour la 2eme mesure nbr des demandes de congés accepté cad le nombre de matricules simultanement etaient acceptés leurs demandes de congés par la RH ca ou il intervient l'attribut etatRH ( accepté ou refusé ) . kel sera donc la modelisation la plus convenable pour ces 2 mesures et merci d'avance

    Aussi je ne comprend pa pourquoi ta fait 2 table dimension de type date ( dateDepart et dateFin ) pouvez- vous svp expliquer ton principe de raisonnement pour comprendre comment je dois raisonner dorenavant ?

  4. #4
    Membre émérite Avatar de nuke_y
    Profil pro
    Indépendant en analyse de données
    Inscrit en
    mai 2004
    Messages
    2 076
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant en analyse de données

    Informations forums :
    Inscription : mai 2004
    Messages : 2 076
    Points : 2 329
    Points
    2 329
    Par défaut
    Dans le fait il y a 2 dates, donc il y a forcément 2 dimensions temps. Ou alors 1 seule avec une table pivot entre les 2, mais c'est costaud.

    Pour en revenir au problème, le besoin fonctionnel exprimé : "compter le nombre de matricules simultanément en congés et le nombre de jours de congés cumulés simultanés par périodes (Années, mois, semaine)" n'est pas possible avec la modélisation actuelle. De plus tu as une grande difficulté à surmonter : le temps est une dimension vraiment difficile car il n'y a pas de hierarchie simple : vendredi 01/01/2016 appartient à 2016 si on regarde les mois mais à 2015 si on regarder les semaines (le vendredi 01/01/2016 est dans la semaine 53 de 2015 en notation ISO).

    Le plus simple, je ne dis pas le plus optimisé, le plus propre, je dis bien le plus simple, c'est de transformer tes intervalles en jours. Cad que pour chaque intervalle tu vas générer 1 ligne pour chaque jour de l'intervalle. donc:
    Congé de M.X du 01/03/2015 au 04/03/2015 inclu va devenir:
    Congé de M.X le 01/03/2015
    Congé de M.X le 02/03/2015
    Congé de M.X le 03/03/2015
    Congé de M.X le 04/03/2015

    Ainsi tu auras 1 seule dimension Temps (celle de la date) et pour il suffira de faire pour calculer :
    - le nombre de Matricules : count(distinct Matricule)
    - le nombre de jours : count(Date) (qui va donc en fait faire un count du nombre de lignes, il y a plein d'autres manières de faire ça).
    et de faire le Group By (Année / Mois / Semaine) et la clause Where (Année / Mois / Semaine) qui va bien.


    Pour transformer ton intervalle en x lignes tu as plein de solutions:
    - sur Oracle faire une jointure avec la table objects
    - sur SQLServer et Oracle faire une requête récursive
    - sur SQLServer et Oracle du T-SQL / PL/SQL
    - sûrement d'autres, il y a plein de solutions que tu pourras trouver sur le forum BDD pour transformer un intervalle en X lignes.


    Pour la 2e mesure c'est facile, tu ne changes rien, c'est juste une clause à rajouter dans le Where.

    Pour la méthode, que je sache il n'en existe aucune qui permette de résoudre tous les problèmes fonctionnels et de modélisation, je suis ouvert aux suggestions si certains ont des liens à donner. Pour moi seule l'expérience et les échanges peuvent aider. J'ai bien écrit la mienne mais elle ne ferait que te perturber je pense.
    Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes.

  5. #5
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    avril 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : Tunisie

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

    Informations forums :
    Inscription : avril 2014
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Merci pour ta réponse .

    je veux opter pour le plus simple , de transformer mes intervalles en jours.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Modélisation d'une gestion des congés en UML
    Par slumdunk dans le forum Débuter
    Réponses: 3
    Dernier message: 13/05/2008, 21h23
  2. Gestion des congés sous access
    Par squalito dans le forum Access
    Réponses: 1
    Dernier message: 09/08/2006, 23h34
  3. Thème: gestion des congés
    Par rosah dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 31/08/2005, 13h10

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