Cơ sở dữ liệu đồ thị và ứng dụng Cơ sở dữ liệu đồ thị và ứng dụng Cơ sở dữ liệu đồ thị và ứng dụng luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƢỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI TẠ XUÂN THỌ CƠ SỞ DỮ LIỆU ĐỒ THỊ VÀ ỨNG DỤNG Chuyên ngành : CÔNG NGHỆ THÔNG TIN LUẬN VĂN THẠC SĨ KỸ THUẬT CÔNG NGHỆ THÔNG TIN NGƯỜI HƯỚNG DẪN KHOA HỌC PGS.TS CAO TUẤN DŨNG Hà Nội – Năm 2019 LỜI CAM ĐOAN Tôi – Tạ Xuân Thọ – xin cam đoan: Luận văn tốt nghiệp (LVTN) Thạc sĩ cơng trình nghiên cứu thân hướng dẫn PGS.TS Cao Tuấn Dũng Các kết nêu Luận văn tốt nghiệp trung thực, chép tồn văn cơng trình khác Hà Nội, ngày 26 tháng 10 năm 2019 Tác giả Tạ Xuân Thọ LỜI CẢM ƠN Xuất phát từ khó khăn cơng việc tham gia thực dự án phần mềm quản lý doanh nghiệp, vướng mắc gặp phải hàng ngày: tăng trưởng liệu, linh động thuộc tính liệu… khiến tơi ln hướng tới việc tìm giải pháp để khắc phục Trong trình học tập theo chương trình Thạc sĩ kỹ thuật trường Đại học Bách Khoa Hà Nội, tiếp cận với nhiều kiến thức mới, nhiều hướng giải vấn đề nhận thấy đề tài “Cơ sở liệu đồ thị” gợi ý phù hợp cho hướng tơi tìm kiếm Nhận giúp đỡ tận tình PGS.TS Cao Tuấn Dũng nỗ lực nghiên cứu thân việc tiếp cận, tìm hiểu tài liệu từ giáo trình phân tích, thử nghiệm internet thực luận văn với đề tài “Cơ sở liệu đồ thị ứng dụng” Tôi xin chân thành cảm ơn nhà trường tạo điều kiện để tơi có hội tiếp cận lĩnh vực hữu ích, có khả cao việc ứng dụng vào công việc Đặc biệt, xin cảm ơn PGS.TS Cao Tuấn Dũng gợi mở hướng dẫn phương hướng nghiên cứu hỗ trợ, giúp đỡ tơi khắc phục khó khăn q trình thực để tơi hồn thành luận văn Hà Nội, ngày 26 tháng 10 năm 2019 Tác giả LVThS Tạ Xuân Thọ MỤC LỤC LỜI CAM ĐOAN LỜI CẢM ƠN MỤC LỤC DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT DANH MỤC CÁC BẢNG DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ MỞ ĐẦU 11 Đặt vấn đề 11 Đề xuất nghiên cứu 13 Bố cục luận văn 14 CHƢƠNG 1: CƠ SỞ DỮ LIỆU ĐỒ THỊ 15 1.1 Cơ sở liệu NoSQL .15 1.1.1 NoSQL 15 1.1.2 Tại lại sử dụng NoSQL 16 1.1.3 Các tính chất 18 1.1.4 Phân loại NoSQL 19 1.2 Cơ sở liệu đồ thị 23 1.2.1 Một số khái niệm đồ thị 23 1.2.2 Cơ sở liệu đồ thị .24 1.2.3 Hệ quản trị sở liệu Neo4j 27 1.2.4 Xu hƣớng ứng dụng 31 1.3 Ngôn ngữ Cypher 31 1.3.1 Cú pháp 32 1.3.2 Một số lệnh 35 1.4 Tổng kết 38 CHƢƠNG 2: BÀI TOÁN QUẢN LÝ CUNG CẤP DỊCH VỤ 39 2.1 Bài toán tổng quát 39 2.2 Bài toán Quản lý cung cấp dịch vụ 40 2.2.1 Mơ hình tổng thể 40 2.2.2 Mơ hình quản lý 42 2.2.3 Mục tiêu giải 42 2.3 Giải pháp triển khai Cơ sở liệu quan hệ 43 2.3.1 Sơ đồ thực thể liên kết 44 2.3.2 Ƣu nhƣợc điểm phƣơng án khắc phục 45 2.3.3 Kết luận 47 2.4 Giải pháp triển khai Cơ sở liệu đồ thị 47 2.4.1 Mô hình liệu 49 2.4.2 Ƣu nhƣợc điểm phƣơng án khắc phục 50 2.4.3 Kết luận 51 2.5 Chuyển đổi CSDL quan hệ có sẵn sang CSDL đồ thị 52 2.6 Tổng kết 53 CHƢƠNG 3: THỬ NGHIỆM VÀ ĐÁNH GIÁ 54 3.1 Thử nghiệm 54 3.1.1 Lựa chọn kỹ thuật 54 3.1.2 Chuyển đổi sở liệu quan hệ - đồ thị 55 3.1.3 Chƣơng trình demo 60 3.2 So sánh kết thực thi câu lệnh 72 3.2.1 Mơ hình kích thƣớc liệu 73 3.2.2 Kịch thực nghiệm 74 3.2.3 Kết thực nghiệm 75 3.2.4 Đánh giá thực nghiệm 89 3.3 Tổng kết 90 KẾT LUẬN 91 Tổng kết 91 Hƣớng phát triển 92 TÀI LIỆU THAM KHẢO 94 DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT Thứ tự Chữ viết tắt ACID BASE BSON CAP Giải thích Atomicity, Consistency, Isolation, Durability Basically Available, Soft-state, Eventually consistent Binary JSON Strong Consistency, High Availability, Partition Tolerance CSDL Cơ sở liệu CSDLĐT Cơ sở liệu đồ thị CSDLQH Cơ sở liệu quan hệ CSV Comma Separated Values ĐT Đồ thị 10 ERP Enterprise Resource Planning 11 HQT Hệ quản trị 12 IOT The Internet of Things 13 JSON Javascript Option Notation 14 JVM Java virtual machine 15 NoSQL Not only SQL 16 QH Quan hệ 17 QLCCDV Quản lý cung cấp dịch vụ 18 SQL Structured Query Language 19 SQL Structured Query Language 20 TTLK Thực thể liên kết 21 VNPT Tập đồn Bưu Viễn thông Việt Nam 22 XML Extensible Markup Language DANH MỤC CÁC BẢNG Thứ tự Số bảng Tên bảng Trang Bảng 1.1 Ký tự đặc biệt 32 Bảng 3.1 Node Loại khách hàng 59 Bảng 3.2 Node Dịch vụ 60 Bảng 3.3 Node Hình thức toán 60 Bảng 3.4 Node Khách hàng 60 Bảng 3.5 Node Thanh toán 61 Bảng 3.6 Node Thuê bao 61 Bảng 3.7 Kích thước liệu thực nghiệm 71 Bảng 3.8 Kết insert liệu 73 10 Bảng 3.9 Kết truy vấn nhiều bảng 75 11 Bảng 3.10 Kết truy vấn cố định liệu 77 12 Bảng 3.11 Kết tính toán liệu lớn 79 13 Bảng 3.12 Kết tính tốn liệu giới hạn 81 14 Bảng 3.13 Kết truy vấn câu lệnh 83 15 Bảng 3.14 Kết truy vấn hợp liệu 85 DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ Thứ tự Số hình Hình 1.1 Tên hình Khả mở rộng NoSQL so với CSDL Trang 15 quan hệ truyền thống Hình 1.2 Định lý CAP NoSQL 18 Hình 1.3 Cơ sở liệu Key – Value 19 Hình 1.4 Cơ sở liệu Document 19 Hình 1.5 Cơ sở liệu Column family 20 Hình 1.6 Cơ sở liệu Graph Database 21 Hình 1.7 Đơn đồ thị vơ hướng 22 Hình 1.8 Đa đồ thị vơ hướng 22 Hình 1.9 Đơn đồ thị có hướng 22 10 Hình 1.10 Đa đồ thị có hướng 23 11 Hình 1.11 Mơ hình đồ thị thuộc tính 24 12 Hình 1.12 Nodes – Neo4j 26 13 Hình 1.13 Relationships – Neo4j 27 14 Hình 1.14 Quan hệ có hướng – Neo4j 27 15 Hình 1.15 Properties – Neo4j 28 16 Hình 1.16 Labels – Neo4j 28 17 Hình 1.17 Paths – Neo4j 29 18 Hình 2.1 Mơ hình tổng thể phân hệ quản lý 39 19 Hình 2.2 Mơ hình tốn Quản lý cung cấp dịch vụ 40 20 Hình 2.3 Sơ đồ TTLK Khách hàng – Thanh toán 41 21 Hình 2.4 Sơ đồ TTLK – Thanh tốn – Thuê bao – Dịch vụ 42 22 Hình 2.5 Giải pháp triển khai CSDL đồ thị 45 23 Hình 2.6 Mơ hình liệu đồ thị chuyển đổi 47 24 Hình 2.7 Giải pháp chuyển CSDL QH sang CSDL ĐT 49 25 Hình 3.1 Sơ đồ TTLK Khách hàng – Loại khách hàng 52 26 Hình 3.2 Node Khách hàng – Loại khách hàng 53 27 Hình 3.3 Dữ liệu trước sau chuyển đổi mơ hình CSDL 54 28 Hình 3.4 Neo4j ETL Tool 55 29 Hình 3.5 Thống kê node, quan hệ sau chuyển đổi CSDL 56 30 Hình 3.6 CSDL đồ thị sau chuyển đổi 56 31 Hình 3.7 Import liệu từ file csv 57 32 Hình 3.8 Sơ đồ phân cấp chức ứng dụng demo 58 33 Hình 3.9 Sơ đồ CSDL Quản lý Cung cấp dịch vụ 59 34 Hình 3.10 Quan hệ Khách hàng – Loại khách hàng 61 35 Hình 3.11 Quan hệ Khách hàng – Thanh tốn 61 36 Hình 3.12 Quan hệ Thanh tốn – Th bao – Dịch vụ 62 37 Hình 3.13 CSDL Khách hàng – Loại khách hàng 62 38 Hình 3.14 CSDL Khách hàng – Thanh toán – Thuê bao 63 39 Hình 3.15 Giao diện quản lý khách hàng 64 40 Hình 3.16 Giao diện quản lý nhãn 65 41 Hình 3.17 Giao diện quản lý thuộc tính 66 42 Hình 3.18 Giao diện báo cáo chi tiết thuê bao 67 43 Hình 3.19 Giao diện báo cáo tổng hợp thuê bao 68 44 Hình 3.20 Mơ hình CSDL đánh giá thực nghiệm 70 45 Hình 3.21 Insert liệu Oracle 72 46 Hình 3.22 Insert liệu Neo4j 73 47 Hình 3.23 Biểu đồ thời gian insert liệu 74 48 Hình 3.24 Biểu đồ thời gian truy vấn nhiều bảng 76 49 Hình 3.25 Biểu đồ thời gian truy vấn cố định liệu 78 50 Hình 3.26 Biểu đồ thời gian tính tốn liệu lớn 79 51 Hình 3.27 Biểu đồ thời gian tính tốn liệu giới hạn 81 52 Hình 3.28 Biểu đồ thời gian truy vấn câu lệnh 84 53 Hình 3.29 Biểu đồ thời gian truy vấn hợp liệu 86 10 MỞ ĐẦU Đặt vấn đề Cùng với phát triển ngành công nghệ thông tin, việc ứng dụng tin học vào quản lý doanh nghiệp hình thành từ sớm Khởi đầu, cơng cụ phát triển, ngơn ngữ lập trình cịn khó sử dụng hệ thống phần cứng chưa tiên tiến, ứng dụng quản lý phát triển độc lập, đơn lẻ Việc tái sử dụng hay kết nối ứng dụng liệu thời gian dài vấn đề đau đầu nhiều công ty phải tiêu tốn lượng lớn nhân lực, thời gian tài để thực Các giải pháp ERP (Enterprise Resource Planning) đời, phát triển ngày hoàn thiện, giúp việc quản trị doanh nghiệp ngày tốt hơn, cung cấp nhiều thông tin hơn, hỗ trợ xuyên suốt trình vận hành quản lý khai thác thông tin, giúp doanh nghiệp nhanh chóng kịp thời thực thi định có sở cho dự báo phát triển Triển khai giải pháp ERP vấn đề không đơn giản, hệ thống phần mềm phủ khắp hoạt động quản lý doanh nghiệp, công ty hay tổng công ty lớn phức tạp Mỗi phần mềm toán phức tạp, cần tối ưu tốn Để có hệ thống ERP tốt, thiết cần xuất phát từ việc hoàn thiện phân hệ quản lý sau tối ưu trao đổi liên thông thông tin phân hệ Với phương pháp tiếp cận thành phần, giúp cho việc phát triển dễ dàng sâu vào vấn đề cần xử lý tối ưu chi phí cần thiết cho lĩnh vực thực tế cần đầu tư Xuất phát từ việc xây dựng triển khai hệ thống ERP cho tập đồn VNPT, tơi nhận thấy có nhiều vấn đề cần đầu tư nghiên cứu, cải tiến phát sinh trình thực Việc vướng mắc triển khai thực tế trình phát triển đáp ứng nhu cầu quản lý ngày phức tạp xuất hầu hết phân hệ: từ Quản lý nhân sự, Kế toán, Quản lý đầu tư Quản lý khách hàng, Quản lý cung cấp dịch vụ Là doanh nghiệp cung cấp đa dạng dịch vụ viễn 11 WHERE KH.KHACHHANG_ID = TT.KHACHHANG_ID AND ROWNUM (tt:ThanhToan) RETURN kh.MA_KH,tt.MA_TT LIMIT 10000 Kết Bảng 3.10 Kết truy vấn cố định liệu Khách hàng Oracle Neo4j (Số ghi/Node) (ms) (ms) 100,000 66 200,000 70 300,000 72 400,000 64 500,000 68 600,000 66 700,000 71 800,000 74 900,000 71 1,000,000 75 1,100,000 72 1,200,000 73 1,300,000 71 1,400,000 73 1,500,000 72 80 Ghi Thời gian truy vấn (ms) 80 60 40 Oracle (ms) 20 Neo4j (ms) 10 11 12 13 14 15 Khách hàng (x 100.000) Hình 3.25 Biểu đồ thời gian truy vấn cố định liệu Đánh giá - Khi cố định số lượng liệu truy vấn tăng khối lượng ghi/node CSDL, thấy CSDL quan hệ đồ thị có biểu đồ thời gian ngang - Về tương quan, hai hệ CSDL hoạt động tốt, thời gian chênh lệch (ms) khác biệt nhiều 3.2.3.4 Truy vấn tính tốn liệu lớn Thực tính tốn đơn giản gộp nhóm tồn liệu Oracle: tính toán gộp liệu theo LOAI_KH, xếp theo số khách hàng từ cao đến thấp SELECT KHL.TEN_KHLON, COUNT(KH.KHACHHANG_ID) SO_KH FROM KHACH_HANG KH, LOAI_KHLON KHL WHERE KH.KHLON_ID = KHL.KHLON_ID GROUP BY KHL.TEN_KHLON ORDER BY COUNT(KH.KHACHHANG_ID) DESC; Neo4j: tính tốn gộp liệu theo nhãn LoaiKH, xếp theo số khách hàng từ cao đến thấp MATCH (kh:KhachHang) - [r] -> (lkh:LoaiKH) RETURN lkh.TEN_KHLON, count(r) AS So_KH ORDER BY So_KH DESC 81 Kết Bảng 3.11 Kết tính toán liệu lớn Oracle Neo4j (Số ghi/Node) (ms) (ms) 100,000 106 741 200,000 176 883 300,000 256 1469 400,000 313 1435 500,000 390 1487 600,000 547 1821 700,000 544 2086 800,000 622 2179 900,000 751 2301 1,000,000 758 2484 1,100,000 811 2502 1,200,000 838 3299 1,300,000 893 3153 1,400,000 1012 4122 1,500,000 1025 4227 Thời gian truy vấn (ms) Khách hàng Ghi 5000 4000 3000 Oracle (ms) 2000 Neo4j (ms) 1000 10 11 12 13 14 15 Khách hàng (x 100.000) Hình 3.26 Biểu đồ thời gian tính tốn liệu lớn 82 Đánh giá - Đối với phép tính tốn liệu lớn (tồn khối lượng liệu đưa vào CSDL) thấy CSDL quan hệ hoạt động tốt hơn, xu tăng thời gian xử lý thấp nhiều so với CSDL đồ thị Ngoài ra, truy vấn, CSDL đồ thị thời gian xử lý gấp nhiều lần CSDL quan hệ - Việc CSDL đồ thị hoạt động hiệu xuất phát từ nguyên nhân số phép duyệt đồ thị tăng cao số lượng node 3.2.3.5 Truy vấn tính tốn liệu giới hạn Thực tính tốn tập liệu nhỏ Oracle: Tính tốn số th bao mã toán/khách hàng từ bảng KHACHHANG, THANH_TOAN, THUE_BAO tập khách hàng cố định xếp giảm dần theo số thuê bao SELECT KH.MA_KH,TT.MA_TT, COUNT(TB.THUEBAO_ID) SO_THUEBAO FROM KHACH_HANG KH, THANH_TOAN TT, THUE_BAO TB WHERE KH.KHACHHANG_ID = TT.KHACHHANG_ID AND TT.THANHTOAN_ID = TB.THANHTOAN_ID AND KH.KHLON_ID = 25 GROUP BY KH.MA_KH, TT.MA_TT ORDER BY COUNT(TB.THUEBAO_ID) DESC; Neo4j: Tính tốn số th bao mã tốn/khách hàng từ nhãn KhachHang, ThanhToan, ThueBao tập khách hàng cố định xếp giảm dần theo số thuê bao MATCH (kh:KhachHang {KHLON_ID:25} ) – [:CO_MA_THANH_TOAN]->(tt:ThanhToan) RETURN kh.MA_KH, tt.MA_TT, SIZE((tt) – [:CO_MA_THUE_BAO]-> ()) AS SO_TB ORDER BY SO_TB DESC 83 Kết Bảng 3.12 Kết tính tốn liệu giới hạn Oracle Neo4j (Số ghi/Node) (ms) (ms) 100,000 83 48 200,000 112 37 300,000 134 27 400,000 167 47 500,000 141 36 600,000 186 50 700,000 171 78 800,000 211 71 900,000 232 70 1,000,000 255 112 1,100,000 347 112 1,200,000 513 116 1,300,000 718 121 1,400,000 744 162 1,500,000 798 151 Thời gian truy vấn (ms) Khách hàng Ghi 1000 800 600 Oracle (ms) 400 Neo4j (ms) 200 10 11 12 13 14 15 Khách hàng (x 100.000) Hình 3.27 Biểu đồ thời gian tính tốn liệu giới hạn 84 Đánh giá - Khi giới hạn khối lượng liệu cần tính tốn, xu hướng xử lý CSDL đồ thị tốt hẳn CSDL quan hệ Điều xảy phép truy vấn CSDL đồ thị ảnh hưởng đến phần đồ thị (giới hạn liệu), CSDL quan hệ vần phải thực phép join liệu lớn 3.2.3.6 Truy vấn Thực truy vấn có sử dụng truy vấn Oracle: SELECT KH.MA_KH, KH.TEN_KH, KH.TEN_KHLON, TT.MA_TT, DV.TEN_DVVT COUNT(TB.THUEBAO_ID) SO_THUEBAO FROM (SELECT KH.TEN_KH, KH.MA_KH, KH.KHACHHANG_ID, LKH.TEN_KHLON FROM KHACH_HANG KH, LOAI_KHLON LKH WHERE KH.KHLON_ID = LKH.KHLON_ID AND LKH.KHLON_ID = 25) KH, THANH_TOAN TT, THUE_BAO TB, DICH_VU DV WHERE KH.KHACHHANG_ID = TT.KHACHHANG_ID AND TT.THANHTOAN_ID = TB.THANHTOAN_ID AND TB.DICHVUVT_ID = DV.DICHVUVT_ID GROUP BY KH.MA_KH, KH.TEN_KH, KH.TEN_KHLON, TT.MA_TT, DV.TEN_DVVT ORDER BY SO_THUEBAO DESC; Neo4j: MATCH (kh:KhachHang) – [:LOAI_KHACH_HANG ] -> (:LoaiKH{KHLON_ID:25}), 85 (tt:ThanhToan) WITH kh,tt MATCH (kh) – [:CO_MA_THANH_TOAN] -> (tt) – [:CO_MA_THUE_BAO] -> (tb:ThueBao) – [:LA_DICH_VU] -> (dv:DichVu) RETURN kh.MA_KH, tt.MA_TT, COUNT(tb.THUEBAO_ID) AS SO_THUEBAO, dv.TEN_DVVT AS TEN_DVVT ORDER BY SO_THUEBAO DESC Kết Bảng 3.13 Kết truy vấn câu lệnh Khách hàng Oracle Neo4j (Số ghi/Node) (ms) (ms) 100,000 26 83 200,000 53 95 300,000 91 127 400,000 155 148 500,000 182 184 600,000 251 201 700,000 276 221 800,000 322 215 900,000 382 242 1,000,000 471 241 1,100,000 521 282 1,200,000 572 297 1,300,000 645 332 1,400,000 652 345 1,500,000 668 372 86 Ghi Thời gian truy vấn (ms) 800 700 600 500 400 300 200 100 Oracle (ms) Neo4j (ms) 10 11 12 13 14 15 Khách hàng (x 100.000) Hình 3.28 Biểu đồ thời gian truy vấn câu lệnh Đánh giá - Hai CSDL quan hệ đồ thị có xu hướng tăng thời gian xử lý, liệu tăng việc sử dụng câu lệnh chiếm nhiều không gian nhớ Tuy nhiên, tổng thể CSDL đồ thị có xu hướng tăng thời gian xử lý chậm CSDL quan hệ đến lần 3.2.3.7 Truy vấn hợp liệu Thực gộp liệu từ nhiều truy vấn Oracle SELECT KH.TEN_KH, TT.MA_TT FROM WHERE KHACH_HANG KH, THANH_TOAN TT KH.KHACHHANG_ID = TT.KHACHHANG_ID AND KH.KHLON_ID = 25 AND ROWNUM < 1000 UNION SELECT KH.TEN_KH, TT.MA_TT FROM WHERE KHACH_HANG KH, THANH_TOAN TT KH.KHACHHANG_ID = TT.KHACHHANG_ID AND TT.MA_TT LIKE 'LX%' AND ROWNUM < 1000; 87 Neo4j MATCH (kh:KhachHang) > (tt:ThanhToan) WHERE tt.MA_TT=~"LX.*" RETURN kh.TEN_KH, tt.MA_TT LIMIT 1000 UNION MATCH (kh:KhachHang{KHLON_ID:25}) >(tt:ThanhToan) RETURN kh.TEN_KH, tt.MA_TT LIMIT 1000 Kết Bảng 3.14 Kết truy vấn hợp liệu Khách hàng Oracle Neo4j (Số ghi/Node) (ms) (ms) 100,000 111 394 200,000 115 392 300,000 122 411 400,000 136 407 500,000 130 413 600,000 141 421 700,000 173 422 800,000 177 426 900,000 181 426 1,000,000 211 452 1,100,000 235 476 1,200,000 242 482 1,300,000 295 492 1,400,000 310 509 1,500,000 317 508 88 Ghi Thời gian truy vấn (ms) 600 500 400 Oracle (ms) 300 200 Neo4j (ms) 100 10 11 12 13 14 15 Khách hàng (x 100.000) Hình 3.29 Biểu đồ thời gian truy vấn hợp liệu Đánh giá - CSDL quan hệ thể việc hợp liệu từ nhiều truy vấn tốt CSDL đồ thị Việc xử lý tốt thể qua câu truy vấn có thời gian truy vấn khoảng lần, nhiên tổng thể xu hướng thời gian xử lý tăng hai 3.2.4 Đánh giá thực nghiệm So sánh thời gian truy vấn CSDL đồ thị CSDL quan hệ theo kịch với số liệu thực nghiệm phản ánh phần vấn đề cần so sánh Từ kết đo đạc thấy khơng hẳn trường hợp CSDL quan hệ chậm CSDL đồ thị, khối lượng liệu tăng cao, CSDL cho thời gian thực tốt phụ thuộc vào đặc trưng truy vấn Có thể thấy, truy vấn tồn bảng liệu có kích thước lớn đồng thời thực phép kết nối nhiều bảng CSDL quan hệ thực tốt CSDL đồ thị (truy vấn toàn node của nhãn thực truy vấn quan hệ lân cận), điều thấy phép duyệt đồ thị tăng lên tốc độ truy vấn CSDL đồ thị giảm xuống Tuy nhiên, trường hợp giữ nguyên số liệu tốc độ truy vấn CSDL đồ thị giữ ổn định, số lượng node đồ thị tăng đáng kể Trong thử nghiệm, tốc độ tính tốn CSDL đồ thị chậm chút so với CSDL quan hệ truy vấn sử dụng câu lệnh lại cho 89 thời gian tốt biểu đồ thời gian ổn định Trong phép hợp liệu, hai loại CSDL trả kết nhanh xu hướng thời gian truy vấn giống nhau, tăng nhẹ khối lượng liệu tăng Từ đo đạc phân tích, thấy để sử dụng CSDL đồ thị hiệu cần thiết làm rõ mục đích truy vấn, tối ưu câu lệnh theo hướng tận dụng mạnh đồ thị Đối với truy vấn cần sử dụng đến lượng lớn node đồ thị chắn cần cân nhắc bổ sung giải pháp kỹ thuật khác index, tăng RAM, CPU… 3.3 Tổng kết Phần thực nghiệm nhiều cung cấp cho góc nhìn mang tính định lượng đánh giá việc chuyển đổi từ CSDL quan hệ sang đồ thị, giúp hình dung số vấn đề phải giải phép truy vấn liệu xây dựng ứng dụng Đối với toán sử dụng nhiều tính tốn CSDL thường xun truy vấn tổng hợp nhiều bảng lớn chưa hẳn việc chuyển đổi cho kết tốt Ngược lại, tốn truy vấn tìm kiếm có khoanh vùng liệu cần xử lý, CSDL đồ thị lựa chọn đáng cân nhắc Đối với việc xây dựng ứng dụng mơ hình CSDL đồ thị khơng có khó khăn vướng mắc kỹ thuật, nhiên hỗ trợ từ tảng lập trình chưa có nhiều nên hầu hết cơng việc lập trình viên phải thực hiện, từ dẫn tới tăng chi phí phát triển Ngồi ra, cần có thêm thời gian để đánh giá tính an tồn ổn định tảng mã nguồn mở sử dụng ứng dụng triển khai CSDL NoSQL nói chung 90 KẾT LUẬN Tổng kết Dựa phân tích kết đo đạc thực tế triển khai xây dựng ứng dụng thử nghiệm, tơi có số kết luận làm sở cho việc định hướng cho việc nghiên cứu sâu triển khai toán thực tế: - Triển khai tốn quản lý mơ hình CSDL đồ thị hồn tồn khả thi dễ dàng Việc phân tích mối quan hệ, mơ hình hóa liệu theo hướng đồ thị tự nhiên trực quan, giúp có nhìn sâu sắc mối quan hệ liệu - Không phải trường hợp CSDL đồ thị cho kết thời gian truy vấn tốt CSDL quan hệ mà kết phụ thuộc vào đặc trưng truy vấn Trong thử nghiệm ra: CSDL đồ thị làm việc tốt CSDL quan hệ với truy vấn có giới hạn liệu (ảnh hưởng phần đồ thị) không tốt thực truy vấn kết nối bảng lớn với tồn liệu (duyệt tồn khơng gian đồ thị) - Xử lý thuộc tính động CSDL đồ thị tốt mềm dẻo, mối quan hệ khơng dựa thuộc tính CSDL quan hệ - Dễ dàng chuyển đổi mơ hình lẫn liệu toán triển khai CSDL quan hệ sang đồ thị - Phát triển ứng dụng CSDL đồ thị không gặp khó khăn kỹ thuật hạn chế hỗ trợ từ tảng truyền thống, phụ thuộc nhiều vào thư viện mã nguồn mở cần thêm thời gian để đánh giá tính ổn định, an toàn thư viện - Về mặt ứng dụng, ngồi việc áp dụng mơ hình CSDL đồ thị cho lớp toán dạng quản lý quan hệ xã hội (facebook, google…) CSDL đồ thị áp dụng tốt cho lớp toán: thu thập liệu (dạng tốn có thuộc tính liệu biến động), quản lý tài liệu sau số hóa, quản lý văn (thuộc tính liệu biến động quan hệ tài liệu phức tạp)… 91 Luận văn đạt mục tiêu nghiên cứu đề ra: - Tổng hợp kiến thức lý thuyết CSDL đồ thị, làm sở cho phân tích, đánh giá - Nghiên cứu giải pháp mơ hình hóa tốn quản lý mơ hình CSDL đồ thị, thực phân tích, đánh giá ưu nhược điểm so với mơ hình CSDL quan hệ - Nghiên cứu giải pháp chuyển đổi toán triển khai CSDL quan hệ sang CSDL đồ thị mơ hình liệu - So sánh thời gian truy vấn CSDL đồ thị quan hệ số trường hợp, rút kết luận cho thực tế áp dụng dựa vào đặc trưng truy vấn - Thiết kế thử nghiệm ứng dụng CSDL đồ thị, đánh giá trường hợp sử dụng thực quản lý thuộc tính động liệu, rút kết luận làm sở cho việc mở rộng toán - Đánh giá lớp toán nên áp dụng CSDL đồ thị để tận dụng lợi loại hình CSDL đơn giản hóa việc triển khai, giảm chi phí phát triển tăng tính linh động ứng dụng Hƣớng phát triển Để áp dụng vào thực tế cách đầy đủ hiệu mơ hình CSDL đồ thị tốn phù hợp toán quản lý quan hệ khách hàng cần thêm thời gian để thực nghiên cứu số vấn đề: - Các phương pháp tối ưu xây dựng mơ hình CSDL đồ thị: thực phân tích, đánh giá Chương 2, Chương sử dụng mơ hình bản, chưa có chuẩn hóa tối ưu hóa cho thiết kế - Nghiên cứu kỹ thuật bổ sung để nâng cao hiệu CSDL đồ thị: index, thị thực hiện, tối ưu câu truy vấn, phương pháp quản trị…: 92 giải pháp kỹ thuật cần thiết triển khai thực tế, không với CSDL đồ thị mà với CSDL khác - Nghiên cứu giải pháp sử dụng tích hợp CSDL đồ thị với CSDL khác toán, mục tiêu để hỗ trợ lẫn nhau, tận dụng điểm mạnh loại CSDL giúp cho tốn triển khai hiệu Tóm lại, lựa chọn hướng khác so với cách triển khai truyền thống cho tốn địi hỏi thực nghiên cứu nhiều vấn đề để thực thành công Do thời gian thực luận văn khơng có nhiều kiến thức lý thuyết khả thực nghiệm tơi cịn chưa tốt, nên phần trình bày, kết chưa đủ sâu sắc Trong tương lai, với việc thử nghiệm triển khai thực tế mơ hình CSDL đồ thị nghiên cứu vấn đề theo định hướng phát triển, tiếp tục cập nhật kết thêm cho nội dung 93 TÀI LIỆU THAM KHẢO [1] Chen, Yaowen (2016) - Comparison of Graph Databases and Relational Databases When Handling Large - Scale Social Data, [Online] Available: https://pdfs.semanticscholar.org/a1a1/78917f93c0eed6f444463da58da7bcbf43d3.pd f, ngày 25/09/2019 [2] Ian Robinson, Jim Webber & Emil Eifrem (2015) - Graph Databases, O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472 [3] Jeffrey A Hoffer, V Ramesh, Heikki Topi (2016) - Modern database ManageMent, Pearson Education, Inc [4] Luc Perkins, Eric Redmond, Jim R Wilson (2012) - Seven Databases in Seven Weeks, Second Edition: A Guide to Modern Databases and the NoSQL Movement, The Pragmatic Bookshelf, Raleigh, North Carolina [5] Nguyễn Đức Nghĩa, Nguyễn Tơ Thành (2003) – Tốn rời rạc, Nhà xuất Đại học Quốc Gia Hà Nội [6] “The Neo4j Cypher Manual v3.5” [Online] Available: https://neo4j.com/docs/cypher-manual/current/introduction/, ngày 01/04/2019 [7] Nguyễn Duy (2017), “Graph Databases” [Online] Available: https://zxthanhhuy.wordpress.com/2015/08/04/, ngày 01/07/2019 [8] Swapneel Mehta (2018), “What’s Hot about MongoDB, HBase and Cassandra“ [Online] Available: https://opensourceforu.com/2018/04/whats-hot- about-mongodb-hbase-and-cassandra/, ngày 15/06/2019 [9] “NoSQL”, [Online] Available: https://vi.wikipedia.org/wiki/NoSQL, ngày 12/04/2019 [10] “Why NoSQL”, [Online] Available: https://www.couchbase.com/resources/why-nosql, ngày 12/04/2019 94 ... Hình 1.3 Cơ sở liệu Key – Value 19 Hình 1.4 Cơ sở liệu Document 19 Hình 1.5 Cơ sở liệu Column family 20 Hình 1.6 Cơ sở liệu Graph Database 21 Hình 1.7 Đơn đồ thị vơ hướng 22 Hình 1.8 Đa đồ thị vơ... tế 14 CHƢƠNG 1: CƠ SỞ DỮ LIỆU ĐỒ THỊ Phần đầu chương trình bày tìm hiểu nghiên cứu mặt lý thuyết sở liệu đồ thị, sâu vào sở liệu Neo4j Việc tìm hiểu để xây dựng mơ hình đồ thị liệu cho giải pháp... trị sở liệu Neo4j Neo4j hệ quản trị sở liệu đồ thị mã nguỗn mở viết ngôn ngữ Java sử dụng Cypher làm ngôn ngữ truy vấn liệu Neo4j hệ quản trị sở liệu đồ thị phổ biến tất hệ quản trị sở liệu đồ thị