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

Tìm hiểu về tối ưu hóa truy vấn trong cơ sở dữ liệu phân tán

89 822 1

Đ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 89
Dung lượng 4,28 MB

Nội dung

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.Những nhận xét đánh giá trên cũng chính là lý do tôi chọn đề tài nghi

Trang 1

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

PHẦN MỞ ĐẦU

Cùng với sự phát triển như của công nghệ thông tin, các ứng dụng của cơ

sở dữ liệu đã xâm nhập vào các hoạt động quản lý, các lĩnh vực kinh tế… đemlại những hiệu quả to lớn và cần thiết Bên cạnh đó, nhu cầu về xử lí thông tinnhư: thu thập, lưu trữ, xử lý và trao đổi thông tin ngày càng tăng, nhanh hơnnhiều lần tốc độ phát triển của tài nguyên phần cứng và phần mềm Trongthực tế các doanh nghiệp, đơn vị kinh doanh liên quan đến nhau hay kể cả các

cơ quan hành chính nhà nước được phân bổ ở nhiều khu vực 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 đơn vị đó hoạt động Khi dữ liệu không còn tập trung thìvấn đề đưa ra là làm thế nào để quản lý, truy xuất CSDL phục vụ cho công tácchuyên môn không bị ảnh hưởng, không được gián đoạn, tiêu tốn ít thời giancông sức tiền bạc Một số hệ thống tập trung thông thường không đáp ứngđược, không phù hợp với nhu cầu hiện đại hóa Xây dựng một hệ thống phântán có khả năng xử lí đồng thời một bài toán trên nhiều máy tính là mộthướng giải quyết khả thi và đã được chứng minh tính hữu dụng Hệ thốngphân tán còn tạo nhiều thuận lợi trong việc chia sẻ thông tin trên khắp mọinơi Vì vậy, CSDL phân tán được ra đời để giải quyết vấn đề đó

Nếu 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à làm thế nào để giảm chi phí một các tối thiểu mà vẫn xử

lý thông tin một cách có hiệu quả và thông suốt Tối ưu hóa các câu lệnhkhi truy vấn cơ sở dữ liệu phân tán là một trong những cách giải quyết chovấn đề này

Vấn đề tối ưu hóa truy vấn trên CSDL phân tán là rất quan trọng và phứctạp do tính phân mảnh, nhân bản, tốn kém chi phí trong việc truyền dữ liệu

Trang 2

của nó 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.

Những nhận xét đánh giá trên cũng chính là lý do tôi chọn đề tài nghiên

cứu là: “Tìm hiểu về tối ưu hóa truy vấn trong cơ sở dữ liệu phân tán”

2 Mục tiêu nghiên cứu.

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

3 Đối tượng và phạm vi nghiên cứu.

Đề tài tập trung nghiên cứu về vấn đề cơ bản của CSDL phân tán, cácnguyê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, 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

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

Thu thập, tìm kiếm, tham khảo, phân tích, nghiên cứu các tài liệu và thôngtin liên quan đến đề tài như: lý thuyết CSDL, CSDL phân tán, các kỹ thuậttruy vấn của các tác giả trong và ngoài nước, trên sách báo và internet… cóchọn lọc và sắp xếp lại theo ý tưởng của mình

Tổng hợp các kết quả đã nghiên cứu về truy vấn tối ưu và tiến hành thựchiện tối ưu hóa truy vấn phân tán qua một trường hợp nghiên cứu

Trang 3

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

Cơ sở dữ liệu phân tán [3] là một tập hợp dữ liệu, mà về m t logic tập hợpnày thuộc cùng một hệ thống, nhưng về m t vật lý dữ liệu đó được phân tántrên các vị trí khác nhau 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 cập tới hệ thống CSDL lớntrên mạng Trong hệ thống đó mỗi máy tính quản lý một CSDL thành phầnđược gọi là 1 node ho t site

Một cơ sở dữ liệu phân tán là một tập hợp nhiều CSDL có liên đới logic vàđược phân bố trên một mạng máy tính

Có 2 điểm quan trọng được nêu ra và cần ch ý trong định nghĩa:

- Tính chất phân tán: Tất cả dữ liệu của CSDL phân tán không cư tr trên

cùng một vị trí mà được phân bố trên nhiều máy trạm đ t tại các vị trí khácnhau thuộc mạng máy tính Đây là điểm phân biệt giữa CSDL phân tán vàCSDL tập trung

- Tương quan logic: Dữ liệu của CSDL phân tán có một số thuộc tính ràng

buộc với nhau Điều này giúp chúng ta có thể phân biệt một CSDL phân tánvới một tập hợp CSDL tập trung Các file dữ liệu được lưu trữ tại nhiều vị tríkhác nhau, điều này thường thấy trong các ứng dụng mà hệ thống sẽ phânquyền truy nhập dữ liệu trong môi trường mạng

Ví dụ 1.1:

Website của google phân tán tìm kiếm theo cách tự nhận biết, yêu cầu nàogần server nào th server đó xử lý Các server của google phân bố rông khắptrên toàn thế giới

Trang 4

1.1.2 Các đặc điểm chính của CSDL phân tán

1 Chia sẻ tài nguyên

Việc chia sẻ tài nguyên của hệ phân tán được thực hiện qua mạng truyềnthông Mỗi tài nguyên cần được quản lý bởi một chương tr nh có giao diệntruyền thông để chia sẻ một cách có hiệu quả Các tài nguyên có thể được truycập, cập nhật một cách tin cậy và nhất quán Quản lý tài nguyên ở đây baogồm lập kế hoạch dự phòng, đ t tên cho các lớp tài nguyên, cho phép tàinguyên được truy cập từ nơi này đến nơi khác, ánh xạ tên tài nguyên vào địachỉ truyền thông,

- Tính mở của hệ phân tán dựa trên việc cung cấp cơ chế truyền thông giữacác tiến trình và công khai các giao diện dùng để truy nhập các tài nguyênchung

3 Khả năng song song

Hệ phân tán hoạt động trên một mạng truyền thông có nhiều máy tính, mỗimáy có thể có một hay nhiều CPU

Trang 5

Có thể thực hiện nhiều tiến trình trong cùng một thời điểm Việc thực hiệntiến trình đồng thời theo cơ chế phân chia thời gian (một CPU) hay song song(nhiều CPU).

Khả năng làm việc song song trong hệ phân tán được thể hiện qua hai tìnhhuống:

- Nhiều người sử dụng đồng thời đưa ra các lệnh hay các tương tác với cácchương tr nh ứng dụng (đồng thời xuất hiện nhiều Clients)

- Nhiều tiến trình Server chạy đồng thời, mỗi tiến trình phải đáp ứng yêucầu từ các Clients

Từ điều kiện đa xử lý, khả năng song song của hệ thống phân tán trở thànhmột thuộc tính của nó

Điều này chỉ đạt ở mức độ nào đó đối với hệ phân tán hiện tại (không thểhoàn toàn như định nghĩa trên) Yêu cầu mở rộng không chỉ là mở rộng vềphần cứng hay về mạng mà còn cần phải được phân tích, đánh giá trên tất cảcác khía cạnh khi thiết kế hệ phân tán

Ví dụ 1.2: Tần suất sử dụng file trên mạng đột ngột tăng cao Để tránh tình

trạng tắc nghẽn xảy ra khi chỉ có một Server và phải đáp ứng các yêu cầu truynhập file đó Người ta nhân bản file trên một Server khác và hệ thống đượcthiết kế sao cho việc bổ sung Server được dễ dàng Có thể tính đến giải phápkhác là sử dụng Cache và các bản sao dữ liệu

Trang 6

5 Khả năng thứ lỗi

Khả năng thứ lỗi thể hiện việc hệ thống không bị sụp đổ bởi các sự cố docác lỗi thành phần (cả phần cứng lẫn phần mềm) trong một bộ phận nào đó.Việc thiết kế khả năng thứ lỗi các hệ thống máy tính dựa trên hai giảipháp sau:

- Dùng khả năng thay thế để đảm bảo sự hoạt động liên tục và hiệu quả

- Dùng các chương tr nh đảm bảo cơ chế phục hồi dữ liệu khi xảy ra sự cố

6 Đảm bảo tin cậy và nhất quán

Hệ thống yêu cầu độ tin cậy như:

- Bí mật của dữ liệu

- Các chức năng khôi phục hư hỏng phải đảm bảo

- Ngoài ra các yêu cầu của hệ thống về tính nhất quán cũng thể hiện ở chỗ:không có mâu thuẫn trong nội dung CSDL

 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 CSDL phân tán là dữ liệu của các CSDL vật lýriêng biệt được tích hợp logic với nhau làm cho nhiều người sử dụng trênmạng có thể truy nhập được [6]

- 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ị CSDL phải được trong suốtphâ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

- Tăng độ tin cậy và khả năng sẵn sàng: Độ tin cậy là khả năng hệ thốngđang làm việc (không bị ngừng) tại một thời điểm nào đó, tính sẵn sàng là khảnăng hệ thống tiếp tục làm việc trong một khoảng thời gian nào đó Khi dữ

Trang 7

liệu và CSDL phân tán trên một vài trạm, một trạm có thể có sự cố trong khicá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ủaCSDL 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 saotrên nhiều trạm

- Cải thiện hiệu năng: Một hệ quản trị CSDL phân tán, phân đoạn CSDL

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 đượclưu giữ cục bộ làm giảm cạnh tranh CPU, giảm các I/O Server và giảm tươngtranh 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ựchiệ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ênCSDL tập trung vì vậy cũng tăng hiệu suất hệ thống

- Dễ dàng mở rộng: Việc thêm CSDL mới, tăng kích cỡ CSDL 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ácCSDL thành phần

 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ị CSDL phân tánphải bổ sung thêm các chức năng như:

+ Theo dõi dấu vết dữ liệu

Trang 8

- 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ệutrên mạng.

- Bảo mật khó khăn

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 đoạn (fragmentation transparency)

Khi dữ liệu đã được phân đoạn thì việc truy cập vào CSDL được thực hiện

b nh thường như là chưa bị phân tán và không ảnh hưởng tới người sử dụng

Ví dụ 1.3: Xét quan hệ tổng thể NCC (Id, Tên, Tuổi) và các phân đoạn

ngang được tách ra từ nó:

NCC1 (Id, Tên, Tuổi)

NCC2 (Id, Tên, Tuổi)

NCC3 (Id, Tên, Tuổi)

Giả sử DDBMS cung cấp tính trong suốt về phân đoạn, khi đó ta có thểthấy tính trong suốt này được thể hiện như sau:

Khi muốn tìm một người có Id= “Id1” thì chỉ cần tìm trên quan hệ tổng

thể NCC mà không cần biết quan hệ NCC có phân tán hay không

Trang 9

1.2.2 Trong suốt về vị trí (location transparency)

- Người sử dụng không cần biết về vị trí vật lý của dữ liệu mà có quyềntruy cập đến CSDL tại bất cứ vị trí nào

- Các thao tác để lấy ho c cập nhật một dữ liệu từ xa được tự động thựchiện bởi hệ thống tại điểm đưa ra yêu cầu

- Tính trong suốt về vị trí rất hữu ích, nó cho phép người sử dụng bỏ quacác bản sao dữ liệu đã tồn tại ở mỗi vị trí Do đó có thể di chuyển một bản sao

dữ liệu từ một vị trí này đến một vị trí khác và cho phép tạo các bản sao mới

+ Ở đây quan hệ NCC2 được sao làm hai bản trên hai vị trí 2 và vị trí

3, ta chỉ cần tìm thông tin trên quan hệ NCC2 mà không cần quan tâm nó

ở vị trí nào

Trang 10

Hình 1.2: Sự trong suốt về vị trí 1.2.3 Trong suốt ánh xạ địa phương (local mapping transparency)

- Là một đ c tính quan trọng trong một hệ thống DBMS không đồng nhất

- Ứng dụng tham chiếu đến các đối tượng có các tên độc lập từ các hệthống cục bộ địa phương

- Ứng dụng được cài đ t trên một hệ thống không đồng nhất nhưng được

sử dụng như một hệ thống đồng nhất

Hình 1.3: Sự trong suốt ánh xạ địa phương

1.3 Kiến trúc cơ bản của một cơ sở dữ liệu phân tán

