共用方式為


瞭解資料庫架構

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

架構產生精靈會根據 SQL Server Analysis Services 中的維度和量值群組,為主體區域資料庫產生反正規化的關係架構。 精靈會為每個維度產生關係型數據表來儲存維度數據,該數據稱為維度數據表,以及每個量值群組用來儲存事實數據的關係型數據表,這稱為事實數據表。 精靈會在產生這些關係型數據表時,忽略連結維度、連結量值群組和伺服器時間維度。

驗證

在開始產生基礎關係架構之前,架構產生精靈會驗證 SQL Server Analysis Services Cube 和維度。 如果精靈偵測到錯誤,它會停止並將錯誤報告至 SQL Server Data Tools 中的 [工作清單] 視窗。 防止產生的錯誤範例包括下列各項:

  • 具有多個索引鍵屬性的維度。

  • 數據類型與索引鍵屬性不同的父屬性。

  • 沒有量值的量值群組。

  • 未正確設定的變質維度或量值。

  • 未正確設定的 Surrogate 索引鍵,例如使用 ScdOriginalID 的多個屬性 屬性類型,或使用 ScdOriginalID 的屬性, 未系結至使用整數數據類型的數據行。

維度數據表

針對每個維度,架構產生精靈會產生要包含在主旨區域資料庫中的維度數據表。 維度數據表的結構取決於在設計其基礎維度時所做的選擇。


精靈會針對維度數據表所依據之維度中每個屬性相關聯的系結產生一個數據行, 例如 KeyColumnsNameColumnValueColumnCustomRollupColumnCustomRollupPropertiesColumnUnaryOperatorColumn 属性的系結。

關係
精靈會針對每個父屬性和維度數據表的主鍵,產生數據行之間的關聯性。

如果適用,精靈也會在 Cube 中定義為參考維度的每個其他維度數據表中,產生主鍵的關聯性。

約束
根據預設,精靈會根據維度的索引鍵屬性,為每個維度數據表產生主鍵條件約束。 如果產生主鍵條件約束,預設會產生個別的名稱數據行。 即使您決定不要在資料庫中建立主鍵,仍會在數據源檢視中建立邏輯主鍵。

注意

如果在維度數據表所依據的維度中指定了多個索引鍵屬性,就會發生錯誤。

翻譯
精靈會產生個別的數據表,以保存任何需要翻譯數據行之屬性的翻譯值。 精靈也會為每個必要語言建立個別的數據行。

事實數據表

針對 Cube 中的每個量值群組,[架構產生精靈] 會產生要包含在主旨區域資料庫中的事實數據表。 事實數據表的結構取決於在設計其所依據之量值群組時所做的選擇,以及量值群組與任何內含維度之間建立的關聯性。


精靈會為每個量值產生一個數據行,但使用 Count 聚合函數的量值除外。 這類量值不需要事實數據表中的對應數據行。

如果適用的話,精靈也會針對量值群組上每個一般維度關聯性的每個數據粒度屬性數據行產生一個數據行,以及與這個數據表所依據之量值群組有事實維度關聯性之維度的每個屬性相關聯之系結的一或多個數據行。

關係
精靈會針對從事實數據表到維度數據表的數據粒度屬性,為每個一般維度關聯性產生一個關聯性。 如果數據粒度是以維度數據表的索引鍵屬性為基礎,則會在資料庫和數據源檢視中建立關聯性。 如果數據粒度是以另一個屬性為基礎,則只會在數據源檢視中建立關聯性。

如果您選擇在精靈中產生索引,則會為每個關聯性數據行產生非叢集索引。

約束
主鍵不會在事實數據表上產生。

如果您選擇強制執行引用完整性,則維度數據表與事實數據表之間會產生引用完整性條件約束。

翻譯
精靈會產生個別的數據表,以保存需要翻譯數據行之量值群組中任何屬性的翻譯值。 精靈也會為每個必要語言建立個別的數據行。

數據類型轉換和預設長度

架構產生精靈在所有情況下都會忽略數據類型,但使用 SQL Server wchar 資料類型的數據行除外。 wchar 數據大小會直接轉譯為 nvarchar 數據類型。 不過,如果使用 wchar 大小指定的數據行長度大於 4000 個字節,架構產生精靈會產生錯誤。

如果數據項,例如屬性的系結,沒有指定的長度,下表所列的預設長度會用於數據行。

數據項 預設長度(位元組)
KeyColumn 50
NameColumn 50
CustomRollupColumn 3000
CustomRollupPropertiesColumn 500
UnaryOperatorColumn 1

另請參閱

瞭解累加產生
管理數據源檢視和數據源的變更