阿摩線上測驗 登入

申論題資訊

試卷:111年 - 111 高等考試_二級_資訊處理:高等資料庫設計#111030
科目:高等資料庫設計
年份:111年
排序:0

申論題內容

四、某家網路書店保留了過去 20 年來顧客於該網站購買書籍的交易紀錄, 另外也記錄了顧客的基本資料,如年齡、性別等,以及所購買書籍的種 類,如科幻類、文學類等。假設該書店欲利用資料倉儲(Data Warehousing) 的技術建立一個專門用以進行資料分析的系統,請根據星狀綱要(Star Schema)的精神,替此系統設計出合理的綱要。你可以自行假設合理的 屬性,但請說明其各自代表的意義。由於資料倉儲內存放大量的歷史資 料,該類系統大多採用以欄為主(Column-Oriented)的資料儲存方式。 請以你設計的表格舉例說明資料會如何儲存於硬碟中,並說明此種方式 的主要優點為何。(25 分)

詳解 (共 1 筆)

詳解 提供者:hchungw

星狀綱要的圖形表示

lua
複製程式碼
+--------------+ | 顧客維度表 | +--------------+ | | | +-----------------------+ | 購買事實表 | +-----------------------+ | TransactionID | | CustomerID | | BookID | | PurchaseDate | | Quantity | | Price | +-----------------------+ | | +---------------+ | 書籍維度表 | +---------------+ | | +---------------+ | 時間維度表 | +---------------+

以欄為主(Column-Oriented)的資料儲存方式

資料倉儲系統常使用以欄為主的資料儲存方式,這意味著每個欄位的數據會按欄存儲,而不是按行存儲。以下是例子說明:

資料存儲示例

**購買事實表(Purchase Fact Table)**中的部分資料:

yaml
複製程式碼
TransactionID | CustomerID | BookID | PurchaseDate | Quantity | Price ----------------------------------------------------------------------- 1 | 101 | 1001 | 2020-01-01 | 1 | 19.99 2 | 102 | 1002 | 2020-01-02 | 2 | 39.98 3 | 103 | 1003 | 2020-01-03 | 1 | 29.99

如果按欄存儲,資料將按如下方式存儲在硬碟中:

yaml
複製程式碼
TransactionID Column: [1, 2, 3] CustomerID Column: [101, 102, 103] BookID Column: [1001, 1002, 1003] PurchaseDate Column: [2020-01-01, 2020-01-02, 2020-01-03] Quantity Column: [1, 2, 1] Price Column: [19.99, 39.98, 29.99]

以欄為主的儲存方式的主要優點

  1. 提高查詢性能

    • 針對特定欄位的查詢效率更高。因為資料按欄存儲,僅需要讀取相關欄位的數據,而不是整行數據。這對於需要讀取大量資料但僅涉及少量欄位的查詢非常有利。
  2. 更高的壓縮率

    • 由於相同欄位的數據通常具有相似的特性,按欄存儲的數據更易於壓縮。這不僅節省了存儲空間,還能進一步提高讀取性能,因為壓縮後的數據量更小。
  3. 優化 I/O 操作

    • 針對列的查詢只需讀取相關的列,減少了不必要的 I/O 操作。這對於需要處理大數據集的分析型查詢特別有效。
  4. 適合聚合操作

    • 許多分析查詢涉及聚合操作(如 SUM、AVG 等),這些操作可以直接在列數據上進行,避免了行數據的重組,從而加快了聚合計算的速度。

總結

設計星狀綱要時,我們將事實表和多個維度表組合起來,以提供結構化的數據分析基礎。利用以欄為主的儲存方式,我們可以顯著提高查詢性能、壓縮效率和 I/O 操作的效益,這對於處理大規模數據和進行高效的數據分析非常重要。