Tải bản đầy đủ (.pdf) (101 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.7 MB, 101 trang )

ĐẠI HỌC THÁI NGUYÊN
KHOA CÔNG NGHỆ THÔNG TIN
--------------------------------

PHẠM THỊ THU HUYỀN

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

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS. ĐỒN VĂN BAN

Thái Ngun - 2010

Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên




ĐẠI HỌC THÁI NGUYÊN
KHOA CÔNG NGHỆ THÔNG TIN
--------------------------------

PHẠM THỊ THU HUYỀN

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

Chuyên nghành: Khoa học máy tính
M· sè: 60.48.01


LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS. ĐỒN VĂN BAN

Thái Ngun - 2010

Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên




-1-

MỤC LỤC
Trang phụ bìa
Lời cam đoan
Lời cám ơn
Mục lục...................................................................................................................................i
Danh mục ký hiệu, các chữ viết tắt.................................................................................... ii
Danh mục hình vẽ, ảnh chụp, đồ thị..................................................................................iii
PHẦN MỞ ĐẦU ............................................................................................................... 1
1. Lý do chọn đề tài ................................................................................................... 1
2. Phạm vi nghiên cứu và ứng dụng ....................................................................... 1
3. Ý nghĩa khoa học ................................................................................................... 1
4. Phƣơng pháp nghiên cứu ..................................................................................... 1
5. Các kết quả dự kiến đạt đƣợc ............................................................................. 2
Chƣơng 1. CƠ SỞ DỮ LIỆU PHÂN TÁN ................................................................. 3
1.1. Khái niệm về hệ cơ sở dữ liệu phân tán .......................................................... 3
1.1.1. Khái niệm ......................................................................................................... 3
1.1.2 Những ưu điểm của cơ sở dữ liệu phân tán ........................................................ 3

1.1.3 Những nhược điểm của cơ sở dữ liệu phân tán ................................................... 4
1.2. Các đặc trƣng trong suốt của cơ sở dữ liệu phân tán ................................... 5
1.2.1 Trong suốt phân tán ........................................................................................... 5
1.2.2 Trong suốt giao dịch ........................................................................................ 6
1.2.3 Trong suốt thất bại ........................................................................................... 6
1.2.4 Trong suốt thao tác ........................................................................................... 6
1.2.5 Trong suốt về tính khơng thuần nhất .................................................................. 7
1.3 Kiến trúc tham chiếu của cơ sở dữ liệu phân tán ......................................... 7
1.4 Các kỹ thuật xây dựng cơ sở dữ liệu phân tán .................................................... 8
1.4.1 Phân đoạn ......................................................................................................... 8
1.4.3 Định vị dữ liệu ................................................................................................. 13
1.5 Kết luận ............................................................................................................. 14
Chƣơng 2. CÁC NGUYÊN LÝ CHUNG CỦA TỐI ƢU HÓA CÂU TRUY VẤN
PHÂN TÁN ..................................................................................................................... 15
2.1. Các chiến lƣợc tối ƣu hóa cơ bản .................................................................. 15
2.2. Các phép biến đổi đại số ................................................................................. 16
2.2.1 Các yêu cầu của phép biến đổi tối ưu hoá câu truy vấn .................................... 16
2.2.2 Biểu thức tương đương..................................................................................... 17
2.2.3 Các qui tắc liên quan đến phép kết nối và tích Decartes ................................... 17
2.2.4. Các qui tắc liên quan đến phép chọn và phép chiếu......................................... 18
2.2.5. Thuật toán cải tiến cây biểu diễn biểu thức quan hệ .................................. 19
2.3 Phân rã câu truy vấn thành những câu truy vấn con ................................. 24
2.3.1 Đồ thị nối các quan hệ ................................................................................... 24
2.3.2. Tách câu truy vấn thành các câu truy vấn con ............................................. 25
2.3.3 Dùng phép nửa kết nối để giảm kích thước quan hệ................................... 26
2.3.4 Phương pháp thay thế n-bộ .............................................................................. 26
2.4 Các kỹ thuật tối ƣu hóa tập trung..................................................................... 27
2.4.1 Thuật tốn INGRES ....................................................................................... 28
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên





-2-

