Chương 3 nêu yêu cầu của hệ thống, thiết kế kho dữ liệu ban đầu dạng cơ sở dữ liệu quan hệ, rồi chuyển sang dạng cơ sở dữ liệu đa chiều, hiện thực chuyển đổi thành các khối dữ liệu, trực
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA -
TRỊNH PHONG NHÃ
XÂY DỰNG KHO DỮ LIỆU VỚI CƠ SỞ DỮ LIỆU
ĐA CHIỀU NHẰM TRỰC QUAN HÓA DỮ LIỆU NHÂN SỰ TRONG DỰ ÁN TẠI MỘT CÔNG TY PHẦN MỀM
Chuyên ngành: HỆ THỐNG THÔNG TIN QUẢN LÝ
Mã số: 60340405
LUẬN VĂN THẠC SĨ
THÀNH PHỐ HỒ CHÍ MINH, THÁNG 7 NĂM 2016
Trang 2CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐHQG - HCM
Cán bộ hướng dẫn khoa học: PGS.TS Đặng Trần Khánh
Cán bộ chấm nhận xét 1: TS Lê Lam Sơn
Cán bộ chấm nhận xét 2: TS Nguyễn Tuấn Đăng
Luận văn thạc sĩ được bảo vệ tại Trường Đại học Bách Khoa, ĐHQG Tp HCM ngày 18 tháng 7 năm 2016 Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm: 1 TS Nguyễn Thanh Bình
2 TS Trương Tuấn Anh
3 TS Lê Lam Sơn
4 TS Nguyễn Tuấn Đăng
5 PGS.TS Vũ Thanh Nguyên
Xác nhận của Chủ tịch Hội đồng đánh giá LV và Trưởng Khoa quản lý chuyên ngành sau khi luận văn đã được sửa chữa (nếu có)
CHỦ TỊCH HỘI ĐỒNG TRƯỞNG KHOA KH&KTMT
TS Nguyễn Thanh Bình
Trang 3ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐẠI HỌC BÁCH KHOA
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc
NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ và tên học viên: Trịnh Phong Nhã MSHV:13320798
Ngày, tháng, năm sinh: 27/01/1985 Nơi sinh: Quảng Bình
Chuyên nghành: Hệ thống thông tin quản lý Mã số: 60340405
I TÊN ĐỀ TÀI
XÂY DỰNG KHO DỮ LIỆU VỚI CƠ SỞ DỮ LIỆU ĐA CHIỀU NHẰM TRỰC QUAN HÓA DỮ LIỆU NHÂN SỰ TRONG DỰ ÁN TẠI MỘT CÔNG TY PHẦN MỀM
II NHIỆM VỤ VÀ NỘI DUNG
1 Tổng hợp một số lý thuyết về kho dữ liệu
2 Xây dựng kho dữ liệu với cơ sở dữ liệu đa chiều
3 Trực quan hóa dữ liệu nhân sự trong dự án của công ty phần mềm
III NGÀY GIAO NHIỆM VỤ: 12/01/2016
IV NGÀY HOÀN THÀNH NHIỆM VỤ: 20/06/2016
Trang 4LỜI CẢM ƠN
Em xin bày tỏ lòng kính trọng và biết ơn sâu sắc tới Thầy giáo, PGS TS
ĐẶNG TRẦN KHÁNH, trường Đại học Bách khoa TPHCM đã hướng dẫn và
động viên em rất nhiều trong quá trình làm đề cương luận văn
Em xin được gửi lời cảm ơn tới các Thầy, Cô trong khoa Khoa học và kỹ thuật máy tính và Khoa Quản lý công nghiệp trường Đại học Bách khoa TPHCM, những người đã dạy dỗ, giúp đỡ và chỉ bảo cho em trong suốt quá trình học tập
Cuối cùng, xin gửi lời biết ơn tới ba mẹ, em gái, vợ và con trai, những người
đã luôn bên cạnh và khích lệ con trong thời gian qua
Biển học là vô bờ, mà khả năng của em thì có giới hạn, em kính mong sẽ được
sự chỉ bảo của các Thầy Cô trong Hội đồng bảo vệ luận văn
Trân trọng!
Trang 5TÓM TẮT NỘI DUNG LUẬN VĂN
Đề tài tìm hiểu các đặc tính của kho dữ liệu cơ sở dữ liệu đa chiều, kiến trúc khối Từ đó xây dựng một kho dữ liệu với cơ sở dữ liệu đa chiều về nhân sự của một công ty gia công phần mềm Tiếp theo đề tài trực quan hóa cơ sở dữ liệu này theo từng cấp dự án (project) Kết quả thực tế của đề tài là một hệ thống cung cấp thông tin trực quan về nhân sự cho các cấp quản lý Hệ thống này bao gồm các biểu
đồ, báo cáo… đa chiều, có thể tương tác được (chọn dạng thức hiển thị biểu đồ, chọn loại thông tin, lọc dữ liệu, sắp xếp (order), đi sâu vào chi tiết hoặc tổng hợp lên theo nhiều chiều (drill down và roll up)…)
Trang 6ABSTRACT
This thesis dealed with data warehouse, multidimentional database, cube architecture in order to build a mulitdimentional human resources data warehouse for an outsource software company It also visualize this database to the project hierachy The final result of this thesis is an application that provides visual information on human resources for the managers This system includes interacive multidimentional charts, reports, dashboards…that we can choose type options, choose important information to present, filter, sort, and drill down or roll up…
Trang 7LỜI CAM ĐOAN
Tôi xin cam đoan những số liệu đƣợc sử dụng trong nghiên cứu này là do tôi
tự nghiên cứu, khảo sát và thực hiện Các dữ liệu đƣợc thu thập và xử lý một cách khách quan và trung thực
Tp Hồ Chí Minh, tháng 6 năm 2016
Trang 8MỤC LỤC
LỜI CẢM ƠN iii
TÓM TẮT NỘI DUNG LUẬN VĂN iv
ABSTRACT v
LỜI CAM ĐOAN vi
DANH MỤC BẢNG BIỂU x
DANH MỤC HÌNH ẢNH xii
DANH MỤC CHỮ VIẾT TẮT xiv
CHƯƠNG 1 TỔNG QUAN 1
1.1 Tóm tắt đề tài 1
1.2 Giới hạn nghiên cứu 1
1.3 Phương pháp nghiên cứu 1
1.4 Bố cục báo cáo luận văn 1
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 3
2.1 Kho dữ liệu 3
2.1.1 Khái niệm 3
2.1.2 Sự khác nhau của cơ sở dữ liệu tác nghiệp và kho dữ liệu 4
2.1.3 Các mục tiêu của kho dữ liệu 5
2.1.4 Các thành phần của một kho dữ liệu: 6
2.1.5 Mô hình dữ liệu và việc thiết kế kho dữ liệu: 11
2.2 Cơ sở dữ liệu đa chiều 17
2.2.1 Mô hình đa chiều 17
2.2.2 Mô hình hóa đa chiều: 18
2.2.3 Các loại mô hình đa chiều 19
Trang 92.2.4 Các nguyên lý thiết kế mô hình đa chiều 21
2.3 ETL 26
2.3.1 Khái quát về tích hợp dữ liệu 26
2.3.2 Các phương pháp nạp dữ liệu cho kho dữ liệu 27
2.3.3 Những hoạt động tích hợp dữ liệu 29
2.4 Xử lý phân tích trực tuyến 35
2.4.1 Khái niệm 35
2.4.2 Các kiến trúc OLAP 36
2.4.3 So sánh các kiến trúc OLAP 37
2.4.4 Khối (Cube) và Chiều (Dimension) trong OLAP 37
2.4.5 Ngôn ngữ MDX 39
CHƯƠNG 3 YÊU CẦU - THIẾT KẾ - HIỆN THỰC 44
3.1 Yêu cầu 44
3.2 Thiết kế 46
3.2.1 Kho dữ liệu ban đầu dạng cơ sở dữ liệu quan hệ 46
3.2.2 Headcount Datamart 52
3.3 Hiện thực 58
3.4 Kết quả 59
CHƯƠNG 4 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 65
4.1 Kết luận 65
4.2 Hạn chế 66
4.3 Đánh giá ứng dụng 66
4.4 Hướng phát triển 66
TÀI LIỆU THAM KHẢO 67
Trang 10PHỤ LỤC A 69 PHỤ LỤC B 77
LÝ LỊCH TRÍCH NGANG 88
Trang 11DANH MỤC BẢNG BIỂU
Bảng 2-1 Ví dụ CSDL thông tin nhân viên 23
Bảng 2-2 Bảng CSDL thông tin nhân viên sau cập nhật (SCD1) 24
Bảng 2-3 Bảng CSDL thông tin nhân viên sau cập nhật (SCD2) 24
Bảng 2-4 Bảng CSDL thông tin nhân viên sau cập nhật (SCD3) 25
Bảng 2-5 Bảng NhanVien (SCD4) 25
Bảng 2-6 Bảng NhanVienHistory (SCD4) 25
Bảng 2-7 Bảng nhân viên trước khi cập nhật (SCD5) 26
Bảng 2-8 Bảng nhân viên sau khỉ cập nhật (SCD6) 26
Bảng 2-9 Bảng nhân viên sau khi tiếp tục cập nhật (SCD5) 26
Bảng 2-10 Bảng so sảnh các kiến trúc OLAP 37
Bảng 2-11 Bảng dữ kiện của khối 38
Bảng 2-12 Các trục trong MDX 40
Bảng 3-1 Bảng Unit 47
Bảng 3-2 Bảng Nationality 47
Bảng 3-3 Bảng.EmployeeUnitHistory 48
Bảng 3-4 Bảng EmployeeUnit 48
Bảng 3-5 Bảng EmployeePosition 49
Bảng 3-6 Bảng EmloyeeLevel 49
Bảng 3-7 Bảng EmployeeAttrition 49
Bảng 3-8 Bảng Employee 50
Bảng 3-9 Bảng AttritionReason 51
Bảng 3-10 Bảng UnitType 51
Bảng 3-11 Bảng FactResourceWeek 52
Bảng 3-12 Bảng FactResourceMonth 53
Bảng 3-13 Bảng FactNewHire 53
Bảng 3-14 Bảng FactAtrition 53
Bảng 3-15 Bảng DimWeek 54
Bảng 3-16 Bảng DimUnit 54
Trang 12Bảng 3-17 Bảng DimPosition 55
Bảng 3-18 Bảng DimMonth 55
Bảng 3-19 Bảng DimEmployee 56
Bảng 3-20 Bảng DimDate 56
Bảng 3-21 Bảng DimAttritionReason 57
Trang 13DANH MỤC HÌNH ẢNH
Hình 2-1 Các thành phần của kho dữ liệu [11] 6
Hình 2-2 Bảng sự kiện (tác giả) 9
Hình 2-3 Bảng chiều dữ liệu (tác giả) 10
Hình 2-4 Chuyển dữ liệu từ hệ thống điều hành sang môi trường kho dữ liệu không chỉ đơn thuần là việc trích xuất dữ liệu [15] 12
Hình 2-5 Dữ liệu từ các ứng dụng khác nhau cực kỳ rời rạc [15] 12
Hình 2-6 Chuyển đổi dữ liệu từ các hệ thống hiện tại sang môi trường kho dữ liệu một cách hợp lý thì nó sẽ được tích hợp [15] 13
Hình 2-7 Các thực thể và các mối quan hệ [15] 14
Hình 2-8 Mỗi thực thế trong mô hình ERD sẽ được xác định bằng mô hình DIS [15] 14
Hình 2-9 Các quan hệ trong ERD sẽ được phản ánh bằng các kết nối trong DIS [15] 15
Hình 2-10 Các đầu vào của bảng được trình bày bằng hai giao tác [15] 16
Hình 2-11 Các yếu tố thiết kế liên quan đến hiệu suất [15] 16
Hình 2-12 Môi trường đọc ghi dữ liệu [15] 17
Hình 2-13 Sơ đồ hình sao (star schema) [3] 19
Hình 2-14 Sơ đồ bông tuyết (Snowflake schema) [3] 20
Hình 2-15 Sơ đồ chòm sao sự kiện (Fact constellations schema) [3] 21
Hình 2-16 Cách tiếp cân ETL với tầng dữ liệu trung gian [13] 27
Hình 2-17 Cách tiếp cân ETL không có tầng dữ liệu trung gian [13] 28
Hình 2-18 Cách tiếp cân ELT cho phép việc chuyến đối dữ liệu trên máy chủ kho dữ liệu [13] 29
Hình 2-19 Ví dụ khối 3 chiều 38
Hình 3-1 Sơ đồ kho dữ liệu ban đầu dạng cơ sở dữ liệu quan hệ 46
Hình 3-2 Sơ đồ Headcount datamart 52
Hình 3-3 Thiết kế nhóm kỹ năng của nhân viên [11] 57
Hình 3-4 Thiết kế bảng sự kiện và bảng chiều nhân viên [10] 57
Trang 14Hình 3-5 Thiết kế Data Source View 58
Hình 3-6 Thiết kế khối dữ liệu 58
Hình 3-7 Thiết kế Calcutated Members 59
Hình 3-8 Cây phân tích có thể mở rộng và thu gọn các đơn vị theo phân cấp dự án 59
Hình 3-9 Biểu đồ so sánh Headcount của các group trong công ty 60
Hình 3-10 Biểu đồ Headcount của các trung tâm trực thuộc khi click vào nhóm 1 60 Hình 3-11 Xu hướng số lượng nhân viên mới vào và nhân viên nghỉ việc theo tuần 61
Hình 3-12 Biểu đồ cột kết hợp hiện thị song song số lượng và tỷ lệ phần trăm nhân viên Billable 61
Hình 3-13 Biểu đồ đường thẳng Headcount của toàn công ty, Headcount và Billable của trung tâm 62
Hình 3-14 Tùy chỉnh phần giải thích của biểu đồ 62
Hình 3-15 Tùy chỉnh dạng thể hiện của biểu đồ 62
Hình 3-16 Lọc (filter) các giá trị trong biểu đồ 63
Hình 3-17 Drill down biểu đồ xuống các cây phân cấp của dự án 63
Hình 3-18 Sắp xếp thứ tự trình bày các thành phần biểu đồ theo giá trị 64
Trang 15DANH MỤC CHỮ VIẾT TẮT
BI Business Intelligent (Trí tuệ kinh doanh)
DSS Decision Support System (Hệ hỗ trợ ra quyết định)
DM Data Mart (Siêu thị dữ liệu)
DW Data warehouse (Kho dữ liệu)
Trang 16CHƯƠNG 1 TỔNG QUAN
1.1 Tóm tắt đề tài
Đề tài tìm hiểu các đặc tính của kho dữ liệu cơ sở dữ liệu đa chiều, kiến trúc khối Từ đó xây dựng một kho dữ liệu với cơ sở dữ liệu đa chiều về nhân sự của một công ty gia công phần mềm Tiếp theo đề tài trực quan hóa cơ sở dữ liệu này theo từng cấp dự án (project) Kết quả thực tế của đề tài là một hệ thống cung cấp thông tin trực quan về nhân sự cho các cấp quản lý Hệ thống này bao gồm các biểu
đồ, báo cáo… đa chiều, có thể tương tác được (chọn dạng thức hiển thị biểu đồ, chọn loại thông tin, lọc dữ liệu, sắp xếp (order), đi sâu vào chi tiết hoặc tổng hợp lên theo nhiều chiều (drill down và roll up)…)
1.2 Giới hạn nghiên cứu
Đề tài được thực hiện tại một công ty gia công phần mềm lớn Do nhu cầu bảo mật của công ty, xin được phép ẩn danh công ty được sử dụng trong nghiên cứu này, và gọi tắt là công ty
Đề tài thu thập dữ liệu về nhân sự trong từng dự án: những nhân viên đang làm, những nhân viên được khách hàng trả lương (billable) [*], và những nhân viên không được khách hàng trả lương (non billable, backup)[*], những nhân viên nghỉ việc, những nhân viên mới vào Hệ thống cấp bậc quản lý từ trên xuống dưới gồm: công ty, nhóm các trung tâm gia công phần mềm, trung tâm gia công phần mềm, chương trình, dự án
1.3 Phương pháp nghiên cứu
Đầu tiên, đề tài sử dụng phương pháp thu thập thông tin và thống kê Sau đó,
đề tài sử dụng các phương pháp chính là phương pháp thực nghiệm khoa học và phương pháp phân tích tổng kết kinh nghiệm thực tiễn
1.4 Bố cục báo cáo luận văn
Chương đầu tiên nêu tổng quan về luận văn, gồm có tóm tắt đề tài, giới hạn nghiên cứu, phương pháp nghiên cứu
Chương 2 nêu cơ sở lý thuyết về kho dữ liệu và cơ sở dữ liệu đa chiều, trong
đó bao gồm khái niệm, các mục tiêu, các thành phần, việc thiết kế kho dữ liệu, các
Trang 17phương pháp nạp dữ liệu cho kho dữ liệu, mô hình hóa đa chiều và các loại mô hình
đa chiều
Chương 3 nêu yêu cầu của hệ thống, thiết kế kho dữ liệu ban đầu dạng cơ sở
dữ liệu quan hệ, rồi chuyển sang dạng cơ sở dữ liệu đa chiều, hiện thực chuyển đổi thành các khối dữ liệu, trực quan hóa dữ liệu nhân sự trong các cấp dự án và kết quả
là các biểu đồ, báo cáo động
Chương cuối cùng nêu kết luận, hạn chế, đánh giá và hướng phát triển của luận văn
Trang 18CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
2.1 Kho dữ liệu
2.1.1 Khái niệm
Định nghĩa về kho dữ liệu lần đầu được Bill Inmon phát biểu “Kho dữ liệu là một tập hợp dữ liệu hướng chủ đề, tích hợp, cập nhật theo thời gian và ổn kiên định, nhằm hỗ trợ quá trình ra quyết định” [15] Inmon giải thích cụ thể:
Hướng chủ đề (Subject-Oriented): Các hệ thống xử lý giao dịch trực tuyến có thể chứa khối lượng lớn dữ liệu, tuy nhiên những số liệu này có thể hoàn toàn không có ích trong việc phân tích trực tuyến (VD: diễn giải, mã số nhân viên ) Các dữ liệu kiểu này sẽ không được đưa vào kho dữ liệu để hạn chế
dữ liệu cần xem xét xuống mức tối thiểu nhưng cũng bảo đảm các thông tin theo từng vùng chủ đề (Subject area) Một vùng chủ đề là một chủ đề được tách ra từ một tập hợp lớn các chủ đề mà người sử dụng quan tâm trong quá trình kinh doanh (Ví dụ nhân viên, thời gian hay dự án)
Tích hợp (Integrated):có nghĩa là dữ liệu được thu thập trong kho dữ liệu có
thể đến từ nhiều nguồn khác nhau, nhưng được kết hợp thành một đơn vị hợp
lý và có liên quan mật thiết với nhau Ví dụ: dữ liệu có thể lấy từ bộ phận Marketing và Sales để đưa vào kho dữ liệu thành doanh thu hàng năm
Cập nhật theo thời gian (Time-Variant): Yêu cầu quan trong cho kho dữ liệu
là phạm vi về thời gian dài hơn so với các hệ thống tác nghiệp Kho dữ liệu lưu trữ dữ liệu trong quá khứ cũng như hiện tại để hỗ trợ các quyết định kinh doanh trong tương lai Dữ liệu quá khứ sẽ trợ giúp trong việc xác định các mẫu dữ liệu đưa đến một số quyết định kinh doanh nào đó Nó phụ thuộc vào người quản trị và nhà quản lý doanh nghiệp về việc quyết định cách lưu trữ dữ liệu trong kho dữ liệu trong bao lâu Yếu tố thời gian được lưu trữ trong CSDL
Ồn định (Non-Volatile): việc cập nhật dữ liệu được lưu trữ trong kho dữ liệu
sẽ không diễn ra, mà thay vào đó là các thông tin được tổ chức để lưu trữ các thay đổi của dữ liệu đó Dữ liệu trong kho dữ liệu được sử dụng cho việc phân
Trang 19tích nên các thao tác xóa hay cập nhật dữ liệu có thể làm ảnh hưởng tới việc phân tích này Vì vây, nói chung là dữ liệu trong kho dữ liệu không bao giờ được xóa bỏ hay cập nhật Bất cứ khi nào một trường cụ thể hoặc mục dữ liệu được cập nhật tại nguồn thì phiên bản mới của nó được lưu trữ trong kho dữ liệu để vô hiệu phiên bản dữ liệu cũ
Ralph Kimball đưa ra một định nghĩa đơn giản hơn, như đề cập trong cuốn
“The Data Warehouse Toolkit”: kho dữ liệu là một nơi sao lưu dữ liệu tác nghiệp, nhưng được cấu trúc đặc thù để phục vụ cho việc truy vấn và phân tích [11] Định nghĩa này ít đi vào chi tiết hơn định nghĩa của Inmon, nhưng vẫn bảo đảm tính tổng quát của kho dữ liệu
2.1.2 Sự khác nhau của cơ sở dữ liệu tác nghiệp và kho dữ liệu
Thông thường, khi tin học hóa hoạt động quản lý một tổ chức, người ta thường xây dựng CSDL cho các hoạt động quản lý nghiệp vụ thường xuyên của tổ chức
và ta có được CSDL tác nghiệp Hệ thống thông tin tác nghiệp với các dữ liệu tác nghiệp có các đặc điểm sau đây:
Trợ giúp cho công việc hàng ngày
Lưu các dữ liệu hiện thời, phản ánh trạng thái của công việc
Hoạt động của hệ thống thường đơn giản, giới hạn trong một phạm vi nghiệp
vụ đã được xác định, và hoạt động chủ yếu là cập nhật dữ liệu
Xử lý thông tin hướng đến việc xử lý nhanh các tác vụ đã được xác định trước
Người dùng là người làm công việc cụ thể, ở mức độ chi tiết như thư ký,nhân viên bán hàng, thủ kho,…
Thiết kế thường khó hiểu (các bảng dữ liệu phải đạt chuẩn 3 trở lên) đối với người dùng và che dấu đi những quan hệ trực quan của đời thường
Trong khi đó kho dữ liệu chủ yếu trợ giúp quá trình phân tích và ra
quyết định cần có các tính chất sau:
Trợ giúp quá trình quản lý và điều hành công việc
Lưu các dữ liệu mang tính lịch sử, thể hiện cách nhìn ổn định của công việc trong một giai đoạn hay các thời điểm trong quá khứ
Trang 20 Được tối ưu hóa cho việc truy vấn, với câu hỏi đã xác định trước hay được thiết lập theo yêu cầu người sử dụng
Người dùng là những nhà quản lý, phân tích, dự báo hay đánh giá công việc
và ra quyết định, các yêu cầu thường đa dạng và có tính nghiệp vụ chuyên ngành
Dữ liệu được thiết kế dễ hiểu và dễ sử dụng đối với người dùng
2.1.3 Các mục tiêu của kho dữ liệu
Trước khi đi vào chi tiết của các thành phần kho dữ liệu, chúng ta sẽ tìm hiểu
về các mục tiêu cơ bản của kho dữ liệu Các vấn đề nảy sinh có thể xảy ra là:
Chúng ta có cả núi dữ liệu nhưng không thể truy cập được
Chúng ta cần cắt và chia nhỏ dữ liệu bằng mọi cách
Mọi người có thể dễ dàng lấy dữ liệu một cách trực tiếp
Chỉ cho biết những thành phần quan trọng
Ngăn chặn việc diễn giải cùng một vấn đề mà khác nhau các con số
Chúng ta muốn mọi người sử dụng thông tin để hỗ trợ việc ra quyết định Như vậy, với các yêu cầu về công việc như trên, chúng ta sẽ chuyển đổi thành các yêu cầu của một kho dữ liệu Các mục tiêu này được phát triển dựa trên các yêu cầu và việc quản lý kinh doanh
Truy cập dễ dàng: Thông tin lưu trữ trong kho dữ liệu phải trực quan và dễ hiểu với người dùng Dữ liệu nên được trình bày thông qua các tên gọi quen thuộc và gần gũi với nghiệp vụ của người dùng Tốc độ truy cập kho dữ liệu phải nhanh Do phải xử lý một số lượng bản ghi lớn cùng một lúc nên đây là một trong những yêu cầu cơ bản cần phải có của một kho dữ liệu
Thông tin nhất quán: Dữ liệu trong một kho dữ liệu thường đến từ nhiều nguồn khác nhau Do vậy trước khi được đưa vào kho dữ liệu dữ liệu cần phải được làm sạch và đảm bảo về chất lượng Việc làm sạch sẽ giúp cho việc đồng nhất dữ liệu trở nên dễ dàng Một nguyên tắc được đặt ra cho qúa trình này là: Nếu dữ liệu có cùng tên thì bắt buộc phải chỉ đến cùng một địa chỉ Nếu dữ liệu chỉ đến các thực thể khác nhau thì phải được đặt tên khác nhau
Trang 21 Thích nghi với sự thay đổi: kho dữ liệu cần phải được thiết kế để xử lý những thay đổi có thể xảy ra, vì thay đổi là điều không thể tránh khỏi cho bất cứ ứng dụng nào Nói vậy có nghĩa là khi có thay đổi mới dữ liệu cũ trong kho dữ liệu vẫn phải đảm bảo tính đúng đắn
Hỗ trợ ra quyết định: Đây là mục tiêu quan trọng nhất của doanh nghiệp khi xây dựng kho dữ liệu Những người quản lý doanh nghiệp muốn dưa vào thông tin để từ đó đưa ra những chiến lựơc góp phần đem lại kết quả kinh doanh tốt nhất
Bảo mật: Dữ liệu trong kho dữ liệu đến từ nhiều nguồn khác nhau Vì vậy việc đảm bảo thông tin không bị lộ ra ngoài là một điều vô cùng quan trọng
2.1.4 Các thành phần của một kho dữ liệu:
Hình 2-1 Các thành phần của kho dữ liệu [11]
Có bốn thành phần riêng rẽ và phân biệt sẽ được trình bày trong môi trường kho dữ liệu, đó là: hệ thống nguồn dữ liệu, khu vực tầng dữ liệu, khu vực trình bày
dữ liệu và các công cụ trình bày dữ liệu
Hệ thống nguồn dữ liệu (Operational Source Systems):
Trang 22Các nguồn dữ liệu thường nằm trong hệ thống xử lý giao dịch trực tuyến
OLTP (On-Line Transaction Processing ), hay còn go ̣i là TPS (Transaction Processing Systems)
o Hiê ̣u suất và tính sẵn sàng ở mức đô ̣ cao
o Thường truy vấn mô ̣t bảng ghi ta ̣i mô ̣t thời điểm (one-record-at a time), có thể hiểu là truy vấn tại một thời điểm nhấ t định
o Đây là hoa ̣t đô ̣ng thông thường của các tổ chức
o Với mô ̣t hê ̣ thống OLTP thì đáng tin câ ̣y và phù hợp , nhưng giữa các
hê ̣ thống OLTP khác nhau thường có những xung đô ̣t nhất đi ̣nh
o Các loại định dạng dữ liệu và cấu trúc dữ liê ̣u khác nhau trong các hê ̣ thống OLTP khác nhau
Theo giả đi ̣nh của Kimball và cô ̣ng sự thì:
- Hệ thống nguồn không đươ ̣c truy vấn rô ̣ng và đô ̣t xuất
- Duy trì dữ liê ̣u li ̣ch sử rất ít (dữ liê ̣u quá khứ, hiê ̣n ta ̣i…)
Khu vực tầng dữ liệu (Data Staging Area):
Khu vực tầng dữ liệu của kho dữ liệu là nơi diễn ra việc lưu trữ và cả quá trình
xử lí phổ biến như là trích xuất – chuyển đổi – nạp dữ liệu Khu vực tầng dữ liệu gồm tất cả các thành phần giữa các hệ thống nguồn dữ liệu và khu vực trình bày dữ liệu Trong kho dữ liệu, dữ liệu làm việc thô được chuyển đổi vào kho dữ liệu để chuyển giao cho người sử dụng có yêu cầu truy vấn và sử dụng
Do đó, người sử dụng sẽ không được phép truy cập vào khu vực tầng dữ liệu này Khu vực tầng dữ liệu bị chi phối bởi các hoạt động đơn giản là phân loại
và xử lý tuần tự Đôi khi khu vực tầng dữ liệu không dựa trên công nghệ liên quan mà thay vào đó là bao gồm một hệ thống các tập tin Sau khi xác nhận dữ liệu cho phù hợp với những quy tắc công việc được định nghĩa là một –nhiều
và một – một, thì bước cuối cùng trong việc xây dựng một cơ sở dữ liệu vật lý chuẩn 3 đầy đủ là vô nghĩa
Trình bày dữ liệu (Data Presentation):
Khu vực trình bày dữ liệu là nơi dữ liệu được tổ chức, lưu trữ và sẵn có cho các truy vấn trực tiếp của người dùng, các báo cáo và các ứng dụng phân tích
Trang 23khác Vì khu vực tầng dữ liệu là khu vực phía sau nên khu vực trình bày dữ liệu sẽ là kho dữ liệu cho các công việc xử lý liên quan Đó là tất cả những thứ
mà việc xử lý dữ liệu cần quan tâm thông qua các công cụ truy cập dữ liệu Có thể xem khu vực trình bày như là một loạt các khối dữ liệu tích hợp lại Với hình thức đơn giản nhất, một siêu thị dữ liệu (data mart) trình bày dữ liệu từ một quy trình công việc đơn giản
Mô hình đa chiều là một tên mới cho một kỹ thuật cũ làm cho cơ sở dữ liệu đơn giản và dễ hiểu Bắt đầu từ những năm 1970, các tổ chức, công ty tư vấn, người dùng và các nhà cung cấp CNTT đã hướng về một cấu trúc chiều đơn giản để làm cho các nhu cầu cơ bản của con người phù hợp với sự đơn giản
Mô hình chuẩn hóa là vô cùng hữu ích cho việc xử lí các công việc điều hành bởi vì một giao dịch thêm hoặc cập nhật chỉ cần tác động vào cơ sở dữ liệu ở một nơi Tuy nhiên, các mô hình chuẩn hóa là quá phức tạp đối với dữ liệu kho cho việc thực hiện truy vấn.Người dùng không thể hiểu, xác định hoặc ghi nhớ các mô hình chuẩn hóa tương tự như hệ thống đường giao thông.Việc sử dụng các mô hình chuẩn hóa trong khu vực trình bày dữ liệu của kho dữ liệu sẽ phá toàn bộ mục đích của kho dữ liệu, cụ thể là, truy vấn dữ liệu trực quan và hiệu suất cao
Thay vào đó, mô hình đa chiều giải quyết các vấn đề về lược đồ phức tạp trong khu vực trình bày dữ liệu Một mô hình đa chiều chứa các thông tin giống như một mô hình chuyển hóa, như gói dữ liệu trong định dạng thiết kế với mục tiêu là làm cho người dùng dễ hiểu, tăng hiệu suất truy vấn và thay đổi linh hoạt
Trong mô hình đa chiều có hai thuật ngữ hay được sử dụng, đó là bảng sự kiện (fact tables) và bảng chiều dữ liệu (dimension tables)
Bảng sự kiện (fact tables): một bảng sự kiện là một bảng chính trong mô
hình đa chiều có chức năng lưu trữ các dữ liệu tổng hợp cho quá trình hoạt động Người dùng cố gắng để lưu trữ dữ liệu tổng hợp từ kết quả của một quá trình công việc trong một siêu thị dữ liệu đơn lẻ Bởi vì dữ liệu tổng hợp đa phần là lớn nhất trong bất kỳ siêu thị dữ liệu nào nên cần tránh việc lặp lại ở nhiều nơi khác
Trang 24Hình 2-2 Bảng sự kiện (tác giả)
Việc sử dụng thuật ngữ sự kiện là để trình bày độ lớn của dữ liệu Chúng ta có
thể tưởng tượng là từ một thị trường biết được bán ra với số lượng bao nhiêu và doanh số mỗi ngày cho mỗi sản phẩm trong mỗi cửa hang như thế nào Độ lớn dữ liệu được thực hiện tại các giao điểm của tất cả các chiều (ngày, sản phẩm và cửa hàng) Danh sách các chiều sẽ xác định đặc tính của bảng sự kiện tổng hợp và cho
ta biết phạm vi của công việc là gì
Bảng chiều dữ liệu (dimension tables):
Trang 25Hình 2-3 Bảng chiều dữ liệu (tác giả)
Bảng chiều dữ liệu là bảng luôn đồng hành không thể tách rời với bảng sự kiện Bảng chiều dữ liệu chứa các mô tả văn bản của công việc Trong một mô hình
đa chiều, bảng chiều dữ liệu sẽ có nhiều cột hay nhiều thuộc tính Những thuộc tính này mô tả các hàng trong bảng chiều dữ liệu.Trong bảng chiều dữ liệu chiều, càng nhiều mô tả văn bản càng tốt Bảng dữ liệu chiều ít khi có hơn 50 thuộc tính Kích thước bảng chiều dữ liệu thường ít về số hàng (ít hơn một triệu hàng rất nhiều), nhưng có nhiều cột thuộc tính Mỗi chiều được xác định bởi khóa chính duy nhất của nó, được ký hiệu là PK (primary key) và là khóa ngoại cho bảng sự kiện tổng hợp nào kết hợp với nó
Thuộc tính của bảng chiều dữ liệu đóng vai trò quan trọng trong kho dữ liệu Bởi vì chúng là nguồn của hầu hết mọi ràng buộc và dữ liệu báo cáo, nên chúng là chìa khóa làm cho kho dữ liệu dễ hiểu và dễ sử dụng Sức mạnh của kho dữ liệu là tỉ
lệ thuận với chất lượng và chiều sâu của các thuộc tính của bảng chiều dữ liệu Thời
Trang 26gian dành cho việc cung cấp các thuộc tính với mô tả kỹ thuật rõ ràng càng nhiều thì kho dữ liệu càng tốt Thời gian dành cho việc tính toán giá trị trong một cột thuộc tính càng nhiều thì kho dữ liệu càng tốt Thời gian dành cho việc đảm bảo chất lượng giá trị trong một cột thuộc tính càng nhiều thì kho dữ liệu càng tốt
Công cụ truy cập dữ liệu (Data Access Tools):
Thành phần cuối cùng trong môi trường kho dữ liệu là các công cụ truy cập dữ liệu Việc sử dụng thuật ngữ công cụ là để đề cập đến sự đa dạng về khả năng
có thể được cung cấp cho người dùng để tác động lên khu vực trình bày dữ liệu cho quá trình phân tích ra quyết định Theo định nghĩa, tất cả các công cụ truy cập dữ liệu truy vấn dữ liệu từ khu vực trình bày của kho dữ liệu Rõ ràng, việc truy vấn là toàn bộ vấn đề trong việc sử dụng kho dữ liệu
Một công cụ truy cập dữ liệu có thể đơn giản như một công cụ truy vấn chuyên biệt hoặc phức tạp như một mô hình khai thac dữ liệu hoặc mô hình ứng dụng Các công cụ truy vấn đặc biệt có thể được hiểu và sử dụng có hiệu quả chỉ với một nhỏ tỷ lệ người dùng nhỏ hẹp trong kho dữ liệu tiềm năng Phần lớn người dung mong muốn truy cập dữ liệu thông qua các ứng dụng với tham số có sẵn Một
số các công cụ truy cập dữ liệu phức tạp hơn, như các công cụ dự báo hoặc mô hình, thực sự có thể nạp kết quả của chúng trở lại vào khu vực nguồn dữ liệu hệ thống hoặc các khu vực tầng dữ liệu/ trình bày dữ liệu của kho dữ liệu
2.1.5 Mô hình dữ liệu và việc thiết kế kho dữ liệu:
Có hai yếu tố chính trong việc xây dựng một kho dữ liệu: thiết kế giao diện
từ các hệ thống vận hành và thiết kế bản thân kho dữ liệu Kho dữ liệu được xây dựng theo phong cách cải tiến, nghĩa là một gia đoạn phát triển mới dựa vào kết quả đạt được từ các giai đoạn trước đó Đầu tiên, một phần dữ liệu được xác định Sau
đó nó được sử dụng và xem sét kỹ lưỡng bởi các nhà phân tích hệ hỗ trợ ra quyết định Tiếp theo, dựa trên thông tin phản hồi từ người dùng cuối, dữ liệu được sửa đổi hoặc các dữ liệu khác được thêm vào Sau đó, các phần khác của kho dữ liệu được xây dựng và cứ như thế Như thế, vòng lặp thông tin phản hồi sẽ được tiếp tục trong suốt toàn bộ sự tồn tại của kho dữ liệu Do đó, kho dữ liệu không thể thiết kế như các hệ thống yêu cầu hướng cổ điển được [15]
Trang 27Dữ liệu điều hành: Ban đầu, dữ liệu hướng giao dịch điều hành bị khóa trong các hệ thống kế thừa hiện tại Mặc dù chúng ta nghĩ rằng việc tạo các kho dữ liệu chỉ đơn thuần liên quan đến việc lấy dữ liệu hoạt động này ra và nạp vào kho dữ liệu Việc chỉ lấy dữ liệu từ môi trường kế thừa và đặt nó trong kho dữ liệu đạt được rất ít hiệu quả cho kho dữ liệu
Hình 2-4 Chuyển dữ liệu từ hệ thống điều hành sang môi trường kho dữ liệu không
chỉ đơn thuần là việc trích xuất dữ liệu [15]
Hình 2-5 Dữ liệu từ các ứng dụng khác nhau cực kỳ rời rạc [15]
Hình 2.5 cho thấy thiếu sự tích hợp trong môi trường hệ thống hiện hành tiêu biểu Lấy dữ liệu vào kho dữ liệu mà không cần tích hợp nó là một sai lầm cơ bản Một ví dụ đơn giản của sự thiếu tích hợp dữ liệu là việc mã hóa không nhất quán, như thể hiện bởi việc mã hóa giới tính Trong một ứng dung, giới tính mã hóa
là 1/0 Ứng dụng khác nó được mã hóa là x/y Trong một ứng dung khác nữa, được
mã hóa như m/f Tất nhiên, việc mã hóa giới tính là không quan trọng nếu như nó
được thực hiện nhất quán Khi dữ liệu đi vào kho dữ liệu, các giá trị khác nhau của kho ứng dụng phải được giải mã một cách chính xác và ghi nhận lại với một giá trị thích hợp
Trang 28Một ví dụ khác, hãy xem xét bốn ứng dụng có cùng trường pipeline.Trường
pipeline được đo bằng các đơn vị khác nhau Trong một ứng dụng được đo bằng
cm, trong khi ứng dụng khác là inch, v v Trong kho dữ liệu thì trường pipeline
đo như thế nào là không quan trọng miễn là nó được đo nhất quán Khi mỗi ứng dụng chuyển dữ liệu của nó cho kho dữ liệu, các phép đo của trường pipeline được chuyển đổi thành một đơn vị đo nhất quán
Hình 2-6 Chuyển đổi dữ liệu từ các hệ thống hiện tại sang môi trường kho dữ liệu
một cách hợp lý thì nó sẽ được tích hợp [15]
Có ba cấp độ của mô hình dữ liệu: mô hình cao cấp (còn gọi là mức độ quan
hệ thực thể), mô hình cấp trung (còn gọi là mục dữ liệu) và mô hình cấp thấp (còn gọi là mô hình vật lý)
Mô hình dữ liệu cấp cao: Mô hình cấp cao đề cao mối quan hệ và các thực thể như hình 2.7 sau đây Tên của thực thể được bao quanh bởi một hình bầu dục Mối quan hệ giữa các thực thể được mô tả bằng các đường mũi tên Hướng và
số lượng mũi tên cho biết lượng của mối quan hệ và chỉ có mối quan hệ được trực tiếp chỉ ra Các phụ thuộc ngầm định sẽ được giảm thiểu khi làm theo cách như vậy
Trang 29Hình 2-7 Các thực thể và các mối quan hệ [15]
Mô hình dữ liệu cấp trung: Sau khi mô hình dữ liệu cấp cao đƣợc tạo ra, cấp
độ tiếp theo đƣợc thành lập, đó là mô hình dữ liệu cấp trung hay gọi là DIS Trong hình 2.8, đối với mỗi thực thể đƣợc xác định trong các mô hình dữ liệu cấp cao thì sẽ có một mô hình dữ liệu cấp trung đƣợc tạo ra Mô hình dữ liệu cấp cao xác định bốn thực thể Mỗi khu vực sau đó đƣợc phát triển thành mô hình cấp trung của riêng nó
Hình 2-8 Mỗi thực thế trong mô hình ERD sẽ được xác định bằng mô hình DIS [15]
Trang 30Khi một quan hệ được xác định trong mô hình ERD thì nó sẽ được trình bày bằng một cặp quan hệ kết nối ở mô hình DIS Một trong các cặp quan hệ đó sẽ được chỉ ra trong hình 2.9 sau đây
Hình 2-9 Các quan hệ trong ERD sẽ được phản ánh bằng các kết nối trong DIS [15]
Trong mô hình ERD, một quan hệ giữa customer và account được xác định Trong mô hình DIS cho account ,tồn tại một kết nối bên dưới account Điều này chỉ
ra rằng một account có thể có nhiều customer gắn kết với nó Trong mô hình DIS này, không có kết nối tương ứng bên dưới customer Ở đây sẽ có một kết nối tới
account, chỉ ra rằng một customer có thể có 1 hay nhiều account
Mô hình dữ liệu vật lý: Các mô hình dữ liệu vật lý được tạo ra từ mô hình dữ
liệu cấp trung chỉ bằng việc mở rộng mô hình dữ liệu cấp trung thêm vào khóa
và các đặc tính vật lý của mô hình đó Tại thời điểm này, mô hình dữ liệu vật
lý trông giống như một loạt các bảng, được gọi là bảng quan hệ
Trang 31Hình 2-10 Các đầu vào của bảng được trình bày bằng hai giao tác [15]
Mặc dù có thể nói rằng các bảng đã sẵn sàng để cụ thể hóa vào thiết kế cơ sở
dữ liệu vật lý, nhưng vẫn còn lại một bước thiết kế cuối cùng, đó là tính đến đặc tính hiệu suất Với kho dữ liệu, bước đầu tiên làm như thế là mang tính quyết định trên việc kết tinh dữ liệu và phân hoạch dữ liệu Điều này rất quan trọng
Sau khi việc kết tinh dữ liệu và phân hoạch được tính đến, một loạt các thiết
kế vật lý khác được đưa vào thiết kế, như đã nêu trong hình 2.11 Điều quan tâm nhất trong thiết kế cần cân nhắc là sử dụng việc đọc ghi vật lý I/O (đầu vào/đầu ra) Việc đọc ghi vật lý I/O là hoạt động đưa dữ liệu vào máy tính hay gửi dữ liệu ra ngoài để lưu trữ Một trường hợp đọc ghi I/O đơn giản được thể hiện trong hình 2.12
Hình 2-11 Các yếu tố thiết kế liên quan đến hiệu suất [15]
Trang 32Hình 2-12 Môi trường đọc ghi dữ liệu [15]
Công việc của các nhà thiết kế kho dữ liệu là để tổ chức dữ liệu vật lý cho việc trả về số lượng tối đa các bản ghi từ việc thực hiện đọc ghi vật lý I/O Ví dụ, giả sử một lập trình viên phải lấy năm bản ghi dữ liệu Nếu các bản ghi này được tổ chức thành các khối dữ liệu khác nhau trong việc lưu trữ, thì năm thao tác đọc ghi sẽ được thực hiện Nhưng nếu các nhà thiết kế có thể dự đoán trước rằng các bản ghi này sẽ cần thiết thành như một nhóm và có thể đặt cạnh nhau vào cùng một khối, thì chỉ cần một thao tác đọc ghi là đủ, do đó làm cho chương trình chạy nhanh hơn nhiều
2.2 Cơ sở dữ liệu đa chiều
Để có thể trực quan hóa cơ sở dữ liệu đa chiều, trước tiên cần tìm hiểu lý thuyết về các đặc tính của cơ sở dữ liệu đa chiều Từ đó xây dựng một kiến trúc khối về dữ liệu nhân sự của công ty
2.2.1 Mô hình đa chiều
Môi trường hoạt động của kho dữ liệu rất khác so với các hệ thống giao dịch hoặc tác nghiệp Vì thế nó cũng yêu cầu các phương pháp khác cho thiết kế cơ sở
dữ liệu Kimball đề nghị hai quy tắc cơ bản cho việc thiết kế:
Khả năng truy xuất của người dùng cuối (tính rõ ràng của cấu trúc cơ sở dữ liệu): Trong kho dữ liệu, người dùng truy xuất dữ liệu trực tiếp sử dụng các công cụ truy vấn và phân tích với giao diện thân thiện Điều này có nghĩa là người dùng cần hiểu dữ liệu có ý nghĩa như thế nào để họ sử dụng hiệu quả
Tính chỉ đọc: Trong kho dữ liệu, người dùng có thể truy xuất dữ liệu nhưng không thể hiệu chỉnh nó Ngược lại với trong môi trường tác nghiệp, nơi người
Trang 33dùng có thể hiệu chỉnh dữ liệu trực tuyến Đối với hầu hết các yêu cầu thực tế,
có thể xem kho dữ liệu là một cơ sở dữ liệu chỉ đọc, vì nó chỉ cập nhật dữ liệu thông qua quá trình chiết xuất, chuyển đổi và tải dữ liệu (Extract, Transform, Load)
Các kỹ thuật thiết kế truyền thống như mô hình quan hệ thực thể, mô hình chuẩn hóa được thiết kế chủ yếu cho việc lấy dữ liệu hiệu quả và tin cậy Tuy nhiên, những kỹ thuật này là một chướng ngại cho việc truy xuất dữ liệu Nguyên nhân là cấu trúc quá phức tạp cho người dùng hiểu và thao tác Thông thường một cơ sở dữ liệu quan hệ bao gồm nhiều bảng dữ liệu, được kết nối với nhau khá phức tạp mà hầu hết người dùng bình thường không thể hiểu được
Nguyên nhân chủ yếu dẫn đến sự phức tạp của cơ sở dữ liệu tác nghiệp là sử dụng chuẩn hóa cao Sự chuẩn hóa có xu hướng sinh ra nhiều bảng Nó giảm tối thiểu sự dư thừa dữ liệu và tăng hiệu quả cập nhật tối đa Nó cũng tăng cường tính toàn vẹn của dữ liệu bởi tránh được sự không nhất quán và ngăn chặn việc thêm, xóa, sửa bất hợp lý
Tuy nhiên cơ sở dữ liệu chuẩn hóa cao cũng có những nhược điểm Nó có xu hướng làm giảm tốc độ truy xuất dữ liệu bởi số lượng các kết nối rất lớn và phức tạp Vì vậy, việc chuẩn hóa dữ liệu sẽ tối ưu cho cập nhật hơn là truy xuất Bên cạnh
đó, kho dữ liệu là cơ sở dữ liệu chỉ đọc, chuẩn hóa không thực sự phù hợp cho thiết
kế kho dữ liệu
2.2.2 Mô hình hóa đa chiều:
Mô hình hóa đa chiều giải quyết những hạn chế của những phương pháp truyền thống cho kho dữ liệu Mô hình lần đầu tiên được định nghĩa bởi Kimball Đây là một kỹ thuật thiết kế cơ sở dữ liệu cho một kho dữ liệu cụ thể Mục tiêu của phương pháp là:
Cấu trúc dữ liệu đơn giản cho người dùng dễ hiểu được và thao tác
Tối ưu hiệu quả truy vấn dữ liệu (đối lập với tối ưu hiệu quả cập nhật)
Mô hình đa chiều là một thành phần then chốt trong kho dữ liệu, bởi vì nó cung cấp một phương pháp trình bày dễ hiểu và thao tác dễ dàng bởi người dùng
Trang 34Mô hình đa chiều trở thành một phương pháp chiếm ưu thế trong thiết kế kho dữ liệu bởi những ưu điểm của nó so với những phương pháp truyền thống
2.2.3 Các loại mô hình đa chiều
Sơ đồ hình sao (star schema): Một bảng sự kiện ở trung tâm được kết nối với một tập các bảng chiều
Hình 2-13 Sơ đồ hình sao (star schema) [3]
Sơ đồ bông tuyết (Snowflake schema): Một mở rộng của sơ đồ hình sao trong
đó một vài cấu trúc chiều được chuẩn hóa thành một tập các bảng chiều nhỏ hơn, hình thức tương tự như bông tuyết
Trang 35Hình 2-14 Sơ đồ bông tuyết (Snowflake schema) [3]
Sơ đồ chòm sao sự kiện (Fact constellations schema): Bảng sự kiện phức chia
sẻ các bảng chiều, tạo khung nhìn một tập các “ngôi sao”, nên còn đƣợc gọi sơ
đồ ngân hà (galaxy schema) hoặc chòm sao sự kiện
Trang 36Hình 2-15 Sơ đồ chòm sao sự kiện (Fact constellations schema) [3]
2.2.4 Các nguyên lý thiết kế mô hình đa chiều
2.2.4.1 Sử dụng khóa tạm (Surrogate Keys)
Sử dụng khóa tạm đóng vai trò là khóa chính của các bảng chiều là một nguyên lý thiết kế quan trọng khi xây dựng kho dữ liệu Khóa tạm là một thuộc tính
tự phát sinh (thường bắt đầu bằng 1 và tăng dần) mà không cần quan tâm đến ý nghĩa của nó Mục đính của nó là để tiết kiệm dung lượng lưu trữ trong kho dữ liệu bằng cách sử dụng các kiểu dữ liệu có dung lượng nhỏ
Ví dụ, trong sự kiện bán hàng, chúng ta có năm khóa ngoại bao gồm thời gian, kho, khách hàng, sản phẩm, nhân viên Trong đó, thời gian sử dụng loại dữ liệu thời gian (8 byte), 4 khóa còn lại sử dụng các khóa trong hệ thống nguồn với độ dài 15
ký tự (15 byte) Như vậy, tương ứng với một mẩu tin trong bảng sự kiện ta tốn 68 byte (15x4 + 8 byte cho khóa thời gian) Với 100 triệu mẩu tin, ta phải cần 6.5 GB cho lưu trữ thông tin Nếu sử dụng khóa tạm ta có thể giảm 20 byte cho mỗi khóa (5 integer), kết quả là chỉ tốn 1.9 GB
Bên cạnh đó, sử dụng khóa tạm còn có một số ưu điểm sau:
Trang 37 Luôn luôn chỉ có một cột khóa duy nhất cho mỗi bảng chiều, vì thế chỉ số (index) khóa chính sẽ nhỏ hơn
Chỉ số index ở dạng kiểu số nên nó có tốc độ truy cập nhanh hơn kiểu chuỗi hoặc kiểu thời gian
Có thể lưu lại các giá trị lịch sử của dữ liệu bởi vì khóa tạm cho phép lưu trữ nhiều phiên bản của một đối tượng khi đối tượng được cập nhật bằng cách sinh thêm khóa tạm mới
Khóa tạm cho phép giải quyết các quan hệ phức tạp, giá trị không rõ ràng và
dữ liệu không liên quan, vì thế có thể tránh được sử dụng phép outer joins trong truy vấn
Khóa tạm có thể được sinh bằng hai cách: sử dụng chức năng của hệ quản trị
cơ sở dữ liệu (auto- increment hoặc sequences) hoặc sử dụng công tụ ETL để sinh khóa tạm tự động
2.2.4.2 Cột kiểm soát (Audit Columns)
Trong kho dữ liệu, chúng ta nên sử dụng các cột kiểm soát để quản lý dữ liệu được tốt hơn Các cột này cho phép chúng ta theo dõi các dữ liệu quá khứ của tài nguyên nguồn và nói cho chúng ta biết thời gian chính xác khi một mẩu tin được thêm vào hoặc cập nhật Quy trình ETL quản lý tất cả các cập nhật dữ liệu trong kho, nhưng đôi khi chúng ta cũng cần thao tác thủ công để giải quyết vấn đề
Các cột kiểm soát thường có các dạng như sau:
Insert timestamp
Insert batch process
Update timestamp
Update batch process
2.2.4.3 Chiều thời gian (date dimension)
Chiều thời gian là một chiều quan trọng trong kho dữ liệu Hầu hết các kho dữ liệu điều tồn tại chiều thời gian Nó phản ảnh bản chất của các chiều trong kho dữ liệu về mặt thời gian
Chiều thời gian có thể được phân thành 4 nhóm như sau:
Trang 38 Date format: là những cột dạng ngày, chúng có nhiều định dạng khác nhau
như “14/02/2010” định dạng theo kiểu Date, “14-02-2010” định dạng theo kiểu Ansi date hoặc “02/17/2008 00:00:00.000” định dạng theo kiểu SQL
Calendar date attribute: dạng này chứa những thành phần của ngày như ngày,
tháng, năm
Fiscal attribute: chứa những thành phần của dạng ngày tài chính như fiscal
week, fiscal period, và fiscal year
Indicator columns: dạng này chứa những giá trị boolean được dùng để xác
định liệu ngày có thỏa một điều kiện nào đó không Ví dụ, trường holiday là 1 nếu là ngày nghỉ, ngược lại là 0
2.2.4.4 Quản lý thay đổi dữ liệu trên bảng chiều (Handling Dimension Changes)
Một trong những thách thức chính khi xây dựng kho dữ liệu là làm cách nào
để thích ứng với các thay đổi trong quá trình thao tác dữ liệu Một vài thay đổi thì thường xuyên xảy ra, một số khác thì hiếm khi xảy ra Một vài thay đổi thì ảnh hưởng trên một mẩu tin, một số khác thì ảnh hường trên toàn bộ bảng dữ liệu Một vài thay đổi thì có liên quan đến giá trị lịch sử, trong khi một số khác thì thay thế giá trị cũ Giải quyết vấn đề trên, nhiều chiến lược khác nhau đã được áp dụng và hình thức này gọi là quản lý thay đổi dữ liệu trên bảng chiều (Slowly Changes Dimension - SCD)
Sau đây là một số dạng SCD thường được sử dụng :
SCD 1: ghi chồng (overwrite)
SCD 1 là phương pháp ghi chồng dữ liệu mới lên dữ liệu cũ Vì thế, dạng SCD này không lưu trữ các giá trị lịch sử của dữ liệu
Đây là một ví dụ CSDL thông tin về nhân viên:
Bảng 2-1 Ví dụ CSDL thông tin nhân viên
NV_ID MaNV HoTen NoiSinh
1 3010213 Trịnh Q Bình Nguyên Bến Tre
2 1409187 Phan Thị Trúc Thành Cần Thơ
3 3010187 Trịnh Minh Trí Bac Lieu
Trang 39Trong ví dụ này, MaNV là khóa ban đầu (natural key) và NV ID là khóa
tạm (Surrogate key) Bây giờ chúng ta giả sử rằng nhân viên có mã 1409187 thay
đổi nơi sinh từ cần Thơ thành Hậu Giang Khi đó dữ liệu mới sẽ ghi chồng lên dữ liệu cũ như sau:
Bảng 2-2 Bảng CSDL thông tin nhân viên sau cập nhật (SCD1)
NV_ID MaNV HoTen NoiSinh
1 3010213 Trịnh Q Bình Nguyên Ben Tre
2 1409187 Phan Thị Trúc Thành Hậu Giang
3 3010187 Trịnh Minh Trí Bac Lieu Bất lợi của dạng SCD 1 là không thể lưu trữ được các giá trị dữ liệu lịch sử trong kho dữ liệu Tuy nhiên, thuận lợi của nó là rất dễ dàng trong bảo trì
SCD 2: Add row (Thêm dòng)
Dạng SCD 2 cho phép theo dõi giá trị lịch sử của dữ liệu bởi có thể tạo ra nhiều mẩu tin cho một khóa ban đầu (nature keys) tương ứng với các khóa tạm riêng biệt và các phiên bản khác nhau của mẩu tin
Với dạng SCD 2, chúng ta không bị hạn chế lưu trữ các giá trị lịch sử trước đó của mẩu tin Nếu một mẩu tin được cập nhật trong dữ liệu nguồn, sau khi được cập nhật vào kho nó sẽ sinh một mẩu tin mới và đồng thời cập nhật lại trạng thái của mẩu tin cũ là 0 hoặc False để đánh dấu mẩu tin tạm thời ngưng sử dụng
Tương tự như ví dụ trên, nếu một nhân viên có mã 1409187 thay đổi nơi sinh
từ cần Thơ thành Hậu Giang thì dữ liệu sẽ giống như bảng phía dưới với số phiên bản mẩu tin tự động tăng sau mỗi lần thay đổi:
Bảng 2-3 Bảng CSDL thông tin nhân viên sau cập nhật (SCD2)
SCD 3: Thêm cột (Add column)
NV_ID MaNV HoTen NoiSinh TrangThai PhienBan
1 3010213 Trịnh Q Bình Nguyên Ben Tre 1 1
2 1409187 Phan Thị Trúc Thành Cần Thơ 0 1
3 3010187 Trịnh Minh Trí Bac Lieu 1 1
4 1409187 Phan Thị Trúc Thành Hậu Giang 1 2
Trang 40Dạng SCD 3 cho phép theo dõi giá trị lịch sử trước đó bằng cách thêm một cột mới vào bảng chiều Ở dạng SCD 2 thì không hạn chế lưu trữ giá trị lịch sử, nhưng
ở dạng SCD 3 thì có hạn chế tùy thuộc vào số lượng cột được thiết kế cho lưu trữ các giá trị lịch sử
Khi dữ liệu thay đổi, các giá trị hiện tại được chép sang cột được thêm vào trong khi giá trị mới sẽ thay thế giá trị cũ tại cột hiện tại
Bảng 2-4 Bảng CSDL thông tin nhân viên sau cập nhật (SCD3)
SCD 4: Separate History Table (sử dụng bảng lịch sử)
Dạng SCD 4 sử dụng một bảng thêm vào gọi là “history table”, bảng này lưu trữ tất cả các mẩu tin được thay đổi Còn bảng hiện tại lưu trữ các giá trị đang sử dụng
NV_ID MaNV HoTen NoiSinhCurrent NoiSinhOriginal
1 3010213 Trịnh Q Bình Nguyên Ben Tre
2 1409187 Phan Thị Trúc Thành Hậu Giang Cần Thơ
3 3010187 Trịnh Minh Trí Bạc liêu
NV_ID MaNV HoTen NoiSinh
1 3010213 Trịnh Q Bình Nguyên Ben Tre
2 1409187 Phan Thị Trúc Thành Hậu Giang
3 3010187 Trịnh Minh Trí Bac Lieu
NV_ID MaNV HoTen NoỉSỉnh NGAYTAO
2 1409187 Phan Thị Trúc Thành Cần Thơ 14/02/2010