Ban chỉ ĐẠo công nghệ thông tin của cơ quan đẢng giáo trình thiết kế, XÂy dựng và quản trị CƠ SỞ DỮ liệu hà NỘI, 2004



tải về 1.04 Mb.
trang13/29
Chuyển đổi dữ liệu07.07.2016
Kích1.04 Mb.
1   ...   9   10   11   12   13   14   15   16   ...   29

2.Các phép toán đại số quan hệ


Ngoài việc định nghĩa cấu trúc cơ sở dữ liệu và các ràng buộc, một mô hình dữ liệu phải chứa một tập hợp phép toán để thao tác dữ liệu. Tập hợp cơ sở các phép toán mô hình quan hệ tạo nên đại số quan hệ. Các phép toán này giúp cho người sử dụng xác định rõ các yêu cầu lấy tin cơ bản. Kết quả của một phép lấy tin là là một quan hệ mới, có thể được tạo ra từ một hoặc nhiều quan hệ.. Các quan hệ đó có thể được thao tác tiếp theo bằng cách sử dụng các phép toán của cùng đại số. Một dãy các phép toán quan hệ tạo nên một biểu thức đại số quan hệ mà kết quả của nó cũng là một quan hệ.

Các phép toán đại số quan hệ được chia thành hai nhóm. Một nhóm bao gồm các phép toán tập hợp lấy từ lý thuyết tập hợp toán học. Các phép toán đó là phép hợp, phép giao, phép trừ tập hợp và phép tích Đề các. Nhóm kia bao gồm các phép toán được xây dựng đặc biệt cho các cơ sở dữ liệu quan hệ. Các phép toán đó là phép chọn, phép chiếu, phép nối và một số các phép toán khác.


  1. Phép chọn (SELECT)


Phép chọn được sử dụng để chọn một tập hợp các bộ thoả mãn điều kiện chọn từ một quan hệ. Ta có thể xem phép chọn như một bộ lọc, nó chỉ giữ lại các bộ thoả mãn điều kiện đặt ra.

Phép chọn được ký hiệu là

< điều kiện chọn>(R)

trong đó ký hiệu  được dùng để ký hiêu phép chọn, còn điều kiện chon là một biểu thức lô gic được chỉ ra trên các thuộc tính của R. Ví dụ, để chọn các bộ NHÂNVIÊN thuộc về đơn vị có mã số là 4 hoặc các bộ NHÂNVIÊN có lương lớn hơn 800000đ ta có thể viết như sau:

< Mãsố = 4>(NHÂNVIÊN)

hoặc < Lương > 800000>(NHÂNVIÊN)

Chú ý rằng R nói chung là một biểu thức đại số quan hệ mà kết quả của nó là một quan hệ; biểu thức đơn giản nhất chính là tên của một quan hệ của một cơ sở dữ liệu. Quan hệ kết quả của phép chọn có cùng thuộc tính như R. Biểu thức lo gic chỉ ra trong <điều kiện chọn> được tạo nên từ một số hạng mục có dạng :

< tên thuộc tính> < phép so sánh> < giá trị hằng>

hoặc < tên thuộc tính> < phép so sánh> < tên thuộc tính>

trong đó là tên của một thuộc tính trong R,
là một trong các phép toán so sánh { <, , =, , >, } còn < giá trị hằng> là một giá trị hằng từ miền giá trị của thuộc tính. Các hạng mục có thể được nối với nhau bằng các phép toán lô gic AND, OR, NOT để tạo ra một điều kiện chọn chung. Ví dụ, để chọn ra các bộ giá trị NHÂNVIÊN làm việc ở đơn vị có mã số là 4 và có lương lớn hơn 800000đ hoặc các bộ giá trị NHÂNVIÊN làm việc ở đơn vị có mã số là 5 và có lương lớn hơn 500000đ ta có thể viết phép chọn như sau:

< Mãsố = 4>AND 800000>OR< Mãsố = 5>AND 500000>(NHÂNVIÊN)



MãsốNV

Họđệm

Tên

Ngàysinh

Địachỉ

Giớitính

Lương

MãsốNGS

MãsốĐV

NV002

Trần Đức

Nam

14/02/66

Hà Nội

Nam

4000

NV061

5

NV014

Phạm

Bằng

26/06/52

Bắc Ninh

Nam

4300

NV061

4

NV016

Nguyễn

Sơn

14/08/73

Hà Nam

Nam

3800

NV002

5

