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émabdtou
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_dptrenvoie directement les valeurs def_bde_dpt(on peut éventuellement s'en passer)La vue
f_bdt_marketingrenvoie 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_magasinDe faire l'insertion dans
f_bdt_magasinvia un script PL/SQL (qui traite les cas problématiques)De copier les données de
f_bde_marketingdans 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.