Cas Fantastic : Mise en place de la zone de traitement
L'objectif est à présent de créer la BDT en RO. Les noms des tables et vues seront préfixés :
f_
dans le schémabdt
ou
f_bdt_
si vous ne disposez que d'un seul schéma pour toutes vos BD.
Question
Créez une table RO f_bdt_catalogue
avec les attributs de la vue catalogue f_bde_catalogue
et une méthode pour chaque attribut de la dimension produit
..
Indice
Les méthodes ne sont pas implémentées pour le moment.
Indice
Pensez à déclarer les contraintes et index explicitement pour pouvoir les désactiver plus tard, avant les chargements massifs.
Question
Créez une table RO f_bdt_magasin
destinée à recevoir la jointure des tables associées à marketing.ods
et departementsInsee2003.txt
.
Indice
Les départements ne sont pas identifiés exactement de la même façon dans les deux tables f_bde_dpt
et f_bde_marketing
, il n'est donc pas possible des les joindre directement.
Une solution consiste à créer deux vues f_bdt_dpt
et f_bdt_marketing
qui vont permettre d'ajuster les valeurs avant la jointure. Par exemple :
La vue
f_bdt_dpt
renvoie directement les valeurs def_bde_dpt
(on peut éventuellement s'en passer)La vue
f_bdt_marketing
renvoie des valeurs corrigées qui peuvent être jointes àf_bdt_dpt
D'autres solutions auraient été :
De gérer la modification directement dans la requête INSERT vers
f_bdt_magasin
De faire l'insertion dans
f_bdt_magasin
via un script PL/SQL (qui traite les cas problématiques)De copier les données de
f_bde_marketing
dans une tablef_bdt_marketing
, d'exécuter un script corrigeant les données, puis de faire le INSERT...
Indice
Pour traiter le problème des numéros de département qui sont de type 1, 2 ... au lieu de 01, 02... on peut utiliser un CASE dans un SELECT :
SELECT
CASE WHEN TO_NUMBER(dpt)<10 THEN '0'||TO_NUMBER(dpt) ELSE dpt END AS dpt,
...
FROM f_bde_marketing;
Question
Créez une table RO f_bdt_date
avec un seul attribut qui recevra les valeurs d'un select distinct dat ...
depuis la table externe permettant d'accéder à data.csv
.
Question
Créez une table RO f_bdt_vente
pour alimenter la table des faits.
Question
Question
Implémentez une première version des méthodes qui ne fera aucun traitement pour le moment : la méthode retourne soit un attribut sans transformation, soit une constante si ce n'est pas possible.