Mục đích nghiên cứu Đề tài phân tích, trình bày một cách có hệ thống các nghiên cứu về cơ sở dữ liệu quan hệ, nghiên cứu các phương pháp thiết kế cơ sở dữ liệu phân tán,các kỹ thuật tối
Trang 1ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN&TRUYỀN THÔNG
LƯƠNG KIM CƯƠNG
TỐI ƯU HÓA TRUY VẤN TRONG CÁC CƠ SỞ DỮ LIỆU PHÂN TÁN
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Thái Nguyên - 2019
Trang 2ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN&TRUYỀN THÔNG
LƯƠNG KIM CƯƠNG
TỐI ƯU HÓA TRUY VẤN TRONG CÁC CƠ SỞ DỮ LIỆU PHÂN TÁN
Chuyên ngành: Khoa học máy tính
Mã số: 8480101
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS ĐOÀN VĂN BAN
Thái Nguyên - 2019
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan, kết quả của luận văn hoàn toàn là kết quả của tự bản thân tôi tìm hiểu và nghiên cứu thông qua tham khảo các tài liệu và được thực hiện dưới
sự hướng dẫn của PGS.TS Đoàn Văn Ban Các tài liệu tham khảo được trích dẫn
và chú thích đầy đủ
Tác giả
Lương Kim Cương
Trang 4LỜI CẢM ƠN
Lời đầu tiên, tôi xin chân thành cảm ơn PGS.TS Đoàn Văn Ban, người đã trực tiếp giảng dạy tôi trong thời gian học tập và cũng là người đã trực tiếp hướng dẫn, giúp đỡ và tạo mọi điều kiện thuận lợi cho tôi từ lúc nhận đề tài đến khi hoànthành luận văn
Tôi xin gửi lời cảm ơn sâu sắc đến tất cả các Thầy cô đã tham gia giảng dạy
và truyền đạt kiến thức, kinh nghiệm quý báu cho chúng tôi trong hai năm học caohọc tại trường Đại học Công Nghệ Thông Tin và Truyền Thông – Đại học Thái Nguyên Những kiến thức này đã giúp tôi rất nhiều trong quá trình làm luận văn của mình
Cuối cùng, tôi xin cảm ơn tất cả người thân, bạn bè và đồng nghiệp đã khích
lệ, động viên, đóng góp ý kiến và giúp đỡ tôi hoàn thành luận văn này
Thái Nguyên, ngày… tháng….năm 2019
Lương Kim Cương
Trang 5DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
Trang 6DANH MỤC CÁC HÌNH VẼ
Hình 1.1: Kiến trúc tham chiếu của cơ sở dữ liệu phân tán [3] 9
Hình 1.2: Cây phân tách của quan hệ 13
Hình 2.1: Giải pháp A 18
Hình 2.2: Giải pháp B 18
Hình 2.3: Sơ đồ quy trình xử lý truy vấn [4] 21
Hình 2.4: Đồ thị truy vấn và Đồ thị nối 25
Hình 2.5: Đồ thị truy vấn và Đồ thị nối với câu truy vấn sai ngữ nghĩa 25
Hình 2.6: Cây đại số quan hệ 28
Hình 2.7: Cây đại số quan hệ sau khi tái cấu trúc 30
Hình 2.8: Câu truy vấn gốc 32
Hình 2.9: Câu truy vấn đã rút gọn 32
Hình 2.10: Rút gọn phân mảnh ngang 33
Hình 2.11: Rút gọn phân mảnh dọc 35
Hình 2.12: Rút gọn cho phân mảnh ngang dẫn xuất 36
Hình 2.13: Rút gọn phân mảnh hỗn hợp 37
Hình 2.14: Bộ tối ưu truy vấn 38
Hình 2.15: Các cây nối 39
Hình 2.16: Hình dáng của một số cây nối 40
Hình 2.17: Đồ thị minh họa tổng chi phí và thời gian trả lời 42
Hình 2.18: Đồ thị nối của truy vấn q1 58
Hình 2.19: Các thứ tự kết nối 59
Hình 2.20: Quá trình quyết định đường đi của đàn kiến 64
Trang 7MỤC LỤC
GIỚI THIỆU 1
CHƯƠNG 1 CƠ SỞ DỮ LIỆU PHÂN TÁN 3
1.1 Khái niệm về hệ cơ sở dữ liệu phân tán 3
1.1.1 Khái niệm 3
1.1.2 Hệ quản trị cơ sở dữ liệu phân tán 3
1.1.3 Những ưu điểm của cơ sở dữ liệu phân tán 4
1.1.4 Những nhược điểm của cơ sở dữ liệu phân tán [3] 5
1.2 Các đặc trưng trong suốt của cơ sở dữ liệu phân tán 6
1.2.1 Trong suốt phân tán 6
1.2.2 Trong suốt giao dịch 7
1.2.3 Trong suốt thất bại 7
1.2.4 Trong suốt thao tác 7
1.2.5 Trong suốt về tính không thuần nhất 8
1.3 Kiến trúc tham chiếu của cơ sở dữ liệu phân tán 8
1.4 Các kỹ thuật xây dựng cơ sở dữ liệu phân tán 9
1.4.1 Phân mảnh 9
1.4.1.1 Phân mảnh ngang 10
1.4.1.2 Phân mảnh ngang dẫn tiếp 11
1.4.1.3 Phân mảnh dọc 12
1.4.1.4 Phân mảnh hỗn hợp 13
1.4.2 Nhân bản dữ liệu 14
1.4.3 Định vị dữ liệu 14
1.5 Kết luận chương 15
CHƯƠNG 2 TỐI ƯU HÓA TRUY VẤN CƠ SỞ DỮ LIỆU PHÂN TÁN 16
2.1 Vấn đề tối ưu hóa xử lý truy vấn 16
2.2 Quá trình xử lý truy vấn 20
2.2.1 Phân rã truy vấn 21
Trang 82.2.2 Cục bộ hóa dữ liệu phân tán 30
2.2.2.1 Rút gọn cho phân mảnh ngang nguyên thủy 31
2.2.2.2 Rút gọn cho phân mảnh dọc 34
2.2.2.3 Rút gọn cho phân mảnh ngang dẫn xuất 35
2.2.2.4 Rút gọn cho phân mảnh hỗn hợp 37
2.2.3 Tối ưu hóa toàn cục 38
2.2.3.1 Không gian tìm kiếm 39
2.2.3.2 Mô hình chi phí 41
2.2.4 Tối ưu hóa cục bộ 47
2.3 Tối ưu hóa truy vấn dựa vào phương pháp tối ưu đàn kiến 47
2.4 Một số thuật toán tối ưu hóa truy vấn phân tán 48
2.4.1 Thuật toán D-INGRES 49
2.4.2 Thuật toán R* 54
2.4.3 Thuật toán SDD-1 59
2.4.4 Thuật toán Hybrids đàn kiến tối ưu truy vấn phân tán 63
2.5 Kết luận chương 68
CHƯƠNG 3 70
CÀI ĐẶT THUẬT TOÁN TỐI ƯU HÓA TRUY VẤN PHÂN TÁN 70
3.1 Xác định bài toán 70
3.2 Mô hình phân tán CSDL, công cụ, ngôn ngữ lập trình 73
3.3 Thuật toán áp dụng 76
3.4 Kết quả thử nghiệm 76
3.5 Kết luận thực nghiệm 81
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 82
TÀI LIỆU THAM KHẢO 83
Trang 9GIỚI THIỆU
1 Lý do chọn đề tài
Cơ sở dữ liệu phân tán đã đáp ứng một phần lớn các nhu cầu trong thực tế
về dữ liệu phục vụ công tác quản lý ngày càng lớn và đa dạng Đặc biệt, các hệquản trị cơ sở dữ liệu phân tán đã giải quyết được vấn đề lưu trữ dữ liệu vàphục vụ cho nhiều người dùng ở phân tán khắp mọi nơi
Khi khối lượng thông tin phải xử lý ngày càng lớn, đa dạng và phong phú,
dữ liệu được phân bố nhiều nơi thì vấn đề đặt ra là xử lý thông tin như thế nào
để giảm chi phí đến mức tối thiểu Một trong các giải pháp có tính khả thi làphải tối ưu hóa các câu lệnh khi truy vấn dữ liệu Nghiên cứu về tối ưu hóa truyvấn trong cơ sở dữ liệu phân tán là cần thiết để khai thác có hiệu quả dữ liệu
phân tán Do đó, tôi chọn nghiên cứu đề tài “Tối ưu hóa truy vấn trong các cơ
sở dữ liệu phân tán” làm luận văn tốt nghiệp của mình.
2 Mục đích nghiên cứu
Đề tài phân tích, trình bày một cách có hệ thống các nghiên cứu về cơ sở
dữ liệu quan hệ, nghiên cứu các phương pháp thiết kế cơ sở dữ liệu phân tán,các kỹ thuật tối ưu hóa câu truy vấn trong cơ sở dữ liệu phân tán, cài đặt thửnghiệm một số thuật toán tối ưu hóa câu truy vấn trong cơ sở dữ liệu phân tán,
từ đó đưa ra lựa chọn phù hợp với từng bài toán trên thực tế
3 Đối tượng và phạm vi nghiên cứu
Đối tượng và phạm vi nghiên cứu của luận văn là cơ sở dữ liệu phân tán,các câu truy vấn phân tán, một số thuật toán tối ưu hóa truy vấn phân tán và càiđặt một thuật toán tối ưu hóa truy vấn
4 Phương pháp nghiên cứu
Nghiên cứu lý thuyết: Tìm hiểu các nghiên cứu từ các tài liệu, tạp chí vàcác bài viết trên mạng internet… sau đó tổng hợp so sánh để viết thành luậnvăn
Nghiên cứu thực nghiệm: Cài đặt thử nghiệm thuật toán R*
Trang 105 Bố cục luận văn
Với những yêu cầu trên, nội dung của bản luận văn này trình bày khái quátchung về cơ sở dữ liệu phân tán, các kỹ thuật xây dựng cơ sở dữ liệu phân tán,tối ưu hóa truy vấn trong quá trình xử lý truy vấn, trình bày một số thuật toántối ưu hóa truy vấn phân tán, cài đặt thuật toán R* để tối ưu hóa truy vấn Luậnvăn được chia làm 3 chương:
Chương 1: Khái quát về cơ sở dữ liệu phân tán Trong chương này trìnhbày khái quát về cơ sở dữ liệu phân tán: Khái niệm về cơ sở dữ liệu phân tán,
ưu nhược điểm của cơ sở dữ liệu phân tán, các mức trong suốt phân tán, kiếntrúc tham chiếu của cơ sở dữ liệu phân tán, các kỹ thuật xây dựng cơ sở dữ liệuphân tán
Chương 2: Trình bày tối ưu hóa truy vấn trong cơ sở dữ liệu phân tán: Quátrình xử lý truy vấn, tối ưu hóa truy vấn dựa vào phương pháp tối ưu đàn kiến,trình bày một số thuật toán tối ưu hóa truy vấn
Chương 3: Cài đặt thuật toán tối ưu hóa truy vấn phân tán: Xác định bàitoán, mô hình phân tán cơ sở dữ liệu, sử dụng thuật toán R* để áp dụng, trìnhbày kết quả thử nghiệm và kết luận thực nghiệm
Trang 111.1.2 Hệ quản trị cơ sở dữ liệu phân tán
Các hệ quản trị cơ sở dữ liệu phân tán có chức năng hỗ trợ việc tạo và bảotrì cơ sở dữ liệu phân tán, chúng có các thành phần tương tự như một hệ quản trị
cơ sở dữ liệu tập trung thành các thành phần hỗ trợ trong việc chuyển tải dữ liệuđến các trạm và ngược lại
Các thành phần sau đây đòi hỏi một hệ quản trị cơ sở dữ liệu phân tánthương mại phải có:
- Quản trị dữ liệu (Database management): DB
- Truyền thông dữ liệu (Data Communication): DC
- Từ điển dữ liệu (Data Dictionary): DD dùng để mô tả thông tin về sựphân tán của dữ liệu mạng
- Cơ sở dữ liệu phân tán (Distributed Database): DDB
Hệ quản trị cơ sở dữ liệu phân tán được phân làm 2 loại:
Trang 12- Cơ sở dữ liệu phân tán thuần nhất: Là hệ cơ sở dữ liệu mà tất cả cácnút sử dụng cùng một loại hệ quản trị cơ sở dữ liệu, công nghệ cơ sở dữliệu là như nhau, dữ liệu tại các vị trí khác nhau có các định nghĩa vàkhuôn dạng chung (các hệ quản trị cơ sở dữ liệu ở các nút có sự tươngthích cao)
- Cơ sở dữ liệu phân tán không thuần nhất: Là hệ cơ sở dữ liệu mà có ítnhất một nút không cùng một loại hệ quản trị cơ sở dữ liệu với hệ cơ sở
dữ liệu ở các nút còn lại, có nghĩa là dữ liệu trên các vị trí thường khôngtương thích Các mâu thuẫn điển hình bao gồm sự khác biệt về cú pháp vàcác khác biệt về ngữ nghĩa
1.1.3 Những ưu điểm của cơ sở dữ liệu phân tán
Lợi ích cơ bản nhất của cơ sở dữ liệu phân tán là dữ liệu của các cơ sở dữliệu vật lý riêng biệt được tích hợp logic với nhau làm cho nhiều người sử dụngtrên mạng có thể truy nhập được [11]
a) Cho phép quản lý dữ liệu với nhiều mức trong suốt
Hệ quản trị cơ sở dữ liệu phải được trong suốt phân tán theo nghĩa làm chongười sử dụng không cần biết vị trí của dữ liệu và không cần biết sự phức tạptruy cập qua mạng
b) Tăng độ tin cậy và khả năng sẵn sàng
Độ tin cậy là khả năng hệ thống đang làm việc (không bị ngừng) tại mộtthời điểm nào đó, tính sẵn sàng là khả năng hệ thống tiếp tục làm việc trongmột khoảng thời gian nào đó Khi dữ liệu và cơ sở dữ liệu phân tán trên một vàitrạm, một trạm có thể có sự cố trong khi các trạm khác vẫn có thể hoạt độnghoặc sử dụng các thành phần khác của cơ sở dữ liệu Chỉ trên trạm 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ẵnsàng, có thể áp dụng cơ chế tạo bản sao trên nhiều trạm [1]
c) Cải thiện hiệu năng
Một hệ quản trị cơ sở dữ liệu phân tán, phân đoạn cơ sở dữ liệu có thể làm
Trang 13cho dữ liệu sẽ được lưu giữ tại gần nơi sử dụng nhất Dữ liệu được lưu giữ cục
bộ làm giảm cạnh tranh CPU (bộ xử lý trung tâm), giảm các phục vụ I/O (cácthiết bị nhâp, xuất) và giảm tương tranh truy nhập trên mạng Dữ liệu đượcphân tán tại các trạm nên dung lượng dữ liệu cục bộ sẽ nhỏ hơn, các xử lý giaotác và truy vấn cục bộ sẽ được thực hiện tốt hơn Hơn nữa trên mỗi trạm có ítcác giao tác hơn số các giao tác trên cơ sở dữ liệu tập trung vì vậy cũng tănghiệu suất hệ thống
d) Dễ dàng mở rộng
Việc thêm cơ sở dữ liệu mới, tăng kích cỡ cơ sở dữ liệu hoặc thêm bộ xử
lý trong môi trường phân tán là dễ hơn vì cũng chỉ như là thêm các cơ sở dữliệu thành phần
1.1.4 Những nhược điểm của cơ sở dữ liệu phân tán [3]
Tuy có những ưu điểm vượt trội so với CSDL tập trung, CSDL phân tán
có những điểm yếu nhất định có thể tóm gọn lại trong 4 vấn đề sau:
Độ phức tạp thiết kế và cài đặt hệ thống tăng: Hệ quản trị cơ sở dữliệu 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 cơ sở dữ liệu phân tán
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
Bảo mật khó khăn: Trong cơ sở dữ liệu phân tán các máy được kết nối qua mạng máy tính, việc đảm bảo an ninh trong môi trường mạng raphức tạp hơn
Trang 14Ở mức vật lý, những nhân tố chính sau là để phân biệt một hệ cơ sở dữliệu phân tán với hệ cơ sở dữ liệu tập trung:
Có nhiều máy tính được gọi là các trạm hay các nút
Các trạm 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
Trong mô hình dữ liệu tập trung, tài nguyên tập trung tại một máy tính.Trong hệ thống cơ sở dữ liệu phân tán, cơ sở dữ liệu được chứa trong nhiềumáy tính, các máy tính này được nối với nhau qua các hệ thống truyềnthông, 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) Trong hệ thống cơ sở dữ liệu phân tán gồmnhiều trạm thì mỗi trạm có thể truy nhập dữ liệu ở các trạm khác
1.2 Các đặc trưng trong suốt của cơ sở dữ liệu phân tán
1.2.1 Trong suốt phân tán
Cho phép xử lý dữ liệu trên hệ cơ sở dữ liệu phân tán giống như đối với
cơ sở dữ liệu tập trung
Người sử dụng không cần biết: Dữ liệu đã được phân đoạn 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: Người dùng không cần biết cũng như không cần quan tâm tới vị trí của các tài nguyên trên hệ thống vì vị trí của chúngkhông ảnh hưởng đến cách thức truy xuất
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ệ cơ sở dữ liệu 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
Trang 15Các bản sao có thể được lưu trữ trên nhiều trạm 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ể truynhập dữ liệu tại các trạm mà không cần phải truy cập từ xa giảmtruyền tải trên mạng lớn Hệ thống cho phép tiếp tục thực hiện nếunhư các trạm từ xa có sự cố Trong suốt bản sao đảm bảo người dùngkhô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 đoạn: Một quan hệ trong cơ sở dữ liệu phân tán cóthể phân đoạn ngang hoặc phân đoạn dọc nghĩa là được tách thànhcác bộ dữ liệu hoặc các quan hệ con và lưu trữ trên nhiều trạm khácnhau Trong suốt phân đoạn cho phép người sử dụng không cần biết
có sự phân đoạn, các truy vấn dữ liệu vẫn được viết như cơ sở dữ liệutập trung
1.2.2 Trong suốt giao dịch
Cơ sở dữ liệu 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 trạm khác nhau Để đảm bảo dữ liệu nhất quán trên toàn hệ thống,các trạm trong giao dịch chỉ ủy thác khi tất cả các trạm đã ủy thác thành cônghoặc rollback (lùi cơ sở dữ liệu về một trạng thái cũ) khi một trạm bị thất bại
1.2.3 Trong suốt thất bại
Đảm bảo tại một trạm của hệ thống bị hỏng thì hệ thống vẫn làm việc bìnhthường (do cơ chế tạo bản sao hoặc làm việc trên các trạm không bị sự cố) Nếumạng hoặc hệ thống có sự cố trong khi ủy thác của giao dịch cơ sở dữ liệu phântán thì giao dịch đó được giải quyết tự động và trong suốt theo nghĩa khi mạnghoặc hệ thống khôi phục thì tất các các trạm này hoặc là ủy thác hoặc làrollback lại giao tác đó
1.2.4 Trong suốt thao tác
Cho phép các câu lệnh thao các dữ liệu đơn giản để truy nhập được các cơ
sở dữ liệu tại trạm cục bộ hoặc trạm từ xa Các thao tác xử lý dữ liệu từ xa
Trang 16không phức tạp và vẫn đảm bảo vẫn giống như khi thao tác dữ liệu trên hệ cơ
sở dữ liệu không phân tán
1.2.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ị cơ sở dữ liệu 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
1.3 Kiến trúc tham chiếu của cơ sở dữ liệu phân tán
Kiến trúc tham chiếu không được cài đặt rõ ràng trên tất cả cơ sở dữ liệuphân tán, tuy nhiên các mức của nó được khái quát chính xác, thích hợp để mô
tả tổ chức chung cho mọi hệ cơ sở dữ liệu phân tán
Lược đồ tổng thể: Mô tả tổng thể và thống nhất chung nhất của tất cả dữliệu của cơ sở dữ liệu phân tán độc lập với môi trường phân tán
Phân đoạn: Mối quan hệ tổng thể có thể được chia thành vài phần khônggiao nhau được gọi là các đoạn Lược đồ phân đoạn định nghĩa ánh xạgiữa các quan hệ tổng thể và các phân đoạn Ánh xạ này là một nhiều,một số đoạn tương ứng với một quan hệ tổng thể, nhưng chỉ một quan
hệ tổng thể tương ứng với một đoạn Ký hiệu Ri là đoạn thứ i của quan
hệ tổng thể R
Lược đồ định vị: Định nghĩa ánh xạ từ các phân đoạn vào những trạm chứa những phân đoạn đó Tất cả các đoạn tương ứng với cùng quan hệtổng thể R và được đặt tại cùng trạm j tạo thành hình ảnh vật lý của quan
hệ tổng thể R tại trạm j
Lược đồ ánh xạ địa phương: Ánh xạ các hình ảnh vật lý tới các đối tượngđược thao tác bởi các hệ quản trị cơ sở dữ liệu địa phương Trong hệkhông thuần nhất ta có các kiểu ánh xạ địa phương khác nhau tại cáctrạm khác nhau
Trang 17Lược đồ tổng thể
Trang 18Hệ quản trị cơ sở dữ liệu của trạm 2
Cơ sở dữ liệu địa phương của trạm 2
Hình 1.1: Kiến trúc tham chiếu của cơ sở dữ liệu phân tán [3]
1.4 Các kỹ thuật xây dựng cơ sở dữ liệu phân tán
- Kỹ thuật phân tách dữ liệu từ một cơ sở dữ liệu để lưu trữ trên các trạm khác nhau được gọi là phân mảnh
- Sử dụng bản sao cho phép cùng một dữ liệu có thể được lưu trữ trên nhiều hơn một trạm
- Quá trình định vị các phân mảnh dữ liệu hoặc định vị các bản sao phân mảnh lưu trữ dữ liệu trên các trạm khác nhau
1.4.1 Phân mảnh
Sự phân mảnh là chia dữ liệu trong các bảng dữ liệu thành các bộ hoặccác bảng dữ liệu con Có ba kiểu phân mảnh một quan hệ tổng thể: Phânmảnh ngang, phân mảnh dọc và phân mảnh hỗn hợp
Trang 19Một sự phân mảnh là đúng đắn nếu thoả mãn ba điều kiện sau:
- Điều kiện không mất thông tin: Tất cả dữ liệu của quan hệ tổng thểphải đựơc ánh xạ tới các mảnh, có nghĩa mỗi phần tử dữ liệu thuộc quan
hệ tổng thể phải thuộc một hay nhiều mảnh của nó
- Điều kiện xây dựng lại: Luôn có thể xây dựng lại được quan hệ tổngthể từ các mảnh đã có
- Điều kiện rời nhau (chỉ áp dụng cho phân mảnh ngang): Để tối thiểuhoá sự lặp lại của dữ liệu
DAILY1 = THPHO=”HN” DAILY
DAILY2 = THPHO=”HCM” DAILY
Thoả mãn:
- Điều kiện xây dựng lại: DAILY = DAILY1 DAILY2
- Điều kiện rời nhau thoả mãn vì: DAILY1 DAILY2 =
Tổng quát:
- Điều kiện không mất thông tin nếu tập các tân từ của tất cả các đoạn phải
Trang 20đầy đủ.
- Điều kiện xây dựng lại luôn luôn thoả mãn với phép hợp
- Điều kiện rời nhau đòi hỏi các tân từ phải loại trừ nhau
1.4.1.2 Phân mảnh ngang dẫn tiếp
Phân mảnh ngang dẫn tiếp là sự phân chia một quan hệ ban đầu thành cácquan hệ thứ hai khác mà các quan hệ đó liên hệ với quan hệ ban đầu bằng mộtkhoá ngoài Điều này như là liên hệ dữ liệu giữa quan hệ ban đầu và quan hệ thứhai được phân đoạn trong cùng một cách
CUNGCAP2 = CUNGCAP ⋉ SHDL = SHDL DAILY2
Việc bố trí trên cùng một trạm của mỗi cặp đoạn (DAILY1, CUNGCAP1)
và (DAILY2, CUNGCAP2) cho phép cải tiến hiệu năng của phép kết nối các quan
hệ NHACUNGCAP và CUNGCAP vì có thể thực hiện song song bởi hai phép kếtnối (DAILY1⋈ CUNGCAP1) và (DAILY2⋈ CUNGCAP2)
- Điều kiện không mất thông tin của phân đoạn trên đòi hỏi không có SHDLnào trong quan hệ CUNGCAP mà lại không chứa trong quan hệ DAILY Ở đây córàng buộc toàn vẹn tham chiếu
s CUNGCAP => phải pDAILY mà p.SHDL= s SHDL
p.SHDL DAILY1 qua ⋉ => s CUNGCAP1 hoặc
p.SHNCC DAILY2 qua ⋉ => s CUNGCAP2
Trang 21=> Thoả mãn điều kiện không mất thông tin
- Điều kiện xây dựng lại: CUNGCAP = CUNGCAP1 CUNGCAP2
- Điều kiện rời nhau: Ta chứng minh: CUNGCAP1 CUNGCAP2 =
Giả sử: p CUNGCAP1 & CUNGCAP2
Tiêu chuẩn cho sự phân mảnh dọc là đúng đắn:
- Điều kiện đầy đủ: Nếu một thuộc tính xuất hiện trong một quan hệ tổngthể thì nó cũng phải xuất hiện trong một mảnh dọc nào đó
- Điều kiện xây dựng lại: Cần phải thêm vào mỗi mảnh khoá chính, do đóviệc xây dựng lại được nhờ vào phép kết nối các mảnh dọc theo cácthuộc tính chung
- Điều kiện rời nhau: Ít nhất khoá phải được lặp lại trên tất cả các mảnh
để cho phép xây dựng lại, nên ở đây không thể xem là rời nhau hoàn toànđược
SHQL: Số hiệu quản lý
Trang 22SHPHONG: Số hiệu phòng
Ta tách quan hệ NHANVIEN thành hai quan hệ NV1 và NV2
NV1 = П SHNV, TEN, SHQL, SHPHONG NHANVIEN
NV2 = ПSHNV, TEN, LUONG, THUE NHANVIEN
Thuộc tính TEN lặp lại ở cả hai mảnh, khi xây dựng lại quan hệNHANVIEN thông qua phép chiếu, thuộc tính này sẽ bị khử
NHANVIEN = NV1⋈ SHNV=SHNV П SHNV, LUONG, THUE NV2
1.4.1.4 Phân mảnh hỗn hợp
Là sự kết hợp cả phân mảnh dọc và phân mảnh ngang
Ví dụ 1.4: Xét quan hệ tổng thể
NHANVIEN(SHNV, TEN,LUONG, THUE, SHQL, SHPHONG)
Tách quan hệ NHANVIEN thành các quan hệ NV1, NV2, NV3, NV4
NV1 = SHPHONG ≤ 10 SHNV, TEN, SHQL, SHPHONG NHANVIEN
NV2 = 10 < SHPHONG ≤ 20 SHNV, TEN, SHQL, SHPHONG
NHANVIEN NV3 = SHPHONG >20 SHNV, TEN, SHQL, SHPHONG NHANVIEN NV4 = SHNV, TEN, LUONG, THUE NHANVIEN
NHÂN VIÊN
Phân tách dọcPhân tách ngang
NV
Trang 23NV1 NV2 NV3
Hình 1.2: Cây phân tách của quan hệ
Xây dựng lại quan hệ NHANVIEN ta thực hiện như sau:
NHANVIEN = (NV1, NV2, NV3) ⋈ SHNV=SHNV SHNV, LUONG, THUE NV4
Sự phân mảnh hỗn hợp có thể biểu diễn dưới dạng cây phân mảnh Trong cây phân mảnh, nút gốc tương ứng quan hệ tổng thể, các nút ở giữa tương ứng với
Trang 24các kết quả trung gian của thể hiện định nghĩa phân mảnh Ví dụ, hình 1.2 thể hiệncây phân mảnh của quan hệ NHANVIEN Nút gốc (quan hệ NHANVIEN) đượcphân mảnh dọc thành hai phần: một phần tương ứng với một nút lá của cây (NV4),phần còn lại được phân mảnh ngang, do vậy sinh ra ba nút lá khác, tương ứng với
ba phân mảnh: NV1, NV2, NV3
1.4.2 Nhân bản dữ liệu
Các chiến lược nhân bản dữ liệu:
1 Nhân bản dữ liệu đầy đủ: Toàn bộ cơ sở dữ liệu sẽ được tạo trên tất cảmỗi trạm
Ưu điểm: Điều này sẽ cải thiện tính sẵn sàng cao nhất vì nếu sự cố trêntrạm này thì vẫn có dữ liệu trên trạm khác và cải thiện hiệu năng lấy dữ liệu trênmạng cho các truy vấn toàn bộ vì dữ liệu sẽ được lấy từ các trạm cục bộ
Nhược điểm: Các thao tác cập nhập dữ liệu rất chậm vì phải copy, đồng
bộ dữ liệu cho mọi trạm Kỹ thuật điều khiển tương tranh và phục hồi sẽ phứctạp hơn
2 Không có nhân bản dữ liệu: Mỗi phân mảnh chỉ được lưu trữ trên mộttrạm, phương án này còn được gọi là định vị không dư thừa dữ liệu Trongtrường hợp này các phân đoạn phải tách rời nhau để tránh lặp bản ghi giốngnhau cho các phân đoạn ngang và phân đoạn hỗn hợp
3 Nhân bản dữ liệu từng phần: Một vài phân mảnh có thể được tạo bản sao
và có thể một số phân mảnh sẽ không có bản sao Việc tạo bản sao này rất có tácdụng cho các nhân viên làm việc di động, tại các nơi xa trung tâm dữ liệu, có thểtạo ra bản sao dữ liệu trên laptop của mình và theo chu kỳ đồng bộ dữ liệu với cơ
sở dữ liệu server
1.4.3 Định vị dữ liệu
Là quá trình gán từng phân đoạn, từng bản sao của phân đoạn cho một trạm
cụ thể trong hệ thống phân tán Việc chọn trạm nào và số bản sao phụ thuộc vàoyêu cầu hiệu năng và mục tiêu sẵn sàng của hệ thống với các loại giao tác trên các
Trang 25trạm Đối với hệ yêu cầu tính sẵn sàng cao, mọi giao dịch thao tác lấy dữ liệu, giaodịch cập nhật chỉ làm tại một trạm thì nên tổ chức tạo bản sao đầy đủ Nếu cácgiao dịch thường cập nhật một phần dữ liệu tại một trạm thì các phân đoạn chophần dữ liệu đó nên được định vị trên trạm đó
1.5 Kết luận chương
Cơ sở dữ liệu phân tán rất quan trọng vì nhiều lý do khác nhau, nó có thểđược cài đặt trên các mạng máy tính diện rộng và các mạng cục bộ nhỏ Có hai lý
do về tổ chức và kỹ thuật đối với sự phát triển cơ sở dữ liệu phân tán đó là: Cơ sở
dữ liệu phân tán được xây dựng để khắc phục các thiếu sót của cơ sở dữ liệu tậptrung và nó phù hợp hơn trong cấu trúc phân quyền của nhiều tổ chức Kỹ thuật cơ
sở dữ liệu phân tán được mở rộng và phát triển từ kỹ thuật của cơ sở dữ liệu truyềnthống Trong môi trường mới này, một số vấn đề kỹ thuật đòi hỏi các giải phápkhác, và một số giải pháp hoàn toàn mới
Tính trong suốt phân tán cung cấp sự độc lập của các chương trình khỏi sựphân tán của cơ sở dữ liệu Các mức trong suốt phân tán khác nhau có thể đượccung cấp bởi một hệ quản trị cơ sở dữ liệu phân tán; Tại mỗi mức, tính trong suốtlàm cho người lập trình ứng dụng không biết được sự phân tán dữ liệu
Trang 26Có nhiều giải pháp chuyển đổi, mỗi giải pháp khác nhau có thể tiêu thụ tàinguyên của mạng máy tính khác nhau Vì vậy, cần phải lựa chọn một giải pháp khithực hiện sao cho tiêu thụ tài nguyên là tối thiểu.
Có hai phương pháp tối ưu cơ bản: Phương pháp biến đổi một câu truy vấnmức cao thành câu truy vấn tương đương ở mức thấp hơn dưới dạng biểu thức đại
số quan hệ và phương pháp chọn lựa trong số các câu truy vấn dạng biểu thức đại
số quan hệ tương đương một biểu thức có chi phí thời gian thực hiện và chi phí sửdụng tài nguyên là ít nhất
Ví dụ 2.1: Xét các quan hệ sau:
NV (MNV, TênNV, Chức vụ)
PC (MNV, MDA, Nhiệm vụ, Thời gian)
Và một câu truy vấn đơn giản sau:
“Cho biết tên của các nhân viên hiện đang quản lý một dự án”
Biểu thức truy vấn bằng phép tính quan hệ theo cú pháp của SQL là:
Trang 27mà dữ liệu sẽ lưu chuyển Việc này sẽ làm tăng số các giải pháp lựa chọn cần lựachọn trong số đó một giải pháp thực hiện Vì vậy, việc xử lý phân tán càng trở nênkhó khăn hơn.
Ví dụ 2.2: Ví dụ này minh họa tầm quan trọng của việc lựa chọn vị trí và cách
truyền dữ liệu của một câu truy vấn đại số Xét câu truy vấn của Ví dụ 2.1:
Các mảnh PC1, PC2, NV1, NV2 theo thứ tự được lưu tại các vị trí 1, 2, 3 và 4
và kết quả được lưu tại vị trí 5 như Hình 2.1 và Hình 2.2
Trang 28Vị trí 5
Kết quả = NV 1 NV 2
Trang 29Mũi tên đi kèm ký hiệu quan hệ để chỉ hệ thống sẽ truyền quan hệ kết quả từ
vị trí i đến vị trí j Ví dụ trong chiến lược A, tại vị trí 1, sau khi thực hiện phépchọn trên quan hệ PC1 thỏa mãn biểu thức Nhiệm vụ = “Quản lý”, kết quả PC‟1 sẽđược truyền từ vị trí 1 sang vị trí 3 để tham gia phép kết nối với quan hệ NV1
Hai giải pháp A và B thực hiện truy vấn là tương đương Trong đó:
- Giải pháp A: Sử dụng hai quan hệ PC và NV được phân mảnh theo cùngmột cách để thực hiện lựa chọn và kết nối các thao tác một cách song song các
Trang 30phép chọn và kết nối.
- Giải pháp B: Tập trung tất cả các dữ liệu trong toán hạng tại vị trí kết quảtrước khi xử lý truy vấn
Để có thể đánh giá chi phí nguồn tài nguyên của hai giải pháp trên, ta ký hiệu:
- Chi phí để thao tác truy xuất nội bộ là một đơn vị, ký hiệu là tupacc
- Chi phí để truyền nội bộ là 10 đơn vị, ký hiệu là tuptrans
- Giả sử lực lượng của quan hệ NV và PC là 400 và 1000 bản ghi
- Giả sử có 20 quản lý trong quan hệ PC
Khi đó, tổng chi phí của giải pháp A là:
1 Tạo ra PC‟ bằng cách chọn trên PC cần (10+10)* tupacc = 20
2 Truyền PC‟ đến vị trí của NV cần (10+10)*tuptrans = 200
3 Tạo NV‟ bằng cách nối PC‟ và NV‟ cần (10+10)*tupacc*2 = 40
4 Truyền NV‟ đến vị trí nhận kết quả cần (10+10)*tuptrans = 200
Chỉ số đánh giá chi phí sử dụng tài nguyên mạng hoặc là tổng thời gian xử lý
Trang 31các thao tác truy vấn tại các vị trí khác nhau và việc truyền dữ liệu giữa các vị tríhoặc đánh giá theo chỉ số thời gian đáp ứng của truy vấn là tổng thời gian thựchiện truy vấn Các thao tác có thể được thực hiện đồng thời song song tại các vị tríkhác nhau, vì vậy thời gian đáp ứng có thể nhỏ hơn tổng chi phí Chi phí truyềnthông là một trong các nhân tố quan trọng và được quan tâm trong CSDL phântán
Trang 3221
Trang 33Phân rã truy vấn Lược đồ
Truy vấn theo mảnh đã tối ưu
Với các phép toán truyềnCác vị
trí cục
bộ
cục bộTruy vấn cục bộ đã tối ưu
Hình 2.3: Sơ đồ quy trình xử lý truy vấn [4]
2.2.1 Phân rã truy vấn
Phân rã truy vấn là giai đoạn đầu tiên của quá trình xử lý câu truy vấn, thựchiện việc biến đổi câu truy vấn ở dạng ngôn ngữ bậc cao thành câu truy vấn ngônngữ bậc thấp thực thi cho kết quả tương đương Đặc trưng của giai đoạn này, khibiến đổi không sử dụng các thông tin về dữ liệu đã được phân tán trên các vị trí
Trang 34Vì thế, phân rã truy vấn đều giống nhau trong cả hệ thống tập trung và phân tán,câu truy vấn sẽ đúng về ngữ nghĩa và đạt chất lượng theo nghĩa là đã loại bỏ cáchành động không cần thiết Phân rã truy vấn bao gồm bốn bước liên tiếp: Chuẩnhoá, phân tích, loại bỏ dư thừa, viết lại câu truy vấn.
- Chuẩn hóa: Các câu truy vấn bằng các phép tính quan hệ được viết lại dướidạng chuẩn tắc thích hợp cho các bước tiếp theo Sự chuẩn hóa một câu truy vấnbao gồm đặt các lượng tử và lượng tử hóa truy vấn bằng cách áp dụng độ ưu tiêncác toán tử logic
- Phân tích: Câu truy vấn đã chuẩn hóa được phân tích về mặt ngữ nghĩanhằm loại bỏ các câu truy vấn sai càng sớm càng tốt Tìm ra truy vấn sai chỉ tồntại với một tập con các phép tính quan hệ Thông thường sử dụng một loại đồ thị
để nắm bắt ngữ nghĩa của câu truy vấn
- Loại bỏ dư thừa: Câu truy vấn đúng được đơn giản hóa bằng cách loại bỏcác phụ thuộc dư thừa Truy vấn dư thừa chỉ xuất hiện khi một truy vấn là kết quảcủa việc biến đổi hệ thống được áp dụng cho truy vấn của người sử dụng
- Xây dựng lại câu truy vấn: Câu truy vấn phép tính quan hệ được xây dựnglại dưới dạng truy vấn đại số quan hệ bằng các quy tắc biến đổi
2.2.1.1 Chuẩn hóa câu truy vấn
Mục đích của chuẩn hoá (normalization) là biến đổi câu truy vấn thành mộtdạng chuẩn để xử lý tiếp Chuẩn hoá một truy vấn nói chung gồm có đặt các lượng
từ và lượng từ hoá vấn tin bằng cách áp dụng độ ưu tiên của các toán tử logic
Với các ngôn ngữ quan hệ như SQL, biến đổi quan trọng nhất là lượng từ hoávấn tin (mệnh đề Where), có thể đó là một vị từ phi lượng từ với độ phức tạp nào
đó với tất cả các lượng từ cần thiết ( hoặc ) được đặt phía trước Có hai dạngchuẩn có thể cho vị từ, một có thứ bậc cao cho AND () và loại còn lại cho OR()
- Dạng chuẩn hội là hội (vị từ ) của các tuyển vị từ (các vị từ ):
(p11 p12 …. p1n) … (pm1 pm2 …. pmn)
Trang 35Trong đó pij là một vị từ đơn giản (nguyên tố).
- Ngược lại, một lượng từ hoá ở dạng chuẩn tuyển như sau:
(p11 p12 …. p1n) …. (pm1 pm2 …. pmn)
Trong dạng chuẩn tắc tuyển, câu truy vấn có thể được xử lý như các câu truyvấn con hội độc lập, được nối bằng phép hợp (tương ứng với các tuyển mệnh đề).Dạng chuẩn tuyển ít được dùng vì dẫn đến các vị từ nối và chọn trùng nhau.Dạng chuẩn hội hay dùng trong thực tế
Ví dụ 2.3: Tìm tên các nhân viên đang làm việc ở dự án P1 trong 12 tháng hoặc 24tháng
Câu truy vấn được diễn tả bằng SQL như sau:
SELECT TênNV
FROM NV, PC
WHERE NV.MNV = PC.MNV
AND PC.MDA = “P1”
AND Thời gian =12 OR Thời gian =24
Lượng từ hoá ở dạng chuẩn hội là:
NV.MNV = PC.MNV PC.MDA = “P1” (Thời gian = 12 Thời gian = 24)
Lượng từ hoá ở dạng chuẩn tuyển là:
(NV.MNV = PC.MNV PC.MDA = ”P1” Thời gian = 12)
(NV.MNV = PC.MNV PC.MDA = ”P1” Thời gian = 24)
Ở dạng sau, xử lý hai hội độc lập có thể là một công việc thừa nếu các biểuthức con chung không được loại bỏ
2.2.1.2 Phân tích câu truy vấn
Phân tích câu truy vấn cho phép loại bỏ các câu truy vấn đã chuẩn hoá nhưngkhông thể tiếp tục xử lý được hoặc không cần thiết, do chúng sai kiểu hoặc sai ngữnghĩa
- Một câu truy vấn gọi là sai kiểu nếu có một thuộc tính hoặc tên quan hệchưa được khai báo trong lược đồ toàn cục hoặc nếu áp dụng cho các thuộc tính có
Trang 36kiểu không thích hợp Ví dụ:
Select MaDAFrom T e n N V >2 0 0 Câu truy vấn trên sai kiểu do TenNV có kiểu chuỗi (String) không thể so sánh với kiểu số (200) được
- Một câu truy vấn gọi là sai ngữ nghĩa nếu các thành phần của nó không tham gia vào việc tạo ra kết quả
Nếu các truy vấn không chứa các tuyển và phủ định ta có thể dùng đồ thị truy vấn Truy vấn chứa phép chọn, nối, chiếu
- Biểu diễn bằng đồ thị truy vấn:
+ Một nút biểu thị quan hệ kết quả
+ Các nút khác biểu thị cho quan hệ toán hạng
+ Đường nối giữa hai nút không phải là quan hệ kết quả biểu thị cho phép kết nối
+ Đường mà nút đích là kết quả sẽ biểu thị cho phép chiếu
+ Các nút không phải là kết quả sẽ được gán nhãn là một vị từ chọn hoặc
vị từ tự kết nối (chính nó)
- Đồ thị nối: Một đồ thị con quan trọng của đồ thị truy vấn, chỉ có các nối
Ví dụ 2.4: Cho các quan hệ sau:
PC (MaNV, MaDA, NVụ, Tgian)
NV (MaNV, TênNV, CVụ)
DA (MaDA, TênDA, Kphí, Đđiểm)
Câu truy vấn “Tìm tên, nhiệm vụ các của những người có Cvụ = ‟TP‟ đã làm việc
ở dự án „CAD/CAM‟ trong hơn 3 năm” được viết dưới dạng SQL như sau:
Select TênNV
From PC, NV,DA
Where PC.MaNV = NV.MaNV and PC.MaDA = DA.MaDA
and TênDA = ‟CAD/CAM‟ and CVụ = ‟TP‟ and tgian > 36
Trang 39=> Đồ thị không liên thông Điều này có nghĩa là câu truy vấn này sai ngữ nghĩa.Nhận xét: Câu truy vấn sai ngữ nghĩa nếu đồ thị truy vấn của nó không liênthông: Một hoặc nhiều đồ thị con bị tách rời với đồ thị kết quả.
2.2.1.3 Loại bỏ dư thừa
Một câu truy vấn của người sử dụng thường được diễn tả trên một khungnhìn có thể được bổ sung thêm nhiều vị từ để có được sự tương ứng khung nhìn -quan hệ, bảo đảm được tính toàn vẹn ngữ nghĩa và bảo mật Thế nhưng lượng từhoá truy vấn đã được sửa đổi này có thể chứa các vị từ dư thừa, có thể phải khiếnlặp lại một số công việc Một cách làm đơn giản truy vấn là loại bỏ các vị từ thừa.Loại bỏ vị từ dư thừa bằng quy tắc luỹ đẳng: