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

luận văn thạc sĩ tối ưu hóa truy vấn trong cơ sở dữ liệu phân tán (1)

101 654 0

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 101
Dung lượng 1,7 MB

Nội dung

1.1.3 Những nhược điểm của cơ sở dữ liệu phân tán - Độ 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

Trang 1

Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

-

PHẠM THỊ THU HUYỀN

TỐI ƯU HÓA TRUY VẤN TRONG CƠ SỞ DỮ LIỆU PHÂN TÁN

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 - 2010

Trang 2

Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

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 - 2010

Trang 3

MỤC LỤC

Trang phụ bìa

Lời cam đoan

Lời cám ơn

Mục lục i

Danh mục ký hiệu, các chữ viết tắt ii

Danh mục hình vẽ, ảnh chụp, đồ thị iii

PHẦN MỞ ĐẦU 1

1 Lý do chọn đề tài 1

2 Phạm vi nghiên cứu và ứng dụng 1

3 Ý nghĩa khoa học 1

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

5 Các kết quả dự kiến đạt được 2

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 Những ưu điểm của cơ sở dữ liệu phân tán 3

1.1.3 Những nhược điểm của cơ sở dữ liệu phân tán 4

1.2 Các đặc trưng trong suốt của cơ sở dữ liệu phân tán 5

1.2.1 Trong suốt phân tán 5

1.2.2 Trong suốt giao dịch 6

1.2.3 Trong suốt thất bại 6

1.2.4 Trong suốt thao tác 6

1.2.5 Trong suốt về tính không thuần nhất 7

1.3 Kiến trúc tham chiếu của cơ sở dữ liệu phân tán 7

1.4 Các kỹ thuật xây dựng cơ sở dữ liệu phân tán 8

1.4.1 Phân đoạn 8

1.4.3 Định vị dữ liệu 13

1.5 Kết luận 14

Chương 2 CÁC NGUYÊN LÝ CHUNG CỦA TỐI ƯU HÓA CÂU TRUY VẤN PHÂN TÁN 15

2.1 Các chiến lược tối ưu hóa cơ bản 15

2.2 Các phép biến đổi đại số 16

2.2.1 Các yêu cầu của phép biến đổi tối ưu hoá câu truy vấn 16

2.2.2 Biểu thức tương đương 17

2.2.3 Các qui tắc liên quan đến phép kết nối và tích Decartes 17

2.2.4 Các qui tắc liên quan đến phép chọn và phép chiếu 18

2.2.5 Thuật toán cải tiến cây biểu diễn biểu thức quan hệ 19

2.3 Phân rã câu truy vấn thành những câu truy vấn con 24

2.3.1 Đồ thị nối các quan hệ 24

2.3.2 Tách câu truy vấn thành các câu truy vấn con 25

2.3.3 Dùng phép nửa kết nối để giảm kích thước quan hệ 26

2.3.4 Phương pháp thay thế n-bộ 26

2.4 Các kỹ thuật tối ưu hóa tập trung 27

2.4.1 Thuật toán INGRES 28

Trang 4

2.4.2 Thuật toán SYSTEM R 31

2.5 Kết luận 34

Chương 3 TỐI ƯU HÓA TRUY VẤN PHÂN TÁN 35

3.1 Phân rã câu truy vấn 35

3.1.1 Chuẩn hoá 35

3.1.2 Phân tích 36

3.1.3 Loại bỏ dư thừa 39

3.1.4 Viết lại 40

3.2 Định vị dữ liệu phân tán 42

3.2.1 Rút gọn phân đoạn ngang nguyên thuỷ 43

3.2.2 Rút gọn phân đoạn dọc 46

3.2.3 Rút gọn phân đoạn gián tiếp 47

3.2.4 Rút gọn phân đoạn hỗn hợp 49

3.3 Khái quát về xử lý câu truy vấn 50

3.3.1 Vấn đề xử lý truy vấn 51

3.3.2 Các mục tiêu của xử lý câu truy vấn 52

3.3.3 Các giai đoạn xử lý câu truy vấn 52

3.4 Tối ưu hoá các truy vấn phân tán 53

3.4.1 Đầu vào bộ tối ưu hoá câu truy vấn 54

3.4.2 Thứ tự kết nối trên các câu truy vấn đoạn 59

3.4.3 Các thuật toán tối ưu hoá câu truy vấn phân tán 65

3.4.3 Kết luận 82

Chương 4 CÀI ĐẶT VÀ THỬ NGHIỆM THUẬT TOÁN 85

4.1 Xác định thuật toán 85

4.2 Cài đặt thử nghiệm thuật toán tối ưu truy vấn trong cơ sở dữ liệu phân tán 85

4.2.1 Cấu trúc của CSDL 85

4.2.2 Xây dựng ứng dụng 88

4.3 Kết luận 95

KẾT LUẬN 96

TÀI LIỆU THAM KHẢO 97

Trang 5

PHẦN MỞ ĐẦU

1 Lý do chọn đề tài

Xã hội ngày càng phát triển kèm theo yêu cầu khối lượng thông tin cần xử

lý, lưu trữ tăng lên Trên thực tế, các doanh nghiệp, các đơn vị và các tổ chức phải phân bố trên một vùng rộng lớn về mặt địa lý, có thể dàn trải trên phạm vi nhiều thành phố, hoặc toàn bộ quốc gia hay đến 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 công tác chuyên môn không bị ảnh hưởng, không bị gián đoạn được đặt ra Đó chính là tiền đề để cơ sở dữ liệu phân tán ra đời

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 hoá các câu lệnh khi

truy vấn dữ liệu nên tôi chọn nghiên cứu “Tối ưu hoá truy vấn trong cơ sở dữ liệu phân tán” làm đề tài luận văn tốt nghiệp của mình

2 Phạm vi nghiên cứu và ứng dụng

Đề tài nghiên cứu về các vấn đề cơ bản của cơ sở dữ liệu phân tán, các nguyên lý chung, các kỹ thuật, các thuật toán liên quan đến vấn đề tối ưu hoá truy vấn và cài đặt thử nghiệm một thuật toán tối ưu truy vấn phân tán

3 Ý nghĩa khoa học

Trên cơ sở nghiên cứu các mô hình CSDL phân tán và các cơ chế truy vấn để xây dựng thuật toán truy vấn tối ưu Những kết quả dự kiến của luận văn sẽ góp phần vào việc thiết kế CSDL phân tán phục vụ cho việc truy vấn hiệu quả

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

Nghiên cứu lý thuyết CSDL, CSDL phân tán, các kỹ thuật truy vấn trong các sách, bài báo đã công bố Tổng hợp các kết quả đã công bố về truy vấn tối ưu và đề xuất một số cải tiến thực hiện tối ưu hóa truy vấn phân tán

Trang 6

5 Các kết quả dự kiến đạt được

- Giới thiệu tổng quan về CSDL phân tán

- Trình bày các phương pháp, thuật toán tối ưu hóa truy vấn phân tán

- Cài đặt thử nghiệm một thuật toán tối ưu truy vấn phân tán

Trang 7

Chương 1 CƠ SỞ DỮ LIỆU PHÂN TÁN 1.1 Khái niệm về hệ cơ sở dữ liệu phân tán

Hệ quản trị cơ sở dữ liệu phân tán (DBMS) là phần mềm quản trị cơ sở dữ liệu, đả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

