1. Trang chủ
  2. » Công Nghệ Thông Tin

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

107 395 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 107
Dung lượng 1,18 MB

Nội dung

Nội dung của đề tài Mục đích của luận văn đề cập đến hai phần  Phần lý thuyết: Nắm rõ trình bày những cơ sở lý thuyết liên quan đến cơ sơ dữ liệu và cơ sở dữ liệu phân tán như:  Giới

Trang 1

MỞ ĐẦU

1 Cơ sở thực tiễn của đề tài

1.1 Cơ sở khoa học của đề tài

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 đã xâm nhập vào hoạt động kinh tế xã hội đem lại những hiệu quả vô cùng to lớn

Xã hội ngày các phát triển nhu cầu thu thập, lưu trữ, xử lý và trao đổi thông tin ngày càng tăng Trên thực tế các công ty, doanh nghiệp, đơn vị kinh doanh ở những địa điểm khác nhau do đó dữ liệu không được tập trung tại một địa điểm nhất định mà rải khắp các địa điểm mà cơ quan đó hoạt động Khi dữ liệu không còn tập trung thì việc làm thế nào để quản lý, truy xuât cơ sở dữ liệu phục vụ cho công tác chuyên môn không bị ảnh hưởng không được gián đoán được đặt ra Cơ sở dữ liệu phân tán được ra đời để giải quyết vấn đề đó

Khi khối lượng thông tin phải xử lý lớn phong phú và đa dạng thì vấn đề được đặt ra là xử lý thông tin như thế nào để giảm chi phí một các tối thiểu một trong những giải pháp có tính khả thi là phải tối ưu hóa câu lênh khi truy vấn dữ liệu

Vấn đề tối ưu truy vấn luôn là một vấn đề quan trọng hàng đầu đối với CSDL, đặc biệt với các hệ CSDL lớn So với môi trường tập trung, vấn đề tối ưu truy vấn trong môi trường phân tán quan trọng và phức tạp hơn bởi vì có rất nhiều tham số ảnh hưởng đến hiệu năng của các truy vấn phân tán Các quan hệ có mặt trong truy vấn phân tán có thể bị phân mảnh, bị nhân bản, phải tốn kém thêm nhiều chi phí cho quá trình truyền thông giữa các vị trí được truy xuất khác nhau Như vậy, nếu không giải quyết tốt vấn đề tối ưu truy vấn thì hiệu năng của các thao tác trên hệ CSDL phân tán

sẽ đạt rất thấp

Từ những nhận định nêu trên, tôi chọn luận văn cao học là “Tối ưu hóa truy vấn trong cơ sở dữ liệu phân tán”

Trang 2

1.2 Ý nghĩa thực tiễn của đề tài

Góp phần vào việc thiết kế cơ sở dữ liệu phân tán phục vụ cho việc truy vấn có hiệu quả

Làm tài liệu nghiên cứu, tham khảo cho giảng viên, sinh viên Công nghệ thông tin trong trường cao đẳng Sơn La

2 Nội dung nghiên cứu

2.1 Mục tiêu của đề tài

Nghiên cứu lý thuyết CSDL, CSDL phân tán, các kỹ thuật truy vấn trong cơ sở

2.2 Nội dung của đề tài

Mục đích của luận văn đề cập đến hai phần

 Phần lý thuyết: Nắm rõ trình bày những cơ sở lý thuyết liên quan đến cơ sơ dữ liệu và cơ sở dữ liệu phân tán như:

 Giới thiệu tổng quan về cơ sở dữ liệu phân tán

 Một số nguyên lý chung tối ưu hóa truy vấn

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

 Phần thực nghiệm cài đặt: Cài đặt thực nghiệm một thuật toán tối ưu, thực hiện

truy vấn vào cơ sở dữ liệu phân tán, đánh giá kết quả thực hiện

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

 Tìm kiếm, tham khảo, nghiên cứu lý thuyết cơ sở dữ liệu, cơ sở dữ liệu phân tán, các kỹ thuật truy vấn trên sách báo đã công bố

 Tổng hợp các kết quả đã truy vấn 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 3

4 Phạm vi nghiên cứu

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

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

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

Trang 4

CHƯƠNG 1 GIỚI THIỆU VÊ CƠ SỞ DỮ LIỆU PHÂN TÁN

1.1 Khái niệm về cơ sở dữ liệu phân tán

1.1.1 Khái niệm