2.4.2 Thuật toán SYSTEM R ................................................................................... 31
2.5 Kết luận .............................................................................................................. 34
Chƣơng 3. TỐI ƢU HÓA TRUY VẤN PHÂN TÁN ............................................... 35
3.1 Phân rã câu truy vấn ........................................................................................... 35
3.1.1 Chuẩn hoá ...................................................................................................... 35
3.1.2 Phân tích ......................................................................................................... 36
3.1.3 Loại bỏ dư thừa .............................................................................................. 39
3.1.4 Viết lại ............................................................................................................. 40
3.2 Định vị dữ liệu phân tán ...................................................................................... 42
3.2.1 Rút gọn phân đoạn ngang nguyên thuỷ ......................................................... 43
3.2.2 Rút gọn phân đoạn dọc .................................................................................. 46
3.2.3 Rút gọn phân đoạn gián tiếp ......................................................................... 47
3.2.4 Rút gọn phân đoạn hỗn hợp ............................................................................. 49
3.3. Khái quát về xử lý câu truy vấn ........................................................................ 50
3.3.1. Vấn đề xử lý truy vấn ..................................................................................... 51
3.3.2. Các mục tiêu của xử lý câu truy vấn ............................................................. 52
3.3.3. Các giai đoạn xử lý câu truy vấn................................................................... 52
3.4. Tối ƣu hoá các truy vấn phân tán ...................................................................... 53
3.4.1. Đầu vào bộ tối ưu hoá câu truy vấn .............................................................. 54
3.4.2. Thứ tự kết nối trên các câu truy vấn đoạn .................................................. 59
3.4.3. Các thuật toán tối ưu hoá câu truy vấn phân tán ......................................... 65
3.4.3 Kết luận ......................................................................................................... 82
Chƣơng 4. CÀI ĐẶT VÀ THỬ NGHIỆM THUẬT TỐN .......................................... 85
4.1 Xác định thuật tốn .......................................................................................... 85
4.2 Cài đặt thử nghiệm thuật toán tối ƣu truy vấn trong cơ sở dữ liệu phân

tán .............................................................................................................................. 85
4.2.1. Cấu trúc của CSDL ...................................................................................... 85
4.2.2. Xây dựng ứng dụng ....................................................................................... 88
4.3 Kết luận ................................................................................................................ 95
KẾT LUẬN .................................................................................................................. 96
TÀI LIỆU THAM KHẢO .............................................................................................. 97

Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên




-1-

PHẦN MỞ ĐẦU

1. Lý do chọn đề tài
Xã hội ngày càng phát triển kèm theo yêu cầu khối lượng thông tin cần xử
lý, lưu trữ tăng lên. Trên thực tế, các doanh nghiệp, các đơn vị và các tổ chức phải
phân bố trên một vùng rộng lớn về mặt địa lý, có thể dàn trải trên phạm vi nhiều
thành phố, hoặc toàn bộ quốc gia hay đến một vài quốc gia, thậm chí trên tồn
cầu. Do đó, dữ liệu khơng thể lưu trữ tập trung ở một địa điểm nhất định mà rải
khắp các địa điểm mà cơ quan, tổ chức hay doanh nghiệp đó hoạt động. Khi dữ liệu
khơng cịn lưu trữ tập trung thì vấn đề làm thế nào để quản lý, tốc độ truy xuất dữ
liệu phục vụ cho công tác chuyên môn không bị ảnh hưởng, khơng bị gián đoạn
được đặt ra. Đó chính là tiền đề để cơ sở dữ liệu phân tán ra đời.
Khi khối lượng thông tin phải xử lý ngày càng lớn, phong phú và đa dạng
thì vấn đề đặt ra là xử lý thông tin như thế nào để giảm chi phí đến mức tối
thiểu. Một trong các giải pháp có tính khả thi là phải tối ưu hố các câu lệnh khi
truy vấn dữ liệu nên tôi chọn nghiên cứu “Tối ưu hoá truy vấn trong cơ sở dữ

liệu phân tán” làm đề tài luận văn tốt nghiệp của mình.

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

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

4. Phương pháp nghiên cứu
Nghiên cứu lý thuyết CSDL, CSDL phân tán, các kỹ thuật truy vấn trong các sách,
bài báo đã công bố. Tổng hợp các kết quả đã công bố về truy vấn tối ưu và đề xuất
một số cải tiến thực hiện tối ưu hóa truy vấn phân tán.
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên




-2-

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

Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên





-3-

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
1.1.1. Khái niệm
Cơ sở dữ liệu phân tán [3] là một tập hợp các dữ liệu phục thuộc lôgic 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 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à 1
node hoặc site.
Hệ quản trị cơ sở dữ liệu phân tán (DBMS) là phần mềm quản trị cơ sở dữ
liệu, đảm bảo trong suốt đối với người sử dụng và cho phép tính tự trị nghĩa là mỗi
cơ sở dữ liệu thành phần vẫn được quản trị độc lập và riêng biệt.
Định nghĩa này nhấn mạnh hai khía cạnh quan trọng của cơ sở dữ liệu phân
tán
- Tính phân tán: Thực tế dữ liệu không cư trú ở cùng một trạm, vì vậy chúng
ta có thể phân biệt một cơ sở dữ liệu phân tán với cơ sở dữ liệu tập trung.
- Sự tương quan logic: Các dữ liệu có một số tính chất ràng buộc lẫn nhau và
như vậy có thể phân biệt cơ sở dữ liệu phân tán với tập các cơ sở dữ liệu địa
phương hoặc với các tệp ở các trạm khác nhau trên mạng.
1.1.2 Những ưu điểm của cơ sở dữ liệu phân tán
Lợi ích cơ bản nhất của cơ sở dữ liệu phân tán là dữ liệu của các cơ sở dữ
liệu vật lý riêng biệt được tích hợp logic với nhau làm cho nhiều người sử dụng trên
mạng có thể truy nhập được [6].
1. Cho phép quản lý dữ liệu với nhiều mức trong suốt
- Trong suốt mạng - phân tán: Hệ quản trị cơ sở dữ liệu phải được trong suốt
phân tán theo nghĩa làm cho người sử dụng không cần biết vị trí của dữ liệu và

khơng cần biết sự phức tạp truy cập qua mạng.
- Trong suốt bản sao
- Trong suốt phân đoạn
2. Tăng độ tin cậy và khả năng sẵn sàng
Độ tin cậy là khả năng hệ thống đang làm việc (không bị ngừng) tại một thời
điểm nào đó, tính sẵn sàng là khả năng hệ thống tiếp tục làm việc trong một khoảng
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên




-4-

thời gian nào đó. Khi dữ liệu và cơ sở dữ liệu phân tán trên một vài trạm, một trạm
có thể có sự cố trong khi các trạm khác vẫn có thể hoạt động hoặc sử dụng các
thành phần khác của cơ sở dữ liệu. Chỉ trên trạm bị sự cố, dữ liệu và ứng dụng
không thể truy cập được. Để nâng cao độ tin cậy và tính sẵn sàng, có thể áp dụng
cơ chế tạo bản sao trên nhiều trạm.
3. Cải thiện hiệu năng
Một hệ quản trị cơ sở dữ liệu phân tán, phân đoạn cơ sở dữ liệu có thể làm
cho dữ liệu sẽ được lưu giữ tại gần nơi sử dụng nhất. Dữ liệu được lưu giữ cục bộ
làm giảm cạnh tranh CPU, giảm các phục vụ I/O và giảm tương tranh truy nhập
trên mạng. Dữ liệu được phân tán tại các trạm nên dung lượng dữ liệu cục bộ sẽ
nhỏ hơn, các xử lý giao tác và truy vấn cục bộ sẽ được thực hiện tốt hơn. Hơn nữa
trên mỗi trạm có ít các giao tác hơn số các giao tác trên cơ sở dữ liệu tập trung vì
vậy cũng tăng hiệu suất hệ thống.
4. Dễ dàng mở rộng
Việc thêm cơ sở dữ liệu mới, tăng kích cỡ cơ sở dữ liệu hoặc thêm bộ xử lý
trong mơi trường phân tán là dễ hơn vì cũng chỉ như là thêm các cơ sở dữ liệu thành
phần.

1.1.3 Những nhược điểm của cơ sở dữ liệu phân tán
- Độ phức tạp thiết kế và cài đặt hệ thống tăng: Hệ quản trị cơ sở dữ liệu
phân tán phải bổ sung thêm các chức năng như:
+ Theo dõi dấu vết dữ liệu
+ Xử lý các truy vấn phân tán
+ Quản lý giao dịch phân tán
+ Phục hồi cơ sở dữ liệu phân tán
+ Quản lý các bản sao
+ Quản lý thư mục - catalog phân tán
- Hệ thống phần cứng cũng phức tạp hơn vì cần có nhiều trạm và các trạm
phải được kết nối trên mạng.
- Các phần mềm hệ thống đảm bảo quản trị, duy trì kết nối, trao đổi dữ liệu
trên mạng.
- Bảo mật khó khăn.
Ở mức phần cứng vật lý, những nhân tố chính sau là để phân biệt một hệ cơ
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên




-5-

sở dữ liệu phân tán với hệ cơ sở dữ liệu tập trung [6]:
- Có nhiều máy tính được gọi là các trạm hay các nút.
- Các trạm này phải được kết nối bởi một kiểu mạng truyền thông để truyền
dữ liệu và những câu lệnh giữa các trạm với nhau, như là ở hình 1.1

Hình 1.1 Kiến trúc cơ sở dữ liệu phân tán
Trong mơ hình dữ liệu tập trung, tài nguyên tập trung tại một máy tính.
Trong hệ thống cơ sở dữ liệu phân tán, cơ sở dữ liệu được chứa trong nhiều máy

tính, các máy tính này được nối với nhau qua các hệ thống truyền thông, chúng
không chia sẻ bộ nhớ chung cũng như không dùng chung đồng hồ. Các bộ xử lý
trong hệ thống phân tán có kích cỡ và chức năng khác nhau (chẳng hạn có thể bao
gồm các bộ vi xử lý, trạm làm việc, máy tính mini, hay các máy lớn vạn năng).
Trong hệ thống cơ sở dữ liệu phân tán gồm nhiều trạm thì mỗi trạm có thể truy
nhập dữ liệu ở các trạm khác.
1.2. Các đặc trƣng trong suốt của cơ sở dữ liệu phân tán
1.2.1 Trong suốt phân tán
- Cho phép xử lý dữ liệu trên hệ cơ sở dữ liệu phân tán giống như đối với cơ
sở dữ liệu tập trung.
- Người sử dụng không cần biết: Dữ liệu đã được phân đoạn như thế nào,
các bản sao dữ liệu để ở đâu, vị trí vật lý lưu trữ dữ liệu ở đâu.
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên




-6-

- Trong suốt phân tán thể hiện:
+ Trong suốt địa điểm: User không cần biết lưu trữ vật lý của dữ liệu ở đâu,
trong truy vấn chỉ cần chỉ ra tên đoạn mà khơng cần chỉ ra vị trí.
+ Trong suốt tên: Khi một đối tượng đã được đặt tên thì có thể truy nhập
chính xác khơng cần đặc tả thêm.
+ Trong suốt bản sao: Sự nhân bản là quá trình sao chép và duy trì dữ liệu
trong hệ cơ sở dữ liệu phân tán. Cùng một dữ liệu (được lưu trữ vật lý tại một vị trí)
có thể sử dụng được trên nhiều vị trí khác nhau. Các bản sao có thể được lưu trữ
trên nhiều trạm làm tăng hiệu suất, độ tin cậy và tính sẵn sàng của hệ thống. Các
ứng dụng có thể truy nhập dữ liệu tại các trạm mà không cần phải truy cập từ xa
giảm truyền tải trên mạng lớn. Hệ thống cho phép tiếp tục thực hiện nếu như các

