Professional Documents
Culture Documents
----------
2
NHẬN XÉT CỦA GIẢNG VIÊN
…………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………
3
1. Giới thiệu
1.1. Mục tiêu
Mục tiêu của bài toán là xây dựng kho dữ liệu tích hợp các dữ liệu của doanh
nghiệp để tạo lập các báo cáo kinh doanh nhằm hỗ trợ người quản lý đưa ra quyết
định, chiến lược phát triển. Ngoài ra, trong tương lai có thể áp dụng thêm kỹ thuật
mining để khai phá dữ liệu mới.
1.2. Phạm vi
‒ Quản lý việc kinh doanh của một doanh nghiệp gồm nhiều cửa hàng nằm rải rác
ở nhiều thành phố và bang khác nhau nhằm đáp ứng được nhu cầu của khách
hàng.
‒ Nguồn dữ liệu: từ hệ thống cơ sở dữ liệu quan hệ hiện tại của doanh nghiệp.
‒ Xây dựng các khối OLAP để lưu trữ dữ liệu đa chiều về sản phẩm kinh doanh
của doanh nghiệp, cụ thể ở đây là sản phẩm đã bán và sản phẩm lưu trữ.
4
3. Đặc tả chức năng
Công cụ sử dụng cho bài tập lớn là Oracle Database và Oracle Analytics
Workspace Manager (AWM)
Front-end Web: React JS
Back-end Web: Node JS
Đầu vào của kho dữ liệu:
- Lược đồ quan hệ của hệ thống cơ sở dữ liệu quan hệ hiện tại của doanh nghiệp
này như sau:
• Cơ sở dữ liệu Văn phòng đại diện bao gồm những quan hệ với các lược đồ
như sau:
▪ Khách hàng (Mã KH, Tên KH, Mã Thành phố, Ngày đặt hàng đầu tiên)
▪ Khách hàng du lịch (* Mã KH, Hướng dẫn viên du lịch, Thời gian)
▪ Khách hàng bưu điện (* Mã KH, Địa chỉ bưu điện, Thời gian)
• Cơ sở dữ liệu Bán hàng gồm những quan hệ với lược đồ như sau:
▪ Văn phòng đại diện (Mã Thành phố, Tên Thành phố, Địa chỉ VP, Bang,
Thời gian)
▪ Cửa hàng (Mã cửa hàng, * Mã Thành phố, Số điện thoại, Thời gian)
▪ Mặt hàng (Mã MH, Mô tả, Kích cỡ, Trọng lượng, Giá, Thời gian)
▪ Mặt hàng được lưu trữ (* Mã cửa hàng, * Mã mặt hàng, Số lượng trong
kho, Thời gian)
▪ Đơn đặt hàng (Mã đơn, Ngày đặt hàng, Mã Khách hàng)
▪ Mặt hàng được đặt (* Mã đơn, * Mã mặt hàng, Số lượng đặt, Giá đặt, Thời
gian)
Đầu ra của kho dữ liệu: các báo cáo (bảng dữ liệu động) cho phép người dùng thực
hiện các thao tác roll up, drill down, slice, dice … cung cấp thông tin để hỗ trợ người
quản lý ra quyết định.
4. Thiết kế kho dữ liệu – phương pháp luận cho các bước thiết kế bao gồm cả
lược đồ hình sao
4.1 Xây dựng mô hình thực thể liên kết
5
Bước 1 Chuyển đổi ngược DB1, DB2 → EER1, EER2
DB1: Văn phòng đại diện
▪ Khách hàng (Mã KH, Tên KH, Mã Thành phố, Ngày đặt hàng đầu tiên)
▪ Khách hàng du lịch (* Mã KH, Hướng dẫn viên du lịch, Thời gian)
▪ Khách hàng bưu điện (* Mã KH, Địa chỉ bưu điện, Thời gian)
PR1: Khách hàng -> Thực thể Khách hàng.
PR2: Khách hàng du lịch, Khách hàng bưu điện là tập con của Khách hàng.
Ta có EER1:
6
Ta có EER2:
7
Bước 2 Tích hợp EER1, EER2 thành IEER
Giải quyết xung đột ngữ nghĩa:
Trường Thời gian ở các thực thể là đồng âm (homonyms):
Thực hiện đổi tên thuộc tính:
- Văn phòng đại diện: Thời gian -> Ngày thành lập văn phòng
- Cửa hàng: Thời gian -> Ngày thành lập cửa hàng
- Mặt hàng: Thời gian -> Ngày bắt đầu bán
- Mặt hàng được lưu trữ: Thời gian -> Ngày nhập hàng
8
KHÁCH HÀNG chứa Mã TP và ĐƠN HÀNG chứa Mã KH, ta tích hợp được 2
lược đồ EER1 và EER2 được IEER:
9
4.2 Thiết kế mô hình cho data warehouse
4.2.1 Mô hình
10
• City_key, city_name là mã, tên thành phố tương ứng của cửa hàng.
Product dimension: Các bản ghi chứa thông tin sản phẩm.
4.2.3 Phân cấp cho các chiều dữ liệu
11
4.2.4 Ánh xạ lược đồ quan hệ sang mô hình data warehouse
Customer dimension:
12
Product dimension:
Time dimension:
13
Store dimension:
City dimension:
14
Sales fact:
15
Stores fact:
5. Cài đặt các khối dữ liệu, tải dữ liệu vào các khối
Cơ sở dữ liệu: Oracle
Công cụ sử dụng: Oracle Analystics Workspace Manager (AWM)
Các bước thực hiện:
5.1 Xây dựng các bảng fact (sales fact, stores fact), bảng dimension (time, customer,
product, store, city), generate dữ liệu cho các bảng
16
• Tạo một workspace mới.
• Tạo các dimension, mapping với các dimension table trong cơ sở dữ liệu.
17
Ánh xạ Customer_Dim:
18
Ánh xạ Product_Dim:
Ánh xạ Store_Dim:
Ánh xạ Time_Dim:
19
• Tạo các cube, bao gồm các dimension và measure, mapping với cube table
trong cơ sở dữ liệu.
• Thực hiện tính toán measure cho OLAP cube (các khối từ n-1 chiều tới 0
chiều).
20
• Sau khi thực hiện xong, ta có thể xem được báo cáo cho measure bất kì.
21
5.3 Truy vấn OLAP Cube với SQL
Khi xây dựng OLAP Cube, AWM tự động gen các view trong cơ sở dữ liệu giúp
người dùng có thể truy cập trực tiếp dữ liệu OLAP Cube thông qua các view này.
Các view (gồm cube view, dimension view) có cấu trúc giống với mô hình data
warehouse (gồm các fact table, dimension table), tuy nhiên điểm khác biệt quan
trọng đó là:
• Fact table chứa dữ liệu chi tiết (details data, hay nút lá) còn cube view chứa
dữ liệu tổng hợp ở nhiều chiều, nhiều cấp bậc khác nhau.
• Truy vấn dữ liệu để tạo report: đối với các table (fact table, dimension table)
truy vấn dựa trên câu lệnh GROUP BY, đối với các view chỉ đơn giản là
SELECT column.
6. Các báo cáo phân tích trực tuyến, nhúng lệnh hoặc thanh lệnh để sinh báo
cáo OLAP
Thực hiện demo các thao tác OLAP (roll up, drill down) trên giao diện web.
Giao diện này gọi tới các API để lấy dữ liệu.
Các lệnh được nhúng để sinh báo cáo OLAP.
22
23
7. Kiểm tra tính đúng đắn của dữ liệu, kiểm tra các báo cáo OLAP với nguồn
dữ liệu từ các bảng quan hệ
24
Kiểm tra tính đúng đắn bằng việc query table:
25
8. Kết luận
Qua báo cáo, nhóm nghiên cứu và thực hiện thành công các công việc sau:
• Tích hợp lược đồ thành một mô hình liên kết mở rộng.
• Thiết kế lược đồ hình sao.
• Chạy demo kho dữ liệu và báo cáo xử lý phân tích trực tuyến.
Cảm ơn cô và các bạn đã giúp đỡ nhóm 07 để có thể hoàn thành một cách tốt nhất
bài báo cáo này. Nếu có sai sót nào trong quá trình thực hiện bài báo cáo, mong cô
và các bạn góp ý thẳng thắn để nhóm có thể rút kinh nghiệm. Kho và khai phá dữ
liệu thực sự là một môn học hay và rất có ý nghĩa với chúng em. Chúc cô luôn
mạnh khoẻ, vui vẻ và thành công hơn nữa trong sự nghiệp của mình, chúc các bạn
học tập thật tốt!
26