Tải bản đầy đủ (.doc) (87 trang)

Giải pháp lưu trữ số lượng lớn các thực thể quan hệ trích xuất từ các bài báo mạng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.01 MB, 87 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

LUẬN VĂN THẠC SĨ
Giải pháp lưu trữ số lượng lớn các thực thể
quan hệ trích xuất từ các bài báo mạng

ĐỖ MẠNH CƯỜNG
Ngành Cơng nghệ thông tin

Giảng viên hướng dẫn:

TS. Trịnh Tuấn Đạt

Trường:

Công nghệ thông tin và truyền thông

HÀ NỘI, 2022


TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

LUẬN VĂN THẠC SĨ
Giải pháp lưu trữ số lượng lớn các thực thể
quan hệ trích xuất từ các bài báo mạng

ĐỖ MẠNH CƯỜNG
Ngành Cơng nghệ thông tin

Giảng viên hướng dẫn:


TS. Trịnh Tuấn Đạt

Trường:

Công nghệ thông tin và truyền thông

HÀ NỘI, 2022

Chữ ký của GVHD


CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc

BẢN XÁC NHẬN CHỈNH SỬA LUẬN VĂN THẠC SĨ
Họ và tên tác giả luận văn : Đỗ Mạnh Cường
Đề tài luận văn: Giải pháp lưu trữ số lượng lớn các thực thể quan hệ trích
xuất từ các bài báo mạng
Chuyên ngành: Công nghệ thông tin
Mã số HV: CB190152
Tác giả, Người hướng dẫn khoa học và Hội đồng chấm luận văn xác nhận
tác giả đã sửa chữa, bổ sung luận văn theo biên bản họp Hội đồng ngày
28/04/2022 với các nội dung sau:
-

Về hình thức: sửa lỗi đánh máy và trích dẫn tài liệu tham khảo đầy đủ.
Một số hình chưa được việt hóa cần chỉnh sửa.
Về nội dung: sửa lại mục tiêu và nêu rõ đóng góp. Mơ tả và làm rõ hơn
phần thực nghiệm ở chương 3.
Chương 1 giảm phần trình bày neo4j và thêm phần hạn chế.

Chương 1, 2 thêm so sánh về công nghệ.
Chỉnh sửa công cụ sinh dữ liệu mô phỏng để sát với dữ liệu thực tế.
Ngày

tháng

năm 2022

Giáo viên hướng dẫn Tác giả luận văn TS. Trịnh Tuấn
Đạt Đỗ Mạnh Cường

CHỦ TỊCH HỘI ĐỒNG

TS. Vũ Thị Hương Giang


Lời cam đoan
Tôi xin cam đoan: Luận văn “Giải pháp lưu trữ số lượng lớn các thực
thể quan hệ trích xuất từ các bài báo mạng” là cơng trình nghiên cứu khoa
học, độc lập của tơi. Kiến thức trình bày trong luận văn là sự tổng hợp của cá
nhân, thông qua các kiến thức từ thầy hướng dẫn, các tài liệu tham khảo trên
mạng internet và các bài báo khoa học khác.
Đây là đề tài luận văn Thạc sĩ ngành Cơng nghệ Thơng tin. Kết quả
nghiên cứu được trình bày trong luận văn này chưa từng được công bố dưới bất
kỳ hình thức nào.

Hà Nội, ngày tháng năm 2022
Tác giả luận văn

Đỗ Mạnh Cường



Lời cảm ơn
Trước tiên, tôi xin chân thành cảm ơn các thầy, các cô trong trường Công
nghệ thông tin và Truyền thông - Trường Đại học Bách Khoa Hà Nội đã tận tình
giảng dạy trong suốt thời gian tơi học tập ở trường. Để hồn thành Luận văn thạc
sĩ, tơi cũng đã nhận được nhiều sự quan tâm, giúp đỡ từ q thầy cơ, gia đình và
bạn bè.
Đặc biệt tơi bày tỏ lòng biết ơn sâu sắc tới thầy TS. Trịnh Tuấn Đạt đã tận
tình chỉ bảo, hướng dẫn trực tiếp tơi để tìm ra hướng nghiên cứu và có thể hồn
thiện luận văn tốt nghiệp của mình.
Cuối cùng, tơi xin cảm ơn gia đình và bạn bè và tập thể lớp CNTT 2019B
đã luôn ủng hộ, giúp đỡ tôi trong thời gian học tập, nghiên cứu và thực hiện luận
văn tốt nghiệp.
Trong quá trình làm luận văn tốt nghiệp chắc chắn khơng tránh khỏi những
sai sót, tơi rất hoan nghênh và chân thành cảm ơn các ý kiến đóng góp của q
thầy cơ và bạn đọc.
Hà Nội, ngày tháng năm
Học Viên