trạm từ xa có sự cố. Trong suốt bản sao đảm bảo user không biết đó là các bản sao
vì dữ liệu ln được cập nhật và đồng bộ với dữ liệu gốc.
+ Trong suốt phân đoạn: Một quan hệ trong cơ sở dữ liệu phân tán có thể
phân đoạn ngang hoặc phân đoạn dọc nghĩa là được tách thành các bộ dữ liệu hoặc
các quan hệ con và lưu trữ trên nhiều trạm khác nhau. Trong suốt phân đoạn cho
phép người sử dụng khơng cần biết có sự phân đoạn, các truy vấn dữ liệu vẫn được
viết như cơ sở dữ liệu tập trung.
1.2.2 Trong suốt giao dịch
Cơ sở dữ liệu phân tán cho phép một giao dịch có thể cập nhật, sửa đổi dữ
liệu trên các trạm khác nhau. Để đảm bảo dữ liệu nhất quán trên toàn hệ thống, các
trạm trong giao dịch chỉ ủy thác khi tất cả các trạm đã ủy thác thành công hoặc roll
back khi một trạm bị thất bại.
1.2.3 Trong suốt thất bại
Đảm bảo tại một trạm của hệ thống bị hỏng thì hệ thống vẫn làm việc bình
thường (do cơ chế tạo bản sao hoặc làm việc trên các trạm không bị sự cố). Nếu
mạng hoặc hệ thống có sự cố trong khi ủy thác của giao dịch cơ sở dữ liệu phân tán
thì giao dịch đó được giải quyết tự động và trong suốt theo nghĩa khi mạng hoặc hệ
thống khơi phục thì tất các các trạm này hoặc là ủy thác hoặc là roll back lại giao
tác đó.
1.2.4 Trong suốt thao tác
Cho phép các câu lệnh thao các dữ liệu đơn giản để truy nhập được các cơ sở
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên




-7-

dữ liệu tại trạm cục bộ hoặc trạm từ xa. Các thao tác xử lý dữ liệu từ xa không phức
tạp và vẫn đảm bảo vẫn giống như khi thao tác dữ liệu trên hệ cơ sở dữ liệu không

phân tán.
1.2.5 Trong suốt về tính khơng thuần nhất
Cho phép hỗn hợp nhiều hệ quản trị cơ sở dữ liệu khác nhau với các khả
năng trao đổi dữ liệu, xử lý cập nhật dữ liệu, xử lý giao tác phân tán trên toàn hệ
thống.
1.3 Kiến trúc tham chiếu của cơ sở dữ liệu phân tán
Kiến trúc tham chiếu không được cài đặt rõ ràng trên tất cả cơ sở dữ liệu
phân tán, tuy nhiên các mức của nó được khái quát chính xác, thích hợp để mơ tả tổ
chức chung cho mọi hệ cơ sở dữ liệu phân tán [8].
- Lược đồ tổng thể: Là mô tả tổng thể và thống nhất chung nhất của tất cả dữ
liệu của cơ sở dữ liệu phân tán độc lập với môi trường phân tán.
- Phân đoạn: Mối quan hệ tổng thể có thể được chia thành vài phần không
giao nhau được gọi là các đoạn. Lược đồ phân đoạn định nghĩa ánh xạ giữa các
quan hệ tổng thể và các phân đoạn. Ánh xạ này là một nhiều: Một số đoạn tương
ứng với một quan hệ tổng thể, nhưng chỉ một quan hệ tổng thể tương ứng với
một đoạn. Ký hiệu Ri là đoạn thứ i của quan hệ tổng thể R.
- Lược đồ định vị: Định nghĩa ánh xạ từ các phân đoạn vào những trạm chứa
những phân đoạn đó. Tất cả các đoạn tương ứng với cùng quan hệ tổng thể R và
được đặt tại cùng trạm j tạo thành hình ảnh vật lý của quan hệ tổng thể R tại trạm j.
- Lược đồ ánh xạ địa phương: Ánh xạ các hình ảnh vật lý tới các đối tượng
được thao tác bởi các hệ quản trị cơ sở dữ liệu địa phương. Trong hệ khơng thuần
nhất ta có các kiểu ánh xạ địa phương khác nhau tại các trạm khác nhau.

Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên




-8-


định vị

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

1.4 Các kỹ thuật xây dựng cơ sở dữ liệu phân tán
- Kỹ thuật phân tách dữ liệu từ một cơ sở dữ liệu để lưu trữ trên các
trạm khác nhau được gọi là phân đoạn.
- Sử dụng bản sao cho phép cùng một dữ liệu có thể được lưu trữ trên
nhiều hơn một trạm.
- Quá trình định vị các phân đoạn dữ liệu hoặc định vị các bản sao phân
đoạn lưu trữ dữ liệu trên các trạm khác nhau.
1.4.1 Phân đoạn
Sự phân đoạn là chia dữ liệu trong các bảng dữ liệu thành các bộ hoặc các
bảng dữ liệu con. Có ba kiểu phân đoạn một quan hệ tổng thể: Phân đoạn ngang,
phân đoạn dọc và phân đoạn hỗn hợp [8].
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên




-9-

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: Ln 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 , 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
i

quan hệ R = R1  R2 ... Rn.
Ví dụ 1.1: Xét quan hệ tổng thể
NHACUNGCAP(SHNCC, TEN,THPHO)
Trong đó có các thuộc tính:
SHNCC: Số hiệu nhà cung cấp
TEN: Tên nhà cung cấp
THPHO: Thành phố
Ta tách quan hệ NHACUNGCAP thành hai quan hệ NCC 1 và NCC 2
thuộc hai chi nhánh „HN‟ và „HP‟. Ta có phân đoạn ngang:
NCC1=THPHO=”HN”NHACUNGCAP
NCC2=THPHO=”HP”NHACUNGCAP
Thoả mãn:
- Điều kiện xây dựng lại: NHACUNGCAP = NCC1  NCC2
- Điều kiện rời nhau thoả mãn vì: NCC1  NCC2 = 
Tổng quát:
- Điều kiện không mất thông tin nếu tập các tân từ của tất cả các đoạn phải
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên




-10-

đầ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 khố
ngồ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.
Ví dụ 1.2: Xét quan hệ tổng thể
CUNGCAP(SHNCC, SHSP, SHPHONG, SOLUONG)
Trong đó có các thuộc tính:
SHNCC: Số hiệu nhà cung cấp
SHSP: Số hiệu sản phẩm
SHPHONG: Số hiệu phòng
SOLUONG: Số lượng
Phân đoạn ngang dẫn tiếp của quan hệ CUNGCAP được thực hiện như sau:
CUNGCAP1 = CUNGCAP ⋉SHNCC=SHNCCNCC1
CUNGCAP2 = CUNGCAP ⋉SHNCC=SHNCCNCC2
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 tiến hiệu năng của phép kết nối các quan hệ
NHACUNGCAP và CUNGCAP vì có thể thực 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 đ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 tồ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
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên





-11-

=> 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
=> p1  NCC1 p.SHNCC=p1.SHNCC
=> p2  NCC2 p.SHNCC=p2.SHNCC
Mâu thuẫn vì SHNCC là khố của NHACUNGCAP
1.4.1.3 Phân đoạn dọc
Phân đoạn dọc là sự chia một quan hệ thành tập con các bộ, mỗi tập
được xác định bởi một phép chiếu được áp dụng cho quan hệ: Ri = П ATTRi R,
trong đó ATTRi là tập con các thuộc tính của R.
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 khố 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 hồn tồn được.
Ví dụ 1.3: Xét quan hệ tổng thể
NHANVIEN(SHNV, TEN, LUONG, THUE, SHQL, SHPHONG)
Trong đó có các thuộc tính:
SHNV: Số hiệu nhân viên
TEN: Tên nhân viên
LUONG: Mức lương
THUE : Thuế

SHQL: Số hiệu quản lý
SHPHONG: Số hiệu phịng
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên




-12-

Ta tách quan hệ NHANVIEN thành hai quan hệ NV1 và NV2
NV1 = П SHNV, TEN, SHQL, SHPHONG NHANVIEN
NV2 = ПSHNV, TEN, LUONG, THUE NHANVIEN
Thuộc tính TEN lặp lại ở cả hai đoạn, khi xây dựng lại quan hệ NHANVIEN
thông qua phép chiếu, thuộc tính này sẽ bị khử.
NHANVIEN = NV1⋈ SHNV=SHNV П SHNV, LUONG, THUE NV2
1.4.1.4 Phân đoạn hỗn hợp
Là sự kết hợp cả phân đoạn dọc và phân đoạn ngang.
Ví dụ 1.4: Xét quan hệ tổng thể
NHANVIEN(SHNV, TEN,LUONG, THUE, SHQL, SHPHONG)
Tách quan hệ NHANVIEN thành các quan hệ NV1, NV2, NV3, NV4
NV1 =SHPHONG10 SHNV, TEN, SHQL, SHPHONG NHANVIEN
NV2 =10NV3 =SHPHONG >20 SHNV, TEN, SHQL, SHPHONG NHANVIEN
NV4=SHNV, TEN, LUONG, THUE NHANVIEN

