Clés artificielles
Méthode :
Pour introduire des clés artificielles pour identifier les dimensions :
Dans la zone de transformation :
ajouter à chaque dimension un attribut
pk
ajouter une méthode
getPk()
qui renvoiepk
(supprimer la méthode qui renvoyait initialement la clé naturelle si elle n'est plus nécessaire par ailleurs)
À chaque ajout d'un nouvel enregistrement dans une dimension
générer une clé artificielle dans
pk
(à l'aide d'une séquence par exemple)
Lors de l'ajout des dimensions dans le data warehouse
utiliser
getPk()
pour identifier les enregistrements
Lors de l'ajout des faits, il faut substituer les clés
joindre les faits avec les dimensions
appeler les méthodes
getPk()
de chaque dimension
Exemple :
Attention :
Il faut mémoriser la correspondance entre la clé identifiant la dimension dans le système transactionnel et la clé artificielle dans le data warehouse.
Pour cela :
soit les tables sont persistantes dans la zone T
soit les clés du système transactionnel doivent être conservées dans le DW
Attention : Optimisation
Les jointures à présent nécessaires diminuent les performances de chargement
Une indexation adéquate est requise
Rappel :
Les faits n'ont pas besoin d'être identifiés.
Complément : OID
Sous Oracle en RO, il est possible d'utiliser les OID à la place de clés artificielles.
Le problème sera que les OID ne sont connus qu'après insertion dans la DB, ils ne peuvent être créés dans la BDT puis transféré dans le DW.
Il faut déclarer les tables du DW en mode RO, en conservant les clés d'origine
Puis substituer les clés étrangères par des REF dans la table des faits, en faisant la jointure entre la table des faits de la BDT avec les dimensions du DW