Đề tài “Xây dựng hệ thống kho dữ liệu và hỗ trợ ra quyết định đầu tư bất động sản ở TP.Hồ Chí Minh” gồm ba thành phần chức năng như sau: - Xây dựng hệ thống tự động được thiết lập lịch t
Trang 1ĐẠI HỌC QUỐC GIA TP HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA
-NGUYỄN TRUNG THÀNH
XÂY DỰNG HỆ THỐNG KHO DỮ LIỆU
VÀ HỖ TRỢ RA QUYẾT ĐỊNH ĐẦU TƯ BẤT ĐỘNG SẢN Ở THÀNH PHỐ HỒ CHÍ MINH
Chuyên ngành: KHOA HỌC MÁY TÍNH
Mã số: 8.48.01.01
LUẬN VĂN THẠC SĨ
TP.HỒ CHÍ MINH, tháng 01 năm 2021
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 TRẦN MINH QUANG
Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm:
(Ghi rõ họ, tên, học hàm, học vị của Hội đồng chấm bảo vệ luận văn thạc sĩ)
1 PGS.TS ĐẶNG TRẦN KHÁNH - Chủ tịch
2 TS PHAN TRỌNG NHÂN - Thư ký
3 PGS.TS NGUYỄN TUẤN ĐĂNG - Phản biện 1
4 PGS.TS HUỲNH TRUNG HIẾU - Phản biện 2
5 PGS.TS TRẦN MINH QUANG - Ủy viê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 ………
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ọ tên học viên: NGUYỄN TRUNG THÀNH MSHV: 1870175
Ngày, tháng, năm sinh: 22/01/1977 Nơi sinh: Quảng Trị
Chuyên ngành: Khoa học máy tính Mã số: 8.48.01.01
I TÊN ĐỀ TÀI:
XÂY DỰNG HỆ THỐNG KHO DỮ LIỆU VÀ HỖ TRỢ RA QUYẾT ĐỊNH ĐẦU TƯ BẤT ĐỘNG SẢN Ở THÀNH PHỐ HỒ CHÍ MINH II NHIỆM VỤ VÀ NỘI DUNG: 1 Xây dựng thành phần thu thập thông tin bất động sản từ các trang Web 2 Xây dựng Ontology cho lĩnh vực Bất động sản để hỗ trợ quy trình ETL (Extract: Trích xuất; Transform: Chuyển đổi; Load: Tải) 3 Phân tích và thiết kế Kho dữ liệu 4 Thực hiện truy vấn trên Kho dữ liệu để hỗ trợ ra quyết định III NGÀY GIAO NHIỆM VỤ: 10/02/2020
IV NGÀY HOÀN THÀNH NHIỆM VỤ: 03/01/2021
V CÁN BỘ HƯỚNG DẪN: PGS.TS TRẦN MINH QUANG
Tp HCM, ngày tháng năm 20
CÁN BỘ HƯỚNG DẪN
(Họ tên và chữ ký)
CHỦ NHIỆM BỘ MÔN ĐÀO
TẠO (Họ tên và chữ ký)
TRƯỞNG KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH
(Họ tên và chữ ký)
Trang 4i
LỜI CẢM ƠN Tác giả xin gửi lời cảm ơn trân trọng đến quý Thầy giáo, Cô giáo đã truyền đạt kiến thức, kinh nghiệm, và phương pháp nghiên cứu khoa học để tác giả có thể hoàn thành đề tài này Tác giả cũng xin gửi lời cảm ơn chân thành đến các bạn học viên cao học và các đồng nghiệp đã góp ý, hỗ trợ trong suốt quá trình thực hiện đề tài Đặc biệt, tác giả xin gửi lời cảm ơn trân trọng và sâu sắc đến Thầy PGS.TS Trần Minh Quang, người đã trực tiếp hướng dẫn, dìu dắt tác giả bước vào môi trường nghiên cứu khoa học
Cuối cùng, xin cảm ơn gia đình đã động viên, chia sẻ khó khăn để tác giả có thể tập trung thực hiện đề tài này
Với thời gian nghiên cứu còn hạn chế, đề tài chắc chắn còn nhiều vấn đề cần phải cải tiến, hoàn thiện hơn Rất mong sự đóng góp ý kiến từ các Thầy giáo, Cô giáo, bạn bè và đồng nghiệp để tác giả hoàn thiện đề tài, và có thể ứng dụng tốt vào thực tế
TP.Hồ Chí Minh, ngày 05 tháng 01 năm 2021
Tác giả
Nguyễn Trung Thành
Trang 5ii
TÓM TẮT ĐỀ TÀI Bất động sản (BĐS) là một trong những kênh đầu tư được quan tâm nhất hiện nay Việc đánh giá đúng thực trạng, khuynh hướng thị trường; tìm được bất động sản phù hợp; xác định đúng thời điểm giao dịch mua bán là vấn đề quan tâm của hầu hết nhà đầu tư
Bài toán đặt ra là: Cần thiết có công cụ hỗ trợ con người tiến hành phân tích trên lượng dữ liệu lớn nằm rải rác ở nhiều nguồn khác nhau để đưa ra quyết định phù hợp nhất
Đề tài “Xây dựng hệ thống kho dữ liệu và hỗ trợ ra quyết định đầu tư bất động sản ở TP.Hồ Chí Minh” gồm ba thành phần chức năng như sau:
- Xây dựng hệ thống tự động (được thiết lập lịch trình chạy tự động) thu thập thông tin BĐS từ các trang web BĐS
- Xây dựng hệ thống kho dữ liệu, trong đó bao gồm quy trình ETL (Extract, Transform, and Load)
- Thực hiện truy vấn, phân tích trên kho dữ liệu để hỗ trợ ra quyết định
Trong ba thành phần trên, quy trình ETL là trọng tâm của đề tài Tác giả xây dựng Ontology (Bản thể luận), và áp dụng kiến trúc của Ontology đặc biệt là các luật suy diễn để thu được những thông tin tiềm ẩn từ dữ liệu có sẵn, phục vụ cho mục đích thực hiện trích xuất (extract) và chuyển đổi (transform)
Trang 6iii
ABSTRACT Real estate is one of the most interesting investment channels today The correct assessment of the current market situation and trends, finding proper real estate, determining the right time to buy and sell are the concerns of most investors
It is necessary to have tools to support people to conduct analysis on large amounts of data scattered in many different data sources to make the most appropriate decision
This thesis is conducted to “Develop a Data warehouse and Decision support system for real-estate market in HCM City”, which includes three functional components as follows:
- Building an automatic system (scheduled to run automatically) to collect real estate information from real estate websites
- Building a data warehouse system, which includes ETL (Extract, Transform, and Load) processes
- Perform query, analysis on data warehouse to support decision making
As of the three components above, the ETL process is the focus of this thesis The author builds Ontology and applies Ontology's architecture, especially inference rules, to obtain latent information from available data, for the purpose of extracting and transforming
Trang 7iv
LỜI CAM ĐOAN Tôi xin cam đoan luận văn là công trình nghiên cứu của riêng cá nhân tôi Được sự hướng dẫn của Thầy PGS.TS Trần Minh Quang, tôi đã tìm hiểu, nghiên cứu, hiện thực và báo cáo luận văn Trong chương “Nền tảng kiến thức”, tôi có sử dụng một số tài liệu tham khảo như đã trình bày trong phần tài liệu tham khảo Mã nguồn (source code), các số liệu, kết quả trong luận văn là hoàn toàn trung thực và chưa được sử dụng trong bất kỳ báo cáo nào khác
Tôi xin chịu trách nhiệm về luận văn của mình Nếu có gì sai sót, tôi xin chịu hoàn toàn trách nhiệm trước hội đồng
TP.Hồ Chí Minh, ngày 05 tháng 01 năm 2021
Tác giả
Nguyễn Trung Thành
Trang 8
v
MỤC LỤC LỜI CẢM ƠN I TÓM TẮT ĐỀ TÀI II ABSTRACT III LỜI CAM ĐOAN IV MỤC LỤC V DANH MỤC HÌNH ẢNH VÀ BẢNG BIỂU X DANH MỤC VIẾT TẮT XII
MỞ ĐẦU 1
1 Lý do chọn đề tài 1
2 Mục tiêu và nhiệm vụ 2
2.1 Mục tiêu 2
2.2 Nhiệm vụ 2
3 Phương pháp nghiên cứu 2
3.1 Phương pháp nghiên cứu lý thuyết 2
3.2 Phương pháp nghiên cứu thực tế 2
4 Ý nghĩa khoa học và thực tiễn 3
4.1 Ý nghĩa khoa học 3
4.2 Ý nghĩa thực tiễn 3
5 Bố cục luận văn 3
CHƯƠNG 1: NỀN TẢNG KIẾN THỨC 5
1 GIỚI THIỆU ONTOLOGY 6
1.1 Khái niệm chung về Ontology 6
Trang 9vi
1.2 Các thành phần chính của Ontology 6
1.3 Lý do phải xây dựng Ontology 7
1.4 Ưu điểm của Ontology [8] 8
1.5 Lý do áp dụng Ontology vào đề tài 9
1.6 Các bước xây dựng Ontology 9
1.7 Ngôn ngữ biểu diễn Ontology 10
1.7.1 Cấu trúc Web ngữ nghĩa 10
1.7.2 Ngôn ngữ mô tả RDF 11
1.7.3 RDF Schema (RDFS) 12
1.7.4 Ngôn ngữ OWL 13
1.8 Truy vấn trên Ontology, ngôn ngữ SPARQL 13
1.8.1 SPARQL FILTER 14
1.8.2 OPTIONAL trong SPARQL 15
1.9 Suy luận trên Ontology, ngôn ngữ SWRL 16
2 KHO DỮ LIỆU 19
2.1 Định nghĩa 19
2.2 Đặc điểm dữ liệu trong kho dữ liệu 19
2.3 Mục đích của kho dữ liệu 19
2.4 Các bước xử lý trong quy trình ETL 19
2.5 Thiết kế cơ sở dữ liệu cho kho dữ liệu 19
3 QUY TRÌNH ETL 21
3.1 Khái niệm quy trình ETL 21
3.2 Vai trò của quy trình ETL trong xây dựng kho dữ liệu 21
3.3 Các công đoạn trong quy trình ETL 22
3.3.1 Trích xuất (Extract) 22
3.3.2 Chuyển đổi (Transform) 23
Trang 10vii
3.3.3 Tải (Load) 24
3.4 Những khó khăn thường gặp khi xây dựng quy trình ETL 24
4 HỆ HỖ TRỢ RA QUYẾT ĐỊNH 25
4.1 Giới thiệu về hệ hỗ trợ quyết định [15] 25
4.2 Quá trình ra quyết định 25
4.3 Phân loại hệ hỗ trợ quyết định 25
CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 26
1 GIỚI THIỆU KIẾN TRÚC HỆ THỐNG 26
1.1 Thu thập dữ liệu bất động sản 27
1.2 Quy trình ETL 28
1.3 Truy vấn trên kho dữ liệu 28
2 TÌM HIỂU CÔNG NGHỆ, CHỌN LỰA GIẢI PHÁP 28
2.1 Giải pháp cho thành phần “Thu thập dữ liệu bất động sản” 28
2.2 Giải pháp cho thành phần “Quy trình ETL” 30
2.2.1 Lựa chọn ngôn ngữ lập trình và các thư viện liên quan 30
2.2.2 Lựa chọn Hệ quản trị Cơ sở dữ liệu cho “Staging Database” 31
2.3 Giải pháp cho thành phần “Truy vấn trên kho dữ liệu” 32
3 THIẾT KẾ HỆ THỐNG 33
3.1 Thiết kế sơ đồ lớp cho thành phần “Thu thập dữ liệu bất động sản” 33
3.2 Thiết kế cơ sở dữ liệu cho thành phần “Thu thập dữ liệu bất động sản” 34
3.3 Thiết kế Ontology 35
3.3.1 Sơ đồ lớp của Ontology BĐS 35
3.3.2 Sơ đồ quan hệ giữa các đối tượng trong Ontology BĐS 37
3.3.3 Mô tả thuộc tính trong Ontology BĐS 38
3.3.4 Thiết kế luật suy diễn 40
Trang 11viii
3.3.4.1 Rule Direction1: Xác định đông hay tây tứ trạch 41
3.3.4.2 Rule RealEstate1: Xác định BĐS không hợp lệ 42
3.3.4.3 Rule RealEstate2: Xác định BĐS bị trùng 43
3.3.4.4 Rule Owner1: Xác định phần số điện thoại đã bị giấu đi 45
3.4 Thiết kế kho dữ liệu 46
CHƯƠNG 3: HIỆN THỰC CÁC THÀNH PHẦN CHỨC NĂNG 50
1 THÀNH PHẦN “THU THẬP DỮ LIỆU BẤT ĐỘNG SẢN” 50
1.1 Hiện thực thành phần “Thu thập dữ liệu bất động sản” 50
1.2 Vận hành thành phần “Thu thập dữ liệu bất động sản” 51
2 THÀNH PHẦN “QUY TRÌNH ETL” 52
2.1 Hiện thực thành phần “Quy trình ETL” 52
2.1.1 Sơ lược về source code Python 52
2.1.2 Hiện thực suy diễn 53
2.1.3 Hiển thị kết quả thực hiện trích xuất và chuyển đổi 55
2.1.4 Tải vào Kho dữ liệu 56
2.2 Vận hành thành phần “Quy trình ETL” 57
3 THÀNH PHẦN “TRUY VẤN TRÊN KHO DỮ LIỆU” 57
3.1 Hiện thực thành phần “Truy vấn trên kho dữ liệu” 57
3.1.1 Tạo khối đa chiều (Cube Generator) 57
3.1.2 Truy vấn trên khối đa chiều 60
CHƯƠNG 4: ĐÁNH GIÁ KẾT QUẢ VÀ KẾT LUẬN 61
1 ĐÁNH GIÁ KẾT QUẢ 61
1.1 Kết quả thành phần “Thu thập dữ liệu bất động sản” 61
1.2 Kết quả thành phần “Quy trình ETL” 62
1.3 Kết quả thành phần “Truy vấn trên kho dữ liệu” 65
Trang 12ix
2 KẾT LUẬN 65DANH MỤC CÁC TÀI LIỆU THAM KHẢO 67PHỤ LỤC 69
Trang 13x
DANH MỤC HÌNH ẢNH VÀ BẢNG BIỂU Hình 1.1: Cấu trúc phân tầng Web ngữ nghĩa
Hình 1.2: Quan hệ giữa các loại đối tượng trong phát biểu RDF
Hình 1.3: Giản đồ hình sao
Hình 1.4: Giản đồ hình bông tuyết
Hình 1.5: Vòng đời kho dữ liệu
Hình 1.6: Sơ đồ mô tả quy trình ETL
Hình 2.1: Cấu trúc tổng thể hệ thống
Hình 2.2: Cây cấu trúc DOM
Bảng 2.1: Thư viện hỗ trợ xử lý Ontology
Hình 2.3: Sơ đồ lớp (class diagram)
Hình 2.4: Mô hình cơ sở dữ liệu cho thành phần “Thu thập dữ liệu bất động sản” Hình 2.5: Sơ đồ lớp của Ontology BĐS
Hình 2.6: Sơ đồ quan hệ giữa các đối tượng trong Ontology BĐS
Bảng 2.2: Danh sách các thuộc tính kiểu Data Property
Bảng 2.3: Danh sách các thuộc tính kiểu Object Property
Hình 2.7: Lược đồ quan hệ của FactSaleLand và các Dimension
Hình 2.8: Lược đồ quan hệ của FactSaleHouse và các Dimension
Hình 3.1: Hình ảnh một phần mã nguồn để thu thập dữ liệu
Hình 3.2: Thiết lập lịch trình thực hiện thu thập dữ liệu
Hình 3.3: Hiện thực ETL bằng Python
Hình 3.4: Hiện thực luật suy diễn
Hình 3.5: Kết quả hiện thực suy diễn
Hình 3.6: Hiển thị dữ liệu truy vấn từ A-Box
Hình 3.7: Kết quả tải từ A-Box vào Kho dữ liệu
Hình 3.8: Mô hình khối đa chiều của FactSaleLand và các Dimension
Hình 3.9: Mô hình khối đa chiều của FactSaleHouse và các Dimension
Trang 14xi
Hình 3.10: Truy vấn trên khối đa chiều
Bảng 4.1: Kết quả thu thập dữ liệu bất động sản
Bảng 4.2: Kết quả hiện thực quy trình ETL
Bảng 4.3: Đánh giá kết quả, hiệu năng, chi phí của toàn hệ thống
Trang 15xii
DANH MỤC VIẾT TẮT TP.HCM: Thành phố Hồ Chí Minh
BĐS: Bất động sản
CSDL: Cơ sở dữ liệu (Database)
DBMS: Database Management System (Hệ quản trị cơ sở dữ liệu) DOM: Document Object Model
DSS: Decision Support System (Hệ hỗ trợ quyết định)
DWH: Data Warehouse (Kho dữ liệu)
ETL: Extract Transform Load
GUI: Graphical User Interface (Giao diện đồ họa người dùng) OLAP: Online Analytical Processing (Xử lý phân tích trực tuyến) OWL: The Web Ontology Language
RDF: Resource Description Framework (Khung mô tả tài nguyên) SSAS: SQL Server Analysis Services
SSRS: SQL Server Reporting Services
Trang 161
MỞ ĐẦU
1 Lý do chọn đề tài
Cách mạng công nghiệp lần thứ tư với chuyển đổi số làm trung tâm, đang tạo
ra nguồn dữ liệu khổng lồ trong mọi lĩnh vực, dẫn đến cơ hội và nhu cầu khai thác thông tin từ nguồn dữ liệu đó để hỗ trợ con người ra quyết định chính xác và nhanh chóng hơn
Áp dụng công nghệ vào thu thập xử lý thông tin, xây dựng kho dữ liệu là rất quan trọng trong quá trình thực hiện chuyển đổi số Làm sao để quản lý và sử dụng hiệu quả nguồn dữ liệu là mấu chốt thành công của mỗi tổ chức và doanh nghiệp Một trong những công việc khó khăn và tốn chi phí nhiều nhất trong xây dựng
hệ thống kho dữ liệu hỗ trợ ra quyết định là thực hiện quy trình ETL (Extract, Transform, and Load) Cho đến nay, cũng có khá nhiều công cụ hỗ trợ cho việc thực hiện ETL như là: Oracle Warehouse Builder (OWB), SQL Server Integration Services (SSIS), Pentaho Data Integration, v.v Tuy vậy, những công cụ này xử lý trên nguồn dữ liệu quan hệ và không mang “ngữ nghĩa”; và vì vậy, mất nhiều chi phí cho việc xử lý các quy luật trích xuất (extract), chuyển đổi (transform) gần giống nhau, lặp lại ở các thành phần trong một hệ thống hay trong các hệ thống khác nhau Áp dụng Ontology (Bản thể luận) vào quy trình ETL sẽ làm cho công việc trích xuất, chuyển đổi được xử lý tự động hơn, thông minh hơn và dễ dàng thay đổi hơn khi yêu cầu thay đổi
Cùng với sự phát triển của Web ngữ nghĩa (Semantic Web), việc xử lý ETL trên Cơ sở dữ liệu ngữ nghĩa (Semantic Database) cũng sẽ dần phổ biến và thay thế phần lớn trong quy trình ETL trên Cơ sở dữ liệu truyền thống Áp dụng Ontology cũng mở ra hướng ứng dụng rộng rãi trong tương lai
Luận văn tìm hiểu và xây dựng Ontology cho lĩnh vực Bất động sản, áp dụng kiến trúc của Ontology đặc biệt là các luật suy diễn để thu được những thông tin tiềm ẩn từ dữ liệu có sẵn, phục vụ cho mục đích thực hiện trích xuất (extract) và chuyển đổi (transform) Ngoài ra, luận văn cũng tìm hiểu để xây dựng quy trình tải (load) dữ liệu từ Staging Database (Cơ sở dữ liệu dùng trong quá trình dàn dựng) là
“Semantic Database” vào kho dữ liệu, đây là cơ sở để tham khảo khi thu thập thông tin từ các Ontology đã có sẵn
Với những lý do trên, tôi chọn đề tài: “Xây dựng hệ thống kho dữ liệu và hỗ trợ ra quyết định đầu tư bất động sản ở TP.Hồ Chí Minh”
Trang 17 Xây dựng quy trình ETL một cách hiệu quả bằng cách áp dụng Ontology
Hoàn thành bộ công cụ hữu ích hỗ trợ đầu tư BĐS tại TP.Hồ Chí Minh 2.2 Nhiệm vụ
Xây dựng thành phần “Thu thập thông tin bất động sản” từ nhiều nguồn khác nhau
Xây dựng Ontology cho lĩnh vực Bất động sản
Thực hiện Trích xuất (Extract) và Chuyển đổi (Transform) dữ liệu từ kết quả thu thập vào Ontology
Phân tích và thiết kế Kho dữ liệu
Thực hiện Tải (Load) dữ liệu từ Ontology vào Kho dữ liệu
Thực hiện truy vấn trên Kho dữ liệu để hỗ trợ ra quyết định
3 Phương pháp nghiên cứu
3.1 Phương pháp nghiên cứu lý thuyết
Nghiên cứu dựa trên các tài liệu, bài báo khoa học
Nghiên cứu và tìm hiểu công nghệ, công cụ hỗ trợ; đi đến quyết định chọn lựa công nghệ, công cụ để hiện thực hệ thống
Phân tích thiết kế hệ thống, đề xuất phương án hiện thực quy trình ETL 3.2 Phương pháp nghiên cứu thực tế
Tìm hiểu các thông tin, kiến thức cần thiết liên quan đến Bất động sản
Hiện thực các thành phần hệ thống
Đánh giá kết quả hiện thực qua các giai đoạn để thực hiện cải tiến
Trang 18Du lịch, Y tế, Nông nghiệp, Vận tải, Thăm dò và khai thác dầu khí, Quản lý tài nguyên và môi trường, v.v
Áp dụng Ontology sẽ làm cho quy trình ETL tự động hơn, thông minh hơn và
xử lý tập trung hơn; là cơ sở để các tổ chức tham khảo, áp dụng Ontology khi xây dựng hệ thống thông tin của đơn vị mình Xem xét tái sử dụng Ontology đã có sẵn, hay thiết kế những Ontology hẹp hơn sau đó kết hợp lại thành Ontology rộng hơn;
đó là hướng áp dụng phù hợp với các cơ quan quản lý nhà nước
4.2 Ý nghĩa thực tiễn
Kết quả của đề tài là sự kết hợp các mảng nghiên cứu riêng lẻ thành một bộ công cụ tiện ích cho nhà đầu tư BĐS Thành phần 1: “Thu thập dữ liệu bất động sản” cho phép tự động thu thập dữ liệu BĐS từ nhiều trang Web BĐS, giúp giảm chi phí, và chủ động nguồn dữ liệu đầu vào của toàn hệ thống Thành phần 2: “Kho
dữ liệu và Quy trình ETL” giúp xây dựng cấu trúc dữ liệu thích hợp để thực hiện truy vấn trên nhiều chiều đạt hiệu quả tốt và đáp ứng hiệu suất cao Đặc biệt, áp dụng Ontology làm cho quy trình ETL được xử lý tập trung hơn, dễ cập nhật thay đổi trong quá trình vận hành Thành phần 3: “Truy vấn trên kho dữ liệu” cho phép người dùng (người phân tích) dễ dàng thực hiện truy vấn trên khối đa chiều (OLAP Cube) Kết hợp ba thành phần trên tạo nên bộ công cụ tiện ích hỗ trợ ra quyết định đầu tư BĐS
5 Bố cục luận văn
Luận văn được trình bày theo các phần chính như sau:
Phần “Mở Đầu”: Giới thiệu đề tài Phần này gồm những nội dung chính là:
Lý do chọn đề tài; Mục tiêu và nhiệm vụ; Phương pháp nghiên cứu; Ý nghĩa khoa học và thực tiễn; Bố cục luận văn
Chương 1 “Nền tảng kiến thức”: Trong chương này, tác giả trình bày những kiến thức cơ bản được sử dụng trong đề tài, bao gồm: Giới thiệu Ontology, Kho dữ liệu, Hệ hỗ trợ ra quyết định Cụ thể gồm những chủ điểm sau:
Trang 194
Giới thiệu Ontology: Trình bày các khái niệm liên quan đến Ontology và công cụ sử dụng để xây dựng Ontology Phần này gồm có: Ontology là gì; Các thành phần của Ontology; Tại sao cần dùng Ontology trong quy trình ETL, ưu nhược điểm; Cách xây dựng Ontology; Truy vấn trên Ontology; Suy diễn trên Ontology
Kho dữ liệu: Trình bày cơ sở lý thuyết về Kho dữ liệu, Quy trình ETL Phần này gồm có: Định nghĩa Kho dữ liệu, Đặc điểm dữ liệu, Thiết kế
mô hình kho dữ liệu; Quy trình ETL
Hệ hỗ trợ ra quyết định: Giới thiệu Hệ hỗ trợ quyết định
Chương 2 “Phân tích và thiết kế hệ thống”: Mô tả kiến trúc toàn bộ hệ thống, các thành phần chức năng; Tìm hiểu, lựa chọn giải pháp hiện thực các thành phần chức năng; Thiết kế các thành phần chức năng
Chương 3 “Hiện thực các thành phần chức năng”: Hiện thực và cách thức vận hành các thành phần chức năng của toàn hệ thống
Chương 4 “Đánh giá kết quả và kết luận”: Đánh giá kết quả đạt được, những điểm chưa đạt cần khắc phục; Tổng kết đề tài; Hướng phát triển
Trang 205
CHƯƠNG 1 NỀN TẢNG KIẾN THỨC Bất động sản là một trong những kênh đầu tư được quan tâm nhất hiện nay Việc đánh giá đúng thực trạng, khuynh hướng thị trường; tìm được bất động sản phù hợp; xác định đúng thời điểm giao dịch mua bán là vấn đề quan tâm của hầu hết nhà đầu tư Do đó, cần thiết có công cụ hỗ trợ con người tiến hành phân tích trên lượng dữ liệu lớn nằm rải rác ở nhiều nguồn khác nhau để hỗ trợ đưa ra quyết định phù hợp nhất Để làm được điều đó, chúng ta cần giải quyết ba vấn đề sau:
Một là; Chọn lọc, trích xuất được những dữ liệu nào là “phù hợp” từ nhiều nguồn dữ liệu khác nhau Đây là công đoạn rất quan trọng ảnh hưởng đến tính hiệu quả (kết quả phân tích sau này là đúng hay sai) và tính hiệu suất (hệ thống phải thực hiện ít hay nhiều tác vụ)
Hai là; Biến đổi dữ liệu định dạng không giống nhau từ nhiều nguồn đầu vào
để được dữ liệu có thể tích hợp trong quá trình phân tích Thường thì phải thực hiện rất nhiều công thức chuyển đổi (bao gồm cả thêm bớt) dữ liệu, nên làm sao để thay đổi chính xác và nhanh chóng khi yêu cầu thay đổi là rất quan trọng
Ba là; Việc phân tích sẽ dựa trên nhiều chiều (nhiều trục biến số), nên cần cấu trúc lưu trữ dữ liệu tích hợp một cách thích hợp để việc phân tích đạt hiệu quả và đảm bảo hiệu suất cao
Để giải quyết các vấn đề trên, tác giả vận dụng Kho dữ liệu và Ontology vào
đề tài này, cụ thể như sau:
- Kho dữ liệu sẽ giúp giải quyết vấn đề thứ ba ở trên
- Ontology sẽ giúp giải quyết hai vấn đề thứ nhất và thứ hai
Cụ thể là:
Cấu trúc của Ontology đặc biệt là khả năng suy diễn sẽ làm cho việc trích xuất (extract) và biến đổi (transform) trở nên tự động hơn, thông minh hơn,
và tập trung hơn
Ontology dễ mở rộng và sửa đổi khi có yêu cầu thay đổi
Ontology cho phép tách biệt tri thức miền với tri thức vận hành, nên việc sửa đổi sẽ dễ dàng hơn đặc biệt là đối với những nhân sự không chuyên về
kỹ thuật
Trang 216
Để áp dụng được những cơ sở lý thuyết vào giải quyết ba vấn đề đã nêu ở trên, chương này sẽ trình bày những kiến thức nền tảng phục vụ cho luận văn như là: Ontology, Kho dữ liệu, và Hệ hỗ trợ ra quyết định
1 GIỚI THIỆU ONTOLOGY
1.1 Khái niệm chung về Ontology
Ontology là quy chuẩn rõ ràng mô tả tập các khái niệm (concept hay còn gọi là class) trong một miền (domain) cụ thể và những mối quan hệ giữa các khái niệm này [6] Ontology còn kèm theo các ràng buộc, các giả định mô tả các tri thức bổ sung về lĩnh vực đó
Cụ thể, Ontology bao gồm [1]:
Một bộ từ vựng để mô tả các khái niệm và quan hệ giữa các khái niệm đó
Các đặc tả ý nghĩa từ vựng
Các ràng buộc mô tả các tri thức bổ sung về lĩnh vực đó
Yêu cầu về Ontology [1]:
Phải thể hiện được kiến thức chung về một lĩnh vực
Cung cấp mô hình có thể thao tác bằng máy
Vai trò của Ontology [1]:
Hình thành ngôn ngữ chung để chia sẻ, tái sử dụng tri thức
Tiêu chuẩn hóa, hình thức hóa ý nghĩa của các thuật ngữ qua các khái niệm,
là nền tảng để biểu diễn tri thức
Chia sẻ cách hiểu chung về cấu trúc của thông tin giữa con người và tác nhân phần mềm
Làm cho các giả định của miền ứng dụng trở nên tường minh
Trang 22 Thuộc tính kiểu đối tượng (Object Property): Dùng để liên kết thực thể này với thực thể khác
Thuộc tính chú thích (Annotation Property): Là các thông tin chú thích về lớp, thuộc tính, thực thể, quan hệ
Cá thể (Individual): Là đối tượng cơ bản của Ontology, một cá thể là một đối tượng thể hiện của một lớp cụ thể nào đó
Mối quan hệ (Relationships): Là cách mà các đối tượng liên kết với nhau
Cơ bản có các quan hệ bên dưới:
và khả năng suy luận trên Ontology
1.3 Lý do phải xây dựng Ontology
Theo Natalya F.Noy [7], có 5 lý do sau để xây dựng Ontology:
Thứ nhất, việc chia sẻ tri thức về các cấu trúc thông tin giữa con người và các tác nhân (agent) phần mềm là mục tiêu lớn nhất của Ontology Ví dụ, một Ontology Bất động sản được xây dựng dựa trên hiểu biết của con người về lĩnh vực BĐS; chúng bao gồm bộ từ vựng, các định nghĩa diễn dịch được bằng máy tính về các khái niệm, và các quan hệ giữa các khái niệm đó Nếu nhiều nguồn thông tin Bất động sản được lưu trữ trên cơ sở cùng một Ontology đã thiết kế thì máy tính có thể diễn dịch được các khái niệm như con người đã định nghĩa và có thể tự động rút trích thông tin từ nhiều nguồn đó một cách có ngữ nghĩa
Trang 238
Thứ hai, việc xây dựng Ontology cho phép khả năng sử dụng lại tri thức miền
Ví dụ, khi xây dựng Ontology cho lĩnh vực Bất động sản, nếu đã có Ontology về khu vực, đơn vị hành chính (Tỉnh, Thành Phố, Quận/Huyện, Xã/Phường, Thôn/Ấp, Đường, v.v) thì chúng ta có thể tích hợp để sử dụng lại
Thứ ba, việc xây dựng Ontology tạo ra các giả định (tiên đề) về tri thức miền một cách rõ ràng Việc mô tả rõ ràng các giả định về tri thức miền làm cho chúng ta
có thể thay đổi dễ dàng khi kiến thức miền thay đổi Nếu các giả định bị mã hóa cứng trong source code thì việc tìm kiếm và sửa đổi sẽ rất khó khăn Thêm nữa, với những người dùng mới, mặc dù có thể không hiểu rõ về kỹ thuật, nhưng họ cũng có thể nhanh chóng nắm bắt được các khái niệm, các thuật ngữ, các thông số trong lĩnh vực đó
Thứ tư, việc xây dựng Ontology cho phép tách biệt tri thức miền với tri thức vận hành Ví dụ, chúng ta đã xây dựng Ontology cho một loại máy gia công cơ khí kiểu PLC (Programmable Logic Controller), trong đó gồm các bộ phận cấu thành và các mối quan hệ giữa những thành phần đó, đây chính là tri thức miền Chúng ta có thể xây dựng quy trình (lịch trình) cho một cá thể máy này hoạt động theo những yêu cầu nào đó để đáp ứng trên dây chuyền sản xuất, đó chính là tri thức vận hành Thứ năm, phân tích suy luận trên tri thức miền Khi các định nghĩa về các khái niệm trong Ontology được xây dựng, cùng với tập các cá thể được thêm vào Ontology, nó có thể thực hiện suy luận trên đó để sinh ra các tri thức mới, tri thức tiềm ẩn bên trong đó
1.4 Ưu điểm của Ontology [8]
Những ưu điểm của Ontology:
Dựa vào các mối quan hệ thiết yếu giữa các khái niệm, Ontology cho phép lý luận tự động về dữ liệu
Ontology hoạt động giống như bộ não, nó "làm việc" và suy luận về các khái niệm và mối quan hệ theo cách gần với cách con người nhận thức các khái niệm liên quan với nhau
Ontology cung cấp điều hướng mạch lạc và dễ dàng hơn khi người dùng chuyển từ khái niệm này sang khái niệm khác
Rất dễ mở rộng do các mối quan hệ và kết hợp khái niệm rất dễ thêm vào các Ontology hiện có
Trang 249
1.5 Lý do áp dụng Ontology vào đề tài
Đặc biệt là trong đề tài này, với những lý do sau mà tôi đã quyết định dùng Ontology để xử lý quy trình ETL trong quá trình xây dựng kho dữ liệu
Công nghệ Web Ngữ nghĩa (Semntic Web) mà Ontology là trung tâm đang ngày càng phát triển, chúng sẽ tạo ra lượng dữ liệu ngữ nghĩa khổng lồ, đó là
cơ hội để áp dụng Ontology vào quy trình ETL
Ontology chia sẻ tri thức dễ dàng, máy tính cũng có thể hiểu và phân tích được dữ liệu, sẽ là điều kiện thuận lợi trong việc áp dụng cho máy học
1.6 Các bước xây dựng Ontology
Theo Natalya F.Noy [7] và cộng sự, quy trình xây dựng Ontology bao gồm 7 bước như sau:
Bước 1: Xác định lĩnh vực và phạm vi của Ontology
Bước 2: Xem xét có thể sử dụng lại các Ontology có sẵn
Bước 3: Liệt kê các thuật ngữ quan trọng
Bước 4: Định nghĩa các lớp và cây phân cấp các lớp
Bước 5: Xác định các thuộc tính và quan hệ
Buớc 6: Xác định các ràng buộc của thuộc tính
Buớc 7: Tạo các thể hiện (thực thể)
Trang 2510
1.7 Ngôn ngữ biểu diễn Ontology
1.7.1 Cấu trúc Web ngữ nghĩa
Phạm vi đề tài liên quan trực tiếp đến các thành phần trong kiến trúc phân tầng
của Web ngữ nghĩa Hình 1.1 bên dưới là kiến trúc tổng quát của Web ngữ nghĩa do
W3C đề xuất
Hình 1.1 Cấu trúc phân tầng Web ngữ nghĩa (Tham khảo từ W3C Stack 2007)
Cấu trúc gồm các thành phần cơ bản với vai trò cụ thể như sau:
URI (Uniform Resource Identifiers) và IRI (Internationalized Resource
Identifiers) để xác định tài nguyên là duy nhất IRI bổ sung hỗ trợ quốc tế hóa cho
URI bằng cách dùng bảng mã UNICODE Do đó, mọi URI cũng được xem là IRI
XML (Extensible Markup Language) là ngôn ngữ đánh dấu mở rộng, là một
định dạng phổ biến được sử dụng để trao đổi và tích hợp dữ liệu trên Internet
RDF (Resource Description Framework) gọi là khung mô tả tài nguyên, cung
cấp công cụ để biểu diễn tài nguyên và các mối liên kết giữa chúng Cơ bản, RDF
chỉ có 2 kiểu dữ liệu là: URI/IRI và Literal (chuỗi hay kiểu dữ liệu XSD) Mô hình
RDF thường được lưu trữ dưới dạng file RDF/XML
RDFS (RDF Schema) - Lược đồ RDF là phần mở rộng ngữ nghĩa của RDF,
đặc tả các từ vựng mô tả tính chất và quan hệ giữa các tài nguyên RDF Ví dụ: từ
vựng “subClassOf” để khai báo lớp con
Trang 2611
OWL (Web Ontology Language) dựa trên nền tảng RDFS, cung cấp thêm bộ
từ vựng mô tả chi tiết hơn cho tài nguyên Web, và có khả năng hỗ trợ suy luận tốt hơn so với RDF/RDFS
SPARQL là ngôn ngữ truy vấn trên mô hình RDF, bao gồm các khả năng mạnh mẽ để thực hiện truy vấn trên các nguồn dữ liệu đa dạng
RIF (Rule Interchange Format) để mở rộng thêm các quy tắc mà OWL còn hạn chế Mục tiêu của RIF là xác định một tiêu chuẩn để trao đổi giữa các hệ thống quy tắc, đặc biệt là giữa các quy tắc Web ngữ nghĩa
LOGIC cung cấp bộ từ vựng mô tả các luật suy diễn
PROOF sử dụng các luật của lớp Logic để kiểm tra tính đúng đắn của một suy diễn nào đó
CRYPTO - Mật mã xuyên suốt các tầng để đảm bảo rằng ngữ nghĩa các phát biểu trên tất các tầng được đến từ các nguồn đáng tin cậy
TRUST nhằm đánh giá mức độ tin cậy và quyết định có nên tin tưởng các bằng chứng từ một kết quả suy luận nào đó hay không, đảm bảo tính tin cậy của các ứng dụng trên Web ngữ nghĩa
1.7.2 Ngôn ngữ mô tả RDF
RDF (Resource Description Framework) là một “bộ khung” được sử dụng để
mô tả các nguồn tài nguyên Web, là công nghệ nền móng để xử lý siêu dữ liệu Web RDF dùng cú pháp của XML để biểu diễn thông tin, và được gọi là định dạng RDF/XML Thông qua định dạng này, các thông tin trong mô hình RDF có thể diễn dịch được bởi máy tính, và vì vậy có thể trao đổi dễ dàng giữa các hệ thống khác nhau
Mô hình cơ bản của RDF gồm 3 đối tượng là:
1 Tài nguyên (Resources): Là tất cả những gì có định danh được mô tả trên RDF
2 Thuộc tính (Properties): Thuộc tính, đặc tính, hoặc quan hệ dùng để mô tả tính chất của tài nguyên
3 Phát biểu (Statements): Một phát biểu gồm bộ ba thành phần subject, predicate, object
Trang 2712
Hình 1.2 Biểu diễn mối quan hệ giữa các loại đối tượng trong một phát biểu RDF
Hình 1.2 Quan hệ giữa các loại đối tượng trong phát biểu RDF
Subject của phát biểu RDF là một tài nguyên
Predicate của phát biểu RDF là thuộc tính của tài nguyên
Object của phát biểu RDF là một giá trị nguyên thủy hay cũng có thể một tài nguyên
Một phát biểu (subject, predicate, object) còn gọi là một bộ ba (triple) Tập hợp nhiều triple liên kết với nhau tạo thành đồ thị RDF (RDF Graph)
1 RDFS còn khá yếu trong khả năng mô tả chi tiết về ngữ nghĩa
2 Range và domain không thể được cục bộ hóa
Ví dụ, thuộc tính hasChild có Domain và Range và đều là Animal nhưng không thể ràng buộc hasChild của Person phải có Domain và Range và đều là Person
Trang 2813
3 Không thực hiện được ràng buộc trên tính tồn tại và lực lượng (cardinality)
Ví dụ, thuộc tính hasOperatingSystem của máy vi tính thì ít nhất phải có
OWL (The Web Ontology Language) là một ngôn ngữ dạng như XML dùng
để mô tả các hệ cơ sở tri thức OWL là một ngôn ngữ đánh dấu dùng để xuất bản và chia sẻ dữ liệu trên Internet thông qua những mô hình dữ liệu gọi là Ontology OWL biểu diễn ý nghĩa của các thuật ngữ trong các từ vựng và mối liên hệ giữa các thuật ngữ này để đảm bảo phù hợp với quá trình xử lý bởi các phần mềm
OWL được xây dựng trên nền RDF/XML Hiện nay có ba phiên bản OWL là: OWL Lite, OWL DL (Description Logic), và OWL Full
OWL Lite: Chủ yếu khắc phục các hạn chế từ 1 đến 4 của RDF/RDFS ở trên Hỗ trợ cho sự phân lớp theo thứ bậc và các ràng buộc đơn giản
OWL DL (OWL Description Logic): Hỗ trợ suy diễn trên Ontology, cho phép biểu diễn chi tiết về ngữ nghĩa trong khi cần đảm bảo tính khả tính toán (tất cả các kết luận phải được đảm bảo có thể tính toán) và tính quyết định (tất cả các tính toán sẽ kết thúc trong khoảng thời gian hữu hạn)
OWL Full: Cho phép diễn cảm tối đa và tự do của RDF mà không cần đảm bảo sự tính toán của các biểu thức OWL Full cho phép một Ontology gia cố thêm ý nghĩa của các từ vựng đã được định nghĩa trên RDF hay OWL
1.8 Truy vấn trên Ontology, ngôn ngữ SPARQL
SPARQL [13] là một ngôn ngữ truy vấn dữ liệu ngữ nghĩa trên định dạng RDF SPARQL cho phép truy vấn trên nhiều nguồn dữ liệu khác nhau, cho dù dữ liệu được lưu trữ nguyên bản dưới dạng RDF hay được xem dưới dạng RDF thông qua phần mềm trung gian SPARQL có thể truy vấn các thành phần trên biểu đồ (graph) theo dạng bắt buộc hay tùy chọn (optional) cùng với các kết nối giữa chúng theo dạng conjunction (như phép toán AND) và disjunction (như phép toán OR) SPARQL cũng hỗ trợ tổng hợp, truy vấn con, phủ định, tạo giá trị bằng biểu thức,
Trang 291.8.1 SPARQL FILTER
SPARQL FILTER sử dụng hàm regex để kiểm tra các giá trị nguyên tố (literal) trong RDF có thỏa mãn điều kiện lọc hay không, nếu thỏa mãn thì mới được xem là kết quả trả về của câu truy vấn Xét câu truy vấn bên dưới
SELECT ?title ?price
WHERE { ?x ns:price ?price
FILTER (?price < 30.5)
Trang 3015
?x dc:title ?title }
Kết quả:
"The Semantic Web" 23
1.8.2 OPTIONAL trong SPARQL
Basic Graph Pattern (là tập hợp các mô hình bộ ba subject, predicate, object) yêu cầu toàn bộ các biến truy vấn phải có kết quả xác định thì mới được xem là phù hợp với kết quả của truy vấn Tuy vậy, trong nhiều trường hợp, chúng ta cần kết quả đầu ra mà chấp nhận khuyết dữ liệu của biến nào đó Khi đó, chúng ta dùng OPTIONAL để đặt trên phần graph có biến chấp nhận khuyết dữ liệu Xét ví dụ sau
Dữ liệu:
@prefix foaf: <http://xmlns.com/foaf/0.1/>
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
_:a rdf:type foaf:Person
_:a foaf:name "Alice"
_:a foaf:mbox <mailto:alice@example.com>
_:a foaf:mbox <mailto:alice@work.example>
_:b rdf:type foaf:Person
_:b foaf:name "Bob"
Truy vấn:
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?name ?mbox
WHERE { ?x foaf:name ?name
OPTIONAL { ?x foaf:mbox ?mbox }
Trang 311.9 Suy luận trên Ontology, ngôn ngữ SWRL
SWRL [14] là sự suy luận kéo theo (Implication) từ giả thiết - Antecedent (Body) đến kết luận - Consequent (head); trong đó giả thiết là tập hợp (có thể rỗng) các atom, kết luận thường là 1 atom (hay có thể rỗng) Nếu giả thiết rỗng thì xem như “TRUE”, còn kết luận rỗng thì xem như “FALSE” Các atom của giả thiết được kềt hợp với nhau bằng phép toán AND (conjunction), có nghĩa là kết luận chỉ đúng khi tất cả các atom của giả thiết đúng
a) Cấu trúc của 1 atom:
atom ::= description '(' i-object ')'
| dataRange '(' d-object ')'
| individualvaluedPropertyID '(' i-object i-object ')'
| datavaluedPropertyID '(' i-object d-object ')'
| sameAs '(' i-object i-object ')'
| differentFrom '(' i-object i-object ')'
| builtIn '(' builtinID { d-object } ')'
builtinID ::= URIreference
Các từ in đậm bên trên xem như các biến, nó thay đổi trong các atom cụ thể Các từ không in đậm (như là: sameAs, differentFrom, builtIn) xem như hằng, nó là các từ khóa trong atom Cụ thể như bên dưới:
i-object: Là biến cá thể hoặc là cá thể trong OWL
Trang 3217
i-object ::= i-variable | individualID
d-object: Là biến dữ liệu hoặc là giá trị dữ liệu trong OWL
d-object ::= d-variable | dataLiteral
description: Là phát biểu về 1 đối tượng nào đó (biến cá thể hoặc là cá thể)
Ví dụ: Land(?x) có nghĩa là x là biến cá thể kiểu Land (x là thực thể của lớp Land)
dataRange: Xác định khoảng giá trị nào đó
Ví dụ: ((integer[>=1,<=2] or integer[>5,<7]) and not ({0}))(?y)
Có nghĩa là y là biến dữ liệu kiểu số nguyên mà (((1 ≤ y ≤ 2) or (5 < y < 7)) and y ≠ 0)
individualvaluedPropertyID '(' i-object i-object ')': Là ObjectProperty trong OWL
Ví dụ: Land(?x) ^ ofWard (?x, ?w) trong đó ofWard là ObjectProperty cho biết BĐS thuộc phường nào
datavaluedPropertyID '(' i-object d-object ')': Là DataTypeProperty trong OWL
Ví dụ: Land(?x) ^ hasUnitPrice(?x, ?unit_price) trong đó hasUnitPrice là DataTypeProperty cho biết BĐS có đơn giá là bao nhiêu (VNĐ/m2)
sameAs '(' i-object i-object ')': So sánh hai i-object, nếu cả hai i-object thể hiện cho cùng một cá thể, hay cùng một biến cá thể thì kết quả là
Ví dụ: Direction(?d) ^ hasID(?d, ?id) ^ lessThanOrEqual(?id, 2) trong đó lessThanOrEqual là phép toán so sánh được xây dựng sẵn
b) Một ví dụ về SWRL dùng để suy diễn:
Trang 3318
Xác định thuộc tính hasUncle bằng cách cài đặt luật thông qua hai thuộc tính khác là hasParent và hasBrother Luật trên được mô hình trên môi trường soạn thảo của công cụ Protégé như sau:
hasParent(?x1, ?x2) ^ hasBrother(?x2, ?x3) → hasUncle(?x1, ?x3)
Luật này được khai báo trên source code Python để hiện thực trên thư viện Owlready2 như sau:
hasParent(?x1, ?x2), hasBrother(?x2, ?x3) -> hasUncle(?x1, ?x3)
Kết quả cài đặt bằng SWRL sau khi thực thi trên công cụ Protégé, hay trên thư viện Owlready2 là:
Trang 342.2 Đặc điểm dữ liệu trong kho dữ liệu
2.4 Các bước xử lý trong quy trình ETL
Thu thập (Capture): Rút trích và lựa chọn dữ liệu thích hợp
Làm sạch (Scrub): Xử lý lỗi, tiền xử lý, loại bỏ dữ liệu trùng, v.v
Chuyển đổi dữ liệu (Transform): Chuyển đổi định dạng hay giá trị dữ liệu
Tải (Load) dữ liệu: Tải vào kho dữ liệu và gắn Index
2.5 Thiết kế cơ sở dữ liệu cho kho dữ liệu
1) Giản đồ hình sao (Star Schema)
Giản đồ hình sao bao gồm một bảng sự kiện (fact table) ở trung tâm chứa khối lượng dữ liệu là các đại lượng đo lường, và một tập các bảng chiều (dimension table) liên quan thể hiện các chiều tham chiếu, mỗi bảng thể hiện một chiều Hình
Trang 3520
1.3 là giản đồ hình sao với 1 bảng sự kiện là: Sale và 4 bảng chiều là: Calendar, Customer, Product, Store
Hình 1.3 Giản đồ hình sao 2) Giản đồ hình bông tuyết (Snowflake Schema)
Giản đồ hình bông tuyết là sự mở rộng của giản đồ hình sao, tại các cánh sao không phải là một bảng chiều mà là nhiều bảng chiều theo các phân cấp khác nhau Hình 1.4 là giản đồ hình bông tuyết; gồm các cây phân cấp tại các nhóm bảng chiều như sau: Product:Branch là quan hệ N:1; Store:City là quan hệ N:1; City:Region là quan hệ N:1
Hình 1.4 Giản đồ hình bông tuyết
Trang 3621
3 QUY TRÌNH ETL
3.1 Khái niệm quy trình ETL
ETL là quy trình rút trích dữ liệu từ một hay nhiều nguồn, biến đổi dữ liệu để đảm bảo nhất quán khi kết hợp từ nhiều nguồn khác nhau, và chuyển kết quả vào kho dữ liệu để phục vụ cho yêu cầu xây dựng kho dữ liệu
3.2 Vai trò của quy trình ETL trong xây dựng kho dữ liệu
Thiết kế và hiện thực quy trình ETL là thành phần quan trọng và thường tốn nhiều thời gian và chi phí nhất trong việc xây dựng hệ thống kho dữ liệu Hình 1.5
là sơ đồ mô tả vòng đời xây dựng và vận hành kho dữ liệu [12]
Hình 1.5 Vòng đời kho dữ liệu [12]
Các công đoạn liên quan mật thiết đến quy trình ETL bao gồm:
Phân tích yêu cầu nhiệm vụ
Xây dựng mô hình đa chiều (mô hình kho dữ liệu)
Thiết kế vật lý kho dữ liệu
Thiết kế và hiện thực quy trình ETL
Trang 3722
3.3 Các công đoạn trong quy trình ETL
Quy trình ETL gồm ba công đoạn là: Trích xuất (Extract), Chuyển đổi (Transform), và Tải (Load) Các công đoạn này tác động lên các thành phần gồm: Các nguồn dữ liệu (Data sources), CSDL dàn dựng (Staging), và Kho dữ liệu (Data warehouse)
Hình 1.6 là sơ đồ mô tả các công đoạn và các thành phần trong quy trình ETL
Hình 1.6 Sơ đồ mô tả quy trình ETL 3.3.1 Trích xuất (Extract)
Là quá trình rút trích dữ liệu từ nhiều nguồn Các nguồn này có thể có cấu trúc
dữ liệu khác nhau, và có thể từ nhiều cơ sở dữ liệu khác nhau hay từ các file dữ liệu thô
Theo R Kimball, M Ross (2013) [12], chúng ta phải có chiến lược rõ ràng trong việc tạo sơ đồ chi tiết về kế hoạch trích xuất những nguồn dữ liệu nào, với điều kiện nào, để sau này đưa vào các bảng chiều (dimension table) nào và các bảng
sự kiện (fact table) nào Xác định đúng đối tượng dữ liệu cần trích xuất là công việc rất quan trọng, vì nó ảnh hưởng trực tiếp đến các công đoạn tiếp theo và ảnh hưởng đến kết quả cuối cùng của cả quá trình xây dựng hệ thống kho dữ liệu Ví dụ, giảm đối tượng trích xuất sẽ giảm tải cho công đoạn chuyển đổi (transform)
Hệ thống trích xuất phải nắm bắt được những dữ liệu nào là mới, những dữ liệu nào đã bị sửa hay đã bị xóa, những dữ liệu nào đến chậm, v.v; để có chính sách trích xuất phù hợp Theo R Kimball, M Ross (2013) [12], cần chú ý đến các phương pháp như là:
Trang 3823
Audit Columns: Trong những lúc cần thiết, phải thêm những trường dữ liệu để phục vụ cho việc kiểm tra, truy vết (audit) Có thể dùng kỹ thuật audit để phát hiện được những dòng dữ liệu đã bị xóa, hay những trường
dữ liệu nào đó đã bị sửa
Timed Extracts: Cần phải chú ý khi thực hiện trích xuất theo điều kiện đơn thuần là thời gian (ví dụ: điều kiện SYSDATE-1 để lấy dữ liệu ngày hôm qua) Vì như vậy, khi lỗi xảy ra giữa chừng, cần phải thực hiện lại quá trình trích xuất thì xảy ra trùng lặp phần dữ liệu đã được xử lý trước khi xuất hiện lỗi Hay là, xảy ra thiếu dữ liệu khi bị sự cố nào đó mà hệ thống bị ngưng hoạt động trong một đêm, vì ngày hôm sau hoạt động trở lại, chỉ trích xuất được những dữ liệu của ngày đó Tóm lại, chúng ta cần xem xét thêm các điều kiện khác ngoài thời gian
Full Diff Compare: So sánh đối chiếu tất cả dữ liệu để phát hiện sự thay đổi thì có vẻ hợp lý, nhưng sẽ làm ảnh hưởng rất lớn đến hiệu suất của hệ thống
3.3.2 Chuyển đổi (Transform)
Mục đích của bước này là làm thống nhất dữ liệu từ nhiều nguồn đầu vào để tích hợp với nhau trước khi chuyển vào kho dữ liệu Các kiểu biến đổi thường áp dụng như là:
Các chuyển đổi ở mức record:
Chỉ trích xuất 1 phần (những trường cần thiết)
Join giữa các table
Chuẩn hóa
Kết hợp (có thể nhiều record thành 1 record)
Các chuyển đổi ở mức field:
Chuyển đổi trên một filed: Như là, chuyển giá trị này thành giá trị khác
Chuyển đổi trên nhiều filed: Như là, kết hợp giá trị nhiều field để được giá trị 1 field hay tách giá trị 1 field thành nhiều field
Ngoài ra, trong quá trình chuyển đổi, có thể bổ sung thêm nhiều dữ liệu mới, làm giàu thêm dữ liệu từ các nguồn đầu vào hay tri thức miền có được
Trang 3924
3.3.3 Tải (Load)
Có các loại tải dữ liệu như là:
1) Tải lần đầu tiên:
Sau khi cài đặt xong kho dữ liệu, cần phải tải tất cả dữ liệu trong quá khứ đến hiện tại Do vậy, lượng dữ liệu có thể rất lớn, và thời gian thực hiện có thể rất dài Ở bước này, không yêu cầu hoàn toàn tự động
2) Tải định kỳ:
Đây là thao tác tải dữ liệu trong phạm vi một chu kỳ Bước này yêu cầu phải
tự động hoàn toàn bao gồm cả quá trình xử lý lỗi
Thách thức lớn nhất của việc tải định kỳ là:
Làm sao phát hiện được dòng dữ liệu mới, được sửa đổi, hay bị xóa
Các phương pháp xử lý khi giá trị thuộc tính trong bảng chiều (dimension table) bị thay đổi
Cách xử lý những dữ liệu đến chậm (ví dụ: dữ liệu của hôm qua, nhưng hôm nay mới đến được công đoạn tải)
Tải các bảng chiều (dimension table): Khi giá trị thuộc tính trong các bảng chiều (dimension table) có thay đổi, cần phải xác định đúng kiểu thay đổi (type 1: overwrite, type 2: add a new row, and type 3: add a new column) [12] để có cách xử
lý cho việc tải được chính xác
Tải các bảng sự kiện (fact table): Chú ý các trường hợp dữ liệu sự kiện (fact data) đến chậm và cách xử lý nó
3) Làm mới toàn bộ:
Trong những trường hợp nhất định (ví dụ: cần tạo lại index cho kho dữ liệu), chúng ta cần phải xóa hết dữ liệu, cài đặt lại kho dữ liệu, và phải tải lại từ đầu
3.4 Những khó khăn thường gặp khi xây dựng quy trình ETL
Độ phức tạp của quy trình ETL phụ thuộc và độ phức tạp của các hệ thống nguồn dữ liệu
Việc chọn công cụ nào để thực hiện quy trình ETL cũng là vấn đề khó khăn trong thiết kế hệ thống
Trang 4025
Các chức năng chuyển đổi dữ liệu thường khó sửa đổi hiệu chỉnh khi yêu cầu nghiệp vụ thay đổi
4 HỆ HỖ TRỢ RA QUYẾT ĐỊNH
4.1 Giới thiệu về hệ hỗ trợ quyết định [15]
Vào đầu những năm 1970, Scott Morton lần đầu tiên đưa ra các khái niệm liên quan đến Hệ hỗ trợ quyết định (DSS: Decision Support System) Ông định nghĩa DSS là "Hệ tương tác dựa trên máy tính nhằm giúp những người ra quyết định tận dụng dữ liệu và mô hình để giải quyết các vấn đề không có cấu trúc" (Gilty và Scott Morton, 1971)
Thêm một định nghĩa khác về DSS được đưa ra bởi Keen và Scott Morton (1978), là: "Hệ thống hỗ trợ quyết định kết hợp trí lực của con người với năng lực của máy tính để cải thiện chất lượng của các quyết định Nó là một hệ thống hỗ trợ dựa trên máy tính giúp cho người ra quyết định giải quyết các bài toán nửa cấu trúc"
4.3 Phân loại hệ hỗ trợ quyết định
Có thể phân loại hệ hỗ trợ quyết định theo các loại như sau:
Hệ hỗ trợ quyết định hướng về truyền thông/dữ liệu/tư liệu/mô hình/kiến thức
Hệ hỗ trợ quyết định hướng về văn bản/địa lý/cơ sở dữ liệu/bảng tính/bộ giải quyết bài toán/quy tắc và hệ hỗ trợ quyết định hỗn hợp
Hệ hỗ trợ quyết định thông minh
Hệ hỗ trợ cá nhân/nhóm/tổ chức
Hệ hỗ trợ quyết định trên nền WEB