1. Trang chủ
  2. » Luận Văn - Báo Cáo

Luận văn thạc sĩ Khoa học máy tí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

85 3 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

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 2

CÔ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

Cán bộ chấm nhận xét 1: PGS.TS NGUYỄN TUẤN ĐĂNG

Cán bộ chấm nhận xét 2: PGS.TS HUỲNH TRUNG HIẾU

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 22 tháng 01 năm 2021

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 4

i 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 5

ii

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 6

iii 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 7

iv

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 ITÓM TẮT ĐỀ TÀI IIABSTRACT IIILỜI CAM ĐOAN IVMỤC LỤC VDANH MỤC HÌNH ẢNH VÀ BẢNG BIỂU XDANH MỤC VIẾT TẮT XII

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 9

vi

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.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 10

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 11

viii

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 12

ix

2 KẾT LUẬN 65DANH MỤC CÁC TÀI LIỆU THAM KHẢO 67PHỤ LỤC 69

Trang 13

x

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 14

xi 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 15

xii

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 16

1 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 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 18

Á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 19

4

 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 20

5 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 21

6

Để á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 đó

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:

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 23

8

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 24

9

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  Có thể sử dụng lại Ontology có sẵn

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 25

10

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 26

11

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 27

 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)

Trang 28

13

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ó 1 và có thể có nhiều hơn 1

4 Không định nghĩa được tính: Truyền ứng (Transitive), Đối xứng (Symmetric), Nghịch đảo (Inverse)

5 Hỗ trợ suy diễn chưa đầy đủ, chưa hoàn hảo 1.7.4 Ngôn ngữ OWL

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 29

14

có thể mở rộng giá trị bằng cách bổ sung các hàm xử lý, và ràng buộc truy vấn bằng biểu đồ RDF nguồn Kết quả của các truy vấn SPARQL có thể là tập kết quả hoặc đồ thị RDF

SPARQL hỗ trợ truy vấn trên RFD khá đầy đủ như là ngôn ngữ truy vấn SQL trên cơ sở dữ liệu quan hệ Tài liệu tham khảo [13] hướng dẫn chi tiết và đầy đủ về SPARQL Riêng trong đề tài này, tác giả có sử dụng 2 chức năng FILTER và OPTIONAL cho công đoạn tải dữ liệu từ Ontology vào kho dữ liệu, nên xin giới thiệu sơ lược 2 chức năng này trong phần tiếp theo ở bên dưới

1.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

Truy vấn:

PREFIX dc: <http://purl.org/dc/elements/1.1/> SELECT ?title

WHERE { ?x dc:title ?title FILTER regex(?title, "^SPARQL") } Kết quả:

title

"SPARQL Tutorial" Giải thích:

Câu truy vấn trên thực hiện tìm ra những title trong nguồn http://purl.org/dc/elements/1.1/ mà bắt đầu bằng chuỗi “SPARQL”

SPARQL FILTER cũng có thể lọc trên tập số Xét câu truy vấn bên dưới Truy vấn:

PREFIX dc: <http://purl.org/dc/elements/1.1/> PREFIX ns: <http://example.org/ns#>

SELECT ?title ?price

WHERE { ?x ns:price ?price

FILTER (?price < 30.5)

Trang 30

15 ?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

PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT ?name ?mbox

WHERE { ?x foaf:name ?name

OPTIONAL { ?x foaf:mbox ?mbox }

Trang 31

16 }

Kết quả:

"Alice" <mailto:alice@example.com> "Alice" <mailto:alice@work.example>

"Bob"

Với name = "Bob", dù không có dữ liệu phù hợp cho biến mbox, nhưng đây vẫn là kết quả đầu ra của câu truy vấn

1.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 32

17 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à “TRUE”

 differentFrom: Phân biệt hai i-object, nếu hai i-object thể hiện cho hai cá thể, hay hai biến cá thể khác nhau thì kết quả là “TRUE”

 builtIn: Là các phép toán so sánh (Comparisons), toán học (Mathematics), chuỗi (Strings), thời gian (Date, Time), v.v được xây dựng sẵn Tham khảo “8 Built-Ins” ở [14] về các phép toán được hỗ trợ 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 33

18

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à:

<ruleml:imp>

<ruleml:_rlab ruleml:href="#example1"/> <ruleml:_body>

<swrlx:individualPropertyAtom swrlx:property="hasParent"> <ruleml:var>x1</ruleml:var>

<ruleml:var>x2</ruleml:var> </swrlx:individualPropertyAtom>

<swrlx:individualPropertyAtom swrlx:property="hasBrother"> <ruleml:var>x2</ruleml:var>

<ruleml:var>x3</ruleml:var> </swrlx:individualPropertyAtom> </ruleml:_body>

<ruleml:_head>

<swrlx:individualPropertyAtom swrlx:property="hasUncle"> <ruleml:var>x1</ruleml:var>

<ruleml:var>x3</ruleml:var> </swrlx:individualPropertyAtom> </ruleml:_head>

</ruleml:imp>

Trang 34

2.2 Đặc điểm dữ liệu trong kho dữ liệu

 Hướng chủ đề  Có tính tích hợp  Gắn với thời gian  Chỉ đọc

2.3 Mục đích của kho dữ liệu

 Truy cập dễ dàng, nhanh chóng  Thông tin nhất quán

 Bảo mật

 Hỗ trợ ra quyết định

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 35

20

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 36

21

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 37

22

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 38

23

 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

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 39

24 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 40

25

 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.2 Quá trình ra quyết định

Theo Simon (1977), quá trình ra quyết định gồm 4 giai đoạn như sau:  Tìm hiểu (intelligence)

 Thiết kế (design)  Chọn lựa (choice)

 Hiện thực (implementation)

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

Ngày đăng: 03/08/2024, 23:06

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN