ĐẠI HỌC QUỐC GIA TP HCM
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
NGUYỄN DUY TÂN
PHÂN TÁN
CƠ SỞ DỮ LIỆU ĐỒ THỊ TRÊN NEO4J
LUẬN VĂN THẠC SĨ
NGÀNH KHOA HỌC MÁY TÍNH
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
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
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.
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
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
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
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
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
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
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ế.
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
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
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
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
15
Chương 1. TỔNG QUAN
phân mảnh ngang) trong khi vẫn duy trì các phân vùng gần như cân bằng. Ưu điểm chính
của thuật toán là nó chỉ dựa vào một lượng kiến thức nhỏ về cấu trúc đồ thị được gọi là
dữ liệu phụ. Vì dữ liệu phụ nhỏ và dễ cập nhật, thuật toán tái phân vùng đảm bảo về thời
gian và bộ nhớ trong khi vẫn duy trì phân vùng chất lượng cao trong điều kiện đảm bảo
cắt cạnh và cân bằng tải. Một phần mở rộng của cơ sở dữ liệu đồ thị Neo4j được gọi là
Hermes đã được xây dựng bằng cách kết hợp vào nó thuật toán tái phân vùng để cung cấp
các chức năng để di chuyển dữ liệu trực tuyến để đạt được dữ liệu cục bộ và giảm chi phí
của điều khiển từ xa cho dữ liệu đồ thị. Thử nghiệm đánh giá Hermes bằng cách sử dụng
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
16
Chương 1. TỔNG QUAN
trong một kho khóa - giá trị riêng biệt và nhập các khóa ngắn hơn vào cơ sở dữ liệu đồ
thị, một máy chủ duy nhất có thể lưu trữ một đồ thị lớn hơn. Tuy nhiên, vì toàn bộ đồ thị
và các khóa thuộc tính phải vẫn nằm trên một máy chủ duy nhất, số đỉnh và các cạnh vẫn
còn hạn chế bởi dung lượng lưu trữ của một máy chủ duy nhất. Tác giả đã chọn thực hiện
phân vùng trên các đỉnh để loại bỏ các hạn chế về giới hạn vật lý đối với kích thước đồ
thị cho tất cả các đồ thị. PNeo4j là hệ thống mở rộng của cơ sở dữ liệu đồ thị Neo4j để hổ
trợ phân vùng. Việc đánh giá hiệu suất được thực hiện theo một số kịch bản đơn giản và
chứng minh rằng có thể phân vùng cơ sở dữ liệu đồ thị mà không phải trả chi phí đáng kể
ngoài yêu cầu bởi sự chậm trễ của mạng. Bên cạnh đó, việc xác định và thảo luận một số
phương pháp để giảm sự chậm trễ của mạng cũng được khảo sát.
* Đá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
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.
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....
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:
20
Chương 2. CƠ SỞ LÝ THUYẾT
Hình 2.1. Minh họa cơ sở dữ liệu đồ thị
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 (dbengines.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
LEFT JOIN Person_Department
ON Person.Id = Person_Department.PersonId
LEFT JOIN Department
21
Chương 2. CƠ SỞ LÝ THUYẾT
ON Department.Id = Person_Department.DepartmentId
WHERE Department.name = "IT Department"
Trong Cypher:
MATCH (p:Person)<-[:EMPLOYEE]-(d:Department)
WHERE d.name = "IT Department"
RETURN p.name
2.2. Đại số quan hệ
Đạ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}
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
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.
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ố
Chia nhỏ dữ liệu:
o Cơ sở dữ liệu được chia thành các phần nhỏ liên kết nhau (không trùng
lặp).
o Mỗi phần dữ liệu được đưa đến các trạm một cách thích hợp để sử dụng.
Sao lặp dữ liệu:
o Cơ sở dữ liệu được nhân thành nhiều bản từng phần hoặc đầy đủ và được
đặt ở nhiều trạm trên mạng.
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.
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
2.3.3.1. Sơ đồ thiết kế tổng thể
Các bước thiết kế cơ sở dữ liệu phân tán tổng thể được thể hiện qua sơ đồ thiết kế
tổng thể sau [2]:
Thiết kế lược đồ quan hệ tổng
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ý
Hình 2.2. Sơ đồ thiết kế tổng thể
Thiết kế lược đồ quan hệ tổng thể:
o Thiết kế các quan hệ tổng thể
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ế định vị các đoạn:
o Là quá trình thực hiện ánh xạ các đoạn vào các trạm khác nhau
o Tạo các ảnh vật lý tại các trạm.
o Các đoạn dữ liệu được đưa vào các vị trí lưu trữ thích hợp với yêu cầu
hoạt động thực tế của hệ thống.
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
26