Friday, February 24, 2012

Attribute Relationship ?

I think understand how and why we need to setup attribute relationship but I'm probably missing one important thing here...

If I have the following hierarchies in my dimension:

Circulaire > Segment > Promotion

Circulaire > Promotion

Logically I should have defined my attribute relationship like this:

Circulaire

Segment

- Circulaire

Promotion

- Segment

- Circulaire

Promotion Key

- Promotion

This result in the following error:

This dimension contains one or more redundant attribute relationships. These relationships may prevent data from being aggregated when a non-key attribute is used as a granularity attribute in a cube. Verify the following relationships and delete those that are not needed: [Code Promotion] -> [Promotion - Circulaire].

What is the best practice to manage those issues with attribute relationship? I want to make sure that all my hierarchies are designed for best performance.

On the same note how should we set-up attribute relationship when multiple hierarchies are using the same level in different order?

LEVEL 1 > LEVEL 2 > LEVEL 3 > LEVEL 4

LEVEL 1 > LEVEL 3 > LEVEL 2 > LEVEL 4

thanks,

In the 1st scenario, since Segment directly relates to Promotion and Circulaire directly relates to Segment, relating Circulaire to Promotion is redundant. This is similar to a Year->Month->Day hierarchy, where relating Year to Day directly would be redundant.

In the 2nd scenario, I assume that there are 2 alternate hierarchies for user navigation. They can't both be natural (strong) hierachies (unless there is a strict 1:1 relationship between Level 2 and Level 3 members). So attribute relationships should only reflect strict functional dependencies, not navigational convenience. This paper discusses attribute relationships in more detail:

http://www.sqlserveranalysisservices.com/OLAPPapers/AttributeRelationships.htm

|||Thank you

No comments:

Post a Comment