Cơ sở dữ liệu phân tán là một tập hợp các dữ liệu phụ thuộc logic lẫn nhau của cùng một hệ thống và được lưu trữ trên các trạm của một mạng máy tính Cơ sở dữ liệu phân tán làm tăng khả năng truy nhập tới cơ sở dữ liệu lớn trên mạng trong mỗi hệ thống đó mỗi máy tính quản lý một cơ sở dữ liệu thành phần được gọi là một node hoặc site [4]

Hệ quản trị cơ sở dữ liệu phân tán (DBMS) là một phần mềm quản trị cơ sở dữ liệu, đảm bảo trong suốt với người sử dụng và cho phép tính tự trị nghĩa là một 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 chất 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 được cơ sở dữ liệu phân tán với cơ sở dữ liệu tập trung

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 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à cơ sở dữ liệu vật lý riêng biệt được tích hợp vật lý với nhau làm cho nhiều người trên mạng có thể truy nhập được [7]

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 mảnh

2 Tăng độ tin cậy và khả năng sẵn sàng

Trang 5

Độ 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 dữ liệu về hệ cơ sở dữ liệu phân tán trên một trạm, một trạm có thể có sự cố trong khi các trạm 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 mảnh cơ sở dữ liệu có thể 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 sự 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 trên mạng 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 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ỉ 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 [3]

1 Giá thành và sự phước tạp của phần mềm

Các phần mềm sử dụng trong môi trường cơ sở dữ liệu phân tán rất phước tạp, đặc biệt là phần mềm sử dụng cho việc quản trị môi trường cơ sở dữ liệu phân tán

2 Tiến trình kết nối các vị trí dữ liệu cục bộ khó khăn, phiền phức

Các vị trí cục bộ phải trao đổi thông điệp với nhau và thực hiện thêm các tính toán phức tạp để đảm bảo sự kết nối đúng đắn giữa những vị trí đó

3 Sự toàn vẹn dữ liệu

Một sản phẩm mang nhiều tính phức tạp như vậy dĩ nhiên phải làm gia tăng khả năng xáo trộn trong việc đảm bảo tính toàn vẹn cho dữ liệu

Trang 6

4 Tốc độ truy cập sẽ trở lên chậm chạp một cách đáng kể

Nếu dữ liệu không được phân tán thích hợp theo đúng yêu cầu sử dụng hoặc các bảng thiết lập truy vấn được thiết lập không đúng đắn thì việc tìm kiếm và xử lý cũng

sẽ xảy ra khá chậm chạp

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 mảnh như thế nào, các bản sao dữ liệu để ở đâu, vị trí vật lý lưu trữ dữ liệu ở đâu

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

Trong suốt địa điểm: Người sử dụng 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 cậ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 người sử dụng không biết đó là các bản sao vì dữ liệu luôn được cập nhật và đồng bộ với dữ liệu gốc

Trong suốt phân mảnh: Một quan hệ trong cơ sở dữ liệu phân tán có thể phân

mảnh ngang hoặc phân mảnh dọc nghĩa là được tách thành các bộ dữ liệu hoặc các quan hệ con và lưu trữ trên nhiều trạm khác nhau Trong suốt p hân mảnh cho phép người sử dụng không cần biết có sự phân mảnh, các truy vấn dữ liệu vẫn

Trang 7

đượ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ỉ commit khi tất cả các trạm đã commit 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 commit 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à commit 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ở 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

Đây là một kiến trúc tường minh cho tất cả các cơ sở dữ liệu phân tán, tuy vậy kiến trúc này thể hiện tổ chức của bất kỳ một cơ sở dữ liệu phân tán nào [3]

Lược đồ tổng thể (Global schema) là mô tả và thống 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

Trang 8

Mảnh (fragment) mối quan hệ tổng thể có thể chia thành một vài phần không gối

lên nhau được gọi là mảnh Lược đồ phân mảnh (Fragment schema) định nghĩa ánh xạ giữa các quan hệ tổng thể và các phân mảnh Ánh xạ này là một chiều: vài mảnh 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 mảnh Ký hiệu là Ri là mảnh thứ i của quan hệ tổng thể R

Lược đồ phân phối (Allocation schema): Định nghĩa ánh xạ từ các mảnh vào

những trạm chứa những phân mảnh đó Tất cả các mảnh 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ý (physical image) của quan hệ tổng thể R tại trạm j

Lược đồ ánh xạ cục bộ (Local mapping schema): Á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 cục bộ Trong hệ không thuần nhất ta có các kiểu ánh xạ cục bộ khác nhau tại các trạm khác nhau

Trang 9

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 cơ sở dữ liệu có thể được lưu trữ trên nhiều hơn một trạm