Định nghĩa này nhấn mạnh hai khía cạnh quan trọng của cơ sở dữ liệu phân tán

- 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úng

ta có thể phân biệt một cơ sở dữ liệu phân tán với cơ sở dữ liệu tập trung

- Sự tương quan logic: Các dữ liệu có một số tính chất ràng buộc lẫn nhau và như vậy có thể phân biệt cơ sở dữ liệu phân tán với tập các cơ sở dữ liệu địa phương hoặc với các tệp ở các trạm khác nhau trên mạng

1.1.2 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ụng trên mạng có thể truy nhập được [6]

1 Cho phép quản lý dữ liệu với nhiều mức trong suốt

- Trong suốt mạng - phân tán: 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

- Trong suốt bản sao

- Trong suốt phân đoạn

2 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

Trang 8

thời gian nào đó Khi dữ liệu và 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

3 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 cho 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, 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ố các 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

4 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ững nhược điểm của cơ sở dữ liệu phân tán

- Độ 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

- Hệ thống phần cứng cũng phức tạp hơn vì cần có nhiều trạm và các trạm phải được kết nối trên mạng

- 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

Ở 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ơ

Trang 9

sở dữ liệu phân tán với hệ cơ sở dữ liệu tập trung [6]:

- 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ư là ở hình 1.1

Hình 1.1 Kiến trúc cơ sở dữ liệu phân tán

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

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

Trang 10

- Trong suốt phân tán thể hiện:

+ Trong suốt địa điểm: User không cần biết lưu trữ vật lý của dữ liệu ở đâu, trong truy vấn chỉ cần chỉ ra tên đoạn mà không cần chỉ ra vị trí

+ 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 Cá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ể truy nhập dữ liệu tại các trạm 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 trạm từ xa có sự cố Trong suốt bản sao đảm bảo user 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 đ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ành các bộ dữ liệu hoặc các quan hệ con và lưu trữ trên nhiều trạm khác nhau 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ệu tậ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ông hoặc roll back 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ình thườ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ếu mạ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ân tán thì giao dịch đó được giải quyết tự động và trong suốt theo nghĩa khi mạng hoặ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à roll back 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ở

Trang 11

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 khô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ệu phâ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 [8]

- Lược đồ tổng thể: Là 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ông giao 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ác trạm khác nhau

Trang 12

Hình 1.2: Kiến trúc tham chiếu của cơ sở dữ liệu phân tán

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 đoạn

- 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 đoạn dữ liệu hoặc định vị các bản sao phân đoạn lưu trữ dữ liệu trên các trạm khác nhau

1.4.1 Phân đoạn

Sự phân đoạn là chia dữ liệu trong các bảng dữ liệu thành các bộ hoặc các bảng dữ liệu con Có ba kiểu phân đoạn một quan hệ tổng thể: Phân đoạn ngang, phân đoạn dọc và phân đoạn hỗn hợp [8]

định vị

Trang 13

Một sự phân đoạn 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 đoạn, 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 đoạn 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ổng thể từ các đoạn đã có

- Điều kiện rời nhau (chỉ áp dụng cho phân đoạn ngang): Để tối thiểu hoá sự lặp lại của dữ liệu

1.4.1.1 Phân đoạn ngang

Phân đoạn ngang là sự phân chia một quan hệ thành các tập con các bộ, mỗi tập con được xác định bởi phép chọn với tân từ p trên quan hệ tổng thể R:

Ri =p i, với pi là tân từ của Ri Để có thể khôi phục được R ta dùng phép hợp các quan hệ R = R1 R2  Rn

Ta tách quan hệ NHACUNGCAP thành hai quan hệ NCC1 và NCC2

thuộc hai chi nhánh „HN‟ và „HP‟ Ta có phân đoạn ngang:

Thoả mãn:

- Điều kiện xây dựng lại: NHACUNGCAP = NCC1  NCC2

- Điều kiện rời nhau thoả mãn vì: NCC1 NCC2 = 

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 14

đầ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 đoạn ngang dẫn tiếp

Phân đoạn ngang dẫn tiếp là sự phân chia một quan hệ ban đầu thành các quan hệ thứ hai khác mà các quan hệ đó liên hệ với quan hệ ban đầu bằng một khoá 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

- Đ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ó SHNCC nào trong quan hệ CUNGCAP mà lại không chứa trong quan hệ NHACUNGCAP Ở đây có ràng buộc toàn vẹn tham chiếu

s  CUNGCAP => phải  pNHACUNGCAP mà p.SHNCC= s.SHNCC

p.SHNCC  NCC1 qua ⋉ => s CUNGCAP1 hoặc

p.SHNCC  NCC2 qua ⋉ => s CUNGCAP2

Trang 15

=> 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 đoạn 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ổng thể thì nó cũng phải xuất hiện trong một đoạn dọc nào đó

- Điều kiện xây dựng lại: Cần phải thêm vào mỗi đoạn khoá chính, do đó việc xây dựng lại được nhờ vào phép kết nối các đoạn dọc theo các thuộ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 đoạn

để 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ý SHPHONG: Số hiệu phòng

Trang 16

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 đoạn, 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 đoạn hỗn hợp

Là sự kết hợp cả phân đoạn dọc và phân đoạn 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

Hình 1.3: 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 đoạn hỗn hợp có thể biểu diễn dưới dạng cây phân đoạn Trong cây phân đoạn, nút gốc tương ứng quan hệ tổng thể, các nút ở giữa tương ứng với các kết quả trung gian của thể hiện định nghĩa phân đoạn Cho ví dụ, hình 1.3 thể hiện

Trang 17

cây phân đoạn của quan hệ NHANVIEN Nút gốc (quan hệ NHANVIEN) được phân đoạn 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 đoạn ngang, do vậy sinh ra ba nút lá khác, tương ứng với ba phân đoạn: 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ên

trạ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ên mạ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ức tạp hơn

2 Không có nhân bản dữ liệu: Mỗi phân đoạn chỉ được lưu trữ trên một trạm, phương án này còn được gọi là định vị không dư thừa dữ liệu Trong trườ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ống nhau 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 đoạn có thể được tạo bản sao

và có thể một số phân đoạn sẽ không có bản sao Việc tạo bản sao này rất có tác dụ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ào yê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 trạ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, giao dị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ác giao 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 cho phần dữ liệu đó nên được định vị trên trạm đó

Trang 18

1.5 Kết luận

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ập trung 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ền thố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áp khá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ể được cung 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ốt là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 19

Chương 2 CÁC NGUYÊN LÝ CHUNG CỦA TỐI ƯU HÓA CÂU TRUY

VẤN PHÂN TÁN

Các ngôn ngữ hỏi bậc cao như SQUARE, SEQUEL, SQL, cho phép viết nhiều câu truy vấn với sự quan tâm nhiều đến thời gian thực hiện, và thời gian thực hiện đó có thể giảm đáng kể nếu bộ xử lý ngôn ngữ hỏi viết lại (bằng cách khác) câu truy vấn trước khi thực hiện Sự cải tiến như vậy thường gọi là "Sự tối ưu hoá", mặc dù câu truy vấn được viết lại không cần tối ưu trên tất cả các cách cài đặt câu truy vấn có thể Chương này sẽ trình bày một số phương pháp tối ưu hóa các biểu thức quan hệ, đặc biệt là xử lý biểu thức liên quan đến phép kết nối và tích Decartes, xem xét các kỹ thuật điển hình INGRES và System R

2.1 Các chiến lược tối ưu hóa cơ bản

Trong ngôn ngữ hỏi dựa trên đại số quan hệ, các truy vấn liên quan đến tích Decartes và phép kết nối là rất tốn thời gian

Ví dụ 2.1: Xét biểu thức AB × CD (AB là một quan hệ với các thuộc tính A, B); ta đồng nhất hai quan hệ này với hai tệp dữ liệu Để đưa ra giá trị của tích Decartes này phải duyệt hết bản ghi của một quan hệ, chẳng hạn AB, ở vòng ngoài, với mỗi bản ghi r của tệp AB, duyệt tệp CD ở vòng trong và nối r với mỗi bản ghi của tệp

CD Giả sử quan hệ AB có n bản ghi, CD có m bản ghi thì tích Decartes AB × CD

có n × m bản ghi Rõ ràng phép tính trên rất tốn kém về thời gian và ô nhớ

Ullman J.D trong các kết quả nghiên cứu của mình đã trình bày 6 chiến lược tổng quát cho việc tối ưu hóa câu truy vấn ý tưởng tối ưu chia làm 2 nhóm: Nhóm 1 gồm các phép biến đổi đại số có liên quan hoặc không liên quan đến cách lưu trữ các quan hệ, nhóm 2 gồm các chiến lược có lợi cho việc lưu trữ các quan hệ như khoá, chỉ số Các chiến lược thực hiện như sau [5]:

1 Thực hiện phép chọn sớm nhất có thể: Biến đổi câu truy vấn để đưa phép chọn

vào thực hiện trước nhằm làm giảm kích thước của kết quả trung gian, do đó tiết kiệm thời gian thực hiện và không gian nhớ

2 Tổ hợp phép chọn xác định với phép tích Decartes thành phép kết nối: Ta đã

biết, phép kết nối đặc biệt là kết nối bằng có thể thực hiện nhanh hơn đáng kể so với phép tích Decartes trên cùng các quan hệ Nếu kết quả của tích Decartes R × S

là đối số của phép chọn và phép chọn có liên quan đến phép so sánh giữa các thuộc tính của R và S thì ta đưa về phép kết nối để giảm chi phí tính toán

Trang 20

3 Tổ hợp dãy các phép toán một ngôi như phép chọn và phép chiếu: Bất kỳ dãy các

phép toán một ngôi như phép chọn hoặc phép chiếu có kết quả phụ thuộc vào các

bộ của một quan hệ độc lập thì có thể nhóm các phép đó lại Tương tự, ta có thể nhóm các phép toán một ngôi với kết quả của phép toán hai ngôi bằng cách áp dụng các phép toán một ngôi với mỗi bộ kết quả của phép toán hai ngôi

4 Tìm các biểu thức con chung trong một biểu thức: Nếu kết quả của một biểu thức

con chung (biểu thức xuất hiện hơn một lần) là một quan hệ không lớn và nó có thể được đọc từ bộ nhớ thứ cấp với ít thời gian, thì nên tính toán trước biểu thức đó chỉ một lần Nếu biểu thức con chung, có liên quan đến phép kết nối, thì trong trường hợp tổng quát không thể được thay đổi nhờ việc đẩy phép chọn vào trong

5 Xử lý các tệp trước: Hai vấn đề quan trọng cần xử lý trước cho các tệp số là sắp

xếp các tệp và thiết lập các tệp chỉ số, khi đó thực hiện các phép toán liên quan đến hai tệp (phép tính hai ngôi) sẽ nhanh hơn nhiều

6 Đánh giá trước khi thực hiện phép toán: Khi cần chọn trình tự thực hiện các

phép toán trong biểu thức hoặc chọn một trong hai đối của phép toán hai ngôi, ta nên tính toán chi phí thực hiện các phép toán đó (thường là số phép tính, thời gian, dung lượng bộ nhớ theo kích thước các quan hệ, ) theo các cách khác nhau Từ đó

sẽ quyết định phương án có chi phí thấp

2.2 Các phép biến đổi đại số

Hầu hết các chiến lược trên liên quan đến biến đổi biểu thức đại số Một xử

lý câu truy vấn bắt đầu với việc xây dựng cây phân tích biểu thức đại số, trong đó các nút biểu diễn toán tử đại số quan hệ và toán tử đặc biệt của ngôn ngữ Ngôn ngữ hỏi có thể là ngôn ngữ đại số quan hệ như SQUARE, SEQUEL, hoặc là một ngôn ngữ phép tính quan hệ mà các biểu thức phép tính được chuyển thành biểu thức đại số

2.2.1 Các yêu cầu của phép biến đổi tối ưu hoá câu truy vấn

- Các phép biến đổi phải thực sự hữu hiệu đối với phần lớn các dạng câu truy vấn hay một lớp các câu truy vấn thường dùng mà không phải chi phí quá nhiều để thực hiện quá trình biến đổi đó

- Các phép biến đổi phải bảo toàn kết quả của câu truy vấn trước và sau khi biến đổi, có nghĩa là hai biểu thức trước và sau khi biến đổi phải cho cùng một kết quả khi thay các lược đồ trong biểu thức bởi các thể hiện cụ thể

- Các phép biến đổi phải làm giảm chi phí để thực hiện câu truy vấn Chi

Trang 21

phí cho xử lý câu truy vấn có rất nhiều yếu tố, tuy nhiên ta chỉ quan tâm đến một số thông báo cơ bản nhất sau đây: số lần truy xuất khối nhớ giữa bộ nhớ trong và bộ nhớ ngoài; số bản ghi cần phải xử lý ở thiết bị trung tâm; phần bộ nhớ để lưu trữ các kết quả trung gian trong quá trình thực hiện câu truy vấn

2.2.2 Biểu thức tương đương

Hai biểu thức E1 và E2 gọi là tương đương, ký hiệu E1  E2, nếu quan hệ kết quả của hai biểu thức là như nhau khi thay các lược đồ bởi các thể hiện cụ thể Với định nghĩa tương đương này ta có một số phép biến đổi đại số có lợi [5]

2.2.3 Các qui tắc liên quan đến phép kết nối và tích Decartes

 Qui tắc giao hoán của phép kết nối và tích Decartes

Nếu E1 và E2 là các biểu thức quan hệ; p là điều kiện trên các thuộc tính E1

B2, , Bm vào tập giá trị sao cho các ánh xạ 1r1 và 2r2 thỏa mãn:

v[Ai] = m1[Ai], i =1,2, , n

v[Bi] = m2[Bi], i =1,2, , m

và biểu thức điều kiện p đúng khi thay v[C] cho mỗi thuộc tính C trong p

Nếu biểu diễn E2  E1 theo kiểu này, nó hoàn toàn cho cùng một tập kết quả Do vậy hai biểu thức là tương đương

Chú ý: Nếu xem quan hệ là tập các bộ thì phép kết nối, kết nối tự nhiên, tích Decartes sẽ không giao hoán vì thứ tự các thuộc tính trong quan hệ kết quả bị thay đổi

 Qui tắc kết hợp của phép kết nối và phép tích Decartes

Nếu E1, E2, E3 là biểu thức quan hệ; p1, p2 là biểu thức điều kiện thì:

(E1p1 E2)p2E3 E1p1(E2p2 E3)

(E1 E2) E3 E1(E2 E3)

(E1 E2) E3 E1 (E2 E3)

Trang 22

2.2.4 Các qui tắc liên quan đến phép chọn và phép chiếu

Qui tắc hợp nhất của các phép chiếu: Dãy các phép chiếu có thể tổ hợp thành

một phép chiếu

A1, ,An(B1, ,Bm(E))A1, ,An(E)

Với các thuộc tính A1, A2, , An phải nằm trong tập các thuộc tính B1, B2, ,Bm

Qui tắc hợp nhất của các phép chọn: Dãy các phép chọn có thể tổ hợp thành

một phép chọn

p1(p2(E))p1  p2(E)

Qui tắc giao hoán của phép chọn và phép chiếu

Nếu p liên quan đến các thuộc tính A1, A2, , An thì:

A1, ,An(p(E))p(A1, ,An(E))

Nếu p liên quan đến các thuộc tính B1, B2, ., Bm mà không thuộc tập thuộc tính A1, A2, ,An thì:

A1, ,An(p(E))A1, ,An(p(A1, ,An, B1, ,Bm (E)))

Qui tắc giao hoán của phép chọn và tích Decartes

Nếu tất cả các thuộc tính của p là thuộc tính của E1 thì:

 Qui tắc giao hoán của phép chọn và phép hợp

Nếu biểu thức E = E1 E2, giả sử các thuộc tính của E1 và E2 có cùng tên như của E hoặc ít nhất mỗi thuộc tính của E là phù hợp với một thuộc tính duy nhất của E1 và một thuộc tính duy nhất của E2 thì:

p(E1 E2) p(E1) p(E2)

Nếu tên các thuộc tính của E1 và / hoặc E2 khác tên thuộc tính của E thì trong p ở vế phải của công thức trên cần sửa đổi để sử dụng tên cho phù hợp

Trang 23

 Qui tắc giao hoán của phép chọn và phép hiệu tập hợp

Phép kết nối thực hiện tốn thời gian, nên thường đẩy phép chọn xuống trước phép kết nối theo qui tắc , ,  Qui tắc đẩy phép chiếu xuống trước phép tích Decartes hoặc phép hợp tương tự như qui tắc , ,  Không có phương pháp tổng quát cho việc đẩy phép chiếu xuống trước phép hiệu các tập hợp

 Qui tắc giao hoán của phép chiếu với tích Decartes

E1, E2 là hai biểu thức quan hệ: A1, ,An là tập các thuộc tính trong đó

B1, ,Bm là các thuộc tính của E1, các thuộc tính còn lại C1, ,Ck thuộc E2 Khi đó:

2.2.5 Thuật toán cải tiến cây biểu diễn biểu thức quan hệ

Chúng ta có thể áp dụng các qui tắc trên để tối ưu các biểu thức quan hệ Biểu thức "tối ưu" kết quả phải tuân theo các nguyên tắc trong mục 2.1, mặc

dù các nguyên tắc không có nghĩa bảo đảm để tối ưu cho tất cả các biểu thức tương đương [5]

Đầu ra của thuật toán này là một chương trình, bao gồm các bước như sau:

1 Áp dụng của một phép chọn hoặc một phép chiếu đơn giản

2 Áp dụng của một phép chọn và một phép chiếu, hoặc

3 Áp dụng của một tích Decartes, phép hợp hoặc phép hiệu tập hợp cho hai biểu thức mà trước đó các phép chọn và / hoặc các phép chiếu đã được áp dụng cho một hay hai hạng thức

Trang 24

Thuật toán: Tối ưu hóa biểu thức quan hệ

Vào: Cây biểu diễn biểu thức quan hệ

Ra: Chương trình đánh giá biểu thức đó

5 Chia các nút trong cây kết quả thành các nhóm sau: Mỗi nút biểu diễn một phép toán hai ngôi ,, hoặc - là trong cùng nhóm với bất kỳ các nút gốc trực tiếp của

nó được gán bởi phép , Nhóm cũng bao gồm các nút lá được gán bởi phép toán một ngôi trừ trường hợp phép toán hai ngôi là tích Decartes và không được xác định bởi phép chọn để tạo thành phép kết nối

6 Đưa ra chương trình đánh giá mỗi nhóm theo thứ tự bất kỳ

Ví dụ 2.2: Xét cơ sở dữ liệu thư viện bao gồm các quan hệ sau:

SACH(TENSACH, TACGIA, TEN_NXB, SHTV): Quan hệ sách

NHAXB(TEN_NXB, DC_NXB, TP_NXB): Quan hệ nhà xuất bản

DOCGIA(TEN, DIACHI, THPHO, SOTHE): Quan hệ độc giả

MUON(SOTHE, SHTV, NGAY): Quan hệ cho mượn

Trong đó các thuộc tính là:

TEN_NXB: Tên nhà xuất bản

SHTV: Số hiệu thư viện

DC_NXB: Địa chỉ nhà xuất bản

TP_NXB: Thành phố nơi nhà xuất bản đóng

Trang 25

SOTHE: Số thẻ thư viện của độc giả

TEN: Tên độc giả

DIACHI: Điạ chỉ độc giả

THPHO: Thành phố nơi độc giả ở

NGAY: Ngày mượn sách

Để lưu trữ thông tin về sách, giả sử có một khung nhìn XMUON bao gồm một số thông tin bổ sung về sách cho mượn XMUON là kết nối tự nhiên của quan hệ SACH, DOCGIA, MUON có thể xác định như sau:

S(P(MUON DOCGIA SACH)

Trong đó:

P = DOCGIA.SOTHE = MUON.SOTHE and SACH.SHTV = MUON.SHTV

S = TENSACH, TACGIA, TEN_NXB, SHTV, TEN, DIACHI, THPHO, SOTHE, NGAY

Cần đưa ra danh sách những cuốn sách đã cho mượn trước ngày 1/1/2004

TENSACHNGAY<1/1/2004(XMUON)

Sau khi thay thế cho XMUON, biểu thức trên biểu diễn dạng cây như sau:

Trang 26

Hình 2.1: Cây biểu diễn biểu thức hỏi

Bước1: Tách phép chọn p thành hai phép chọn với điều kiện

SACH.SHTV=MUON.SHTV và DONGIA.SOTHE=MUON.SOTHE

Đẩy sâu một trong ba phép chọn xuống đến mức có thể trong cây biểu diễn Phép chọn NGAY<1/1/2004 được đẩy xuống dưới phép chiếu và hai phép chọn kia bởi qui tắc  và  Phép chọn này áp dụng cho tích (MUON DOCGIA) SACH),

vì thuộc tính NGAY trong phép chọn chỉ ở quan hệ MUON nên có thể thay:

NGAY<1/1/2004 ((MUON DOCGIA) SACH

bởi:

(NGAY<1/1/2004 (MUON DOCGIA)) SACH

Cuối cùng bởi:

((NGAY<1/1/2004 (MUON)) DOCGIA) SACH)

Phép chọn này đã được đẩy xuống sâu đến mức có thể Phép chọn với điều kiện SACH.SHTV = MUON.SHTV không thể đẩy xuống dưới tích Decartes vì nó liên quan tới một thuộc tính của quan hệ SACH và một thuộc tính không thuộc quan hệ SACH Tuy nhiên, phép chọn DONGIA.SOTHE = MUON.SOTHE có thể đẩy xuống để áp dụng cho tích Decartes

NGAY<1/1/2004 (MUON) DOCGIA, MUON.SOTHE là tên một thuộc tính củaNGAY<1/1/2004 (MUON)

Bước 2: Tổ hợp hai phép chiếu thành một phép chiếu TENSACH nhờ qui tắc  và kết quả như hình 2.2 Sau đó áp dụng qui tắc  thay TENSACH và SACH.SHTV=MUON.SHTV

bởi:

TENSACH

SACH.SHTV=MUON.SHTV

TENSACH, SACH.SHTV, MUON.SHTV

Áp dụng qui tắc  để thay thế phép chiếu cuối cùng bởi

TENSACH,SACH.SHTV áp dụng cho SACH và MUON.SHTV áp dụng cho hạng thức bên trái của tích Decartes trong hình 2.2

Trang 27

Hình 2.2: Cây với tổ hợp phép chọn

Phép chiếu cuối tác động với phép chọn bởi luật  để có dãy

MUON.SHTV

DOCGIA.SOTHE=MUON.SOTHE

MUON.SHTV, DOCGIA.SOTHE, MUON.SOTHE

Phép chiếu cuối cùng được tách xuống tích Decartes bởi qui tắc và một phần xuống phép chọn NGAY<1/1/2004 bởi qui tắc  Trong biểu thức MUON.SHTV, MUON.SOTHE, NGAY phép chiếu là không cần thiết, vì thuộc tính của MUON đã được đề cập, vì vậy loại bỏ phép chiếu này Cây biểu diễn cuối cùng ứng với hình 2.3

Trang 28

Hình 2.3: Cây kết quả với sự phân nhóm các phép toán

Các phép toán được nhóm bởi đường gián đoạn, nhóm các phép toán phía dưới sẽ được thực hiện trước

2.3 Phân rã câu truy vấn thành những câu truy vấn con

Giả sử có các quan hệ R1, R2, ,Rk; Một câu truy vấn trên các quan hệ Ri

(0<ik) có thể xem là tích Decartes của các quan hệ thỏa các điều kiện p1, p2, ,pn, trong đó, không mất tính tổng quát ta có thể giả sử các pi (0<in) có dạng Rj.A

a (a là hằng số, là phép kết nối nhận một trong các giá trị {=, >, , <, ≤,}) hoặc

Rj.A Rh.B Để biểu diễn câu truy vấn, ta dùng một đồ thị nối các quan hệ [4]

Trang 29

nối) ta biểu diễn trên đồ thị một khuyên tại đỉnh Ri, trên đó ghi các phép chọn dạng trên

Nếu hai quan hệ Ri và Rj có các phép kết nối dạng Rj.A Rj.B, ta biểu diễn trên đồ thị bằng cung nối 2 đỉnh Ri và Rj trên đó ghi các phép nối dạng trên

Ví dụ 2.3 Với cơ sở dữ liệu thư viện trên, xét câu truy vấn: "Tìm tên những cuốn sách và tên độc giả đã mượn sách trước ngày 1/1/2004" Đồ thị nối các quan hệ như sau:

Hình 2.4: Đồ thị nối các quan hệ

2.3.2 Tách câu truy vấn thành các câu truy vấn con

Phương pháp này thực hiện việc tách một câu truy vấn phức tạp Q thành các câu truy vấn con Q1, Q2, , Qm mà giữa các câu truy vấn này có quan hệ ràng buộc với nhau

Việc tách các câu truy vấn phức tạp thành các câu truy vấn con làm đơn giản việc tính kết quả câu truy vấn và làm giảm kích thước của các kết quả trung gian trong quá trình tính toán Hơn nữa, trong các hệ phân tán, việc tách câu truy vấn thành các câu truy vấn con sẽ làm tăng khả năng xử lý câu truy vấn vì các câu truy vấn con có thể được xử lý tại các máy trạm và sử dụng dữ liệu cục bộ

Ví dụ 2.4: Để thực hiện câu truy vấn ở ví dụ 2.3, ta tách thành các câu truy vấn con như sau:

Q1: "Tìm trong quan hệ MUON những số hiệu sách đã cho mượn trước ngày 1/1/2004" giả sử kết quả là R1

Q2: "Tìm trong quan hệ DOCGIA những độc giả đã mượn những cuốn sách có trong

R1", quan hệ kết quả R2

Trang 30

Q3: "Tìm trong quan hệ SACH những cuốn sách đã cho mượn trong R2", quan hệ kết quả R3

Kết quả câu truy vấn: "Chọn tên những cuốn sách trong R3"

2.3.3 Dùng phép nửa kết nối để giảm kích thước quan hệ

Vì phép kết nối và tích Decartes tốn nhiều thời gian và bộ nhớ trong khi nhiều yêu cầu của câu truy vấn chỉ dùng nửa kết nối

Để thực hiện câu truy vấn sử dụng phép nửa kết nối, đầu tiên trên đồ thị nối các quan hệ ta phải khử các khuyên bằng cách thực hiện phép chọn trên các quan hệ Sau đó sử dụng phép nửa kết nối để nối các cặp quan hệ có cung nối với nhau

Ví dụ 2.5: Sử dụng câu truy vấn trong ví dụ 2.3 Khử các khuyên của đồ thị nối các quan hệ ta được

Hình 2.5: Đồ thị nối các quan hệ

Thực hiện các phép nửa kết nối giữa hai đỉnh của đồ thị có cung nối:

R1 = DOCGIA ⋉DOCGIA.SOTHE =MUON.SOTHEMUON

Trang 31

tự từng bộ trong Ri ứng với mỗi bộ ta có một câu truy vấn con mà chu trình đã được gỡ bỏ (hình 2.7) Hợp tất cả kết quả của các câu truy vấn con sẽ cho ta kết quả của câu truy vấn Thông thường ta chọn Ri là quan hệ có ít bộ nhất để giảm số câu truy vấn con cần thực hiện

Hình 2.6: Đồ thị nối các quan hệ có chu trình

Hình 2.7 Gỡ bỏ chu trình bằng cách thay thế n - bộ

2.4 Các kỹ thuật tối ƣu hóa tập trung

Phần này sẽ trình bày 2 kỹ thuật tối ưu hoá câu truy vấn đối với hệ tập trung

Sự biểu diễn này là điều kiện để tối ưu hóa câu truy vấn phân tán với ba lý do:

- Một câu truy vấn phân tán được biến đổi thành các câu truy vấn địa phương được xử lý theo cách tập trung

- Các kỹ thuật tối ưu hoá câu truy vấn phân tán thường là sự mở rộng các kỹ thuật đối với hệ tập trung

- Tối ưu hoá tập trung thường là vấn đề đơn giản, sự tối thiểu hoá chi phí truyền thông dẫn đến tối ưu hoá câu truy vấn phân tán phức tạp hơn

Trang 32

2.4.1 Thuật toán INGRES

