Question

I have a question regarding a new Cube i am starting.

The cube is related to a risk management process. the fact table wont hold any facts, just the list of Risks present.

I have a question regarding Dimensions to this table, there are a lot of attributes for a Risk ex:

Probability of Occurrence Before Project Start: (High, Med, Low)
Probability of Occurrence During Project : (High, Med, Low)
Probability of Occurrence After Project End: (High, Med, Low)

Severity of Risk : ( High, Med, Low)
Strategy: (Accept, Reduce, Share)

I am not sure if i should treat these types of attributes as Dimension or just leave them as part of the Fact Row. Then users can filter by the values.

And if they should be Dimensions how to handle them:
1) Fact Dimension ( degenerate dimensions)
2) New Dimensions ( move data into its own tables)
3) Combine Dimension of similar concept, ex: Probability of Occurrence into one Dimension and add a Type Attribute [note: there are alot of these types of attributes that i did not mention]

Any help is appreciated

Was it helpful?

Solution

If you have a lot of columns with values High, Medium, Low then I would suggest to create separate dimension where you can have for example the following attribues:

 ProbabilityKey
 ProbabilityLevelShort (H,M,L)
 ProbabilityLevelLong (High, Medium, Low)
 ProbabilityLevelInt (1,2,3)
 ProbabilityLevelPct (0,0.5,1)
 ProbabilityLevelPctDesc (0%, 50%, 100%)

This will help on reporting level where you will frequently need to transform these values into some labels or perform other type of analysis (e.g. sum of ProbabilityLevelInt). The final dimension can look like (only first three colums):

risk_dimension(ProbabilityKey,ProbabilityLevelShort,ProbabilityLevelLong)
1     H    High
2     M    Medium
3     L    Low

You can do pretty much the same with strategy column. If you do not have too many types of columns, you can create junk dimension with combination of probability level and strategy, something like:

junk_risk_dimension(ProbabilityKey,ProbabilityLevelShort,ProbabilityLevelLong,StrategyLong)
1     H    High       Accept
2     M    Medium     Accept
3     L    Low        Accept
4     H    High       Reduce
5     M    Medium     Reduce
6     L    Low        Reduce
7     H    High       Share
8     M    Medium     Share
9     L    Low        Share

Then, in your fact table you have just pointer to this junk dimension:

risk_fact_table
record_id   dim_key  some_other_key
1            1
2            1
3            2
4            3
5            4
6            5

We will need more detailed list of columns if you need more detailed answer.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top