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

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

106 1,8K 2

Đ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 106
Dung lượng 1,8 MB

Nội dung

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

Trang 1

ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

NGUYỄN THỊ LOAN

TỐI ƯU HOÁ 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

Thái nguyên, 2011

Trang 2

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

Thái nguyên, 2011

Trang 3

LỜI CAM ĐOAN

Tôi xin cam đoan, kết quả của luận văn hoàn toàn là kết quả của tự bản thân tôi tìm hiểu, nghiên cứu Các tài liệu tham khảo đƣợc trích dẫn và chú thích đầy đủ

Tác giả

NGUYỄN THỊ LOAN

Trang 4

LỜI CẢM ƠN

Lời đầu tiên tôi xin gửi lời cảm ơn chân thành nhất đến thầy

PGS.TS Đoàn Văn Ban đã định hướng và nhiệt tình hướng dẫn,

giúp đỡ tôi rất nhiều về mặt chuyên môn trong quá trình làm luận văn

Tôi xin gửi lời biết ơn sâu sắc đến các thầy, các cô đã dạy dỗ

và truyền đạt những kinh nghiệm quý báu cho chúng tôi trong suốt hai năm cao học ở trường Đại học Công nghệ thông tin và truyền thông

Cuối cùng tôi xin dành tình cảm thân thiết nhất cho bạn bè, đồng nghiệp, cha mẹ và gia đình, những người luôn gần gũi để động viên, chia sẻ cùng tôi trong suốt thời gian qua

Thái Nguyên, tháng 9 năm 2011

Nguyễn Thị Loan

Trang 5

MỤC LỤC

Trang phụ bìa Trang

Lời cam đoan i

Lời cảm ơn ii

Mục lục iii

Danh mục các hình vẽ, đồ thị vi

PHẦN MỞ ĐẦU ………1

1 Đặt vấn đề……….1

2 Đối tượng và phạm vi nghiên cứu……… 1

3 Hướng nghiên cứu của đề tài……… 1

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

5 Ý nghĩa khoa học của đề tài………2

6 Các kết quả dự kiến……….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 Các đặc điểm chính của cơ sở dữ liệu phân tán………4

1.1.3 Mục đích của việc sử dụng cơ sở dữ liệu phân tán……… 8

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

1.2.1.Trong suốt phân tán………9

1.2.2 Trong suốt giao dịch……….10

1.2.3.Trong suốt các sự cố……… 10

1.2.4 Trong suốt thao tác……… 10

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

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

1.3.1.Sơ đồ tổng thể………11

1.3.2 Sơ đồ phân đoạn……… 11

1.3.3 Sơ đồ định vị……….12

1.3.4 Sơ đồ ánh xạ địa phương……….12

Trang 6

1.3.5 Chia sẻ tài nguyên……… 14

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

1.4.1.Phân tán………14

1.4.1.1 Phân đoạn ngang……… …14

1.4.1.2 Phân đoạn ngang dẫn tiếp……… 15

1.4.1.3 Phân đoạn dọc……….16

1.4.1.4 Phân đoạn hỗn hợp……… 17

1.4.2.Nhân bản dữ liệu……… 18

1.4.3 Định vị dữ liệu……….19

1.4.4 Hệ quản trị CSDL phân tán……….19

1.5 Kết luận……….20

Chương 2 TỐI ƯU HÓA TRUY VẤN TRONG CƠ SỞ DỮ LIỆU PHÂN TÁN 2.1 Các chiến lược tối ưu hóa cơ bản……… 21

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

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

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

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

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

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

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

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

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

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

2.3.4 Phương pháp thay thế n –bộ……… 32

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

2.4.1 Thuật toán INGRES……… …33

2.4.2 Thuật toán System R……… 37

2.5 Phân rã cây truy vấn……… 40

2.5.1 Chuẩn hóa……….40

2.5.2.Phân tích……… 42

Trang 7

2.5.3 Loại bỏ dư thừa………44

2.5.4 Viết lại……… 45

2.6 Định vị dữ liệu phân tán……… 48

2.6.1 Rút gọn phân đoạn ngnang nguyên thủy………48

2.6.2 Rút gọn phân đoạn dọc……… 51

2.6.3 Rút gọn phân đoạn gián tiếp……… 52

