samedi, janvier 05, 2013

Surrogate Key (Clé de substitution)

Le modèle dimensionnel est la cible ultime de tout système ETL. Justement il permet d'alimenter les tables de faits et de dimensions. 

Tout système ETL doit donc permettre de gérer un minimum de spécificités du modèle dimensionnel. Référez-vous au 38 sous-systèmes d'un système ETL dans l'article suivant :
Les 38 sous-systèmes d'un système ETL

Parmi les sous-systèmes d'un ETL on retrouve le sous-système 9 intitulé Système de gestion des clés de substitution (surrogate key).

Revenons maintenant aux définitions, et essayons de comprendre qu'est ce qu'une clé de substitution (Surrogate Key) :



 La Définition

Une clé de substitution (Surrogate key) est une clé non intelligente utilisée afin de substituer la clé naturelle (Business Key) qui provient des systèmes opérationnels. La clé naturelle est en général composée de plusieurs colonnes.
La clé de substitution ne doit pas être confondue avec la clé artificielle attribuée par les systèmes opérationnels. Du fait qu’il est parfois (voire même souvent) impossible de trouver une clé naturelle pour les entités telles que client, employé, alors on crée une clé artificielle dans le système opérationnel afin d’identifier d’une façon unique un élément de l’entité: client_id pour l’entité client, et emp_id pour l’entité employé. Ces clés artificielles ne doivent pas changer dans le temps pour un client par exemple !
La clé de substitution est alors utilisée dans un entrepôt de données pour remplacer et compléter la clé artificielle du système opérationnel afin de rendre un élément unique dans la dimension.

A quoi sert une clé de substitution ?

Remplacer la clé artificielle ou naturelle : Effectivement une clé de substitution remplace la clé artificielle en terme d’utilisation, ce n’est plus la clé naturelle qui sera utilisé pour faire les jointures avec les tables de faits ou les autres tables de dimension (niveaux hiérarchiques dans le cas d’une dimension en flocons de neiges);

Compléter l’information : La clé de substitution n’a aucun sens en terme d’affaire, elle est utilisée dans l’entrepôt de données seulement ! et on aura toujours besoin de la clé artificielle ou naturelle dans la dimension pour pouvoir faire la correspondance entre l’élément de dimension (un client par exemple) dans l’entrepôt de données et l’élément de la table des clients dans le système opérationnel.

Les avantages 

Performance : Accélère l’accès aux données du moment ou l’on va utiliser un index numérique vu que le type de données de la clé de substitution est numérique.
Indépendance du système source : On ne peut garantir que la clé d’affaire ne change pas dans les systèmes sources.
Historique des changements et granularité infinie : Si l’on désire garder l’historique des changements de la dimension selon certains critères (SCD) nous devons gérer la clé de substitution. Nous nous retrouverons facilement avec plusieurs enregistrements de la même clé d’affaire dans la dimension.


Aucun commentaire: