1. Định nghĩa các thuật ngữ: cơ sở dữ liệu, hệ quản trị cơ sở dữ liệu, hệ cơ sở dữ
8.5.1. Biểu thức quan hệ
Biểu thức quan hệ là một biểu thức mà các toán hạng là các quan hệ trong một CSDL và các phép toán là các phép toán trongđại sốquan hệ. Biểu thứcE1 và E2 tương đương với
nhau, ký hiệu là E1 ≅ E2 , nếu chúng biểu diễn cùng một ánh xạ, nghĩa là các quan hệ
giống nhau trong biểu thức, thì kết quả cũng giống nhau.
Khi thực hiện các phép toán trong một biểu thứcquan hệ, các phép toán một ngôi có thứ tự ưu tiên cao hơn so với phép toán hai ngôi. Có thể xem phép chiếu được ưu tiên hơn so với phép hợp, hoặc phép trừ. Tuỳ từnghệ cụ thể mà có thể có những quy định về thứ tự ưu tiên. Ví dụ trong một hệ có qui định phép giao có thứtự ưu tiên trước phép hợp hai quan hệ.
Mỗibiểu thứcquan hệ thôngthường là một câu hỏi của người sửdụng. Hay nói cách khác, người sử dụng thể hiện nội dung câu hỏi để truy nhập vào CSDL thông qua một biểu thức quan hệ nào đó. Khi một một câu hỏi đã được được đưa vào hệ thống, thì hệ thống cần thực hiện một số các chức năng tiếptheo: Kiểm trachức năngcủabiểuthức E. Nếu biểuthức E không có lỗi, thì thựchiện việc tối ưu hoá quá trình thực hiện E.
Tối ưu hoá là xác định trật tự thực hiện các phép toán trong E nhằm đáp ứng các nhu cầu: cho cùng kết quả cho việc thực hiện theo trật tự ban đầu của biểu thức E, giảm bớt được miền nhớ và thờigian thực hiện. Cuối cùng thực hiện biểu thức đãđược tối ưu hoá E.
Khi các quan hệ càng nhỏ thì thời gian chi phí cần thiết để thực hiện các thao tác trên quan hệ càng thấp. Quan hệ nhỏ hiểu theo nghĩa là lực lượng và bậc của quan hệ nhỏ. Đối với các phép toán quan hệ thì phép chọn sẽ làm giảm kích thước chiều dọc, phép chiếu làm giảm kích thước chiều ngang. Các phép toán này thường hay được sử dụng trong các biểu thức quan hệ. Phép chia cũng có tác dụng làm nhỏ quan hệ, nhưng tần số sử dụng không nhiều. Nhận thấy rằng muốn tối ưu hoá một biểu thức quan hệ, chuyển đổi thích hợp trật tự các phép toán quan hệ sao cho các phép chiều, chọn có thể thực hiện càng sớm càng tốt và thực hiện phép kết nối càng muộn càng tốt.
8.5.2.Biến đổi biểu thức quan hệ
Hai biểu thức đại số quan hệ được gọi là tương đương nếu trên một mô hình dữ liệu bất kì. Hai biểu thúc này tạo ra hai quan hệ có tập các bộ dữ liệu giống nhau.Giống nhau theo nghĩa thứ tự của các bộ không nhất thiết phải tương ứng nhau, có thể thứ tự khác nhau và thứ tự của các thuộc tính không nhất thiết phải như nhau. Nói một cách khái quát, hai quan hệ trùng nhau nếu hai bộ thuộc tính là như nhau và bộ dữ liệu của quan hệ này cũng là bộ dữ liệu của quan hệ kia và ngược lại.
8.5.3.Các quy tắc tương đương
Nói rằng hai biểu thức tương đương nếu thay thế một biểu thức của dạng thứ nhất bởi một biểu thức của dạng thứ hai, và ngược lại ta có thể thay thế biểu thức cuat dạng thứ hai bằng biểu thức của dạng thứ nhất thì ahi biểu thức cùng tạo ra kết quả giống nhau trên bất kì hệ CSDL. Các quy tắc sau được sử dụng để biến đổi các biểu thức tương đương vớinhau.
Ký hiệu:
F1, F2,... là các điều kiện. L1, L2, L3... là tập các thuộc tính.
E, E1, E2,... là các biểu thức đại số quan hệ. : phép chọn.
ZYFi : phép kết nối có điều kiện. ZY : phép kết nối tự nhiên. X : tích Đề các.
a) Các quy tắc cho phép kết nối và tích đề các
1.Quy tắc giao hoán kết nối và tích: Nếu E1 và E2 là các biểu thức quan hệ, F là một điều kiện trên các thuộc tính của E1 và E2 thì :
E1 E2= E2 E1
E1 E2= E2 E1
E1x E2= E2x E1
ZY ZY
Quy tắc giao hoán kết nối và tích
E1 E2 E2 E1
2.Quy tắc kết hợp phép kết nối và tích: Nếu E1, E2và E3 là các biểu thức quan hệ, F là một điều kiện trên các thuộc tính của E1, E2và E3thì :
(E1 F1E2) F2 E3= E1 F1 (E2 F2 E3) (E1 E2) E3 = E1 (E2 E3)
(E1 x E2)x E3 = E1x (E2xE3)
Định nghĩa quan hệ có 2 định nghĩa tương đương. Định nghĩa thứ nhất phát biểu là quan hệ là một tập con của tích Đề các của các thuộc tính, tức là quan hệ là tập các n_bộ. 2 quan hệ trùng nhau là 2 quan hệ có các bộ trùng nhau. Định nghĩa thứ hai nói rằng, quan hệ là một tập ánh xạ từ các thuộc tính vào tập các giá trị. Và 2 quan hệ trùng nhau nếu tập 2 ánh xạ như nhau. Các quy tắc liên quan đến phép kết nối và tích Đề các được sử dụng theo định nghĩa thứ hai, tập các ánh xạ. E1x E2 = E2x E1
sẽ đúng vì gọi R và S là các quan hệ có các thuộctính có chứa tương ứng trong các biểu
thức E1 , E2. Khi đó R.A sẽ được hiểu là thuộc tính của quan hệ R, và S.A cũng sẽ được hiểu là một thuộc tính của S. Gọi μ là một bộ trong E1 x E2 , khi đótồn tại một bộr của R và s là một bộ củaS sao cho μ[R.A] = r[A] và μ[S.A] = s[A]. Tương tựxét E2 x E1 sẽcó một bộ t sao cho t[R.A] = r[A]
và t[S.A] = s[A]. Như vậy μ ctrùng với t. Suy ra E1 x E2⊆ E2 x E1. Hiển nhiên E1 x E2 = E2 x E1
ZY ZY
Quy tắc kết hợp kết nối và tích
E1 E2 E2 E3
b) Các quy tắc cho phép chọn và phép chiếu.
1.Nhóm các phép chiếu thành một phép chiếu duy nhất: Nếu E là một biểu thức quan hệ và A1, A2,..., An là các thuộc tính có mặt trong B1, B2,.., Bk. Khi đó:
A1,A2,...,An( B1,B2,...,Bk(E)) = A1,A2,...,An(E)
Nghĩa là thực hiện các phép chiếu liên tiếp trên các thuộc tính của B1, B2,.., Bk
sau đó quan hệ kết quả lại được chiếu trên các thuộc tínhcủa A1, A2,..., An.
2. Nhóm các phép chọn thành một chuỗi các phép chọn: Nếu E là một biểu thức quan hệ và một điều kiện F= F1 F2 ... Fn, khi đó:
F1∧F2∧...∧Fn (E) = F1 ( F2(...( F3(R))...)
3. Giao hoán các phép chọn:
F1( F2(E)) = F2 ( F1E)
4.Giao hoán các phép chiếu và phép chọn:
Nếu điều kiện F chỉ chứa các thuộc tính A1, A2,..., An, khi đó:
A1,A2,...,An( F(E)) = F( A1,A2,...,An(E))
Nếu điều kiện F có các thuộc tính B1, B2,.., Bkkhông chứa các thuộc tínhA1, A2,..., An ,khi đó:
A1,A2,...,An( F(E)) = A1,A2,...,An( F( A1,A2,...,An, B1, B2,.., Bk (E)))
5. Giao hoán phép chọn và tích Đề các:
Nếu các thuộc tính có mặt trong điều kiện F là các thuộc tính của E1, khi đó:
F(E1xE2) = F(E1) x E2
Nếu điều kiện F=F1 ∧ F2 , F1 chứa các thuộc tính của E1, F2 chứa các thuộc tính của E2, khi đó:
F(E1xE2) = F1 (E1) x F2(E2)
Nếu điều kiện F=F1 ∧ F2 , F1 chứa các thuộc tính của E1, F2 chứa các thuộc tính của E1và E2, khi đó:
F(E1xE2) = F2( F1 (E1) x (E2))
6. Giao hoán phép chọn và phép hợp:
Nếu biểu thức có dạng E= E1 ∪ E2 và giả sử các thuộc tính của E1 và E2 có cùng tên với các thuộc tính của E, F là một điều kiện , khi đó:
F(E1 ∪E2) = F1(E1)∪ F2(E2)
7. giao hoán phép chọn và phép trừ:
F(E1-E2) = F1(E1) - F2(E2)
8. Giao hoán phép chọn và phép kết nối tự nhiên:
Nếu điều kiện F chỉ chứa các thuộc tính chung biểu thức E1 và E2, khi đó:
F(E1 E2) = F1 (E1) F2(E2)
Như vậy, phép chọn được đẩy xuống trong 2 nhánh cây biểu thức(exprsession tree)
Phép chọn làm giảm kích thước của quan hệ kết quả trong cả hai nhánh.
Nếu E1 và E2 là các biểu thức, gọi A1, A2,..., An là danh sách các thuộc tính và B1, B2,.., Bk là các thuộc tính của biểu thức E1và các thuộc tính còn lại, kí hiệu là C1, C2,..., Cjlà các thuộc tính của E2, khi đó
A1,A2,...,An(E1x E2) = B1, B2,.., Bk (E1) x C1, C2,...,Cn(E2)
F(E1 E2) = F(E1) F(E2)
10. Giao hoán phép chiếu và phép hợp
A1,A2,...,An(E1∪ E2) = A1,A2,...,An(E1)∪ A1,A2,...,An(E2)
11. Kết hợp phép giao và phép hợp
(E1 ∪E2)∪ E3= E1∪ (E2 ∪E3) (E1 ∩ E2)∩ E3 = E1∩ (E2∩ E3)