INGRES sử dụng thuật toán tối ưu hoá câu truy vấn động, chia một truy vấn phép tính quan hệ thành các truy vấn nhỏ hơn Một truy vấn đa biến đầu tiên được phân tích thành một dãy các truy vấn con có một biến duy nhất chung, mỗi truy vấn con được dựa vào kết quả của truy vấn con trước đó Sau đó, mỗi truy vấn con được xử lý bởi "bộ xử lý truy vấn một biến" (OVQP: one-variable query processor) OVQP tối ưu truy nhập tới một quan hệ đơn, bằng cách lựa chọn phương pháp truy nhập tốt nhất (chỉ số, quét tuần tự) Ví dụ: với tân từ dạng <A = value> thì nên dùng một chỉ số trên A; với tân từ dạng <Avalue> thì nên dùng quét tuần tự

Câu truy vấn q được phân tích thành hai câu truy vấn con qi-1 và qi, ký hiệu q

i-1 qi, nghĩa là qi-1 được thực hiện trước và kết quả của nó được sử dụng bởi qi

Bộxử lý câu truy vấn INGRES phân tích q thành n câu truy vấn q1 q2 q3 

qn Sự phân tích này sử dụng hai kỹ thuật cơ bản phân tách và thay thế

Nếu q biểu diễn dạng:

Trang 33

Trong đó:R‟1 là quan hệ tạm thời bao hàm các thông tin cần thiết cho tiếp tục truy vấn

Ví dụ 2.6: Xét lược đồ quan hệ sau:

KYSU(SHKS, TENKS, NGHE)

HOSODA(SHKS, SHDA, TRNH,THOIGIAN)

DUAN(SHDA, TENDA, NGANSACH)

Trong đó:

SHKS: Số hiệu kỹ sư TENKS: Tên kỹ sư NGHE: Nghề nghiệp SHDA: Số hiệu dự án TRNH: Trách nhiệm với dự án THOIGIAN: Thời gian được giao theo tháng Câu truy vấn: "Tìm tên kỹ sư làm việc cho dự án CAD/CAM"

q1: SELECT KYSU.TENKS

FROM KYSU,HOSODA,DUAN WHERE KYSU.SHKS = HOSODA.SHKS AND HOSODA.SHDA = DUAN.SHDA AND TENDA = "CAD/CAM"

q1được thay bởi q11 q', trong đó JTG là quan hệ trung gian

q11: SELECT DUAN.SHDA INTO JTG

q12 : SELECT HOSODA.SHKS INTO GTG;

FROM HOSODA, JTG

Trang 34

WHERE HOSODA.SHDA = JTG.SHDA

q13: SELECT KYSU.TENKS

FROM KYSU,GTG WHERE KYSU.SHKS = GTG.SHKS Như vậy, q1 có thể biến đổi thành q11q12q13 Câu truy vấn q11 là đơn biến và có thể thực hiện bởi OVQP, q12 và q13 không là đơn biến và không thể rút gọn bởi phân tách

Một truy vấn con đa biến, không thể tiếp tục phân tách (ví dụ q12, q13), được biến đổi thành tập các truy vấn con có ít nhất một biến bởi sự thay thế bộ Cho một câu truy vấn q n – biến, các bộ của một biến được thay thế bởi các giá trị của chúng, do đó đưa ra một bộ của các truy vấn (n -1) – biến Sự thay thế bộ tiến hành như sau:

- Một biến trong q được chọn để thay thế bộ, ví dụ V1

- Với mỗi bộ t1i trong R1, các thuộc tính thuộc V1 trong q được thay thế bởi các giá trị thực của chúng trong t1i, do đó sinh ra truy vấn q' với n -1 biến Như vậy, tổng số các truy vấn q' được đưa ra bởi thay thế bộ là card(R1) Sự thay thế bộ có thể tóm tắt như sau:

q(V1, V2, V3, ,Vn) được thay thế bởi { q'(t1i, V2, V3, ,Vn), t1iR1}

Ví dụ 2.7: Xét truy vấn q13

q13: SELECT KYSU.TENKS

FROM KYSU,GTG

WHERE KYSU.SHKS = GTG.SHKS

Quan hệ được xác định bởi biến GTG trên một thuộc tính đơn (SHKS) Giả sử

nó chỉ chứa hai bộ <E1> và <E2> Sự thay thế của GTG sinh ra hai câu truy vấn con một biến:

q131: SELECT KYSU.TENKS

FROM KYSU

WHERE KYSU.SHKS = "E1"

Trang 35

q132: SELECT KYSU.TENKS

FROM KYSU

WHERE KYSU.SHKS = "E2" Truy vấn có thể xử lý bởi VOQP

Sau đây là thuật toán tối ưu hóa câu truy vấn của INGRES, gọi là QOA[7]

INGRES-Thuật toán: INGRES-QOA

Input: MVQ: Truy vấn đa biến với n biến

Output: output: Kết quả thực hiện

Begin

output

if n=1 then

outputrun(MVQ) {Thực hiện truy vấn một biến}

else begin {tách MVQ thành m truy vấn một biến và một truy vấn nhiều

biến}

OVQ1, ,OVQm, MVQ' MVQ

for i 1 to m do

begin

output' run(OVQi) {Thực thi OVQi}

outputoutput output' {hợp tất cả các kết quả}

endfor

VCHOOSE-VARIABLE(MVQ') {V được chọn cho phép thế bộ}

for mỗi bộ t V do

begin

MVQ" thay thế các giá trị cho t trong MVQ' output

INGRES-QOA(MVQ") {gọi đệ quy} output

output output {hợp tất cả các kết quả}

end

Endif

End

2.4.2 Thuật toán SYSTEM R

System R thực hiện tối ưu hóa truy vấn tĩnh, đầu vào là một cây đại số quan hệ

Trang 36

do phân tích một truy vấn SQL, đầu ra là sơ đồ thực hiện cây đại số quan hệ "tối ưu"

Thuật toán tối ưu bao gồm hai bước chính:

- Dự đoán phương pháp truy nhập tới mỗi quan hệ đơn tốt nhất dựa trên một giả thiết chọn

- Với mỗi quan hệ R, đánh giá thứ tự kết nối tốt nhất, trong đó R được truy nhập trước tiên sử dụng phương pháp truy nhập quan hệ - đơn tốt nhất của nó

Có hai thuật toán có thể để xét các phép kết nối Khi kết nối hai quan hệ, quan hệ có các bộ đọc trước gọi là quan hệ ngoài, quan hệ có các bộ được tìm thấy tùy theo các giá trị có được từ quan hệ ngoài gọi là quan hệ trong Quyết định quan trọng với mỗi phương pháp kết nối là xác định hướng truy nhập tới quan hệ trong rẻ nhất

Phương pháp 1, gọi là các vòng lặp lồng nhau, thực hiện tích hai quan hệ Với mỗi bộ của quan hệ ngoài, các bộ của quan hệ trong thoả mãn giả thiết kết nối được gọi ra để tạo quan hệ kết quả Nếu không đánh chỉ số, với các quan hệ được lưu trữ theo thứ tự trên n1, n2 bộ bản ghi, thuật toán này có chi phí là n1* n2

Phương pháp 2, gọi là kết nối trộn, kết nối hai quan hệ đã sắp xếp trên thuộc tính kết nối Nếu là kết nối bằng, chi phí của việc kết nối hai quan hệ được lưu trữ trên n1 và n2 bộ bản ghi là n1+ n2 Vì vậy, phương pháp này luôn được chọn khi có kết nối bằng, và khi các quan hệ được sắp xếp trước Nếu chỉ một hoặc không có quan hệ nào được sắp xếp, chi phí của vòng lặp lồng nhau được so sánh với chi phí của phương pháp trộn + chi phí sắp xếp Chi phí sắp xếp n bộ bản ghi là nlog2n Thuật toán tối ưu hoá System R (R- QOA), gồm hai vòng lặp [7]:

- Chọn phương pháp truy nhập quan hệ đơn tốt nhất tới mỗi quan hệ trong truy vấn

- Xét tất cả các hoán vị có thể của thứ tự kết nối (có n! hoán vị với n quan hệ) và chọn chiến lược truy nhập tốt nhất đối với câu truy vấn Các hoán vị được đưa ra bởi cấu trúc động của cây các chiến lược luân phiên

Thuật toán: R-QOA

input: QT: Cây truy vấn với n quan hệ

output: Output: kết quả thực hiện

Begin

for mỗi quan hệ RiQT do

Trang 37

Ví dụ 2.8: Thuật toán R-QOA cho câu truy vấn q1 (trong ví dụ 2.6)

Đồ thị kết nối của q1 như sau:

Hình 2.8: Đồ thị kết nối của câu truy vấn q 1

KYSU index trên SHKS

HOSODA index trên SHDA

DUAN index trên SHDA và TENDA

Giả sử vòng lặp ngoài chọn hướng truy nhập quan hệ đơn tốt nhất sau:

KYSU: Quét tuần tự (vì không có phép chọn trên KYSU)

HOSODA: Quét tuần tự (vì không có phép chọn trên HOSODA)

Trang 38

DUAN: index trên TENDA (vì có một phép chọn trên HOSODA dựa trên TENDA)

Cấu trúc động của cây các chiến lược luân phiên như hình 2.9 Các phép toán

có đánh dấu "loại bỏ" sẽ được loại bỏ tự động Mức 1 của cây chỉ ra phương pháp truy nhập tốt nhất Mức 2 chỉ ra phương pháp kết nối tốt nhất Các chiến lược (KYSUDUAN) và (DUAN KYSU) bị loại bỏ Giả sử (KYSU ⊲⊳ HOSODA) và (HOSODA ⊲⊳ DUAN) có chi phí cao hơn (HOSODA ⊲⊳ KYSU) và (DUAN

⊲⊳ HOSODA) tương ứng Như vậy chúng có thể bị loại bỏ, vì bằng cách hoán vị

có các thứ tự kết nối tương ứng tốt hơn Mức 3 đưa ra hai khả năng còn lại, thứ tự kết nối tốt nhất là chi phí ít nhất của ((HOSODA ⊲⊳ KYSU) ⊲⊳ DUAN) và ((DUAN ⊲⊳ HOSODA) ⊲⊳ KYSU) Cuối cùng dựa vào chỉ dẫn trên thuộc tính chọn và truy nhập trực tiếp tới các bộ kết nối của HOSODA và KYSU, chọn phương pháp truy nhập sau:

Hình 2.9: Các thứ tự kết nối luân phiên 2.5 Kết luận

Trong chương này đã trình bày hai kỹ thuật tối ưu hóa câu truy vấn dựa trên việc sắp xếp lại các phép toán và phân rã câu truy vấn thành những câu truy vấn con Việc kết hợp các kỹ thuật với nhau và phát triển trên mô hình phân tán

sẽ được trình bày trong chương sau

Trang 39

Chương 3 TỐI ƯU HÓA TRUY VẤN PHÂN TÁN 3.1 Phân rã câu truy vấn

Phân rã truy vấn biến đổi một câu truy vấn các phép tính quan hệ thành câu truy vấn đại số trên các quan hệ tổng thể Cả hai câu truy vấn vào và ra đều trên các quan hệ tổng thể và không quan tâm đến tính phân tán của dữ liệu Vì vậy, phân rã câu truy vấn là chung cho cả quan hệ tập trung và phân tán Trong phần này, giả sử câu truy vấn vào là đúng đắn (chỉnh) Khi việc phân rã được thực hiện xong câu truy vấn ra là chỉnh và tránh được các công việc dư thừa Giai đoạn này chia làm 4 bước [3]:

3.1.1 Chuẩn hoá

Mục đích của chuẩn hoá là biến đổi câu truy vấn về dạng chuẩn để thuận lợi cho các xử lý tiếp theo Với các ngôn ngữ quan hệ như SQL, có hai dạng chuẩn cho tân từ trong mệnh đề WHERE

Dạng chuẩn hội (conjunctive normal form) là hội () của những phép tuyển (): (p11 p12 p13  p1n)…(pm1 pm2 pm3  pmn) trong đó pij là công thức nguyên tố

Dạng chuẩn tuyển (disjunctive normal form) là tuyển () của những phép hội (): (p11 p12 p13  p1n)… (pm1 pm2 pm3 … pmn)

Phép biến đổi của tân từ không có lượng từ (,) là dễ dàng, sử dụng các qui tắc tương đương đối với các phép toán logic ((,, vµ) đã biết

Ví dụ 3.1: Xét các lược đồ quan hệ sau:

KYSU(SHKS, TENKS, NGHE)

Trang 40

AND THOIGIAN = 12 OR THOIGIAN = 24

Điều kiện tìm kiếm theo dạng chuẩn hội là:

KYSU.SHKS = HOSODA.SHKS  HOSODA.SHDA = “J1”

(THOIGIAN = 12 THOIGIAN = 24)

Điều kiện theo dạng chuẩn tuyển là:

(KYSU.SHKS = HOSODA.SHKS HOSODA.SHDA = “J1” THOIGIAN

= 12) (KYSU.SHKS = HOSODA.SHKS HOSODA.SHDA = “J1” THOIGIAN

Một câu truy vấn sai kiểu nếu một thuộc tính nào đó của nó hoặc tên quan

hệ không được định nghĩa trong lược đồ tổng thể, hoặc phép toán áp dụng cho các thuộc tính sai kiểu 

Một câu truy vấn 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ả Để xác định một câu truy vấn có sai ngữ nghĩa hay không, ta dựa trên việc biểu diễn câu truy vấn như một đồ thị, gọi là đồ thị câu truy vấn hoặc đồ thị nối Đồ thị này xác định với các câu truy vấn có liên quan đến

Ngày đăng: 03/10/2014, 20:31

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Nguyễn Kim Anh (2000), Nguyên lý các hệ cơ sở dữ liệu, NXB Giáo dục Sách, tạp chí
Tiêu đề: Nguyên lý các hệ cơ sở dữ liệu
Tác giả: Nguyễn Kim Anh
Nhà XB: NXB Giáo dục
Năm: 2000
[2] Nguyễn Xuân Huy (2000), Giáo trình về cơ sở dữ liệu, Đại học Quốc Gia Hà Nội Sách, tạp chí
Tiêu đề: Giáo trình về cơ sở dữ liệu
Tác giả: Nguyễn Xuân Huy
Năm: 2000
[3] Vũ Đức Thi (1997), Cơ sở dữ liệu - Kiến thức và thực hành, NXB Thống kê Sách, tạp chí
Tiêu đề: Cơ sở dữ liệu - Kiến thức và thực hành
Tác giả: Vũ Đức Thi
Nhà XB: NXB Thống kê
Năm: 1997
[4] Nguyễn Bá Tường (2005), Nhập môn cơ sở dữ liệu phân tán, NXB Khoa học kỹ thuật Sách, tạp chí
Tiêu đề: Nhập môn cơ sở dữ liệu phân tán
Tác giả: Nguyễn Bá Tường
Nhà XB: NXB Khoa học kỹ thuật
Năm: 2005
[5] Khoa CNTT ĐH KHTN ĐH Quốc Gia Hà Nội (2008), Hệ cơ sở dữ liệu phân tán.Tiếng Anh Sách, tạp chí
Tiêu đề: Hệ cơ sở dữ liệu phân tán
Tác giả: Khoa CNTT ĐH KHTN ĐH Quốc Gia Hà Nội
Năm: 2008
[6] M.TAMER OZSU - PATRICK VALDURIEZ (1998), Principles of Distributed Database Systems, Hill Book company Sách, tạp chí
Tiêu đề: Principles of Distributed Database Systems
Tác giả: M.TAMER OZSU - PATRICK VALDURIEZ
Năm: 1998
[7] STEFANO CERI - GIUSEPPE PELAGATTI (1998), Distributed Database Principles and Systems, McGraw Hill Book company Sách, tạp chí
Tiêu đề: Distributed Database Principles and Systems
Tác giả: STEFANO CERI - GIUSEPPE PELAGATTI
Năm: 1998
[8] JULIAN BUNN (2001), Distributed Databases, Center for Advanced Computing Research Caltech Sách, tạp chí
Tiêu đề: Distributed Databases
Tác giả: JULIAN BUNN
Năm: 2001
[9] DILSAT ABDULLAH (2003), Query Optimization in Distributed Databases, Middle East Technical University Sách, tạp chí
Tiêu đề: Query Optimization in Distributed Databases
Tác giả: DILSAT ABDULLAH
Năm: 2003

HÌNH ẢNH LIÊN QUAN

Hình 1.1 Kiến trúc cơ sở dữ liệu phân tán - luận văn thạc sĩ tối ưu hóa truy vấn trong cơ sở dữ liệu phân tán (1)
Hình 1.1 Kiến trúc cơ sở dữ liệu phân tán (Trang 9)
Hình 1.2: Kiến trúc tham chiếu của cơ sở dữ liệu phân tán - luận văn thạc sĩ tối ưu hóa truy vấn trong cơ sở dữ liệu phân tán (1)
Hình 1.2 Kiến trúc tham chiếu của cơ sở dữ liệu phân tán (Trang 12)
Hình 1.3: Cây phân tách của quan hệ - luận văn thạc sĩ tối ưu hóa truy vấn trong cơ sở dữ liệu phân tán (1)
Hình 1.3 Cây phân tách của quan hệ (Trang 16)
Hình 2.2: Cây với tổ hợp phép chọn - luận văn thạc sĩ tối ưu hóa truy vấn trong cơ sở dữ liệu phân tán (1)
Hình 2.2 Cây với tổ hợp phép chọn (Trang 27)
Hình 2.3: Cây kết quả với sự phân nhóm các phép toán - luận văn thạc sĩ tối ưu hóa truy vấn trong cơ sở dữ liệu phân tán (1)
Hình 2.3 Cây kết quả với sự phân nhóm các phép toán (Trang 28)
Hình 2.4: Đồ thị nối các quan hệ  2.3.2. Tách câu truy vấn thành các câu truy vấn con - luận văn thạc sĩ tối ưu hóa truy vấn trong cơ sở dữ liệu phân tán (1)
Hình 2.4 Đồ thị nối các quan hệ 2.3.2. Tách câu truy vấn thành các câu truy vấn con (Trang 29)
Hình 2.8: Đồ thị kết nối của câu truy vấn q 1 - luận văn thạc sĩ tối ưu hóa truy vấn trong cơ sở dữ liệu phân tán (1)
Hình 2.8 Đồ thị kết nối của câu truy vấn q 1 (Trang 37)
Hình 2.9: Các thứ tự kết nối luân phiên  2.5 Kết luận - luận văn thạc sĩ tối ưu hóa truy vấn trong cơ sở dữ liệu phân tán (1)
Hình 2.9 Các thứ tự kết nối luân phiên 2.5 Kết luận (Trang 38)
Đồ thị câu truy vấn có lợi để xác định sự sai ngữ nghĩa của  một  câu truy  vấn hội không có phép phủ định - luận văn thạc sĩ tối ưu hóa truy vấn trong cơ sở dữ liệu phân tán (1)
th ị câu truy vấn có lợi để xác định sự sai ngữ nghĩa của một câu truy vấn hội không có phép phủ định (Trang 42)
Hình 3.2: Đồ thị câu truy vấn không liên thông  3.1.3 Loại bỏ dư thừa - luận văn thạc sĩ tối ưu hóa truy vấn trong cơ sở dữ liệu phân tán (1)
Hình 3.2 Đồ thị câu truy vấn không liên thông 3.1.3 Loại bỏ dư thừa (Trang 43)
Hình 3.3: Cây đại số quan hệ - luận văn thạc sĩ tối ưu hóa truy vấn trong cơ sở dữ liệu phân tán (1)
Hình 3.3 Cây đại số quan hệ (Trang 45)
Hình 3.4: Cây đại số quan hệ tương đương - luận văn thạc sĩ tối ưu hóa truy vấn trong cơ sở dữ liệu phân tán (1)
Hình 3.4 Cây đại số quan hệ tương đương (Trang 45)
Hình 3.5: Cây đại số quan hệ đã viết lại - luận văn thạc sĩ tối ưu hóa truy vấn trong cơ sở dữ liệu phân tán (1)
Hình 3.5 Cây đại số quan hệ đã viết lại (Trang 46)
Hình 3.7: Rút gọn phân đoạn ngang với phép kết nối  3.2.2 Rút gọn phân đoạn dọc - luận văn thạc sĩ tối ưu hóa truy vấn trong cơ sở dữ liệu phân tán (1)
Hình 3.7 Rút gọn phân đoạn ngang với phép kết nối 3.2.2 Rút gọn phân đoạn dọc (Trang 50)
Hình 3.11: Sơ đồ phân lớp cho việc xử lý truy vấn phân tán - luận văn thạc sĩ tối ưu hóa truy vấn trong cơ sở dữ liệu phân tán (1)
Hình 3.11 Sơ đồ phân lớp cho việc xử lý truy vấn phân tán (Trang 57)
Hình 3.13: Đồ thị kết nối của câu truy vấn phân tán - luận văn thạc sĩ tối ưu hóa truy vấn trong cơ sở dữ liệu phân tán (1)
Hình 3.13 Đồ thị kết nối của câu truy vấn phân tán (Trang 64)
Hình 3.15: Câu truy vấn ví dụ và các thống kê - luận văn thạc sĩ tối ưu hóa truy vấn trong cơ sở dữ liệu phân tán (1)
Hình 3.15 Câu truy vấn ví dụ và các thống kê (Trang 79)
Hình 3.18: Các giai đoạn của việc đánh giá một câu truy vấn phân tán - luận văn thạc sĩ tối ưu hóa truy vấn trong cơ sở dữ liệu phân tán (1)
Hình 3.18 Các giai đoạn của việc đánh giá một câu truy vấn phân tán (Trang 87)

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w