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