Triển khai bài toán trên mô hình cơ sở dữ liệu đồ thị có thể là một hướng đi đúng đắn có thể khắc phục các hạn chế trên, cụ thể: - Mô hình hóa đồ thị thuộc tính rất trực quan dễ tiếp cận
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
-Trần Thị Kim Lan
NGHIÊN CỨU VÀ ỨNG DỤNG CƠ SỞ DỮ LIỆU ĐỒ THỊ
VÀO BÀI TOÁN QUẢN LÝ KHÁCH HÀNG
ĐỀ ÁN TỐT NGHIỆP THẠC SĨ KỸ THUẬT
(Theo định hướng ứng dụng)
HÀ NỘI - NĂM 2024
Trang 2HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
-Trần Thị Kim Lan
NGHIÊN CỨU VÀ ỨNG DỤNG CƠ SỞ DỮ LIỆU ĐỒ THỊ
VÀO BÀI TOÁN QUẢN LÝ KHÁCH HÀNG
Chuyên ngành: Hệ thống thông tin
Trang 3LỜI CAM ĐOAN
Tôi cam đoan công trình nghiên cứu này là của riêng tôi, do tôi nghiên cứu,tham khảo các tài liệu để thực hiện
Tất cả các bảng biểu, số liệu trong công trình được tôi tự thực hiện hoặc tríchdẫn nguồn tham khảo rõ ràng Kết quả nêu trong đề án tốt nghiệp là trung thực vàchưa từng được ai công bố trong bất kỳ công trình nào khác
Hà Nội, ngày 01 tháng 03 năm 2024
Tác giả đề án tốt nghiệp
Trần Thị Kim Lan
Trang 4LỜI CẢM ƠN
Nhận được sự đồng ý của Nhà trường, sự giúp đỡ tận tình của GS.TS TừMinh Phương, tôi đã nỗ lực nghiên cứu hoàn thành luận văn với đề tài “Nghiên cứu
và ứng dụng Cơ sở dữ liệu đồ thị vào bài toán Quản lý khách hàng”, một đề tài gợi
mở hướng đi cho các khó khăn cần giải quyết bài toán Quản lý khách hàng tại Viễnthông Hà Nội – đơn vị tôi đang công tác
Tôi xin chân thành cảm ơn Học viện Công nghệ Bưu chính Viễn thông đã tạođiều kiện để tôi có cơ hội tiếp cận, nghiên cứu một đề tài hữu ích Tôi xin gửi lờicảm ơn đặc biệt tới GS.TS Từ Minh Phương đã hướng dẫn tôi phương pháp nghiêncứu, hỗ trợ và giúp đỡ tôi thực hiện để có thể hoàn thành luận văn này
Hà Nội, ngày 01 tháng 03 năm 2024
Tác giả đề án tốt nghiệp
Trần Thị Kim Lan
Trang 5MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
MỤC LỤC iii
DANH MỤC CÁC THUẬT NGỮ, CÁC CHỮ VIẾT TẮT vi
DANH SÁCH BẢNG vii
DANH SÁCH HÌNH vii
MỞ ĐẦU 1
1 Đặt vấn đề 1
2 Đề xuất nghiên cứu 2
3 Bố cục luận văn 3
CHƯƠNG 1: TỔNG QUAN 4
1.1 Bài toán Quản lý khách hàng (VNPT – Hà Nội) 4
1.2 Cơ sở dữ liệu đồ thị 6
1.2.1 Khái niệm 6
1.2.2 Hệ quản trị cơ sở dữ liệu Neo4j 8
1.2.3 Xu hướng ứng dụng 13
1.3 Tổng kết chương 13
CHƯƠNG 2: GIẢI PHÁP TRIỂN KHAI BÀI TOÁN QUẢN LÝ KHÁCH HÀNGTRÊN CSDL QUAN HỆ VÀ ĐỒ THỊ 15
2.1 Giải pháp triển khai trên Cơ sở dữ liệu quan hệ 16
2.1.1 Sơ đồ thực thể liên kết 16
2.1.2 Ưu nhược điểm và phương án khắc phục 17
2.1.3 Kết luận 19
Trang 62.2 Giải pháp triển khai trên Cơ sở dữ liệu đồ thị 19
2.2.1 Mô hình dữ liệu 20
2.2.2 Ưu nhược điểm và phương án khắc phục 22
2.2.3 Kết luận 23
2.3 Chuyển đổi CSDL quan hệ có sẵn sang CSDL đồ thị 23
2.3.1 Giải pháp 23
2.3.2 Chuyển đổi CSDL bài toán Quản lý khách hàng sang CSDL đồ thị .25 2.4 Tổng kết chương 30
CHƯƠNG 3: THỬ NGHIỆM VÀ ĐÁNH GIÁ 31
3.1 Thử nghiệm 31
3.1.1 Lựa chọn kỹ thuật 31
3.1.2 Chuyển đổi cơ sở dữ liệu quan hệ - đồ thị 32
3.1.3 Chương trình demo 34
3.2 So sánh kết quả thực thi câu lệnh 38
3.2.1 Mô hình và kích thước dữ liệu 38
3.2.2 Kịch bản thực nghiệm 40
3.2.3 Kết quả thực nghiệm 41
3.2.4 Đánh giá thực nghiệm 52
3.3 Tổng kết chương 53
KẾT LUẬN 54
1 Tổng kết chung 54
2 Hướng phát triển 55
TÀI LIỆU THAM KHẢO 57
PHỤ LỤC: CHI TIẾT CÂU LỆNH THỬ NGHIỆM 58
Trang 71 Import/Insert dữ liệu 58
2 Truy vấn đơn giản nhiều bảng/quan hệ 59
3 Truy vấn chọn trước dữ liệu 59
4 Truy vấn tính toán toàn bộ dữ liệu 60
5 Truy vấn tính toán dữ liệu chọn trước 60
6 Truy vấn có truy vấn con 61
7 Truy vấn gộp nhiều câu lệnh 62
Trang 8DANH MỤC CÁC THUẬT NGỮ, CÁC CHỮ VIẾT TẮT
Trang 9DANH SÁCH BẢNG
Bảng 2.1 Nút Loại khách hàng……… 26
Bảng 2.2 Nút Dịch vụ……… 26
Bảng 2.3 Nút Hình thức thanh toán……… 27
Bảng 2.4 Nút Khách hàng……… 27
Bảng 2.5 Nút Thanh toán……… 28
Bảng 2.6 Nút Thuê bao……… 28
Bảng 3.1 Chi tiết số liệu thực nghiệm……… 40
Bảng 3.2 Chi tiết số liệu thực hiện insert/import……… 41
Bảng 3.3 Chi tiết số liệu thực hiện truy vấn đơn giản nhiều bảng/quan hệ 43 Bảng 3.4 Chi tiết số liệu thực hiện truy vấn chọn trước dữ liệu……… 45
Bảng 3.5 Chi tiết số liệu truy vấn tính toán toàn bộ dữ liệu……… 46
Bảng 3.6 Chi tiết số liệu truy vấn tính toán dữ liệu chọn trước……… 48
Bảng 3.7 Chi tiết số liệu truy vấn có truy vấn con……… 49
Bảng 3.8 Chi tiết số liệu truy vấn gộp nhiều câu lệnh……… 51
DANH SÁCH HÌNH Hình 1.1 Mô hình tổng thể hệ thống quản trị doanh nghiệp………… 5
Hình 1.2 Ví dụ về mô hình đồ thị thuộc tính……… 7
Hình 1.3 Biểu đồ mô tả Nodes – Nút……… 9
Hình 1.4 Biểu đồ mô tả Relationships – Quan hệ……… 10
Hình 1.5 Biểu đồ mô tả Quan hệ có hướng……… 10
Hình 1.6 Biểu đồ mô tả Properties – Thuộc tính……… 11
Hình 1.7 Biểu đồ mô tả Labels – Nhãn……… 11
Hình 1.8 Biểu đồ mô tả Paths – Đường kết nối……… 12
Hình 2.1 Mô hình bài toán Quản lý khách hàng……… 15
Hình 2.2 Sơ đồ thực thể liên kết Khách hàng – Thanh toán……… 16
Hình 2.3 Sơ đồ thực thể liên kết Thanh toán – Thuê bao – Dịch vụ…… 17
Hình 2.4 Giải pháp triển khai trên CSDL đồ thị……… 20
Hình 2.5 Mô hình dữ liệu đồ thị đã chuyển đổi……… 21
Hình 2.6 Lưu đồ chuyển đổi CSDL QH sang CSDL ĐT……… 24
Hình 2.7 Sơ đồ thực thể liên kết Khách hàng – Loại khách hàng……… 25
Hình 2.8 Đồ thị biểu diễn nút Khách hàng – Loại khách hàng………… 25
Hình 2.9 Đồ thị biểu diễn quan hệ Khách hàng – Loại khách hàng…… 27
Hình 2.10 Đồ thị biểu diễn quan hệ Khách hàng – Thanh toán………… 28
Hình 2.11 Đồ thị quan hệ Thanh toán – Thuê bao – Dịch vụ……… 29
Hình 2.12 Lược đồ CSDL đồ thị QLKH tổng quát……… 29
Trang 10Hình 2.13 Kết quả CSDL đồ thị sau chuyển đổi từ CSDL quan hệ…… 30
Hình 3.1 CSDL đồ thị quan hệ Khách hàng……… 32
Hình 3.2 CSDL đồ thị các dich vụ của Khách hàng……… 32
Hình 3.3 CSDL đồ thị thử nghiệm……… 33
Hình 3.4 Biểu đồ PCCN ứng dụng demo……… 34
Hình 3.5 Thiết kế giao diện quản lý khách hàng……… 35
Hình 3.6 Thiết kế giao diện quản lý nhãn……… 36
Hình 3.7 Thiết kế giao diện quản lý thuộc tính……… 36
Hình 3.8 Thiết kế giao diện báo cáo……… 37
Hình 3.9 Cơ sở dữ liệu thử nghiệm……… 39
Hình 3.10 Kịch bản thực nghiệm trên CSDL Oracle/Neo4j……… 41
Hình 3.11 Đồ thị kết quả import/insert ………
……… 42
Hình 3.12 Đồ thị kết quả truy vấn đơn giản nhiều bảng/quan hệ … …… 44
Hình 3.13 Đồ thị kết quả truy vấn chọn trước dữ liệu 45
Hình 3.14 Đồ thị kết quả truy vấn tính toán toàn bộ dữ liệu……… 47
Hình 3.15 Đồ thị kết quả truy vấn tính toán dữ liệu chọn trước………… 49
Hình 3.16 Đồ thị kết quả truy vấn có truy vấn con……… 50
Hình 3.17 Đồ thị kết quả truy vấn gộp nhiều câu lệnh……… 52
Trang 11MỞ ĐẦU
1 Đặt vấn đề
Ngành công nghệ thông tin đã được ứng dụng vào các bài toán quản lý doanhnghiệp từ rất sớm Trong thời đại kỹ thuật số, ngành công nghệ thông tin đóng mộtvai trò ngày càng quan trọng trong việc cải thiện hiệu quả hoạt động của các tổ chức
và cá nhân Sự phát triển của công nghệ đã tạo ra nhiều cơ hội mới, nhưng cũngđồng thời đặt ra những thách thức không nhỏ
Giải pháp quản trị doanh nghiệp đầy đủ bao gồm một hệ thống các phần mềmphủ khắp các hoạt động quản lý của một doanh nghiệp trong đó mỗi phần mềm thựchiện một nhiệm vụ phức tạp, cần tối ưu và tốn kém Viễn thông Hà Nội, chi nhánhtập đoàn VNPT cũng đã áp dụng triển khai giải pháp ERP từ rất sớm, tuy nhiêntrong quá trình triển khai thực hiện phát sinh rất nhiều vấn đề cần đầu tư nghiêncứu, cải tiến để nâng cao hiệu suất cũng như khả năng mở rộng Quản lý tốt thôngtin khách hàng và dịch vụ giúp cho:
- Đáp ứng nhu cầu quản lý dữ liệu, quản lý thông tin
- Tăng cường khả năng khai thác số liệu hỗ trợ đánh giá chỉ, xây dựng chínhsách phát triển
- Đáp ứng quy trình điều hành cung cấp dịch vụ đến khách hàng
- Hỗ trợ công tác chăm sóc – nâng cao trải nghiệm khách hàng về chất lượngdịch vụ và phục vụ
Quản lý khách hàng là phân hệ trọng tâm, nắm giữ các thông tin cần thiết ảnhhưởng đến sự phát triển của doanh nghiệp Khi lượng khách hàng bùng nổ cùng sự
đa dạng của dịch vụ trong những năm gần đây, mô hình hệ thống đang triển khai đãgặp phải một số khó khăn mặc dù phân hệ được đầu tư rất nhiều cả về công nghệlẫn thiết kế:
Trang 12- Tổng hợp dữ liệu chậm dần khi khối lượng dữ liệu trưởng nhanh.
- Khó khăn khi điều chỉnh thường xuyên CSDL về kiến trúc để đáp ứng côngtác cung cấp dịch vụ
- Hệ thống hạ tầng phải tăng cường, mở rộng thường xuyên đáp ứng nhu cầulưu trữ hoặc tốc độ xử lý
Các khó khăn trên gây tốn kém cả về nhân lực, thời gian và tài chính Do đó, cầnnghiên cứu giải pháp xử lý, có thể tiếp cận theo từng bước để tiến dần tới thay đổihoặc chuyển đổi hệ thống sẵn có
2 Đề xuất nghiên cứu
Viễn thông Hà Nội đã áp dụng nhiều giải pháp từ tối ưu sản phẩm phần mềm,nâng cấp phần cứng, trang bị thêm các công nghệ tích hợp… Qua nghiên cứu vềcác mô hình dữ liệu, có thể nhận thấy cơ sở dữ liệu đồ thị có rất nhiều tiềm năng làgiải pháp phù hợp để giải quyết các vấn đề, cụ thể:
- CSDL đồ thị dễ học, dễ hiểu và có nguồn tài liệu phong phú
- Có sự tương đồng trong cách mô hình hóa dữ liệu với CSDL quan hệ, là cơ
sở thực hiện chuyển đổi bài toán từ mô hình quan hệ sang đồ thị
- CSDL đồ thị đơn giản hóa trong việc thay đổi cấu trúc (nút, quan hệ, thuộctính…)
- Chỉ một phần CSDL bị tác động do truy vấn theo quan hệ, do đó khi kíchthước dữ liệu tăng thời gian truy vấn có thể không tăng cao
Luận văn trình bày nội dung nghiên cứu, tìm hiểu giải pháp thử nghiệm giảiquyết bài toán Quản lý khách hàng của Viễn thông Hà Nội trên mô hình CSDL đồthị với phạm vi như sau:
- Nghiên cứu các khái niệm, mô hình CSDL đồ thị
- Chọn Neo4j – một CSDL đồ thị mạnh và phổ biến để thử nghiệm
- Phân tích mô hình dữ liệu của bài toán trên cả hai mô hình: quan hệ - đồ thị,đánh giá ưu/nhược điểm của từng mô hình
- Nghiên cứu giải pháp chuyển đổi CSDL từ quan hệ sang đồ thị
Trang 13- Xây dựng chương trình demo đánh giá khả năng phát triển ứng dụng trênCSDL đồ thị.
- Xây dựng kịch bản và thử nghiệm so sánh hiệu năng (thời gian) truy vấn trên
cả hai CSDL với một số câu lệnh thường sử dụng
3 Bố cục luận văn
Luận văn chia làm các phần:
Mở đầu: Đặt vấn đề, phân tích vấn đề thực tiễn và đề xuất hướng nghiên cứu,
nêu các mục tiêu cần đạt được
Chương 1: Phát biểu bài toán, giới hạn phạm vi thực hiện Trình bày các nghiên
cứu về cơ sở dữ liệu đồ thị và hệ quản trị CSDL đồ thị Neo4j
Chương 2: Phân tích giải pháp giải quyết bài toán Quản lý khách hàng trên các
mô hình cơ sở dữ liệu quan hệ và đồ thị (mô hình, ưu/nhước điểm) Đề xuất cácphép đo kiểm cho phần thử nghiệm
Chương 3: Trình bày ngắn gọn thiết kế chương trình demo với mục đích đánh
giá khả năng phát triển ứng dụng trên CSDL đồ thị Xây dựng kịch bản đánh giáhiệu năng (thời gian) trên cả hai CSDL quan hệ và đồ thị với một số câu truy vấnthường sử dụng
Kết luận: Tóm tắt lại kết quả nghiên cứu, phân tích đánh giá khả năng áp dụng,
mở rộng
Phụ lục: Các câu lệnh thực hiện truy vấn thử nghiệm
Trang 14CHƯƠNG 1: TỔNG QUAN
Chúng ta cần nghiên cứu giải pháp mới xuất phát từ các khó khăn thực tế khiphát triển các bài toán trên mô hình cơ sở dữ liệu quan hệ có sự mở rộng của khốilượng dữ liệu, sự thay đổi của các thuộc tính dữ liệu thường xuyên Trong thực tế,khi khối lượng dữ liệu tăng dần tới các truy vấn dữ liệu bị chậm dần đi, buộc phảican thiệp bởi các giải pháp kỹ thuật, tốn kém nhiều chi phí Tương tự, việc cácthuộc tính dữ liệu bị ràng buộc quá chặt chẽ cũng khó khăn trong quá trình chỉnhsửa bổ sung các phần mềm quản lý
Đối với bài toán quản lý khách hàng, Telenor – công ty viễn thông cung cấpdịch vụ ở cả Châu Âu và Châu Á cũng đã ứng dụng CSDL đồ thị quản lý cấu trúc tổchức khách hàng, thỏa thuận, đăng ký và quyền truy cập của người dùng Họ đã cónhững đánh giá rất tốt về hiệu suất khi ứng dụng CSDL đồ thị so với CSDL quan hệnhưng không chia sẻ cụ thể về phạm vi ứng dụng cũng như các tài liệu thiết kế haythử nghiệm Tuy nhiên, đây cũng có thể coi là cơ sở về mặt thực tiễn để chúng tanghiên cứu về hướng áp dụng CSDL đồ thị trong bài toán ERP, với phạm vi và cấutrúc phù hợp với điều kiện triển khai của doanh nghiệp
1.1. Bài toán Quản lý khách hàng (VNPT – Hà Nội)
Bài toán Quản lý khách hàng có số lượng thực thể quan hệ không nhiều nhưng cócác đặc tính phù hợp cho việc phân tích: dữ liệu lớn và tăng trưởng theo thời gian,thuộc tính dữ liệu thay đổi do các nghiệp vụ phát sinh
Xét trong tổng thể bài toán quản trị doanh nghiệp của Viễn thông Hà Nội, bàitoán về Quản lý khách hàng chỉ là một phân hệ quản lý nhưng lại có vị trí rất quantrọng:
- Quản lý và cung cấp thông tin khách hàng cho các phân hệ khác: chăm sóckhách hàng, tính cước, điều hành phát triển dịch vụ…
- Hỗ trợ tổng hợp số liệu các báo cáo phân tích, dự đoán tình hình phát triểnhoặc cơ sở quyết định cho các chính sách kinh doanh
Trang 15KHÁCH HÀNG
MÃ THANH TOÁN
QL HỢP ĐỒNG
CHĂM SÓC KHÁCH HÀNG
ĐIỀU HÀNH DỊCH VỤ
TRA CỨU THÔNG TIN
THỐNG
KÊ BÁO CÁO
TÀI CHÍNH
KẾ TOÁN
Hình 1.1 Mô hình tổng thể hệ thống quản trị doanh nghiệp
Bài toán quản lý mối quan hệ khách hàng là dạng bài toán quản lý thường đượctriển khai trên mô hình Cơ sở dữ liệu quan hệ với độ phức tạp tùy theo từng môhình kinh doanh Việc bổ sung thuộc tính mới đáp ứng các yêu cầu nghiệp vụthường dẫn tới phải chỉnh sửa lại cấu trúc các bảng dữ liệu, đồng thời tốc độ truyvấn giảm khi lượng dữ liệu tăng cao Triển khai bài toán trên mô hình cơ sở dữ liệu
đồ thị có thể là một hướng đi đúng đắn có thể khắc phục các hạn chế trên, cụ thể:
- Mô hình hóa đồ thị thuộc tính rất trực quan dễ tiếp cận
- CSDL đồ thị hỗ trợ bổ sung thuộc tính dữ liệu mềm dẻo
Trang 16- Thực hiện truy vấn dựa trên phép duyệt đồ thị và dựa vào các mối quan hệ đãđịnh nghĩa sẵn nên tốc độ truy vấn ít biến động khi dữ liệu tăng.
Mô hình hóa dữ liệu bằng đồ thị sử dụng các hình khối và các mũi tên để đưa
dữ liệu vào và thể hiện mối quan hệ giữa chúng [2][6]
1.2.1.2 Mô hình đồ thị thuộc tính
Mỗi thực thể đều có những đặc điểm riêng Khi xây dựng mô hình đồ thị, ta
có thể đưa hoàn toàn các đặc điểm đó thành các nút, nhưng như vậy sẽ rất phứctạp trong cả việc xây dựng đồ thị lẫn khai thác sử dụng đặc biệt gây lãng phí sốnút khi số lượng thực thể tăng lên làm phức tạp đồ thị và tốn không gian lưu trữ.Giải pháp là ta sử dụng mô hình đồ thị thuộc tính, cụ thể: [6]
Trang 17name: string code: string
code: string
airline: string departure: long arrival: long distance: long
Hình 1.2 Ví dụ về mô hình đồ thị thuộc tính
- Đồ thị là tập hợp các nút và mối quan hệ
- Nút, quan hệ có các thuộc tính được thể hiện theo key-value
- Mối quan hệ: được đặt tên, có nút đầu và nút cuối
Đồ thị thuộc tính thường rất trực quan, dễ hiểu và nhìn có vẻ đơn giảnnhưng nó có thể mô tả đa số các trường hợp sử dụng, giúp chúng nhìn nhận sâusắc hơn về dữ liệu
1.2.1.3 Mô hình hóa dữ liệu
Về cơ bản, khi thiết kế CSDL đồ thị cũng tương tự thiết kế CSDL quan hệ,
mô hình đồ thị thuộc tính với sơ đồ thực thể kết hợp cũng khá tương đồng.CSDL quan hệ có các thực thể cụ thể tương ứng các nút trong CSDL đồ thị và
cả hai đều cần các mối quan hệ giữa chúng
Đối với cơ sở dữ liệu đồ thị việc thiết kế như thế nào sẽ được hiện thực đúngnhư vậy trong khi các thực thể của CSDL quan hệ sẽ là một bảng chứa tập cácbản ghi, các mối quan hệ có thể thành thực thể kết hợp [2][6]
Phương pháp thiết kế CSDL đồ thị: [2][6][7]
Trang 18- Xác định đâu là nút, đâu là mối quan hệ rất quan trọng, quyết định viecjxây dựng đúng đắn đồ thị Nút thường có quan hệ với nhiều nút khác vàmối quan hệ thì nó phải có nút đầu, nút cuối.
- Nghiên cứu chi tiết về dữ liệu để xác định các thực thể cũng như các mốiquan hệ giữa chúng
- Sử dụng nút để đại diện cho các thực thể, thuộc tính nút để mô tả các tínhchất của thực thể
- Mối quan hệ để thể hiện sự kết nối giữa các thực thể, sử dụng các thuộctính để mô tả tính quan trọng, chất lượng của một quan hệ
- Trong trường hợp các thực thể khác nhau tương tác trong cùng mộtkhoảng thời gian thì một sự kiện xuất hiện, chúng được thể hiện như làcác nút riêng và kết nối với các thực thể tham gia
- Kiểu dữ liệu phức tạp là những kiểu dữ liệu có hơn một trường hoặcthuộc tính thường biểu diễn chúng bằng các node riêng biệt
1.2.2 Hệ quản trị cơ sở dữ liệu Neo4j
Neo4j hiện đang là hệ quản trị cơ sở dữ liệu đồ thị phổ biến nhất, mã nguồn mở
và được viết bằng ngôn ngữ Java, sử dụng Cypher làm ngôn ngữ truy vấn dữ liệu.Neo4j hỗ trợ và thực hiện đầy đủ các yêu cầu về mặt lý thuyết cơ sở dữ liệu đồ thị
Để hiểu rõ hơn và khai thác hiệu quả hơn Neo4j, chúng ta cần tìm hiểu một số vấn
đề, cụ thể:
1.2.2.1 Tính năng nổi bật
Neo4j có một số tính năng nổi bật được giới thiệu để chúng ta cân nhắc khi
áp dụng vào thực tế:
- Dễ dùng và áp dụng cho các API hướng đối tượng
- Tối ưu hóa cho dữ liệu có tính kết nối cao
- Xác định các mối quan hệ tại thời điểm tạo giúp tối ưu thời gian truyvấn
Trang 19- Không yêu cầu không gian lưu trữ lớn và có bộ nhớ đệm cho các đồ thị,
có khả năng mở rộng lưu trữ số lượng lớn nút (hàng tỉ) trên một hệ thốngphần cứng vừa phải
- Viết trên các JVM - Java virtual machine
Hình 1.3 Biểu đồ mô tả Nodes - Nút
Các nút thường được dùng để biểu diễn các thực thể [6]
1.2.2.3 Mối quan hệ - Relationships:
Quan hệ giữa các nút cho phép tìm kiếm các dữ liệu có liên quan với nhau.Mối quan hệ cũng giống như nút: có thể có thuộc tính
Trang 20Mối quan
hệ
Node
Nhãn Thuộc tính
Hình 1.4 Biểu đồ mô tả Relationships - Quan hệ
Một mối quan hệ kết nối hai nút với nhau, gồm nút bắt đầu và nút kết thúc
có hoặc không có thuộc tính, luôn xác định hướng được dùng cho phép duyệt
đồ thị Mỗi mối quan hệ đều có loại quan hệ và mỗi loại quan hệ này được xácđịnh bởi một định danh duy nhất [6]
Hình 1.5 Biểu đồ mô tả Quan hệ có hướng
1.2.2.4 Thuộc tính - Properties:
Cả nút và quan hệ đều có thể bổ sung tập các thuộc tính
Thuộc tính là cặp key – value, trong đó key có kiểu là string Các giá trị củathuộc tính trong Neo4j có thể là: chuỗi, số, luận lý hoặc tập hợp Thuộc tính cókey chứa giá trị null đồng nghĩa là không tồn tại key đó trong tập thuộc tính củanút hay mối quan hệ [6]
Trang 21Value Key
Có một Có một
Kiểu nguyên thủy
Có thể là một mảng của
Có thể là một
Kiểu nguyên thủy
Kiểu nguyên thủy
Kiểu nguyên thủy
Kiểu nguyên thủy
Kiểu nguyên thủy
Kiểu nguyên thủy Kiểu
nguyên thủy
Kiểu nguyên thủy
Kiểu nguyên thủy
Hình 1.7 Biểu đồ mô tả Labels - Nhãn
Một nút có thể được gắn nhãn hoặc không Truy vấn cơ sở dữ liệu có thể tácđộng trên các bộ thay vì toàn đồ thị giúp cho việc viết các truy vấn tối ưu [6]
1.2.2.6 Đường kết nối - Paths:
Một đường đi là một hay nhiều node được kết nối với nhau bởi các quan hệ:[6]
Trang 22Node bắt đầu
Đường kết nối
Node kết thúc
Mối quan hệ
Node
Có thể có một hoặc nhiều
Theo sau bởi một
Hình 1.8 Biểu đồ mô tả Paths – Đường kết nối
Cypher là ngôn ngữ truy vấn cho cơ sở dữ liệu đồ thị, có đặc điểm dễ đọc và
dễ hiểu đối với cả các nhà phát triển Cypher được xem là ngôn ngữ truy vấn đồthị dễ tìm hiểu nhất, cho phép người dùng truy vấn thông tin trên cơ sở dữ liệutheo một mô hình cụ thể, Nhìn chung, Cypher thể hiện rất tự nhiên và cũng nhưhầu hết các ngôn ngữ khác, Cypher cũng có các câu lệnh riêng, cú pháp riêng.[6]
Trang 231.2.3 Xu hướng ứng dụng
Việc ứng dụng mô hình CSDL đồ thị đã diễn ra hàng chục năm qua trên khắpthế giới Thông thường, chúng ta hình dung mô hình dữ liệu này phù hợp với cácbài toán mạng xã hội do tính chất tự nhiên của mối quan hệ đồ thị, tuy nhiên về thực
tế mô hình CSDL đồ thị có thể phù hợp với hầu hết các lĩnh vực xã hội: đồ thị trithức (Knowledge Graph); giám sát cơ sở hạ tầng và CSDL cho các hoạt động côngnghệ thông tin (Network and Database Infrastructure Monitoring for ITOperations); trí tuệ nhân tạo (Artificial Intelligence and Analytics)
Các công ty công nghệ lớn luôn đi tiên phong và ứng dụng mô hình này trongcác bài toán quan trọng của họ, điển hình như:
- Google với sản phẩm Knowledge Graph: hệ thống tìm kiếm tri thức mạnh
mẽ kết hợp với semantic web (web ngữ nghĩa) cho phép hiểu được ý nghĩacủa các từ khóa, từ đó đưa ra các kết quả chính xác hơn
- Facebook cung cấp sản phẩm Graph Search: cũng là một công cụ tìm kiếmngữ nghĩa, cho phép đưa ra các kết quả trên các truy vấn bằng ngôn ngữ tựnhiên của người dùng
1.3 Tổng kết chương
Trong thực tế khi lượng khách hàng tăng trưởng cao hoặc bùng nổ, lượng lớnthông tin lưu trữ trên CSDL quan hệ lại tỉ lệ nghịch với thời gian truy vấn, khai tháchoặc đối với các yêu cầu thường xuyên thay đổi thuộc tính trên các đối tượng quản
lý cũng đặt ra thách thức lớn cho mô hình triển khai này
Để giải quyết vấn đề, các giải pháp kỹ thuật cũng tiêu tốn nhiều tài nguyên và chiphí, từ đó đặt ra yêu cầu cần nghiên cứu các mô hình triển khai mới, giảm thiểuhoặc khắc phục các hạn chế trên Có thể thấy định hướng nghiên cứu về cơ sở dữliệu đồ thị và ứng dụng vào bài toán có mối quan hệ dữ liệu đa dạng, phức tạp làkhả thi Nằm trong phân lớp các CSDL NoSQL, CSDL đồ thị với các khái niệmđơn giản, gần gũi, trực quan giúp chúng ta dễ dàng tiếp cận, nghiên cứu và ứngdụng Với hầu hết các bài toán thường gặp, việc mô hình hóa đồ thị thuộc tính cũng
Trang 24dễ dàng chỉ thông qua ba thành phần cơ bản: nút, quan hệ và thuộc tính Ngôn ngữCypher với cú pháp tự nhiên, dễ hiểu là một công cụ mạnh mẽ hỗ trợ chúng ta trongtương tác và khai thác các dữ liệu trên CSDL đồ thị một cách nhanh chóng.
Kết quả nghiên cứu sẽ đánh giá khả năng chuyển đổi mô hình, hiệu năng và tạo
cơ sở cho việc ứng dụng cơ sở dữ liệu trong thực tế
Trang 25CHƯƠNG 2: GIẢI PHÁP TRIỂN KHAI BÀI TOÁN QUẢN
LÝ KHÁCH HÀNG TRÊN CSDL QUAN HỆ VÀ ĐỒ THỊ
Bài toàn Quản lý khách hàng VNPT – Hà Nội đã được triển khai trên hệ quản trị
cơ sở dữ liệu quan hệ, thực hiện quản lý mối quan hệ nghiệp vụ: mỗi khách hàng cómột tập các mã thanh toán, mỗi mã thanh toán thực hiện thanh toán cho một hoặcnhiều thuê bao (là các dịch vụ cung cấp) Các dịch vụ mới thường xuyên phát sinhtheo nhu cầu thị trường, các thuộc tính dịch vụ khác nhau thường khác nhau
Khách hàng
Mã thanh
toán 1
Mã thanh toán n
Di
Điện thoại CĐ
Hình 2.1 Mô hình bài toán Quản lý khách hàng
Trong phần này sẽ trình bày lại mô hình của triển khai bài toán, đánh giá các ưunhược điểm trên cả mô hình CSDL quan hệ và đồ thị, từ đó xây dựng giải phápchuyển đổi dữ liệu, làm cơ sở ứng dụng thực tế
Trang 262.1 Giải pháp triển khai trên Cơ sở dữ liệu quan hệ
2.1.1 Sơ đồ thực thể liên kết
Khách hàng Loại khách hàng
Mã thanh toán
Mã loại khách hàng
Loại khách hàng
Ngân hàng
Ngân hàng
Mã HTTT HTTT
Mã ngân hàng
Trang 27Thuê bao
Mã thuê bao
1
Hình 2.3 Sơ đồ thực thể liên kết Thanh toán – Thuê bao – Dịch vụ
Hai sơ đồ thực thể liên kết rút gọn thực hiện khi triển khai bài toán trên mô hình
cơ sở dữ liệu quan hệ Bài toán triển khai trên mô hình cơ sở dữ liệu hoàn toàn phùhợp, mối quan hệ giữa các thực thể rõ ràng và rất dễ phân tích Tuy nhiên, sử dụngcác sơ đồ này chúng ta có thể đánh giá về mặt lý thuyết một số vấn đề sẽ gặp phảitrong thực tế
2.1.2.1 Ưu điểm
Do bài toán có quan hệ rất rõ ràng, việc triển khai trên mô hình cơ sở dữ liệu quan hệ có rất nhiều ưu điểm
- Phân tích bài toán rõ ràng, rành mạch
- Dữ liệu tổ chức gọn gàng, phân loại cụ thể
- Dễ dàng xây dựng các truy vấn dữ liệu
Trang 28- Hầu hết các hệ quản trị cơ sở dữ liệu quan hệ đều tương thích và cài đặtkhông tốn kém thời gian, các nền tảng lập trình cũng hỗ trợ rất tốt khiphát triển, giúp cho việc lựa chọn các hệ quản trị cơ sở dữ liệu cũng phùhợp hơn.
sẽ gặp vấn đề về tải hệ thống Đối với vai trò cung cấp dữ liệu cho các hệthống tổng hợp báo cáo, việc triển khai sẽ gặp vấn đề về tốc độ hoặc bộnhớ
- Để tối ưu hóa trên các hệ quản trị cơ sở dữ liệu quan hệ, khi sử dụng các
kỹ thuật phân vùng dữ liệu, đánh chỉ mục… sẽ gây khó khăn trong côngtác quản lý và tăng dung lượng lưu trữ Tuy nhiên, việc này là khôngtránh khỏi khi thực hiện triển khai trên mô hình có sở dữ liệu quan hệ.Việc phân vùng dữ liệu ít nhiều làm các bài toán tổng hợp dữ liệu theonhiều chu kỳ gặp khó khăn, các bài toán sử dụng tham số đầu vào độngcũng cần được xử lý thật tốt mới cho kết quả khả thi
- Sự cứng nhắc trong thiết kế của cơ sở dữ liệu quan hệ sẽ khó khăn khi bổsung các thuộc tính mới hoặc loại bỏ các thuộc tính thực sự dư thừa Vềthực tế, bổ sung thêm thuộc tính mới thường không xảy ra trên các hệthống ổn định nghiệp vụ, tuy nhiên là thường xuyên xảy ra trên các hệthống cung cấp dịch vụ do các yêu cầu thị trường và chính sách
Trang 29- Lãng phí các không gian lưu trữ cho các trường không hoặc sử dụng dữliệu mặc định chỉ để đảm bảo đúng cấu trúc Việc này sẽ tiêu tốn mộtlượng tài nguyên không nhỏ khi kích thước dữ liệu tăng và phần nào cũngảnh hưởng đến thời gian truy vấn.
2.1.2.3 Phương án khắc phục các nhược điểm
- Đối với việc xử lý thuộc tính động: có thể xử lý thông qua sử dụng mộtvài thực thể đóng vai trò quản lý các thuộc tính Giải pháp này có thể sửdụng tuy nhiên ít nhiều đã phá vỡ mối quan hệ rõ ràng trên mô hình.Ngoài ra rất khó khăn khi xây dựng các truy vấn dữ liệu, khó khăn cả vểcách viết lẫn phương án tăng tốc độ
- Đối với việc tăng tốc truy vấn dữ liệu khi kích thước tăng cao: sẽ phụthuộc vào đánh chỉ mục, phân cùng dữ liệu… tuy nhiên cách làm này lạiphụ thuộc vào sự hỗ trợ của hệ quản trị cơ sở dữ liệu và doanh nghiệp lựachọn
2.1.3 Kết luận
Việc triển khai bài toán trên mô hình cơ sở dữ liệu quan hệ là hợp lý, các ưunhược điểm cũng đã được phân tích và đều có phương hướng giải quyết Tuy nhiên,việc tìm kiếm một mô hình khác có nhiều ưu điểm hoặc dễ dàng hơn khi khắc phụccác nhược điểm là điều cần thiết, sẽ giúp giảm chi phí quản lý và điều hành củadoanh nghiệp Mô hình tốt hơn cần thể hiện kết quả thông qua: phương án xử lýnhược điểm và số liệu đo đạc trên một số câu truy vấn dữ liệu lớn Việc so sánh giảipháp sẽ được thực hiện thông qua kết quả đo đạc của ứng dụng demo
2.2 Giải pháp triển khai trên Cơ sở dữ liệu đồ thị
Phần này trình bày phương án triển khai lại giải pháp trên cơ sở dữ liệu đồ thị,
sử dụng lại toàn bộ các phân tích về dữ liệu khi thực hiện trên cơ sở dữ liệu quan hệ[6]
Có thể nhận thấy giải pháp triển khai trên mô hình CSDL đồ thị từ bài toán đangtriển khai trên mô hình CSDL quan hệ chỉ cần một số bước rất ngắn gọn và đơn
Trang 30giản, chúng ta có thể mô hình hóa dữ liệu dựa trên các phân tích như khi triển khaitrên CSDL quan hệ, với một vài điểm khác biệt:
- Thực thể được mô hình dưới các node đồ thị
- Quan hệ giữa các thực thể mô hình hóa dưới quan hệ các node, không sửdụng khóa liên kết như trên CSDL quan hệ
- Các thuộc tính thực thể trở thành thuộc tính node
Mô hình dữ liệu quan hệ
Ánh xạ thực thể sang node đồ thị
Ánh xạ thuộc tính thực thể sang thuộc tính node
Ánh xạ quan hệ thực thể sang quan hệ các node
Mô hình dữ liệu đồ thị
Hình 2.4 Giải pháp triển khai trên CSDL đồ thị
Như vậy, quan hệ trên CSDL đồ thị được biểu diễn dưới quan hệ trực tiếp giữacác node, không phải là quan hệ giữa các thực thể qua thuộc tính dữ liệu như CSDL
đồ thị Để có cái nhìn chi tiết, phần tiếp theo chúng ta sẽ phân tích mô hình dữ liệuquan hệ tại Chương 2, mục 2.4 khi triển khai trên mô hình CSDL đồ thị với cácbước thực hiện theo giải pháp trên
2.2.1 Mô hình dữ liệu
Thực hiện chuyển đổi từ mô hình cơ sở dữ liệu quan hệ sang mô hình cơ sở dữ liệu đồ thị, chúng ta có mô hình mới:
Trang 31a Khách hàng:
- Mỗi khách hàng sẽ được mô tả bằng một node
- Các thuộc tính của khách hàng sẽ là thuộc tính của node
- Các node khách hàng sẽ được gán label phân loại: KhachHang
- Quan hệ có CO_MA_THANH_TOAN sẽ được gán theo chiều từ nodekhách hàng => mã thanh toán
Dương
:LoaiKh Ma_lkh:
KHVIP
Loai_kh:
VIP
:HinhThucTT Ma_httt: NGHG Httt: Ủy nhiệm
chi Ngân hàng
:TaiKhoan SoTk:
123123123
:NganHang MaNh: VCB NganHang:
Ma_tt: MX10234 Dia_chi: Hoàn Kiếm
HINH_THUC_THANH_TOAN
Ngay_cn:01/01/2011
:ThueBao Ten_tb: Nguyễn Văn
A
Ma_tb: 0912121212 Dia_chi: Hoàn Kiếm
:DichVu CODINH Dich_vu: Cố định
:DichVu Ma_dv: FIBER Dich_vu: Fiber
- Mỗi mã thanh toán sẽ được mô tả bằng một node
- Các thuộc tính của mã thanh toán sẽ là thuộc tính của node
- Các node mã thanh toán sẽ được gán label phân loại: MaThanhToan
- Quan hệ CO_MA_KHACH_HANG sẽ được gán theo chiều từ node mãthanh toán => khách hàng
- Quan hệ CO_THUE_BAO sẽ được gán theo chiều từ node mã thanh toán
=> thuê bao
Trang 32c Thuê bao:
- Thuê bao được thể hiện trên các node với các thuộc tính và bổ sung cácthuộc tính đặc trưng của dịch vụ vào thuộc tính node Điều này thực hiệnđược do việc bổ sung tự do các thuộc tính của cơ sở dữ liệu đồ thị
- Các node thuê bao gán nhãn phân loại: ThueBao
- Quan hệ THUOC_VE_THANH_TOAN sẽ được gán theo chiều từ nodethuê bao => mã thanh toán
- Quan hệ CO_DICH_VU sẽ được gán theo chiều từ node thuê bao =>node dịch vụ cụ thể (Cố định, di động….)
d Dịch vụ:
- Dịch vụ thể hiện trên các node và gán nhãn DichVu
- Các thông tin dịch vụ được bổ sung vào thuộc tính node
e Các thực thể khác: các thực thể khác được phân tích và mô hình trên cơ sở
- Các mối quan hệ đã được chuẩn bị và định nghĩa ngay từ đầu, do đó việctruy vấn theo quan hệ mang lại hiệu quả tốc độ
- Các thuộc tính được thêm bớt theo nhu cầu, linh động giúp dễ dàng điềuchỉnh cơ cấu dữ liệu, tiết kiệm không gian lưu trữ
Trang 332.2.2.2 Nhược điểm và phương án khắc phục
- Làm rõ mối quan hệ giữa các thực thể, mô hình hóa theo cơ sở dữ liệu đồthị từ đầu sẽ đòi hỏi tiêu tốn khá nhiều nguồn lực
- Các dữ liệu khi lưu trữ chưa có phương án phân tán hiệu quả
- Các nền tảng kỹ thuật hỗ trợ chưa phong phú và cần thời gian để kiểm nghiệm
- Các công cụ quản trị chưa nhiều và chuyên sâu như các hệ quản trị cơ sở
2.3 Chuyển đổi CSDL quan hệ có sẵn sang CSDL đồ thị
2.3.1 Giải pháp
Một vấn đề rất cần chú trọng khi triển khai các giải pháp thực tế, đó là chúng ta
có sẵn cơ sở dữ liệu quan hệ, với hàng trăm bảng dữ liệu và hàng triệu bản ghi Cầntìm giải pháp xử lý việc chuyển đổi từ các CSDL có sẵn này sang đồ thị, sao choviệc chuyển đổi ít nhất về chi phí thực hiện cũng như đảm bảo được phần lớn cácmục tiêu đề ra Dựa vào việc mô hình hóa đồ thị thuộc tính, xem xét trên các thựcthể và quan hệ chúng ta có giải pháp khá dễ thực hiện theo nguyên tắc [6]:
- Các bản ghi dữ liệu là các nút trên đồ thị
- Tên các bảng hay các thực thể được gán cho các nhãn của nút
Trang 34- Tên các cột gán cho thuộc tính của nút với giá trị tương ứng
- Quan hệ giữa các thực thể là các cung của đồ thị, có chiều dựa vào quan
hệ trên CSDL quan hệ
Với giải pháp trên, việc chuyển đổi từ CSDL quan hệ sang CSDL đồ thị sẽ khá
dễ dàng, tái sử dụng tất cả quan hệ, thuộc tính sẵn có Ngoài ra, có thể nhận thấyviệc cài đặt giải pháp cũng không quá phức tạp, tuy nhiên CSDL mới hoàn toànchưa được phân tích tối ưu
Trang 35Xác định chi tiết các thành phần trên lược đồ CSDL quan hệ
B3.2
Tập thuộc tính của các nhãn là tên các thuộc tính của thực thể
B5.1
Gán nhãn cho node là tên thực thể
B5.3
Gán quan hệ cho node theo quan hệ của thực thể với thực thể khác
B5.2
Tạo thuộc tính cho node là thuộc tính của thực thể với giá trị tương ứng
B6
CSDL đồ thị từ CSDL quan hệ
Hình 2.6 Lưu đồ chuyển đổi CSDL QH sang CSDL ĐT
Trên cơ sở dữ liệu chuyển đổi, ta có một số đặc tính:
- Số lượng node bằng số bản ghi trên cơ sở dữ liệu quan hệ
- Số lượng loại quan hệ bằng số lượng quan hệ hiện có
Trang 362.3.2 Chuyển đổi CSDL bài toán Quản lý khách hàng sang CSDL đồ
thị
Áp dụng giải pháp chuyển đổi, thực hiện phân tích CSDL bài toán Quản lýkhách hàng và chuyển đổi từng bước sang CSDL đồ thị
Xét ví dụ chuyển đổi giữa hai thực thể: Khách hàng – Loại khách hàng:
- Xác định sơ đồ thực thể liên kết trên CSDL quan hệ có sẵn, mục đích
để phân tích rõ mối quan hệ, các thuộc tính dữ liệu cũng như kiểu củachúng:
KHACH_HANG
LOAI_KH
KHACHHANG_ID NUMBER PK
TEN_KH VARCHA2 MA_KH VARCHA2 DIACHI_KH VARCHA2 KHLON_ID NUMBER NGAY_SN DATE
KHLON_ID int PK
TEN_KHLON VARCHA2 MA_KHLON VARCHA2 FK_LOAI_KHACH_HANG
Hình 2.7 Sơ đồ thực thể liên kết Khách hàng – Loại khách hàng
- Ánh xạ sang mô hình dữ liệu đồ thị: thực hiện ánh xạ sang mô hình mới, xác định các nút đồ thị và các thuộc tính tương ứng, chiều quan
hệ phù hợp:
:KhachHang TEN_KH:string MA_KH:string KHACHHANG_ID:int
:LoaiKH KHLON_ID:int TEN_KHLON:string MA_KHLON:string
LOAI_KHACH_HANG
Hình 2.8 Đồ thị biểu diễn nút Khách hàng – Loại khách hàng
- Thực hiện với từng bản ghi dữ liệu trên bảng KHACH_HANG vàLOAI_KH:
từng node cụ thể
Trang 37 Node được gán lable là tên bảng, ở đây chúng ta có hiệu chỉnh lạicho tự nhiên: KHACH_HANG KhachHang, LOAI_KH LoaiKH
trị trên bản ghi
LOAI_KHACH_HANGThực hiện việc phân tích, chuyển đổi với tập tất cả các thành phần trên lược