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

PHÂN tán cơ sở dữ LIỆU đồ THỊ TRÊN NEO4J

121 478 2

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 121
Dung lượng 14,83 MB

Nội dung

Một số kĩ thuật cần thiết liên quan đến cơ sở dữ liệu đồ thị như: phân mảnh đồ thị, tìm đường đi, xử lý các đồ thị lớn,…Trong đó kĩ thuật quan trọng và cũng khá phổ biến ở cơ sở dữ liệu

Trang 1

ĐẠI HỌC QUỐC GIA TP HCM

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

Mã số: 60 48 01 01

NGƯỜI HƯỚNG DẪN KHOA HỌC:

1 TS Ngô Thanh Hùng

TP HỒ CHÍ MINH – NĂM 2017

Trang 2

LỜI CAM ĐOAN

Tôi xin cam đoan đây là công trình nghiên cứu do chính bản thân tôi thực hiện Các nghiên cứu trong luận văn này dựa trên những tổng hợp lý thuyết, hiểu biết thực tế, không sao chép và chưa từng được ai công bố trong các công trình nghiên cứu trước đây

Tác giả

Nguyễn Duy Tân

Trang 3

LỜI CẢM ƠN

Trước hết, xin gửi lời cảm ơn chân thành và sâu sắc nhất đến TS Ngô Thanh Hùng, người Thầy đã nhiệt tình hướng dẫn và hỗ trợ để tôi có thể hoàn thành luận văn này Cho phép tôi gửi lời cảm ơn đến tất cả Thầy Cô đã giảng dạy chúng tôi trong suốt thời gian qua, cũng như các Thầy Cô Phòng Đào tạo Sau Đại học luôn tận tâm, và tạo điều kiện tốt nhất cho chúng tôi học tập

Tôi cũng xin gửi lời cảm ơn đến tất cả anh chị và các bạn Khóa 9 – Ngành Khoa học Máy tính đã luôn hỗ trợ nhau trong quá trình học tập

Cuối cùng, tôi xin cảm ơn gia đình, những người đã luôn ủng hộ và động viên để tôi yên tâm học tập, nghiên cứu và hoàn thành luận văn

Trang 4

Mục lục

LỜI CAM ĐOAN 3

LỜI CẢM ƠN 4

Danh mục các kí hiệu chữ viết tắt 7

Danh mục các bảng 8

Danh mục các hình vẽ, đồ thị 9

MỞ ĐẦU 10

Chương 1 TỔNG QUAN 12

1.1 Các công trình nghiên cứu liên quan 12

1.2 Mục tiêu của đề tài 19

1.3 Nội dung nghiên cứu 19

1.4 Phương pháp nghiên cứu 19

Chương 2 CƠ SỞ LÝ THUYẾT 20

2.1 Cơ sở dữ liệu đồ thị 20

2.2 Đại số quan hệ 22

2.3 Cơ sở dữ liệu phân tán 23

2.3.1 Cơ sở dữ liệu phân tán 23

2.3.2 Các chiến lược phân tán 25

2.3.3 Phương pháp thiết kế cơ sở dữ liệu phân tán 26

2.3.4 Phân mảnh dữ liệu 28

2.4 Xử lý truy vấn phân tán 30

2.5 Phân mảnh ngang, phân mảnh dọc, phân mảnh hỗn hợp cơ sở dữ liệu đồ thị 31

2.5.1 Phân mảnh ngang cơ sở dữ liệu đồ thị 31

2.5.2 Phân mảnh dọc cơ sở dữ liệu đồ thị 31

Trang 5

2.5.3 Phân mảnh hỗn hợp cơ sở dữ liệu đồ thị 32

Chương 3 KIẾN TRÚC PHÂN MẢNH VÀ XỬ LÝ TRUY VẤN PHÂN TÁN 33

3.1 Kiến trúc phân mảnh 33

3.1.1 Đề xuất kiến trúc phân mảnh 33

3.1.2 Ví dụ minh họa 36

3.2 Module xử lý truy vấn phân tán 39

3.2.1 Ý tưởng thuật toán 39

3.2.2 Mã giả chi tiết của thuật toán 40

3.2.3 Cách thức hoạt động của module xử lý truy vấn phân tán 41

3.2.4 Thuật toán viết lại truy vấn và tổng hợp kết quả trả về 43

3.2.5 Tối ưu hóa câu truy vấn 52

Chương 4 CÀI ĐẶT VÀ THỰC NGHIỆM 53

4.1 Cài đặt 53

4.2 Thực nghiệm 57

4.3 Áp dụng vào bài toán thực tế 58

4.3.1 Lý do phân tán 59

4.3.2 Phân chia các phân mảnh 59

4.3.3 Chứng minh việc xử lý các loại câu truy vấn 63

KẾT LUẬN 70

TÀI LIỆU THAM KHẢO 72

PHỤC LỤC 74

Trang 6

Danh mục các kí hiệu chữ viết tắt

- ACID: Atomicity, Consistency, Isolation, và Durability

- API: Application Programming Interface

- CSDL: Cơ sở dữ liệu

- DBMS: Database management system

- DCCA: Dynamic Cut-Cluster Algorithm

- DiDiC: Distributed Diffusive Clustering

- HTTP: HyperText Transfer Protocol

- LAN: Local Area Network

- IP: Internet Protocol

- NoSQL: Not only SQL

- WAN: Wide Area Network

Trang 7

Danh mục các bảng

Bảng 4.1 Số lượng thực nghiệm các mẫu truy vấn 58 Bảng 4.2 Danh sách các hàm xử lý trong mạng xã hội sức khỏe 64 Bảng 4.3 Chứng minh việc xử lý các loại câu truy vấn trong mạng sức khỏe 65

Trang 8

Danh mục các hình vẽ, đồ thị

Hình 2.1 Minh họa cơ sở dữ liệu đồ thị 21

Hình 2.2 Sơ đồ thiết kế tổng thể 26

Hình 2.3 Sơ đồ phân lớp chung cho xử lý truy vấn phân tán 31

Hình 3.1 Ví dụ cơ sở dữ liệu đồ thị Movie 37

Hình 3.2 Ví dụ các nút mạng chứa các phân mảnh dọc cơ sở dữ liệu đồ thị Movie 38

Hình 3.3 Sơ đồ cách thức hoạt động của module xử lý truy vấn phân tán 42

Hình 4.1 Các thành phần trong module xử lý truy vấn phân tán 54

Hình 4.2 Sơ đồ tương tác giữa các thành phần trong module xử lý truy vấn phân tán 55 Hình 4.3 Giao diện kết quả trả về sau khi thực thi truy vấn trên cơ sở dữ liệu phân tán 56

Hình 4.4 Giao diện các bước thực thi truy vấn 56

Hình 4.5 Giao diện kết quả trả về sau khi thực thi truy vấn trên cơ sở dữ liệu không phân tán 57

Trang 9

MỞ ĐẦU

Ngày nay, Internet hiện diện khắp nơi trong cuộc sống và trở thành một phần thiết yếu cho cuộc sống hằng ngày của mỗi người Internet đã thay đổi cách trao đổi thông tin, liên lạc của con người như thư viết tay được email thay thế, cách trao đổi, trò chuyện của mọi người cũng có nhiều thay đổi Mạng xã hội là một trong những công cụ đã góp phần thay đổi không nhỏ đến cách giao tiếp của mọi người Nó giúp mọi người ở khắp nơi trên thế giới có kết thể kết bạn, trò chuyện, chia sẻ hình ảnh, video và trao đổi với nhau một cách dễ dàng Do ngày càng phổ biến nên các ứng dụng mạng xã hội luôn phải đối mặt với việc tổ chức lưu trữ dữ liệu Để đáp ứng cho hàng tỷ người dùng, việc tổ chức lưu trữ

dữ liệu luôn là một thách thức không hề nhỏ Do mạng xã hội là những đồ thị rất lớn, bao gồm rất nhiều nút và được liên kết bởi rất nhiều quan hệ Do đó, cơ sở dữ liệu lưu trữ các mạng xã hội này thường là các cơ sở dữ liệu đồ thị Cơ sở dữ liệu này lưu trữ thông tin dưới dạng các nút, và các nút này được liên kết với nhau thông qua các quan hệ Cả nút

và quan hệ đều có thể có tập thuộc tính riêng Việc phân tán các cơ sở dữ liệu và xử lý các truy vấn phân tán luôn là yêu cầu cần thiết đối với bất kì mạng xã hội nào

Xuất phát từ yêu cầu đó, luận văn lựa chọn đề tài “Phân tán cơ sở dữ liệu đồ thị trên Neo4j” Mục đích chính của đề tài là tiến hành phân mảnh dọc cơ sở dữ liệu đồ thị

Neo4j, và phân tích xử lý các mẫu truy vấn phổ biến liên quan đến các phân mảnh này Đối tượng nghiên cứu là hệ quản trị cơ sở dữ liệu phân tán, phân mảnh cơ sở dữ liệu

và thuật toán xử lý truy vấn trên các phân mảnh

Phạm vi nghiên cứu chỉ giới hạn ở loại phân mảnh dọc, với một số mẫu câu truy vấn bằng ngôn ngữ Cypher trên hệ quản trị cơ sở dữ liệu đồ thị Neo4j

Ý nghĩa khoa học và thực tiễn: do cơ sở dữ liệu đồ thị là một loại hình cơ sở dữ liệu còn khá mới, chỉ phát triển trong vài năm gần đây dẫn đến sự hình thành và phát triển mạnh mẽ của các mạng xã hội Do còn khá mới nên các kĩ thuật phát triển trên chúng vẫn còn ít, chưa phong phú Một số kĩ thuật cần thiết liên quan đến cơ sở dữ liệu đồ thị như: phân mảnh đồ thị, tìm đường đi, xử lý các đồ thị lớn,…Trong đó kĩ thuật quan trọng và cũng khá phổ biến ở cơ sở dữ liệu quan hệ đó là việc phân tán cơ sở dữ liệu và xử lý truy vấn Do các đặc điểm của cơ sở dữ liệu đồ thị là bao gồm các nút và các mối quan hệ, các