Hình 3.5 Kết quả phép chọn

Chú ý rằng các phép toán so sánh trong tập hợp { <, , =, , >, }áp dụng cho các thuộc tính có miền giá trị là các giá trị có thứ tự như là miền giá trị số. Miền giá trị các dãy ký tự được xem như có thứ tự dựa trên việc so sánh các dãy ký tự. Nếu miền giá trị của một thuộc tính là một tập hợp các giá trị không có thứ tự thì chỉ có các phép so sánh trong tập hợp { =,  } là có thể áp dụng được. Ngoài ra, có thể còn các phép so sánh bổ sung, chẳng hạn như “là một dãy con của “hoặc “trong khoảng từ…. đến ….. “.

Kết quả một phép chọn được xác định như sau: < Điều kiện chọn> được áp dụng cho mỗi bộ t trong R một cách độc lập. Điều đó được thực hiện bằng cách thay thế mỗi xuất hiện của một thuộc tính Ai trong điều kiện chon bằng giá trị t[Ai]của nó trong bộ. Nếu điều kiện chọn cho giá trị đúng thì bộ t sẽ được chọn. Tất cả các bộ được chọn xuất hiện trong kết quả của phép toán chọn. Các phếp toán logic AND, OR, NOT được thực hiện theo quy tắc bình thường của chúng.

Phép chọn là phép toán một ngôi, nghĩa là nó được áp dụng cho một quan hệ. Hơn nữa, phép chọn được áp dụng cho từng bộ một cách độc lập, vì vậy, các các điều kiện chon không thể liên quan đến nhiều bộ. Quan hệ kết quả của phép chọ có cấp giống như cấp của R. Số các bộ trong quan hệ kết quả luôn luôn nhỏ hơn hoặc bằng số các bộ trong R.

Phép chọn là một phép toán có tính chất giao hoán, nghĩa là

< Điều kiện 1> (< Điều kiện 2>(R)) = < Điều kiện 2> (< Điều kiện 1>(R))

Hơn nữa ta có thể kết hợp một loạt các phép chọn thành một phép chọn đơn giản bằng cách sử dụng phép toán AND, Ví dụ:

< Điều kiện 1> (< Điều kiện 2>(R)) = < Điều kiện 2>AND< Điều kiện 1>(R)


      • Phép chiếu (PROJECT)


Nếu ta coi một quan hệ như một bảng thì phép chọn chọn một số hàng của bảng thoả mãn điều kiện chọn và bỏ qua các hàng không thoả mãn điều kiện chọn. Phép chiếu là phếp toán chọn một số cột của bàng. Nếu chúng ta chỉ quan tâm đến một số thuộc tính của quan hệ, chúng ta dùng phép chiếu để chiếu lân các thuộc tính đó. Phép chiếu được ký hiệu là:

(R)

trong đó  là ký hiệu dùng để biểu diễn phép chiếu và là một danh sách con các thuộc tính của quan hệ R. Nói chung R là một biểu thức đại số quan hệ mà kết quả của nó là một quan hệ ; trường hợp đơn giản nhất nó là tên của một quan hệ của cơ sở dữ liệu. Kết quả của phép chiếu là một quan hệ chỉ có các thuộc tính nằm trong và có cùng thứ tự như thứ tự của chúng có trong danh sách. Như vậy, cấp của quan hệ kết quả là số các thuộc tính có trong .

Nếu chỉ bao gồm các thuộc tính không phải thuộc tính khoá của R thì quan hệ kết quả có thể có những bộ trùng nhau.Phép chiếu loại bỏ mọi bộ trùng lặp, và như vậy, kết quả của phép chiếu là một tập hợp các bộ và là một quan hệ đúng đắn.

Ví dụ, phép chiếu < Mãsố, Họtên, Lương>(NHÂNVIÊN) cho kết quả là một uan hệ có các thuộc tính Mãsố, Họtên, Lương (xem hình vẽ 3.6)


MãsốNV

Họđệm

Tên

Địachỉ

Lương

NV001



Vân

Hà Nội

3000

NV002

Trần Đức

Nam

Hà Nội

4000

NV010

Hoàng

Thanh

Nghệ An

2500

NV014

Phạm

Bằng

Bắc Ninh

4300

NV016

Nguyễn

Sơn

Hà Nam

3800

NV018

Vũ Hương

Giang

Phú Thọ

2500

NV025

Trần Lê

Hoa

Phú Thọ

2500

