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

MS SQL Server Discussion :

Modèle dimensionnel dans une base relationelle


Sujet :

MS SQL Server

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2008
    Messages
    699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Octobre 2008
    Messages : 699
    Points : 586
    Points
    586
    Par défaut Modèle dimensionnel dans une base relationelle
    Bonjour,

    Voilà ma question :
    Dans le cadre de la création d'un data warehouse on parle souvent (toujours ?) de modèle dimensionnel.
    Ce qui me travaille c'est que peut importe la modélisation choisie le moteur SQL Server reste relationnel (vrai ?).
    Du coup un data warehouse sans aucune contrainte référentielle revient à géré un gros tas de fichier plat, si ce n'est que tout est centraliser dans une DB.

    En cherchant de l'information sur la nuance entre relationnel et dimensionnel dans un data warehouse, je suis tomber sur un article qui parle du moteur SQL Relationnel.
    Principalement de sa capacité à identifier une modélisation dimensionnelle et d'optimiser le plan d’exécution pour exploiter ce modèle.

    Je n'arrive plus à le retrouver.

    Cet article contenait une série de recommandations sur le designe des tables de fait et de dimensions pour que l'optimiser de requête les identifie.
    J'ai essayer tout un tas de mots clef dans google pour le retrouver, mais sans succès.

    Je suis entrain de rédiger un rapport et je souhaiterais mettre cette article comme référence.

    Si qqun à un lient similaire, je suis preneur.

    Merci, a+

  2. #2
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Décembre 2007
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Décembre 2007
    Messages : 327
    Points : 674
    Points
    674
    Par défaut
    Bonjour,

    Pour la partie modélisation en étoile ou flocon d'un DW dans un SGBDR permet de préparer les briques pour l'arriver du cube qui permettra de réaliser les agrégations mais pas que ...

    Cela permet d'optimiser aussi le système de recherche en créant des clés primaires auto généré qui permettent de faire la liaison entre la ou les tables de faits et les dimensions dépendante via des clés créé en entier généralement d'ou l'utilisation d'un plan approprié.

    Vu la volumétrie des données si le model est bien conçu et que l'architecture le supporte grâce a ce système le parallélisme peut être utilisé, d'ailleurs Microsoft a sortie une version spécifique de SQL Server pour répondre a cette demande (bon cette version n'est plus d'actualité avec toutes les architectures existantes dans Azure) mais l'article suivant en explique les grands principes:

    https://blogs.technet.microsoft.com/...warehouse-pdw/

    Si vous souhaitez travailler un peu plus sur la modélisation il existe un article très intéressant sur le sujet :

    http://grim.developpez.com/cours/bus...datawarehouse/

    A+

    Julien

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 850
    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 850
    Points : 52 984
    Points
    52 984
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par Donpi Voir le message
    Bonjour,

    Voilà ma question :
    Dans le cadre de la création d'un data warehouse on parle souvent (toujours ?) de modèle dimensionnel.
    Ce qui me travaille c'est que peut importe la modélisation choisie le moteur SQL Server reste relationnel (vrai ?).
    Oui, pour un DW, non pour un cube (datamart)

    Du coup un data warehouse sans aucune contrainte référentielle revient à géré un gros tas de fichier plat, si ce n'est que tout est centraliser dans une DB.
    Vous commettez une énorme erreur. Il faut impérativement conserver les contraintes d'IR sinon, votre DW va connaître de multiples problèmes de performance et de pertinence dans le calcul des cubes ! Bien entendu si vos données en entrée ne sont pas relationnelle, il faudra commencer par nettoyer les données bancales s'il y en a.... Cela a un coût et il est courant que le cout de nettoyage des données représente plus de 50 % du cout gobal d'une bonne BI !...

    A +

  4. #4
    Membre actif
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Avril 2006
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 141
    Points : 210
    Points
    210
    Par défaut
    Bonjour,

    Si vous souhaitez nettoyer vos données mortes (des relations non schématisé mais existante qui on des orphelins),
    j'ai un outils qui le fait très bien. ils les recherchent et vous proposent ensuite de les supprimer.
    Contacter moi en privé si vous êtes intéressé.

    Cordialement,

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 850
    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 850
    Points : 52 984
    Points
    52 984
    Billets dans le blog
    6
    Par défaut
    Je ne vois pas trop l'intérêt de votre remarque vu que dans SQL Server il y a SSIS qui est l'ETL de Microsoft inclus dans la licence et qui fait cela très bien, et en plus permet de recréer les liens avec des algorithmes avancés, notamment en logique floue (fuzzy logic lookup) par exemple...
    https://www.codeproject.com/Tips/528...ing-dirty-data

    A +

  6. #6
    Membre actif
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Avril 2006
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 141
    Points : 210
    Points
    210
    Par défaut
    j'ai regardé attentivement votre lien.

    Mais ou je me suis mal exprimé ou je n'es pas tout compris de votre lien.
    votre exemple permet de retrouver des données entre 2 tables même si elle ne sont pas totalement identique. ensuite vous avez un pourcentage de correspondance, libre à vous de traité cela.
    mais pour traité une table, vue le script à faire vous en avez pour des semaines si vous avez une base de donnée conséquente (plusieurs centaine de table par exemple)

    Mon logiciel ne fait pas du tout sa. les colonnes qui contienne des clef doivent déjà être déclare. exemple vous prenez une base de donnée mysql ancienne qui ne contient pas de clef étrangère (comme certain logiciel open source mis a disposition).
    ou tout autre base de donnée ou les developpeur n'ont pas déclarer de clef étrangère ... souvent sur les vielle base de donnée.

    Mon logiciel vas dans un premier temps rechercher toute les clef étrangère dans l’intégralité de toute les tables. ensuite il va créé des clef virtuel (juste pour lui), on parle de 2 click et 2mn pour lancer l'action au maximum, je vous laisse imaginé le temps a construire le script dans SSIS si vous avez des centaine de tables avec des milliers de relations.

    Puis dans une deuxième étape vous lancez l'analyse des données et il recherche toute les données orpheline qui empêcherais d'appliquer ces clefs étrangères.
    Puis il vous génère le script pour rajouté les clef.

    Et vous avez une vielle base de donnée toute propre !
    on parle au maximum d'une dizaine de click pour réaliser toute ces opérations.

  7. #7
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2008
    Messages
    699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Octobre 2008
    Messages : 699
    Points : 586
    Points
    586
    Par défaut
    Ce que moi je ne comprend pas, c'est comment on se trouve avec des données orphelines avec des contraintes d’intégrité référentielles ?

    Et surtout, quand bien même ça serait le cas, quel professionnel utiliserait une appli pour nettoyer ses données mortes par rapport à une analyse en profondeur ?

    Je rappelle que ça n'est carrément pas le sujet du post.

    A+

  8. #8
    Membre actif
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Avril 2006
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 141
    Points : 210
    Points
    210
    Par défaut
    Quand je lis "sans aucune contrainte référentielle" dans votre post je suppose que vous avez peu être cette problématique.
    C’était pour vous rendre service et c’était gratuit, vous n'en avez pas besoin pas de soucis.

    Comme expliqué plus haut certaines bases de données n'ont pas de contrainte de clef étrangère (des outils qui sont commercialisé et que vous ne pouvez modifier sans perte de garantie et de maintenance) ,
    cet outil vous permet de rechercher les clefs étrangères et plein d'autres choses. L'outil vous les recherche et vous les affiche, ensuite libre à vous de les supprimer. Et mon outil fait une analyse en profondeur, puisqu'il recherche dans l'intégralité de toutes les données de la base de données pour reconstruire les relations.

Discussions similaires

  1. [Oracle] Recherche nulle dans une base et affichage
    Par GLDavid dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 27/04/2006, 01h01
  2. intégrer un fichier image dans une base de donnée?
    Par Lody dans le forum Requêtes
    Réponses: 9
    Dernier message: 16/03/2006, 19h08
  3. bug dans une base Access
    Par bizouard dans le forum Access
    Réponses: 5
    Dernier message: 29/12/2003, 12h41
  4. Réponses: 3
    Dernier message: 12/11/2003, 00h34
  5. [Strategie][Java][XML] Import dans une base de données
    Par nad dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 23/09/2002, 11h12

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