2.6.4 Rút gọn phân đoạn hỗn hợp……… 54

2.7 Khái quát về xử lý câu truy vấn……… 55

2.7.1 Vấn đề xử lý truy vấn……….56

2.7.2 Các mục tiêu của xử lý câu truy vấn……… 56

2.7.3 Các giai đoạn xử lý câu truy vấn………57

2.7.4 Tối ưu hóa các truy vấn phân tán……… 57

2.7.4.1 Đầu vào bộ tối ưu hóa câu truy vấn………58

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

2.7.4.3.Thứ tự kết nối……… 63

2.7.4.4 Các thuật toán dựa trên phép nửa kết nối……… 65

2.8 Các thuật toán tối ưu hóa truy vấn phân tán……….69

2.8.1 Thuật toán INGRES phân tán………70

2.8.2 Thuật toán R*……….72

2.8.3 Thuật toán SDD -1……….76

2.8.4 Các thuật toán AHY ( Apers – Hevner – Yao)………80

2.9 Kết luận……….86

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

3.1 Xác định thuật toán……… 89

3.2 Cài đặt thử nghiệm thuật toán……… 89

3.2.1 Cấu trúc cơ sở dữ liệu……….89

3.2.2 Xây dựng ứng dụng………90

3.2.3 Thử nghiệm 1……….92

3.2.4 Thử nghiệm 2……….94

3.3 Kết luận ……… 95

Trang 8

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI………96

TÀI LIỆU THAM KHẢO………97

CÁC HÌNH VẼ, ĐỒ THỊ Hình 1.1 Trong suốt phân đoạn………6

Hình 1.2 Sự trong suốt về vị trí………7

Hình 1.3 Sự trong suốt ánh xạ cục bộ……… 8

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

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

Hình 1.6 Cây phân tán của quan hệ……….18

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

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

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

Hình 2.4 Đồ thị nối quan hệ………31

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

Hình 2.6 Đồ thị các quan hệ có chu trình………33

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

Hình 2.8 Đồ thị kết nối của cây truy vấn………39

Hình 2.9 Các đồ thị quan hệ……… 43

Hình 2.10 Đồ thị cây truy vấn không liên thông……….44

Hình 2.11 Cây đại số quan hệ……….46

Hình 2.12 Cây đại số quan hệ tương đương……… 47

Hình 2.13 Cây đại số quan hệ viết lại……… 48

Hình 2.14 Rút gọn cho phân đoạn ngnang với phép chọn……… 49

Hình 2.15 Rút gọn phân đoạn ngang cho phép kết nối………50

Hình 2.16 Rút gọn đối với việc phân đoạn dọc……… 52

Hình 2.17 Rút gọn phân đoạn gián tiếp.……… 54

Trang 9

Hình 2.18 Rút gọn phân đoạn hỗn hợp……… 55

Hình 2.19 Sơ đồ phân lớp cho việc xử lý truy vấn phân tán……… 57

Hình 2.20 Truyền các toán hạng trong phép toán hai ngôi……….64

Hình 2.21 Đồ thị kết nối của câu truy vấn phân tán……… 64

Hình 2.22 Biến đổi của câu truy vấn chu trình……… 68

Hình 2.23 Câu truy vấn ví dụ và các thống kê……… 79

Hình 2.24 Ví dụ một câu truy vấn đơn và các thống kê……….82

Hình 2.25 Schedule tối ƣu……… 83 Hình 2.26 Các giai đoạn của việc đánh giá một câu truy vấn phân tán….87

Trang 10

PHẦN MỞ ĐẦU

1 Đặt vấn đề

Ngày nay lĩnh vực thương mại ngày càng mở rộng và phát triển Để kinh doanh được thuận lợi và có hiệu quả cần phải nắm bắt thông tin nhanh nhất khi các địa điểm kinh doanh ở xa nhau Do đó xây dựng 1 hệ thống làm việc dựa trên

cơ sở dữ liệu phân tán là phù hợp với xu hướng hiện nay

Cơ sở dữ liệu phân tán đã, đang được nghiên cứu và ứng dụng vào thực tế Việc cần làm là nghiên cứu và làm sáng tỏ thêm khả năng ứng dụng thực tiễn 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