NV061

Hoàng

Giáp

Hà Nội

5500

Hình 3.6 Kết quả của phép chiếu

Số các bộ trong quan hệ kết quả từ một phép chiếu luôn luôn nhỏ hơn hoặc bằng số các bộ trong R. Nếu danh sách chiếu là một siêu khoá của R – nghĩa là nó chứa một khoá nào đó của R – thì quan hệ kết quả có cùng một số bộ như R. Ngoài ra, nếu < danh sách 2> chứa tất cả các thuộc tính coa trong thì

< danh sách1>(< danh sách2> (R)) = < danh sách 1> (R)

Phép chiếu không có tính giao hoán.


      • Phép đặt lại tên (RENAME)


Chúng ta có thể áp dụng nhiều phép toán quan hệ liên tiếp nhau. Trong trường hợp đó hoặc chúng ta có thể viết các phép toán như là một biểu thức đại số quan hệ đơn bằng cách xếp lồng các phép toán lại với nhau, hoặc chúng

ta có thể áp dụng mỗi phép toán tại một thời điểm và tạo ra các quan hệ kết quả trung gian. Trong trường hợp tạo các quan hệ trung gian, ta phải đặt tên cho quan hệ đó. Ví dụ: Để đưa ra Họtên và Lương của các NHÂNVIÊN làm việc ở đơn vị có Mãsố là 4 chúng ta phải áp dụng một phép chọn và một phép chiếu. Chúng ta có thể viết một biểu thức đại số quan hệ đơn như sau :

< Họtên, Lương >( (NHÂNVIÊN))

Một cách khác, chúng ta có thể tạo ra kết quả trung gian và viết biểu thức trên thành dãy các phép toán như sau:

KQTG   (NHÂNVIÊN)

Ketqua  < Họtên, Lương >(FQTG)

Thông thường việc phân tích một dãy phức tạp các phép toán bằng cách chỉ ra các quan hệ kết quả trung gian là dễ hơn việc viết một biểu thức đại số quan hệ đơn. Chúng ta có thể dùng kỹ thuật này để đặt lại tên (rename) cho các thuộc tính trong các quan hệ trung gian và kết quả. Để đặt lại tên cho các thuộc tính của một quan hệ, chúng ta liệt kê các tên mới của các thuộc tính trong cặp dấu ngoặc. Ví dụ:

R(Họ_và_tên, Lương)  < Họtên, Lương >(FQTG)

Cho kết quả là quan hệ R, trong đó thuộc tính Họtên được đặt lại tên thành Ho_và_tên.

Nếu không có việc đặt lại tên thì tên của các thuộc tính trong quan hệ kết quả của một phép chọn là giống như các tên trong quan hệ ban đầu và có cùng một thứ tự như thứ tự của các thuộc tính đó. Đối với phép chiếu, nếu không có việc đặt lại tên thì quan hệ kết quả có các tên thuộc tính giống như các tên trong danh sách chiếu và có cùng thứ tự như chúng xuất hiện trong danh sách.

Chúng ta có thể định nghĩa một phép toán đặt lại tên, nó có thể đặt lại tên cho một tên quan hệ hoặc các tên thuộc tính hoặc cả hai. Phép đặt lại tên được ký hiệu là

S(B1,B2,….Bn)(R) hoặc S(R) hoặc  (B1,B2,….Bn)(R)

trong đó ký hiệu  được dùng để ký hiệu phép toán đặt lại tên, S là tên quan hệ mới, B1,B2,….Bn là các tên thuộc tính mới. Biểu thức thứ nhất đặt lại tên quan hệ và các thuộc tính của nó; biểu thức thứ hai chỉ đặt lại tên quan hệ và biểu thức thứ ba chỉ đặt lại tên các thuộc tính. Nếu các thuộc tính của R là A1,A2, …..An thì sau khi đặt lại tên chúng có tên là B1, B2, …..Bn.

      • Các phép toán lý thuyết tập hợp


