|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre habitué
![]() ![]() Inscription : janvier 2008 Messages : 45 ![]() |
Bonjour,
Je suis nouvelle sur le forum, et j'ai besoin de votre aide. je travaille pour la première fois sur un projet de création d'entrepôt de données à partir d'un schéma en étoile. Il m'est demandé de créer les tables de la bases de données et les dimensions,et j'avais quelques questions à poser: Parmis les tables de ma base de données, j'ai 4 tables : Annee(id_annee), Mois(id_mois...), Semaine(id_semaine...) et Jour(id_jour...). et j'ai une dimension Dim_temps avec une clé primaire cle_date, et d'autres attributs comme annee, mois, semaine et jour .... Je voudrais savoir si je dois mettre les attributs annee, mois, semaine et jour comme des clés étrangères et correspondent à id_annee, id_mois, id_semain et id_jour. J'ai des doutes en ce qui concerne ce point, parce que j'ai lu que les tables de la bases et l'entrepot ne doivent pas être liés physiquement. Merci d'avance. |
|
|
00
|
|
|
#2 |
|
Membre chevronné
![]() Inscription : septembre 2003 Messages : 625 ![]() |
Le plus simple c'est de tout recopier dans la table Dim_temps.
Raison : 1 - ça ne prend pas trop de place d'avoir des doublons dans ce cas (en général) 2 - on est sur que personne ne change les choses dans la BD OLTP qui modifierais sans le vouloir la partie data warehouse 3 - ça coûte moins cher en jointures, et la jointure c'est cher. |
|
|
00
|
|
|
#3 |
|
Membre habitué
![]() ![]() Inscription : janvier 2008 Messages : 45 ![]() |
Bonjour,
Merci Jester pour votre réponse, je me permets de vous poser encore une autre question. Il m'est demandé de réaliser un générateur automatique des données depuis la base de données à l'entrepot de données. Mais comme il faut que j'attende l'insertion dans les 4 tables Annee, Mois, Semaine et Jour avant d'insérer dans la Dim_temps, je ne sais pas si c'est une bonne idée de le faire un trigger. Auriez vous une idée pour le faire? Merci encore. Juliana |
|
|
00
|
|
|
#4 |
|
Membre chevronné
![]() Inscription : septembre 2003 Messages : 625 ![]() |
On parle d'ETL dans ce cas (Extract Transform Load).
Il faudrait savoir à quoi correspondent ces données temporelles, car en général on peut tout générer en avance (je suis assez sur que demain on est le 10 janvier 2008). Il doit être possible de généré dim_temps avec ces informations de base puis de mettre des triggers sur vos tables de BD pour mettre à jour les nuplets de dim_temps avec les informations additionnelles. |
|
|
00
|
|
|
#5 |
|
Membre habitué
![]() ![]() Inscription : janvier 2008 Messages : 45 ![]() |
Bonjour,
J'ai encore un petit problème, j'ai créer mon trigger que j'ai nomé Tigger_temps : create or replace trigger trigger_temps after insert or update on Jour for each row begin insert into Dim_temps Select seq_temps.NEXTVAL, J.id_jour, M.id_mois, A.id_annee, S.id_semaine..... et dès que j'essaye d'insérer dans ma table Jour, j'ai les erreurs suivantes : ORA-04091: table M2TI12.JOUR is mutating, trigger/function may not see it ORA-06512: at "M2TI12.TRIGGER_TEMPS", line 2 ORA-04088: error during execution of trigger 'M2TI12.TRIGGER_TEMPS' Je ne comprends pas trop d'où vient cette erreur. Merci d'avance. |
|
|
00
|
|
|
#6 |
|
Membre chevronné
![]() Inscription : septembre 2003 Messages : 625 ![]() |
Il ne faut pas référencer un n-uplet qu'on modifie.
http://www.databasejournal.com/featu...le.php/3329121 |
|
|
00
|
|
|
#7 |
|
Membre habitué
![]() ![]() Inscription : janvier 2008 Messages : 45 ![]() |
Bonsoir,
Merci Jester pour tes réponses, j'ai résolu le problème grâce à tes réponses. Bon fin de week-end à tout le monde. Juliana |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com