Hình 1.3: Cây phân tách của quan hệ
Xây dựng lại quan hệ NHANVIEN ta thực hiện như sau:
NHANVIEN =(NV1, NV2, NV3)⋈

 SHNV, LUONG, THUE NV4


SHNV=SHNV

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
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên




-13-

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 tồn bộ vì dữ liệu sẽ được lấy từ các trạm cục bộ.
Nhược điểm: Các thao tác cập nhập dữ liệu rất chậm vì phải copy, đồng
bộ dữ liệu cho mọi trạm. Kỹ thuật điểu khiển tương tranh và phục hồi sẽ phức tạp
hơn.
2. Khơng có nhân bản dữ liệu: Mỗi phân đoạn chỉ được lưu trữ trên một
trạm, phương án này cịn được gọi là định vị khơng dư thừa dữ liệu. Trong
trường hợp này các phân đoạn phải tách rời nhau để tránh lặp bản ghi giống nhau

cho các phân đoạn ngang và phân đoạn hỗn hợp.
3. Nhân bản dữ liệu từng phần: Một vài phân đoạn có thể được tạo bản sao
và có thể một số phân đoạn sẽ khơng có bản sao. Việc tạo bản sao này rất có tác
dụng cho các nhân viên làm việc di động, tại các nơi xa trung tâm dữ liệu, có thể
tạo ra bản sao dữ liệu trên laptop của mình và theo chu kỳ đồng bộ dữ liệu với cơ sở
dữ liệu server.
1.4.3 Định vị dữ liệu
Là quá trình gán từng phân đoạn, từng bản sao của phân đoạn cho một trạm
cụ thể trong hệ thống phân tán. Việc chọn trạm nào và số bản sao phụ thuộc vào
yêu cầu hiệu năng và mục tiêu sẵn sàng của hệ thống với các loại giao tác trên các
trạm. Đối với hệ yêu cầu tính sẵn sàng cao, mọi giao dịch thao tác lấy dữ liệu, giao
dịch cập nhật chỉ làm tại một trạm thì nên tổ chức tạo bản sao đầy đủ. Nếu các giao
dịch thường cập nhật một phần dữ liệu tại một trạm thì các phân đoạn cho phần dữ
liệu đó nên được định vị trên trạm đó.

Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên




-14-

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 hồn tồ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.

Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên




-15-

Chƣơng 2. CÁC NGUYÊN LÝ CHUNG CỦA TỐI ƢU HÓA CÂU TRUY
VẤN PHÂN TÁN
Các ngôn ngữ hỏi bậc cao như SQUARE, SEQUEL, SQL,... cho phép viết
nhiều câu truy vấn với sự quan tâm nhiều đến thời gian thực hiện, và thời gian thực
hiện đó có thể giảm đáng kể nếu bộ xử lý ngôn ngữ hỏi viết lại (bằng cách khác)
câu truy vấn trước khi thực hiện. Sự cải tiến như vậy thường gọi là "Sự tối ưu hoá",
mặc dù câu truy vấn được viết lại không cần tối ưu trên tất cả các cách cài đặt câu
truy vấn có thể. Chương này sẽ trình bày một số phương pháp tối ưu hóa các biểu
thức quan hệ, đặc biệt là xử lý biểu thức liên quan đến phép kết nối và tích
Decartes, xem xét các kỹ thuật điển hình INGRES và System R.
2.1. Các chiến lược tối ưu hóa cơ bản
Trong ngôn ngữ hỏi dựa trên đại số quan hệ, các truy vấn liên quan đến tích
Decartes và phép kết nối là rất tốn thời gian.
Ví dụ 2.1: Xét biểu thức AB × CD (AB là một quan hệ với các thuộc tính A, B); ta
đồng nhất hai quan hệ này với hai tệp dữ liệu. Để đưa ra giá trị của tích Decartes
này phải duyệt hết bản ghi của một quan hệ, chẳng hạn AB, ở vịng ngồ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 tốn.
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên




-16-

3. Tổ hợp dãy các phép tố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 tốn một ngơi với kết quả của phép tốn hai ngơi bằng cách áp dụng
các phép tốn một ngơi với mỗi bộ kết quả của phép tố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 tố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 qt 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 tố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 tốn hai ngơi, ta
nên tính tốn chi phí thực hiện các phép tố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à tố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í q
nhiều để thực hiện q 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
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên





-17-

phí cho xử lý câu truy vấn có rất nhiều yếu tố, tuy nhiên ta chỉ quan tâm đến một số
thông báo cơ bản nhất sau đây: số lần truy xuất khối nhớ giữa bộ nhớ trong và bộ
nhớ ngoài; số bản ghi cần phải xử lý ở thiết bị trung tâm; phần bộ nhớ để lưu trữ
các kết quả trung gian trong quá trình thực hiện câu truy vấn.
2.2.2 Biểu thức tương đương
Hai biểu thức E1 và E2 gọi là tương đương, ký hiệu E1  E2, nếu quan hệ kết
quả của hai biểu thức là như nhau khi thay các lược đồ bởi các thể hiện cụ thể. Với
định nghĩa tương đương này ta có một số phép biến đổi đại số có lợi [5].
2.2.3 Các qui tắc liên quan đến phép kết nối và tích Decartes
 Qui tắc giao hố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
và E2 thì E1P E2 E2P E1
E1 E2 E2 E1
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ộc
tính A1, A2, ...,An; E2 có các thuộc tính B1, ...,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à 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ó hồ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 hố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)
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên




-18-

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 B 1, B2, ..., B m 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 hố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, p 1 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ộc
tính của cả E1 và E2 thì:
p(E1 E2)p2(p1(E1)E2)
 Qui tắc giao hốn của phép chọn và phép hợp
Nếu biểu thức E = E1 E 2, giả sử các thuộc tính của E1 và E2 có cùng tên
như của E hoặc ít nhất mỗi thuộc tính của E là phù hợp với một thuộc tính duy
nhất của E1 và một thuộc tính duy nhất của E2 thì:
p(E1 E2) p(E1) p(E2)
Nếu tên các thuộc tính của E1 và / hoặc E2 khác tên thuộc tính của E thì
trong p ở vế phải của cơng thức trên cần sửa đổi để sử dụng tên cho phù hợp.
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên




-19-

 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ầ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(E 2) là không cần thiết, có thể thay bởi E 2. Tuy nhiên,
trong nhiều trường hợp, việc thực hiện phép chọn p(E 2) trước sẽ có hiệu quả
hơn là tính tố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 qt 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 hố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ới
thuộ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
dù các ngun 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 tố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
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên




-20-

Thuật tố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 đó
Phương pháp:
1.Sử dụng qui

tắc  để tách mỗi phép chọn

p1p2....pn(E)

thành dãy

p1(....(pn(E))).
2. Sử dụng quy tắc ,  để đẩy sâu phép chọn xuống đến mức có thể trong biểu
diễn.
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 qui tắ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.
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
tố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 tốn
một ngơi trừ trường hợp phép tố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
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên




-21-

SOTHE: Số thẻ thư viện của độc giả
TEN: Tên độc giả
DIACHI: Điạ chỉ độc giả
THPHO: Thành phố nơi độc giả ở
NGAY: Ngày mượn sách
Để lưu trữ thông tin về sách, giả sử có một khung nhìn XMUON bao
gồm một số thông tin bổ sung về sách cho mượn. XMUON là kết nối tự nhiên của
quan hệ SACH, DOCGIA, MUON có thể xác định như sau:
S(P(MUON DOCGIA SACH)
Trong đó:
P = DOCGIA.SOTHE = MUON.SOTHE and SACH.SHTV = MUON.SHTV
S = TENSACH, TACGIA, TEN_NXB, SHTV, TEN, DIACHI, THPHO,
SOTHE, NGAY
Cần đưa ra danh sách những cuốn sách đã cho mượn trước ngày 1/1/2004
TENSACHNGAY<1/1/2004(XMUON)
Sau khi thay thế cho XMUON, biểu thức trên biểu diễn dạng cây như sau:


Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên




×