Ký hiệu 𝜇𝐹𝐶̃(𝑜), 𝜇𝐹𝐶̃ 1(𝑜), 𝜇𝐹𝐶̃ 2(𝑜), 𝜇𝐹𝐶̃ 3(𝑜) là các tập đối tượng mờ; e, f, g, h là các biểu thức đại số, phép toán 𝑜𝑝 ∈ {𝑢𝑛𝑖𝑜𝑛, 𝑑𝑖𝑓𝑓}. Những luật này chỉ áp dụng trên các phép toán đối tượng mờ, phép toán bộ, phép toán tập hợp và các phép toán đa tập (bag). Về ký hiệu, chúng ta chỉ sử dụng các ký hiệu phép toán một cách hình thức [100], các phép toán này có thể được cài đặt với một số thay đổi trong các mô hình khác nhau [CT4].
𝑅1: Hoán vị phép chọn:
𝜎𝜆𝑡.𝑔(𝜎𝜆𝑠.𝑓(𝜇𝐹𝐶̃(𝑜))) = 𝜎𝜆𝑠.𝑓(𝜎𝜆𝑠.𝑔(𝜇𝐹𝐶̃(𝑜)))
𝑅2: Tổ hợp các phép chọn
𝜎𝜆𝑠.(𝑓∧𝑔 ∧…ℎ)(𝜇𝐹𝐶̃(𝑜)) = 𝜎𝜆𝑠.𝑓(𝜎𝜆𝑡.𝑔(… (𝜎𝜆𝑢.ℎ(𝜇𝐹𝐶̃(𝑜))) … ))
𝑅3: Thu gọn dãy các phép chiếu
Π(𝑎1… 𝑎𝑛)(Π(𝑏1… 𝑏𝑛)(𝜇𝐹𝐶̃(𝑜))) = Π(𝑎1… 𝑎𝑛)(𝜇𝐹𝐶̃(𝑜))| {𝑎1, … , 𝑎𝑛} ⊂ {𝑏1, … , 𝑏𝑛}
𝑅4: Hoán vị phép chọn và phép chiếu
𝜎𝜆𝑠.𝑒(Π(𝑎1,…,𝑎𝑛)(𝜇𝐹𝐶̃(𝑜))) = Π(𝑎1,…,𝑎𝑛)(𝜎𝜆𝑠.𝑒(𝜇𝐹𝐶̃(𝑜)))
𝑅5: Hoán vị một phép chiếu với phép hợp, hiệu trên tập/đa tập
Π(𝑎1,…,𝑎𝑛)(𝜇𝐹𝐶̃ 1(𝑜)𝑜𝑝 𝜇𝐹𝐶2̃(𝑜)) = Π(𝑎1,…,𝑎𝑛)𝜇𝐹𝐶1̃(𝑜) 𝑜𝑝 Π(𝑎1,…,𝑎𝑛)𝜇𝐹𝐶2̃(𝑜)
115
𝜎𝜆𝑠.𝑓(𝜇𝐹𝐶̃ 1(𝑜)𝑜𝑝 𝜇𝐹𝐶2̃(𝑜))
= 𝜎𝜆𝑠.𝑓(𝜇𝐹𝐶̃ 1(𝑜) ) 𝑜𝑝 𝜇𝐹𝐶̃ 2(𝑜), 𝑖𝑓 𝑓 𝑖𝑠 𝑟𝑒𝑙𝑎𝑡𝑒𝑑 𝑡𝑜 𝜇𝐹𝐶̃ 1(𝑜)
nếu f chỉ liên quan với 𝜇𝐹𝐶̃ 1(𝑜). Tổng quát:
𝜎𝜆𝑠.(𝑓∧𝑔∧ℎ(𝜇𝐹𝐶̃ 1(𝑜)𝑜𝑝 𝜇𝐹𝐶2̃(𝑜))
= 𝜎𝜆𝑢.ℎ(𝜎𝜆𝑠.𝑓(𝜇𝐹𝐶̃ 1(𝑜)) 𝑜𝑝 𝜎𝜆𝑡.𝑔(𝜇𝐹𝐶̃ 2(𝑜))) , 𝑖𝑓 𝑓 𝑖𝑠 𝑟𝑒𝑙𝑎𝑡𝑒𝑑 𝑡𝑜𝜇𝐹𝐶̃ 1(𝑜)
nếu f liên quan 𝜇𝐹𝐶̃ 1(𝑜), g liên quan 𝜇𝐹𝐶̃ 2(𝑜) và h liên quan đến cả 𝜇𝐹𝐶̃ 1(𝑜) và
𝜇𝐹𝐶̃ 2(𝑜)
𝑅7: Hoán vị giữa phép Apply và phép chọn: nếu điều kiện chọn chỉ chứa các thuộc tính do phép toán apply trả về thì:
𝑎𝑝𝑝𝑙𝑦𝑠𝜆𝜇𝑠.𝑒(𝜎𝜆𝑡.𝑓(𝜇𝐹𝐶̃(𝑜))) = 𝜎𝜆𝑡.𝑓(𝑎𝑝𝑝𝑙𝑦𝑠𝜆𝜇𝑠.𝑒(𝜇𝐹𝐶̃(𝑜)))
𝑅8: Hoán vị giữa phép làm phẳng (flat) và phép apply trên tập và đa tập: giả sử 𝜇𝐹𝐶̃(𝑜) là thể hiện của 1 lớp và X là một tập thuộc tính phức của lớp 𝐹𝐶̃ 𝑓𝑙𝑎𝑡𝑠 (𝑎𝑝𝑝𝑙𝑦𝑠
𝜆𝑠.(𝑎𝑝𝑝𝑙𝑦𝑠𝜆𝑡.𝑒(Π(𝑋)(Π𝑉(𝜇𝐹𝐶̃(𝑜)))))
(𝜇𝐹𝐶̃(𝑜)))
= 𝑎𝑝𝑝𝑙𝑦𝑠𝜆𝑡.𝑒(𝑓𝑙𝑎𝑡𝑠 (𝑎𝑝𝑝𝑙𝑦𝑠𝜆𝑠.Π(𝑋)(Π𝑉(𝜇𝐹𝐶̃(𝑜))) (𝜇𝐹𝐶̃(𝑜))))
Biểu thức ở vế trái, có biểu thức e tác động trước tập các tập (thu được bởi
Π(𝑋)) sau đó làm phẳng thành một tập; biểu thức ở vế phải có phép toán làm phẳng được ta cs động trước (kết quả thu được là một tập), sau đó thực hiện phép toán apply.
𝑅9: Tính kết hợp của phép hợp
(𝜇𝐹𝐶̃ 1(𝑜) 𝑢𝑛𝑖𝑜𝑛 𝜇𝐹𝐶̃ 2(𝑜)) 𝑢𝑛𝑖𝑜𝑛 𝜇𝐹𝐶̃ 3(𝑜)𝜇𝐹𝐶̃ 1(𝑜) 𝑢𝑛𝑖𝑜𝑛 ( 𝜇𝐹𝐶̃ 2(𝑜) 𝑢𝑛𝑖𝑜𝑛 𝜇𝐹𝐶̃ 3(𝑜))
𝑅10: Các luật kế thừa đối với phép chọn và phép apply: nếu 𝐹𝐶̃2 là một lớp con của 𝐹𝐶̃1 , thì thể hiện của 𝜇𝐹𝐶̃ 2(𝑜) là một tập con của thể 𝜇𝐹𝐶̃ 1(𝑜):
𝜎𝜆𝑠.𝑓(𝜇𝐹𝐶̃ 1(𝑜)) 𝑢𝑛𝑖𝑜𝑛 𝜎𝜆𝑠.𝑓(𝜇𝐹𝐶̃ 2(𝑜))
= 𝜎𝜆𝑠.𝑓(𝜇𝐹𝐶̃ 1(𝑜))𝑎𝑝𝑝𝑙𝑦𝑠𝜆𝑠.𝑒(𝜇𝐹𝐶̃ 1(𝑜))𝑢𝑛𝑖𝑜𝑛 𝑎𝑝𝑝𝑙𝑦𝑠𝜆𝑠.𝑒(𝜇𝐹𝐶̃ 2(𝑜)) = 𝑎𝑝𝑝𝑙𝑦𝑠𝜆𝑠.𝑒(𝜇𝐹𝐶̃ 1(𝑜))
116
3.3.1.1 Tối ưu hóa kế hoạch thực thi truy vấn
Với câu truy vấn, rõ ràng có nhiều cây xử lý tương đương, tức là các phương án thay thế để thực hiện truy vấn. Những lựa chọn thay thế này là kết quả của một số lựa chọn mở, một số trong đó được liệt kê dưới đây.
Join Ordering. Một dãy các phép nối có thể sắp xếp lại, kết quả này trong nhiều lựa chọn thay thế. Để làm giảm số lượng thứ tự trong của phép nối ta xem xét, người ta có thể loại trừ các kết quả tạo ra các tích đề các, hoặc hạn chế các thứ tự nối với các kết quả tạo cây tuyến tính, thay vì xem xét tất cả các loại có thể, cây tổng quát (đây là vấn đề mang tính thời sự đang được nghiên cứu).
Pushing Selections. Các lựa chọn có thể được thực hiện ở những thời điểm khác nhau. Ví dụ, chúng ta có thể thực hiện một lựa chọn nhất định trước hoặc sau khi áp dụng một hàm giá trị đối tượng (di chuyển lựa chọn vào tham gia, hoặc ngược lại). Ngoài ra, các lựa chọn với vị từ lựa chọn kết hợp có liên quan có thể được chia thành hai lựa chọn (hoặc ngược lại), và thứ tự của các lựa chọn, cũng như thứ tự của các thuật ngữ trong vị từ lựa chọn, có thể thay đổi.
Pushing Projections. Các phép chiếu, cũng giống như phép chọn, có thể được thực hiện ở những thời điểm khác nhau. Ngoài ra, có thể thay đổi thứ tự áp dụng cho phép chiếu và phép chọn.
Method Selection. Đối với mỗi phép toán luận lý có thể có một số phương pháp, đó là thực hiện vật lý. Ví dụ, một phép toán nối có thể được thực hiện bởi: nested loops join, hash join, hoặc sort merge join. Ngoài ra, đối với liên kết tiềm ẩn được hỗ trợ bởi các trường liên kết, các phiên bản kết nối dựa trên con trỏ có thể được chọn. Hơn nữa, phép chọn có thể được thực hiện bằng cách sử dụng các chỉ mục, hoặc bằng cách thực hiện quét mối quan hệ, tiếp theo là kiểm tra vị từ.
Index Selection. Nếu lựa chọn được hỗ trợ bởi nhiều chỉ số, người ta có cơ hội sử dụng tất cả, một số, hoặc chỉ một trong các chỉ số khả dụng.