Đỗ Mạnh Cường


Tóm tắt nội dung luận văn
Các website ngày càng phát triển mạnh mẽ, mang đến rất nhiều nguồn
thông tin hữu ích cho các chính phủ, tổ chức, xã hội, doanh nghiệp và cá nhân,
đóng vai trị quan trọng, ảnh hưởng tới mọi lĩnh vực của đời sống xã hội. Thu
thập các nguồn tin tức này và trích xuất ra các thực thể quan hệ giữa chúng giúp
chúng ta hiểu được xu hướng vận động, phát triển của các sự vật, hiện tượng.
Cách làm này hỗ trợ đắc lực cho các hoạt động kinh doanh cũng như hoạt động

trong lĩnh vực an ninh quốc phòng, quản lý điều hành các dịch vụ cơng, quản lý
giám sát báo chí truyền thơng, hỗ trợ q trình ra quyết định, phịng ngừa bệnh
tật, chống khủng bố, phòng chống tội phạm, bảo vệ thương hiệu, dự báo xu
hướng thị trường, phát triển kinh doanh, đánh giá dư luận,…
Đã có nhiều nghiên cứu phân tích các bài viết trích xuất tự động các thực
thể quan hệ giữa chúng. Để sử dụng các kết quả nghiên cứu này, đồng thời làm
tiền đề cho các nghiên cứu mới hướng tới phân tích, thống kê dữ liệu thu thập
được, cần phát triển hệ thống lưu trữ và quản lý thơng tin trích xuất thu được. Do
số lượng các bài viết rất lớn, tổng số lượng thực thể quan hệ lưu trữ có thể lên tới
hàng tỷ. Thách thức đặt ra là cần phải đảm bảo hiệu năng lưu trữ và truy vấn trên
số lượng lớn các thực thể quan hệ này để phục vụ cho các hoạt động thống kê,
giúp theo dõi, giám sát, tổng hợp các thông tin trên mạng.
Vì các giải pháp lưu trữ dữ liệu truyền thống không thể đáp ứng yêu cầu trên.
Nên tôi đã chọn đề tài “Giải pháp lưu trữ số lượng lớn các thực thể quan hệ

trích xuất từ các bài báo mạng” – tập trung giải quyết lưu trữ các bài mạng ở
dạng báo tin tức, hướng tới xây dựng hệ thống lưu trữ, truy vấn các thực thể quan
hệ với kích thước lớn bằng cách sử dụng đồ thị tri thức.
Hà Nội, ngày tháng năm 2022
Học viên

Đỗ Mạnh Cường


MỤC LỤC
MỞ ĐẦU ............................................................................................................... 1
CHƯƠNG 1. CƠ SỞ LÝ THUYẾT .................................................................... 4
1.1

Đồ thị tri thức .............................................................................................. 4


1.2

Neo4j - Nơi lưu trữ dữ liệu ....................................................................... 11

1.3

Cypher (query language) ........................................................................... 21

1.4

NodeJs – Express ...................................................................................... 22

1.5

ReactJs....................................................................................................... 22

CHƯƠNG 2. GIẢI PHÁP VÀ ĐÓNG GÓP NỔI BẬT .................................. 23
2.1

Thiết kế mơ hình lưu trữ dữ liệu ............................................................... 23
2.1.1

Đặc tả thông tin dữ liệu ............................................................. 23

2.1.2

Thiết kế mơ hình dữ liệu ........................................................... 24

2.2


Cơng cụ sinh dữ liệu mơ phỏng ................................................................ 29

2.3

Lựa chọn mơ hình dữ liệu tối ưu ............................................................... 36

2.4

Hệ thống lưu trữ thực thể quan hệ ............................................................ 41

2.5

2.6

2.4.1

Kiến trúc hệ thống ..................................................................... 41

2.4.2

Hệ thống REST API Service ..................................................... 43

Công cụ hướng dẫn sử dụng hệ thống ...................................................... 44
2.5.1

Service API ............................................................................... 44

2.5.2


Xây dựng giao diện API Service............................................... 52

Xây dựng bộ hướng dẫn sử dụng để vận hành, bảo trì và triển khai cluster
cho hệ thống CSDL ................................................................................... 54
2.6.1
Triển khai cluster ...................................................................... 54
2.6.2

Quản trị, vận hành và bảo trì hệ thống ...................................... 60

CHƯƠNG 3. THỰC NGHIỆM ........................................................................ 66
3.1

Môi trường thực nghiệm ........................................................................... 66

3.2

