Biểu thức của phép tính quan hệ trên bộ:

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

Phép tính quan hệ trên bộ, hay TRC, là một dạng của phép tính quan hệ mà những biến đại diện cho những bộ chứ không là những bộ phận của bộ. Để đề cập đến bộ phận i của bộ µ, chúng ta sử dụng µ[i]. Công thức của TRC được định nghĩa một cách đệ quy, và cấu trúc của công thức TRC là hoàn toàn giống cấu trúc của công thức DRC. Cơ bản là:

- Nếu p là một vị từ và µ là một biến bộ, thì p(µ) là công thức nhân với nghĩa “bộ µ ở trong quan hệ p”.

- X θ Y là một công thức nhân nếu θ là một toán tử số học, còn X và Y là những hằng hoặc những tham chiếu bộ phận; Cuối cùng thì nó có dạng µ[i] trong đó µ là biến bộ, còn i là chỉ số bộ phận hay là thuộc tính.

Nếu F1 và F2 là những công thức TRC, µ là một biến bộ xuất hiện tự do trong F, thì những công thức sau là công thức TRC:

1) F1 ∧ F2 4) (∃)F1

2) F1∨ F2 5) (∀)F1

3) ¬F1

Quan hệ nối kết với một công thức TRC được định nghĩa tương tự như DRC. Quan hệ cho F có một bộ phận cho mỗi bộ phận của mỗi biến bộ tự do của F mà được đề cập trong F. Giá trị của quan hệ cho F là tập những bộ mà giá trị của nó khi thay thế cho những bộ phận tương ứng của những biến bộ thì làm cho F đúng. Biểu thức TRC có dạng:

{µ | F(µ)}

trong đó µ là biến tự do duy nhất ở trong F. Một cách tự nhiên, biểu thức này định nghĩa quan hệ của tất cả những bộ µ mà làm cho F đúng.

Trong trường hợp ngôi của một biến bộ không được rõ ràng từ ngữ cảnh, chúng ta sẽ sử dụng µ(i) để diễn tả một biến bộ µ có ngôi i. Chúng ta có thể sử dụng chỉ số trên này khi biến bộ được định lượng bởi lượng từ ∃ hay ∀ và bỏ qua nó ở những chỗ khác.

Ví dụ: Cho công thức DRC sau:

{XY | likes(X,Y) ∧¬(broke(X) ∧ (∃Z)likes(Z,Y)}

Từ công thức này chúng ta có thể chuyển nó thành công thức TRC nếu chúng ta sử dụng bộ µ thay cho (X,Y), v thay cho X trong broke và ρ thay cho (Z,Y) trong likes. Kết quả là:

{µ(2) | likes(µ) ∧¬ ((∃v(1))(broke(v) ∧ v[1] = µ[1]) ∧ (∃ρ(2))(likes(ρ) ∧ρ[2] = µ[2])}

Chú ý cách mà công thức nhân v[1] = µ[1] thay thế mối quan hệ mà

trong DRC được biểu diễn bằng biến cùng tên X trong likes và trong broke. Chúng ta không thể sử dụng µ như đối số cho broke bởi vì broke là một bộ đơn trong khi likes là một bộ đôi. Tương tự, ρ[2] = µ[2] thay thế cho biến cùng tên Y.

b.Chuyển từ đại số quan hệ sang phép tính quan hệ trên bộ:

Bổ đề: Bất kỳ một truy vấn có thể biểu diễn trong đại số quan hệ thì có thể biểu diễn trong phép toán quan hệ trên bộ.

- Sau đây chúng ta xem xét 5 trường hợp tương ứng với 5 phép toán cơ bản của đại số quan hệ:

* Trường hợp 1: E = E1 E2

Có hai công thức dựa trên phép tính quan hệ trên bộ F1 và F2 tương ứng với E1 và E2. Biến bộ tự do đơn độc trong F1 và F2 là µ. Bởi vì E1 và E2 có cùng ngôi nên biến bộ tự do trong F1 và F2 cũng phải có cùng ngôi, vì thế việc đổi tên là được phép (nếu cần thiết). Công thức TRC của E là:

F1 F2

* Trường hợp 2: E = E1 – E2

Như trong trường hợp 1, chúng ta giả sử rằng có 2 công thức F1(µ) và F2(µ) tương ứng với E1 và E2. Khi đó công thức TRC cho E là:

F1∧¬F2

* Trường hợp 3: E = πi1…ik(E1)

Đặt F1(v) là một công thức TRC tương đương E1 thì công thức TRC cho E với biến tự do µ là:

(v)(F1(v) ∧µ[1] = v[i1] ∧µ[2] = v[i2] ∧µ[k] = v[ik])

* Trường hợp 4: E = E1 x E2

Đặt F1(v(m)) và F2(ρ(n)) là công thức TRC tương ứng với E1 và E2. Công thức TRC cho E với biến tự do độc nhất µ(m+n) là: (adsbygoogle = window.adsbygoogle || []).push({});

(v)(∃ρ)(F1(v) F2(ρ) ∧µ[1] = v[1] ∧µ[m] = v[m] ∧µ[m+1] = ρ[1] ∧ µ[m+n] = ρ[n])

* Trường hợp 5: E = σA(E1)

Chúng ta giả sử A là một phép chọn đơn giản có dạng i θ j hoặc i θ a. Đặt F1(µ) là công thức TRC tương ứng với E1. Công thức TRC cho E là:

F1(µ) ∧µ[i] θµ[j] hoặc F1(µ) ∧µ[i] θ a

phụ thuộc vào dạng của A.

- Ví dụ: Chúng ta hãy chuyển biểu thức đại số sau thành phép tính trên bộ: likes(X,Y) – (broke(X) x πy(likes(X,Y)))

Đầu tiên, 3 thể hiện của những vị từ sẽ được đổi thành likes(λ), broke(µ) và likes(v) theo thứ tự xuất hiện trong biểu thức trên. Đối với πy(likes(X,Y)), chúng ta phải để ra một biến bộ mới ρ áp dụng trường hợp 3 chuyển thành (v)(likes(v) ∧ ρ[1] = v[2]).

Đối với broke(X) x πy(likes(X,Y)) chúng ta phải đưa vào một biến mới, bộ phận thứ nhất của biến đôi này phải cân bằng với bộ phận đơn của µ và bộ phận thứ hai của biến đôi này phải cần bằng với bộ phận đơn của biến ρ. Chúng ta có thể gọi biến mới này bằng bất cứ tên gì mà chúng ta thích, nhưng ở đây nó được gọi là λ là hoàn toàn có ý nghĩa. Lý do là ở bước tiếp theo, chúng ta phải thực hiện phép trừ công thức nên biến bộ tự do của hai công thức tham gia vào phép trừ phải như nhau. Vì vậy chúng ta có: (∃µ)(∃ρ)(broke(µ) ∧ ((∃v)(like(v) ∧ρ[1] = v[2])) ∧λ[1] = µ[1] ∧λ[2] = ρ[1]) Biểu thức cuối cùng là: {λ(2) | likes(λ) ∧¬((∃µ(1))(∃ρ(1))(broke(µ) ∧ ((∃v(2))(like(v) ∧ρ[1] = v[2])) ∧ λ[1] = µ[1] ∧λ[2] = ρ[1])) }

CHƯƠNG IV:

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