1.3.1 Sơ đồ tổng thể (Global Schema)

- Xác định tất cả các dữ liệu sẽ được lưu trữ trong CSDL phân tán cũng như các dữ liệu không được phân tán ở các trạm trong hệ thống

Trang 11

- Sơ đồ tổng thể được định nghĩa theo cách như trong CSDL tập trung.

- Trong mô hình quan hệ, sơ đồ tổng thể bao gồm định nghĩa của tập các

quan hệ tổng thể (Globle relation).

1.3.2 Sơ đồ phân đoạn dữ liệu (fragment schema)

- Mỗi quan hệ tổng thể có thể chia thành một vài phần không giao nhau gọi

là phân đoạn (fragment)

- Có nhiều cách khác nhau để thực hiện việc phân chia này

- Sơ đồ phân đoạn mô tả các ánh xạ giữa các quan hệ tổng thể và các đoạnđược định nghĩa trong sơ đồ phân đoạn (fragmentation Schema)

- Các đoạn được mô tả bằng tên của quan hệ tổng thể cùng với chỉ mụcđoạn

Chẳng hạn, Ri được hiểu là đoạn thứ i của quan hệ R

1.3.3 Sơ đồ định vị dữ liệu (allocation schema)

- Các đoạn là các phần logic của một quan hệ tổng thể được định vị vật lý trên một hay nhiều trạm

- Sơ đồ định vị xác định đoạn dữ liệu nào được định vị tại trạm nào trên

mạng

- Tất cả các đoạn được liên kết với cùng một quan hệ tổng thể R và đượcđịnh vị tại cùng một trạm j cấu thành ảnh vật lý quan hệ tổng thể R tại trạm j

- Do đó ta có thể ánh xạ một-một giữa một ảnh vật lý và một c p (quan hệtổng thể, trạm)

- Các ảnh vật lý có thể chỉ ra bằng tên của một quan hệ tổng thể và một chỉmục trạm

- Ký hiệu Ri để chỉ đoạn thứ i của quan hệ tổng thể R

- Ký hiệu Rj để chỉ ảnh vật lý của quan hệ tổng thể R tại trạm j

- Tương tự như vậy, bản sao của đoạn i thuộc quan hệ R tại trạm j được ký hiệu là Rij

Trang 12

1.3.4 Sơ đồ ánh xạ địa phương (Local mapping schema)

- Thực hiện ánh xạ các ảnh vật lý lên các đối tượng được thực hiện bởi hệquản trị CSDL địa phương

- Tất cả các đoạn của một quan hệ tổng thể trên cùng một trạm tạo ra mộtảnh vật lý

Hình 1.4: Các đoạn và hình ảnh vật lý của một quan hệ tổng thể

Ba yếu tố được suy ra từ kiểu kiến trúc này là:

- Tách rời khái niệm phân đoạn dữ liệu với khái niệm định vị dữ liệu

- Biết được dữ liệu dư thừa

- Độc lập với các DBMS địa phương

Ba yếu tố này tương ứng với ba mức trong suốt tương ứng

a Tách rời khái niệm phân đoạn dữ liệu với khái niệm định vị dữ liệu

Trang 13

• Phân đoạn dữ liệu, bao gồm những công việc mà người lập trình

ứng dụng làm việc với quan hệ tổng thể, phân chia quan hệ tổng thểthành các đoạn

Thông qua tính trong suốt phân đoạn (fragmentation transparency) người

lập trình sẽ nhìn thấy được những đoạn dữ liệu bị phân chia như thế nào

• Định vị dữ liệu lại liên quan đến các công việc của người sử dụng và

người lập trình ứng dụng tại trên các đoạn dữ liệu được định vị tại các trạm

Thông qua tính trong suốt vị trí (location transparency) người lập trình sẽ

biết được vị trí của các đoạn dữ liệu trên các trạm

b Biết được dữ liệu dư thừa:

• Người lập trình ứng dụng có thể biết được dư thừa dữ liệu ở các trạm

• Trên h nh vẽ trên, chúng ta thấy rằng hai ảnh vật lý R2 và R3 có trùng l p

dữ liệu Do đó các đoạn dữ liệu trùng nhau có thể tránh được khi xây dựngcác khối ảnh vật lý

c Độc lập với các DBMS địa phương

Tính chất này còn được gọi là trong suốt ánh xạ địa phương (local mapping transparency), cho phép chúng ta khảo sát các vấn đề về quản lý

CSDL phân tán mà không cần phải hiểu rõ mô hình dữ liệu của DBMS địaphương đang sử dụng

1.4 Kết luận

CSDL 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 CSDL phân tán đó là: CSDL phântán được xây dựng để khắc phục các thiếu sót của CSDL 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 CSDL phântán được mở rộng và phát triển từ kỹ thuật của CSDL truyền thống Trong

Trang 14

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 CSDL Các mức trong suốt phân tán khác nhau có thể được cungcấp bởi một hệ quản trị CSDL phân tán; Tại mỗi mức, tính trong suốt làm chongười lập trình ứng dụng không biết được sự phân tán dữ liệu

Trang 15

CHƯƠNG 2: CÁC NGUYÊN LÝ CHUNG CỦA TỐI ƯU HÓA

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ếtnhiề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 gianthực hiện đó có thể giảm đáng kể nếu bộ xử lý ngôn ngữ hỏi viết lại (bằngcá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ươngphá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 đếntí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ủatí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 rvớ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ảnghi thì tích Decartes AB × CD có n × m bản ghi Rõ ràng phép tính trên rấttố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ếnlượ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 2nhóm: Nhóm 1 gồm các phép biến đổi đại số có liên quan ho c không liênquan đến cách lưu trữ các quan hệ, nhóm 2 gồm các chiến lược có lợi choviệc lưu trữ các quan hệ như khoá, chỉ số Các chiến lược thực hiện nhưsau [4]:

Trang 16

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ả trunggian, 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íchDecartes 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 chiphí tính toán

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ánhai 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ủaphé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ônglớ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ántrước biểu thức đó chỉ một lần Nếu biểu thức con chung, có liên quan đếnphé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ánliê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 haingô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

Trang 17

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ônngữ 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éptí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 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âutruy 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 khibiến đổi, có nghĩa là hai biểu thức trước và sau khi biến đổi phải cho cùngmộ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 Chiphí cho xử lý câu truy vấn có rất nhiều yếu tố, tuy nhiên ta chỉ quan tâm đếnmộ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

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[4]

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

Trang 18

Qui tắc giao hoán của phép kết nối và qui tắc giao hoán phép 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

và E2 thì E1pE2E2pE1

E1E2E2E1

Ta chứng minh qui tắc giao hoán của phép kết nối: Giả sử E1 có các thuộctính A1, A2, , An; 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, E2 Khi đó giá trị của E1E2 là tập 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 r1 và

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ếtquả bị thay đổi

Qui tắc kết hợp của phép kết nối và qui tắc kết hợp 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p1E2)p2E3E1p1(E2p2E3)

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

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

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

Trang 19

 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ủya 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ì:

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

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ì:

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

Hệ quả: Nếu p = p1 p2, p1 chỉ liên quan tới các thuộc tính của E1, p2 chỉliên quan tới thuộc tính E2, từ các qui tắc , ,  ta có:

 p(E1E2)p1(E1)p2(E2)

Nếu p1 chỉ liên quan tới các thuộc tính E1, còn p2 liên quan tới các thuộctính của cả E1 và E2 thì:

 p(E1E2)p2(p1(E1)E2)

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ênnhư 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ínhduy 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)

Trang 20

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.

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

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

Theo qui tắc , nếu tên các thuộc tính của E1 và E2 là khác nhau thì cầnthay thế các thuộc tính trong p ở vế phải tương ứng các thuộc tính của E1

Chú ý: Phép chọn p(E2) là không cần thiết, có thể thay bởi E2 Tuy nhiên, trong nhiều trường hợp, việc thực hiện phép chọn p(E2) trước sẽ có hiệuquả hơn là tính toán trực tiếp với E2 v khi đó kích thước quan hệ sẽ nhỏ đinhiề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ốngtrướ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 đó:

 A1, ,An(E1 E2) =B1, ,Bm(E1) C1, ,Ck(E2)