- Quá trình cục bộ các phân mảnh dữ liệu hoặc cục bộ các bản sao phân mảnh lưu trữ dữ liệu trên các đoạn 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ặc các bảng dữ liệu con Có ba kiểu phân mảnh một quan hệ tổng thể: phân mảnh ngang, phân mảnh dọc và phân mảnh hỗn hợp [9]

Một sự phân mảnh là đúng đắn phải thỏa 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 là 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 quan hệ tổng thể 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ểu hóa sự

lập lại của dữ liệu

1.4.1.1 Phân mảnh ngang (Horizontal framentation)

Phân mảnh 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 chon với tân từ p trên quan hệ tổng thể R: ( )

i

i p

R R , với p i 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=R R  R

Ví dụ 1.1: Xét quan hệ tổng thể

NHACUNGCAP

Trang 10

Trong đó các thuộc tính

SHNCC: Số hiệu nhà cung cấp TNCC: Tên nhà cung cấp

- Điều kiện xây dựng lại: N H A C U N G C A PN C C1  N C C2

- Điều kiện rời nhau thỏa mãn vì: N C C1 N C C2  

Tổng quát:

- Điều kiện không mất thông tin nếu các tập tân từ của tất cả các mảnh phải đầy đủ

- Điều kiện xây dựng lại luôn luôn thỏa mãn bở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 gián tiếp (Direver Horizontal framentation)

Phân mảnh ngang gián tiếp là sự phân chia 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 khóa ngoài Điều này thể hiện mối liên hệ dữ liệu giữa quan hệ ban đầu và quan hệ thứ hai được phân mảnh trong cùng một cách

Ví dụ 1.2: Xét quan hệ tổng thể

CUNGCAP(SHNCC, SHSP, SHPHONG, SOLUONG) Trong đó các thuộc tính

SHNCC: Số hiệu nhà cung cấp SHSP: Số hiệu sản phẩm

Trang 11

SHPHONG: Số hiệu phòng SOLUONG: Số lượng Phân mảnh ngang gián tiếp quan hệ CUNGCAP được thực hiện như sau:

Việc bố trí trên cùng một trạm của mỗi cặp đoạn(NCC1, CUNGCAP1) và (NCC2, CUNGCAP2) cho phép cải thiện hiệu năng của phép kết nối các quan hệ NHACUNGCAP và CUNGCAP vì thế có thể thể hiện song song bởi hai phép kết nối (NCC1 CUNGCAP1) và (NCC2 CUNGCAP2)

- Điều kiện không mất thông tin của phân mảnh trên đòi hỏi không có SHNCC nào trong quan hệ CUNGCAP mà lại không chứa trong quan NHACUNGCAP ở đây

có dàng buộc quan hệ tham chiếu

s CUNGCAP  Phải p NHACUNGCAP mà p.SHNCC = s.SHNCC

p.SHNCC NCC 1 qua    s  CUNGCAP1 hoăc

p.SHNCC NCC 2 qua   s  CUNGCAP2

 thỏa 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

Trang 12

1.4.1.3 Phân mảnh dọc (Vertical Fragmentation)

Phân mảnh dọc là sự phân chia một quan hệ thành một tập con các bộ, mỗi tập được xác định bởi phép chiếu được áp dụng cho quan hệ Ri  ATTR i R, trong đó

ATTRi là tập con các thuộc tính của R

Tiêu chuẩn cho một 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ổ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 khóa chính, do đó việc

xây dựng lại phải nhờ vào kết nối các đoạn dọc theo các thuộc tính của chúng

- Điều kiện tách rời: Ít nhất khóa 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 hoàn toàn được

Ví dụ 1.3: Xét quan hệ tổng thể

NHANVIEN(SHNV, TEN, LUONG, THUE, SHQL, SHPHONG)

SHNV: Là số hiệu nhân viên

SHQL: Số hiệu quản lý SHPHONG: Số hiệu phòng

Ta tách quan hệ NHANVIEN thành hai quan hệ NV1 và NV2

1 SHNV TEN LUONG THUE, , ,

Trang 13

1.4.1.4 Phân mảnh hỗn hợp (Mixed Fragmentation)

Là sự kết hợp của phân mảnh dọc và phân mảnh ngang

Hình 1.2: Cây phân tách của quan hệ tổng thể

Xây dựng lại quan hệ NHANVIEN ta thực hiện như sau:

NHANVIEN

Trang 14

được phân mảnh ngang do vậy có 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ó lợi trong việc nâng cao tính sẵn sàng của dữ liệu

- Các chiến lược nhân bản dữ liệu

+ Nhân bản dữ liệu đầy đủ: toàn bộ 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 có 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ật dữ liệu rất chậm vì phải sao chép, đồ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

+ Không có nhân bản dữ liệu: mỗi phân mảnh chỉ được lưu trữ trên một

trạm, phương án này còn được gọi là cục bộ không dư thừa dữ liệu Trong trường hợp này các phân mảnh phải tách rời tránh lặp bản ghi giống nhau cho các phân mảnh ngang và phân mảnh hỗn hợp

+ 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ác dụng cho cá nhâ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 với

cơ sở dữ liệu server

1.4.3 Cục bộ hóa dữ liệu

Là quá trình gán từng phân mảnh, từng bản sao của phân mảnh 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 yêu cầu tính sẵn sàng cao, mọi giao dịch thao tác dư liệu, giao dịch cập nhật chỉ làm

Trang 15

trên 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 mảnh cho dữ liệu đó nên được cục bộ trên trạm đó

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 từ 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 16

CHƯƠNG 2: TỐI ƯU HÓA CƠ SỞ DỮ LIỆU PHÂN TÁN

2.1 Một số nguyên lý chung của tối ưu hóa truy vấn

Các ngôn ngữ bậc cao như SQUEARE, SQUEL, SQL, Cho phép viết nhiều cầu truy vấn với sự quan tâm đến nhiều 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 nó Sự cải tiến như vậy thường gọi là “tối ưu hóa” mặc dù câu truy vấn được viết lại không cần sự tối ưu trên tất cả các cách cài đặt câu truy vấn có thể Trong phần này 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 Descates, xem xét các kỹ thuật điển hình INGERES và System R

2.1.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 phép tích Decates, và phép kết nối tốn rất nhiều thời gian

Ullman J.D [6] trong các kết quả nghiên cứu của mình đã trình bày những chiến lược tổng quan cho tối ưu hóa như sau:

1 Thực hiện phép chọn sớm nhất có thể: nhằm làm giảm kích thước của các kết

quả trung gian

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

kết nối, đặc biệt là phép kết nối bằng có chi phí thực hiện thấp hơn so với phép tích Descartes trên cùng hai quan hệ Nếu kết quả của tích Descartes RxS là đối số của phép chọn, và phép chọn lại 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í

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

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ó

Trang 17

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

5 Tiền xử lý các tệp: Cần sắp xếp các tệp và thiết lập các tệp chỉ số, khi đó việc

