題組內容
五、承續第四題
量販公司的高層決策者希望能夠從系統的每日交易運作資料庫(operational transaction database)中,建立線上分析處理(on-line analytical processing,OLAP)系統。因此,首先必須由 PRODUCT、SALE、COMPANY、STATE 等資料表中轉換構建資料倉儲(data warehouse)。假設所要分析的主要目標資料項包括:‘售貨的金額’(NUM*VALUE)和‘數量’(NUM);分析的維度(dimension)包括有:‘售出日期’、‘地區’和‘產品’等 3 個維度,並且各個分析維度又可進一步分成以下概念階層(concept hierarchy)所組成的分析層次:
售出日期: 年(year)> 季(quarter)> 月(month)> 日(day)
地 區: 洲別(area)> 國別(country)> 城市(city)
產 品: 產品類別(class)> 產品編號(product)
請應用資料倉儲模型(data warehouse model)為此 OLAP 系統設計資料倉儲綱要(schema),並回答下列問題:
量販公司的高層決策者希望能夠從系統的每日交易運作資料庫(operational transaction database)中,建立線上分析處理(on-line analytical processing,OLAP)系統。因此,首先必須由 PRODUCT、SALE、COMPANY、STATE 等資料表中轉換構建資料倉儲(data warehouse)。假設所要分析的主要目標資料項包括:‘售貨的金額’(NUM*VALUE)和‘數量’(NUM);分析的維度(dimension)包括有:‘售出日期’、‘地區’和‘產品’等 3 個維度,並且各個分析維度又可進一步分成以下概念階層(concept hierarchy)所組成的分析層次:
售出日期: 年(year)> 季(quarter)> 月(month)> 日(day)
地 區: 洲別(area)> 國別(country)> 城市(city)
產 品: 產品類別(class)> 產品編號(product)
請應用資料倉儲模型(data warehouse model)為此 OLAP 系統設計資料倉儲綱要(schema),並回答下列問題:
(一)採用的綱要模型為何?請說明原因。
詳解 (共 1 筆)
詳解
OLAP 系統的資料倉儲綱要設計
在設計資料倉儲綱要(schema)以支持 OLAP 系統時,我們通常會選擇星型模型(Star Schema)或雪花模型(Snowflake Schema)。這兩種模型在數據倉儲設計中非常常見,且各有優劣。
(一) 採用的綱要模型:星型模型(Star Schema)
原因:
-
簡單直觀:
- 星型模型的結構簡單,事實表(fact table)位於中心,周圍圍繞著多個維度表(dimension tables),這使得數據的查詢和分析變得直觀和高效。
-
查詢效能高:
- 由於星型模型的維度表是去正規化的(denormalized),查詢時無需進行多表連接(joins),這提升了查詢效能,特別是對於大規模數據分析的應用場景。
-
易於理解和管理:
- 星型模型的結構相對簡單,維度表包含所有相關的屬性,這使得資料倉儲的設計、維護和管理變得容易。
資料倉儲綱要設計
事實表(Fact Table)
事實表名稱:Sales_Fact
| Column Name | Description |
|---|---|
| Date_Key | 售出日期的鍵(外鍵) |
| Area_Key | 地區的鍵(外鍵) |
| Product_Key | 產品的鍵(外鍵) |
| Sales_Amount | 售貨金額(NUM*VALUE) |
| Sales_Quantity | 售貨數量(NUM) |
維度表(Dimension Tables)
1. 售出日期維度表(Date_Dimension)
| Column Name | Description |
|---|---|
| Date_Key | 售出日期的鍵(主鍵) |
| Year | 年 |
| Quarter | 季 |
| Month | 月 |
| Day | 日 |
2. 地區維度表(Area_Dimension)
| Column Name | Description |
|---|---|
| Area_Key | 地區的鍵(主鍵) |
| Area | 洲別 |
| Country | 國別 |
| City | 城市 |
3. 產品維度表(Product_Dimension)
| Column Name | Description |
|---|---|
| Product_Key | 產品的鍵(主鍵) |
| Class | 產品類別 |
| Product_ID | 產品編號 |
| Product_Name | 產品名稱 |
綱要模型示例
+-----------------+
| Date_Dimension|
+-----------------+
| Date_Key |
| Year |
| Quarter |
| Month |
| Day |
+-----------------+
|
|
|
|
+----------------+ +-----------------+ +------------------+
| Area_Dimension | | Sales_Fact | | Product_Dimension|
+----------------+ +-----------------+ +------------------+
| Area_Key |---| Date_Key |---| Product_Key |
| Area | | Area_Key | | Class |
| Country | | Product_Key | | Product_ID |
| City | | Sales_Amount | | Product_Name |
+----------------+ | Sales_Quantity | +------------------+
+-----------------+
| Date_Dimension|
+-----------------+
| Date_Key |
| Year |
| Quarter |
| Month |
| Day |
+-----------------+
|
|
|
|
+----------------+ +-----------------+ +------------------+
| Area_Dimension | | Sales_Fact | | Product_Dimension|
+----------------+ +-----------------+ +------------------+
| Area_Key |---| Date_Key |---| Product_Key |
| Area | | Area_Key | | Class |
| Country | | Product_Key | | Product_ID |
| City | | Sales_Amount | | Product_Name |
+----------------+ | Sales_Quantity | +------------------+
+-----------------+
總結
採用星型模型設計資料倉儲綱要,可以簡化數據的查詢和管理過程,提高查詢效能。此模型中,每個維度表都直接連接到事實表,減少了多表連接的複雜性,特別適合用於 OLAP 系統進行高效的多維數據分析。