2009-06-25 69 views
3

難道fact table根本沒有鑰匙嗎? 或 如果可以,這是一個很好的設計?如果事實數據表沒有任何維度,那麼分析的基礎是什麼?維度建模:事實表是否有外鍵?

如果一個事實表只有主鍵和沒有外鍵會怎麼樣?

+0

事實表是數據倉庫/維度建模中的一個常用術語,但並不是每個人都熟悉這一點。我會添加一個標籤和一個鏈接。 – 2009-06-25 19:37:59

回答

2

說得不正確,外鍵將您鏈接到將事實表分爲不同類別和子類別的表。

因此,如果事實表是

create table stores (id, kindOfStore, sales) 

然後kindOfStore將是你dimension-如果是,那麼你可能會說,對於kindOfStore一個單獨的表是矯枉過正(除了說那種浪費的空間店內=「民以食爲天」,而不是「Kind_id = 8」的。如果你有子類,它是有意義的鏈接到diminsion表像

create table kindOfStore (id, Variety, Specialization, Subspecialization) 

這將是浪費空間的空間明智的存儲品種,專業化和事實表中的亞專業化。

生成的模式是星型模式,數據倉庫經過優化以處理這些模式,儘管更新更快的數據倉庫引擎看起來如此之快以至於即使是非星型模式也非常快。

與OLTP數據庫相比,Datawarehouses denormalize(使用較少的表)事實表,但絕不意味着您應該爭取一個表的解決方案。

+0

好的......我明白,即使沒有維度表格,事實表本身很好的被分析。如果有維度表並且沒有外鍵輸入事實表會怎麼樣?這完全怪異,我認爲...... – sagar 2009-06-25 19:56:07

0

在一個好的設計中,每個表都會有一個主鍵。

使用外鍵將取決於您試圖約束表值的方式。如果您想要更具體的答案,請提供有關您的情況的更具體信息。

+0

我正在調查一個事實表,其中一個我發現它很可疑。所以,我想看看它從哪個維度表中提取價值。出於這個原因,我在SSAS中創建了一個新項目,並創建了一個新的DSV(我不知道是否可以從其他任何方法中看到事實表和依賴關係,我可以想到SSMS,但我可以看到事實表中的外鍵和外鍵。所以Visual Studio DSV對我來說是一種可靠的方法),並且從添加/刪除對話框中,我添加了事實表,但是當我點擊相關表時,出現了非... – sagar 2009-06-25 19:43:40

2

二維建模旨在允許事實上有額外的細節,描述可以「彙總」並彙總爲有意義的總結信息的屬性。這是數據倉庫的一個特點(主要是READ環境),但也可以將其置於OLTP中,根據主要事實建模真正的交易數據(將交易視爲銀行賬戶,可能是金融交易,票據和客戶的墓碑修訂 - 所有這些都與銀行賬戶實體有一個共同的鏈接)。

總理之間的細節通常掛起的事實是時間和地點的尺寸。

如果你的事實不存在於時間和空間中,它可能會在沒有這些維度的條目下存在(雖然我不知道什麼時候會有這樣的事實)。

如果更進一步,其他維度很小並且包含(意思是沒有其他事實共享它們),那麼您可以將它們作爲ENUM滾動到原始事實表中。

最終結果將是一個單一的事實表,其中多個小維度表示爲ENUMS。

但是,對於一些非常奇怪的數據來說,這將是一個非常奇怪的例子...

0

我記得的情況是,當您使用包含用於維列表目的的屬性的表並且該工具需要將表或別名設置/標記/識別爲事實表時。

想象一下,銷售數據庫,機會表包含很長的屬性列表,對嗎?您的客戶說:「我想獲得所有機會名稱,ID和被指定爲oppty所有者的人員列表......」然後,您可以創建別名或同義詞或在邏輯設計中映射相同的表格。

退化維可能是另一種情況...所以...儘管表是一個真正的事實表,但所提供的功能幾乎相同,不是嗎?

相關問題