Qui tắc giao hoán của phép chiếu và phép hợp:

 A1, ,An(E1 E2) =A1, ,An(E1)C1, ,Ck(E2)

Như trong quy tắc , nếu tên các thuộc tính của E1 và/ho c E2 là khác vớithuộc tính trong E1 E2 thì phải thay A1, ,An ở vế phải bởi các tên phù hợp

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

Trang 21

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ứctương đương [4].

Đầ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 haibiểu thức mà trước đó các phép chọn và / ho c các phép chiếu đã được ápdụng cho một hay hai hạ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 đó

3 Sử dụng qui tắc , ,  và  để đẩy sâu phép chiếu đến mức có thể trong cây

biểu diễn Chú ý: qui tắc  gây ra một vài phép chiếu biến mất, trong khi quitắc  tách một phép chiếu thành hai phép chiếu và một trong chúng có thểchuyển xuống

Trang 22

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

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ồmmột số thông tin bổ sung về sách cho mượn XMUON là kết nối tự nhiên củaquan hệ SACH, DOCGIA, MUON có thể xác định như sau:

Trang 23

Cần đưa ra danh sách những cuốn sách đã cho mượn trước ngày13/10/2013:

TENSACHNGAY<13/10/2013(XMUON)

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

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

Trang 24

Đẩy sâu một trong ba phép chọn xuống đến mức có thể trong cây biểudiễn Phép chọn NGAY<13/10/2013 được đẩy xuống dưới phép chiếu và hai phépchọ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:

thuộc

tính của NGAY<13/10/2013 (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à

Trang 25

Á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íchDecartes trong hình 2.2

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ộtphần xuống phép chọn NGAY<13/10/2013 bởi qui tắc  Trong biểu thức

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 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 gián đoạn, nhóm các phép toán phíadướ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ệ [5]

Trang 27

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

Ví dụ 2.3: Với CSDL 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 13/10/2013" Đồ thị nối cácquan hệ như sau:

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

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ànhcá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 đơngiả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áchcâ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

Trang 28

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ướcngày 13/10/2013" giả sử kết quả là R1

Q2: "T m trong quan hệ DOCGIA những độc giả đã mượn những cuốnsách có trong R1", quan hệ kết quả R2

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 khinhiề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êncác quan hệ Sau đó sử dụng phép nửa kết nối để nối các c p quan hệ có cungnố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ệ

Trang 29

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.SOTHE MUON

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ộ

Trang 30

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ậptrung 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 địaphươ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

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 truyvấ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 đầutiê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ấtchung, 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

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:

SELECT V2.A2, V3.A3, , Vn.An

Trang 31

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

KYSU(SHKS, TENKS, NGHE)

HOSODA(SHKS, SHDA, TRNH,THOIGIAN)

DUAN(SHDA, TENDA, NGANSACH)

Trang 32

Câu truy vấn: "T m tên kỹ sư làm việc cho dự án CAD/CAM"

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

q11: SELECT DUAN.SHDA INTO JTG

q' được phân tách tiếp như sau, trong đó GTG là quan hệ trung gian:

q12: SELECT HOSODA.SHKS INTO GTG;

Trang 33

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ởicá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}

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à INGRES-QOA

Thuật toán: INGRES-QOA

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

Output: output: Câu truy vấn tối ưu

Begin

Trang 34

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

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 {INGRES-QOA}

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ệ 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:

Trang 35

- Dự đoán phương pháp truy nhập tới mỗi quan hệ đơn tốt nhất dựa trênmộ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 truynhậ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 mthấ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ớiquan 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ếtkết nối được gọi ra để tạo quan hệ kết quả Nếu không đánh chỉ số, với cácquan hệ được lưu trữ theo thứ tự trên n1, n2 bộ bản ghi, thuật toán này có chiphí 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ênthuộ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ếuchỉ 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ồngnhau được so sánh với chi phí của phương pháp trộn + chi phí sắp xếp Chiphí 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ệ trongtruy 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 quanhệ) 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

Trang 36

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

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

Trang 37

KYSU index trên SHKS HOSODA index trên SHDADUAN index trên SHDA và TENDAGiả 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)

