DSpace at VNU: Tối ưu hóa cơ sở dữ liệu phân tán tài liệu, giáo án, bài giảng , luận văn, luận án, đồ án, bài tập lớn về...
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
NGUYỄN THỊ THƠ MÂY
TỐI ƯU HÓA CƠ SỞ DỮ LIỆU PHÂN TÁN
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
HÀ NỘI – 2015
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
NGUYỄN THỊ THƠ MÂY
TỐI ƯU HÓA CƠ SỞ DỮ LIỆU PHÂN TÁN
Ngành: Công nghệ thông tin
Chuyên ngành: Hệ thống thông tin
Mã số: 60480104
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS TS ĐOÀN VĂN BAN
HÀ NỘI – 2015
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, nghiên cứu Các tài liệu tham khảo đƣợc trích dẫn và chú thích đầy đủ
Tác giả
Nguyễn Thị Thơ Mây
Trang 4LỜI CẢM ƠN
Lời đầu tiên, em xin chân thành cảm ơn PGS.TS Đoàn Văn Ban, 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 em từ lúc tìm hiểu, định hướng cũng như tìm kiếm tài liệu trong lĩnh vực cơ sở dữ liệu phân tán cho đến lúc hoàn thành luận văn
Em xin gửi lời cám ơn sâu sắc đến tất cả các thầy cô giáo đã dạy dỗ và truyền đạt những kiến thức, kinh nghiệm quý báu cho chúng em trong suốt hai năm cao học ở trường Đại học Công nghệ - Đại học Quốc gia Hà nội
Cuối cùng, em xin cảm ơn tất cả bạn bè, người thân và đồng nghiệp đã khích lệ, động viên, đóng góp ý kiến và giúp đỡ để em hoàn thành luận văn này
Hà nội, ngày … , tháng … , năm 2015
Trang 5MỤC LỤC
MỤC LỤC 1
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT 3
DANH MỤC CÁC HÌNH VẼ 4
LỜI MỞ ĐẦU 5
Chương 1:KHÁI QUÁT VỀ CƠ SỞ DỮ LIỆU PHÂN TÁN 7
1.1 Cơ sở dữ liệu phân tán 7
1.1.1 Định nghĩa 7
1.1.2 Ưu điểm 8
1.1.3 Nhược điểm 9
1.2 Đặc điểm của cơ sở dữ liệu phân tán 9
1.2.1 Chia sẻ tài nguyên 9
1.2.2 Tính mở 10
1.2.3 Khả năng song song 10
1.2.4 Khả năng mở rộng 10
1.2.5 Khả năng thứ lỗi 10
1.2.6 Tính trong suốt Error! Bookmark not defined 1.2.7 Đảm bảo tin cậy và nhất quán Error! Bookmark not defined 1.3 Kiến trúc cơ bản của CSDL phân tán Error! Bookmark not defined 1.4 Hệ quản trị cơ sở dữ liệu phân tán Error! Bookmark not defined 1.4.1 Khái niệm Error! Bookmark not defined 1.4.2 Kiến trúc hệ quản trị CSDL phân tán Error! Bookmark not defined 1.5 Thiết kế cơ sở dữ liệu phân tán Error! Bookmark not defined 1.5.1 Các chiến lược phân tán dữ liệu Error! Bookmark not defined 1.5.2 Phân mảnh dữ liệu Error! Bookmark not defined 1.5.2.1 Phương pháp phân mảnh ngang Error! Bookmark not defined 1.5.2.2 Phương pháp phân mảnh dọc Error! Bookmark not defined 1.5.2.3 Phương pháp phân mảnh hỗn hợp Error! Bookmark not defined 1.6 Kết luận Error! Bookmark not defined Chương 2: TỐI ƯU HÓA TRUY VẤN CƠ SỞ DỮ LIỆU PHÂN TÁN Error! Bookmark not defined
2.1 Vấn đề tối ưu hóa xử lý truy vấn Error! Bookmark not defined 2.2 Quá trình xử lý truy vấn Error! Bookmark not defined 2.2.1 Phân rã truy vấn Error! Bookmark not defined
Trang 62
2.2.2 Cục bộ hóa dữ liệu phân tán Error! Bookmark not defined 2.2.2.1 Rút gọn cho phân mảnh ngang nguyên thủy Error! Bookmark not defined
2.2.2.2 Rút gọn cho phân mảnh dọc Error! Bookmark not defined 2.2.2.3 Rút gọn cho phân mảnh ngang dẫn xuất Error! Bookmark not defined 2.2.2.4 Rút gọn cho phân mảnh hỗn hợp Error! Bookmark not defined 2.2.3 Tối ưu hóa toàn cục Error! Bookmark not defined 2.2.3.1 Không gian tìm kiếm Error! Bookmark not defined 2.2.3.2 Chiến lược tìm kiếm Error! Bookmark not defined 2.2.3.3 Mô hình chi phí Error! Bookmark not defined 2.2.4 Tối ưu hóa cục bộ Error! Bookmark not defined 2.3 Các thuật toán tối ưu hóa truy vấn phân tán Error! Bookmark not defined 2.3.1 Thứ tự kết nối Error! Bookmark not defined 2.3.2 Thuật toán INGRES phân tán Error! Bookmark not defined 2.3.3 Thuật toán R* Error! Bookmark not defined 2.3.4 Thuật toán DP-ACO Error! Bookmark not defined 2.4 Kết luận Error! Bookmark not defined
Chương 3: CHƯƠNG TRÌNH CÀI ĐẶT THUẬT TOÁN TỐI ƯU HÓA TRUY
VẤN Error! Bookmark not defined 3.1 Bài toán quản lý bệnh nhân Error! Bookmark not defined 3.2 Mô hình phân tán CSDL, công cụ, ngôn ngữ lập trình Error! Bookmark not defined
3.3 Thuật toán áp dụng Error! Bookmark not defined 3.4 Kết quả thực nghiệm Error! Bookmark not defined 3.5 Kết luận Error! Bookmark not defined KẾT LUẬN Error! Bookmark not defined
TÀI LIỆU THAM KHẢO 11
Trang 7DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
(Ant Colony Optimization) Tối ƣu đàn kiến
(Central Processing Unit ) Bộ xử lý trung tâm
(Database Management System) Hệ quản trị cơ sở dữ liệu
5
DDBMS
(Distributed Database Management
System)
Hệ quản trị cơ sở dữ liệu phân tán
6 DP
7 I/O
8 PT
(Search Space Limit) Giới hạn không gian tìm kiếm
Trang 84
DANH MỤC CÁC HÌNH VẼ
Hình 1.1 Môi trường hệ CSDL phân tán ….8
Hình 1.2 Kiến trúc cơ bản của CSDL phân tán 12
Hình 1.3: Mối quan hệ giữa các quan hệ bởi các đường nối 16
Hình 1.4: Ma trận tụ tương quan CA 26
Hình 1.5: Phân đoạn hỗn hợp 29
Hình 1.6 Tái xây dựng phân đoạn hỗn hợp 30
Hình 2.1: Giải pháp A 32
Hình 2.2: Giải pháp B 32
Hình 2.3: Sơ đồ truy trình xử lý truy vấn 34
Hình 2.4: Đồ thị truy vấn và Đồ thị nối 37
Hình 2.5: Đồ thị truy vấn và Đồ thị nối với câu truy vấn sai ngữ nghĩa 37
Hình 2.6: Cây đại số quan hệ 39
Hình 2.7: Cây đại số quan hệ sau khi tái cấu trúc 41
Hình 2.8: Câu truy vấn gốc 42
Hình 2.9: Câu truy vấn đã rút gọn 42
Hình 2.10: Rút gọn phân mảnh ngang 43
Hình 2.11 Rút gọn phân mảnh dọc 44
Hình 2.12: Rút gọn cho phân mảnh ngang dẫn xuất 46
Hình 2.13: Rút gọn phân mảnh hỗn hợp 47
Hình 2.14: Bộ tối ưu truy vấn 48
Hình 2.15: Các cây nối 49
Hình 2.16: Hình dáng của một số cây nối 49
Hình 2.17: Đồ thị minh họa tổng chi phí và thời gian trả lời 51
Hình 2.18:Truyền các toán hạng trong phép toán hai ngôi 55
Hình 2.19: Đồ thị nối của truy vấn phân tán 56
Hình 2.20: Đồ thị nối của truy vấn q1 62
Hình 2.21: Các thứ tự kết nối 63
Hình 2.22: Quá trình quyết định đường đi của đàn kiến 64
Hình 3.1: Mối quan hệ giữa các bảng dữ liệu 70
Hình 3.2: Kết quả thực hiện câu truy vấn tại trạm 1 71
Hình 3.3: Kết quả thực hiện câu truy vấn tại trạm 2 71
Hình 3.4: Kết quả thực hiện câu truy vấn tại trạm 3 72
Trang 9Hình 3.5: Kết quả thực hiện câu truy vấn tại trạm 1 72 Hình 3.6: Kết quả thực hiện câu truy vấn tại trạm 2 73
Trang 106
LỜI MỞ ĐẦU
Ngày nay, cùng với sự phát triển nhanh chóng của công nghệ thông tin, các ứng dụng cơ sở dữ liệu đã thâm nhập vào mọi hoạt động kinh tế xã hội, quản lý nhà nước
và đem lại hiệu quả vô cùng to lớn, góp phần tăng năng suất lao động, đơn giản trong quản lý và cải cách nền hành chính Xã hội ngày càng phát triển, yêu cầu khối lượng thông tin cần lưu trữ, xử lý ngày càng tăng Trên thực tế, các doanh nghiệp, các đơn vị,
cơ quan, tổ chức phân bố trên một vùng rộng lớn về mặt địa lý, có thể là trên phạm vi nhiều thành phố hoặc toàn bộ quốc gia hay một vài quốc gia, thậm chí trên toàn cầu
Do đó, dữ liệu không thể lưu trữ tập trung ở một địa điểm nhất định mà rải khắp các địa điểm mà cơ quan, tổ chức hay doanh nghiệp đó hoạt động Khi dữ liệu không còn lưu trữ tập trung thì vấn đề làm thế nào để quản lý, tốc độ truy xuất dữ liệu phục vụ cho xử lý công việc không bị ảnh hưởng, không bị gián đoạn được đặt ra Cơ sở dữ liệu phân tán ra đời đã giải quyết được những yêu cầu đó
Cơ sở dữ liệu là một trong những lĩnh vực được quan tâm nhiều trong công nghệ thông tin Việc nghiên cứu CSDL đã và đang phát triển ngày càng phong phú, đa dạng Cho đến nay, đã có hàng loạt các vấn đề về CSDL được nghiên cứu, giải quyết CSDL phân tán nói riêng và các hệ phân tán nói chung là một lĩnh vực nghiên cứu không mới, nhưng gần đây cùng với sự phát triển nhanh chóng và mạnh mẽ của công nghệ truyền thông, mạng Internet và đặc biệt là xu thế phát triển của thương mại điện tử, thì 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 cũng như các nhà sản xuất phần mềm
Khi khối lượng thông tin phải xử lý ngày càng lớn, phong phú và đa dạng 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 truy vấ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 cơ sở
dữ liệu phân tán” làm luận văn tốt nghiệp
Mục tiêu của luận văn là 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 nhận xét, đánh giá ưu điểm, nhược điểm của từng thuật toán tối ưu để có lựa chọn phù hợp với từng bài toán thực tế
Với mục tiêu của luận văn như vậy, bố cục của luận văn gồm: phần mở đầu, ba chương nội dung và phần kết luận
Chương 1: Khái quát về cơ sở dữ liệu phân tán Giới thiệu tổng quan về cơ sở dữ
liệu phân tán, phân biệt cơ sở dữ liệu tập trung với cơ sở dữ liệu phân tán để thấy được
sự khác biệt của hai cơ sở dữ liệu này và lợi ích của cơ sở dữ liệu phân tán; Tìm hiểu các phương pháp thiết kế cơ sở dữ liệu phân tán, tập trung nghiên cứu các kỹ thuật phân mảnh: phân mảnh ngang, phân mảnh dọc và phân mảnh hỗn hợp
Trang 11Chương 2: Tối ưu hóa truy vấn cơ sở dữ liệu phân tán Trong chương này sẽ
trình bày chi tiết các bước trong quy trình xử lý câu truy vấn; trình bày các thuật toán tối ưu hóa câu truy vấn cơ sở dữ liệu phân tán như: INGRES phân tán, R*, DP-ACO
Chương 3: Cài đặt thử nghiệm thuật toán: Trình bày mô hình cài đặt hệ thống
Cài đặt thuật toán INGRES phân tán, R* và so sánh, đánh giá kết quả thực nghiệm cho bài toán tối ưu hóa truy vấn Cuối cùng là kết luận và hướng phát triển của đề tài Nội dung cơ bản của luận văn đã được trình bày, thảo luận tại seminar khoa học
ở Bộ môn Hệ thống thông tin, khoa Công nghệ Thông tin, trường Đại học Công nghệ - Đại học Quốc gia Hà Nội
Trang 128
Chương 1 KHÁI QUÁT VỀ CƠ SỞ DỮ LIỆU PHÂN TÁN 1.1 Cơ sở dữ liệu phân tán
1.1.1 Định nghĩa
Một cơ sở dữ liệu (CSDL) phân tán là một tập dữ liệu có quan hệ logic với nhau, được phân bố trên các máy tính của một mạng máy tính [11]
- Tính chất phân tán: Toàn bộ dữ liệu của CSDL phân tán không nằm ở một nơi
mà nằm trên nhiều trạm thuộc mạng máy tính
- Quan hệ logic: Trong CSDL phân tán, dữ liệu có một số đặc tính liên kết với
nhau như tính kết nối, mối quan hệ logic, điều này giúp chúng ta có thể phân biệt một CSDL phân tán với một tập hợp CSDL cục bộ hoặc các tệp nằm tại các vị trí khác nhau trong một mạng máy tính
Trong hệ thống cơ sở dữ liệu phân tán gồm nhiều trạm, mỗi trạm có thể khai thác các giao tác truy nhập dữ liệu trên nhiều trạm khác
Ví dụ: Với một ngân hàng có 3 chi nhánh đặt ở 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) Mỗi máy tính với cơ sở dữ liệu thống kê cục bộ 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
Ở mức phần cứng 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 và những câu lệnh giữa các trạm với nhau, như Hình 1.1
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ều máy tính, các máy tính này được nối với nhau qua các hệ thống truyền thô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ồm nhiều trạm thì mỗi trạm có thể truy nhập dữ liệu ở các trạm khác
Trang 131.1.2 Ưu điểm
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ụng trên mạng có thể truy nhập được
Cho phép quản lý dữ liệu theo 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 cho ngườ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ạp truy cập qua mạng
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ột thờ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 trong một khoảng thời gian nào đó Khi cơ sở dữ liệu phân tán trên một vài trạm, một trạm có thể có sự cố trong khi các trạm khác vẫn có thể hoạt động hoặ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ẵn sàng, có thể áp dụng cơ chế tạo bản sao trên nhiều trạm [2]
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 mảnh cơ sở dữ liệu có thể làm cho dữ liệu được lưu trữ tại gần nơi sử dụng nhất Dữ liệu được lưu trữ cục bộ làm giảm cạnh tranh CPU, giảm các phục vụ I/O và giảm tương tranh truy nhập trên mạng Dữ liệu được phâ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ý giao tá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ó ít các giao tác hơn số giao tác trên cơ sở dữ liệu tập trung, vì vậy cũng tăng hiệu suất hệ thống Tính song song trong các hệ CSDL phân tán có thể nâng cao được hiệu quả truy nhập Tính chất này có thể lợi dụng để xử lý song song các câu truy vấn Có hai dạng:
- Câu truy vấn đồng thời phát sinh tại các trạm khác nhau
- Câu truy vấn có thể được phân rã thành những câu truy vấn con được thực hiện song song trên các trạm khác nhau
Tổ chức dữ liệu phân tán kinh tế hơn so với tổ chức dữ liệu tập trung Chi phí cho một hệ máy tính nhỏ rẻ hơn nhiều so với chi phí của một máy tính lớn khi triển
Hình 1.1 Môi trường hệ CSDL phân tán
Mạng truyền thông
Trạm 2
Trạm 3 Trạm 4
Trạm 1
DB
DB
DB
DB
Trang 1410 khai cùng một mục đích ứng dụng Chi phí truyền thông cũng ít hơn do việc cục bộ hóa dữ liệu
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.3 Nhược điểm
Bên cạnh những ưu điểm đã trình bày phần trên, CSDL phân tán có một số nhược điểm 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
- Tăng chi phí: Độ phức tạp tăng đồng nghĩa với chi phí cho việc mua sắm và bảo trì cho hệ quản trị CSDL phân tán tăng so với CSDL tập trung Hơn nữa, hệ quản trị CSDL phân tán còn yêu cầu thêm phần cứng để thiết lập mạng liên kết giữa các trạm làm cho chi phí truyền thông liên tục phát sinh Ngoài ra, còn có thêm chi phí lao động để quản lý và duy trì các CSDL cục bộ và hệ thống mạng
- Bảo mật khó khăn: Trong hệ thống tập trung, việc truy cập dữ liệu có thể được kiểm soát dễ dàng Tuy nhiên, trong hệ quản trị CSDL phân tán không chỉ việc truy cập dữ liệu lặp ở nhiều vị trí được kiểm soát mà bản thân mạng cũng phải đảm bảo an toàn
- Kiểm soát tính toàn vẹn khó khăn hơn: CSDL toàn vẹn đề cập đến độ tin cậy và tính nhất quán của dữ liệu được lưu trữ Tính toàn vẹn thường được thể hiện trong các điều kiện ràng buộc Thực hiện các ràng buộc này thường yêu cầu truy cập lượng lớn
dữ liệu định nghĩa các ràng buộc Trong hệ quản trị CSDL phân tán, chi phí truyền thông và chi phí xử lý để thực thi các ràng buộc toàn vẹn cao hơn trong hệ thống tập trung
1.2 Đặc điểm của cơ sở dữ liệu phân tán
1.2.1 Chia sẻ tài nguyên
Việc chia sẻ tài nguyên của hệ phân tán được thực hiện thông qua mạng truyền thông Để chia sẻ tài nguyên một cách có hiệu quả thì mỗi tài nguyên cần được quản lý bởi một chương trình có giao diện truyền thông, các tài nguyên có thể được truy cập, cập nhật một cách tin cậy và nhất quán Quản lý tài nguyên ở đây là lập kế hoạch dự phòng, đặt tên cho các lớp tài nguyên, cho phép tài nguyên được truy cập từ nơi này đến nơi khác, ánh xạ lên tài nguyên vào địa chỉ truyền thông,