Dữ liệu thực nghiệm .................................................................................. 66

3.3

Đánh giá hiệu năng truy vấn thực nghiệm ................................................ 67
3.3.1

Đánh giá mơ hình dữ liệu .......................................................... 67

3.3.2

Đánh giá truy vấn hiệu năng hệ thống ...................................... 69


CHƯƠNG 4. KẾT LUẬN .................................................................................. 71
TÀI LIỆU THAM KHẢO ................................................................................. 73


DANH MỤC HÌNH VẼ
Hình 1.1 Ví dụ về đồ thị tri thức neo4j..................................................... 17
Hình 1.2 Ví dụ về nút duy nhất trong neo4j.............................................. 17
Hình 1.3 Ví dụ nhiều nhãn của nút trong neo4j........................................ 18
Hình 1.4 Ví dụ relationship type trong neo4j............................................ 19
Hình 1.5 Ví dụ traversals trong neo4j....................................................... 20
Hình 1.6 Ví dụ truy vấn Cypher traversals trong neo4j............................22
Hình 2.1 Đồ thị sử dụng fact-node............................................................ 26
Hình 2.2 Mơ hình lưu trữ dữ liệu thứ nhất................................................ 27
Hình 2.3 Mơ hình lưu trữ dữ liệu thứ hai.................................................. 27
Hình 2.4 Mơ hình lưu trữ dữ liệu thứ ba................................................... 28
Hình 2.5 Mơ hình lưu trữ dữ liệu thứ tư.................................................... 28
Hình 2.6 File cấu hình cho việc sinh dữ liệu mơ phỏng............................29
Hình 2.7 Giải thuật sinh dữ liệu................................................................ 30
Hình 2.8 Đồ thị được áp dụng giải thuật sinh dữ liệu...............................31
Hình 2.9 Sinh node từ file cấu hình yêu cầu............................................. 32
Hình 2.10 Sinh hai node Fact (f), node News (n)..................................... 32
Hình 2.11 Lựa chọn mode thỏa mãn quan hệ cần sinh.............................33
Hình 2.12 Tạo liên kết giữa các node........................................................ 33
Hình 2.13 Thơng tin file header biểu diễn node........................................34
Hình 2.14 Thơng tin file biểu diễn node................................................... 34
Hình 2.15 Thơng tin file header biểu diễn relationship.............................34
Hình 2.16 Thơng tin file biểu diễn relationship........................................ 35
Hình 2.17 Thơng tin file script import...................................................... 35
Hình 2.18 Thực hiện truy vấn về số lượng dbhits trên đồ thị tri thức.......36
Hình 2.19 Mã lệnh truy vấn Cypher trong neo4j...................................... 36

Hình 2.20 Execution plan trong neo4j...................................................... 37
Hình 2.21 Đồ thị tri thức gồm ba bài viết với các thực thể quan hệ.........40
Hình 2.22 Kiến trúc hệ thống.................................................................... 42


Hình 2.23 Truy vấn Cypher mối liên hệ trong bài viết............................. 45
Hình 2.24 Dữ liệu thơng tin thực thể trả về............................................... 45
Hình 2.25 Truy vấn Cypher mối liên hệ trong bài viết............................. 46
Hình 2.26 Dữ liệu mối liên hệ trong bài viết............................................. 47
Hình 2.27 Truy vấn Cypher thống kê các bài viết theo điều kiện.............48
Hình 2.28 Dữ liệu trả về thống kê các bài viết theo điều kiện..................48
Hình 2.29 Truy vấn Cypher về thực thể khi thống kê các bài viết............49
Hình 2.30 Dữ liệu trả về của thực thể khi thống kê các bài viết...............49
Hình 2.31 File thơng tin thực thể quan hệ trong một bài viết cần lưu......51
Hình 2.32 Câu lệnh Cypher lưu trữ bài viết.............................................. 51
Hình 2.33 Giao diện Service API lấy thơng tin thực thể...........................52
Hình 2.34 Giao diện Service API truy vấn bài viết................................... 53
Hình 2.35 Giao diện Service API thống kê bài viết.................................. 53
Hình 2.36 Kiến trúc Causal Clustering..................................................... 55
Hình 2.37 Cluster của máy chủ SINGLE.................................................. 57
Hình 2.38 Cluster của máy chủ read_replica01........................................ 57
Hình 2.39 Cluster của máy chủ read_replica02........................................ 57
Hình 2.40 Cluster của máy chủ read_replica03........................................ 57
Hình 2.41 Cấu hình core01.example.com................................................. 59
Hình 2.42 Cấu hình core02.example.com................................................. 60
Hình 2.43 Cấu hình core03.example.com................................................. 60
Hình 2.44 Cú pháp câu lệnh thực hiện backup online...............................61
Hình 2.45 Cài đặt và câu lệnh thực hiện backup.......................................62
Hình 2.46 Nội dung file backup script...................................................... 63
Hình 2.47 Cú pháp câu lệnh restore dữ liệu trong neo4j...........................64

Hình 2.48 Mơ tả các thao tác trong lệnh thực hiện restore.......................64
Hình 2.49 Cú pháp câu lệnh unbind trong neo4j....................................... 65
Hình 2.50 Ví dụ cú pháp câu lệnh unbind trong neo4j..................................65


DANH MỤC BẢNG
Bảng 1. 1. Bảng so sánh giữa các loại cơ sở dữ liệu .................................. 5

Bảng 1. 2. Bảng so sánh các cơ sở dữ liệu đồ thị ..................................... 12
Bảng 2. 1. Bảng loại thực thể quan hệ ...................................................... 23
Bảng 2. 2. Bảng lưu trữ relationship type ................................................. 24
Bảng 2. 3. Danh sách và ý nghĩa các operator .......................................... 38
Bảng 2. 4. Thuộc tính của node được đánh index .................................... 40
Bảng 2. 5. Service truy vấn thông tin thực thể ......................................... 45
Bảng 2. 6. Service truy vấn mối liên hệ .................................................... 46
Bảng 2. 7. Truy vấn các thực thể có nhãn cho trước ................................ 47
Bảng 2. 8. Truy vấn thực thể với nhãn đã cho .......................................... 48
Bảng 2. 9. Cài đặt quan trọng cho Cluster có phiên bản SINGLE ........... 56
Bảng 2. 10. Cài đặt quan trọng cho Cluster có phiên bản CORE ............. 58
Bảng 2. 11. Tham số sao lưu dữ liệu ........................................................ 61
Bảng 2. 12. Một vài tham số điển hình trong câu lệnh backup ................ 62
Bảng 2. 13. Mô tả tham số trong câu lệnh restore .................................... 64
Bảng 3. 1. Bộ dữ liệu thực nghiệm ........................................................... 67
Bảng 3. 2. Đánh giá bốn mơ hình ............................................................. 67
Bảng 3. 3. Bảng hiệu năng truy vấn trên máy chủ .................................... 70


Danh mục các từ viết tắt

DBMS


Database Management System
Hệ quản trị cơ sở dữ liệu.

RDBMS

Hệ quản trị cơ sở dữ liệu quan hệ.

DBMS Graph

Hệ quản trị cơ sở dữ liệu đồ thị.

API

Application Programming Interface.

Giao diện lập trình ứng dụng.
CSDL

Cơ sở dữ liệu.

CNTT

Công nghệ thông tin.

REST

Representational State Transfer.

Kiểu kiến trúc sử dụng trong giao tiếp giữa các máy tính

trong việc quản lý tài nguyên trên web.
ACID

Là từ viết tắt các chữ cái đầu của bốn từ tiếng Anh
atomicity (Tính nguyên tố) , consistency (Tính nhất
quán), isolation (Tính độc lập), và durability (Tính
bền vững)

SQL

Ngơn ngữ truy vấn tiêu chuẩn cho mơ hình cơ sở dữ
liệu quan hệ.

RDF

Resource Description Framework, được sử dụng như là
một phương thức chung nhất cho các mô tả khái niệm
hoặc mơ hình hóa của thơng tin được diễn dịch trong các
tài nguyên web, sử dụng trong các định dạng cú pháp
khác nhau.

RAM

Random Access Memory, bộ nhớ truy cập ngẫu nhiên
của máy tính được sử dụng làm nơi lưu trữ tạm dữ liệu và
lệnh thực thi của hệ điều hành và các ứng dụng trước khi
ghi chúng lên ổ cứng, khi kết thúc phiên làm việc.


Danh mục thuật ngữ


Cluster

Cụm hay phân cụm

Model

Mơ hình

Backup

Sao lưu

Restore

Phục hồi

Demo

Viết tắt của từ demonstration: thử nghiệm

Server local

Máy chủ cục bộ được chạy trên máy tính người dùng.

Server cloud

Máy chủ “đám mây”; cơ sở hạ tầng ảo được xây dựng
để thực hiện việc lưu trữ xử lý thông tin và ứng dụng.



MỞ ĐẦU
1. Đặt vấn đề
Sự phát triển mạnh mẽ của các website ngày càng đóng vai trị quan trọng, ảnh
hưởng tới mọi lĩnh vực của đời sống xã hội. Hầu hết các hoạt động của chúng ta đều được
ghi lại dưới dạng tin tức, chia sẻ ý kiến bình luận, tương tác, trong giao dịch và giao tiếp
thông qua các trang mạng xã hội, báo điện tử, blog. Mỗi bài báo mạng đề cập về vấn đề cụ
thể với nhiều loại thơng tin hữu ích. Khi tiếp nhận nhiều nguồn thơng tin hữu ích này người
đọc sẽ trang bị thêm nhiều kiến thức phục vụ đời sống và công việc của mình.

Trước thực tế này, cơ quan, tổ chức, doanh nghiệp và chính phủ ở nhiều quốc gia
đã đầu tư nghiên cứu xây dựng nhiều mơ hình, giải pháp chun nghiệp kết hợp giữa
con người và các giải pháp tự động nhằm thu thập, phân tích tin tức từ các nguồn trên
Internet để thu thập, tổng hợp thông tin và phân tích các số liệu thống kê. Từ đó, họ có
thể phát hiện dấu hiệu, động thái mới và dự báo xu hướng vận động, phát triển của sự
vật, hiện tượng. Với cách tiếp cận này, hỗ trợ đắc lực cho các hoạt động hằng ngày cũng
như trong hoạt động trong lĩnh vực an ninh quốc phòng, quản lý điều hành các dịch vụ
công; hoạt động kinh doanh, bảo vệ thương hiệu, dự báo xu hướng thị trường; quản lý
giám sát truyền thơng báo chí, trợ giúp q trình đưa ra quyết định; chiến dịch phòng
ngừa bệnh tật, chống khủng bố, phòng chống tội phạm; đánh giá dư luận,…
Từ trước tới này đã có nhiều nghiên cứu, phân tích trích xuất tự động giữa thực
thể quan hệ của chúng từ các bài báo. Để sử dụng các kết quả nghiên cứu này, đồng thời
làm tiền đề cho các nghiên cứu mới hướng tới phân tích, thống kê dữ liệu thu thập được,
cần phát triển hệ thống lưu trữ và quản lý thơng tin trích xuất đã thu được [1]. Do số
lượng các bài viết rất lớn nên tổng số lượng thực thể quan hệ lưu trữ có thể lên tới hàng
tỷ. Điều này đặt ra thách thức phải có nơi đủ khả năng lưu trữ số lượng lớn dữ liệu này
và quá trình truy vấn dữ liệu lớn này phải đảm bảo hiệu năng, chính xác nhằm phục vụ
cho hoạt động theo dõi, giám sát, thống kê, tổng hợp thông tin trên mạng.
Do trước đây dữ liệu sau khi được phân tích, trích rút từ các cơng trình nghiên cứu,
các công cụ chuyển dữ liệu từ dạng phi cấu trúc sang dạng có cấu trúc và lưu trữ trên cơ sở

dữ liệu quan hệ truyền thống; cộng với thách thức đặt ra ở trên nên việc sử dụng cơ sở dữ
liệu quan hệ là một giải pháp không tốt. Bởi vì khi thể hiện quan hệ này ở dạng bảng khơng
thể hiện được cái nhìn trực quan và tổng thể, chi phí cho truy vấn kết nối giữa các bảng
cao. Ngoài ra việc sử dụng cơ sở dữ liệu quan hệ để lưu dữ liệu cho nhiều thực thể như:
quốc gia, tổ chức, con người, sự kiện, địa điểm và mối liên kết giữa chúng gặp phải

1


vấn đề về tốc độ truy vấn bị chậm, từ đó khả năng xử lý thơng tin khơng được đáp ứng
tốt.
Hiểu được tầm quan trọng đó, tơi đã chọn đề tài “Giải pháp lưu trữ số lượng
lớn các thực thể quan hệ trích xuất từ các bài báo mạng” - tập trung giải quyết lưu trữ
các bài báo mạng ở dạng báo tin tức, bằng những kiến thức tìm hiểu được và với tinh
thần hăng say, nghiêm túc.
2. Mục tiêu nghiên cứu của luận văn
Với những bài toán cần lưu trữ số lượng lớn các thực thể quan hệ ở dạng có cấu trúc
thì việc sử dụng đồ thị tri thức là lựa chọn tối ưu. Bởi vì đồ thị tri thức thường được sử
dụng để lưu trữ các mô tả liên kết với nhau về thực thể, đối tượng, sự kiện, tình huống
trong thế giới thực hoặc khái niệm trừu tượng dưới dạng đồ thị. Và đặc biệt phù hợp cho
dạng bài toán lưu trữ số lượng lớn các thực thể quan hệ trích xuất từ bài báo mạng.