DUAN: index trên TENDA (v có một phép chọn trên HOSODA dựatrê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éptoán có đánh dấu "loại bỏ" sẽ được loại bỏ tự động Mức 1 của cây chỉ raphươ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ậptrực tiếp tới các bộ kết nối của HOSODA và KYSU, chọn phương pháp truynhập sau:

Trang 38

2.5 Kết luận

Hình 2.9: Các thứ tự kết nối luân phiê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ựatrê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âutruy 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 nhphâ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ã 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ànhcâ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.1.1 Chuẩn hóa

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

- Dạng chuẩn hội là hội () của những phép tuyển ():

(p11 p12  p1n)… (pm1 pm2  pmn)

- Dạng chuẩn tuyển là tuyển () của những phép hội ():

(p11 p12  p1n)…  (pm1 pm2 …  pmn)

Trong đó pij là các biểu thức nguyên tố

Ví dụ 3.1: Xét các 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ư

SHDA: Số hiệu dự án

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”HOIGIAN = 24)

Trong dạng chuẩn tuyển, xử lý hai biểu thức hội độc lập có thể dẫn đếncông việc thừa nếu có biểu thức con chung

3.1.2 Phân tích

Câu truy vấn ở dạng chuẩn được phân tích (về m t ngữ nghĩa) để phát hiện

ra những thành phần không đ ng (sai kiểu và sai ngữ nghĩa) và loại bỏ ch ngsớm nhất có thể

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 chocá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 giavào việc tạo ra kết quả Để xác định một câu truy vấn có sai ngữ nghĩa haykhô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ị

Ngày đăng: 20/01/2015, 11:57

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Hồ Thuần - Hồ Cẩm Hà (2004), Nguyên lý cơ sở dữ liệu – Lý thuyết và thực hành, NXB Giáo dục Sách, tạp chí
Tiêu đề: Nguyên lý cơ sở dữ liệu – Lý thuyết vàthực hành
Tác giả: Hồ Thuần - Hồ Cẩm Hà
Nhà XB: NXB Giáo dục
Năm: 2004
[3] Nguyễn Văn Nhuận - Phạm Việt Bình (2009), “Giáo trình Hệ cơ sở dữ liệu phân tán &amp; suy diễn: Lý thuyết và thực hành”, NXB Khoa học và kỹ thuật Sách, tạp chí
Tiêu đề: Giáo trình Hệ cơ sở dữliệu phân tán & suy diễn: Lý thuyết và thực hành”
Tác giả: Nguyễn Văn Nhuận - Phạm Việt Bình
Nhà XB: NXB Khoa học vàkỹ thuật
Năm: 2009
[4] Đỗ Phúc – Nguyễn Tăng Tỵ (2006), Giáo trình cơ sở dữ liệu, NXB ĐHQG TP Hồ Chí Minh Sách, tạp chí
Tiêu đề: Giáo trình cơ sở dữ liệu
Tác giả: Đỗ Phúc – Nguyễn Tăng Tỵ
Nhà XB: NXBĐHQG TP Hồ Chí Minh
Năm: 2006
[5] 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: NXBKhoa học Kỹ thuật
Năm: 2005
[6] Phạm Thế Quế (2009), Giáo trình Cơ sở dữ liệu phân tán, NXB Thông tin và truyền thông.Tiếng Anh Sách, tạp chí
Tiêu đề: Giáo trình Cơ sở dữ liệu phân tán
Tác giả: Phạm Thế Quế
Nhà XB: NXB Thôngtin và truyền thông.Tiếng Anh
Năm: 2009
[7] Ramzi A. Haraty, Roula C.Fany (2001), Query Acceleration in Distributed Database Systems, Colombian Journal of Computation.Volume 2, Number 1 Sách, tạp chí
Tiêu đề: Query Acceleration inDistributed Database Systems
Tác giả: Ramzi A. Haraty, Roula C.Fany
Năm: 2001
[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
[2] Khoa CNTT ĐH KHTN ĐH Quốc gia HN (2008), Hệ cơ sở dữ liệu phân tán Khác
[9] h t t p : / / e n . w i k i p e d i a. o r g/ w i ki / D i s t r i bu t e d _d a t a b a s e Khác

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w