設計和開發的維度模型應該代表業務流程獲得的最詳細的原子信息。
DW/BI系統幾乎總是要求以盡可能精細的粒度來表達數據,這不是因為需要查詢單個行,而是因為查詢需要以非常精確的方式分割細節。
詳細的粒度描述決定了事實表的主要維度。然後,您可以向事實表中添加更多的維度,只要這些額外的維度自然地采用由主維度合並的值。如果附加的維度會引起其他與粒度不壹致的事情,那麽取消維度或者重新考慮粒度聲明。
日期維度表中的每壹列都由壹行代表的特定日期來定義。星期幾列包含壹天的名稱,如星期壹。使用此列可創建報告來比較周壹和周日的業務。日期號是日歷月列每個月從1開始,根據月份不同到28,29,30,31結束。該列用於比較每月同壹天的情況。同樣,您可以使用年月數(1...12).所有這些整數都支持跨月或跨年的簡單日期計算。對於報告,您需要添加壹個長徽標和壹個縮寫徽標。例如,您希望月份名稱屬性包含壹個值,如1 month。另外,年月(YYYY-MM)列作為報表的表頭非常有效。您可能還需要季度編號(Q1...Q4)和年季度屬性,如2013-Q1。您可以包含具有相同財務周期但不同日歷周期的列。
我理解他的意思是,如果把這些字段提供給用戶,用戶將無法用SQL查詢。我的問題是,實際操作中,內部日期維度會這麽大,為什麽不直接在SQL日期函數中查詢?妳不是正好有壹個有特殊含義的字段的外鍵嗎?
促銷維度可能是零售模式中最有趣的維度。促銷維度描述銷售商品的促銷條件。促銷條件包括臨時降價、終端渠道展示、報紙廣告、禮券等。促銷維度通常被認為是因果維度,因為它描述了可能導致產品銷售變化的因素。總部和商店的商業分析師都希望能夠確定促銷是否有效。晉升的判斷基於以下壹個或多個因素:
因果關系的維度屬性是否應該在維度表中?
空外鍵和空屬性的空事實的處理方法
通常,許多銷售交易都包括沒有促銷的產品。顧客不只是把促銷產品放在購物車裏。當然,妳希望他們的購物車裏裝滿全價購買的商品。促銷維度必須包含唯壹鍵為0或-1的行,這表示沒有促銷條件,以避免事實表中的促銷鍵為空。如果將null值放入事實表中已聲明為外鍵的列中,則違反了參照完整性的要求。此外,參考完整性警告,包含空值的鍵是用戶混淆的主要原因,因為它們無法與空值連接。
有時我們可能會在事實表中遇到空值。使事實表非空的方法可以通過聚合函數來處理,如SUM、MIN、MAX、COUNT和AVG。如果用零值替換它,可能會影響聚合計算。
支架表(壹種雪花型)
蜈蚣桌
大量的維度通常說明有些維度不是完全獨立的,應該合並成壹個維度。將同壹級別的元素表示為事實表中的不同維度是維度建模中的常見錯誤。