Trang 10

nút có các thuộc tính (thuộc tính thể hiện theo cặp key-value), các mối quan hệ được đặt tên và đặt trực tiếp vào đồ thị luôn có nút đầu và nút cuối, các mối quan hệ cũng có thể bao gồm các thuộc tính Do các đặc điểm trên nên việc phân tán cở sở dữ liệu đồ thị và

xử lý phân truy vấn là một kĩ thuật khó Hiện nay, chỉ có một số ít sản phẩm thương mại

hỗ trợ việc này nhưng chưa phổ biến, chưa áp dụng rộng rãi Vì vậy vấn đề này cần được nghiên cứu, phát triển và áp dụng

Ngoài phần mở đầu và kết luận, luận văn được chia làm 4 chương, nội dung cụ thể như sau:

Chương 1 Tổng quan

Chương này sẽ giới thiệu sơ lược về các công trình liên quan đã được công bố trong và ngoài nước Đồng thời giới thiệu mục tiêu, nội dung và phương pháp nghiên cứu của đề tài

Chương 2 Cơ sở lý thuyết

Chương này đề cập đến một số cơ sở lý thuyết cần thiết cho việc thiết kế hệ thống phân tán và xử lý truy vấn như: cơ sở dữ liệu đồ thị, đại số quan hệ, cơ sở dữ liệu phân tán, xử lý truy vấn phân tán

Chương 3 Kiến trúc phân mảnh và xử lý truy vấn phân tán

Nội dung chương này bao gồm kiến trúc phân mảnh đề xuất và module xử lý truy vấn phân tán

Chương 4 Cài đặt và thực nghiệm

Trình bày việc cài đặt chương trình xử lý truy vấn phân tán trên hệ quản trị cơ sở

dữ liệu đồ thị Neo4j, kết quả của việc thực nghiệm và áp dụng vào bài toán thực tế

Trang 11

Chương 1 TỔNG QUAN

Chương 1 TỔNG QUAN

Chương này sẽ trình bày vài nét tổng quan về luận văn như các công trình nghiên cứu liên quan, mục tiêu của đề tài, nội dung và phương pháp nghiên cứu Đầu tiên sẽ giới thiệu một số công trình liên quan đến phân tán cơ sở dữ liệu đồ thị Với mỗi công trình thì sẽ đề cập đề vấn đề cần giải quyết là gì, cách tiếp cận, phương pháp giải quyết như thế nào, ưu và khuyết điểm của từng phương pháp Thông qua việc tìm hiểu và phân tích các công trình liên quan giúp lựa chọn các giải pháp thích hợp trong thiết kế cũng như xác định mục tiêu cụ thể cho đề tài Để đạt được mục tiêu đề ra thì cần có các nội dung chi tiết như thế nào cũng như các phương pháp tiếp cận, nghiên cứu thích hợp để hoàn thành các nội dung đã đặt ra

1.1 Các công trình nghiên cứu liên quan

Công trình [4] đánh giá khả năng việc sử dụng các thuật toán phân vùng đồ thị sẵn

có để phân chia cơ sở dữ liệu đồ thị Để đạt được điều này, một tập các thuộc tính mong muốn đã được định nghĩa, để làm tiêu chí cho việc đánh giá các thuật toán

Ba thuật toán phân vùng là: EvoPartition, DCCA (Dynamic Cut-Cluster Algorithm) và DiDiC (Distributed Diffusive Clustering) sẽ được đánh giá một cách chi tiết dựa trên tập thuộc tính đã định nghĩa Thuật toán EvoPartition sử dụng chương trình con EvoCut dựa trên ESP (Evolving Set Process) và được sử dụng để tìm tập đỉnh có độ dẫn thấp Thuật toán này sử dụng EvoCut để tạo ra một thuật toán nhanh để tìm ra các phân vùng có kích thước cân bằng và độ dẫn thấp Thuật toán DCCA dựa trên thuật toán Cut-Cluster, với các phần mở rộng cho phép nó được sử dụng trong các môi trường động Cả hai đều dựa trên lý thuyết dòng chảy tối đa, sử dụng cắt cạnh tối thiểu để xác định các phân vùng DCCA cũng cố gắng giảm thiểu độ dẫn các phân vùng Thuật toán DiDiC dựa trên phương pháp của “Disturbed Diffusion” Phương pháp này là quá trình phổ biến tải trên các đỉnh của đồ thị DiDiC được thiết kế để thực hiện cân bằng tải trên siêu máy tính P2P (Siêu máy tính này thực hiện tính toán song song trong Bulk Synchronous Parallel) Nó xác định các tập hợp con của các máy trong đó băng thông mạng cao, làm như vậy để chia mạng thành các phân vùng Những máy được mô hình hóa dưới dạng các đỉnh và các kết

Trang 12

Chương 1 TỔNG QUAN

nối mạng như các cạnh có trọng số, trong đó trọng số tỉ lệ thuận với băng thông có sẵn

Cả ba thuật toán này đều phân chia đồ thị dựa trên các đỉnh của chúng hay phân mảnh ngang Để đảm bảo so sánh toàn diện đã được thực hiện, mỗi phương pháp phân vùng được sử dụng để phân chia ba bộ dữ liệu đồ thị khác nhau Ba tập dữ liệu đồ thị đã được

sử dụng: hai tập dữ liệu từ các ứng dụng thực tế và một được tạo tổng hợp Cuối cùng, thuật toán DiDiC đã được chọn và tác động của nó đối với hiệu suất của cơ sở dữ liệu đồ thị đã được so sánh với các phương pháp phân vùng ngẫu nhiên Kết quả cho thấy so với phân vùng ngẫu nhiên, thuật toán phân vùng DiDiC giảm lưu lượng liên vùng 40-90%, tùy thuộc vào tập dữ liệu Thực hiện các thuật toán liên tục trong quá trình sử dụng duy trì chất lượng phân vùng, trong khi chỉ cần 1% tính toán của phân vùng ban đầu

Công trình [5] đề cập đến việc để đạt được một phân vùng tốt, cải thiện hiệu suất tổng thể thì các mục tiêu cần đáp ứng bao gồm: phân vùng phải được cân bằng, phân vùng phải giảm thiểu số lượng cắt cạnh, phân vùng nên được gia tăng mở rộng, giải pháp phân vùng nên hoạt động tốt về thời gian và bộ nhớ Do đó, một thuật toán tham lam để tái phân vùng dữ liệu được trình bày, được sử dụng để cân bằng lại dữ liệu trong cơ sở dữ liệu đồ thị phân tán Thuật toán được mô tả như sau: Khi các nút mới được thêm vào, yêu cầu cập nhật lại các phân vùng bằng cách di chuyển các đỉnh giữa các phân vùng Điều này sẽ giúp giảm bớt số lần truy suất từ xa Thuật toán này sử dụng một quá trình lặp đi lặp lại cân bằng trọng lượng đỉnh trong khi giảm cắt cạnh Để tăng hiệu suất, thay vì nhìn vào cấu trúc đồ thị, thuật toán sử dụng các thông tin tổng hợp trọng lượng đỉnh như là metadata của chính nó Giả sử có α phân vùng, với mỗi đỉnh v, metadata sẽ bao gồm α số nguyên cho biết số lượng đỉnh kề của v trong mỗi α phân vùng Metadata này không đáng

kể so với các dữ liệu vật lý liên quan đến đỉnh bao gồm danh sách kề và thuộc tính của đỉnh Các metadata này được thu thập và cập nhật dựa trên việc thực hiện các yêu cầu của người dùng Khi một cạnh mới được thêm vào, các metadata bao gồm các điểm cuối của cạnh được cập nhật Do đó, chi phí liên quan đến duy trì metadata tỷ lệ thuận với tỷ lệ thay đổi trong đồ thị Do các mạng xã hội thay đổi khá chậm nên việc duy trì chúng không phải là khó khăn của hệ thống Mỗi phân vùng thu thập và lưu trữ thông tin tổng hợp đỉnh

Trang 13

Chương 1 TỔNG QUAN

chỉ liên quan đến các đỉnh cục bộ Hơn nữa, metadata bao gồm tổng trọng lượng của tất

cả các phân vùng Tức là, khi thực hiện phân vùng lại, mỗi máy chủ biết tổng trọng lượng của tất cả các phân vùng khác.Thuật toán này liên quan đến việc phân chia các phân mảnh theo đỉnh nên đây cũng là một dạng phân mảnh ngang Khi các cơ sở dữ liệu đồ thị liên tục phát triển, phân vùng dữ liệu ban đầu sẽ suy giảm theo thời gian Để chống lại quá trình này, thuật toán tái phân vùng được sử dụng để nâng cao chất lượng khi hệ thống đang phát triển Vì quá trình di chuyển dữ liệu để cải thiện tính cục bộ phải được thực hiện song song với các truy vấn của người dùng, thuật toán tái phân vùng cần phải sử dụng ít tài nguyên và giữ các đỉnh di chuyển đến mức thấp nhất Các thuật toán phân vùng trước đây tập trung vào các tính năng định tính của phân vùng kết quả, dẫn đến số lượng lớn di chuyển và yêu cầu bộ nhớ cao Hầu hết các thuật toán tái phân vùng là tối ưu hóa các thuật toán phân vùng hiện có, có nghĩa là chúng vẫn có những sai sót tương tự trong việc phân bổ tài nguyên Các thuật toán tham lam này được kiểm tra trong hệ thống các