Phục vụ cho mục tiêu tìm hiểu nghiên cứu, phân tích và lựa chọn mơ hình cho đồ
thị tri thức tối ưu cần xây dựng công cụ sinh dữ liệu mô phỏng tự động, lựa chọn nền
tảng công nghệ neo4j cho việc thực thi đồ thị tri thức, xây dựng các service API và
hướng dẫn sử dụng service cũng như hệ thống.
Xây dựng công cụ sinh dữ liệu mô phỏng đáp ứng của yêu cầu nghiên cứu và có
khả năng tùy biến để áp dụng cho các nghiên cứu khác.
3. Phạm vi đề tài
Như đã được nêu ở phần mục tiêu, phạm vi đề tài tập trung những cơng việc sau:



Thiết kế mơ hình lưu trữ dữ liệu.



Xây dựng cơng cụ dữ liệu mơ phỏng.



Lựa chọn mơ hình lưu trữ tối ưu.



Xây dựng hệ thống lưu trữ thực thể quan hệ.



Xây dựng cơng cụ hướng dẫn sử dụng hệ thống.



Tổng hợp hướng dẫn sử dụng để vận hành, bảo trì và triển khai cluster cho hệ
thống.



Thực nghiệm đánh giá giải pháp.

4. Cấu trúc luận văn

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT: Chương này trình bày cơ sở lý thuyết đồ thị
tri thức và các cơng nghệ cần có để sử dụng triển khai hệ thống cho yêu cầu ở trên. Công
nghệ được sử dụng cho hệ thống: neo4j – một nền tảng công nghệ cho phép lưu trữ

2


dữ liệu dưới dạng đồ thị tri thức, dữ liệu lưu trữ được không giới hạn mà chỉ phụ thuộc
vào phần cứng; NodeJs-Express và ReactJs – môi trường phát triển ứng dụng, cung cấp
thư viện hỗ trợ xây dựng nhanh API service, chạy ứng dụng trên nền web.
CHƯƠNG 2: GIẢI PHÁP VÀ ĐĨNG GĨP NỔI BẬT: Chương này trình bày
về nội dung giải pháp và đóng góp nổi bật bao gồm: thiết kế mơ hình dữ liệu; xây dựng
cơng cụ sinh dữ liệu mô phỏng tự động cho CSDL; lựa chọn mơ hình dữ liệu tối ưu; xây
dựng hệ thống lưu trữ thực thể quan hệ theo mơ hình đã chọn; xây dựng công cụ hướng
dẫn sử dụng để vận hành, bảo trì và triển khai cluster hệ thống.
CHƯƠNG 3: THỰC NGHIỆM: Chương này trình bày cách thức thực nghiệm,
đánh giá bốn mơ hình và đánh giá truy vấn hiệu năng của hệ thống.
CHƯƠNG 4: KẾT LUẬN: Chương này đưa ra những kết luận của quá trình
nghiên cứu cũng như đánh giá kết quả đạt được và định hướng nghiên cứu tiếp theo.
TÀI LIỆU THAM KHẢO: Liệt kê các tài liệu mà luận văn tham khảo trên các
nguồn khác nhau.

3


CHƯƠNG 1. CƠ SỞ LÝ THUYẾT
Trước vấn đề đặt ra cần lưu trữ số lượng lớn các quan hệ thực thể được trích xuất
từ các bài báo mạng và được xử lý từ dạng dữ liệu chưa có cấu trúc sang dạng dữ liệu
có cấu trúc, lúc này yêu cầu lựa chọn cơ sở dữ liệu lưu trữ phù hợp. Tơi đã tìm hiểu,
khảo sát, đánh giá các loại cơ sở dữ liệu đang được sử dụng phổ biến hiện nay và quyết

định sử dụng đồ thị tri thức và loại cơ sở dữ liệu là DBMS Graph để giải quyết vấn đề
lưu trữ dữ liệu.
1.1 Đồ thị tri thức
Sau khi trích xuất dữ liệu từ các bài báo mạng và được xử lý từ dạng dữ liệu chưa có
cấu trúc sang dạng dữ liệu có cấu trúc. Lúc này cần lựa chọn cơ sở dữ liệu lưu trữ phù hợp
để khai thác nguồn dữ liệu này. Hiện nay có rất loại cơ sở dữ liệu như: (1) cơ sở dữ liệu
quan hệ - RDBMS gồm: Oracle, MySQL, SQL Server, PostgreSQL,…; (2) cơ sở dữ liệu
Key-value Store gồm: Redis, Amazon DynamoDB, Microsoft Azure Cosmos DB,…;
(3) cơ sở dữ liệu Document Store gồm: MongoDB, Amazon DynamoDB, Databricks,…;

