2, Để xuất nghiên cứu Sau một giai đoạn đài thực hiện nhiều giải pháp tối ưu các chương trình phản trểm nhưng ẫn chưa đạt được cáo kỳ vọng, tôi nhận an Em thêm các hướng di khác, g
Trang 1
BỘ GIÁO DỤC VÀ DÀ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
Trang 2TỜI CAM ĐOAN
Tôi — Tạ Xuân Thọ — xin cam doar:
« Luận văn tốt nghiệp (LVTN) Thạc sĩ này là công trình nghiên cửu của bản
thân tôi đưới sự hướng dẫn của PGS.TS Cao Tuấn Dũng,
œ- Các kết quả nên bong Luan văn tốt nghiệp là trung thực, không phải là sao chép toàn văn của bắt kỳ công trình nào khác
Hà Nội, ngày 26 tháng 10 năm 2019
Tác giả
Tạ Xuân Thọ
Trang 3LOTCAM ON
Xuất phát Lừ những khó khăn trong công việc khi tham gia thực hiên các dự án
phan mém quan lý doanh nghiệp, các vưởng mắc gặp phải hang ngày: sự ting
trưởng, dữ liệu, sự linh động của các thuộc tính dữ liệu khiến tôi luôn hướng tới
việc tìm một giải pháp dể khắc phục Trong quá trình học tập theo chương trình Thạc sĩ
thuật tại trưởng Đại học Bách Khoa Hả Nội, tôi đã được tiếp cận với
nhiên kiến thức mới, nhiều hướng giải quyết các vẫn để và nhận thay để tài “Cơ sở
đữ liệu đề thị” như một gợi ý rất phù hợp cho hưởng di tôi dang từa kiểm Nhận
được sự giúp đỡ tận tỉnh của PGS.TS, Cao Tuần Dũng củng sự nỗ lực nghiên cứu của bản thân trong việc tiếp cận, tìm hiểu các tải liệu từ các giáo trình và các bài phân tích, thờ nghiệm trên internet tôi đã thực hiệu luận vấn với để tải “Cơ sở dữ liệu đồ thị và ứng dựng”
Tôi xin chân thành cảm ơn nhà trường dã tạo diễu kiện dễ tôi có cơ hội tiếp cận một lĩnh vực rất hữu ích, có khả năng cao trong việc ứng đụng vảo công việc
Đặc biệt, lôi xin cảm ơn PGS.TS Cuo Tuấn Dũng đã gợi mỗ và hướng dẫn lôi
phương hướng nghiên cửu cũng như hỗ trợ, giúp dỡ tỏi khắc phục các khỏ khăn trong quá trình thực hiên dé tai có thể hoàn thành luận văn nảy
11à Nội, ngày 26 tháng 10 năm 2019
Tae gia LVThS
Tạ Xuân Tho
Trang 42.2 Bai toán Quản lý cung cấp dịch vụ à ni 40
2.2.2 Mô hình quản lý s nneneeireeeeiireiosoeo S7
Trang 51.2.3 Mục tiêu giải quyết SHtererrrrrrererer.2 2.3 Giải pháp triển khai trên Cơ sở dữ liệu quan hệ 43 3.3.1 Sơ đề thực thể liên kết
2.3.2 Uu nhược điểm và phương án khắc phục
3.1.2 Chuyển đổi cơ sở đữ liệu quan hệ - đỗ thị 55
3.1.3 Chương trình đemao - 60
3.2 So sánh kết quả thie thi cAu mB o.oo ce esssssesssssseeseseeessnnneeee FD
2 Hướng phát triểu ò2 eirereerereeiosor ĐO
Trang 6DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIET TAT
1 |ACID Atomicity, Consistency, Isolation, Durability
2 lgagg Basically Available, Soft-state, iventually
consistent
4 Strong Consistsney, High Availability, Parlilion
6 |CSDLĐT Cơ sở đữ liệu dỗ thị
7 | CSDLQU Cot sé dit liga quan hé
10 | ERP Enterprise Resource Planning
13 ISON Javascript Option Notation
15 | NoSQT Not only SQT
17 |QLCCDV Quản lý cùng cấp địch vụ
18 [SQT, Structured Query Tanguage
19 | SQL Structured Query Language
20 |TILK 'Thực thể liên kết
21L |VNPT ‘Tap đoàn Bưu chỉnh Viễn thông Viet Nam
22 | XML Extensible Markup Language
Trang 7DANH MUC CAC BANG
1 — HángLI Ky tr dic biết 32
2 Háng31, - Node Loại khách hàng 59
4 — Háng343 Node Linh thie thanh toin 60
5 — Bảng37 kíchthướcdữliện thục nghiệm 71
T0 — Bảng39 — Kết quả truy vận nhiều bằng 75
Tl Bang 3.10 Kết quả truy vận cổ định dữ Hệu 7
13 — Bảng3II Kết quả tỉnh toán đữ hệu lớn 79
13 Bang 3.12 Kếtguảtinhtoán đữliệugiớihạn 81
14 Bang 3.13 Két qua truy van cau Ién con 83
15 Bang 3.14 Két qua truy van hop dit ligu 85
Trang 81 Linh 1.1 Khá năng mở rộng của No8QL so với CBDL 15
quan hệ truyền thống
18 |Himh2l Môhimhtếng thế các phân hệ quân lý 39
19 |Himh22 Môhinh bài toán Quan ly cung cap dich vu 40
20 |Hinh2.3 Sadi TTLR Khach bring — Thanh toan 4I
24 |Hinh2.7 Giải pháp chuyén CSDL OH sang CSDL BT 49
Trang 9
Hìmh 3.2 Noức Khách hàng — Loại khách hàng
Hinh 3.7 Import di Héu tit file csv
llinh 3.8 Sơ đỏ phân cấp chúc năng ứng dung demo linh 3.9 §ø đồ CSDL Quán lý Cung cấp địch vụ
lnh3.10 QuanhệKháehhảng Loại khách hàng
Ilinh 3.11 QuanhệKháehhảng ‘Thanh toan
Ilinh 3.12 Quanhé Thanhto4n Thuêbao Dich vu
Hình313 CSDLKháchhảng- Loại khách hàng
Hình 3.14 CSDL Khách hàng — Thanh toán T— Thuê ban
Hình3.15 Giao điện quản lý khách hàng
Hình 3.16 Giao điện quản lý nhãn
Hìmh 3.17 Giao điện quản lý thuộc tính Hình 3.18 Giao điện bảo cáo cÌn tiết thuê bao Hình 3.19 Giao điện bảo cáo tông hợp thuê bao
Hinh 3.20 Mô hình CSDIL đánh giá thực nghiệm
Hinh 3.21 Insert đữ liệu trên Oracle Hinh 3.22 Insert dữ liệu trên Neo4j Hinh 3.23 Biểu do thời gian msert dữ liệu
Hinh 3.24 Biểu dỏ thời gian truy vẫn nhiều bảng, Ilinh 3.25 Biểu đồ thời gian truy vấn có định dữ liện Ilinh 3.26 Biểu đồ thời gian tính toán đữ liệu lớn
Ilinh 3.27 Biểu đồ thời gian tính toán đữ liệu giới hạn Tlinh 3.28 Biểu đồ thời gian truy vẫn câu lệnh con T1nh 3.29 Biểu đồ thời gian truy van hop dữ liệu
Trang 10
MG PAU
1 Đặt vẫn dé
Cũng với sự phát Iriển của ngành công nghệ thông tín, việc ứng dụng lin học vào quần lý các doanh nghiệp đã hình thành từ rất sớm Khởi dẳu, khi các công cụ phát triển, các ngôn ngữ lập trình cón khó sử dụng và hệ thông phần cứng chua tiễn tiến, cáo ứng đựng quản lý được phát triền độc lập, đơn lẻ Việc tái sử dụng hay kết nổi tứng dụng hoặc dữ liệu trong một thời gian dai la van dé dau dâu của rất nhiều các công ty khi phải tiêu tốn một lượng lớn nhân lực, thời gian va tải chính để thực hiện Cac giai phap ERP (Enterprise Resource Plamning) ra đời, phát triển và ngày cảng hoàn thiện, siúp việc quán trị doanh nghiệp ngảy một tốt hơn, cung cấp nhiều
thông tin hơn, hé tro xuyên suốt quá trình vận hành quản lý cũng như khai thác
thông tín, giúp doanh nghiệp nhanh chồng và kịp thời thực thủ các quyết định cũng,
như có cơ sở cho các dự báo phát triển
Triển khai cả một giải pháp ERP là vấn dễ không đơn giản, bởi cả mội hệ thông các phần mềm plưú khắp các hoạt động quản ly của một doanh nghiệp, nhất là các công ty hay tổng công ly lớn rất phức lạp Mỗi phần muềm trong đó đều là một bài toán phức tạp, cần tối ưu và tốn kém Để có một hệ thông ERP tớt, nhất thiết cần xuất phát từ việc hoản thiện các phân hệ quản lý sau đó tối ưu sự trao đối liên thông thông tỉn giữa các phân hệ Với phương, pháp tiếp cận thành phần, sẽ giúp cho việc phát triển để dàng hơn và di sâu hơn vào từng vẫn dễ cân xử lý cũng như tối ưu chỉ 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 và triển khai hệ thống 1⁄P cho tập đoàn VNPT, tôi nhận thây có rất nhiều van đẻ cần đầu tư nghiên cứu, cải tiến do chính các phát sinh
trong quá trình thực hiện Việc vướng mắo khi triển khai thực lễ và trong quá trình
phát triển đáp ứng nhu cầu quan ly ngảy càng phức tạp xuất hiện ở hau hết các phân Tiệ: từ Quản lý nhân sự, Kế toán, Quản lý đầu tư cho đến Quân lý khách hàng, Quân
lý cung cấp dịch vụ Là một doanh nghiệp cung cấp rất da dạng các dịch vụ viễn
Trang 11thông và cả công nghệ thông tin, việc quân lý các địch vụ cung cấp cho khách hàng,
là một trong những trọng tâm của tập đoàn:
Phuc vu cho như cầu quản lý dữ liệu thông thường,
Phục vụ cho các báo cáo thống kê từ đỏ đánh giá chỉ tiêu, hoạch định chỉnh sách
"Phục vụ cho quá trình điều hanh cưng cấp dịch vụ đến khách hang
Phuc vụ cho các yêu cầu chăm sóc khách hàng, nâng cao chât lượng phục vụ
Điểm qua một vài vai trò của phân hệ Quan lý cung cấp địch vụ đã có thẻ thay
phân hé mang tinh chất quan trọng, năm giữ nhiều thông tím cân thiết cho sự phát triển của doanh nghiệp Cũng xuất phát từ lý do đó, phân hệ dược dâu tư rất nhiều ngay từ khi bat đầu xây dựng: triển khai trên co sé dit liéu quan hệ với các img dụng được lôi ưu quả trình xử lý, trang bí hệ thông quân ti CSDL manh mé (Orale)
và hệ thống, phần cứng tiên tiến Tuy nhiên, trong những năm gần đây, khi lượng, khách hàng bừng nổ cùng sự da dang của địch vụ, mô hình đang triển khai đã gặn phải một số vận dễ:
Việc khai thác thông tin trên cơ sở tong hợp đữ liệu chậm dan di theo khdi lượng đử liệu ngảy một tăng cao (khách hàng tăng, dịch vụ phát triển ngảy
một đa dạng )
Sự đa dạng dich vu dan đến thường xuyên phải chỉnh sửa kiến trúc cơ sở dữ
liệu cho việc quản lý các trưởng thông tin ruở rộng (các dịch vụ khác nhau thông tin quản lý, cáo bài toán số hóa đữ liệu hoặc thu thập đữ liệu không
biết trước các thuộc lính )
Thường xuyên phải tăng cường phần cửng cho lưu trữ hoặc xứ lý để dap ứng, được tốc độ yêu cầu (tăng cường máy chủ, bộ nhở, ổ cứng )
‘Tw cae vẫn đề vướng mắc, đặt ra câu hỏi cẩn tim hiểu vá nghiên cứu giải phản
Trang 122, Để xuất nghiên cứu
Sau một giai đoạn đài thực hiện nhiều giải pháp tối ưu các chương trình phản
trểm nhưng
ẫn chưa đạt được cáo kỳ vọng, tôi nhận an Em thêm các hướng
di khác, giải pháp khác để nâng cao hiệu năng hệ thông, Trong qua trình tìm hiểu vẻ
mô hình đữ liệu, tôi nhận thấy cơ sở đữ liệu đỏ thị có rất nhiều điểm đáng chú ý mả
có thể sẽ giúp lỗi đại được mục tiêu nghiên cửu:
Biéu điễn tốt môi quan hệ giữa các đổi tượng cần quản lý trên mô hình đả thị, một mô hình trực quan để tiếp cận, từ đó có thể sẽ cho phương hướng chuyển đổi bài toán từ mô hình quan hệ sang đỏ thị
Truy vân dữ liệu theo quan hệ đã được xử lý đo đó chỉ một phân đồ thị bị tác dộng chứ không phải toàn bộ quy mô dễ thủ, có khả nắng không tăng thời gian truy vẫn khi kích thước dữ liệu tăng
Dé dàng bổ sung thêm các thuộc tính các nút, các muỗi quan hệ
Với các lý do trên, tôi dé xuất nghiên cửu việc triển khai một phan bai toan Quản lý cung cấp dịch vụ tại VNPT trên mô hình cơ sở dữ liệu để thị, Phương án thực hiện:
Nghiên cửu lý thuyết về cơ sở dữ liệu dỏ thị, thử nghệm trên CSDL Neø4j Phân tích phần cốt lõi của bài toán trên cả hai mô hình: quan hệ - đỏ thị và so xảnh các ưu nhược điểm
Đánh giả cáo khó khăn khi triển khai
Thực hiện chương trinh demo phan giải pháp đề đánh giá kết quả: một số câu
truy vấn tông hợp dữ liệu, khả năng mở rộng thuộc tính; phương án chuyển đổi từ cơ sở đữ liệu có sẵn sang đỗ thị
Có rất nhiều vẫn đẻ cân giải quyết, tuy nhiên trong khuôn khổ luận văn sẽ không,
đủ thời gian và nguồn lục dễ thực hiện tất cả Việc nghiên cứu này mang mục đích
đánh giá giải pháp, làm cổ sở cho việc quyết định có mở rộng và đi xa hơn nữa cho
việc triển khai với các phân hệ còn lai hay không Kết quả của việc nghiên cửu sẽ
Trang 13giúp doanh nghiệp có thêm góc nhìn khác trong việc định hướng các bài toán phủ hợp
3 Bố cục luận văn
Luan van chia lam 5 phan chink:
Aỡ đầu: đặt vẫn đề cha việc nghiên cứu, dựa trên các phân tích nêu để xuất vả
giới hạn phạm vì bài loán cũng như các kết quả mục LIÊU
Chương 1: trình bày các nghiên cứu vẻ cơ sở đữ liêu đồ thị Neo4j và ngôn ngữ truy vấn Cypher Các nghiên cửu của phần này làm cơ sở lý thuyết cho giải pháp đề xuất và xây dựng chương trình thứ nghiệm
Chương 2: phát biểu bài toán, trình bảy giái pháp trên các mô hình cơ sở đữ liệu
quan hệ và để thị Dựa trên cáo mô hình, đánh giá các ưa nhược điểm cũng như các
thuận lợi, khó khăn khi thực hiện uất các phớp do kiểm cho phản thử nghiệm Chương 3: trình bay ngắn gọn thiết kế chương trình đemo với mục đích thực
tiện được các mục tiêu đã niêu ra từ giải pháp Từ kết quả các phép đo, dink gia va
đề xuất hướng phát triển
Kết luận: kết luận lại toàn bộ nghiên cửu về kết quả thực hiện, hướng phát triển, khả nẵng triển khai thực tế
Trang 14CHƯƠNG 1: CƠ SỐ DỮ LIEU DO THT
Phần đâu chương nảy trình bày các tìm hiểu vá nghiên cửu về mặt lý thuyết của
cơ số đữ liệu đồ thị, đi sâu vào cơ sở dữ liệu Neo4i Việc tìm hiểu mày là cơ để xây dựng mô hình dỗ thị đữ liệu cho giải pháp nghiên cửu Phản tiếp theo, chương nảy cũng trình bày một số cú pháp quan trọng của ngôn ngit Cypher, ngôn ngữ được sử dụng để truy vẫn cơ sở đữ liệu đô thú, làm công cụ cho việc lập trình kiểm thử kết quá cũng như đành giá các phép đo kiểm so sánh
1.1 Cơ sử dữ Bệư NoSQ[L,
Về mặt thực tế, cơ sở đữ liệu đỗ thị thuộc vẻ loại cơ sở đữ liệu NeSQL, do đó để tiếp cân đây đủ chứng ta sẽ tìm hiểu sơ lược về NoSQI, trong phản nay
1.11 NoSQL là gì
Được giới thiệu làn đầu vào năm 1998, NoSQL là tên got chung cho các cơ sở
dữ liệu mã nguồn mớ nhỏ nhưng khéng sit dang SQL (Structured Query Language - ngôn ngữ truy vần có cấu trúc) cho truy vẫn Thuật ngữ NoSQL đánh dân bước phat
triển của thế hệ cơ sở dữ liệu mới phân tán (đistrrbated) và không ràng buộc (mon-
relational) Các cơ sở dữ liệu nảy cung cắp các cơ chế lưu trữ vả truy xuất dữ liệu sử
dụng mô hình nhật quản lỏng lêo hem các hệ quản trị cư sở đữ liệu quan hệ truyền
thống, Điều này có nghĩa là dữ liệu sẽ không dược xây dựng trên cdc bang (table),
không có các quan hệ khóa chỉnh (primary key) - khóa ngoại (foreign key) va
khang sir dung SQL lâm ngôn ngữ truy vẫn đữ liệu Thiết kế lưu trữ phân tán được đành cho các hệ thông cần khả năng mở rông lưu trữ lớn, tĩnh sẵn sảng (availabihty)
va higu nang (performance) cao [4][7]
‘Tv NoSQL thưởng dược hiểu và chấp nhận rộng rãi là Not only SQL (không chỉ
có SQL) thế hiện sự thửa nhận rắng mục đích của NoSQL không phải để loại bỏ hay thay thé SQL, bay đúng hơn, nó sinh ra là để bù đấp cho những bạn chế vẻ mặt
*kỹ thuật của cơ sở dữ liệu quan hệ truyền thống [9] Sự ra đời của các cơ sở dữ liệu NoSQL đã tạo nên một cuộc cách mạng về công nghệ lưu trữ trong thời đại của
Web 2.0, nơi mà như cầu vẻ tỉnh sẵn sảng và hiệu năng cao rất dược xera trọng Bên
Trang 15cạnh đỏ, các mang dịch vụ cộng đông phát triển mạnh mẽ cho phép người dùng tao
ra hang ty néi dung trên web Do đó, dữ liệu lớn rất nhanh vượt qua cả những giới
hạn về phần cứng và cần giải quyết bằng bài toán phân tản [7]
Scalability of NoS@L Database
vs Traditionat Relational Database
ngày nay rất phô biên, chủng là các ứng dụng thương mại điện tử hoặc mang
xã hội Khi lượng người dùng đỏng thời tăng cao kết hợp với thỏi quen sử
dụng phong phú tạo nên nhiều mô hình dữ liệu khác nhau dẫn đền sự cân
thiết của các công nghệ cơ sở dữ liệu cỏ khả năng mở rộng đề dàng Với cơ
sở dữ liệu quan hệ truyền thông, các nhả phát triển mg dụng đã gặp rất nhiêu
khỏ khăn hoặc thậm chi lả không thể trong việc tạo ra các ứng dụng có kha năng mở rộng linh động trong khi vẫn duy trì được hiệu năng tốt như những
gì người đùng mong đợi, và NoSQL hiện đang được sử dụng như một giải
pháp tốt nhất
- Van vat két néi (The Internet of Things): s6 luong các thiết bị có thể kết nội
internet đồng thời có khả năng tạo ra dữ liệu đang ngày một gia tăng và trở
nên phỏ biến Tuy nhiên, dữ liêu từ xa thường thi nhỏ, bán cau tric (semi-
structured), hoặc không có cấu trúc (unstructured) vả được cập nhật liên tục
16
Trang 16Điều này mang đến nhiều thách thức cho các cơ sở dữ liệu quan hệ truyền thông vên đôi hỏi một lược đỗ có định (fixed shema) vá dữ liệu có cầu trúc (struetured dala) Để giải quyết thách thức này, các đoanh nghiệp có xu hưởng dỗi mới dang tiì tưởng vào công nghệ NoBQl dễ mỡ rộng việc truy cập đồng thời cho hàng triệu thiết bị kết nói, lưu trữ hàng tỷ điểm dữ liệu đẳng thời dap ứng các yêu cầu về hiệu răng cửa cơ sở lạ tầng và các hoạt động chốt
- Dit ligu lon (Big Data): Dũ liệu đang ngày một trả nên để dàng năm bắt,
thong tin cả nhân của người dùng, dữ liệu định vị địa lý, những nội đụng đo
người đừng tạo là một vải vị dụ về các máng dữ liệu không ngừng được mỏi
rộng đã tạo nên một nguên đữ liệu vô cùng phong phú Việc lưu trữ và sử dụng cáo loại đữ liệu kháo nhau tạo ra nhụ câu về loại cơ sở dữ liệu cũng rất
riêng Tuy nhiên, các nhà phát triển muốn có một cơ sở đữ liệu thật linh hoạt
để dàng chứa bắt kỳ kiểu đữ liệu mới nào mà họ muốn sử đựng và không bị gián đoạn bởi những thay đổi cầu trúc của nội dung đữ liêu từ nhà cùng cập
dữ liệu thử ba Rất nhiều những dữ liệu mới lả các dữ liệu không, câu trúc
hoặc bán cấu trúc, do đó, các nhà phát triển cũng cần có một co sở dữ liệu có khả năng lưu trữ hiệu quả Việc dinh nghĩa một cách cứng nhắc, phương
pháp tiếp cận dựa trên lược đô (schema) được sử dụng trong cáo cơ sở dữ liệu quan hệ truyền thông làm cho nó không thể nhanh chóng kết hợp với các loại đữ liệu mới dược, và kết quả lá không phú hợp với dữ liệu không cấu
trúc và bán cầu trúc
'Từ một số lý do trên, có thể thấy xu hướng sử dụng NoSQL để hoặc thay thể, hoặo bố sung cho co sở đữ liệu quan hệ truyền thẻng đang diễn ra nhu một xu hướng lất yếu Về mặt thực lễ, các áp dụng đã mang lại hiệu quả thực Lễ khi ngày
cảng nhiều các daonh nghiệp hoặc các bài toán phủ hợp được sử dụng trên NoSQL.
Trang 171.1.3 Các tỉnh chất
Dé dam bao tinh toan vẹn (integrity) của dữ liệu, hầu hết các hệ quần trị cơ sở
đữ liệu truyền thong déu dua in ede giao dich (transaction), hiểu nay dam bao tính
nhất quản (consistency) trong tắt cả các trường hợp quản lý dữ liệu Những đặc tính
về giao địch nảy được biết đến chính là ACID [2]:
Alomieity (tỉnh nguyên tổ): một giao dich có rhiểu hoạt động thì hoặc là
toàn bộ hoạt động được thực hiện thành công hoặc không hoạt động nào được thực hiện
Cơnsistency (tính nhất quán): một giáo địch hoặc là sẽ tạo ra trang thai moi
và hợp lệ cho đử liệu, hoặc trong trường hợp có lỗi sẽ chuyển toàn bộ dữ liệu
về trạng thái trước khi thực hiện giao địch
Tsolalion (tính cô lập): một giao địch đang được thực thủ phổi dim bỗo được tách biệt bởi giao địch khác
Durability (tính bên vững): đữ liệu được xác nhận sẽ được hệ thống lưu lại sao cho ngay cả trong trưởng hợp hông móc hoặc có lỗi hệ thống, đữ hiệu vẫn
phải được đảm bảo trong tỉnh trạng chuẩn xác
Tuy nhign, vide mé réng theo chigu ngang (scale out) của các hệ thông tuân thả
theo ACID dã thể hiện một số vẫn dé Những xung đột dang phát sinh giữa các khia cạnh khac nhau của tính sẵn sảng cao trong các hệ thống phân tân rnả không thể giải quyết hoàn Loàn được, điều này được biết với định lý CAP [4]]7]
- Strong Consistency (tinh nhat quản mạnh rnế): nghĩa là cách mà hệ thông ở trong một trạng thái thông nhất sau khi thực hiện một thao tác Một hệ thống phan tán thường được coi là nhất quán nếu sau khi cập nhật hoạt động của một vải thao tác ghi thì tắt cá các thao tác đọc dữ liệu sẽ thấy được dữ liệu đã
hiện thực sao cho khi có vấn đề xây ra với một nút trong một cụm chẳng hạn
như bị hư hỏng hay được tạm ngưng để nâng cập thì các theo tác doc ghi dir
liệu vẫn cho phép tiếp tuc thực hiện
Trang 18- Partition Tolerance: ughia la hé théng cia mét cum bat ky van hoạt đóng, bình thường ngay cả khi đường truyền giữa bai node bị ngắt và không liên
-_ Soft-state: trạng thái của hệ thống có thể thay đổi theo thời gian dù có đầu
vào hay không
- Lventually consistent: hé théng sẽ trở nên nhất quán theo thời gian dù hệ
thống có nhận đầu vảo trong thời gian đó hay không,
“Tập di liệu nhi
1.1.4, Phan loai NoSQL
Cơ sỡ dữ liệu NoSQL dude chia làm bên loại chỉnh:
1.1.4.1 Key — value
Đây là kiểu lưu trữ dơn giản nhất trong eac loai co sé dit ligu Thong thuong, các hệ quản trị cơ sở dữ liệu Key-value lưu trữ dữ liệu dưới dạng key (là một chuối duy nhất) liên kết với value có thể ở đạng chuỗi văn bản đơn giãn hoặc các tập, danh sách dữ liệu phức tạp hơn Quả trình tìm kiếm dữ liệu thưởng sẽ dược
thực hiện thông qua key, điều này dẫn đến sự hạn chế về độ chính xác và việc triển khai thực tế của các cơ sở đứ liệu Key-value thường rất phức tạp khi dữ liệu
đa dạng thông tin do câu trúc lưu trữ quả đơn giản Dễ thấy rằng ý tướng là đơn
Trang 19giản hỏa việc lưu trữ dữ liêu, nghĩa là không can quan tâm đến nội dung cần lưu
trữ là gì hay nói cách khác, chúng lưu trữ thông tia mà không cân phải xác định
lược đồ, điêu nảy làm cho phương pháp lưu trữ dữ liệu với Key-value trở nên đơn giản hơn rất nhiều trong việc xây dựng cũng như khả năng mở rộng là cực
kỳ linh động và hiệu suất cho các thao tác truy vẫn dữ liệu cũng cực nhanh
I3H41
Với sự đơn giản của cách lưu trữ dạng Key — value làm cho các cơ sở đữ liệu
loại này rất phủ hợp với các ứng dụng cản truy xuất nhanh và khả năng mở rộng cao, chẳng hạn như lả các quản lý các phiên giao địch hoặc quản lý các thông tin
về giỏ hàng hay việc quản lý thông tin của sản phẩm bao gồm những thông tin cơ bản, các sản phẩm liên quan, đánh giá, sẽ được lưu trữ dưới dạng key là mã
sản phẩm chẳng hạn và value lả các thông tin cỏn lại của sản phẩm cân lưu trữ
Điều nảy, cho phép ta truy xuất được tất cả các thông tin về một sản phẩm chỉ
thông qua mã sản phẩm cực kỷ nhanh
Co sở đữ liêu Document được thiết kế đề quân lý và lưu trữ dữ liệu ở dạng,
document Những document này được mã hóa vẻ các dạng chuẩn nhu la XML,
JSON (Javascript Option Notation) hay BSON (Binary JSON) Khác với các kiểu lưu trữ đạng Key-value, giá trị của cột trong các cơ sở dữ liêu document chứa dữ liêu bản cấu trúc (Semi-Structured Data), đặc biệt là cặp thuộc tinh name (key) —
value Một cột có thể chứa hàng trăm các thuộc tỉnh như vậy đông thời số lượng,
loại thuộc tính được lưu lại có thể khác nhau giữa các dòng, Một điểm khác nữa
Trang 20so với các kiêu lưu trữ dữ liệu dạng Key-value đơn giản lả cả key vả value deu co thể tìm kiếm trong cơ sở dữ liêu Document [3],[4]
Hình 1.4 Cơ sở dit ligu Document [3]
Cơ sở đữ liệu Document phủ hợp cho việc lưu trữ và quản lý tập đữ liêu có
kích thước lớn như là tải liều văn bản, tin nhắn, cũng như bieu dién một thực thẻ Các cơ sở dữ liệu document tiêu biểu: CouchDB (SON), MongoDB (BSON), déu la ma nguén mé (open source), huéng document (ducument
oriented) và có lược đỏ tự do (shema free)
1.1.4.3 Column family
Nhin bề ngoài, Column family kha giống với cơ sở đữ liệu quan hệ nhưng,
thực tế là hoản toàn khác Một số sự khác biệt đề thấy nhất là việc lưu trữ dữ liệu theo dòng đối với các hệ quản trị cơ sở dữ liệu quan hệ là việc lưu trư dữ liệu theo cột của Conlunn Family Các tư tưởng của cả hai loại cơ sở dữ liệu này
cũng hoản toàn khác nhau, chủng ta không thẻ áp dụng củng một giải pháp mả
chủng ta đã sử dụng trong cơ sở dữ liệu quan hệ vào cơ sở dữ liệu Conlumn family bởi vì Column family là các cơ sở dữ liệu phi quan hệ
column family “shape”
Trang 21Column family được thiết kế đẻ chạy trên một số lượng lớn cac may va lưu
trữ một lượng dữ liệu cực lớn Chủng ta không thể lưu trữ một lượng lớn dữ liệu
trong cơ sở đữ liệu quan hệ vì chắc chắn chúng sẽ nhanh chóng bị sụp đỏ hoặc là chết rất nhanh về kích thước của dữ liêu và những truy vẫn đỏ được các cơ sở dữ
liệu Column family xử lý một cách dễ dàng, Các cơ sở dữ liệu Column family loại bỏ các khái niệm trừu tượng, những thứ làm cho nó cứng nhắc khi chạy trên một cụm máy [3]4]{7]
1.1.4.4 Graph Database
Co sở đữ liệu đồ thị là một cơ sở dữ liệu dạng đồ thị sử dụng các câu trúc đồ
thị với các nút (nodes), các môi quan hệ (relationships), các thuộc tính
(properties) để mô tả và lưu trữ dữ liệu [2][3]{4] Chúng ta có thể thực hiện
những truy vẫn phức tạp hơn như lọc trên các thuộc tinh quan hé, xem xét trọng
số CSDLĐT thường được sử dụng để giải quyết các vẫn đề về mạng và trong
thực tế, hâu hết các trang web mạng xã hội đều sử dụng một số hình thức của CSDLDT dé quản lý các quan hệ như: kết bạn, bạn của bạn,
Hình 1.6 Cơ sở dữ liệu Graph Database [2]
Một vẫn đề đối với việc mở rộng CSDLĐT là rất khỏ để tìm thấy một đồ thị con độc lập, cỏ nghĩa là rất khó đẻ ta phân tản CSDLĐT thành nhiều mảnh Co
rất nhiều nỗ lực nghiên cứu cho việc này nhưng chưa có bắt kỳ giải pháp nảo
dang tin cay được đưa ra Một số sản phẩm tiêu biểu của CSDLĐT 1a: Neodl,
Sones, AllegroGraph,
22
Trang 22Diễm lại một số khái niệm cơ bản [5]:
- Đơn đồ thị vô hướng: đơn dé thi v6 huéng G (V,E) bao gồm V là lập các
đỉnh, và E là tập cáo cặp không có thứ tự gồm hai phan tử kháo nhau của V
gọi là các cạnh Hai cạnh e1 và e2 dược gọi là cạnh lặp nếu chúng củng bương ứng với một cặp đính
Maty
Hình 1.8 Đa đồ thí vô hướng,
- Don dé thị có hướng: dou dé thi có hướng G — (V, E) bao gồm V là tập các đính khác rổng và l¿ là tập các cặp có thử tự gồm hai phân tử khác nhau của
V gọi là các cung.
Trang 23
có năng thao tác xử lý để chứng trở nén hữu ích hơn và có thế đạt được một
mục dích cụ thể
Mô hình hóa đữ liệu bằng đổ thị cũng tương tự, chúng ta sử đụng các hình
khối và các mũi lên để đưa đữ liệu vào và thể hiện mỗi quan hệ giữa chúng Các
thành phản trong mô hình hóa đỗ thị không chỉ giao tiếp với nhau theo những gi
Trang 24chúng ta thấy trong mỗi liên hệ giữa chúng mà chúng còn cho ta nhiều hơn thé,
có thể trả lời những cầu hỏi mà chúng ta muốn trong phạm vị của vẫn đề, có thể
giúp giảm sử sai lệch giữa phân tích vả thực thì |2}|6]
1.2.2.2 Mé hinh dé thi thuộc tính
Mỗi thực thể đều có những, dặc diễm riêng, có thể dựa hoàn toàn các đặc diém
đỏ thành các nút, nhưng như vậy sẽ rất phức tạp, nhất là khi số lượng thực thể táng lên và các nút đỏ lại chỉ nải với một thực thẻ Với cách mê hình hóa như
trên s gây lăng phi số nút, không gian In: trữ và làm phúc tạp để thị ruột cách
không cần thiết Dễ giải quyết vẫn để này ta sử đụng mô hình đề thị thuộc tính và
chúng có các đặc điểm sau [6]
- Dé thi báo gồm các nút và các môi quan hệ
~_ Các mút có các thuộc tính được thể hiện theo cặp ksy-value
~ Các mối quan hệ được đặt Lên và đặt trực tiếp vào để thị, luôn có rút đầu
vả nút cuối
-_ Các mỗi quan hệ cũng có thể có các thuộc tính
Hình 1.11 Mô hình dỏ thị thuộc tính [6]
Cáo để thị thuộc tính thường rất đơn giản, trực quan và dễ hiểu Tuy nhiên,
đủ đơn giản, nhưng nó có thế được sử đụng để mô tả đa số các trường hợp sử
dụng, mang lại cho chúng ta cách nhìn nhận sâu sắc hơn về đữ hiệu.
Trang 251.2.2.3 XIâ hình hỏa dữ liệu
Thiết kế một cơ sở dữ liệu để thị cũng tương tụ như khi ta thiết kế cơ sở đữ liêu đồ thị quan hệ và mô bình đồ thị thuộc Lĩnh với sơ để thực thể kết hợp cũng khá giống nhau Đổi với cơ sở dữ liệu quan hệ ta cần có các thực thể cụ thẻ tương ứng các nút trong cơ sở đữ liệu đồ thị và cả hai đều cân các mỗi quan hệ giữa chúng, Điểm khác biệt lớn nhất là khi hiện thực, các thục thể của cơ sở dữ liệu quan hệ sẽ là một bắng chữa tập các bản phủ (thực thể cự thể), các mỗi quan
hệ có thể thành thực thế kết hợp Dếi với cơ sở dữ liện đồ thị, việc thiết kế với
tiện thục gần như là giống nhau, hay nói cách khác, với cơ sở đữ liệu đỏ tú, thiết kế như thế nào sẽ được hiện thực đúng nhu vay [2116]
thiết kế một cơ sở dữ liệu đồ thị, ta cần chú ý [2]J6][7]:
Sử dụng các câu hỏi đối với đữ liệu để xác định các thực thể cũng như các môi quan hệ
Sử dụng các nút đề đại điện cho các thực thể
Sử dụng các mỗi quan hệ đẻ thể hiện sự kế nói giữa các thực thể và dé thiết lập các bối cảnh ngữ nghĩa cho môi thực thể
Sử dụng các thuộc tính nút để đại điện cho các tính chất cửa thực thể
Sử dụng các thuốc tỉnh của các mối quan hệ dễ thẻ hiện tỉnh quan trong, chất lượng của một mỗi quan hệ
Mô hình hóa sự kiện như là các nút trong tường hợp lại hoặc nhiều thực
thể khác nhau tương tác trong củng một khoảng thời gian thì một sự kiện xuất hiện Chúng ta có thể biểu diễn những sự kiện này bằng các node riêng, và kết nối với các thực thế tham gia sự kiện đó
Cac kiểu giá trị phức tạp đại diện là các nút 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ặc thuộc tỉnh Ví dụ như địa chỉ,
Trang 26Việc xác dịnh dâu là nút, đâu là môi quan hệ rất quan trọng Đã lá nút, thi
nó sẽ phải có quan hệ với nhiều nút khác và nếu đã là mới quan hệ thi nó phai 66 nil dau, mot cud
1.2.3 Tệ quần trị cơ sở dữ liệu No4j
Neo4j la một hệ quân trị cơ sở đữ liệu dỗ thị mã nguồn mở dược viết bằng ngôn ngữ Java sử dụng Cypher lam ngôn ngữ truy vấn đữ liệu Neo4j hiện đang là hệ
quản trị cơ sở đữ liệu để thị phổ biến nhất trang tắt cả các hệ quản trị cơ sở đữ liêu
đỗ thị đang có Neo4j hỗ trợ và thực hiện đây đủ các yêu cầu về mỗi lý thuyế cơ sở
đữ liệu để thị Dễ hiển rä hơn và khai thác hiệu quả hơn Neo4j, chúng ta cần tìm Tiểu một số vấn đề
1.2.3.1 Tính năng nổi bật
Về mặt ứng dụng, Neo4j có ruột số tính năng nổi bài dược giới thiệu dễ
chúng ta cân nhắc khi áp dụng vào thực tế:
Dé dimg và áp dung 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
Cụ thể hóa các mỗi quan hệ tại thời điểm tạo, kết quá là không có cho
truy vẫn thời gian phức tạp
Tất cả quan hệ trong Neo4j déu quan trọng và nhanh chóng, khiển nó cỏ
thê trở thành thực thẻ
Lưu trữ nhỏ gọn và bộ nhớ đèm cho các đồ thị, vi vậy có thể khả nang
xnở rộng lưu trữ hàng lf nút trong một cơ sở đữ liệu trên một hệ thống
phân cứng vừa phải
Viết trên cdc JVM (Java virtual machine)
Trang 27các thực thể, phụ thuộc vào miễn của các mỗi quan hệ mả có thể dược sử dụng,
cho nhiêu mục địch khác nhau [6]
ance
“re &)
Bae
Hình 1.12 Nodes —Neo4j
1.2.3.3 Méi quan hé (Relationships):
Mỗi quan hệ giữa các nút là thành phan quan trọng của cơ sở đữ Hệu đồ thị, chủng cho phép tìm kiếm cáo đữ liệu có liên quan với nhau Cũng giống như rút, mỗi quan hệ cũng có thế có thuộc tính Một mỗi quan hệ kết nỗi hai mút với nhau, gồm núi bắt đầu và nút kết thúc, Miỗi mỗi quan hệ có loại quan lệ
(relationship type), mỗi loại quan hệ nảy được xác định bởi một định danh duy
nhái, Một mỗi quan hệ có thể có hoặc không các thuộc tính [6]
Trang 28ta hệ đầu vài luan bệ đầu
Hình 1.14 Quan hệ có hướng ~ Neo4j
1.2.3.4 Thuộc tính (Properties):
Cả mút và quan hệ đều cỏ 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ủa thuộc tính trong Neo4j có thể là
số, chuối, luận lý hoặc tập hợp Thuộc tính không chứa gia tri null, nêu một
thuộc tinh cỏ value = null nghĩa lả không tổn tại key đỏ trong tập thuộc tính của
Nhãn là tên một câu trúc đỏ thị được sử dụng dé nhóm các nút vảo một tập,
hợp (bộ), tất cả các nút có nhãn giéng nhau củng thuộc vẻ một bộ Nhiều truy
vấn cơ sở dữ liệu cỏ thể làm việc với các bộ thay vỉ toàn bộ đỏ thị, làm cho việc
viết các truy van dé đảng hơn Một nút có thẻ được gắn nhãn hoặc khéng[6]
Trang 29omit em nhơm
Hình 1.16 Labels }eo4j 1.2.3.6 Đường kếtn
(Paths):
Một đường đi là một hay nhiều node được kết nếi với nhau bởi các
;g kết quả của phép đuyệt [6]
Đường hết mối
/ T tơthểcơmệthoặcnhữn ÂN
Theosau hổi tật
relationshii, thường được biếu điễn
Tinh 1.17 Paths — Neo4j
Đuyệt đồ thị là cách truy van để thị, điều hướng bắt đâu từ một nút đến các nut co lién quan dễ trả lời cho các câu hỏi đang như “Đạn của tơi thích thẻ loại
nhạc nào?”, hay “Những người bạn của bạn tơi là ạ?”, [5]J6]
-_ Duyệt một đề thị nghĩa là đi thăm các nođe của đồ thị đĩ, đựa trên các
TelaHonship giữa các núi theo một số quy lắc
30
Trang 30~ Trong một số trường hợp, chỉ cỏ một dễ thị con dược thăm
-_ Có bai cách duyệt đồ thị cơ bản là duyệt theo chiều rộng và duyệt theo
chiều sâu
1.2.4 Xu hướng ứng dụng
Việc ứng dụng mô hình CSDL dễ thị dã diễn ra bàng chục nắm qua trên khắp
thế giỏi Thông thường, chúng ta hình dung mô binh đữ
thả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 CSDI, đỗ thị có thể phù hợp với hấu hết các lnh vục xã hội: đồ thị lri
thiic (Knowledge Graph); giam sat co s¢ ha tang va CSDL cho các hoạt động công
nghé thông tin (Network and [Database Tnfrasruchre Monitoring for TT
Operations), tri (ué nban tao (Artificial Intelligence and Analytics},
Các công ly công nghệ lớn luôn đi tiên phong về ứng đựng mé hinh ray trong
các bải toán quan trọng, của họ, điển hinh như:
- Google voi san phẩm Knowledee Graph: hệ thông tìm kiếm trí thức mạnh
mẽ kết hợp với semantic web (web ngữ nghĩa) cho phép hiểu được ý nghĩa của các từ khóa, từ đỏ đưa ra các kết quả chính xác hơn
-_ Eacebook cung cấp sắn phẩm Graph Search: cũng là một công cụ tìm kiểm
ngữ 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
-_ MigRaven: ứng dụng CSDL đỏ thị (Neo4j) trong việc tô chức lưu trũ quyền
truy cập, dữ liệu tài khoản giúp có thể nhanh chóng tổ chức lại toàn bộ các
quy trình hiệu quả trong quả trình dĩ chuyển dữ liệu giữa các máy chủ
143 Ngônngữ Cypher
Cypher là ngôn ngữ truy vẫn cho CSDL dỗ thị, ngôn ngữ có đặc diểm dễ dọc và
dễ hiểu đổi với cả các nhà phát triển, các chuyên gia cơ sở dữ liệu, Cypher cho phép người dùng tìm kiếm thông in trên sơ sở dữ liệu theo một mô hình cụ thể nào
dó, được xem là ngôn ngữ truy vẫn dỗ thị để tìm hiểu nhất Khi dã hiểu rõ vẻ Cwpher, chúng ta có thê để dàng học sang các ngôn ngữ truy vẫn đỏ thị khác
31
Trang 31Nhìn chung, ngôn ngữ Cypher thể hiện rất tự nhiên từ cách chủng ta vẽ dỏ thị trên bảng trắng 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 Trong phan nay sẽ trình bày một nghiên cứu về Cyphcr bao gồm: củ pháp và một số lệnh cơ bản [6]
1.3.1 Cú pháp
13.11 Kiểu va gia tri
Cypher hé tro cac kiéu dit lig: neuyén thủy, cầu trúc, kết hợp [6]
~_ Kiểu nguyên thủy:
Kiểu cơ bân: In, Float, String, Boolemn, Date, Từne, DateTime
Có thế trả về giá trị từ câu truy vẫn, sử dưng như tham sẻ hoặc cả thể
sử đụng gắn giá trị cho các thuộc tính
-_ Kiêu câu trúc:
«_ Sử dụng cho các nút, quan hệ, các dường liên kết (1d, Type, Label )
© C6 thé trả về từ cân truy vấn, không thể sử như tham số và không thé
sit dung gan gia trị cho các thuộc tính
-_ Kiến kết hợp
« Các kiểu nhu List, Map
© Co thé wa vé từ câu truy vẫn, có thể sử dụng như tham số nhưng, không thế sử đụng gán giá trị cho các thuộc tính
1.3.1.2 Quy tắc đặt tên
~ Quy lắc đất tên |6]
Bắt đâu bằng một ký tự, có thé bao gồm chữ số (trừ ký tự đầu tiên)
ngoại lê sử dụng lên trong cắp dấu ``
Không sử dung cáo ký tự đặc biệt (gừ dấu _ và ngoại lộ khi sử đựng $ cho tham số)
Chiểu dại tên cho phép (2^16-1) kỷ tự (phụ thuộc phiên bần Neo4j) Thân biệt chữ hoa, chữ thường,
Các khoảng trắng trong cú pháp lệnh không có ý nghĩa
32
Trang 32- Pham vi va quy tae sit dung
Các núi, quan hệ hay thuộc tính trong truy vẫn có thể sử đụng lại cùng,
tên trang củng truy vấn: CRILATE (a:a {a: !#')-[r.a]—s(b:a {ai '8]) Các biển cho mút và quan hệ không được sử dụng, củng tên trong củng,
truy vân: CREATE (a)-[a]—+{b}
13.13 Biểu thức
~_ Giá trị biểu thức có thể là [6]:
Null néu bat kỳ biểu thức nào trong chúng là null
Một số hệ thập phân (số nguyên hoặc dấu phẩy động): 13, -40000,
3.14, 6.022E23
Một số hệ thập lục phân (bắt đầu bởi 0x): 0x13zf, 0xEC3A9, -0x66ef£
Một số hệ bát phản (bắt đâu bởi 0): 01372, 02127, -05671
Mat chudi ky tu: ‘Hello’, "World"
Mat gia ti Boolean: true, false, TRUE, FALSE
Một biére n, x, rel, myFancyVariable, “A name with weird stuff in
at]!
Một thuộc tính: n.prop, x prop, rel.thisProperty
Mat thude tinh déng: n[“prop"], relfn.city | nap]
Một tham số: $param, $0
Một danh sách biểu thức: ['at, 'b!, [1, 2, 3], [ ]
Một lời goi ham: length(p), nodes(p)
Một dường đấu: (a) >(}< (b)
Trang 33* Mat biểu thức khớp chuỗi phân biệt chữ hoa chữ thường: a.srname
STARTS WITH 'Svem, asuname ENDS WITH %on' or asumame CONTAINS ‘son!
-_ Các ký tự đặc biệt
Bang 1.1 Ký tư đặc biệt |6]
Escape sequence Character
\woxx Unicode UTF-16 code point
\Uxxxxxxxx Unicode UTF-32 code point
13.1.4 Bién
- Khi tham chiéu các phản của truy văn †a sử đựng tên đặt cho ching va
được gợi là biển số [6]
MACH (n) >(b) RETURN b gồm các biến n b
13.1.5 Từ khôa
Từ khéa được chia thành các nhóm [6]
© Mệnh đề: CALL,CRHATE, DHLETE, DHLACH
© Muh dé com LIMIT, ORDER, SKIP, WHERE
¢ Bidu chink: ASC, ASCENDING, ASSERT, BY
® = Biéu thite diéu kiện: ATT., CASBE, EI.SE, END
¢ Toan tir AND, AS, CONTAINS, DISTINCT, ENDS, IN
34
Trang 34©_ Chỉthị TNDEX, JOIN, PERIODIC, COMMIT
* Hing sé: false, null, true
© Dwkién sit dung: ADD, DO, FOR, MANDATORY
1.3.1.6 Tham số
- Cypher cho phép đừng tham số trong truy vẫn và các tham số cèn làm bộ nhớ đệm giáp việc dùng lại để đảng hơn
~_ Tham số có thể là chuỗi hoặc biểu thức, nút hoặc quan hệ (1đ)
- Tham sổ không sử dụng cho nhãn hoặc kiểu quan hệ
Neodj hé trợ rất nhiều các toán tử [6]:
=, IS NULL, IS NOT NULL
Cypher có khoảng 20 lệnh vá sứ dụng kết hợp để thực hiện các truy vẫn [6] Một
số lệnh cơ bản thường đùng được phân tích qua ví dụ:
START s=node:user (name=lløa )
35
Trang 35MATCH (c)-LA_BAN]}->(b): LA_BAN]->(a), (c+: LA_BAN]->{a}
RETURN b, ¢
13.2.1 START
Lệnh SLAR'T mồ tá một hoặc nhiều điểm bắt đâu có thê là các nút hoặc các
méi quan hệ trong đỏ thị Những điểm bắt đầu sẽ được chon thang qua tìm kiếm
chỉ mục hoặc tìm kiếm trực tiếp dựa trên các nút và cáo mới quan hệ [6]
G
Như vi dụ phía trên, diễm bắt dẫu sẽ là điểm mà có thuộc tỉnh nan có giá
trị là Hoa Giá trị trã vẻ từ việc tìm kiểm điểm này là nút a (định đanh a là do
người đùng ur dal) Binh danh này được sử dụng trong suốt phần còn lại của
câu truy vẫn
13.2.2 MATCH
Sử dụng các ki tự để đại diện cho các nút vả các mối quan hệ, chí ra các dữ điều ma chimg 1a quan tâm Chúng la sử dụng dâu đóng ngoặc và mỗ ngoặc để chỉ ra các nút (v¡ dụ: (a), (b), (e), ), sử dụng cặp dấu gạch ngang kết hợp với đấu lớn hơn hoặc nhỏ hơn đề chỉ ra các mối quan hệ (—>, <—) Các dâu lớn hơn Œ) và nhỏ hơn (<) thế hiện hướng của quan hệ Giữa cặp dẫn gạch ngang có cặp đóng mở ngoặc vuông, nội dung trong cặp đóng mở ngoặc vuông được bắt
đầu bằng đấu hai chim va sau đẻ là tên của mỗi quan hệ (ví dụ: -[: LA BAN]-
>») [6]
13.2.3 RETURN
Lénh nay quy định việc các nút, các mới quan hệ và các thuộc tính trong dữ
hiệu được tra kết quá về như thể nảo [6] Trong ví dự trên thị chủng ta mong, xnuấn việc lrã vẻ là các nút kết nói với định danh b và
Trang 36WIIERD a.name = 'A' AND bname =
CREATE (a)-[r- RELTYPE]}>(b)
RETURN type(r}
13.1.6 DELETE
Xóa mút, mỗi quan hé va thudc tinh [6]
MATCH (Person { mmmne; ‘UNKNOWN! }) DELETE a
Khi xóa nhiều nút, sử đụng DBTACIT
MATCH (n { name: ‘Andy’ })
SUT nsurmame = "Taylor!
RETURN nname, nsumame
Trang 37MATCH n> (im: Typo) RUTURN name, m.type
14, Tổng kết
‘Nam 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à ứng dung 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 dễ dang chỉ théng qua ba thành phần cơ bản: nút, quan hệ và thuộc tính Kgôn ngữ
Oypher với củ pháp tụ nhiên, để hiểu là một công cụ mạnh mẽ hỗ trợ chúng ta rong
tương tác và khai thác các dữ liệu trên CSDL đã thị một cách nhanh chóng
38
Trang 38CHƯƠNG 2: BÀI TOÁN QUẦN LÝ CUNG CÁP DỊCH VỤ
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ế khi
sửa bố sung các phản mềm quản ly
Déi với bài toán quản lý khách hàng, Telenor — céng ty viễn thông cung cản địch vụ ở cả Chân Âu và Chân Á cũng đã ng dung CSDT 46 thi quan ly cau tnic t6
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ọ dã 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ệ
xưng không chỉa sẽ cụ thể về phạm vì ứng cụng cũng như các tài liệu thiết kế bay thử nghiệm Tuy nhiên, điều nảy cũng có thể coi là cơ sở về mắt thực tiễn để chúng,
ta nghiên cứu về hướng áp dụng CSDL đỗ thị trong bài toán HP, với phạm vi va
câu trúc phủ hợp với điều kiện triển khai của doanh nghiệp
2.1 Bài toán tổng quát
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 dược
các doanh nghiệp triển khai trên mô hinh CSIDL quan hệ Việc quản ly mối quan hệ
khách hàng có độ phức tạp tùy theo từng mô hình kinh doanh, tuy nhiên ö mức độ
phố biến thì chủ yến là mỗi quan hệ đơn giản giữa các thực thể nhưng số lượng thục thê nhiều và khối lượng đữ liệu lớn De triển khai trên mô hinh CSDL quan hệ nên việc bố sung thuộc tính mới thường dẫn tới phải chính sửa lại câu trủc các bảng dit liệu, ngoài ra tốc độ truy vấn giảm khi lượng dữ liệu tăng cao Việc triển khai bài
toán trên mô hình CSDL đổ thị có thẻ là một giải pháp khắc phục các hạn chế trên
đo:
- _ Thuộc tỉnh cũa nút hoặc quan hệ được bổ sung linh động giúp cho việc bổ
sung thuộc tính dữ liệu mễm đẻo
3
Trang 39~ _ Tmy vấn dựa trên phép đuyệt dỗ thị (theo chiều rộng hoặc chiểu sâu) và dựa vào các rối quan hệ đã định nghĩa nên tốc độ truy văn không hoặc ảnh
hưởng íL khi đữ liệu tổng
-_ Mô hinh hỏa đẻ thị thuộc tỉnh rất trực quan
Từ các nhận xét trên, tôi để xuất nghiên cửu giải pháp triển khai bài toản quần lý mồi quan hé khach hang trên mnô hinh CSDL, đề thị với các yêu cầu cụ thể như sau:
- Xay dựng mô hình đỏ thị thuộc tính
- Thân tích đánh giá ra nhược điểm và so sánh hiện năng truy vẫn của mồ
hình CSDI, đồ thị với mô hình CSDT, quan hệ
-_ Nghiên cửu giải pháp chuyên déi ti mé hinh CSDL quan hệ cỏ sẵn sang mô
hình CSDL để thị
- Thiết kế ứng dụng thử nghiệm bài toán với các lính nắng quản lý và bổ sung
lĩnh động thuộc tính đữ liệu
Trong phần tiếp theo chứng ta sẽ lựa chạn một trường hợp cụ thể, cẻ mê hình
quan hệ thường gặp và phân tích cũng như thử nghiêm dễ có cơ sở dánh giá giải pháp
2.2 Bải toản Quan ly cung cấp dịch vụ
Bãi toán Quản lý cưng cấp dịch vụ năm trong lớp các bài toán quản lý mỗi quan
thệ khách hàng, bài toán có số lượng thực thể quan hệ vừa phải nhưng có các đặc
tính phủ hợp làm vi dụ cho việc phân tích: dữ liệu lớn và thường xuyên tăng, thuộc
tính đữ liện thường xuyên cần bố sung Trong phần này chime †a sẽ giới thiệu cụ thể
hải toán và phân lích việc Iriển khai trên hơi mô hình: cơ sỡ dữ liệu quan hệ - cơ sở
dữ liệu dỗ thị và dễ xuất giải pháp chuyển dồi
2.2.1 Mô hình tổng thể
Xét trong tổng thể bái toàn LIRP của VNET, bài toàn về quản lý cưng cấp dịch
vụ chỉ là muội phân hệ quân lý Tuy rửiên, đo tính chất quân lý địch vụ cũng cấp
khách hàng nên bài toán nằm ở vị tri kha quan trong,
Trang 40Quan lý vả cụng cấp thông tin khách hàng
Cung cấp thông tin về mã thanh toán, vẻ các dịch vụ khách hàng sử dụng hoặc chỉ tiết về thông số các dịch vụ
Lam co sở tổng hợp số liệu thực hiện các báo cáo phân tích, dự đoán tinh
hình phát
Củng cấp để liệu dhơ bằng loạt các hệ thống khác khai tháo: chấm sóo Khánh
lên hoặc cơ sở cho các chính sách phát triển
thông kế
Hình 2.1 Mô hình tổng thẻ các phân hệ quản lý
41