cơ sở dữ liệu phân tán DistNeo4j và đánh giá bằng cách sử dụng các mẫu truy vấn khác nhau được sử dụng trong thế giới thực Kết quả cho thấy thuật toán có thể duy trì phân vùng chất lượng cao

Công trình [8] đề cập đến dữ liệu của các mạng xã hội thường rất lớn và tăng trưởng rất nhanh chóng Do đó, cần có một tiếp cận mới để lưu trữ và xử lý dữ liệu một cách hiệu quả, cũng như phải bảo mật và có khả năng mở rộng Vì vậy, nhóm tác giả đã đề xuất và phát triển một cơ sở dữ liệu đồ thị phân tán hai lớp Lớp trên cùng là hệ thống xử lý dữ liệu phân tán Lớp bên dưới là hệ thống lưu trữ dữ liệu phân tán Các hệ thống cơ sở dữ liệu đồ thị hiện tại không cung cấp hai chức năng này cùng một lúc Ví dụ, GoldenOrb sử dụng HDFS như kho lưu trữ dữ liệu nên không phù hợp để quản lý dữ liệu đồ thị InfiniteGraph là một hệ thống cơ sở dữ liệu đồ thị phân tán nhưng nó không có hệ thống

xử lý dữ liệu quy mô lớn để xử lý dữ liệu Trinity là một hệ thống cơ sở dữ liệu đồ thị phân tán và có một kiến trúc tương tự như hệ thống đề xuất Tuy nhiên, Trinity tập trung vào quá trình xử lý giao dịch thời gian thực và sử dụng một hệ thống lưu trữ bộ nhớ phân tán như là phần lưu trữ của nó Và việc lưu trữ được giới hạn bởi số lượng bộ nhớ trên

Trang 14

Chương 1 TỔNG QUAN

mỗi nút Do đó, nó không thể xử lý dữ liệu quy mô lớn Do các hệ thống hiện tại chưa đáp ứng được các yêu của nhóm tác giả nên họ đã phát triển một cơ sở dữ liệu đồ thị phân tán hiệu quả cho tính toán trên các mạng xã hội quy mô lớn Hệ thống bao gồm một kho

dữ liệu đồ thị phân tán và một hệ thống xử lý đồ thị Lưu trữ dữ liệu đồ thị cung cấp lập chỉ mục cho các nút và cạnh để xử lý hiệu quả và một giao diện thao tác dữ liệu thân thiện với người dùng để tạo điều kiện xử lý dữ liệu đồ thị Sử dụng Metis để phân chia dữ liệu

đồ thị theo các đỉnh nên đây cũng là phân mảnh ngang Nhiều hệ thống hiện có như GoldenOrb, Pregel và Giraph, sử dụng hàm băm để phân chia dữ liệu Tuy nhiên, hàm băm không bảo tồn dữ liệu cục bộ Do đó nó không phù hợp với dữ liệu đồ thị phân vùng Metis cung cấp dữ liệu cục bộ tốt hơn so với các hàm băm và làm giảm liên kết giữa các nút trong cơ sở dữ liệu đồ thị phân tán Việc tiến hành các thí nghiệm để chứng minh tính hiệu quả của hệ thống bằng cách chạy các ứng dụng trên các mạng xã hội quy mô lớn trong thế giới thực bao gồm Youtube, Flicker, LiveJournal và Orkut Kết quả thực nghiệm chỉ ra rằng hệ thống hoạt động tốt hơn hệ thống tập tin Hadoop trong tính toán đồ thị con trên mạng xã hội Hệ thống lưu trữ cung cấp khả năng lập chỉ mục và tìm kiếm nhanh để các ứng dụng có thể lấy được đồ thị con mục tiêu hiệu quả mà không cần tải hoặc lọc dữ liệu Các mạng xã hội được phân chia bằng Metis và lưu giữ từng phần trong các cơ sở

dữ liệu Neo4j chia sẻ của hệ thống lưu trữ phân tán Các kết quả thực nghiệm chứng minh rằng phân vùng Metis làm giảm số lượng các thông điệp giữa các phân vùng và giúp cho tính toán trong các mạng xã hội được cục bộ hoá hơn

