STT Tên bảng Diễn giải
1 Fact_POS_Retail Là bảng sự kiện, dữ liệu của nó được lấy từ
hai bảng DW_POSRetail và
DW_POSRetail_Detail của kho dữ liệu doanh nghiệp SieuThi_DW. Nó chứa các thông tin tính toán như số lượng, đơn giá, thành tiền và các trường liên kết đến các chiều cần phân
tích như ngày, giờ, hàng, khách hàng, phương thức thanh toán, loại tiền tệ, và quầy thu ngân
2 Dim_Customer Là bảng chiều khách hàng, dữ liệu của nó lấy
từ bảng M_CustomerType và M_Customer của kho dữ liệu doanh nghiệp SieuThi_DW. Trong bảng này có chứa các thông tin về loại
khách hàng, cho phép tạo phân cấp: Loại
khách hàng → Khách hàng
3 Dim_PaymentMethod Là bảng chiều phương thức thanh toán, dữ
liệu lấy từ bảng M_PaymentMethod kho dữ liệu doanh nghiệp SieuThi_DW
4 Dim_Product Là bảng chiều hàng hóa, dữ liệu lấy từ ba
bảng M_Product, M_Subcategory và M_Category của kho dữ liệu doanh nghiệp SieuThi_DW. Trong bảng này có chứa các thông tin về loại hàng và nhóm hàng, cho
phép tạo phân cấp: Loại hàng → Nhóm hàng
→ Hàng
5 Dim_CashDesk Là bảng chiều quầy thu ngân, dữ liệu lấy từ
bảng M_CashDesk của kho dữ liệu doanh nghiệp SieuThi_DW
6 Dim_Currency Là bảng chiều loại tiền tệ được dùng khi
thanh toán, dữ liệu lấy từ bảng M_Currency của kho dữ liệu doanh nghiệp SieuThi_DW
7 Dim_Date Là bảng chiều thời gian và lưu trữ đến mức
ngày (mỗi ngày một bản ghi). Dữ liệu cho bản này được khởi tạo trước cho 5 năm từ 2008 đến 2012
3.5.3. Thiết kế vật lý
Như phần tổng quan đã đề cập, thiết kế vật lý cho kho dữ liệu bao gồm cả công việc như chuyển mô hình dữ liệu logic sang mô hình vật lý, tức là xác định cấu trúc các bảng và quan hệ các bảng, khóa, ràng buộc…, tạo chỉ mục, phân vùng, tổ chức các tập tin lưu trữ cho CSDL… Nhưng phần cấu trúc dữ liệu đã được đề cập ở phần trên, nên trong phần này chỉ tập trung vào ba công việc chính:
Thiết kế phân vùng Thiết kế chỉ mục Tổ chức lưu trữ
3.5.3.1. Thiết kế phân vùng
Để việc truy cập dữ liệu được nhanh và tiện lợi cho việc bảo trì dữ liệu sau này nên chọn phân vùng cho một số bảng lớn, nhất là các bảng chứa các dữ liệu giao dịch phát sinh hằng ngày. Cụ thể thực hiện phân vùng cho các bảng như sau:
Bảng DW_POSRetail trong kho dữ liệu doanh nghiệp SieuThi_DW: thực
hiện phân vùng theo tháng dựa trên cột Trans_Date.
Bảng DW_POSRetail_Detail trong kho dữ liệu doanh nghiệp
SieuThi_DW: thực hiện phân vùng theo tháng dựa trên cột Trans_Date.
Bảng Fact_POSRetail trong kho dữ liệu chuyên biệt SieuThi_DM: Phân
vùng theo tháng dựa trên cột Date_ID.
3.5.3.2. Thiết kế chỉ mục
Việc cài đặt các chỉ mục chủ yếu tập trung vào kho dữ liệu chuyên biệt
SieuThi_DM, bởi vì người sử dụng chủ yếu khai thác dữ liệu dựa trên nó, việc khai thác có thể thông qua các câu lệnh truy vấn, báo cáo, hay phân tích số liệu…. Việc tạo chỉ mục cho thế nào là hiệu quả tùy thuộc rất nhiều vào các dạng câu truy vấn, báo cáo mà người dùng hay sử dụng. Nhưng ban đầu thì thực hiện phương án tạo một số chỉ mục cơ bản cho các bảng chiều và bảng sự kiện chi tiết như phần bên dưới.
Chỉ mục cho các bảng chiều: đa số các bảng chiều đều có kích thước nhỏ nên
không cần tạo chỉ mục. Chỉ duy nhất bảng chiều hàng hóa (DIM_Product) có số hàng
lớn hơn 37 nghìn nên sẽ thực hiện tạo chỉ mục trên các cột hay được sử dụng như sau:
IDX_Product_01: dựa trên cột procduct_name IDX_Product_02: dựa trên cột SubCategory_Name IDX_Product_03: dựa trên cột Category_Name
Chỉ mục cho bảng sự kiện Fact_POS_Retail: do việc khai thác chủ yếu dựa trên
các chiều nên sẽ tạo chỉ mục trên từng chiều, dựa trên các cột khóa ngoại liên kết với các chiều. Việc tạo chỉ mục kết hợp nhiều chiều cần phải được kiểm nghiệm sau khi đưa vào chạy thực tế thì mới có được phương án hiệu quả nhất. Trong giai đoạn này chỉ tạo các chỉ mục dựa trên một cột như sau:
IDX_Fact_POS_01: dựa trên cột Date_ID
IDX_Fact_POS_02: dựa trên cột Product_DW_ID IDX_Fact_POS_3: dựa trên cột Customer_DW_ID IDX_Fact_POS_04: dựa trên cột Curency_DW_ID
IDX_Fact_POS_06: dựa trên cột CashDesk_DW_ID 3.5.3.1. Tổ chức lưu trữ
Để dễ dàng bảo trì, mở rộng và tăng hiệu năng xử lý, khi thiết kế cấu trúc lưu trữ cho kho dữ liệu và kho dữ liệu chuyên biệt người ta thường chia thành nhiều nhóm tập tin, mỗi nhóm tập tin thì lại có nhiều tập tin. Các tập tin nên phân bố trên các phương tiện lưu trữ vật lý khác nhau và các tập tin nhật ký và tập tin dữ liệu cũng không nên đặt chung vào một phương tiện lưu trữ vật lý. Vì trong phạm vi luận văn tất cả đều được cài đặt trên một máy xách tay duy nhất, nên việc thiết kế lưu trữ có thể giả lập như Hình 3.7 bên dưới.
Hình 3.7. Sơ đồ tổ chức lưu trữ cho SieuThi_DM
3.5.4. Thiết kế các gói tích hợp dữ liệu
Việc thiết kế các gói tích hợp cũng giống như việc thiết kế phần mềm, nên thực hiện mô đun hóa để dễ quản lý và bảo trì hệ thống. Đối với bài toán này thì việc thiết kế các gói được phân thành hai cấp:
Cấp điều khiển: là cấp bao gồm các là các gói không trực tiếp thực hiện việc tích hợp. Nó lấy dữ liệu, xử lý và nạp vào bảng đích. Các gói ở cấp này có thể hiểu là “siêu” gói, tức gói của các gói
Cấp chi tiết: là cấp thấp nhất, bao gồm các gói trực tiếp thực hiện việc tích hợp. Chúng lấy dữ liệu, xử lý và nạp vào bảng đích
Đối với bài toán tích hợp dữ liệu bán hàng siêu thị, theo thiết kiến trúc kế tổng
thể kho dữ liệu, thì được phân thành ba gói điều khiển như sau: PKG_STG_Controller
sử dụng cho CSDL tạm SieuThi_STG, PKG_DW_Controller sử dụng cho kho dữ liệu
doanh nghiệp SieuThi_DW, và PKG_DM_Controller sử dụng cho kho dữ liệu chuyên
3.5.4.1. Gói tích hợp PKG_STG_Controller
Gói này bao gồm các gói chi tiết thực hiện việc lấy dữ liệu nguồn là
SieuThi_SRC và đưa vào đích là SieuThi_STG. Danh sách các gói chi tiết bên trong và
thứ tự thực hiện được thể hiện qua Hình 3.8 bên dưới.
Hình 3.8. Gói tích hợp PKG_STG_Controller
Bảng 3.4 sau đây là bảng mô tả rõ hơn về bảng đích, bảng nguồn và diễn giải cho
từng gói chi tiết bên trong gói điều khiển PKG_STG_Controller.