Thứ Hai, 3 tháng 3, 2014

Tài liệu Phép toán quan hệ pdf

5 / 24
Thí dụ : tìm thủy thủ có tần suất trên 7
Biến S gắn với một bộ trong quan hệ Sailors

S|S∈Sailors∧S.rating>7










6 / 24
Công thức TRC

Công thức :

Công thức nguyên tử
R ∈ Rel, R.a op S.b, R.a op hằng, hằng op R.a

Xác định đệ qui
¬
p, p

q, p

q, p

q , trong đó p, q là công thức

R(p(R)), trong đó R là biến bộ

R(p(R)), trong đó R là biến bộ

Terms

Gắn lượng tử



gắn với biến R.

Tự do – biến là tự do khi không gắn với lượng tử
7 / 24
Ngữ nghĩa của các câu hỏi TRC

F là công thức nguyên tử R ∈ Rel, và R được gán với bộ trong
thể hiện của quan hệ Rel

{S|S∈Sailors}

F là công thức so sánh R.a op S.b, R.a op h ngằ , hay h ng op ằ
R.a, và các bộ gắn với R và S có các trường tên là R.a và S.b,
thỏa mãn so sánh true.

F là công thức ¬p, và p không đúng;
công thức p ∧ q, và cả p và q đều true;
công thức p ∨ q, và một trong hai là true;
công thức p ⇒ q, và q là true khi mà p là true.

F là công thức có dạng ∃R(p( R )), và có sự gán các bộ cho biến
tự do trongb p ( R ), bao gồm biến R làm cho công thức p( R )
true;

F là công thức có dạng ∀R (p ( R )), và có sự gán các bộ cho biến
tự do trongb p ( R ), bao gồm biến R làm cho công thức p( R )
true không liên quan đến bộ nào được gán cho R.
8 / 24
sid sname rating age
22 dustin 7 45.0
31 lubber 8 55.5
58 rusty 10 35.0
sid bid day
22 101 10/10/96
58 103 11/12/96
SailorsReserves
Thí dụ về TRC
9 / 24
Tìm tên và tuổi của thủy thủ có tần suất trên 7
P là biến bộ có hai trường name và age.
- Hai trường là trường duy nhất trong P
- P khi liên quan đến bất kì quan hệ nào
{ P |

S

Sailors (S.rating > 7

P.name = S.sname

P.age = S.age)}
name age
Lubber 55.0
rusty 35.0
sid sname rating age
22 dustin 7 45.0
31 lubber 8 55.5
58 rusty 10 35.0
Sailors
10 / 24
Tìm tên thủy thủ phục vụ tàu 103
{ P |

S

Sailors

R

Reserves
(R.sid = S.sid

R.bid = 103

P.sname = S.sname)}
Tìm tất cả các thủy thủ có bộ trong quan hệ Reserves, có cùng giá
trị trong trường SID, mà bid =103
Vậy thì, các bộ kết quả trông ra sao, về dòng, cột. Có gì khác
nhau không ?
{ S |

S

Sailors



R

Reserves (R.sid = S.sid

R.bid = 103)}
11 / 24
Tìm tên thủy thủ đã từng phục vụ tàu đỏ
{ P |

S

Sailors

R

Reserves
(R.sid = S.sid

P.sname = S.sname



B

Boats(B.bid = R.bid

B.color ='red'))}
Tìm tất cả các bộ sailor S mà có bộ R trong Reserves và B trong
quan hệ Boats, để R.sid = S.sid

B.bid = R.bid

B.color ='red'
{ P |

S

Sailors

R

Reserves

B

Boats
(R.sid = S.sid

B.bid = R.bid

B.color ='red'

P.sname = S.sname)}
12 / 24
Tìm thủy thủ phục vụ tất cả các tàu
Tìm thủy thủ S mà tx các tàu B có trong bộ Reserves cho thấy :
thủy thủ S đã phục vụ tàu B.
{ P |

S

Sailors

B

Boats
(

R

Reserves (S.sid = R.sid

R.bid = B.bid

P.sname = S.sname))}
ρ π π
( , (
,
Re ) / ( ))Tempsids
sid bid
serves
bid
Boats
π
sname
Tempsids Sailors( )
13 / 24
Tìm các thủy thủ đã trên tàu đỏ
{ P |

S

Sailors



B

Boats
(B.color = 'red'

(

R

Reserves (S.sid = R.sid

R.bid = B.bid))}
ρ π π
( , (
,
Re ) / ( ))Tempsids
sid bid
serves
bid
Boats
π
sname
Tempsids Sailors( )
Thể hiện theo đại số quan
hệ :
14 / 24
Tìm thủy thủ phục vụ tất cả các tàu đỏ
{ P |

S

Sailors



B

Boats
(B.color = 'red'

(

R

Reserves (S.sid = R.sid

R.bid = B.bid))}
về logic p

q tương đương
¬
p

q
{ P |

S

Sailors



B

Boats
(B.color

'red'

(

R

Reserves (S.sid = R.sid

R.bid = B.bid))}
được viết lại như :
để hạn chế các tàu đỏ

Không có nhận xét nào:

Đăng nhận xét