Công trình [9] nhóm tác giả tập trung thiết kế và cung cấp một hệ thống quản lý dữ liệu đồ thị xã hội được phân chia theo thực tế có thể hỗ trợ điều khiển từ xa trong khi cung cấp một phương pháp hiệu quả để tái phân vùng động lại đồ thị Các phân vùng phân tán nhằm mục đích sắp xếp các đỉnh của đồ thị trực tuyến để đáp ứng các yêu cầu: phân vùng phải được cân bằng, việc phân vùng nên giảm thiểu số lượng các cắt cạnh, phân vùng nên được gia tăng, thuật toán phân vùng lại nên hoạt động tốt về thời gian và yêu cầu về bộ nhớ Vì vậy, thuật toán phân vùng động được xây dựng Thuật toán này từng bước nâng cao phân vùng hiện có bằng cách giảm cắt cạnh (phân mảnh theo đỉnh – tức

Trang 15

dữ liệu các mạng xã hội thực tế đã đạt được hiệu quả trong việc tạo ra hiệu suất hoạt động

và làm việc gần như các thuật toán phân vùng phổ biến Metis

Công trình [10] đề cập các mạng xã hội sẽ đối phó với lượng dữ liệu khổng lồ, có thể bao gồm hàng nghìn tỷ đỉnh và cạnh Do đó, các phương pháp hiệu quả để mở rộng các hệ quản trị cơ sở dữ liệu đồ thị là cần thiết để cải thiện tiện ích cho một mạng xã hội Nhóm tác giả chứng minh rằng có các mô hình phân vùng có thể được thực hiện với tính toán tối thiểu và loại bỏ giới hạn vật lý từ kích thước của đồ thị Hơn nữa, các mô hình như vậy cung cấp khả năng cân bằng tải và tăng tính song song cho các truy vấn mà không yêu cầu truy cập vào toàn bộ đồ thị Vì vậy, các phương pháp phân vùng cơ sở dữ liệu đồ thị theo cạnh, đỉnh và thuộc tính đã được xem xét Phân vùng theo đỉnh là phương pháp nghiên cứu nhiều nhất để tách một đồ thị là cắt đồ thị Nghĩa là, đồ thị được phân chia thành các đồ thị con, trong đó mỗi đỉnh nằm trong chính xác một đồ thị con Đây là dạng phân mảnh ngang Các đồ thị con sau đó trở thành các mảnh của đồ thị ban đầu Một khả năng khác là phân chia đồ thị thành các đồ thị con bằng các cạnh của chúng Mỗi phân vùng chứa một tập con của các cạnh từ đồ thị gốc, với tổng số đồ thị đang được tái tạo lại

từ tất cả các phân vùng Trong một số ứng dụng, các cạnh có thể có các loại để cung cấp thêm ngữ nghĩa cho mối quan hệ Khả năng cuối cùng đã được Neo Technologies xem xét cho phiên bản 2 của Neo4j Các đỉnh và các cạnh đòi hỏi khoảng không gian lưu trữ tương đối ít, nhưng các thuộc tính có chiều dài tùy ý Vì vậy có thể yêu cầu không gian nhiều hơn đáng kể, giới hạn kích thước biểu đồ tối đa Bằng cách lưu trữ các thuộc tính

Trang 16

* Đánh giá các công trình nghiên cứu liên quan:

Phân mảnh ngang:

Tất cả các công trình trên đều tập trung vào việc phân tán đồ thị theo các đỉnh hay phân mảnh ngang Các kết quả thực nghiệm và đánh giá cụ thể của từng công trình như sau:

Kết quả từ các đánh giá công trình [4] của nhóm tác giả cho thấy các bộ dữ liệu được phân chia bằng cách sử dụng thuật toán phân vùng đồ thị tối ưu hóa mô-đun đã đạt được

sự phân bố tải cân bằng và tạo ra lưu lượng mạng ít hơn đáng kể so với các phân vùng đã được phân chia ngẫu nhiên Do tính phức tạp của tính toán của thuật toán DiDiC, nhóm tác giả kết luận rằng DiDiC rất phù hợp để phân chia các đồ thị có kích thước tương tự với bộ dữ liệu mẫu đã thử nghiệm nhưng không thực tế khi làm việc với đồ thị lớn hơn Điều này không làm mất hiệu lực việc sử dụng thuật toán phân vùng đồ thị để phân chia các cơ sở dữ liệu đồ thị Thay vào đó, nó chỉ ra rằng một thuật toán tối ưu hóa mô-đun nhanh hơn phải được sử dụng Kết quả cho thấy các thuật toán tối ưu hóa mô-đun có hiệu quả làm giảm lưu lượng mạng trong khi cân bằng tải

Công trình [5] thuật toán tham lam đề xuất được thiết kế với những hạn chế như tận dụng phân vùng chất lượng cao và tập trung vào những cải tiến nhỏ dựa trên những thay đổi gần đây đối với cấu trúc đồ thị và các mẫu truy vấn Để kiểm tra tính hợp lệ của thuật

Trang 17

Chương 1 TỔNG QUAN

toán, một cơ sở dữ liệu đồ thị phân tán, DistNeo4j, được thiết kế bằng cách bổ sung cơ sở

dữ liệu Neo4j tập trung Các thuật toán tham lam được thực hiện trong DistNeo4j và đánh giá bằng cách sử dụng các mẫu truy vấn khác nhau được sử dụng trong thế giới thực Kết quả cho thấy phân vùng tham lam có thể duy trì một phân vùng chất lượng cao

Công trình [8] tiến hành các thí nghiệm để chứng minh tính hiệu quả của hệ thống bằng cách chạy các ứng dụng trên các mạng xã hội quy mô lớn trong thế giới thực bao gồm Youtube, Flicker, LiveJournal và Orkut Kết quả thực nghiệm chỉ ra rằng hệ thống của họ hoạt động tốt hơn hệ thống tệp tin Hadoop trong tính toán đồ thị con trên mạng xã hội Hệ thống lưu trữ phụ trợ cung cấp khả năng lập chỉ mục và tìm kiếm nhanh để các ứng dụng có thể lấy được đồ thị con mục tiêu hiệu quả mà không cần tải hoặc lọc dữ liệu Nhóm tác giả sử dụng Metis để phân chia các mạng xã hội và lưu giữ từng phần trong cơ

sở dữ liệu Neo4j chia sẻ của hệ thống lưu trữ phân tán Các kết quả thực nghiệm chứng minh rằng phân vùng Metis làm giảm số lượng các thông điệp giữa các phân vùng và làm cho tính toán được cục bộ hoá hơn cho tính toán trong mạng xã hội

Việc đánh giá công trình [9] được thực hiện thông qua thực nghiệm thuật toán trên các bộ dữ liệu thực tế cho thấy rằng bộ phận phân chia lại có thể xử lý các thay đổi trong khối lượng công việc truy vấn trong khi duy trì hiệu suất tốt Chi phí của bộ phận phân chia lại là tối thiểu, tạo hiệu suất bền vững so với phân vùng tĩnh, không trực tuyến, phân vùng sử dụng Metis Đánh giá cho thấy hiệu suất hoạt động khá lớn so với phân vùng ngẫu nhiên, dựa trên băm, được sử dụng rộng rãi để phân chia cơ sở dữ liệu

Các thử nghiệm trong công trình [10] cho thấy rằng hiệu suất trong một phân vùng duy nhất được duy trì, và hiệu suất bị ảnh hưởng bởi chi phí mạng liên quan đến giao tiếp giữa các phân vùng Đối với các kịch bản nơi không gian địa điểm được quan sát, chẳng hạn như đi qua trong một nhóm bạn thân trong mạng xã hội hoặc tìm đường trong một mạng lưới đường với giả thiết rằng các tuyến đường mong muốn nhất là cục bộ, các đường ngang không thể vượt qua nhiều phân vùng, do đó PNeo4j chỉ phải trả hình phạt hiệu suất tối thiểu

Trang 18

Chương 1 TỔNG QUAN

Phân mảnh dọc:

Trong quá trình tổng quan, chúng tôi chưa tìm thấy bất kỳ công trình nào liên quan đến việc phân tán dọc cơ sở dữ liệu đồ thị do đó chưa có bất kỳ đánh giá nào về loại phân tán này

Vì vậy, nghiên cứu này sẽ trình bày một hình thức phân mảnh dọc cơ sở dữ liệu đồ thị - phân mảnh theo các quan hệ Luận văn sẽ trình bày kiến trúc phân mảnh dọc và module xử lý truy vấn phân tán trên hệ quản trị cơ sở dữ liệu đồ thị Neo4j và ngôn ngữ Cypher

1.2 Mục tiêu của đề tài

Đề tài sẽ nghiên cứu giải quyết một số vấn đề liên quan đến phân tán là đề xuất kiến trúc hệ thống cơ sở dữ liệu phân tán, nhận diện các phân mảnh và xử lý truy vấn trên các phân mảnh đó

1.3 Nội dung nghiên cứu

Luận văn sẽ trình bày kiến trúc phân tán và module xử lý truy vấn phân tán trên hệ quản trị cơ sở dữ liệu đồ thị Neo4j Kiến trúc được áp dụng là phân tán dọc cơ sở dữ liệu

đồ thị Neo4j, các phân mảnh được đặt trên các máy tính kết nối với nhau thông qua giao thức HTTP Module được thiết kế nhằm xử lý một số mẫu truy vấn theo ngôn ngữ Cypher dựa trên cơ sở đại số quan hệ Module có thể được ứng dụng cho một số bài toán thực tế

và có thể được phát triển thêm để có thể tối ưu hơn và xử lý được nhiều mẫu câu truy vấn hơn

1.4 Phương pháp nghiên cứu

Phương pháp nghiên cứu là phân tích tài liệu, bài báo, cài đặt thử nghiệm, đại số quan hệ, ngôn ngữ truy vấn cơ sở dữ liệu đồ thị Cypher, phương pháp xử lý mẫu câu, phương pháp phân tích thiết kế hệ thống, các kỹ thuật lập trình, các nền tảng (platform) lập trình, các kỹ thuật kiểm thử thuật toán và phần mềm

Trang 19

Chương 2 CƠ SỞ LÝ THUYẾT

Chương 2 CƠ SỞ LÝ THUYẾT

Chương này sẽ trình bày một số lý thuyết có liên quan đến nội dung thực hiện của đề tài Đầu tiên sẽ trình bày về cơ sở dữ liệu đồ thị và những đặc điểm của nó nhằm cung cấp những kiến thức cơ bản, làm nền tảng cho việc đề xuất mô hình phân tán Tiếp theo

là đại số quan hệ và các phép toán cơ bản trong đại số quan hệ Lý thuyết đại số quan hệ cần thiết cho việc phân rã và viết lại truy vấn trong môi trường phân tán Cuối cùng giới thiệu về phân tán cơ sở dữ liệu quan hệ, các chiến lược phân tán, các phương pháp thiết

kế cơ sở dữ liệu phân tán, phân mảnh cơ sở dữ liệu và các bước xử lý truy vấn Kiến thức này rất quan trọng, làm cơ sở cho việc triển khai hệ thống phân tán trên cơ sở dữ liệu đồ thị, cũng như áp dụng vào phân tích và xây dựng quy trình xử lý truy vấn phân tán trên

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

2.1 Cơ sở dữ liệu đồ thị

Cơ sở dữ liệu đồ thị là loại cơ sở dữ liệu NoSQL hoặc không quan hệ, phù hợp với các tập dữ liệu phân tán rất lớn Thay vì sử dụng các bảng như trong các cơ sở dữ liệu quan hệ, cơ sở dữ liệu đồ thị sử dụng cấu trúc đồ thị với các nút, thuộc tính và các cạnh

để biểu diễn và lưu trữ dữ liệu Cơ sở dữ liệu đồ thị sử dụng lý thuyết đồ thị để lưu trữ và truy vấn các mối quan hệ Nó thực chất là một tập hợp các cạnh và các nút, với mỗi nút đại diện cho một thực thể như một người hoặc một tổ chức và mỗi cạnh đại diện cho một kết nối hoặc mối quan hệ giữa hai nút Một nút được xác định bởi một định danh duy nhất

và có nhiều cạnh gắn liền với nó, dù là vào hay ra, và nó có một tập các thuộc tính được biểu diễn dưới dạng các cặp khóa - giá trị Một cạnh cũng được xác định bởi một định danh duy nhất, và nó có một nút bắt đầu và một kết thúc, cũng như một tập các thuộc tính

Cơ sở dữ liệu đồ thị hữu ích cho việc phân tích các mối quan hệ và kết nối giữa các

dữ liệu Do đó, nó đang được sử dụng rộng rãi trong khai thác dữ liệu của các mạng xã hội, cho dữ liệu với các lược đồ động, chẳng hạn như trong quản lý chuỗi cung ứng, cũng như trong bán hàng, nó được sử dụng để xác định các kết nối giữa các hành động trực tuyến của khách hàng

Các thành phần chính trong cơ sở dữ liệu đồ thị được thể hiện thông qua hình sau:

Trang 20

Chương 2 CƠ SỞ LÝ THUYẾT

Neo4j là một hệ thống quản lý cơ sở dữ liệu đồ thị NoSQL được phát triển bởi Neo Technology Inc và là cơ sở dữ liệu đồ thị phổ biến nhất hiện nay theo DB-Engines (db-engines.com) Nó là một cơ sở dữ liệu giao dịch đầy đủ (ACID) chứa các dữ liệu được cấu trúc dưới dạng đồ thị bao gồm các nút và các mối quan hệ giữa chúng Trong Neo4j, mọi thứ được lưu trữ ở dạng của một nút, một cạnh (quan hệ), hoặc một thuộc tính Mỗi nút và cạnh có thể có một số lượng không giới hạn các thuộc tính Cả nút và cạnh đều có thể được gắn nhãn Nhãn có thể được sử dụng để thu hẹp việc tìm kiếm

Cypher là một trong những ngôn ngữ truy vấn cơ sở dữ liệu đồ thị phổ biến của Neo4j cho phép truy vấn và cập nhật đồ thị một cách hiệu quả Cypher là một ngôn ngữ tương đối đơn giản nhưng rất mạnh mẽ Cú pháp của Cypher cung cấp một cách trực quan để

so khớp các mẫu cần tìm dựa vào thông tin về các nút và các mối quan hệ Các truy vấn

cơ sở dữ liệu phức tạp có thể dễ dàng được thể hiện thông qua Cypher

Ví dụ: liệt kê các nhân viên của phòng IT

 Trong SQL:

SELECT name FROM Person

Hình 2.1 Minh họa cơ sở dữ liệu đồ thị

Trang 21

Chương 2 CƠ SỞ LÝ THUYẾT

Đại số quan hệ (Relational algebra) dùng phổ biến trong lý thuyết cơ sở dữ liệu quan

hệ là một bộ các toán tử và các quy tắc tương ứng có thể được sử dụng để thao tác trên các quan hệ (relation) và tạo ra kết quả là một quan hệ khác Trước đây, đại số quan hệ ít được quan tâm cho đến khi Edgar F Codd đưa ra mô hình dữ liệu quan hệ (relational model) vào năm 1970 Từ đó đến nay, đại số quan hệ được xem là nền tảng cho các ngôn ngữ truy vấn cơ sở dữ liệu

Các phép toán trong đại số quan hệ như sau:

- Phép chọn: Cho quan hệ r định nghĩa trên lược đồ quan hệ R(U), E là biểu thức

chọn phát biểu trên U Phép chọn trên quan hệ r theo điều kiện E, ký hiệu σE(r) cho ta một quan hệ mới với tập thuộc tính U và các bộ là các bộ của r thoả mãn điều kiện E

Kí hiệu: σE(r) = {t | t∈r và E(t)=đúng}

Trong đó E(t) là giá trị của biểu thức E khi thay mọi thuộc tính Ai trong E của t bởi t[Ai]

- Phép chiếu: Cho quan hệ r định nghĩa trên lược đồ quan hệ R(U) với U={A1, ,

An} và tập thuộc tính X⊆U Phép chiếu quan hệ r lên tập thuộc tính X, ký hiệu ΠX(r) cho

ta một quan hệ mới với tập thuộc tính X và các bộ là hạn chế trên X của các bộ t∈r

Kí hiệu: ΠX(r) = {t[X] | t ∈r }

- Tích Descartes: Cho hai quan hệ r định nghĩa trên lược đồ quan hệ R(U) và s định

nghĩa trên lược đồ quan hệ S(V), với U= {A1,A2, , An} , V= {B1,B2, , Bm} Tích Đề các của r và s, ký hiệu r×s cho ta một quan hệ mới với tập thuộc tính U ∪V và các bộ có dạng: t= (a1,a2, , an,b1,b2, ., bm) trong đó (a1, ., an) ∈r và (b1,b2, ., bm ) ∈s

Kí hiệu: r ×s={t=(a1,a2 ,an ,b1,b2, ,bm ) | (a1,a2, , an) ∈r và (b1,b2, , bm)∈s}

Trang 22

Chương 2 CƠ SỞ LÝ THUYẾT

- Phép chia: Cho hai quan hệ r định nghĩa trên lược đồ quan hệ R(U) và s định nghĩa

trên lược đồ quan hệ S(V) với V⊂U và s ≠φ Đặt X=U\V.Thương của phép chia quan hệ

r cho quan hệ s, ký hiệu r ÷ s cho ta quan hệ mới với tập thuộc tính là X và các bộ được xác định bởi: {u [X] | (u ∈r và∀v ∈s thì (u[X] ,v) ∈r}

Kí hiệu: r ÷ s = {u [X] | (u ∈r và ∀v ∈s thì (u[X] , v ) ∈r}

- Phép hợp: Cho hai quan hệ khả hợp r và s xác đinh trên lược đồ quan hệ R(U)

Phép hợp 2 quan hệ r và s, ký hiệu r ∪s cho ta một quan hệ mới với tập thuộc tính U và các bộ là các bộ thuộc r hoặc thuộc s

Kí hiệu: r ∪s = { t | t ∈r hoặc t ∈s}

- Phép giao: Cho hai quan hệ khả hợp r và s xác đinh trên lược đồ quan hệ R(U)

Phép giao 2 quan hệ r và s, ký hiệu r∩s cho ta một quan hệ mới với tập thuộc tính U và các bộ là các bộ thuộc r và thuộc s

Kí hiệu: r ∩s = {t | t ∈r và t ∈s}

- Phép trừ: Cho hai quan hệ khả hợp r và s xác đinh trên lược đồ quan hệ R(U)

Phép trừ quan hệ r cho s, ký hiệu r-s cho ta một quan hệ mới với tập thuộc tính U và các

bộ là các bộ thuộc r nhưng không thuộc s

Kí hiệu: r - s = {t | t ∈r và t ∉s}

2.3 Cơ sở dữ liệu phân tán

2.3.1 Cơ sở dữ liệu phân tán

Một cơ sở dữ liệu phân tán là một tập hợp dữ liệu, mà về mặt logic tập hợp này thuộc cùng một hệ thống, nhưng về mặt vật lý dữ liệu đó được phân tán trên các vị trí khác nhau của một mạng máy tính Có hai điểm quan trọng được nêu ra trong định nghĩa:

Phân tán: Dữ liệu không cư trú trên một vị trí mà được phân bố rộng khắp trên nhiều máy tính đặt tại nhiều vị trí khác nhau, đây là điểm phân biệt một cơ sở dữ liệu phân tán với một cơ sở dữ liệu tập trung

Tương quan logic: Dữ liệu trong hệ phân tán có một số thuộc tính ràng buộc chúng với nhau Điều này giúp chúng ta có thể phân biệt một cơ sở dữ liệu phân tán với một tập hợp cơ sở dữ liệu tập trung, các file dữ liệu được lưu trữ tại nhiều vị trí khác nhau, điều

Trang 23

Chương 2 CƠ SỞ LÝ THUYẾT

này thường thấy trong các ứng dụng mà hệ thống sẽ phân quyền truy nhập dữ liệu trong môi trường mạng

Ví dụ: Một ngân hàng có ba chi nhánh đặt tại các vị trí khác nhau

Tại mỗi chi nhánh có một máy tính điều khiển một số máy kế toán cuối cùng (teller terminal) và cơ sở dữ liệu thống kê của chi nhánh đó Mỗi máy tính với cơ sở dữ liệu thống kê địa phương của nó tại mỗi chi nhánh được đặt ở một vị trí của cơ sở dữ liệu phân tán Các máy tính được nối với nhau bởi một mạng truyền thông Các nút trong một mạng phân tán một mặt xử lý thông tin tại vị trí mà nó quản lý, mặt khác nó cũng tham gia vào việc xử lý các yêu cầu về thông tin cần truy cập qua nhiều địa điểm Ví dụ như việc lên danh sách tất cả nhân viên của ngân hàng Yêu cầu này đòi hỏi tất cả các máy tính ở các chi nhánh của công ty đều phải hoạt động để cung cấp thông tin

Ưu điểm và nhược điểm của hệ phân tán:

 Ưu điểm

o Đáp ứng nhanh hầu hết các ứng dụng sử dụng dữ liệu tại các trạm

o Tăng cường các đơn thể ứng dụng và cơ sở dữ liệu mà không làm cản trở người sử dụng hiện tại

o Kiểm soát dữ liệu địa phương theo hướng hoàn thiện sự tích hợp và quản trị dữ liệu từ xa

o Tăng cường khả năng của hệ thống liên quan đến sự dư thừa dữ liệu

 Nhược điểm

o Phần mềm đắt và phức tạp

o Phải xử lý các thay đổi thông báo trong mọi địa điểm

o Khó kiểm soát tính toàn vẹn dữ liệu với nhiều bản sao dữ liệu được phân

bố khắp mọi nơi

o Đáp ứng chậm nhu cầu của các trạm trong trường hợp các phần mềm ứng dụng không được phân bố phù hợp với việc sử dụng chung

Trang 24

Chương 2 CƠ SỞ LÝ THUYẾT

2.3.2 Các chiến lược phân tán

Việc định vị và phân tán dữ liệu ở các nút trong một mạng máy tính sẽ quyết định tính hiệu quả và đúng đắn của hệ thống phân tán Có 4 chiến lược phân tán dữ liệu cơ bản:

 Tập trung dữ liệu: Tất cả các dữ liệu được tập trung một chổ Cách này đơn giản nhưng có 3 nhược điểm:

o Dữ liệu không sẵn sàng cho người sử dụng truy nhập từ xa

o Chi phí truyền thông lớn, thường làm cực đại việc truy nhập dữ liệu tới nơi tập trung

o Toàn bộ hệ thống ngừng khi cơ sở dữ liệu bị sự cố

o Nếu bản sao của cơ sở dữ liệu được lưu giữ tại mọi trạm của hệ thống

ta có trường hợp sao lặp đầy đủ

o Hiện nay có nhiều kỹ thuật mới cho phép tạo bản sao không đầy đủ phù hợp với yêu cầu dữ liệu ở mỗi trạm và một bản đầy đủ được quản lý ở máy chủ

o Sau một khoảng thời gian nhất định các bản sao được làm đồng bộ với bản chính bằng một ứng dụng nào đó

 Phương thức lai:

o Cơ sở dữ liệu được phân thành nhiều phần: quan trọng và không quan trọng

o Phần ít quan trọng được lưu giữ một nơi

o Phần quan trọng được lưu trữ ở nhiều nơi khác

Trang 25

Chương 2 CƠ SỞ LÝ THUYẾT

2.3.3 Phương pháp thiết kế cơ sở dữ liệu phân tán

o Mô tả toàn bộ dữ liệu sẽ được dùng trong hệ thống

 Thiết kế phân đoạn: thực hiện chia nhỏ dữ liệu thành các phần

 Thiết kế cơ sở dữ liệu vật lý: thiết kế dữ liệu vật lý cho các quan hệ tại các trạm

thể

Thiết kế phân đoạn

Thiết kế định vị các đoạn (Tạo các ảnh vật lý)

Thiết kế CSDL vật lý

Trang 26

Chương 2 CƠ SỞ LÝ THUYẾT

2.3.3.2 Các phương pháp thiết kế cơ sở dữ liệu phân tán

 Phương pháp thiết kế từ trên xuống

o Thiết kế từ tổng thể đến riêng biệt

o Phân rã một hệ thống lớn thành các hệ thống con

o Phân tích các yêu cầu nhằm định nghĩa môi trường hệ thống

o Thu thập các yêu cầu về dữ liệu và nhu cầu xử lý của các trạm có sử dụng CSDL

o Thiết kế view: xây dựng khung nhìn dữ liệu cho người sử dụng ở các trạm

o Thiết kế mức quan niệm: là một tiến trình kiểm tra và xác định rõ hai nhóm quan hệ: phân tích thực thể và phân tích chức năng

+ Phân tích thực thể: xác định các tập thực thể, các thuộc tính và các mối quan hệ giữa chúng

+ Phân tích chức năng: xác định các chức năng của hệ thống và đưa

ra các chức năng cơ sở

o Thiết kế phân tán: bao gồm hai phần:

+ Thiết kế phân đoạn + Thiết kế định vị

o Thiết kế lược đồ quan niệm địa phương: tạo ra các lược đồ mức quan niệm tại các địa phương

o Thiết kế vật lý: thực hiện ánh xạ lược đồ mức quan niệm tại các địa phương ra các đơn vị lưu trữ vật lý

o Quan sát và kiểm tra: kiểm tra các giai đoạn của quá trình thiết kế cơ

sở dữ liệu

 Phương pháp thiết kế từ dưới lên

o Phương pháp thiết kế trên xuống thực sự có hiệu quả khi xây dựng một

hệ thống mới

Trang 27

Chương 2 CƠ SỞ LÝ THUYẾT

o Trong thực tế, một số cơ sở dữ liệu đã tồn tại trước, được tổ chức trong môi trường tập trung và cơ sở dữ liệu phân tán được phát triển bằng cách liên kết chúng lại thành một cơ sở dữ liệu mới thống nhất (Các DBMS địa phương khác nhau đã được sử dụng)

Cách thiết kế

o Chọn một mô hình dữ liệu chung để mô tả lược đồ tổng thể

o Chuyển mỗi lược đồ địa phương theo mô hình dữ liệu chung đã chọn

o Tích hợp các lược đồ địa phương vào lược đồ tổng thể

2.3.4 Phân mảnh dữ liệu

Việc chia một quan hệ thành nhiều quan hệ nhỏ hơn được gọi là phân mảnh quan hệ Việc phân mảnh một quan hệ tổng thể cũng phải tuân theo một số quy tắc nhất định

để khi tái thiết lại quan hệ cũ vẫn bảo đảm ngữ nghĩa của nó

Một phương pháp thiết kế các phân mảnh đúng đắn phải thỏa mãn ba tính chất sau:

“Site”và sự nhất quán các dữ liệu

o Nhất quán dữ liệu (Data consistency): Có 2 cách để đạt được tính nhất quán

dữ liệu:

Trang 28

Chương 2 CƠ SỞ LÝ THUYẾT

- Nhất quán giao dịch(Transactional Consistency): Bảo đảm tất cả dữ liệu giống nhau tại mọi site ở bất kì thời điểm, và tất cả giao dịch thực hiện tại một site duy nhất

- Hội tụ dữ liệu (Data Convergence): Với sự hội tụ dữ liệu, tất cả các site

có thể quy về cùng một giá trị dữ liệu nhưng không nhất thiết là giá trị dữ liệu này bị gây ra bởi những tác vụ được làm trên một site duy nhất User

có thể tự do thao tác trên các site theo các cách khác nhau Khi các nút (node) đồng bộ, tất cả các site sẽ hội tụ về cùng một giá trị

o Độc lập site xét đến ảnh hưởng của những thao tác trên một site đến các site khác Thường độc lập site càng tăng thì tính nhất quán dữ liệu giảm Nhân bản kết hợp (Merge replication) có mức độc lập site cao nhất, tạo ra sự hội

tụ nhưng lại không đảm bảo tính nhất quán dữ liệu 2PC (two phase commit)

có tính nhất quán dữ liệu cao nhưng lại không có tính độc lập site Những giải pháp khác thì thường ở giữa hai tính này

o Các thành phần chính của nhân bản:

- Publisher: là một server tạo dữ liệu để nhân bản đến các server khác

- Subscriber: là một server lưu giữ nhân bản và nhận các tác vụ cập nhật

- Distributor: là một server mà chứa CSDL phân tán (distribution database) và lưu trữ metadata, history data và transaction

- Publication: đơn giản là một tập hợp các mẩu dữ liệu (article)

 Phân mảnh ngang: phân mảnh ngang một quan hệ tổng thể n-bộ R là tách R thành các quan hệ con n-bộ R1, R2, , Rk sao cho quan hệ R có thể được khôi phục lại từ các quan hệ con này bằng phép hợp: R = R1  R2   Rk Có hai loại phân mảnh ngang:

o Phân mảnh ngang nguyên thủy (primary horizontal fragmentation): phân mảnh ngang nguyên thủy của một quan hệ được thực hiện dựa trên các vị

từ được định nghĩa trên quan hệ đó

Trang 29

Chương 2 CƠ SỞ LÝ THUYẾT

o Phân mảnh ngang dẫn xuất (derived horizontal fragmentation): phân mảnh ngang dẫn xuất của một quan hệ được thực hiện dựa trên các vị từ được định nghĩa trên quan hệ khác

 Phân mảnh dọc: Phân mảnh dọc một quan hệ tổng thể n-bộ R là tách R thành các quan hệ con R1, R2, , Rk sao cho quan hệ R có thể được khôi phục lại từ các quan hệ con này bằng phép nối:

R = R1 R2 ., Rk

 Phân mảnh hỗn hợp: là kết hợp cả phân mảnh ngang và phân mảnh dọc

 Đánh giá phân mảnh ngang, dọc trong cơ sở dữ liệu đồ thị phân tán:

Dữ liệu Dữ liệu gốc – m dòng Dữ liệu gốc

Khôi phục dữ liệu Phép hợp (U) Phép kết (⋈)

2.4 Xử lý truy vấn phân tán

Quy trình xử lý các câu truy vấn được thể hiện thông qua sơ đồ chung cho xử lý truy vấn phân tán [2]

Trang 30

Chương 2 CƠ SỞ LÝ THUYẾT

Hình 2.3 Sơ đồ phân lớp chung cho xử lý truy vấn phân tán

2.5 Phân mảnh ngang, phân mảnh dọc, phân mảnh hỗn hợp cơ sở dữ liệu đồ thị 2.5.1 Phân mảnh ngang cơ sở dữ liệu đồ thị

Phân tán ngang là hình thức phân tán cơ sở dữ liệu đồ thị theo các đỉnh Việc phân tán ngang sẽ giúp tăng hiệu suất cho hệ thống vì dung lượng của các phân mảnh giảm Tuy nhiên, việc phân mảnh ngang sẽ có một số vấn đề phức tạp trong việc phân chia các phân mảnh như: các phân mảnh phải cân bằng, giảm cắt cạnh, truy vấn dữ liệu giữa các phân mảnh

2.5.2 Phân mảnh dọc cơ sở dữ liệu đồ thị

Phân tán dọc là hình thức phân tán cơ sở dữ liệu đồ thị theo các cạnh (quan hệ) Việc phân tán dọc sẽ giúp cho việc quản lý, phân quyền dữ liệu dễ dàng hơn nhờ việc tách biệt các quan hệ Trong một số trường hợp có thể giảm thời gian truy vấn do dung lượng các phân mảnh giảm Tuy nhiên, phân tán dọc cũng sẽ có vấn đề phức tạp trong xử lý truy

Trang 31

Chương 2 CƠ SỞ LÝ THUYẾT

vấn do các quan hệ nằm ở các phân mảnh khác nhau, cũng như việc tối ưu hóa các truy vấn này Khi dữ liệu mới được thêm vào thì phân mảnh dọc chỉ cần xác định phân mảnh chứa quan hệ cùng loại nút đi kèm để xác định phân vùng cần thêm vào

2.5.3 Phân mảnh hỗn hợp cơ sở dữ liệu đồ thị

Là hình thức phân mảnh kết hợp phân mảnh ngang và phân mảnh dọc cơ sở dữ liệu

đồ thị

Trang 32

Chương 3 KIẾN TRÚC PHÂN MẢNH VÀ XỬ LÝ TRUY VẤN PHÂN TÁN

Chương 3 KIẾN TRÚC PHÂN MẢNH

VÀ XỬ LÝ TRUY VẤN PHÂN TÁN

Chương này trình bày nội dung trọng tâm của luận văn bao gồm kiến trúc phân mảnh

và xử lý truy vấn phân tán Đầu tiên sẽ trình bày kiến trúc phân mảnh đề xuất, đó là phân mảnh dọc cơ sở dữ liệu đồ thị Kiến trúc này sẽ được minh họa một chi tiết thông qua một

ví dụ cụ thể Phần xử lý truy vấn phân tán sẽ bắt đầu bằng việc giới thiệu ý tưởng thuật toán xử lý truy vấn, mã giả chi tiết cho thuật toán Tiếp theo sẽ trình bày cách thức hoạt động chung của module xử lý truy vấn phân tán Sau cùng là thuật toán viết lại truy vấn

và tổng hợp kết quả trả về Đối với việc xử lý truy vấn thì đây là thành phần quan trọng nhất Phần này sẽ giới thiệu các mẫu câu truy vấn sẽ được xử lý Mỗi mẫu câu truy vấn

sẽ đề cập đến dạng mẫu, ý nghĩa của chúng, và cách viết lại truy vấn cũng như cách tổng hợp dữ liệu trả về sau khi thực thi truy vấn trên các phân mảnh

3.1 Kiến trúc phân mảnh

3.1.1 Đề xuất kiến trúc phân mảnh

Đối với cơ sở dữ liệu đồ thị chưa phân tán thì tất cả các quan hệ nằm trên cùng một máy chủ cùng với thông tin về các nút làm ảnh hưởng đến việc quản lý tính riêng tư và bảo mật dữ liệu Việc phân mảnh cơ sở dữ liệu đồ thị, cũng giống như việc phân mảnh cơ

sở dữ liệu quan hệ, mang lại nhiều lợi ích như: - giúp phân quyền và bảo mật dễ hơn nhờ

có thể áp dụng chính sách bảo mật, phân quyền đối với từng mảnh một cách riêng biệt; -

và trong một số trường hợp còn có thể giảm thời gian truy vấn nhờ giảm dung lượng của từng phân mảnh hay nói cách khác là nhờ tăng tỉ lệ truy xuất thành công từ bộ nhớ; Như đã biết thì đối với cơ sở dữ liệu quan hệ có ba phương pháp phân mảnh cơ bản là phương pháp phân mảnh ngang, phương pháp phân mảnh dọc và phương pháp lai.Trong khi đó các công trình mà chúng tôi đã tổng quan ở trên đều tập trung vào việc phân tán

đồ thị theo các đỉnh – đây chính là phương pháp phân mảnh ngang cơ sở dữ liệu đồ thị Nhận thấy phương pháp phân mảnh dọc cơ sở dữ liệu đồ thị cũng sẽ mang lại những lợi ích tương tự như những lợi ích mà nó đã mang lại cho cơ sở dữ liệu quan hệ nên trong nghiên cứu này chúng tôi trình bày một hình thức phân mảnh dọc cơ sở dữ liệu đồ thị -

Trang 33

Chương 3 KIẾN TRÚC PHÂN MẢNH VÀ XỬ LÝ TRUY VẤN PHÂN TÁN

phân mảnh các quan hệ Chúng tôi sẽ trình bày kiến trúc phân mảnh dọc và module xử lý truy vấn phân tán trên hệ quản trị cơ sở dữ liệu đồ thị Neo4j và ngôn ngữ Cypher

Trong nghiên cứu này, kiến trúc phân mảnh dọc được thực hiện trên cơ sở phân tán các quan hệ của cơ sở dữ liệu đồ thị Mỗi phân mảnh sẽ bao gồm một số quan hệ của cơ

sở dữ liệu đồ thị ban đầu cùng với toàn bộ thông tin về các nút có liên quan đến các quan

hệ này Do đó các phân mảnh này sẽ chứa một phần dữ liệu của cơ sở dữ liệu đồ thị ban đầu Hay nói cách khác, các phân mảnh này không phải là bản sao của cơ sở dữ liệu đồ thị ban đầu Các quan hệ không được trùng lắp ở các phân mảnh Mỗi phân mảnh có thể được phân tán ở các thư mục khác nhau hoặc trên các máy tính khác nhau (các nút mạng) được liên kết với nhau qua giao thức HTTP, giống như giao thức được sử dụng bởi API của Neo4j

Trên tất cả các nút mạng sẽ chứa module xử lý phân tán Metadata mô tả kiến trúc phân mảnh sẽ được lưu trữ trên tất cả các nút mạng bao gồm các thông tin sau:

 Thông tin các phân mảnh gồm vị trí các phân mảnh và các quan hệ đi kèm PARTITION = Vị trí phân mảnh thứ nhất # [Quan hệ]{Thuộc tính quan hệ};

Vị trí phân mảnh thứ hai # [Quan hệ]{Thuộc tính quan hệ};

…;

Thông tin các phân mảnh được tách biệt bởi dấu chấm phẩy (;) Vị trí mỗi phân mảnh, được mô tả bởi IP của nút mạng và đường dẫn đến thư mục chứa cơ sở dữ liệu Neo4j, và các quan hệ cách nhau bởi dấu thăng (#) Mỗi quan hệ được đặt trong ngoặc vuông ([]), thuộc tính của quan hệ được đặt trong ngoặc nhọn ({}) Trường hợp phân mảnh có nhiều quan hệ thì các quan hệ này được tách biệt bởi dấu gạch nối (-) Trong

số đó, thông tin về phân mảnh trên chính nút mạng này (phân mảnh trên local) được mô

tả bằng đường dẫn đến thư mục chứa cơ sở dữ liệu Neo4j

 Thông tin các loại nút cùng các thuộc tính

NODE = (Loại nút 1){Thuộc tính của loại nút 1};

(Loại nút 2){Thuộc tính của loại nút 2};

(Loại nút 3){Thuộc tính của loại nút 3}; …;

Trang 34

Chương 3 KIẾN TRÚC PHÂN MẢNH VÀ XỬ LÝ TRUY VẤN PHÂN TÁN

Các loại nút được tách biệt bởi dấu chấm phẩy (;) Tên loại nút được đặt trong dấu ngoặc đơn (), thuộc tính của nút được đặt trong dấu ngoặc nhọn ({})

 Thông tin các quan hệ dùng mô tả quan hệ và các loại nút đi kèm

RELATIONSHIP = (Loại nút 1)-[:Quan hệ 1]->(Loại nút 2);

(Loại nút 3)-[:Quan hệ 2]->(Loại nút 3); …;

Mỗi quan hệ được gắn với một hoặc hai loại nút cố định Các quan hệ được tách biệt bởi dấu chấm phẩy (;)

Kiến trúc phân mảnh dọc được đề xuất ở đây có thể được mở rộng bằng việc cho phép tập các quan hệ trên các phân mảnh khác nhau có thể có phần giao để tăng tính sẵn sàng của hệ thống cũng như tăng khả năng tính toán song song (giúp giảm thời gian xử lý truy vấn) Tuy nhiên trong nghiên cứu này chúng tôi chưa tập trung vào vấn đề tối ưu truy vấn phân tán này Mô hình và module xử lý được đề xuất ở dạng cơ bản nhất Bên cạnh đó vấn đề bảo mật cũng chưa được nghiên cứu để đưa vào thiết kế này

* Đánh giá về phân tán ngang, dọc đối với cơ sở dữ liệu đồ thị phân tán:

 Phân tán ngang là hình thức phân tán cơ sở dữ liệu đồ thị theo các đỉnh Việc phân tán ngang sẽ giúp tăng hiệu suất cho hệ thống vì dung lượng của các phân mảnh giảm Tuy nhiên, việc phân mảnh ngang sẽ có một số vấn đề phức tạp trong việc: phân chia các phân mảnh, các phân mảnh phải cân bằng, giảm cắt cạnh, truy vấn

dữ liệu giữa các phân mảnh (cần phải lấy các dữ liệu từ xa về phục vụ cho việc truy vấn – quy trình xử lý khá tốn kém), tối ưu hóa truy vấn Do đó, khi các nút mới được thêm vào thì phải đảm bảo được các vấn đề trên Vì vậy, đối với phân mảnh ngang thì luôn cần bộ phận phân chia lại các phân mảnh khi có sự thay đổi

dữ liệu

 Phân tán dọc là hình thức phân tán cơ sở dữ liệu đồ thị theo các cạnh (quan hệ) Việc phân tán dọc sẽ giúp cho việc quản lý, phân quyền dữ liệu dễ dàng hơn nhờ việc tách biệt các quan hệ Trong một số trường hợp có thể giảm thời gian truy vấn

do dung lượng các phân mảnh giảm Tuy nhiên, phân tán dọc cũng sẽ có vấn đề phức tạp trong xử lý truy vấn do các quan hệ nằm ở các phân mảnh khác nhau,

Trang 35

Chương 3 KIẾN TRÚC PHÂN MẢNH VÀ XỬ LÝ TRUY VẤN PHÂN TÁN

cũng như việc tối ưu hóa các truy vấn này Khi dữ liệu mới được thêm vào thì phân mảnh dọc chỉ cần xác định phân mảnh chứa quan hệ cùng loại nút đi kèm để xác định phân vùng cần thêm vào Vì vậy, sẽ không cần các bộ phận phân chia lại dữ liệu như đối với phân mảnh ngang Đối với kiến trúc phân tán dọc cơ sở dữ liệu đồ thị đã trình bày thì nghiên cứu cũng đã xây dựng module xử lý truy vấn phân tán

và có thể xử lý được các dạng truy vấn phổ biến của cơ sở dữ liệu đồ thị Neo4j Vì vậy, kiến trúc phân tán dọc cơ sở dữ liệu đồ thị và module xử lý truy vấn phân tán

có thể đưa vào áp dụng thực tiễn

3.1.2 Ví dụ minh họa

Trong nghiên cứu này, các câu truy vấn trong các ví dụ cũng như trong phần kiểm chứng được mô tả cho trường hợp phân tán cơ sở dữ liệu đồ thị trên Neo4j sau đây Cơ

sở dữ liệu đồ thị Movie ban đầu gồm:

 Thông tin nút: gồm hai loại nút

o Person: gồm các thuộc tính như: tên, ngày sinh, nơi sinh,…

o Movie: gồm các thuộc tính như: tựa đề, nội dung, năm phát hành, ngôn ngữ,…

 Thông tin quan hệ: gồm ba quan hệ

o ACTS_IN: liên kết nút Person và Movie Dùng để chỉ định diễn viên trong một bộ phim nào đó Đây là quan hệ có hướng với đỉnh đầu là nút Person, và đỉnh cuối là nút Movie

o DIRECTED: liên kết nút Person và Movie Dùng để chỉ định đạo diễn của một bộ phim nào đó Đây là quan hệ có hướng với đỉnh đầu là nút Person, và đỉnh cuối là nút Movie

o FRIEND: liên kết nút Person và Person Dùng để chỉ định mối quan hệ bạn

bè giữa hai người Đây là quan hệ có hướng với đỉnh đầu là nút Person, và đỉnh cuối là nút Person

Trang 36

Chương 3 KIẾN TRÚC PHÂN MẢNH VÀ XỬ LÝ TRUY VẤN PHÂN TÁN

Hình 3.1 Ví dụ cơ sở dữ liệu đồ thị Movie

Cơ sở dữ liệu này sẽ được phân thành 3 phân mảnh dựa trên 3 quan hệ ACTS_IN, DIRECTED và FRIEND Phân mảnh 1 chứa toàn bộ quan hệ ACTS_IN và toàn bộ nút Person, nút Movie Phân mảnh 2 chứa toàn bộ quan hệ DIRECTED và toàn bộ nút Person, nút Movie Phân mảnh 3 chứa toàn bộ quan hệ FRIEND và toàn bộ nút Person (phân mảnh này không chứa nút dữ liệu của Movie vì quan hệ FRIEND không liên quan gì đến nút Movie)

Trang 37

Chương 3 KIẾN TRÚC PHÂN MẢNH VÀ XỬ LÝ TRUY VẤN PHÂN TÁN

Hình 3.2 Ví dụ các nút mạng chứa các phân mảnh dọc cơ sở dữ liệu đồ thị Movie

Mỗi phân mảnh sẽ được đặt lên một nút mạng như trong hình 1, trong đó:

 Nút mạng PC1 chứa phân mảnh 1 với thông tin metadata như sau:

NODE = (Movie){id,studio,releaseDate, description, language,

title, trailer, imageUrl, genre};

(Person){id, birthday, birthplace, name, biography};

RELATIONSHIP = (Person)-[:ACTS_IN]->(Movie);

(Person)-[:FRIEND]->(Person);

Trang 38

Chương 3 KIẾN TRÚC PHÂN MẢNH VÀ XỬ LÝ TRUY VẤN PHÂN TÁN

 Và nút mạng PC3 chứa phân mảnh 3 với thông tin metadata như sau:

PARTITION =\\192.168.1.10\Neo4j\\Movie1\graph.db#[ACTS_IN]{}; \\192.168.1.11\Neo4j\Movie2\graph.db#[DIRECTED]{};

NODE = (Movie){id,studio,releaseDate, description, language,

title, trailer, imageUrl, genre};

(Person){id, birthday, birthplace, name, biography};

RELATIONSHIP = (Person)-[:ACTS_IN]->(Movie);

(Person)-[:FRIEND]->(Person);

3.2 Module xử lý truy vấn phân tán

3.2.1 Ý tưởng thuật toán

Module xử lý truy vấn phân tán có nhiệm vụ tiếp nhận yêu cầu truy vấn, được viết dưới ngôn ngữ truy vấn Cypher, từ nút mạng nội bộ, thực hiện phân tích truy vấn và thực hiện xử lý để trả lời truy vấn đó giống như khi chưa có sự phân mảnh Để giải quyết việc này chúng tôi đề xuất một thuật toán gồm 3 bước cơ bản:

Bước 1: Phân tích câu truy vấn gốc thành một tập các truy vấn con (cũng được viết dưới ngôn ngữ Cypher), trong đó mỗi truy vấn con chỉ liên quan đến đúng một quan hệ

và mỗi truy vấn con bao gồm tất cả các điều kiện liên quan đến quan hệ đó

Gọi T(r1, r2, …, rm) là truy vấn gốc liên quan đến m quan hệ khác nhau từng đôi một r1, r2, …, rm, với các ri thuộc tập tất cả các quan hệ của cơ sở dữ liệu đồ thị đang xét Truy vấn T sẽ được tách thành n truy vấn con: T1(r1), T2(r2), …, Tm(rm) mỗi truy vấn con lần lượt liên quan đến đúng 1 quan hệ r1, r2, …, rm tương ứng

Bước 2: Gửi các truy vấn con đến từng các nút mạng chứa các quan hệ tương ứng, gọi thực thi thông qua GraphDatabaseService API của Neo4j trên từng nút mạng đó và lấy kết quả về Mỗi truy vấn con Ti(ri) sẽ trả về một kết quả O(Ti)

Bước 3: Tổng hợp các kết quả O(Ti) và tạo ra kết quả O(T) cho truy vấn gốc T

Bước 1 và bước 3 là các giai đoạn xử lý phức tạp, phụ thuộc rất lớn vào dạng câu truy vấn gốc Trong khuôn khổ luận văn này chúng tôi đã nghiên cứu và giải quyết được 3 dạng mẫu câu truy vấn khá phổ biến của Cypher dựa trên cơ sở của phép các toán đại số

Trang 39

Chương 3 KIẾN TRÚC PHÂN MẢNH VÀ XỬ LÝ TRUY VẤN PHÂN TÁN

quan hệ như hợp, giao, kết, … Cách giải quyết các dạng câu truy vấn này chúng tôi sẽ trình bày chi tiết trong phần 3.3 tiếp theo

Việc hiện thực thuật toán trong khuôn khổ luận văn này còn một số hạn chế sau:

 Ở bước 1, chúng tôi chưa xem xét đến việc tối ưu xử lý truy vấn bằng cách cân nhắc việc gộp một số quan hệ, mà tất cả các quan hệ này được chứa trong cùng một phân mảnh nào đó, vào một truy vấn con Việc này giúp giảm số truy vấn con cần xử lý trong bước 2, đồng thời cũng giúp giảm khối lượng xử lý để tạo kết quả cuối cùng O trong bước 3 Nhờ đó có thể giảm đáng kể thời gian xử lý truy vấn

 Ở bước 2, chúng tôi chỉ chọn máy đầu tiên chứa quan hệ cần tìm chứ chưa tính đến việc lựa chọn máy nào trong số các máy chứa cùng một quan hệ (nếu có sự trùng lắp) để có thể thực hiện song song nhằm giảm thời gian xử lý truy vấn Những hạn chế này chúng tôi sẽ hướng đến trong các nghiên cứu tiếp theo

3.2.2 Mã giả chi tiết của thuật toán

Đầu vào: truy vấn từ người dùng

Đầu ra: kết quả thực thi câu truy vấn

Bước 1: If Truy vấn hợp lệ

Đi tiếp Bước 2 Else

Thông báo lỗi

Bước 2: Danh sách mệnh đề = Phân rã truy vấn(Truy vấn)

Danh sách quan hệ = Lấy quan hệ(Truy vấn)

Bước 3: If Danh sách quan hệ > 1

Danh sách truy vấn mới = Viết lại truy vấn(Truy vấn,Danh sách mệnh đề, Danh sách quan hệ)

Else

Thêm Truy vấn vào Danh sách truy vấn mới

Bước 4: If Danh sách truy vấn mới > 1

Danh sách kết quả = Thực thi song song(Danh sách truy vấn mới)

Else

Kết quả = Thực thi truy vấn(Danh sách truy vấn mới)

Bước 5: If Danh sách truy vấn mới > 1

Kết quả = Tổng hợp dữ liệu(Danh sách kết quả)

Trang 40

Chương 3 KIẾN TRÚC PHÂN MẢNH VÀ XỬ LÝ TRUY VẤN PHÂN TÁN

Bước 6: Xuất kết quả

3.2.3 Cách thức hoạt động của module xử lý truy vấn phân tán

Dữ liệu đầu vào là một câu truy vấn Cypher do người dùng nhập vào Câu truy vấn

sẽ được xử lý qua các bước như sau:

 Kiểm tra: bao gồm các kiểm tra tính đúng đắn của các loại nút, quan hệ và các thuộc tính của nút và quan hệ trong câu truy vấn Bên cạnh đó còn có một số kiểm tra về cú pháp để đảm bảo là câu truy vấn là đúng đắn

 Phân rã: câu truy vấn đúng đắn sẽ được phân rã để xác định các thành phần như sau: xác định các mệnh đề (Match, Optional, With, Where, Return, Order By, Limit,…) Các mệnh đề này được xác định thông qua sự xuất hiện của các từ khóa Việc xác định các mệnh đề này được dùng để xác định mẫu câu truy vấn Tiếp theo xác định số quan hệ trong câu truy vấn, việc xác định này là quan trọng vì nó quyết định cách xử lý câu truy vấn Các loại quan hệ trong câu truy vấn được đặt trong dấu ngoặc vuông, phía trước và phía sau đều có dấu gạch nối ( - [quan hệ] - )

 Viết lại truy vấn: được áp dụng cho truy vấn có nhiều quan hệ và các quan hệ này thuộc các phân mảnh khác nhau Việc viết lại truy vấn được căn cứ vào các mẫu truy vấn Kết quả của việc viết lại mẫu câu truy vấn là danh sách các câu truy vấn mới chỉ chứa các quan hệ trên một phân mảnh và các phép toán đại số quan hệ để liên kết từng cặp câu truy vấn với nhau

 Thực thi truy vấn: gồm xác định phân mảnh chứa dữ liệu của truy vấn và thực thi truy vấn Việc thực thi sẽ được tiến hành song song cho trường hợp câu truy vấn chứa nhiều quan hệ thuộc các phân mảnh khác nhau

 Xử lý dữ liệu trả về: được áp dụng cho câu truy vấn được viết lại thành nhiều câu truy vấn mới Xử lý dữ liệu sẽ tiến hành theo từng cặp câu truy vấn với kết quả trả

về tương ứng cùng với phép toán đại số quan hệ đã xác định từ bước viết lại truy vấn Việc này sẽ được lặp qua danh sách câu truy vấn cho đến khi kết thúc

 Xuất dữ liệu cho người dùng

Ngày đăng: 23/12/2018, 06:16

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Domain chứa các tài liệu liên quan đến Neo4j do chính nhà sản xuất cung cấp, https://neo4j.com/ Link
[2] Nicoara, D., Kamali, S., Daudjee, K., & Chen, L. (2015, March). Hermes: Dynamic Partitioning for Distributed Social Network Graph Databases. In EDBT (pp. 25-36) Khác
[3] Chairunnanda, P., Forsyth, S., & Daudjee, K. (2012, June). Graph data partition models for online social networks. In Proceedings of the 23rd ACM conference on Hypertext and social media (pp. 175-180). ACM Khác
[4] Averbuch, A., & Neumann, M. (2013). Partitioning Graph Databases-A Quantitative Evaluation. arXiv preprint arXiv:1301.5121 Khác
[5] Nicoara, D. (2014). Distneo4j: Scaling graph databases through dynamic distributed partitioning, A thesis presented to the University of Waterloo in fulfillment of thethesis requirement for the degree of Master of Mathematics in Computer Science Khác
[6] Ho, L. Y., Wu, J. J., & Liu, P. (2012, June). Distributed graph database for large-scale social computing. In Cloud Computing (CLOUD), 2012 IEEE 5th International Conference on (pp. 455-462). IEEE Khác

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w