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

Décisions SGBD Discussion :

Table de faits, dimension, intermédiaire et schéma en étoile et flocon


Sujet :

Décisions SGBD

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2011
    Messages : 27
    Points : 19
    Points
    19
    Par défaut Table de faits, dimension, intermédiaire et schéma en étoile et flocon
    Bonjour,

    Je souhaiterais que l'on m'éclaircisse sur du vocabulaire lié au bases de données et le DataWarehouse, que si je dis des bêtise, vous corrigiez le débutant que je suis.
    Je précise que j'ai tendance à avoir beaucoup de difficulté au niveau de la compréhension (donc si vous pouvez schématisez, n'hésitez pas ).



    Table de faits et tables de dimensions :
    J'ai lu qu'une table de faits n'était en faite qu'une table regroupant plusieurs clés des autres tables (ces autres tables s'appellent tables de dimension).


    Schéma en étoile :
    Du point de vue schéma, qu'on appelle schéma en étoile, la table de faits est la table au centre de l'étoile, les tables de dimensions sont des tables standards (ayant au moins une clé qui sert de liaison) situés aux extrémités de cette étoile.


    Table de faits ou table intermédiaire ?
    Si une table de fait est une table contenant les clés des autres tables, quelle serait sa différence avec une table intermédiaire ?
    Je souhaiterais donc savoir si l'on pouvait comparer une table intermédiaire à une table de faits car dans une relation n-m, une table intermédiaire contient des clés pouvant provenir de plusieurs tables.
    Est-ce que le terme table de faits (par rapport à table intermédiaire) serait plus lié à une notion de décisionnel et DataWarehouse ?


    Schéma en flocon :
    Le schéma en étoile représente une table centrale pouvant avoir plusieurs tables à leur extrémités (qu'on appelle table de dimensions).
    Un schéma en flocon est une version "améliorée" du schéma en étoile car les dimensions peuvent êtres liés à d'autres dimensions.
    Le schéma en flocon est donc une version un peu plus complexe du schéma en étoile, permettant de faire des économies d'espace allant de 5 à 10% (cf: Wikipédia pour les chiffres).



    Si vous pouvez m'apporter d'autre précisions sur ces notions liés au DataWarehouse, n'hésitez pas !



    Merci pour votre aide !

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 776
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 776
    Points : 52 751
    Points
    52 751
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par guk92 Voir le message
    ... je dis des bêtise...
    OUI !


    Table de faits et tables de dimensions :
    J'ai lu qu'une table de faits n'était en faite qu'une table regroupant plusieurs clés des autres tables (ces autres tables s'appellent tables de dimension).
    Une table de faits comme son nom l'indique contient des faits, par exemple une vente, un achat, un jour de travail...
    Les dimensions sont quelques unes des caractéristiques de ces faits qui gravitent autour de la table des faits. Certains dimensions n'ont pas besoin d'une table de dimension.
    Par exemple dans une vente il peut y avoir le montant, la date et le lieu.
    Le montant est une dimension sans hiérarchie, tandis que le lieu ou le temps sont des dimensions hiérarchique (ville/département/région et date, semaine, jour de semaine, mois, an...pour le temps. )

    J'ai pas le temps de détailler le reste....

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre éprouvé Avatar de Jester
    Inscrit en
    Septembre 2003
    Messages
    813
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 813
    Points : 1 058
    Points
    1 058
    Par défaut
    SQLPro, comme vous dites vous aussi des bétises tout se tient ...

    Le montant n'est pas une dimension mais une mesure qui sera agrégable sur les dimensions temps et lieu.

    Sinon pour votre question tout est sur Google ou sur Amazon.

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 802
    Points
    30 802
    Par défaut
    Le montant peut aussi être considéré comme une dimension dans ce sens qu'il peut être hiérarchisé par tranches de valeurs...
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2011
    Messages : 27
    Points : 19
    Points
    19
    Par défaut
    D'accord,

    Je comprend plus ou moins ce que vous m'expliquez.


    Table de faits :
    Donc en plus de contenir les clés des autres tables (tables de dimensions), les tables de faits peuvent contenir des valeurs (un montant, un poids, un volume, une longueur etc...), ce sont des valeurs qu'on ne pourrait pas forcément lier à une table de dimension.
    Une table de faits est donc, si je comprends bien, une table qui regroupe des données provenant de plusieurs tables (tables de dimensions), auxquels on peut ajouter des valeurs non-hiérarchisé.

    Une table de dimension est donc une table contenant des données souvent réutilisés.
    Exemple de table de dimension :
    id | extension_document
    1 | doc
    2 | docx
    3 | csv
    4 | pdf
    ...


    Certains dimensions n'ont pas besoin d'une table de dimension.
    SQLpro, je n'ai pas compris cette phrase.
    As-tu voulu faire la distinction entre le schéma en étoile et le schéma en flocon ?
    Donc une table de dimension n'ayant pas besoin d'une autre table de dimension donne un schéma en étoile alors qu'une table de dimension ayant besoin d'une autre table de dimension donne un schéma en flocon ?




    Il y a une chose que je ne comprend pas, quel est la différence entre une table de fait et une table intermédiaire alors ?

    Parce que j'ai l'impression que ces deux tables servent à la même chose, ils regroupent des données (clés) provenant des autres tables.







    Le montant peut aussi être considéré comme une dimension dans ce sens qu'il peut être hiérarchisé par tranches de valeurs
    Oui je comprends...
    id_pourcentage | poucentage_valeur_min | pourcentage_valeur_max
    1 | 0 | 24
    2 | 25 | 49
    3 | 50 | 74
    4 | 75 | 100










    Sinon pour votre question tout est sur Google ou sur Amazon.
    J'ai bien fais des recherches avant de poster mon sujet mais je n'ai pas trouvé de réponse à mes questions. Je suis sure moi même sur de savoir appliquer ces notions en pratique, par contre je ne suis pas apte à l'expliquer avec des mots (au niveau du vocabulaire), pour cela j'ai besoin de connaitre le nom de toutes ces notions.








    Merci

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 776
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 776
    Points : 52 751
    Points
    52 751
    Billets dans le blog
    5
    Par défaut
    Effectivement Jester vous avez raison de me dire qu'une dimension peut être une mesure lorsqu'elle est réduite à sa plus simple expression.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  7. #7
    Membre éprouvé Avatar de Jester
    Inscrit en
    Septembre 2003
    Messages
    813
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 813
    Points : 1 058
    Points
    1 058
    Par défaut
    Table intermédiaire : je ne connais pas cette expression.

    Une mesure est numérique, on peut faire des agrégations dessus.
    Une dimensions est catégoriel, cela sert à savoir quel sous-ensemble des données (du cube) on veut. Si une dimension n'a qu'un attribut on peut en faire une dimension dégénérée et zapper la table de dimension. Par exemple dans un cube de commandes, la dimension identifiant de la commande du système source est souvent mis en dégénéré. Dans votre exemple ça reviens à stocker les extensions directement dans la table de fait.

    Sinon vous êtes bon sur flocons/étoile.

    Si vous voulez approfondir plutôt qu'apprendre les trucs de modélisation, apprennez les fonctionnement bases de données qui vous dépannerons plus. Le reste ça s'apprend sur des situations réelles.

  8. #8
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2011
    Messages : 27
    Points : 19
    Points
    19
    Par défaut
    "Table intermédiaire" est le terme que l'on m'a enseigné pour désigner la table qui se situe entre une relation n-m (plusieurs à plusieurs).

    Par exemple, lorsque vous avez une table table_comptes et une table table_acces, pour qu'un utilisateur de table_comptes puisse avoir accès aux données de la table table_acces on lui attribut des droits, ces droits seront stockés dans la table table_droits.
    La table table_droits contient les clés de table_comptes et table_access.



    Le problème c'est que j'ai la pratique, mais je ne connais pas les mots théoriques.


    Donc si je résume :
    1. Une table de faits est une table contenant des clés étrangères (provenant des tables de dimensions) et des valeurs numériques que l'on souhaitera "travailler" avec des fonctions tels que SUM(), AVG(), COUNT()...
    table_faits
    id_faits
    valeur_numeriqueX
    id_axeY
    id_axeZ

    2. Une table de dimension est une table contenant des données qui serviront de graduation à un axe de cube, ex :
    table_alcool
    1 | vin
    2 | bière
    3 | whisky
    4 | vodka
    5 | sake
    etc...

    3. Un schéma en étoile est la représentation de la table de faits avec à ses extrémités les tables de dimensions. La table de faits se situe au centre de cette étoile.

    4. Un schéma en flocon est "une version amélioré" du schéma en étoile, une table de dimension est rattaché à une autre table de dimension.
    table_etoile
    id_etoile
    id_dimension2

    table_dimension2
    id_dimension2
    id_dimension1

    table_dimension1
    id_dimension1


    5. Qu'est-ce qu'un schéma en constellation ?

  9. #9
    Membre éprouvé Avatar de Jester
    Inscrit en
    Septembre 2003
    Messages
    813
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 813
    Points : 1 058
    Points
    1 058
    Par défaut
    Vous contaterez qu'une table de fait est souvent une relation n-m.

    constellation = ensemble d'étoiles et de flocons (avec des dimensions communes normalement)

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/03/2012, 18h30
  2. Alimentation tables de faits /dimensions
    Par abed77 dans le forum kettle/PDI
    Réponses: 2
    Dernier message: 31/07/2011, 19h57
  3. table de fait , dimensions et cube
    Par hishwest dans le forum Conception/Modélisation
    Réponses: 1
    Dernier message: 04/04/2011, 12h04
  4. Alimentation de la table de faits & dimension temps?
    Par footmaster dans le forum Alimentation
    Réponses: 4
    Dernier message: 16/02/2011, 00h53
  5. Réponses: 2
    Dernier message: 05/06/2009, 21h50

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