共用方式為


屬性關聯性

適用於: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

Microsoft SQL Server SQL Server Analysis Services 中,維度內的屬性一律直接或間接地與索引鍵屬性相關。 當您根據星型架構定義維度時,也就是所有維度屬性衍生自相同關係型數據表的位置時,屬性關聯性會自動在索引鍵屬性與維度的每個非索引鍵屬性之間定義。 當您根據雪花式架構定義維度時,也就是維度屬性衍生自多個相關數據表的位置時,會自動定義屬性關聯性,如下所示:

  • 在索引鍵屬性與系結至主維度數據表中數據行的每個非索引鍵屬性之間。

  • 在索引鍵屬性與系結至連結基礎維度數據表之次要數據表中外鍵的屬性之間。

  • 在系結至次要數據表中外鍵的屬性與從次要數據表系結至數據行的每個非索引鍵屬性之間。

不過,您可能想要變更這些預設屬性關聯性的原因有很多。 例如,您可能想要根據非索引鍵屬性來定義自然階層、自定義排序順序或維度粒度。 如需詳細資訊,請參閱 維度屬性屬性參考

注意

屬性關聯性在多維度表達式 (MDX) 中已知為成員屬性。

自然階層關聯性

當使用者定義階層中包含的每個屬性與屬性緊接在它下方時,階層是自然階層。 例如,請考慮以具有八個數據行的關係源數據表為基礎的 Customer 維度:

  • CustomerKey

  • CustomerName

  • 年齡

  • 電子郵件

  • 城市

  • 國家

  • 地區

對應的 Analysis Services 維度有七個屬性:

  • 客戶 (根據 CustomerKey,含 CustomerName 提供成員名稱)

  • Age、Gender、Email、City、Region、Country

代表自然階層的關聯性是藉由建立層級屬性與層級下方之屬性之間的屬性關聯性來強制執行。 針對 SQL Server Analysis Services,這會指定自然關聯性和潛在匯總。 在 Customer 維度中,國家/地區、城市和客戶屬性有自然階層。 藉由新增下列屬性關聯性,描述 {Country, Region, City, Customer} 的自然階層:

  • Country 屬性做為 Region 屬性的屬性關聯性。

  • Region 屬性做為 City 屬性的屬性關聯性。

  • City 屬性做為 Customer 屬性的屬性關聯性。

若要在 Cube 中瀏覽數據,您也可以建立使用者定義的階層,該階層不會代表數據中的自然階層(稱為 臨機操作報告 階層)。 例如,您可以根據 {Age, Gender}建立使用者定義的階層。 使用者不會看到這兩個階層的行為有何差異,雖然自然階層受益於匯總和編製索引結構-隱藏在使用者中-考慮到源數據的自然關聯性。

層級的 SourceAttribute 屬性會決定用來描述層級的屬性。 屬性上的 KeyColumns 屬性會指定數據源檢視中提供成員的數據行。 屬性上的 NameColumn 屬性可以指定成員的不同名稱數據行。

若要使用 SQL Server Data Tools 在使用者定義階層中定義層級,維度設計師 可讓您從 Cube 數據源檢視中包含的相關數據表中選取維度屬性、維度數據表中的數據行。 如需建立使用者定義階層的詳細資訊,請參閱 建立 User-Defined 階層

在 Analysis Services 中,通常會假設成員的內容。 分葉成員沒有子代,且包含衍生自基礎數據源的數據。 非分葉成員具有子代,並包含衍生自子成員上所執行匯總的數據。 在匯總層級中,成員是以次級層級的匯總為基礎。 因此,當 IsAggregatable 屬性設定為在層級的來源屬性上 False 時,不應將可匯總的屬性新增為高於該層級的層級。

定義屬性關聯性

當您建立屬性關聯性時的主要條件約束是確定屬性關聯性所參考的屬性,對於屬性關聯性所屬的屬性中,沒有任何一個以上的值。 例如,如果您定義 City 屬性與 State 屬性之間的關聯性,則每個城市只能與單一狀態相關聯。

屬性關聯性查詢

您可以使用 MDX 查詢,以成員屬性的形式,使用 MDX SELECT 語句的 PROPERTIES 關鍵詞,從屬性關聯性擷取數據。 如需如何使用 MDX 來擷取成員屬性的詳細資訊,請參閱 使用成員屬性 (MDX)

另請參閱

屬性和屬性階層
維度屬性屬性參考
用戶階層
用戶階層屬性