2016-07-25 36 views
1

我是數據倉庫的新手,我一直在閱讀文章和觀看關於原理的視頻,但是我對如何將下面的設計轉換爲星型模式。來自3NF的星型模式設計

在所有的例子中,我看到事實表引用了昏暗的表,所以我假設questionId和responseId將成爲事實表的一部分?任何意見將不勝感激。

enter image description here

+0

基於基數,「響應」對所有事物都是_many_,所以它顯然是一個事實表。如果「問題」是一個有限的文本問題列表,那麼顯然它是一個維度表。你通常會將'問題'與'選項'結合起來,形成一個關於問題的非規範化維度。一旦你結合你的選擇和問題,你實際上最終有三個星形模式的表。 –

+0

我猜你的事實表中的措施是'問題計數','正確計數','錯誤計數' –

回答

2

我看不到的那一刻(阻止我的防火牆@辦公室)的圖像。但我會盡力給你一些想法。

總體思路是將可度量的「事實」組織到所謂的事實表中。有三種主要類型的事實,但這是一個不同日子的主題(但如果需要,我很樂意進入這一點)。這些事實中的每一個都是你在典型的「星型模式」中看到的。事實表中的其他屬性通常是對維度表的FK引用。

關於維度,這些是共享共同性(最值得注意的是日曆維度)的屬性組。這很重要,因爲當你在多個事實上進行分析時,維度就是你用來連接它們的地方。

如果你考慮這個簡單的例子:產品被訂購,然後發貨。我們可以有2個事務事實(一個包含訂購的數量 - 度量,訂購的產品類型 - 維度和交易日期 - 維度)。對於產品發貨,我們也有交易事實(發貨數量 - 計量,產品類型 - 維度和發貨日期 - 維度)。這個簡單的模式可以用來回答「上個季度按產品類型劃分的產品數量,但沒有發貨」的問題。

希望這可以幫助您開始。

0

通常情況下,一個事實表用於彙總度量值 - 它總是數字。例如:銷售額,距離,重量,售出的物品數量。

您在此處繪製的數據類型沒有任何切割和乾燥「度量」,因此您需要決定要測量的內容。每個問題的答案數量是多少?每個樣本有多少響應?

這通常稱爲事件事實表(如果您想搜索其他示例)。在將其變成星型模式之前,您需要某種報告要求。所以這不是一個簡單的答案...