Cơ sở dữ liệu phân tán với cấp độ tự trị cao ở mỗi điểm Trong hệ phân tán các câu truy vấn có thể sử dụng kỹ thuật tối ưu hoá làm giảm thời gian tính toán, khối lượng truyền thông tin giữa các trạm và giảm không gian bộ nhớ, tránh được các công việc dư thừa, loại bỏ những phần vô ích

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 Đối tượng và phạm vi nghiên cứu

- Đối tượng nghiên cứu là cơ sở dữ liệu phân tán

- Phạm vi nghiên cứu là một số các kỹ thuật tối ưu hoá truy vấn trong cơ sở

dữ liệu

3 Hướng nghiên cứu của đề tài

- Nghiên cứu tối ưu hoá truy vấn trong 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à nghiên cứu cải tiến về tối ưu hoá truy vấn lồng trong cơ sở dữ liệu phân tán

Trang 11

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

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

- Nghiên cứu lý thuyết: Tìm hi ểu nghiên cứu các tài liệu liên quan trong sách,

tạp chí, các bài báo trên mạng Internet… Tổng hợp, so sánh các kết quả viết lại thành luận văn

- Nghiên cứu thực nghiệm: Cài đặt thử nghiệm

5 Ý nghĩa khoa học của đề tài

- Giảm thiểu thời gian xử lý

- Giảm vùng nhớ trung gian

- Giảm chi phí truyền thông giữa các trạm

6 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 12

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

Một CSDL 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

- Tính chất phân tán: Toàn bộ dữ liệu của CSDL phân tán không được cư trú ở

một nơi mà cư trú trên nhiều trạm thuộc mạng máy tính, điều này giúp chúng ta phân biệt CSDL phân tán với CSDL tập trung đơn lẻ

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

tính ràng buộc chúng với nhau, điều này giúp chúng ta có thể phân biệt một CSDL phân tán với một tập hợp CSDL cục bộ hoặc các tệp cư trú tại các vị trí khác nhau trong một mạng máy tính

Ví dụ1.1: Một ngân hàng có ba chi nhánh đặt tại các vị trí khác nhau Tại mỗi

chi nhánh có một máy tính điều khiển một số máy kế toán cuối cùng (teller terminal) và cơ sở dữ liệu thống kê của chi nhánh đó Mỗi máy tính với cơ sở dữ liệu thống kê địa phương của nó tại mỗi chi nhánh được đặt ở một vị trí của cơ sở

dữ liệu phân tán Các máy tính được nối với nhau bởi một mạng truyền thông Các nút trong một mạng phân tán một mặt xử lý thông tin tại vị trí mà nó quản lý, mặt khác nó cũng tham gia vào việc xử lý các yêu cầu về thông tin cần truy cập qua nhiều địa điểm Ví dụ như việc lên danh sách tất cả nhân viên của ngân hàng Yêu cầu này đòi hỏi tất cả các máy tính ở các chi nhánh của công ty đều phải hoạt động

để cung cấp thông tin

Trang 13

1.1.2 Các đặc điểm chính của cơ sở dữ liệu 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 thông qua mạng truyền thông Để chia sẻ tài nguyên một cách có hiệu quả thì mỗi tài nguyên cần được quản lý bởi một chương trình có giao diện truyền thông, các tài nguyên có thể được truy cập, cập nhật một cách tin cậy và nhất quán Quản lý tài nguyên ở đây là lập kế hoạch dự phòng, đặt tên cho các lớp tài nguyên, cho phép tài nguyên được truy cập từ nơi này đến nơi khác, ánh xạ lên tài nguyên vào địa chỉ truyền thông,

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ỗi máy có thể có một hay nhiều CPU

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ện tiến trình theo cơ chế phân chia thời gian (một CPU) hay (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ình huống sau:

- 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ác chương trình ứng dụng

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

từ các Clients

Trang 14

4 Khả năng mở rộng

Hệ phân tán có khả năng hoạt động tốt và hiệu quả ở nhiều mức khác nhau Một hệ phân tán nhỏ nhất có thể hoạt động chỉ cần hai trạm làm việc và một File Server Các hệ lớn hơn tới hàng nghìn máy tính

Khả năng mở rộng của một hệ phân tán được đặc trưng bởi tính không thay đổi phần mềm hệ thống và phần mềm ứng dụng khi hệ được mở rộng

Yêu cầu cho việc mở rộng không chỉ là mở rộng phần cứng, về mạng mà nó trải trên 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 trên mạng đột ngột Để 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 truy nhập các file đó Người ta nhân bản các file trên một Server khác và hệ thống được thiết kế sao cho việc thêm Server được dễ dàng Một số giải pháp khác là sử dụng Cache và các bảng sao dữ liệu

5 Khả năng thứ lỗi

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ải phá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 hồi phục dữ liệu khi xảy ra sự cố

6 Tính trong suốt

Tính trong suốt của một hệ phân tán được hiểu như là việc che khuất đi các thành phần riêng biệt của hệ đối với người sử dụng và những người lập trình ứng dụng

Các loại trong suốt trong hệ phân tán:

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)