(4) cơ sở dữ liệu đồ thị - DBMS Graph gồm: GraphDB, OrientDB, Cayley, MarkLogic,
Titan, Oracle, Neo4J,… trong số chúng loại CSDL quan hệ được sử dụng rộng rãi và
phổ biến nhất. Bởi vì đây là loại CSDL có lịch sử ra đời khá sớm bắt đầu từ những năm
60 của thế kỷ trước cho tới nay và vẫn đang tiếp tục; được nhiều tập đồn cơng ty lớn
cùng phát triển và sử dụng như: IBM, Microsoft, Oracle, SyBase,… và có cộng đồng sử
dụng rộng lớn. Cơ sở dữ liệu quan hệ khơng chỉ có độ bao phủ khổng lồ mà hầu hết các
bài toán lưu trữ đều thực hiện được; nhưng không phải lúc nào cũng tốt nhất. So sách
các loại cơ sở dữ liệu ở Bảng 1 bên dưới.

4


Bảng 1. 1. Bảng so sánh giữa các loại cơ sở dữ liệu
Loại cơ sở dữ liệu
Quan hệ
(RDBMS)

Key-Value Store

Document Store


Đồ thị
(DBMS Graph)

DBMS đại Oracle, MySQL, SQL Server, Redis, Amazon DynamoDB,
diện
PostgreSQL, …
Microsoft Azure Cosmos
DB,…

MongoDB,
Amazon GraphDB, OrientDB, Cayley,
DynamoDB, Databricks,…
MarkLogic, Titan, Oracle,
Neo4J,…

Đặc điểm

- Document store được gọi là
các cơ sở dữ liệu hướng tài
liệu, một thiết kế riêng biệt
cho việc lưu trữ tài liệu dạng
văn kiện JSON, BSON hoặc
XML.
- CSDL dạng này có các cặp

Lưu trữ dữ liệu dưới dạng
bảng quan hệ và được quản lý
thông qua giao thức SQL –
ngôn ngữ truy vấn cấu trúc


- Key-value là kiểu lưu trữ
đơn giản nhất trong các loại
CSDL đồng thời cũng là kiểu
lưu trữ cho tồn bộ các hệ
NoSQL. Q trình thực hiện
tìm kiếm dữ liệu đều thực hiện
thông qua key nên dẫn đến
hạn chế về độ chính xác.

khố – giá trị nhưng cũng có
- Sử dụng cho dữ liệu được
đính kèm các trị số siêu dữ
truy xuất thường xuyên nhưng liệu (*metadata) giúp việc
không thường xuyên được cập truy vấn (*query) dễ dàng
nhật.
hơn.

- Mô hình được thiết kế cho
dữ liệu có quan hệ được biểu
diễn tốt dưới dạng biểu đồ và
có các yếu tố được liên kết với
nhau, với số lượng quan hệ
không xác định giữa chúng.
- Graph Store lưu trữ mối
quan hệ trên từng record riêng
biệt.
- Tương đối giống với
RDBMS ở điểm dữ liệu có
cấu trúc nhưng giữa các bản

5


- Memcached chỉ được sử
dụng cho bộ nhớ đệm, trong
khi Redis làm được nhiều điều
hơn nữa. Memcached chỉ hỗ
trợ strings, integers trong cấu
trúc lưu trữ data, trong khi
Redis hỗ trợ nhiều loại dữ liệu
phức tạp như strings, hashes,
lists, sets, sorted sets ….
Ngồi ra, Redis có thể lưu dữ
liệu vào đĩa để đảm bảo độ
bền, cịn Memcached thì
khơng.
Điểm
mạnh

Có kiến trúc dữ liệu chặt chẽ - Linh hoạt, xử lý nhiều loại
và đảm bảo tính nhất quán cao dữ liệu một cách nhanh
- Tính ngun tố (Atomicity): chóng.
Đảm bảo một giao dịch có
nhiều thao tác thì hoặc là tồn
bộ thao tác được thực hiện
hoặc là khơng thao tác nào
được hồn thành.

- Xử lý tốt dữ liệu semiconstricted
hoặc

unconstristed, người
dùng
đến
- Các chìa khóa được dùng để không cần quan tâm
truy xuất thẳng tới các giá trị dạng dữ liệu khi lưu trữ.
tìm kiếm mà khơng cần thơng - Người dùng có thể thiết kế
qua quá trình index giúp quá cấu trúc cho một dữ liệu mà
trình tìm kiếm nhanh chóng. khơng ảnh hưởng đến loại dữ
liệu khác.

ghi của DBMS Graph không
cố định và tên cột có thể biến
động.

