Chúng ta có thể sử dụng các dấu ngoặc để bao các công thức lại khi cần Nếu không có dấu ngoặc thì trật tự ước tính là:

Một phần của tài liệu Cơ sở dữ liệu 3 (Trang 26)

không có dấu ngoặc thì trật tự ước tính là:

¬, (∀X), (∃X) có độ ưu tiên cao nhất và được nhóm từ bên phải nhất khi chúng xuất hiện liên tiếp.

∧ có độ ưu tiên kế tiếp và nhóm từ bên trái.

∨ có độ ưu tiên thấp nhất và nhóm từ bên trái. Ví dụ: Công thức:

(∀X)¬p(X,Y) ∨ q(Y) ∧ r(X) nếu được đặt trong dấu ngoặc đơn thì:

((∀X)(¬p(X,Y))) ∨ (q(Y) ∧ r(X))

g. Ví dụ:

Công thức đại số quan hệ:

Πcust (σINAME = ‘Brie’ (INCLUDES ⋈ ORDERS) liên quan đến những quan hệ:

INCLUDES(O#, INAME, QUANTITY) ORDERS(O#, DATE, CUST)

Trong phép tính quan hệ, toán tử kết nối được phản ánh bằng logical AND cùng những biến được chọn tương ứng với những thuộc tính của những quan hệ tham gia vào quá trình kết nối. Chúng ta có thể bắt đầu với những công thức includes(N, I, Q) và

orders(N, D, C) tương ứng với những quan hệ INCLUDES và ORDERS với biến N được sử dụng trong cả hai biến thể của thuộc tính O#. Khi đó:

INCLUDES ⋈ ORDERS

được mô tả bằng công thức sau:

includes(N, I, Q) ∧orders(N, D, C)

Phép chọn ITEM = ‘Brie’ được quản lý bởi logical AND của công thức bên trên với công thức nhân, I = ‘Brie’. Kế đến là phép chiếu trên thuộc tính CUST cho thấy rằng chúng ta chỉ quan tâm đến sự tồn tại của một vài giá trị cho mỗi biến N, I, Q, và D để tạo thành công thức:

includes(N, I, Q) ∧orders(N, D, C) ∧ I = ‘Brie’

là đúng. Chúng ta có thể sử dụng lượng từ ∃ áp dụng cho công thức trên để nó trở thành công thức:

(∃N)(∃I)(∃Q)(∃D) (includes(N, I, Q) ∧orders(N, D, C) ∧ I = ‘Brie’)

Công thức trên chỉ đúng khi và chỉ khi I = ‘Brie’. Chúng ta có thể bỏ lượng từ (∃I) nếu chúng ta thay thế thể hiện của I bằng hằng ‘Brie’. Với nổi lực nhỏ, chúng ta có thể chứng minh 2 công thức là tương đương:

(∃N)(∃Q)(∃D) (includes(N, ‘Brie’, Q) ∧orders(N, D, C))

Một phần của tài liệu Cơ sở dữ liệu 3 (Trang 26)