Chapitre 1. Rappels sur les bases de données

Avant de commencer à faire un modèle décisionnel pour analyser vos chiffres, il faut déjà savoir à quoi ressemble les bases de données sources.

Prenons l’exemple de la base de données Alizes sur laquelle nous allons travailler.

Dans la base de données source Alizes, nous retrouvons plusieurs tables nommées. Chaque table contient une clé primaire (précédée de l'icône  ) et/ou une ou plusieurs clés secondaires/étrangères (précédée de l'icône ).

Clé primaire = identifiant unique d’une table.

La clé secondaire/étrangère d’une table sera toujours reliée à la clé primaire d’une autre table.

Ce schéma de base de données n’est pas du tout optimisé pour faire du reporting décisionnel. En effet, si nous souhaitons construire un report affichant notre pipe brut par type de compte et par service, notre requête SQL contiendra 4 jointures.

Nous allons donc préparer notre modèle décisionnel en se basant sur le modèle relationnel de la base de données sources.

Pour cela, il suffit de regrouper tout ce qui est de même nature pour créer une seule table. Dans notre exemple, les tables « ACCOUNT », « ACCOUNT_STATUS », « ACCOUNT_FAMILLY », « ACCOUNT_ADDRESS » et « COUNTRY » vont être regroupées dans une et même seule table dans notre base de données décisionnelle.

On fera de même pour les tables « BUSINESS », « BUSINESS_PROBABILITY », « BUSINESS_STEP » et « BUSINESS_STATUS ».

Nous obtiendrons donc le modèle suivant :

Nous retrouvons nos 3 tables issues de notre regroupement de tables de la base de données source.

Dans l’exemple de report de tout à l’heure, il nous fallait 4 jointures sur le modèle relationnel de la base de données Alizes. Sur notre modèle décisionnel il nous faut plus que 2 jointures pour faire notre report comprenant notre pipe brut par type de compte et par service.

Nous avons donc optimisé notre temps d’exécution de requête.

Le modèle que nous venons de construire s’appelle en décisionnel un modèle en étoile.

ghostghostghostghostghost
loading table of contents...