Định nghĩa cây toán tử

Một phần của tài liệu giải các bài toán trên cây toán tử đường ống bằng ma trận đặc trưng (Trang 34 - 38)

Cây toán tử dùng để mô tả hình ảnh của câu vấn tin đại số quan hệ. Một cây toán tử là một cây với mỗi nút lá biểu thị cho một quan hệ đƣợc lƣu trong cơ sở dữ liệu và các nút không phải là nút lá biểu thị cho quan hệ trung gian đƣợc sinh ra bởi các phép toán quan hệ. Chuỗi các phép toán đi theo hƣớng từ lá đến gốc biểu thị cho kết quả vấn tin.

Biến đổi câu vấn tin phép tính quan hệ bộ thành một cây toán tử có thể thu đƣợc từ các bƣớc sau:

-Trƣớc tiên chúng ta tạo ra một nút lá cho mỗi biến bộ khác nhau (tƣơng

ứng với một quan hệ), trong SQL các nút lá có sẵn trong mệnh đề FROM.

-Thứ hai, nút gốc đƣợc tạo ra nhƣ một phép chiếu chứa các thuộc tính kết

quả. Các thuộc tính này nằm trong mệnh đề SELECT của câu vấn tin SQL.

-Thứ ba, lƣợng tử hóa (mệnh đề WHERE của câu vấn tin SQL) đƣợc dịch

thành một chuỗi các phép toán quan hệ thích hợp (phép chọn, nối, hợp,…) đi từ nút lá đến gốc, chuỗi này có thể đƣợc cho trực tiếp qua thứ tự xuất hiện của các vị từ và các toán tử.

Ví dụ: Giả sử cho các quan hệ nhƣ sau:

NhanVien(MaNV, TenNV, NgaySinh, DiaChi, GioiTinh) DuAn(MaDuAn, TenDuAn, DiaDiem )

NhanVien_DuAn(MaNV, MaDuAn, SoGio_LV)

Câu vấn tin “ Đƣa ra danh sách tên nhân viên đã tham gia vào dự án Cầu Tân Thịnh với số giờ làm việc là 100 ” là

SELECT TenNV

FROM NhanVien, DuAn, NhanVien_DuAn

AND (NhanVien_DuAn.MaDuAn = DuAn.MaDuAn) AND (TenDuAn= „ Cầu Tân Thịnh‟)

AND (SoGio_LV = 100)

Ta xây dựng cây toán tử nhƣ hình 1.6 dƣới đây

Hình 1.6. Ví dụ về một cây toán tử

Ta có thể tạo ra nhiều cây tƣơng đƣơng bằng cách áp dụng các quy tắc biến đổi. Có sáu quy tắc tƣơng đƣơng hữu ích nhất và đƣợc xem là các phép toán đại số quan hệ cơ bản:

Xét r,sT là những quan hệ, E là mệnh đề logic, với quan hệ r đƣợc định nghĩa trên các thuộc tính {A1 , A2,…, An} và quan hệ s đƣợc định nghĩa trên các thuộc tính {B1 ,B2 ,…, Bn }X là tập thuộc tính.

- Tính giao hoán của phép toán hai ngôi

Tích Đềcác của hai quan hệ r và s có tính giao hoán: r s s r  

Nối của hai quan hệ có tính giao hoán: rs  s r

Quy tắc này áp dụng đƣợc cho phép hợp nhƣng không áp dụng cho phép tập hợp hay nối nửa.

-Tính kết hợp của các phép toán hai ngôi

Tích Đềcác và nối là phép toán có tính kết hợp

r x s T   r s T  

 

(r s) T  r  s  T

-Tính lũy đẳng của các phép toán đơn ngôi

Nhiều phép chiếu liên tiếp trên cùng một quan hệ có thể đƣợc nhóm lại, ngƣợc lại một phép chiếu trên nhiều thuộc tính có thể đƣợc tách ra thành nhiều phép chiếu liên tiếp nhau. Nếu r đƣợc định nghĩa trên tập thuộc tính

 

 

A v Aà A, A”A‟ th : r. A‟ .A” r.A”ì

Nhiều phép chọn liên tiếp theo thứ tự p1, p2,…, pk trên cùng một quan hệ r, trong đó pi là một vị từ đƣợc áp dụng cho thuộc tính Ai có thể đƣợc nhóm lại nhƣ sau: r.p A r.p A1 1 2 2r.p A p A1 1 2 2

Ngƣợc lại, một phép chọn qua một hội các vị từ có thể đƣợc tách ra thành nhiều phép chọn liên tiếp nhau.

-Giao hoán chọn với chiếu

Phép chọn và phép chiếu trên cùng một quan hệ có thể đƣợc giao hoán nhƣ sau: Chiếu xong chọn bằng chọn xong chiếu (r.X)(E) = (r(E).X) với E là mệnh đề logic có các thuộc tính ra khỏi tập thuộc tính X thì phép chọn đầu ở vế trái của hệ thức không có tác dụng.

- Giao hoán phép chọn với phép toán hai ngôi

Phép chọn và Tích Đềcác có thể giao hoán bằng các quy tắc sau:

r s E  r E s E    nếu E thỏa trong rs

Chọn và nối cũng có thể giao hoán

     

(rs) E r E s E Chọn và hợp có thể gia hoán nếu rT

r  T E r E    T E 

Chọn và hiệu cũng có phép toán tƣơng tự - Giao hoán phép chiếu với phép toán hai ngôi

r T E  r E – T E   

Phép chiếu và Tích Đềcác có thể đƣợc giao hoán nếu C A‟ B‟  trong

đó A‟ A, B‟ B  và A,B là các tập thuộc tính tƣơng ứng với các quan hệ r, s

ta có: r s .C  r.C s.C

Chiếu và nối có thể giao hoán(rs).Cr.Cs.C Chiếu và hợp có thể giao hoán (r + s).C = r.C + s.C

Chiếu và hiệu cũng có thể giao hoán tƣơng tự (r - s). C = r.C – s.C

Áp dụng các quy tắc trên đây cho phép ta tạo ra nhiều cây tƣơng đƣơng. Trong giai đoạn tối ƣu hóa câu vấn tin, ngƣời ta thử so sánh tất cả các cây dựa trên chi phí dự đoán. Tuy nhiên, số lƣợng cây quá lớn làm cho cách tiếp cận này không thực tế. Các quy tắc trên đây có thể đƣợc sử dụng để cấu trúc lại cây một cách hệ thống nhằm loại bỏ các cây xấu. Chúng ta có thể sử dụng các quy tắc này bằng bốn cách khác nhau.

Trƣớc tiên chúng cho phép tách các phép toán đơn ngôi để làm đơn giản hóa biểu thức vấn tin.

Thứ hai, các phép toán đơn ngôi trên cùng một quan hệ có thể đƣợc nhóm lại để chỉ cần thực hiện truy xuất đến quan hệ một lần.

Thứ ba, các phép toán đơn ngôi có thể giao hoán với các phép toán hai ngôi để một số phép toán ( chẳng hạn phép chọn ) có thể đƣợc thực hiện trƣớc.

Thứ tƣ, các phép toán hai ngôi có thể đƣợc sắp xếp lại. Quy tắc cuối cùng đƣợc sử dụng rộng rãi trong kỹ thuật tối ƣu hóa vấn tin. Các quy tắc áp dụng các phép toán đơn ngôi (chọn, chiếu) càng sớm càng tốt nhằm làm giảm kích thƣớc của các quan hệ trung gian.

Một phần của tài liệu giải các bài toán trên cây toán tử đường ống bằng ma trận đặc trưng (Trang 34 - 38)