Not all surrogate keys in the fact table define the fact table grain.
For example, if you have if you have daily account balance table, the grain of the fact table 1 row for each account, every day. So there are only 2 surrogate keys that define the grain of the fact table:
- Snapshot Date Key
- Account Key
If we have Customer Key and Product Type Key in that fact table, they don’t form part of the grain:
- Snapshot Date Key – part of grain
- Account Key – part of grain
- Customer Key – not part of grain
- Product Type Key – not part of grain
Say that for 27th June 2012 we loaded 1000 rows, and ditto for 28th June 2012. In the BI tool (say Cognos) if we put Snapshot Date, Account Number and Account Balance, we will get 1000 rows. If we add Customer Number, we will still get 1000 rows. If we add Product Type, we still get 1000 rows.
So my point here is: not every surrogate key in the fact table is part of the fact table grain.