Modèle d'entrepôt de données basé sur un schéma en étoile

Spectrum™ Technology Platform prend en charge la création et la maintenance d'entrepôts de données utilisant un modèle de schéma en étoile. Dans un schéma en étoile, les données sont stockées soit sous forme de faites, à savoir, des descriptions spécifiques d'un événement, soit sous forme d'attributs dimensionnels, à savoir, des descriptions des faits de la table de faits. Les faits changent régulièrement, tandis que les dimensions changent lentement, voire ne changent jamais.

L'illustration suivante montre le modèle d'un schéma en étoile :



Cette illustration indique les principales caractéristiques d'un schéma en étoile : une table de faits, des tables de dimensions et des jointures.

Table de faits

Les tables de faits sont les tables centrales du schéma en étoile de votre entrepôt de données. Les tables de faits contiennent généralement des informations numériques ou quantitatives (appelées mesures) qui décrivent un événement spécifique. Par exemple, si vous disposez d'un entrepôt de données que vous utilisez pour générer un rapport sur le chiffre d'affaires de l'entreprise, votre table de faits contient les colonnes dollar_sales et dollar_cost, comme illustré ci-dessus. En règle générale, les faits sont continuellement évalués et additifs. Un fait « continuellement évalué » signifie qu'il s'agit d'une mesure numérique qui comporte une valeur chaque fois qu'elle est mesurée. Un fait « additif » indique qu'il est résumé par addition.

Les tables de faits contiennent également un ensemble de colonnes qui forment une clé concaténée, ou composite. Chaque colonne de la clé concaténée est constituée d'une clé étrangère tirée de la clé primaire d'une table de dimensions. Par exemple, dans l'illustration ci-dessus, la table de faits contient un colonne product_key qui associe le fait à un produit donné de la table product_dimension.

Le niveau de détail d'une table de faits est dit grain. Chaque ligne de la table de faits doit être enregistrée au même niveau de détail. Dans le diagramme ci-dessus, les mesures de la table de faits sont des totaux quotidiens de ventes en dollars, de ventes en unités et de coûts en dollars pour chaque produit vendu. Le grain est quotidien. Chaque enregistrement de la table de faits représente les ventes totales d'un produit donné dans un magasin en un jour. Chaque nouvelle combinaison de produit, de magasin ou de jour génère un enregistrement différent dans la table de faits.

Les tables de faits sont renseignées à l'aide de données provenant d'une source de données. La source de données peut être un système OLTP ou un entrepôt de données. Spectrum™ Technology Platform réalise une capture d'écran des données sources suivant un calendrier régulier et transfère les données à l'entrepôt de données, généralement à la même heure chaque jour, chaque semaine ou chaque mois.

Un schéma en étoile peut comporter différentes tables de faits. Utilisez un schéma comportant différentes tables de faits pour séparer les ensembles de mesures qui partagent un sous-ensemble commun de tables de dimensions, ou pour suivre des mesures présentant des grains différents.

Table de dimensions

Les tables de dimensions stockent des données qui décrivent les informations de la table de faits. Par exemple, si sales_total varie d'un mois à l'autre, vous pouvez analyser les dimensions pour savoir pourquoi. Une même table de dimensions peut être utilisée avec différentes tables de faits.

Les tables de dimensions comportent des attributs et une clé primaire en une seule partie qui joint la table de dimensions à la table de faits. Les attributs constituent les colonnes de la table de dimensions. La clé primaire en une seule partie vous permet de parcourir rapidement une seule table de dimensions. Le parcours d'une table de dimensions peut vous aider à déterminer la meilleure façon de lancer une requête sur la table de faits.

Les tables de dimensions temporelles sont nécessaires pour réaliser des calculs temporels précis, car il s'avère parfois difficile d'extraire les données de date requises des enregistrements. Par exemple, les enregistrements suivants figurent dans une base de données de ventes. Notez qu'il existe des laps de temps entre les enregistrements. Par exemple, il n'existe aucun enregistrement pour la journée du 04/01/2012.

Date Produit Montant
03/01/2012 Chemise rouge 10,00 €
05/01/2012 Chemise rouge 5,00 €
07/01/2012 Chemise rouge 15,00 €

Si vous lancez une requête sur ces enregistrements et calculez les ventes moyennes par jour, la réponse est 10,00 € (30 €/3 enregistrements).Cependant, ce résultat est incorrect, car les trois enregistrements se sont en fait déroulés sur une période de cinq jours.Si vous disposez d'une table de dimensions temporelles comportant un enregistrement pour chaque jour, vous pouvez joindre cette table à la table ci-dessus pour obtenir le résultat suivant :

Date Produit Montant
03/01/2012 Chemise rouge 10,00 €
04/01/2012
05/01/2012 Chemise rouge 5,00 €
06/01/2012
07/01/2012 Chemise rouge 15,00 €

Si vous calculez les ventes moyennes par jour en fonction de ces enregistrements, vous obtenez la réponse correcte suivante : 6,00 € (30 €/5 jours).

Vous pouvez également prendre en compte dans vos calculs les attributs temporels arbitraires tels que les jours fériés, les weekends et les trimestres.Par exemple, si la date du 06/01/2012 est un jour férié et que seules les ventes moyennes par jour ouvré vous intéressent, la réponse est 7,50 €.

Jointures

Les jointures définissent les relations entre une table de faits et des tables de dimensions dans le schéma en étoile. La clé primaire de la table de dimensions constitue la clé étrangère de la table de faits. La table de faits doit contenir une valeur de clé primaire de chaque table de dimensions. La référence de la clé étrangère à la clé primaire constitue le mécanisme de vérification des valeurs entre les deux tables. Les relations de jointure de ce type garantissent l'intégrité référentielle d'un entrepôt de données. Pour assurer la validité des résultats de requête, il convient de maintenir l'intégrité référentielle.

Chaque enregistrement d'une table de dimensions peut décrire de nombreux enregistrements de la table de faits, faisant ainsi de la cardinalité de jointure des tables de dimensions aux tables de faits une cardinalité de type un-à-plusieurs.

Dans l'illustration ci-dessus, product_key est la clé primaire de la table product_dimension et la clé étrangère de la table sales_fact. Cette jointure représente la relation entre les produits de l'entreprise et ses ventes.