我想了解OLAP和數據倉庫,並且我對關係和維度建模之間的差異感到困惑。維度建模基本上是關係建模,但允許冗餘/非規範化的數據?關係與維度數據庫有什麼不同?
例如,假設我有(產品,城市,#銷售)的歷史銷售數據。據我所知,以下將是一個關係點的觀點:
Product | City | # Sales Apples, San Francisco, 400 Apples, Boston, 700 Apples, Seattle, 600 Oranges, San Francisco, 550 Oranges, Boston, 500 Oranges, Seattle, 600
儘管下面是更多的三維點的視圖:
Product | San Francisco | Boston | Seattle Apples, 400, 700, 600 Oranges, 550, 500, 600
但似乎這兩種觀點仍然會以相同的星型模式實現:
Fact table: Product ID, Region ID, # Sales Product dimension: Product ID, Product Name City dimension: City ID, City Name
直到你開始添加一些額外的細節到每個維度的差異開始雨後春筍般冒出來它不是。舉例來說,如果你想跟蹤的區域爲好,關係型數據庫傾向於有一個單獨的區域表,以確保一切歸一化:
City dimension: City ID, City Name, Region ID Region dimension: Region ID, Region Name, Region Manager, # Regional Stores
雖然維庫將允許非規範化,以保持區域數據在城市維度內,以便更容易地分片數據:
City dimension: City ID, City Name, Region Name, Region Manager, # Regional Stores
這是正確的嗎?
閱讀OLTP和OLAP之間的差異。 http://datawarehouse4u.info/OLTP-vs-OLAP.html – Oded 2010-05-09 18:08:31
是的,我已經閱讀了差異。我感到困惑的部分是當某些事情提到OLAP通常涉及維度而不是關係型數據庫時。尺寸是否僅僅指「非標準化+星形/雪花」方面?或者還有「關係型」明星/雪花模式嗎? – grautur 2010-05-09 18:37:55