Best Practice for Dimensional Modeling
1. Before designing Dimensional modeling, it should be keep in mind, that Datawarehouse should be fast and secure able. No matter it is ROLAP / MOLAP or HOLAP.
2. Dimensional model either be a star schema (simple and flexible) or snow flake (More complex and normalized as compare to star).
But in the real it is combination of both star and snow-flake galaxy schema.
3. Datawareshoue should be designed in terms of group of multiple data marts depends on different-2 business process.
4. Confirmed dimension should be handled separately, that are re-usable for all the data marts.
5. Proper relationship defined in between fact and dimensions and fact and fact, if we use degenerated dimension.
6. Use junk dimension as a consolidation of all small-2 rarely changed dimensions like flag values, gender etc.
7. Proper and truly relationship defined between attributes and level and there hierarchy.
8. More focus to define attribute relationship that can either be fixed or Regid.
9. Use calculated member instead calculated column, as calculation in calculated members are based on aggregated data as well as no need of any extra space to store.
10. Different periodic measure groups like FactWeekly, FactMonthly, FactYearly for different-2 reporting purpose.
11. Avoid snapshoting in fact table if possible, Use additive or semi-additive facts.
12. Maintain dimensions based on different-2 SCDs required. Don't go to SCD2 (Historical) always. Try to use SCD4 (Rapidly Changing dimension)
to separate rarely changing dimension attribute with frequently changing dimension attribute.
13. Define different-2 partitions per measure group, Proper aggregation.
14. Define separate process methods based on the nature of dimenson and fact. for example date or time dimension may process separately that can either be yearly or two.
(Process full, Process update, Process clear, Process delete)
15. Design for Process incremental instead of full. Although there is no pre-defined functionality for incremental process in SSAS, but by adding some date column and maintain
process control table, we can configure incremental process of our cube.