Cơ sở dữ liệu (CSDL) phân tán là một lĩnh vực được nghiên cứu từ
lâu, nhưng gần đây do sự phát triển nhanh chóng của công nghệ truyền tin
và mạng interrnet, cùng với xu thế toàn cầu hoá trong mọi lĩnh vực, đặc biệt
trong lĩnh vực phân tán dữ liệu và thiết kế, CSDL phân tán đã trở thành một
lĩnh vực thu hút nhiều sự quan tâm của các nhà nghiên cứu trong lĩnh vực
CNTT.
Khái niệm phân tán (hoặc phân mảnh) ở đây được hiểu là phân tán thông
tin và các thông tin đó được chứa trên các máy tính ở các vị trí khác nhau của
một hệ thống máy tính có liên hệ với nhau được gọi là mạng máy tính. Việc
phân mảnh sẽ làm tăng mức độ hoạt động đồng thời (song song) và như thế làm
tăng lưu lượng hoạt động của hệ thống.
Việc phân mảnh được tiến thành theo 2 cách ngang và dọc. Trong đó
việc chia dọc một quan hệ thành các quan hệ con chứa một tập con các thuộc
tính của quan hệ gốc được gọi là phân mảnh dọc. Việc phân mảnh dọc có nhiều
đặc trưng (đặc tính) quan trọng đã và đang được tập trung nghiên cứu ở trong
cũng như ngoài nước cả về mặt lý luận cũng như ứng dụng thực tiễn. Đặc biệt
trong lĩnh vực thiết kế, cho phép các vấn tin ảnh hưởng đến các quan hệ nhỏ
hơn, vì thế giảm bớt truy xuất và tiết kiệm bộ nhớ.
Phân mảnh dọc được nghiên cứu trong ngữ cảnh của các hệ CSDL cả tập
trung và phân tán. Tuy CSDL phân tán được phát triển từ CSDL tập trung
nhưng nó vẫn có những ứng dụng gía trị để thiết kế CSDL tập trung.
Với mong muốn nắm vững hơn các tri thức phục vụ công tác nghiên cứu
chuyên môn cũng như áp dụng vào đời sống kinh tế -xã hội cùng với sự gợi ý
của Thầy hướng dẫn, tôi đã lựa chọn đề tài "
ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
VŨ XUÂN OANH
NGHIÊN CỨU CÁC ĐẶC TÍNH
CỦA PHÂN MẢNH DỌC TRONG CSDL PHÂN TÁN
VÀ ỨNG DỤNG
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
THÁI NGUYÊN, NĂM 2020
ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
VŨ XUÂN OANH
NGHIÊN CỨU CÁC ĐẶC TÍNH
CỦA PHÂN MẢNH DỌC TRONG CSDL PHÂN TÁN
VÀ ỨNG DỤNG
Chuyên ngành: Khoa học máy tính
Mã số: 84 8 01 01
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
NGƯỜI HƯỚNG DẤN KHOA HỌC
TS. LÊ VĂN PHÙNG
THÁI NGUYÊN, NĂM 2020
i
LỜI CAM ĐOAN
Tôi xin cam đoan toàn bộ nội dung luận văn này là do tôi tự sưu tầm, tra
cứu thông tin trên mạng Internet, trong một số sách tham khảo để sắp xếp, hoàn
thiện cho phù hợp với nội dung yêu cầu của đề tài.
Đến nay, nội dung luận văn của tôi chưa từng được công bố hay xuất bản
dưới bất kỳ hình thức nào. Nếu sai tôi xin chịu hoàn toàn trách nhiệm.
Ngày 7 tháng 11 năm 2020
Tác giả
Vũ Xuân Oanh
ii
LỜI CẢM ƠN
Trong suốt quá trình học tập và thực hiện đề tài, em đã nhận được sự
giúp đỡ tận tình và những chỉ bảo ân cần của các Thày cô trong viện Công nghệ
thông tin – Viện khoa học và công nghệ Việt nam, các Thày cô trong trường
đại học Công nghệ Thông tin và Truyền thông, cùng các bạn bè đồng nghiệp.
Đặc biệt là sự giúp đỡ của TS Lê Văn Phùng, người thầy trực tiếp hướng dẫn,
đưa ra ý tưởng, định hướng, chỉnh sửa các kiến thức chuyên môn và tận tình
giúp đỡ em trong suốt quá trình nghiên cứu và thực hiện luận văn.
Qua đây cho phép em được bày tỏ lời cảm ơn tới tất cả các thầy cô giáo
ở Viện Công nghệ thông tin và Trường Đại học Công nghệ Thông tin và Truyền
thông, đã giảng dạy và tạo mọi điều kiện thuận lợi giúp đỡ chúng em trong quá
trình học tập, nghiên cứu.
Cuối cùng, tôi xin cảm ơn đến gia đình, các bạn bè đồng nghiệp đã chia
sẻ động viên giúp đỡ tôi về chuyên môn cũng như về mọi mặt trong cuộc sống,
đó là nguồn động viên khích lệ giúp tôi có nghị lực hơn để hoàn thành khoá
học.
Học viên
Vũ Xuân Oanh
iii
MỤC LỤC
LỜI CAM ĐOAN ............................................................................................. i
LỜI CẢM ƠN .................................................................................................. ii
MỤC LỤC ....................................................................................................... iii
DANH MỤC CÁC BẢNG VÀ CÁC HÌNH .................................................. v
TRONG LUẬN VĂN ...................................................................................... v
LỜI MỞ ĐẦU .................................................................................................. 1
Chương 1. TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU PHÂN TÁN VÀ PHÂN
MẢNH .............................................................................................................. 1
1.1. Những nét chung nhất về cơ sở dữ liệu phân tán.................................... 3
1.2. Vấn đề phân mảnh trong cơ sở dữ liệu phân tán .................................... 8
1.2.1. Lý do phân mảnh .......................................................................... 8
1.2.2. Giải pháp phân mảnh .................................................................... 9
1.2.3. Mức độ phân mảnh ....................................................................... 9
1.2.4. Các quy tắc phân mảnh ................................................................. 10
1.2.5. Các chiến lược phân mảnh ............................................................ 11
Chương 2. CÁC ĐẶC TÍNH CỦA PHÂN MẢNH DỌC .......................... 13
2.1. Định hướng heuristic để phân mảnh dọc .............................................. 13
2.2. Đặc tính có nối không mất thông tin..................................................... 14
2.2.1. Khái niệm có nối không mất thông tin ......................................... 14
2.2.2. Thuật toán kiểm tra tính nối không mất thông tin ........................ 15
2.2.3. Thuật toán phân mảnh dọc có nối không mất thông tin ............... 18
2.3. Đặc tính bảo toàn phụ thuộc ................................................................. 20
2.3.1.Định nghĩa phân mảnh dọc bảo toàn phụ thuộc ............................ 20
2.3.4. Thuật toán kiểm tra phân mảnh dọc có nối không mất thông tin và
bảo toàn phụ thuộc .................................................................................. 23
2.4. Phân mảnh dọc thành các BCNF, bảo toàn phụ thuộc, nối không mất
thông tin ....................................................................................................... 26
2.4.1. Một số mệnh đề bổ trợ .................................................................. 27
iv
2.4.2. Thuật toán phân mảnh lược đồ quan hệ thành các BCNF, có nối
không mất thông tin ................................................................................ 27
2.4.3. Thuật toán phân mảnh thành các BCNF, có bảo toàn phụ thuộc . 32
2.4.4. Thuật toán phân mảnh dọc thành các BCNF, có nối không mất
thông tin và bảo toàn phụ thuộc .............................................................. 33
Chương 3. ỨNG DỤNG THIẾT KẾ CSDL VỀ THÔNG TIN CÁC
CUNG ĐƯỜNG BỘ TRÊN ĐỊA BÀN LẠNG SƠN .................................. 36
3.1. Bài toán quản lý thông tin các cung đường bộ trên địa bàn TP. Lạng Sơn... 36
3.1.1. Giới thiệu Thành phố Lạng Sơn ................................................... 36
3.1.2. Hiện trạng quản lý thông tin các cung đường bộ trên địa bàn TP.
Lạng Sơn ................................................................................................. 37
3.2. Thuật toán sử dụng và xác định dữ liệu đầu vào .................................. 38
3.2.1. Thuật toán sử dụng........................................................................ 38
3.2.2. Dữ liệu đầu vào ............................................................................. 38
3.3. Môi trường thử nghiệm ......................................................................... 40
3.4. Nội dung và kết quả thử nghiệm ........................................................... 41
3.4.1. Nội dung thiết kế cơ sở dữ liệu các cung đường TP. Lạng Sơn .. 41
3.4.2. Phương án đề xuất phân mảnh dữ liệu (nếu có yêu cầu xây dựng
CSDL phân tán) ...................................................................................... 46
3.4.3. Một số giao diện chính .................................................................. 51
3.4.4. Hướng dẫn sử dụng chương trình thử nghiệm ............................. 53
3.5. Đánh giá chương trình thử nghiệm ....................................................... 58
PHẦN KẾT LUẬN ........................................................................................ 62
TÀI LIỆU THAM KHẢO ............................................................................ 63
v
DANH MỤC CÁC BẢNG VÀ CÁC HÌNH
TRONG LUẬN VĂN
Bảng 3.1.Bảng so sánh nội dung các bước trong quy trình thiết kế CSDL mức
logic ................................................................................................................. 59
Hình 1.1. Minh họa về một DDBS.................................................................... 7
Hình 1.2. CSDL tập trung, không phải là DDBS.............................................. 8
Hình 2.1. Một bảng gồm hai hàng tổng quát .................................................. 17
Hình 3.1. Mô hình Thực thể- Mối quan hệ (Mô hình E_R): .......................... 45
Hình 3.2. Sơ đồ định vị của các mảnh tại các vị trí ........................................ 48
Hình 3.3. Các mảnh và hình ảnh vật lý của một quan hệ tổng thể ................. 49
Hình 3.4. Mô hình mạng của hệ thống quản lí các cung đường ..................... 50
Hình 3.5. Giao diện trang chủ ......................................................................... 51
Hình 3.6.Giao diện nhập liệu .......................................................................... 51
Hình 3.7. Giao diện tìm khóa .......................................................................... 52
Hình 3.8. Giao diện phân mảnh thành hệ lược đồ đạt 3NF ............................ 52
Hình 3.9. Các bước thiết kế CSDL mức logic trong mô hình CSDL tập trung
......................................................................................................................... 59
1
LỜI MỞ ĐẦU
Cơ sở dữ liệu (CSDL) phân tán là một lĩnh vực được nghiên cứu từ
lâu, nhưng gần đây do sự phát triển nhanh chóng của công nghệ truyền tin
và mạng interrnet, cùng với xu thế toàn cầu hoá trong mọi lĩnh vực, đặc biệt
trong lĩnh vực phân tán dữ liệu và thiết kế, CSDL phân tán đã trở thành một
lĩnh vực thu hút nhiều sự quan tâm của các nhà nghiên cứu trong lĩnh vực
CNTT.
Khái niệm phân tán (hoặc phân mảnh) ở đây được hiểu là phân tán thông
tin và các thông tin đó được chứa trên các máy tính ở các vị trí khác nhau của
một hệ thống máy tính có liên hệ với nhau được gọi là mạng máy tính. Việc
phân mảnh sẽ làm tăng mức độ hoạt động đồng thời (song song) và như thế làm
tăng lưu lượng hoạt động của hệ thống.
Việc phân mảnh được tiến thành theo 2 cách ngang và dọc. Trong đó
việc chia dọc một quan hệ thành các quan hệ con chứa một tập con các thuộc
tính của quan hệ gốc được gọi là phân mảnh dọc. Việc phân mảnh dọc có nhiều
đặc trưng (đặc tính) quan trọng đã và đang được tập trung nghiên cứu ở trong
cũng như ngoài nước cả về mặt lý luận cũng như ứng dụng thực tiễn. Đặc biệt
trong lĩnh vực thiết kế, cho phép các vấn tin ảnh hưởng đến các quan hệ nhỏ
hơn, vì thế giảm bớt truy xuất và tiết kiệm bộ nhớ.
Phân mảnh dọc được nghiên cứu trong ngữ cảnh của các hệ CSDL cả tập
trung và phân tán. Tuy CSDL phân tán được phát triển từ CSDL tập trung
nhưng nó vẫn có những ứng dụng gía trị để thiết kế CSDL tập trung.
Với mong muốn nắm vững hơn các tri thức phục vụ công tác nghiên cứu
chuyên môn cũng như áp dụng vào đời sống kinh tế -xã hội cùng với sự gợi ý
của Thầy hướng dẫn, tôi đã lựa chọn đề tài "Nghiên cứu các đặc tính của phân
2
mảnh dọc trong CSDL phân tán và ứng dụng" để làm luận văn tốt nghiệp
thạc sĩ. Luận văn này tập trung vào việc nghiên cứu các đặc trưng của phân
mảnh dọc và áp dụng để thiết kế CSDL quản lý thông tin cung đường tỉnh Lạng
Sơn, nơi tôi đang sống và công tác.
3
Chương 1. TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU PHÂN TÁN VÀ
PHÂN MẢNH
1.1. Những nét chung nhất về cơ sở dữ liệu phân tán
Cơ sở dữ liệu (CSDL) phân tán là một tập hợp các dữ liệu phục thuộc
logic lẫn nhau của cùng một hệ thống và được lưu trữ trên các trạm của một
mạng máy tính. CSDL phân tán làm tăng khả năng truy nhập tới CSDL lớn
trên mạng. Trong hệ thống đó mỗi máy tính quản lý một CSDL thành phần
được gọi là 1 node hoặc site.
Hệ quản trị CSDL phân tán (DBMS) là phần mềm quản trị CSDL, đảm
bảo trong suốt đối với người sử dụng và cho phép tính tự trị nghĩa là mỗi cơ
sở dữ liệu thành phần vẫn được quản trị độc lập và riêng biệt [5].
Định nghĩa này nhấn mạnh 2 khía cạnh quan trọng của CSDL phân tán:
1- Tính phân tán: thực tế dữ liệu không cư trú ở cùng một trạm, vì vậy
chúngta có thể phân biệt một CSDL phân tán với CSDL tập trung.
2- Sự tương quan logic: Các dữ liệu có một số tính chất ràng buộc lẫn
nhauvà như vậy có thể phân biệt CSDL phân tán với tập các CSDL địa phương
hoặc với các tệp ở các trạm khác nhau trên mạng.
3 - Các đặc trưng trong suốt của CSDL phân tán thể hiện ở chỗ:
+Trong suốt phân tán: Cho phép xử lý dữ liệu trên hệ CSDL phân tán giống
như đối với CSDL tập trung. Người sử dụng (NSD) không cần biết dữ liệu đã
được phân mảnh như thế nào, các bản sao dữ liệu để ở đâu, vị trí vật lý lưu trữ
dữ liệu ở đâu. Trong suốt phân tán thể hiện:
+ Trong suốt địa điểm: NSD không cần biết lưu trữ vật lý của dữ liệu ở
đâu, mà có quyền truy cập đến CSDL tại bất cứ nút nào trên mạng. Trong truy
vấn chỉ cần chỉ ra tên dữ liệu mà không cần chỉ ra vị trí. Các thao tác để lấy
hoặc cập nhật một dữ liệu từ xa được tự động thực hiện bởi hệ thống tại địa
điểm đưa ra yêu cầu. Tính trong suốt về vị trí rất hữu ích, nó cho phép người
4
dùng bỏ qua các bản sao dữ liệu đã tồn tại ở mỗi vị trí. Do đó có thể di chuyển
một bản sao dữ liệu từ một nút này đến một nút khác và cho phép tạo các bản
sao mới mà không ảnh hưởng tới các ứng dụng;
+ Trong suốt tên: Khi một đối tượng đã được đặt tên thì có thể truy nhập
chính xác không cần đặc tả thêm;
+ Trong suốt bản sao: Sự nhân bản là quá trình sao chép và duy trì dữ liệu
trong hệ CSDL phân tán. Cùng một dữ liệu (được lưu trữ vật lý tại một vị trí)
có thể sử dụng được trên nhiều vị trí khác nhau. Các bản sao có thể được lưu
trữ trên nhiều nút làm tăng hiệu suất, độ tin cậy và tính sẵn sàng của hệ thống.
Các ứng dụng có thể truy nhập dữ liệu tại các nút mà không cần phải truy cập
từ xa giảm truyền tải trên mạng lớn. Hệ thống cho phép tiếp tục thực hiện nếu
như các nút từ xa có sự cố. Trong suốt bản sao bảo đảm NSD không biết đó là
các bản sao vì dữ liệu luôn được cập nhật và đồng bộ với dữ liệu gốc.
- Trong suốt phân mảnh: Một quan hệ trong CSDL phân tán có thể phân
mảnh ngang hoặc phân mảnh dọc nghĩa là được tách thành các bộ dữ liệu hoặc
các quan hệ con và lưu trữ trên nhiều nút khác nhau. Trong suốt phân mảnh cho
phép NSD không cần biết có sự phân mảnh, các truy vấn dữ liệu vẫn được viết
như CSDL tập trung.
- Trong suốt giao dịch: CSDL phân tán cho phép một giao dịch có thể cập
nhật, sửa đổi dữ liệu trên các nút khác nhau.
- Trong suốt thất bại: Đảm bảo tại một nút của hệ thống bị hỏng thì hệ
thống vẫn làm việc bình thường (do cơ chế tạo bản sao hoặc làm việc trên các
nút không bị sự cố).
- Trong suốt thao tác: Cho phép các câu lệnh thao tác các dữ liệu đơn giản
để truy nhập được các CSDL tại nút cục bộ hoặc nút từ xa. Các thao tác xử lý
dữ liệu từ xa không phức tạp và đảm bảo vẫn giống như khi thao tác dữ liệu
trên hệ CSDL không phân tán.
5
- Trong suốt về tính không thuần nhất: Cho phép hỗn hợp nhiều hệ quản trị
CSDL khác nhau với các khả năng trao đổi dữ liệu, xử lý cập nhật dữ liệu, xử
lý giao tác phân tán trên toàn hệ thống.
4- Đối với CSDL tập trung, tính dư thừa hạn chế được càng nhiều càng tốt.
Trong khi đó, CSDL phân tán có tính dư thừa dữ liệu vì:
- Tính cục bộ của chương trình ứng dụng sẽ tăng nếu dữ liệu đặt ở nhiều
nơi mà chương trình ứng dụng cần.
- Khả năng sẵn sàng của hệ thống cao bởi vì khi có lỗi ở một nơi nào đó
trong hệ thống thì không ảnh hưởng đến hoạt động của chương trình ứng
dụng.
5. Trong CSDL phân tán, dữ liệu được chia ra thành nhiều phần nhỏ và chỉ
có một bản sao logic tổng thể duy nhất để tiện cho việc truy xuất dữ liệu; cấu
trúc truy xuất phức tạp không phải là công cụ chính để truy xuất hiệu quả (hiệu
quả theo nghĩa là thời gian tìm kiếm và chuyển dữ liệu nhỏ nhất, chi phí truyền
thông thấp nhất). Mỗi cách thức truy xuất CSDL phân tán được người lập trình
viết hoặc tạo ra bởi một bộ tối ưu. Cách viết và truy cập CSDL phân tán cũng
giống như viết chương trình duyệt trong CSDL tập trung. Công việc mà chương
trình duyệt này làm là xác định xem có thể truy cập đến được bao nhiêu CSDL
con.
6. Trong CSDL phân tán, vấn đề điều khiển giao tác tự trị có ý nghĩa quan
trọng. Giao tác tự trị là phương tiện đạt được sự toàn vẹn trong CSDL; Mặt
khác, vấn đề an toàn CSDL cũng phức tạp hơn vì còn liên quan đến mạng truyền
thông.
CSDL phân tán có một số ưu và nhược điểm sau:
6
1. Ưu điểm:
Tính hữu dụng cơ bản nhất của CSDL phân tán là dữ liệu của các CSDL
vật lý riêng biệt được tích hợp logic với nhau giúp NSD trên mạng có thể truy
nhập được. Nó có khả năng:
- Cho phép quản lý dữ liệu với nhiều mức trong suốt. Hệ quản trị CSDL
phân tán cung cấp khả năng trong suốt phân tán với ý nghĩa che giấu đặc tính
phân tán với NSD.
- Tăng độ tin cậy và khả năng sẵn sàng. Đối với CSDL tập trung thì CSDL
được đặt tại một nút nên khi có sự cố sẽ khó khôi phục và khó xử lý, bị ngừng
khả năng làm việc khi gặp sự cố. Đối với CSDL phân tán thì độ tin cậy ở đây
là hệ thống đang làm việc (không bị ngừng) tại thời điểm nào đó, tính sẵn sàng
của hệ thống vẫn tiếp tục làm việc. Khi dữ liệu và CSDL phân tán trên một vài
nút, một nút có thể gặp sự cố trong khi các nút khác vẫn có thể hoạt động hoặc
sử dụng các thành phần khác của CSDL. Chỉ trên các nút bị sự cố, dữ liệu và
ứng dụng không thể truy cập được. Để nâng cao độ tin cậy và tính sẵn sàng, có
thể áp dụng cơ chế tạo bản sao trên nhiều nút.
- Cải thiện hiệu năng, do dữ liệu của CSDL phân tán được đặt gần nơi xử
lý nên hiệu năng được cải thiện đáng kể.
- Cho phép thêm CSDL mới, tăng kích cỡ CSDL, thêm bộ xử lý, thêm các
CSDL thành phần trong CSDL phân tán.
2. Nhược điểm:
- Độ phức tạp thiết kế và cài đặt hệ thống tăng: Hệ quản trị CSDL phân tán
phải bổ sung thêm các chức năng như:
+ Theo dõi dấu vết dữ liệu;
+ Xử lý các truy vấn phân tán;
+ Quản lý giao dịch phân tán;
+ Phục hồi CSDL phân tán;
7
+ Quản lý các bản sao;
+ Quản lý thư mục - catalog phân tán.
- Khó điều khiển tính nhất quán về dữ liệu;
- Các phần mềm hệ thống đảm bảo quản trị, duy trì kết nối, trao đổi dữ liệu
trên mạng là rất khó khăn;.
- Bảo mật khó khăn.
Ở mức vật lý, những đặc trưng phân tán được thể hiện rõ:
- Có nhiều máy tính được gọi là các nút/trạm;
- Các nút này phải được kết nối bởi một kiểu mạng truyền thông để truyền
dữ liệu và những câu lệnh giữa các nút với nhau. Mỗi nút có thể truy nhập dữ
liệu ở các nút khác.
Khác với mô hình dữ liệu tập trung (tài nguyên tập trung tại một máy tính),
CSDL trong hệ thống CSDL phân tán được chứa trong nhiều máy tính (nút),
các máy tính này được nối với nhau qua các hệ thống truyền thông và chúng
không chia sẻ bộ nhớ chung cũng như không dùng chung đồng hồ. Các bộ xử
lý trong hệ thống phân tán có kích cỡ và chức năng khác nhau (chẳng hạn có
thể bao gồm các bộ vi xử lý, trạm làm việc, máy tính mini, hay các máy lớn
vạn năng).
Workstation 1
Workstation 2
Workstation 5
CSDL
Workstation 4
CSDL
M¹truyền
ng truy
Ònliệu
Mạng
số
d÷ liÖu
CSDL
Workstation 3
CSDL
Hình 1.1. Minh họa về một DDBS
8
Chú ý rằng, nếu CSDL nằm tại một nút mạng thì hệ thống đó không phải
là DDBS:
Workstation 1
Workstation 2
Workstation 5
Mạng truyền
dữ liệu
Workstation 4
Workstation 3
Hình 1.2. CSDL tập trung, không phải là DDBS
1.2. Vấn đề phân mảnh trong cơ sở dữ liệu phân tán
Trong quá trình thiết kế, các quan hệ được phân mảnh thành các quan hệ
nhỏ hơn. Các câu hỏi có tương hỗ lẫn nhau được quan tâm gồm:
1. Tại sao lại cần phân mảnh?
2. Chúng ta nên phân mảnh như thế nào?
3. Chúng ta nên phân thành bao nhiêu mảnh?
4. Có cách nào để kiểm tra tính chính xác của sự phân mảnh?
5. Chúng ta nên cấp phát các mảnh như thế nào cho các nút?
6. Thông tin cần thiết cho phân mảnh và cấp phát là gì?
1.2.1. Lý do phân mảnh
Theo quan điểm phân tán dữ liệu, không phân mảnh giá trị dữ liệu. Trong
các hệ thống tệp phân tán, việc phân tán được thực hiện trên cơ sở toàn bộ các
tập tin.
Đối với phân mảnh, vấn đề quan trọng là đơn vị phân tán thích hợp. Một
quan hệ không phải là một đơn vị phù hợp. Vì sao vậy?. Lý do thứ nhất, việc
truy cập các ứng dụng tại các nút được xác định không phải trên toàn bộ quan
hệ mà chỉ trên các tập con của chúng. Lý do thứ hai, nếu các ứng dụng có các
9
khung nhìn đã xác định trên một quan hệ nhất định ở các nút khác nhau thì việc
phân mảnh giúp ích cho việc không phải truy cập dữ liệu từ xa, không gây ra
các rắc rối trong cập nhật và không gặp vấn đề giới hạn lưu trữ của kho. Lý do
cuối cùng, sự phân mảnh kéo theo khả năng truy vấn song song, do đó làm tăng
mức độ xử lý đồng thời.
Tuy vậy, việc phân mảnh cũng gây ra nhiều khó khăn. Nếu các ứng dụng
có các yêu cầu mâu thuẫn ngăn cản việc tách quan hệ thành các quan hệ con
riêng biệt, các ứng dụng mà quan điểm được xác định trên nhiều hơn một quan
hệ con có thể bị giảm hiệu suất. Chẳng hạn, việc lấy dữ liệu từ hai mảnh và kết
nối chúng là rất phức tạp. Cực tiểu hoá các liên kết đã phân tán là một bài toán
cơ bản về phân mảnh.
Vấn đề thứ hai liên quan đến kiểm soát ngữ nghĩa dữ liệu, đặc biệt là để
kiểm tra tính toàn vẹn. Do phân mảnh, các thuộc tính có thể bị phân bổ trong
các quan hệ con khác nhau tại các nút khác nhau.
1.2.2. Giải pháp phân mảnh
Mô hình quan hệ được biểu diễn ở dạng bảng, vì vậy vấn đề là tìm ra những
cách chia một bảng thành các bảng nhỏ hơn. Rõ ràng có hai lựa chọn: chia nó
theo chiều ngang (horizontal) hoặc theo chiều dọc (vertical).
1.2.3. Mức độ phân mảnh
Quyết định mức độ phân mảnh CSDL là một quyết định quan trọng ảnh
hưởng đến việc thực hiện truy vấn. Trên thực tế, các vấn đề liên quan đến lý
do phân mảnh là một tập con của các câu trả lời cho câu hỏi chúng ta đang
giải quyết ở đây. Mức độ phân mảnh đi từ một cực, nghĩa là không phân
mảnh, sang cực khác, để phân mảnh đến mức từng bộ (trong trường hợp phân
mảnh ngang) hoặc với mức mỗi thuộc tính (trong trường hợp phân mảnh
dọc).
10
Tất nhiên, sự phân mảnh có thể được lồng nhau. Nếu tổ hợp theo nhiều
kiểu, người ta sẽ nhận cách phân mảnh hỗn hợp. Mặc dù chúng ta không coi
phân mảnh hỗn hợp là một chiến lược phân mảnh nguyên thủy, nhiều phân
vùng thực tế có thể là hỗn hợp.
Chúng ta đã biết về các bất lợi của các đơn vị phân mảnh rất lớn và rất nhỏ.
Điều mà chúng ta cần là tìm ra mức độ phân mảnh phù hợp là sự thỏa hiệp giữa
hai thái cực. Mức độ như vậy chỉ có thể được xác định đối với các ứng dụng sẽ
hoạt động trên CSDL. Vấn đề là làm thế nào? Nói chung, các ứng dụng cần
phải được đặc trưng với một số tham số. Các mảnh riêng lẻ có thể được xác
định theo các giá trị của các tham số này. Trong phần sau chúng ta sẽ mô tả các
đặc tính này có thể được thực hiện như thế nào cho các kiểu phân mảnh đã lựa
chọn
1.2.4. Các quy tắc phân mảnh
Chúng ta sẽ thực thi ba quy tắc đồng thời sau trong quá trình phân mảnh để
bảo đảm rằng CSDL không bị thay đổi ngữ nghĩa trong quá trình phân mảnh
[5].
1. Tính đầy đủ (completeness). Nếu một quan hệ R bị phân mảnh thành n
quan hệ con FR = {R1, R2,. . . , Rn}, mỗi thuộc tính trong R cũng có thể được
tìm thấy trong một hoặc nhiều hơn các Ri. Đặc tính này bảo đảm rằng các dữ
liệu trong một quan hệ toàn cục được ánh xạ thành các quan hệ con mà không
bị tổn thất. Lưu ý rằng trong trường hợp phân mảnh ngang, người ta thường
nhắm đến một “bộ”, trong khi trong trường hợp phân mảnh theo chiều dọc,
nhắm đến một “thuộc tính”.
2. Tính tái thiết (reconstruction). Nếu một quan hệ R được phân mảnh
thành n mảnh FR = {R1, R2, . . . , Rn}, thì có thể xác định một toán tử quan hệ
sao cho: R =Ri, Ri FR
11
Toán tử sẽ khác nhau cho các dạng phân mảnh khác nhau (ngang hay
dọc); Tuy nhiên, điều quan trọng là nó có thể xác định được. Khả năng tái cấu
trúc lại quan hệ từ các mảnh của nó bảo đảm rằng các ràng buộc xác định trên
dữ liệu sẽ được duy trì.
3. Tính tách rời (disjointness). Nếu một quan hệ R được phân mảnh theo
chiều ngang thành n mảnh FR = {R1, R2,..., Rn} và bộ dữ liệu (bản ghi) tj nằm
trong Rj thì nó không nằm trong bất kỳ quan hệ con Rk khác (k ≠ j) để bảo đảm
các mảnh ngang là rời nhau. Nếu quan hệ R được phân mảnh theo chiều dọc,
thì các khóa chính của nó phải lặp lại trong tất cả các mảnh của nó (để tái thiết).
Do đó, trong trường hợp phân mảnh dọc, sự tách rời chỉ được xác định trên các
thuộc tính không phải là khóa chính của quan hệ.
1.2.5. Các chiến lược phân mảnh
Có hai chiến lược phân mảnh cơ bản: ngang và dọc. Từ đó, có thể mở rộng
thành chiến lược tích hợp phân mảnh kiểu lai ghép (hybrid) [5].
1. Phân mảnh ngang
Phân mảnh ngang phân rã một quan hệ bằng cách cắt khúc quan hệ đó. Do
đó mỗi khúc có một tập con giá trị của các bộ trong quan hệ. Như vậy, phân
mảnh ngang chính là việc chia quan hệ thành nhiều nhóm bộ. Kết quả của quá
trình phân mảnh ngang là các quan hệ con, số lượng quan hệ con phụ thuộc vào
điều kiện ràng buộc của các thuộc tính. Và các bộ trong các quan hệ con là tách
biệt nhau. Phân mảnh ngang thực chất là phép chọn quan hệ thỏa mãn một biểu
thức điều kiện cho trước.
Có hai kỹ thuật phân mảnh ngang: nguyên thủy (primary) và dẫn xuất
(derived). Phân mảnh ngang nguyên thủy của một quan hệ được thực hiện bằng
cách sử dụng các vị từ (predicate) được định nghĩa trên chính quan hệ đó. Còn
phân mảnh ngang dẫn xuất là sự phân rã quan hệ nhờ các vị từ được định nghĩa
trên quan hệ khác.
12
2. Phân mảnh dọc
Phân mảnh dọc (Vertical Fragmentation) một quan hệ R là việc phân mảnh
để tạo ra các mảnh con R1, R2,..., Rrmà mỗi mảnh con chứa một tập con các
thuộc tính của R cùng với khóa chính của R. Mục tiêu của phân mảnh dọc là
chia một quan hệ thành một tập các quan hệ nhỏhơn để nhiều ứng dụng có thể
thực hiện trên một mảnh. Như vậy, phân mảnh "tối ưu" là sinh ra một lược đồ
phân mảnh để giảm thiểu thời gian thực hiện của các ứng dụng chạy trên các
mảnh này.
Phân mảnh dọc cho phép các truy vấn với quan hệ nhỏ hơn, do đó dẫn đến
một số lượng nhỏ các truy cập đến nút.
13
Chương 2. CÁC ĐẶC TÍNH CỦA PHÂN MẢNH DỌC
2.1. Định hướng heuristic để phân mảnh dọc
Một phân mảnh dọc cho một quan hệ r (có R thuộc tính) sinh ra các mảnh
r1,r2,...rk, mỗi mảnh chứa một tập con thuộc tính của R và cả khóa của r. Mục
đích của phân mảnh dọc là phân hoạch một quan hệ thành tập các quan hệ nhỏ
hơn để nhiều ứng dụng có thể chỉ chạy trên 1 quan hệ. Trong ngữ cảnh này,
một phân mảnh “tối ưu” là một phân mảnh sinh ra một lược đồ phân mảnh cho
phép giảm tối đa thời gian thực thi các ứng dụng chạy trên các mảnh đó.
Phân mảnh dọc đã được nghiên cứu trong ngữ cảnh của các hệ CSDL tập
trung lẫn phân tán. Lý do chính trong ngữ cảnh tập trung là sử dụng nó làm một
công cụ thiết kế, cho phép các vấn tin ảnh hưởng đến các quan hệ nhỏ hơn, vì
thế giảm bớt số truy xuất và tiết kiệm bộ nhớ. Phân mảnh dọc tất nhiên phức
tạp hơn so với phân mảnh ngang vì do tổng số chọn lựa có thể có của phân
hoạch dọc rất lớn.
Để có được các lời giải tối ưu cho bài toán phân mảnh dọc thực sự rất khó
nên người ta đã đưa ra 2 loại heuristic cho phân mảnh dọc một quan hệ[8]:
1.Nhóm thuộc tính: bắt đầu bằng cách gán mỗi thuộc tính cho một mảnh,
và tại mỗi bước, nối một số mảnh lại cho đến khi thỏa mãn một tiêu chuẩn nào
đó. Kỹ thuật nhóm thuộc tính được Hammer and Niamir đề xuất lần đầu năm
1979 cho các CSDL tập trung và về sau được Sacca và Wiederhold dùng năm
1985 cho các CSDL phân tán.
2.Tách mảnh: bắt đầu bằng một quan hệ và quyết định cách phân mảnh
có lợi dựa trên hành vi truy xuất của các ứng dụng trên các thuộc tính. kỹ thuật
này được Hoffer and Severance thảo luận lần đầu tiên cho thiết kế CSDL tập
trung năm1975, sau đó được Navathe và các đồng tác giả mở rộng cho môi
trường phân tán năm 1984.
- Xem thêm -