6. Cỏc kết quả dự kiến
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ệ
Số húa bởi Trung tõm Học liệu – Đại học Thỏi Nguyờn http://www.lrc-tnụedụvn
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 p1p2....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ếụ 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 DOCGIĂ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ả
Số húa bởi Trung tõm Học liệu – Đại học Thỏi Nguyờn http://www.lrc-tnụedụvn
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 = DOCGIẠ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
TENSACHNGAY<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à DONGIẠSOTHE=MUON.SOTHE
Số húa bởi Trung tõm Học liệu – Đại học Thỏi Nguyờn http://www.lrc-tnụedụvn
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 DONGIẠ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ủaNGAY<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.
Số húa bởi Trung tõm Học liệu – Đại học Thỏi Nguyờn http://www.lrc-tnụedụvn
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
DOCGIẠSOTHE=MUON.SOTHE
MUON.SHTV, DOCGIẠ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àỵ Cõy biểu diễn cuối cựng ứng với hỡnh 2.3.
Số húa bởi Trung tõm Học liệu – Đại học Thỏi Nguyờn http://www.lrc-tnụedụvn
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.