維度使用方式會定義 Cube 維度與 Cube 中量值群組之間的關聯性。 Cube 維度是特定 Cube 中使用的資料庫維度實例。 Cube 可以且經常擁有與量值群組不直接相關的 Cube 維度,但可能透過另一個維度或量值群組間接地與量值群組相關。 當您將資料庫維度或量值群組新增至 Cube 時,Microsoft SQL Server Analysis Services 會嘗試藉由檢查維度數據表與 Cube 數據源檢視中事實數據表之間的關聯性,以及檢查維度中屬性之間的關聯性,來判斷維度使用方式。 Analysis Services 會自動設定可偵測之關聯性的維度使用方式設定。
維度與量值群組之間的關聯性包含參與關聯性的維度和事實數據表,以及指定特定量值群組中維度數據粒度的數據粒度屬性。
一般維度關聯性
當維度的索引鍵數據行直接聯結至事實數據表時,Cube 維度與量值群組之間的一般維度關聯性就存在。 此直接關聯性是以基礎關係資料庫中的主鍵-外鍵關聯性為基礎,但也可能以數據源檢視中定義的邏輯關聯性為基礎。 一般維度關聯性代表維度數據表與傳統星型架構設計中事實數據表之間的關聯性。 如需一般關聯性的詳細資訊,請參閱 定義一般關聯性和一般關聯性屬性。
參考維度關聯性
當維度的索引鍵數據行透過另一個維度數據表中的索引鍵聯結至事實數據表時,Cube 維度與量值群組之間的參考維度關聯性就存在,如下圖所示。
參考維度關聯性代表維度數據表與雪花式架構設計中事實數據表之間的關聯性。 當維度數據表在雪花式架構中連接時,您可以使用來自多個數據表的數據行來定義單一維度,也可以根據個別維度數據表定義個別維度,然後使用參考維度關聯性設定來定義它們之間的連結。 下圖顯示一個名為 InternetSales 的事實數據表,以及雪花式架構中名為 Customer 和 Geography 的兩個維度數據表。
您可以使用 Customer 數據表作為維度主數據表,以及包含為相關數據表的 Geography 數據表來建立維度。 接著會在維度和 InternetSales 量值群組之間定義一般關聯性。
或者,您可以建立與 InternetSales 量值群組相關的兩個維度:以 Customer 數據表為基礎的維度,以及根據 Geography 數據表的維度。 然後,您可以使用客戶維度的參考維度關聯性,將 Geography 維度關聯至 InternetSales 量值群組。 在此情況下,當 InternetSales 量值群組中的事實依 Geography 維度來維度時,事實會依客戶和地理位置來維度。 如果 Cube 包含名為 Reseller Sales 的第二個量值群組,您將無法依地理位置來維度轉售商銷售量值群組中的事實,因為轉銷商銷售與地理位置之間沒有關聯性。
參考維度數目沒有限制,可以鏈結在一起,如下圖所示。
如需參考關聯性的詳細資訊,請參閱 定義參考關聯性和參考關聯性屬性。
事實維度關聯性
事實維度,通常稱為變質維度,是從事實數據表中的屬性數據行建構的標準維度,而不是從維度數據表中的屬性數據行建構。 有用的維度數據有時會儲存在事實數據表中,以減少重複。 例如,下圖顯示來自 Adventure Works DW 多維度 2012 範例資料庫的 FactResellerSales 事實數據表。
數據表不僅包含轉銷商所發出訂單的每一行屬性資訊,也包含訂單本身的屬性資訊。 上圖中圓形的屬性會識別 FactResellerSales 數據表中可用來做為維度屬性的資訊。 在此情況下,另外兩個資訊片段:轉銷商發出的貨運公司追蹤號碼和採購單號碼,會以 CarrierTrackingNumber 和 CustomerPONumber 屬性數據行來表示。 例如,對於以單一追蹤號碼寄送的所有訂單,使用者一定會有興趣查看匯總的資訊,例如產品總成本。 但是,沒有這兩個屬性的維度數據無法組織或匯總。
理論上,您可以建立使用與 FactResellerSales 數據表相同的索引鍵資訊維度數據表,並將其他兩個屬性數據行 CarrierTrackingNumber 和 CustomerPONumber 移至該維度數據表。 不過,您會複製相當一部分的數據,並將不必要的複雜性新增至數據倉儲,只將兩個屬性表示為個別維度。
備註
事實維度經常用來支持鑽研動作。 如需動作的詳細資訊,請參閱動作(Analysis Services - 多維度數據)。
備註
事實維度必須在事實關聯性所參考之量值群組的每個更新之後,以累加方式更新。 如果事實維度是 ROLAP 維度,Analysis Services 處理引擎會卸除任何快取,並以累加方式處理量值群組。
如需事實關聯性的詳細資訊,請參閱 定義事實關聯性和事實關聯性屬性。
多對多維度關聯性
在大部分維度中,每個事實都會聯結至一個且只有一個維度成員,而單一維度成員可以與多個事實產生關聯。 在關係資料庫術語中,這稱為一對多關聯性。 不過,將單一事實聯結至多個維度成員通常很有用。 例如,銀行客戶可能有多個帳戶(支票、儲存、信用卡和投資帳戶),而帳戶也可以擁有聯合或多個擁有者。 然後,從這類關聯性建構的 Customer 維度會有多個與單一帳戶交易相關的成員。
SQL Server Analysis Services 可讓您定義維度與事實數據表之間的多對多關聯性。
備註
若要支援多對多維度關聯性,數據源檢視必須已建立所有相關數據表之間的外鍵關聯性,如上圖所示。 否則,在維度設計師的 [ 維度使用 方式] 索引標籤中建立關聯性時,您將無法選取正確的中繼量值群組。
如需多對多關聯性的詳細資訊,請參閱 定義多對多關聯性和多對多關聯性屬性。