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éma bdt

  • 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 de f_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 table f_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 :

1
SELECT
2
CASE WHEN TO_NUMBER(dpt)<10 THEN '0'||TO_NUMBER(dpt) ELSE dpt END AS dpt,
3
...
4
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

Écrivez la procédure d'import BDE->BDT en suivant bien les étapes du processus de chargement.

Indice

Désactivez vos contraintes et index avant le chargement.

Indice

Vérifiez votre import (pas de rejet, vérification du nombre de lignes...)

Indice

Penser à valider votre transaction (COMMIT).

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.