- Mơ hình Graph Store vừa
mang đặc điểm của NoSQL
với đặc tính đơn giản, flexible
của nó, kèm theo high
performance và highly scaleout và vừa mang đặc điểm của
cơ sở dữ liệu có cấu trúc như
RDBMS.

6


-

Tính

nhất


quán - Hỗ trợ chuyển từ hệ thống

(Consistency): Một giao dịch
hoặc là có trạng thái mới hoặc
nếu có lỗi sẽ chuyển tồn bộ
trạng thái về trước đó.

này sang hệ thống khác mà
không cần code lại.

- Mở rộng theo chiều ngang
dễ dàng và chi phí vận hành
- Tính độc lập (Isolation): Một thấp.
giao dịch đang thực thi và
chưa được xác nhận phải đảm
báo tách biệt khỏi các giao
dịch khác.

Thời gian ghi dữ liệu cũng rất - Không phụ thuộc vào tổng
nhanh.
- Mở rộng linh hoạt

kích thước của tập dữ liệu.
theo - Trong khi các cơ sở dữ liệu

chiều ngang. Quá
trình
sharding cũng dễ hiểu và dễ
thao tác hơn hệ CSDL quan

hệ.

- Tính bền vững (Durability):
Dữ liệu sẽ được hệ thống lưu
lại ngay cả trong trường hợp
hỏng hóc hoặc có lỗi hệ thống,
đảm bảo dữ liệu vẫn trong
trạng thái chuẩn xác.
Điểm yếu

- Điểm yếu lớn nhất của
RDBMS là không xử lý được
tốt các dữ liệu phi cấu trúc.
- Tốc độ truy vấn chậm do hỗ
trợ các đặc điểm ACID.

khác tính tốn các mối quan
hệ tại thời điểm truy vấn
thông qua các hoạt động JOIN
tốn kém, thì cơ sở dữ liệu đồ
thị lưu trữ các kết nối cùng
với dữ liệu trong mơ hình.
- Biểu diễn quan hệ giữa các
node trực quan.
- Truy vấn thời gian thực
nhanh chóng.

- Tính linh hoạt của CSDL
dạng key – value bị đánh đổi
bởi tính chính xác. Hầu như

rất khó để truy xuất giá trị
chính xác từ CSDL dạng này
vì dữ liệu được lưu trữ theo

CSDL dạng lưu trữ tài liệu hy
sinh các yếu tố ACID để đổi
lấy sự linh hoạt. Ngồi ra,
việc truy vấn chỉ có thể được
thực hiện trong từng tài liệu,

- Thiếu tính đồng thời hiệu
suất cao (high performance
concurrency): Trong nhiều
trường hợp, graph database
cung cấp các kiểu đọc và kiểu
ghi đơn, điều này cản trở sự

7


- Việc thay đổi cơ sở dữ liệu

blob, nên kết quả trả về hầu
như đều theo blob.

không thể truy vấn dữ liệu
đồng thời và hiệu suất, do đó
trên nhiều tài liệu khác nhau. phần nào hạn chế tính song
khá khó do tính chặt chẽ của
song phân luồng (threaded

nó.
- Khó khăn khi báo cáo số liệu
parallelism).
- Cấu trúc RDBMS làm phức hoặc cần chỉnh sửa một phần
- Thiếu ngôn ngữ chuẩn: Việc
tạp hóa việc nâng cao mở rộng của các giá trị.
thiếu sự thiết lập và một ngôn
máy chủ theo chiều ngang
ngữ khai báo chuẩn là một
hoặc chiều dọc.
vấn của NoSQL graph
database.
- Thiếu tính song song
(parallelism): việc phân vùng
một biểu đồ là một vấn đề.
Hầu hết các graph database
không cung cấp các truy vấn
song song trên các biểu đồ
lớn.
Ứng dụng

Các ứng dụng web với lượng - Caching
giao dịch lớn và truy vấn phức - Quản lý HTTP session
tạp.
- Dữ liệu phi cấu trúc như
Dữ liệu tài chính, thơng tin
review sản phẩm, bình luận
người dùng, thơng tin nhân của blog
khẩu …


- Dữ liệu phi cấu trúc hoặc
khơng có cấu trúc (video,
media, photo, document…)
- Quản lý danh mục sản phẩm
- Phân tích dữ liệu hành vi
khách hàng

- Các hệ thống yêu cầu dữ liệu
với số lượng lớn các mối quan
hệ linh hoạt, yêu cầu cấu trúc
có thể mở rộng để thêm dữ
liệu mới, yêu cầu truy vấn các
mối quan hệ in real-time.
8



×