Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > ETL
ETL Le Forum d'entraide ETL (Extract Transform Load) et Datawarehouse : DataStage, SunOpsis, Data Integrator, Informatica, OWB, Data Manager, Talend Open Studio,...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/01/2008, 15h20   #1
Membre habitué
 
Inscription : janvier 2008
Messages : 45
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2008
Messages : 45
Points : 136
Points : 136
Par défaut Bases de données et Entrepôt de données

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.
Juliana est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2008, 18h56   #2
Membre chevronné
 
Avatar de Jester
 
Inscription : septembre 2003
Messages : 625
Détails du profil
Informations forums :
Inscription : septembre 2003
Messages : 625
Points : 634
Points : 634
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.
Jester est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2008, 19h44   #3
Membre habitué
 
Inscription : janvier 2008
Messages : 45
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2008
Messages : 45
Points : 136
Points : 136
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
Juliana est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2008, 07h27   #4
Membre chevronné
 
Avatar de Jester
 
Inscription : septembre 2003
Messages : 625
Détails du profil
Informations forums :
Inscription : septembre 2003
Messages : 625
Points : 634
Points : 634
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.
Jester est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2008, 12h09   #5
Membre habitué
 
Inscription : janvier 2008
Messages : 45
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2008
Messages : 45
Points : 136
Points : 136
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.
Juliana est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2008, 18h29   #6
Membre chevronné
 
Avatar de Jester
 
Inscription : septembre 2003
Messages : 625
Détails du profil
Informations forums :
Inscription : septembre 2003
Messages : 625
Points : 634
Points : 634
Il ne faut pas référencer un n-uplet qu'on modifie.

http://www.databasejournal.com/featu...le.php/3329121
Jester est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2008, 19h21   #7
Membre habitué
 
Inscription : janvier 2008
Messages : 45
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2008
Messages : 45
Points : 136
Points : 136
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
Juliana est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h07.


 
 
 
 
Partenaires

Hébergement Web