Trong DW, Bảng chiều dimension cung cấp thông tin, ngữ cảnh cho bảng fact. Dù có quy mô nhỏ hơn fact nhiều lần, nhưng dimension là trọng tâm của DW, vì nếu thiếu nó, các số liệu trong fact sẽ không mang lại nhiều ý nghĩa cho người dùng.

Khi có sự thay đổi trong một bản ghi của dimension, DW phải cập nhật sự thay đổi đó.

Type 0: Retain Original

Đây là phương thức thụ động. Khi có sự tứ thay đổi trên dimension, không có hành động nào xảy ra trên DW. Giá trị chiều được giữ nguyên như tại thời thời điểm bản ghi được thêm vào lần đầu tiên.

Loại bảng chiều này hiếm khi được sử dụng.

Type 1: Overwrite

Ghi đè dữ liệu cũ, không theo dõi dữ liệu lịch sử. Ví dụ:

Supplier_Key Supplier_Code Supplier_Name Supplier_State
123 ABC FadiTek Co HCM

Khi Nhà cung cấp đổi địa điểm (Hồ Chí Minh -> Hà Nội). Dữ liệu được cập nhật như sau:

Supplier_Key Supplier_Code Supplier_Name Supplier_State
123 ABC FadiTek Co HN

Ưu điểm: Dễ bảo trì.

Nhược điểm: Không kiểm tra được dữ liệu lịch sử.

Type 2: Add new row

Theo dõi  dữ liệu lịch sử bằng cách tạo nhiều bản ghi cho một khoá tự nhiên trong bản chiều (phân biệt bằng khoá tự nhiên hoặc số phiên bản)

Ưu điểm: Lưu trữ giá trị lịch sử không giới hạn.

  • Dùng versions
Supplier_Key Supplier_Code Supplier_Name Supplier_State Version.
123 ABC FadiTek Co HCM 0
124 ABC FadiTek Co HN 1
  • Dùng effective_date
Supplier_Key Supplier_Code Supplier_Name Supplier_State Start_Date End_Date
123 ABC FadiTek Co HCM 2000-01-01 2005-01-02
124 ABC Acme Supply Co HN 2005-01-02 9999-12-31
  • Dùng effective_date, flag
Supplier_Key Supplier_Code Supplier_Name Supplier_State Effective_Date Current_Flag
123 ABC FadiTek Co CA 2000-01-01 N
124 ABC FadiTek Co IL 2005-01-02 Y

Type 3: Add new attribute

Phương pháp này theo dõi sự thay đổi bằng cách sử dụng các cột riêng biệt.

Lưu trữ giá trị lịch sự một cách giới hạn vì giới hạn ở số cột lưu trữ  dữ liệu lịch sử.

Supplier_Key Supplier_Code Supplier_Name Original_Supplier_State Effective_Date Current_Supplier_State
123 ABC FadiTek Co HCM 2005-01-02 HN

Bản ghi chứa 1 cột cho giá trị ban đầu, và một cột cho giá trị hiện tại –> Không thể theo dõi lịch sử biến đổi nếu có nhiều lần thay đổi.

Type 4: Add history table

Phương pháp này sử dụng các bảng lịch sử history table. Bao gồm:

  • Một bảng lưu trữ giá trị hiện tại
  • Một bảng lữu trữ tất cả thay đổi

Surrogate Key trên 2 bảng này đều được tham chiếu tới fact để tăng cường hiệu quả truy vấn.

Supplier_key Supplier_Code Supplier_Name Supplier_State
124 ABC FadiTek Co HN

Bảng lịch sử:

Supplier_key Supplier_Code Supplier_Name Supplier_State Create_Date
123 ABC FadiTek Co HCM 2000-01-01
124 ABC FadiTek Co HN 2015-01-02

Type 6: Hybrid

Kết hợp cách tiếp cận từ loại 1,2,3 (6=1+2+3)

Khi bản ghi lần đầu tiên được thêm vào. Giá trị lich sử và giá trị hiện tại giống nhau.

Supplier_Key Row_Key Supplier_Code Supplier_Name Current_State Historical_State Start_Date End_Date Current_Flag
123 1 ABC FadiTek Co HCM HCM 2000-01-01 9999-12-31 Y

Khi Supplier State thay đổi:

  • Ghi đề current_flag của row 1 (Type 1)
  • Tạo bản ghi mới để theo dõi sự thay đổi (Type 2)
  • Lưu trữ giá trị lịch sử trong cột historical_state (Type 3)
Supplier_Key Row_Key Supplier_Code Supplier_Name Current_State Historical_State Start_Date End_Date Current_Flag
123 1 ABC FadiTek Co HCM HCM 2001 2005-01-02 N
123 2 ABC FadiTek Co HN HCM 2005-01-02 9999-12-31 Y

 

Bài viết tham khảo:

Dimension (Data Warehouse) – Wiki

Comments
←Nhập môn CSDL] Mô hình ... Nhập môn Data Warehouse] Xây ...→