My first Publication Agile-Data-Warehouse-Design-eBook | Page 86
Modeling Business Dimensions
65
Figure 3-3
Product dimension
populated with detail
about detail
If you are modeling directly into (projected) spreadsheet BEAM✲ tables, as in the
figure examples in this chapter, freeze the dimension subject and business key
columns, as you would the primary details of events, to keep them visible as you
scroll horizontally to add new attributes.
Assuming that most of the attributes that stakeholders suggest are within the
current scope, your next task is to check that they belong in the current dimension.
You are looking for attributes that have a single value for each dimension member
at any one moment in time (including “now”): These are attributes that have a one-
to-one (1:1) or a one-to-many (1:M) relationship with the dimension subject when
you disregard history. You will consider historical values shortly when you ask for
change stories. For now, you check each new attribute by asking the following
“moment-in-time” question:
Can a [dimension name] have more than one
[new attribute name] at any one moment in time?
The question is carefully phrased so that you are checking for the condition you
don’t want, so if the answer is NO then the attribute belongs. NO is good! It tells
you that the attribute does not have a M:M or M:1 relationship with the dimension,
both of which would rule it out. For example, you might ask:
Can a customer have more than one customer type
at any one moment in time?
Check that the new
attribute has only
one value for each
dimension member