Nhóm tiếp theo của các phép toán đại số quan hệ là các phép toán toán học thông thường trên các tập hợp. Đó là các phép toán hợp, giao và trừ tập hợp. Các phép toán này là các phép toán hai ngôi, nghĩa là mỗi phép toán được áp dụng cho hai tập hợp. Khi áp dụng các phép toán này cho cơ sở dữ liệu quan hệ, hai quan hệ tham gia vào một trong các phép toán trên phải có kiểu của các bộ như nhau, hay nói cách khác, chúng phải có cùng một cấu trúc. Điều kiện này được gọi là tương thích đồng nhất. Hai quan hệ R(A1,A2, …, An) và S(B1, B2, ….,Bn) được gọi là tương thích đồng nhất nếu chúng có cùng cấp n và dom(Ai) = dom(Bi) với 1<= i <= n. Điều đó có nghĩa là hai quan hệ có cùng số các thuộc tính và mỗi cặp thuộc tính tương ứng có cùng miền giá trị.

Các phép toán được định nghĩa như sau:

. Phép hợp : Hợp của hai quan hệ R và S, được ký hiệu là R  S, cho kết quả là một quan hệ chứa tất cả các bộ có trong R hoặc ở trong S hoặc ở trong cả hai. Các bộ trùng lặp bị loại bỏ.

. Phép giao: Giao của hai quan hệ R và S, được ký hiệu là R  S, cho kết quả là một quan hệ chứa tất các các bộ có trong cả hai quan hệ R và S

. Phép trừ quan hệ: Phép trừ quan hệ R và S, được ký hiệu là R – S, cho kết quả là một quan hệ chứa tất cả các bộ có trong R nhưng không có trong S.

Ví dụ, xét hai quan hệ



R

Họtên

Tuổi

Giớitính







S

Họtên

Tuổi

Giới tính




AA

20

Nam










BB

18

Nữ




BB

18

Nữ










EE

20

Nam




CC

21

Nam










DD

25

Nữ




DD

25

Nữ










FF

21

Nam



R  S

Họtên

Tuổi

Giới tính







R  S

Họtên

Tuổi

Giới tính




AA

20

Nam










BB

18

Nữ




BB

18

Nữ










DD

25

Nữ




CC

21

Nam






















DD

25

Nữ







R – S

Họtên

Tuổi

Giới tính




EE

20

Nam










AA

20

Nam




FF

21

Nam










CC

21

Nam

Hình 3.7 Kết quả của các phép toán tập hợp

Chú ý rằng các phép toán hợp và giao là các phép toán giao hoán, nghĩa là:

R  S = S  R và R  S = S  R

Các phép toán trên cũng có tính chất kết hợp, nghĩa là

R  (S  T) = (R  S)  T và R  (S  T) = (RS) T

Phép toán trừ tập hợp không có tính chất giao hoán.

Ngoài các phép toán trên, còn có một phép toán gọi là tích Đề các. Tích Đề các còn gọi là tích hỗn hợp (cross product) hoặc là nối hỗn hợp (cross join), được ký hiệu là . Đó cùng là một phép toán hai ngôi nhưng những quan hệ mà nó áp dụng trên đó không phải là tương thích đồng nhất. Phép toán này được sử dụng để nối các bộ của hai quan hệ vào một kiểu kết hợp. Kết quả của R(A1, A2,.., An)  S(B1, B2, …,Bm) là một quan hệ Q với n+m thuộc tính

Q(A1, A2, …, An, B1, B2, …,Bm). Quan hệ kết quả Q có các bộ được tạo thành do sự kết hợp một bộ của R và một bộ của S. Ví dụ, xét hai quan hệ R và S như sau:



R

A1

A2

A3







S

B1

B2

B3




aa

bb

cc










dd

da

db




ab

ba

ac










cd

cb

ac

Khi đó kết quả của Tích Đề các sẽ là:

R S

A1

A2

A3

B1

B2

B3




aa

bb

cc

dd

da

db




aa

bb

cc

cd

cb

ac




ab

ba

ac

dd

da

db




ab

ba

ac

cd

cb

ac

Hình 3.8 Tích Đề các của hai quan hệ R và S.

Như vậy, nếu R có nR bộ và S có nS bộ thì R S có nR * nS bộ. Phép toán này nếu áp dụng một mình thì không có ý nghĩa mấy. Nó chỉ có lợi khi tiếp theo bằng một phép chọn các giá trị tương thích của các thuộc tính xuất phát từ các quan hệ thành phần. Tích Đề các kết hợp với một phép chọn cho ta một phép nối.


      • Phép nối (JOIN)


Phép nối được ký hiệu là được dùng để kết hợp các bộ có liên hệ với nhau từ hai quan hệ thành một bộ. Phép toán này rất quan trọng đối với cơ sở dữ liệu quan hệ có nhiều bảng bởi vì nó cho phép ta xử lý các mối liên kết giữa các quan hệ. Dạng tổng quát của phép nối trên hai quan hệ R(A1, A2, …, An) và S (B1, B2, …, Bm) là