Trang 15

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

SELECT *

FROM NCC

WHERE Id=”Id1”

Tính 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ền truy cập đến cơ sở dữ liệu 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ực hiệ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ỏ qua cá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 mà không ảnh hưởng đến các ứng dụng

Hình 1.1:Trong suốt phân đoạn

Trang 16

Ví dụ 1.4 : Với quan hệ tổng thể R và các phân đoạn như đã nói ở trên nhưng

giả sử rằng DDBMS cung cấp trong suốt về vị trí nhưng không cung cấp trong suốt

• Ở đâ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

Trong suốt ánh xạ cục bộ (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ộ

Trang 17

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

Tính trong suốt của sự trùng lặp: Nếu dữ liệu trùng lặp để giảm chi phí

truyền thông với cơ sở dữ liệu hoặc nâng cao độ tin cậy, người sử dụng không cần biết đến điều đó

7 Đả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 cơ sở dữ liệu

1.1.3 Mục đích của việc sử dụng cơ sở dữ liệu phân tán

Xuất phát từ yêu cầu thực tế về tổ chức và kinh tế: Trong thực tế nhiều tổ chức là không tập trung, dữ liệu ngày càng lớn và phục vụ cho đa người dùng nằm phân tán, vì vậy cơ sở dữ liệu phân tán là con đường thích hợp với cấu trúc tự nhiên của các tổ chức đó Đây là một trong những yếu tố quan trọng thức đẩy việc phát triển cơ sở dữ liệu phân tán

Sự liên kết các cơ sở dữ liệu địa phương đang tồn tại: cơ sở dữ liệu phân tán

là giải pháp tự nhiên khi có các cơ sở dữ liệu đang tồn tại và sự cần thiết xây dựng một ứng dụng toàn cục Trong trường hợp này cơ sở dữ liệu phân tán được tạo từ dưới lên dựa trên nền tảng cơ sở dữ liệu đang tồn tại Tiến trình này đòi hỏi cấu trúc lại các cơ sở dữ liệu cục bộ ở một mức nhất định Dù sao, những sửa đổi này vẫn là nhỏ hơn rất nhiều so với việc tạo lập một cở sở dữ liệu tập trung hoàn toàn mới

Trang 18

Làm giảm tổng chi phí tìm kiếm: Việc phân tán dữ liệu cho phép các nhóm làm việc cục bộ có thể kiểm soát được toàn bộ dữ liệu của họ Tuy vậy, tại cùng thời điểm người sử dụng có thể truy cập đến dữ liệu ở xa nếu cần thiết Tại các vị trí cục bộ, thiết bị phần cứng có thể chọn sao cho phù hợp với công việc xử lý dữ liệu cục

bộ tại điểm đó

Sự phát triển mở rộng: Các tổ chức có thể phát triển mở rộng bằng cách thêm các đơn vị mới, vừa có tính tự trị, vừa có quan hệ tương đối với các đơn vị tổ chức khác Khi đó giải pháp cơ sở dữ liệu phân tán hỗ trợ một sự mở rộng uyển chuyển với một mức độ ảnh hưởng tối thiểu tới các đơn vị đang tồn tại

Trả lời truy vấn nhanh: Hầu hết các yêu cầu truy vấn dữ liệu từ người sử dụng tại bất kỳ vị trí cục bộ nào đều thoả mãn dữ liệu ngay tại thời điểm đó

Độ tin cậy và khả năng sử dụng nâng cao: nếu có một thành phần nào đó của

hệ thống bị hỏng, hệ thống vẫn có thể duy trì hoạt động

Khả năng phục hồi nhanh chóng: Việc truy nhập dữ liệu không phụ thuộc vào một máy hay một đường nối trên mạng Nếu có bất kỳ một lỗi nào hệ thống có thể tự động chọn đường lại qua các đường nối khác

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

1.2.1 Trong suốt phân tán

- Cho phép xử lý dữ liệu trên hệ cơ sở dữ liệu phân tán giống như đối với cơ

sở dữ liệu tập trung

- Người sử dụng không cần biết: Dữ liệu đã được phân đoạn như thế nào, các bản sao dữ liệu để ở đâu, vị trí vật lý lưu trữ dữ liệu ở đâu

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

+ Trong suốt địa điểm: 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

Trang 19

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 các sự cố

Đả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ở

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 cơ bản của CSDL phân tán

Đây không là kiến trúc tường minh cho tất cả các CSDL phân tán

Trang 20

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 cơ sở dữ liệu 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

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

CSDL địa

phương 1

(Local Database 1)

CSDL địa phương 2 (Local Database 2)

(Local mapping Schema 1) Sơ đồ ánh xạ địa ph-ơng n

(Local mapping Schema n)

Sơ đồ định vị (Allocation Schema)

Sơ đồ phân mảnh (Fragmentation Schema)

đồ độc lập

vị trớ

Hỡnh 1.4 Kiến trỳc CSDL phõn tỏn

Trang 21

đị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ị (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

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ị cơ sở dữ liệu đị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

R 2 (Trạm 2 )

R 1 (Trạm 1 )

R 1

R 2 1

Trang 22

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

• 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ựng cá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 địa phương đang sử dụng

1.3.5 Chia sẻ tài nguyên

- Được thực hiện qua mạng truyền thông

- Mỗi tài nguyên cần phải được quản lý bởi một chương trình có giao diện truyền thông

Trang 23

- Các tài nguyên có thể được truy nhập, cập nhật một cách tin cậy và nhất quán

Quản lý tài nguyên: bao gồ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ài nguyên được truy nhập từ nơi này đến nơi khác

• Ánh xạ tên tài nguyên vào địa chỉ truyền thông

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]

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

Trang 24

- Đ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 đầ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

Trang 25

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

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

Trang 26

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

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.8: 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

Trang 27

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.6: 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 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

Trang 28

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

1.4.4 Hệ quản trị CSDL phân tán

Hệ quản trị CSDL phân tán (Distributed Database Management DBMS) được định nghĩa là một hệ thống phần mềm cho phép quản lý các hệ CSDL (tạo lập và điều khiển các truy nhập cho các hệ CSDL phân tán) và làm cho việc phân tán trở nên trong suốt với người sử dụng

Đặc tính vô hình muốn nói đến sự tách biệt về ngữ nghĩa ở cấp độ cao của một hệ thống với các vấn đề cài đặt ở cấp độ thấp Sự phân tán dữ liệu được che dấu với người sử dụng làm cho người sử dụng truy nhập vào CSDL phân tán như hệ CSDL tập trung Sự thay đổi việc quản trị không ảnh hưởng tới người sử dụng

Hệ quản trị CSDL phân tán gồm 1 tập các phần mềm (chương trình) sau đây:

 Các chương trình quản trị các dữ liệu phân tán

 Chứa các chương trình để quản trị việc truyền thông dữ liệu

 Các chương trình để quản trị các CSDL địa phương

 Các chương trình quản trị từ điển dữ liệu

Trang 29

Để tạo ra một hệ CSDL phân tán (Distributed Database System-DDBS) các tập tin không chỉ có liên đới logic chúng còn phải có cấu trúc và được truy xuất qua một giao diện chung

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 30

Chương 2 TỐI ƯU HÓA TRUY VẤN TRONG

CƠ SỞ DỮ LIỆU 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 31

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

Trang 32

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 33

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

Trang 34

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ần thay 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ệu quả

hơn 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 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

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ệ

Trang 35

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

4 Sử dụng qui tắc (, ( để tổ hợp dãy các phép chọn thành một phép chọn, các phép chiếu thành một phép chiếu hoặc 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 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

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ả ở

Trang 36

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:

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

Trang 37

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 38

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 39

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 40

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

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

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

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