thực hiện các phép toán liên quan đến hai tệp (phép toán 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, hay việc chọn một trong hai đối của phép tính hai ngôi, thì ta nên tính toán chi phí thực hiện các phép toán đó (như 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.1.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 phép biến đổi đạ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.1.2.1 Các yêu cầu của phép biến đổi tối ưu hóa

- 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 tri phí thực hiện câu truy vấn Chi 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ữ kết quả trung gian trong quá trình thực hiện câu truy vấn

Trang 18

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

Hai biểu thức E1 và E2 được 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 biểu thức quan hệ 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 [4]

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

(0) Quy tắc giao hoán của phép kết nối và tích Decates

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 và E2 thì E1p E2  E2p E1

E EE E

EEEE

Ta chứng minh tính chất giao hoán của phép nối: Giả sử E1 có các thuộc tính A1,

A2, , An và E2 có các thuộc tính B1, B2, , Bm Gọi r1 và r2 là hai quan hệ tương ứng của E1 và E2 khi đó giá trị của E1  E2 là các ánh xạ v từ A1, A2, , An, B1, B2, , Bm

vào tập giá trị sao cho các ánh xạ 1 và r1  2 r2thỏa mãn:

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

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

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 E1 E2 theo kiểu này, nó hoàn toàn cho cùng một tập hệ kết

quả Do đó biểu thức là tương tương

Chú ý: nếu quan hệ là một 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ệ bị thay đổi

(1) Quy tắc kết hợp của phép kết nối và tích Decartes

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

Trang 19

1 2 3 1 2 3

(EE )EE (EE )

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

(1) Quy 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

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

(3) Quy tắc hợp nhất của 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

(4) Quy 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ì:

(5) Quy tắc giao hoán của phép chọn và phép 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ì

Trang 20

(6) Quy tắc giao hoán của phép chọn và phép hợp

Nếu biểu thức EE1E2, và 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à thuộc tính duy nhất của E2 thì:

là tính toán trực tiếp với E2 vì khi đó kích thước quan hệ sẽ nhỏ đi nhiều

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 quy tắc (3), (4), (5) Quy tắc đẩy phép chiếu xuống trước phép tích Decarses hoặc phép hợp tương tự như quy tắc (5), (6), (7) 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

(8) Quy tắc giao hoán phép chiếu và tích Decartes

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

B2, , Bm là các thuộc tính của E1, các thuộc tính còn lại C1, C2, , Ck thuộc E2 khi đó

Trang 21

2.1.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 quy 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.2.4 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 [4]

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

1 Áp dụng của một phép chọn và 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 Descartes, 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 đã áp dụng cho một hay hai dạng thức

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 đó

Trang 22

4 Sử dung quy tắc (2), (4) để tổ hợp dãy các phép chọn thành một phép chọn xác định với một phép chiếu

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 các phép

toán một ngôi trừ trường hợp phép toán hai ngôi là tích Descartes 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.1: xét cơ sở dữ liệu thư viên bào gồm các quan hệ sau:

SACH(TENSACH, TACGIA, TEN_NXB, SHTV) Quan hệ sách NHAXB(TEN_NXB, DC_NXB, TB_NXB) Quan hệ nhà xuất bản DOCGIA(TEN, ĐIACHI, THPHO, SOTHE) Quan hệ độc giả MUON(SOTHE, SHTV, NGAY) Quan hệ 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 TB_NXB: Thành phố nơi nhà xuất bản đóng SOTHE: Số thể thư viên của độc giả

TEN: Tên độc giả DIACHI: Địa chỉ độc giả THPHO: Thành phố nơi độc giả ở NGAY: Ngày mượn sách

Để lưu 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ể được xác định như sau:

Trang 23

S P

π (σ (SACH× DOCGIA× MUON))

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 những cuốn sách đã cho mượn trước ngày 1/1/2004

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 quy

Trang 24

tắc (3) và (4) Phép chọn này áp dụng cho tích ((MUON × DONGIA)×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

NGAY<1<1<2004

Bước 2: tổ hợp hai phép chiếu thành một phép chiếu πTENSACH nhờ quy tắc (2)

kết quả như hình 2.2 sau đó áp dụng quy tắc (4) thay πTENSACH và

Trang 25

Áp dụng quy tắc + để thay thế phép chiếu cuối cùng bởi πTENSACH.SACH.SHTV áp

dụng cho SACH và πTENSACH.MUON.SHTV áp dụng cho hạng thức bên trái của tích

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 26

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 các giai đoạn, nhóm các phép toán phía dưới sẽ được thực hiện trước

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

Giả sử các quan hệ R1, R2, ,Rk; mỗi câu truy vấn trên mỗi quan hệ Ri (0<ik)

có thể xem là tích Decartes của mỗi quan hệ thỏa mãn đ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k) có dạng R Aθa ( a là các j

Trang 27

hằng số, là phép kết nối nhận một trong những giá trị      , , , , , ) hoặc

Nếu trong quan hệ Ri (0   i k ) có các phép chọn dạng R Aθaj ( là phép

kết 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 R AθR B , ta biểu diễn trên j h

đồ thị bằng cung nối hai đỉnh Ri và Rj trong đó ghi các phép kết nối dạng trên

Ví dụ 2.2: 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ị kết nối các quan hệ 2.1.3.2.Tách những câu truy vấn thành những câu truy vấn con

Phương pháp này 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 lẫn nhau

Việc tách những 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ả truy vấn và làm giảm kích thước của 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

SACH.TENSACH

Trang 28

truy vấn con sẽ làm tăng khả năng xử lý các truy vấn vì các 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.3: để thực hiện câu truy vấn ở ví dụ 2.2, 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 tron qua hệ DOCGIA những độc giả đã mượn những quấn sách trong quan hệ R1” giả sử là R2

Q3: “tìm trong quan hệ SACH những cuốn sách đã cho mượn trong quan hệ R2” giả sử kết quả là R3

Kết quả câu truy vấn: “chọn tên cuốn sách trong R3”

2.1.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à phép tích Decartes tốn nhiều thời gian và bộ nhớ trong khi đó yêu cầu của 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ệ 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 đó dùng phép nửa kết nối để nối các cặp quan hệ có cùng nối với nhau

Ví dụ 2.4: sử dụng câu truy vấn ở ví dụ 2.2, khử các khuyên của đồ thị nối các

SACH.TENSACH

Trang 29

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

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ộ

Trang 30

2.1.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 hóa 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 truy vấn phân tán với ba lý do:

- Một câu hỏi phân tán được biến đổi thành các câu truy vấn địa phương được

2.1.4.1 Thuật toán INGRES

INGRES sử dụng một thuật toán tối ưu hóa động, dựa trên tìm kiếm vét cạn sử dụng các thông tin thống kê về cơ sở dữ liệu Thuật toán này tách dần câu truy vấn dạng phép tính quan hệ thành các thành phần nhỏ hơn Câu truy vấn gốc được phân rã thành một chuỗi các truy vấn trên quan hệ duy nhất (một biến bộ duy nhất) Sau đó mỗi câu truy vấn quan hệ được xử lý bởi một “thể xử lý truy vấn một biến” (One Variable Query Processor – OVQP) OVPQ tối ưu hóa một truy xuất đến một quan hệ bằng cách thực hiện phép chọn dựa trên vị từ Thông thường phương pháp truy xuất quan hệ có thể dùng bằng chỉ mục(A = Value) hoặc quét tuần tự (AValue) [1]

Thuật toán trước tiên sẽ thực hiện các phép toán đơn quan hệ và giảm thiểu kích thước của các kết quả trung gian khi xếp thứ tự các phép toán hai ngôi (đa quan hệ)

Câu truy vấn q phân rã thành hai câu truy vấn con qi-1 và qi Ký hiệu q i1q i

nghĩa là câu thực hiện câu truy vấn qi phải sử dụng kết quả của câu truy vấn qi-1 Giả sử câu truy vấn q có n quan hệ, thể xử lý truy vấn INGRES phân rã q thành n câu truy vấn con qqq2  qn Kỹ thuật phân rã sử dụng hai kỹ thuật cơ bản: tách

(Detachment) và thay thế (Substitution)

Trang 31

Kỹ thuật tách bẻ gãy câu truy vấn q thành q, q,, dựa trên một quan hệ chung

là kết quả của q,, giả sử câu truy vấn q được biểu diễn bằng SQL có dạng

SELECT R2.A2, R3.A3,…,Rn.An

FROM R1, R2,…Rn

WHERE P1(R1.A’) AND P2(R1.A1, R2.A2,…,Rn.An)

Trong đó, Ai và Ai’ là các thuộc tính của quan hệ Ri, P1 là các vị từ có chứa các thuộc tính của quan hệ R1, và P2 là vị từ đa quan hệ có chứa các thuộc tính của quan hệ

R1, R2, , Rn Một câu truy vấn như thế có thể phân rã thành hai câu truy vấn q’ và q’’ qua phép tách quan hệ chung R1:

q’ SELECT R1A1 INTO R’1

FROM R1

WHERE P1(R1.A’1) Trong đó R’1 là các quan hệ tạm thời chứa các thông tin cần thiết để thực hiện tiếp tục câu truy vấn:

q’’ SELECT R1.A2, R3.A3, , Rn.An

FROM R1, R2,…, Rn

WHERE P2(R1.A1, R2.A2,…, Rn.An) Bước này đã làm giảm kích thước của quan hệ trên đó câu truy vấn q’’ được định nghĩa Hơn nữa quan hệ R’1 đã được lưu vào một cấu trúc đặc biệt nhằm tăng tốc

độ thực hiện các câu truy vấn con theo sau Chẳng hạn lưu R’1 trong một tập tin băm trên thuộc tính nối của q’’ làm cho việc xử lý nối hiệu quả hơn

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

KYSU(SHKS, TENKS, NGHE) HOSODA(SHKS, SHDA, TRNGHIEM, TG) DUAN(SHDA, TENDUAN, NGANSACH) Trong đó:

Trang 32

SHKS: số hiệu kỹ sư TENKS: tên kỹ sư NGHE: nghề nghiệp SHDA: số hiệu dự án TG: thời gian được giao theo tháng Với câu truy vấn tìm “tìm tên kỹ sư làm việc cho dự án CAD/CAM”

q1: SELECT KYSU.TENKS

WHERE KYSU.SHKS = HOSODA.SHKS

AND HOSODA.SHDA = DUAN.SHDA AND TENDUA = “CAD/CAM”

Tách các phép chọn, câu truy vấn q1 được thay thế bởi q11 q' trong đó JTG là quan hệ trung gian

q11: SELECT DUAN.SHDA INTO JTG

WHERE TENDA = “CAD/CAM”

q’: SELECT KYSU.TENKS

WHERE KYSU.SHKS = HOSODA.SHKS

AND HOSODA.SHDA = JTG.SHDA Các bước tách tiếp cho q’ có thể tạo ra, trong đó GTG là quan hệ trung gian :

q12: SELECT HOSODA.SHDA INTO GTG

WHERE HOSODA.SHDA = JTG.SHDA

q13: SELECT KYSU.TENDA

Trang 33

WHERE KYSU.SHKS = GTG.SHKS Câu truy vấn q1 đã được biến đổi thành chuối truy vấn q11 q12 q13 Câu

truy vấn q11 thuộc loại đơn quan hệ và có thể cho bởi OVPQ Câu truy vấn q12 và q13

không thuộc loại đơn quan hệ vì vậy không thể tách tiếp được nữa

Các câu truy vấn đa quan hệ được gọi là bất khả giản (Irreducible), khi và chỉ khi đồ thị truy vấn của nó là một chu trình có nút k với k>2 Các câu truy vấn bất khả giản được biến đổi thành một câu truy vấn đơn quan hệ nhờ phép thế bộ (Tuple Subsitution) như sau: cho câu truy vấn n-quan hệ q, các bộ phận của một biến được thay thế bằng các giá trị của chúng, tạo ra một tập các tin vấn (n-1)-biến Phép thay thế

bộ được tiến hành như sau Trước tiên chọn một quan hệ trong q để thay thế, giả sử R1 Với mỗi bộ t1iR1, các thuộc tính được tham chiếu trong q được thay thế bằng các

giá trị thực sụ trong t1i tạo ra một câu truy vấn q’ có (n – 1) quan hệ Vì vậy tổng số câu truy vấn q’ được sinh ra bởi phép thế bộ Card(R1) Phép thê bộ có thể tóm tắt như sau:

q131: SELECT KYSU.TENKS

WHERE KYSU.SHKS = “E1”

Trang 34

Sau đây là thuật toán tối ưu hóa INGRES:

Thuật toán: INGRES – QOA

INPUT MRQ là câu truy vấn đa quan hệ (n – quan hệ)

OUTPUT Chuỗi các câu truy vấn đơn quan hệ: q1 q2  qk

Trang 35

End {INGRES – QOA}

2.1.4.2 Thuật toán System R

Thuật toán System R là thuật toán tối ưu hóa truy vấn tập trung thực hiện tối ưu hóa tĩnh bằng cách tìm kiếm vét cạn không gian lời giải Đầu vào là cây đại số quan hệ phân rã câu truy vấn SQL Đầu ra là một hoạch định thực thi tối ưu

Thuật toán tối ưu hóa gồm hai bước:

Bước một là dự đoán phương pháp tốt nhất để truy xuất đến mỗi quan hệ dựa trên một vị từ lựa chọn (phép chọn có chi phí thấp nhất)

Bước hai, với mỗi quan hệ R, thứ tự kết nối tốt nhất sẽ được ước lượng, trong đó

R sẽ được truy xuất đơn quan hệ Thứ tự có chi phí thấp nhất trở thành cơ sở cho hoạch định thực thi tốt nhất

Khi kết nối các quan hệ, quan hệ được đọc trước gọi là quan hệ ngoại cảnh (External Relation), quan hệ còn lại là quan hệ có các bộ được tìm dựa theo các giá trị

Trang 36

có được từ quan hệ ngoại cảnh sẽ được gọi là quan hệ nội tại (Internal Relation) Chọn phương pháp nối là xác định đường truy xuất có chi phí thấp nhất đến nội tại

Kết nối theo kiểu vòng lồng nhau (Nested Loop) tạo ra tích Decartes của hai quan hệ Với mỗi bộ của ngoại cảnh, từng bộ của nội tại thỏa vị từ nối sẽ được truy xuất lần lượt để tạo ra quan hệ kết quả Mỗi chỉ mục trên thuật toán kết nối là xác định đường truy xuất hiệu quả đối với nội tại Khi không có chi mục, chi phí thuật toán cao

Kết nối thứ hai được gọi là kết nối trộn (Merge Join) hai quan hệ đã sắp xếp thuộc tính kết nối Chỉ mục trên thuộc tính kết nối có thể là đường truy xuất Nếu các quan hệ đã được sắp xếp, kết nối bằng có chi phí thấp sẽ được chọn Nếu một trong các quan hệ chưa sắp xếp, chi phí của thuật toán vòng thắt lồng sẽ thấp đáng kể so với chi phí của phép kết nối trộn Thuật toán kết nối trộn rất hiệu quả khi thực hiện phép kết nối bằng trên các quan hệ kích thước lớn

Thuật toán tối ưu hóa System R có hai vòng lặp [1]

- Vòng đầu tiên chọn ra đường truy xuất một quan hệ tốt nhất đến mỗi quan hệ trong câu vấn tin

- Vòng thứ hai kiểm tra tất cả các hoán vị của thứ tự nối (có n! hoán vị cho n quan hệ) và chọn ra chiến lược truy xuất tốt nhất cho câu vấn tin Các hoán vị được tạo

ra bằng cách xây dựng động một cây các chiến lược khác nhau Trước tiên cần xét kết nối của mỗi quan hệ đến các quan hệ khác, sau đó là các kết nối của ba quan hệ Tiếp tục cho đến khi các kết nối của quan hệ tối ưu Các hoán vị có chứa tích Decartes đều

bị loại bỏ Số lượng các chiến lược cần kiểm tra có cận trên là 2n chứ không phải là n!

Thuật toán R – QOA

Input QT là cây truy vấn có n quan hệ

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

Begin

For mỗi quan hệ R iQT do Begin

Trang 37

For mỗi đường truy nhập APij to Ri do

Xác định cost(APij)

best _ APiAPij với chi phí tối thiểu

End For mỗi oder(Ri1, Ri2, …, Rin) với i = 1, ,n! Do Begin

Xây dựng chiến lược( (( best APi1 Pi2)  Ri3)   Rin) tính

toán chi phí của chiến lược

End

output  chiến lược với chi phí tối thiểu

End {R – QOA}

Ví dụ 2.7: thuật toán R – QOA cho câu truy vấn q1 (hình 2.8)

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

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

KYSU có chỉ mục trên SHKS HOSODA có chỉ mục trên SHDA DUAN có chỉ mục trên SHDA và TENDA Giả sử vòng lặp ngoài chọn hướng truy mối quan hệ đơn tốt nhất như sau:

HOSODA

Trang 38

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) DUAN có chỉ mục 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 ( YSUK DUAN) và (DUAN KYSU) bị loại bỏ Giả sử ( YSU HOSODA)K  và ( O SOD AH D U AN ) có chi phí cao hơn(HO S O D A KY S U )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 (( OSODA KYSU) DUAN)H   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

Trang 39

2.2 Tối ưu hóa truy vấn phân tán

2.2.1 Mục tiêu của bài toán truy vấn

Bộ xử lý truy vấn có nhiệm vụ phân tích, biến đổi các câu truy vấn cấp cao (ở dạng cách phép tính quan hệ) thành một câu truy vấn tương đương ở mức thấp hơn (dạng đại số quan hệ)

Với câu truy vấn cấp thấp này việc cài đặt các chiến lược thực thi sẽ được thực hiện Việc biến đổi câu truy vấn phải đáp ứng được cả tính đúng đắn, lẫn tính hiệu quả Một biến đổi được coi là đúng đắn nếu câu truy vấn cấp thấp cho cùng một kết quả như câu truy vấn cấp cao Việc đưa ra được một chiến lược thực thi thích hợp để đạt được tính hiệu quả lại là một bài toán khó Một câu truy vấn cấp cao có thể được biến đổi thành nhiều câu truy vấn cấp thấp tương đương, và mỗi một chiến lược thực thi này lại tiêu tốn tài nguyên hệ thống rất khác nhau Việc khó khăn là phải tìm ra một chiến lược nhằm hạ thấp tối đa việc tiêu dùng tài nguyên

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

Trang 40

NSDA: ngân sách dự án DDDA: địa điểm tiến hành dự án Với câu truy vấn “Tìm tên các nhân viên đang quản lý một dự án có thời gian lớn hơn 37 tháng”

ra một câu truy vấn dạng biểu thức đại số tốt nhất trong các câu truy vấn tương đương Đây là một bài toán phức tạp khi số lượng các quan hệ lớn, nên nói chung là chúng ta chỉ hướng đến là tìm được một lời giải tốt (gần tối ưu)

Trong môi trường phân tán, các biểu thức đại số quan hệ không đủ để diễn tả các chiến lược thực thi Nó phải được bổ sung thêm các phép toán trao đổi dữ liệu giữa các trạm Và cùng với việc chọn các phép toán đại số quan hệ, thì bộ xử lý truy vấn phân tán cũng phải chọn các trạm tốt nhất để xử lý dữ liệu Do vậy việc tìm ra lời giải cho bài toán chiến lược thực thi trở nên khó khăn hơn nhiều

Ví dụ 2.9 : Xét lại ví dụ 2.8 trong môi trường phần tán

Các mảnh được cấp phát tại các trạm 1, 2, 3, 4 và kết quả được truy xuất tại trạm

5

Ngày đăng: 31/03/2017, 20:58

TỪ KHÓA LIÊN QUAN

w