R S

< Điều kiện nối>

Kết quả của phép nối là một quan hệ Q(A1, A2, …, An, B1, B2, …Bm) có n+m thuộc tính theo thứ tự đó. Mỗi bộ của Q là một sự kết nối giữa một bộ của R và một bộ của S khi chúng thoả mãn điều kiện nối. Sự khác nhau giữa tích Đề các và phép nối là ở chỗ trong phép nối, chỉ có các bộ thoả mãn điều kiện nối mới xuất hiện trong kết quả, trong khi đó trong tích Đề các mọi tổ hợp của các bộ đều có trong kết quả. Điều kiện nối được chỉ ra trên các thuộc tính của hai quan hệ R và S và được tính toán cho mỗi tổ hợp các bộ. Mọi tổ hợp bộ mà điều kiện nối là đúng được chứa trong quan hệ kết quả Q như là một bộ đơn. Một điều kiện nối tổng quát có dạng



<điều kiện> AND <điều kiện> AND ……..AND <điều kiện>

trong đó mỗi điều kiện có dạng Ai  Bj, Ai là một thuộc tính của R, Bj là một thuộc tính của S, Ai và Bj có cùng miền và  là một trong các dấu phép toán so sánh { <, , =, , >, }. Một phép toán nối với điều kiện tổng quát như vậy gọi là một phép nối tê-ta. Các bộ có các thuộc tính nối là null không xuất hiện trong kết quả. Theo nghĩa đó, phép toán không nhất thiết phải xử lý mọi thông tin trong các quan hệ tham gia. Ví dụ về phép nối:



Giả sử ta có hai quan hệ R và S như sau:

R

A1

A2

A3




S

B1

B2

B3




Aa

Ca

Ba







Ba

Aaa

Bbb




Ab

Cb

Bb







Bb

Ccc

Ddd




Ac

Ca

Ba



















Ad

Cc

Null



















Ae

Cd

Bb
















kết quả phép nối sẽ là:

R S

A1

A2

A3

B1

B2

B3



Aa

Ca

Ba

Ba

Aaa

Bbb




Ab

Cb

Bb

Bb

Ccc

Ddd




Ac

Ca

Ba

Ba

Aaa

Bbb




Ac

Cd

Bb

Bb

Ccc

Ddd

Hình 3.8 Phép nối hai quan hệ

Phần lớn các phép nối chỉ cho phép các điều kiện nối với các so sánh bằng. Những phép nối chỉ sử dụng phép so sánh bằng được gọi là nối bằng (equi join). Ví dụ trong hình 3.8 là một phép nối bằng. Chú ý rằng trong kết quả của phép nối bằng chúng ta thấy luôn luôn có một hoặc nhiều cặp thuộc tính có các giá trị như nhau trong mỗi bộ. Việc có các cặp thuộc tính có giá trị như nhau là thừa, vì vậy người ta đề nghị một phép nối mới gọi là nối tự nhiên, ký hiệu là *.Phép nối tự nhiên nhằm loại bỏ thuộc tính thứ hai (thuộc tính thừa) trong điều kiện nối bằng. Định nghĩa chuẩn của nối tự nhiên đòi hỏi hai thuộc tính nối (hoặc mỗi cặp thuộc tính nối) phải có tên như nhau trong cả hai quan hệ. Nếu các thuộc tính đó không cùng tên thì trước khi nối phải áp dụng phép toán đặt lại tên. Ví dụ, ta cần nối tự nhiên hai quan hệ ĐƠNVỊ (MãsốDV, TênDV) và Dựán(MãsốDA,TênDA, ĐƠNVỊkiểmsoát,..), trong đó thuộc tính ĐƠNVỊkiểmsoát đóng vai trò của đơn vị kiểm soát dự án, nghĩa là nó có cùng miền giá trị với thuộc tính MãsốDV của quan hệ ĐƠNVỊ. Để có thể thực hiện được phép nối tự nhiên với điều kiện so sánh bằng, ta phải đổi tên thuộc tính ĐƠNVỊkiểmsoát thành MãsốDV, nghĩa là ta phải viết

ĐƠNVỊ * (Mã sốDA, TênDA, Mã sốDV,..) (Dựán)

Nếu các thuộc tính mà trên đó nối tự nhiên được chỉ ra có tên như nhau thì việc đặt lại tên là không cần thiết.

