2010-08-24 5 views
6

je besoin d'un processus mental pour concevoir une base de données OLAP ...Comment concevez-vous une base de données OLAP?

Essentiellement pour ce serait relationnelle standard (vaguement):

Identify Entities 
Identify Relationships 
Identify Properties of Entities 

Pour chaque propriété:

Ensure property can be related to only one entity 
Ensure property is directly related to entity 

Pour Bases de données OLAP, je comprends la terminologie, la motivation et la structure; Cependant, je n'ai aucune idée de la façon de décomposer mon modèle relationnel en un modèle OLAP.

Répondre

8

Identifier les cotes (ou les cotes) Il s'agit de tout ce que vous souhaitez analyser/regrouper. Chaque table de la base de données source est une dimension potentielle. Les dimensions doivent être hiérarchiques si possible, par ex. votre dimension Date doit avoir une hiérarchie d'année, de mois et de jour. De même, l'emplacement doit avoir par exemple la hiérarchie Pays, Région, Ville. Cela permettra à votre outil OLAP de calculer plus efficacement les agrégations. Identifiez les mesures Il s'agit des indicateurs de performance clés ou des informations numériques réelles que votre client souhaite voir. Ces indicateurs sont généralement susceptibles d'être agrégés. Par conséquent, tout champ numérique non clé et non clé de la base de données source est une mesure potentielle.

Organiser dans un schéma en étoile, avec des mesures dans la table centrale 'Fact', et des relations FK avec les tables de dimension applicables. Les mesures doivent être stockées au niveau de hiérarchie de dimension le plus bas.

Identifiez le «grain» de la table de faits, c'est essentiellement le «niveau de détail» tenu. Il est généralement déterminé par les exigences de reporting, la granularité des données disponibles dans la source et les exigences de performance de la solution de reporting. Vous pouvez identifier le grain au fur et à mesure ou vous pouvez l'aborder comme une dernière étape une fois toutes les données importantes identifiées . J'ai tendance à avoir une dernière étape pour assurer la cohérence du grain entre mes tables de faits.

La dernière étape consiste à identifier les dimensions à évolution lente et les exigences pour celles-ci. Par exemple, si la dimension client inclut un élément de leur adresse et qu'ils se déplacent, comment cela va-t-il être géré?

+0

Que sont les "By"? –

+3

Tout ce que vous voulez grouper ou analyser vos données 'BY', argot vraiment ... – stevenrcfox

+0

Les champs non-numériques peuvent être agrégés aussi avec la fonction de compte, non? – dpp

3

Un point important dans l'identification des dimensions et des mesures est la cardinalité finale que vous choisissez pour le modèle. Supposons que votre entrée de données de base de données relationnelle est pendant toute la journée. Peut-être n'avez-vous pas besoin de visualiser ou d'agréger les mesures par heure, même le jour. Vous pouvez choisir une granularité hebdomadaire ou mensuelle, etc.

+1

Merci, C'est un point utile que je n'ai pas inclus dans ma réponse. – stevenrcfox