Tải bản đầy đủ (.ppt) (24 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (585.65 KB, 24 trang )

1 / 24
Phép toán quan hệ
2 / 24
Ngôn ngữ hình thức cho mô hình quan hệ

Ngôn ngữ SQL thuận tiện cho
tính toán

Các ngôn ngữ theo tính toán
quan hệ thuận tiện cho mô tả.
Lớp ngôn ngữ này chịu ảnh
hưởng của ngôn ngữ SQL
3 / 24
Phép toán quan hệ

Phép toán có

biến, hằng

Phép toán so sánh (<,>,=,≥,≠.≤),

Liên kết logic ( ∧,∨)

Lượng tử (∃,∀)

Có hai loại ngôn ngữ

Tính toán quan hệ trên bộ (Tuple relational calculus TRC) :
Các biến theo các bộ dữ liệu. Đại diện là QUEL.

Phép toán quan hệ trên miền (Domain relational calculus


DRC). Các biến theo các phần tử của miền dữ liệu. Đại diện
là QBE.

Cả hai TRC và DRC là phần con đơn giản của logic vị từ
bậc một.
4 / 24
Phép toán quan hệ trên bộ (TRC)

Biến bộ : biến nhận các bộ của lược đồ quan
hệ như là giá trị.

Câu hỏi có dạng
T = biến bộ
p(T) = công thức mô tả T

Kết quả là tập các bộ t mà p(t) thỏa mãn, khi
T=t

Công thức P(T) được viết theo logic vị từ bậc
nhất.
( ){ }
TpT|
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 đỏ
15 / 24
Phép toán quan hệ trên miền

Câu hỏi có dạng

x x xn p x x xn1 2 1 2, , , | , , ,




















Kết quả là tất cả các bộ
Để cho công thức là đúng
x x xn1 2, , ,
p x x xn1 2, , ,











16 / 24
Công thức DRC

Công thức nguyên tử

<x1,x2,…,xn> ∈ Rel , trong đó Rel là quan hệ có n biến

X op Y

X op hằng số

op là một trong các phép so sánh (<,>,=,≥,≠.≤),

Xác định đệ qui
¬p, p∧q, p∨q, p⇒q , trong đó p, q là công thức
∃X(p(X)), trong đó X là biến miền
∀X(p(X)), trong đó X là biến miền
17 / 24
Biến tự do và biến ràng buộc

Việc sử dụng lượng tử và trong công thức
được gọi là ràng buộc X ( bind X).

Biến không bị buộc là biến tự do.


Xét lại định nghĩa về câu hỏi

X

X
x x xn p x x xn1 2 1 2, , , | , , ,





















Điều hạn chế quan trọng là các biến x1, , xn
bên trái dấu `|’ cần là biến tự do duy nhất
trong công thức p( ).

18 / 24
Tìm thủy thủ tần suất trên 7


biến miền dữ liệu I, N, T và A là bị buộc vào
các trường của các bộ Sailors.

Mỗi bộ thỏa mãn T>7 có trong kết
quả.

Có thể thay đổi

Tìm thủy thủ trên 18 tuổi và tần suất trên 9, tên là
Joe
I N T A I N T A Sailors T, , , | , , ,
∈ ∧ >










7
I N T A Sailors, , ,

I N T A, , ,

sid sname rating age
22 dustin 7 45.0
31 lubber 8 55.5
58 rusty 10 35.0
Sailors
19 / 24
Tìm thủy thủ có suất > 7 đã trên tàu 103

Đã dùng thay cho

Lưu ý rằng việc dùng ∃ để tìm bộ trong Reserves
được nối với Sailors
I N T A I N T A Sailors T, , , | , , ,
∈ ∧ > ∧





7
∃ ∈ ∧ = ∧ =














Ir Br D Ir Br D serves Ir I Br, , , , Re 103
( )

Ir Br D, ,
( )
( )
( )
∃ ∃ ∃
Ir Br D
sid bid day
22 101 10/10/96
58 103 11/12/96
Reserves
sid sname rating age
22 dustin 7 45.0
31 lubber 8 55.5
58 rusty 10 35.0
Sailors
bid bname color
101 interlake red
103 marine green
Boats
{<I,N,T,A>|<I,N,T,A> ∈Sailors ∧T>7
∧ ∃ Ir,Br,D
(<Ir,103,D> ∈ Reserves ∧ Ir =I )}
20 / 24

Tìm thủu thủ suất > 7 đã trên tàu đỏ

Lưu ý cách dùng ngoặc để chỉ phạm vi của
lượng từ

Có thể viết lại, với RED là hằng BN = red
I N T A I N T A Sailors T, , , | , , ,
∈ ∧ > ∧





7
∃ ∈ ∧ = ∧




Ir Br D Ir Br D serves Ir I, , , , Re
∃ ∈ ∧ = ∧ =





















B BN C B BN C Boats B Br C red, , , , ' '
sid bid day
22 101 10/10/96
58 103 11/12/96
Reserves
sid sname rating age
22 dustin 7 45.0
31 lubber 8 55.5
58 rusty 10 35.0
Sailors
bid bname color
101 interlake red
103 marine green
Boats
21 / 24
Tìm thủy thủ đã trên các tàu

Tìm các thủy thủ I để mỗi bộ 3 không là một bộ trong
Boats hoặc chỉ có một bộ trong Reserves cho thấy thủy thủ I đã

phục vụ.
I N T A I N T A Sailors, , , | , , ,
∈ ∧





∀ ¬ ∈ ∨















B BN C B BN C Boats, , , ,
∃ ∈ ∧ = ∧ =




























Ir Br D Ir Br D serves I Ir Br B, , , , Re
B BN C, ,
sid bid day
22 101 10/10/96
58 103 11/12/96
Reserves
sid sname rating age

22 dustin 7 45.0
31 lubber 8 55.5
58 rusty 10 35.0
Sailors
bid bname color
101 interlake red
103 marine green
Boats
I N T A I N T A Sailors, , , | , , ,
∈ ∧





∀ ∈
B BN C Boats, ,
∃ ∈ = ∧ =






















Ir Br D serves I Ir Br B, , Re
22 / 24
So sánh đại số quan hệ và phép toán quan hệ

Hai loại ngôn ngữ đều dùng để trả lời câu hỏi
cơ sở dữ liệu quan hệ.

Có thể chuyển câu đại số quan hệ sang câu
phép toán quan hệ

Ngược lại, khi có câu phép toán quan hệ :

Câu hỏi không an toàn
{S | ¬(S ∈ Sailors)} đúng hay không ?

Câu TRC an toàn Dom(Q , I)
-
Trả lời cho Q chỉ có giá trị trong Dom(Q, I)

∃R(p(R)), bộ r chỉ chứa hằng trong Dom(Q,I)


∀R(p(R)), bộ r chứa một hằng không trong Dom(Q,I), thì
câu p(r) là đúng.
23 / 24
Kết luận

Đại số quan hệ là tính toán đảm bảo và mạnh

Ngôn ngữ là hoàn toàn quan hệ nếu có thể
thể hiện tất cả các câu hỏi theo đại số quan hệ

Phép toán quan hệ không hướng tính toán,
mà mô tả. Người dùng xác định câu hỏi theo
cách họ muốn, không theo cách tính toán ra
sao.
24 / 24
Cám ơn sự theo dõi

×