Chú ý rằng nếu không có một tổ hợp các bộ nào thoả mãn điều kiện nối thì kết quả của một phép nối là một quan hệ rỗng không chứa bộ nào. Nói chung, nếu R có nR bộ và S có nS bộ thì kết quả của phép nối R với S sẽ có số các bộ lớn hơn 0 và nhỏ hơn nR*nS. Cỡ của một kết quả nối chia cho cỡ cực đại nR*nS tạo nên một tỷ kệ gọi là chọn lựa nối, đó là một tính chất của mỗi điều kiện nối. Nếu không có điều kiện nối, mọi tổ hợp các bộ sẽ được chọn và phép nối trở thành một tích Đề các.

Phép nối được sử dụng để kết hợp các dữ liệu từ nhiều quan hệ sao cho các thông tin có liên hệ với nhau có thể được biểu diễn trong một bảng. Đoi khi phếp nối được áp dụng nối một bảng với chính nó. Chúng ta có thể áp dụng phép nối tự nhiên và nối bằng để nối nhiều bảng vời nhau. Nếu ta nối n bảng với nhau thì phải chỉ ra n-1 điều kiện nối.


      • Tập hợp đầy đủ các phép toán quan hệ


Người ta đã chỉ rằng tập hợp các phép toán đại số quan hệ {, , , -, }là một tập đầy đủ ; nghĩa là mọi phép toán đại số quan hệ khác có thể được biểu diễn thông qua các phép toán của tập hợp này. Ví dụ, phép giao có thể được biểu diễn bằng cách sử dụng các phép hợp và trừ tập hợp như sau:

R  S (R  S) – ((R-S)  (S – R))

Như vậy, nói một cách chính xác là không cần phải có phép giao. Mỗi khi cần thực hiện một phép giao, ta chỉ cần đưa ra biểu thức phức tạp này là đủ.

Một ví dụ khác, một phép nối có thể được chỉ ra như một tích Đề các và sau đó là một phép chọn:



R S =  < Đièu kiện chọn> (R  S)

< Điều kiện nối>

Một cách tương tự, ta có thể thay thế phép nối tự nhiên bằng một tích Đề các đi sau một phép đặt lại tên và sau đó là các phép toán chọn và chiếu. Như vậy các phép toán nối cũng không cần thiết. Tuy nhiên các phép toán đó rất quan trọng bởi vì chúng tiện dùng và rất thường xuyên được áp dụng trong các cơ sở dữ liệu. Các phép toán đó được đưa vào trong đại số quan hệ là do tiện dụng hoqn là do cần thiết. Một phép toán khác cũng được đưa vào, đó là phép chia


      • Phép chia


Phép chia có lợi cho một loại truy vấn đặc biệt đôi khi có các ứng dụng trong cơ sở dữ liệu. Phép chia được áp dụng cho hai quan hệ R(Z) và S(X) và được ký hiệu là R(Z)  S(X), trong đó X  Z.Giả sử Y = Z – X (như vậy Z=X-Y).Kết quả của phép chia là quan hệ T(Y) chứa một bộ t nếu các bộ tR xuất hiện trong R với tR[Y] = t và với tR[X] = tS với mọi bộ tS trong S. Điều đó có nghĩa là để một bộ t xuất hiện trong kết quả T của phép chia, các giá trị trong t phải xuất hiện trong R trong sự kết nối với mọi bộ của S.

Ví dụ:


R

A

B




S

A







a1

b1







a1







a2

b1







a2







a3

b1







a3







a4

b1
















a1

b2















a3

b2
















a2

b3
















a3

b3
















a4

b3




T

B







a1

b4







b1







a2

b4







b4







a3

b4













Hình 3.9 : minh hoạ phép chia T(B)  R(A,B)  S(B).

Trong phép chia ở trên, do các bộ giá trị b1 và b4 xuất hiện trong R trong sự kết hợp với tất cả ba bộ trong S, vì vậy chúng xuất hiện trong quan hệ kết quả T. Tất cả các giá trị khabs của B trong R không xuất hiện với mọi bộ trong S và không được chọn

Phép chia có thế được biểu diễn thông qua các phép toán , , -như sau:

T1  Y(R) ; T2 Y((S  T1) – R) ; T  T1 – T2


1   ...   9   10   11   12   13   14   15   16   ...   29


Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2016
được sử dụng cho việc quản lý

    Quê hương