You are on page 1of 78

Machine Translated by Google

Đại số quan hệ

Chương 5
Machine Translated by Google

Nội dung

1 Các phép toán quan hệ một ngôi

2 Phép toán Đại số Quan hệ từ Lý thuyết Tập hợp

3 Phép toán quan hệ nhị phân

4 Hoạt động quan hệ bổ sung

5 Giới thiệu tóm tắt về phép tính quan hệ

2
Machine Translated by Google

Nội dung

1 Các phép toán quan hệ một ngôi

2 Phép toán Đại số Quan hệ từ Lý thuyết Tập hợp

3 Phép toán quan hệ nhị phân

4 Hoạt động quan hệ bổ sung

5 Giới thiệu tóm tắt về phép tính quan hệ

3
Machine Translated by Google

Tổng quan về đại số quan hệ Đại

số quan hệ là tập hợp các phép toán cơ bản cho


mô hình quan hệ.
Những thao tác này cho phép người dùng chỉ định việc truy xuất cơ bản

yêu cầu (hoặc truy


vấn). Kết quả của một phép toán là một quan hệ
mới, có thể được hình thành từ một hoặc nhiều quan
hệ đầu vào.
Thuộc tính này làm cho đại số “đóng” (tất cả các đối tượng trong
đại số quan hệ là quan hệ).

Một chuỗi các phép toán đại số quan hệ tạo thành


một biểu thức đại số quan hệ.

4
Machine Translated by Google

Tổng quan về đại số quan hệ Các phép toán

quan hệ một ngôi: SELECT (ký


hiệu: (sigma)) DỰ ÁN (ký
hiệu: (pi)) RENAME (ký
hiệu: (rho))
Các phép toán đại số quan hệ từ lý thuyết tập hợp:
UNION ( ), GIAO DỊCH ( ), KHÁC BIỆT (hoặc TRỪ, –) SẢN PHẨM
CARTES ( x ) Các phép toán
quan hệ nhị phân:
JOIN (tồn tại một số biến thể của JOIN)
DIVISION

Các phép toán quan hệ bổ sung:


OUTER JOINS, OUTER UNION CÁC
CHỨC NĂNG TỔNG HỢP (SUM, COUNT, AVG, MIN, MAX)

5
Machine Translated by Google

Lược đồ cơ sở dữ liệu CÔNG TY

6
Machine Translated by Google

Các kết quả truy vấn sau đây đề cập đến trạng thái cơ sở dữ liệu này

7
Machine Translated by Google

Các kết quả truy vấn sau đây đề cập đến trạng thái cơ sở dữ liệu này

số 8
Machine Translated by Google

Các phép toán quan hệ một ngôi: CHỌN


Thao tác SELECT (ký hiệu là (sigma)) được sử dụng
để chọn một tập hợp con của các bộ dữ liệu từ một mối quan hệ dựa trên
một điều kiện lựa chọn.

Ví dụ:
Chọn bộ EMPLOYEE có mã số phòng ban là
4:

DNO = 4 (NGƯỜI LAO ĐỘNG)

Chọn các bộ EMPLOYEE có mức lương lớn hơn


30.000 USD:

(NGƯỜI LAO ĐỘNG)


LƯƠNG > 30.000

9
Machine Translated by Google

Các phép toán quan hệ một ngôi: CHỌN

Nói chung, thao tác chọn được ký hiệu là


<điều kiện lựa chọn>(R) trong đó:

(sigma) được dùng để biểu thị toán tử chọn .

<điều kiện lựa chọn> là biểu thức Boolean được chỉ định
thuộc tính của quan hệ R.

Các bộ làm cho điều kiện đúng sẽ xuất hiện trong kết quả của
phép toán và các bộ làm cho điều kiện sai sẽ bị loại khỏi
kết quả của phép toán.

10
Machine Translated by Google

Các phép toán quan hệ một ngôi: SELECT SELECT Thuộc tính

phép toán Quan hệ S = <điều kiện lựa


chọn>(R) có cùng lược đồ
(cùng thuộc tính) với
R. SELECT có tính giao hoán:

<cond1>( < cond2>(R)) = <cond2>( <cond1>(R))

Do tính chất giao hoán, một tầng (chuỗi) của


Các thao tác SELECT có thể được áp dụng theo bất kỳ thứ

tự nào: <cond1>( <cond2>( <cond3>(R))

= <cond2>( <cond3>( <cond1>(R)))


= <cond1>VÀ<cond2>VÀ<cond3>(R)

Số lượng bộ dữ liệu trong kết quả của SELECT nhỏ hơn (hoặc bằng)
số lượng bộ dữ liệu trong quan hệ đầu vào R.

11
Machine Translated by Google

Ví dụ về thao tác CHỌN

12
Machine Translated by Google

Các phép toán quan hệ một ngôi: DỰ ÁN DỰ ÁN

Phép toán được ký hiệu là (pi). Hoạt


động này giữ các cột (thuộc tính) nhất định khỏi mối
quan hệ và loại bỏ các cột khác.
PROJECT tạo phân vùng theo chiều dọc: danh sách các
cột (thuộc tính) được chỉ định được giữ trong mỗi
bộ, các thuộc tính khác trong mỗi bộ sẽ bị loại bỏ.

Ví dụ: Để liệt kê họ, tên và mức lương của từng nhân


viên, ta sử dụng: LNAME,

FNAME,SALARY(EMPLOYEE)

13
Machine Translated by Google

Các phép toán quan hệ một ngôi: DỰ ÁN Dạng

tổng quát của phép toán dự án là:


<danh sách thuộc tính>(R)

<danh sách thuộc tính> là danh sách các thuộc tính mong muốn từ
quan hệ R

Thao tác dự án sẽ loại bỏ bất kỳ bộ dữ liệu trùng


lặp nào vì kết quả của thao tác dự án không cho phép
các phần tử trùng lặp.

14
Machine Translated by Google

Các phép toán quan hệ đơn nhất: DỰ ÁN


Thuộc tính vận hành DỰ ÁN:
Số lượng bộ trong kết quả phép chiếu <list>(R)
luôn nhỏ hơn hoặc bằng số lượng bộ dữ liệu trong R.

Nếu danh sách các thuộc tính bao gồm khóa R thì số
số bộ dữ liệu trong kết quả của DỰ ÁN bằng số lượng
các bộ dữ liệu trong R.

DỰ ÁN không có tính giao hoán.

<danh sách1> ( <danh sách2> (R) ) = <danh sách1> (R) ?

miễn là <list2> chứa các thuộc tính trong <list1>

15
Machine Translated by Google

Ví dụ về vận hành DỰ ÁN

16
Machine Translated by Google

Ví dụ về việc áp dụng các thao tác CHỌN và


DỰ ÁN

17
Machine Translated by Google

Biểu thức đại số quan hệ

Chúng ta có thể muốn áp dụng một số đại số quan hệ


hoạt động nối tiếp nhau. Hoặc chúng

ta có thể viết các phép toán dưới dạng một biểu thức đại số quan hệ bằng

cách lồng các phép toán, hoặc Chúng ta có thể áp dụng một

phép toán tại một thời điểm và tạo


quan hệ kết quả trung gian.

Trong trường hợp sau, chúng ta phải đặt tên


cho các quan hệ chứa kết quả trung gian.

18
Machine Translated by Google

Biểu thức đơn so với chuỗi các phép


toán quan hệ

Truy xuất họ, tên, mức lương của tất cả


những nhân viên làm việc ở phòng số 5, chúng ta phải
áp dụng một lựa chọn và một hoạt động dự án .

Chúng ta có thể viết một biểu thức đại số quan hệ dưới dạng
sau:

TÊN, TÊN, LƯƠNG( DNO=5(NHÂN VIÊN))

HOẶC Chúng ta có thể biểu diễn rõ ràng chuỗi các thao tác, đưa ra
tên cho từng mối quan hệ trung gian:

DEP5_EMPS DNO=5(NHÂN VIÊN)


KẾT QUẢ
FNAME, HỌ, LƯƠNG (DEP5_EMPS)

19
Machine Translated by Google

Các phép toán quan hệ đơn nhất: RENAME

Toán tử RENAME được ký hiệu là (rho).

Trong một số trường hợp, chúng ta có thể muốn đổi tên các thuộc tính của
một quan hệ hoặc tên quan hệ hoặc cả hai.

Hữu ích khi một truy vấn yêu cầu nhiều thao tác.

Cần thiết trong một số trường hợp (xem thao tác JOIN sau).

20
Machine Translated by Google

Các phép toán quan hệ đơn nhất: RENAME

Thao tác RENAME tổng quát có thể được biểu diễn bằng
bất kỳ dạng nào sau đây: Bn )

hai: S (R) thay đổi cả


(B1, B2, …, tên quan hệ

thành S, và tên cột (thuộc tính) thành B1, B1,…..Bn


S(R) thay

đổi: tên quan hệ chỉ thành

đổi: S Bn )(R) thay


(B1, B2, …, tên cột (thuộc tính) chỉ thành B1, B1, …..Bn

21
Machine Translated by Google

Nội dung

1 Các phép toán quan hệ một ngôi

2 Phép toán Đại số Quan hệ từ Lý thuyết Tập hợp

3 Phép toán quan hệ nhị phân

4 Hoạt động quan hệ bổ sung

5 Giới thiệu tóm tắt về phép tính quan hệ

22
Machine Translated by Google

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

Lý thuyết tập hợp: UNION

Phép toán nhị phân, ký hiệu là


. Kết quả của R S, là một quan hệ bao gồm tất
cả các bộ thuộc R hoặc thuộc S hoặc thuộc cả R và
S. Các bộ trùng lặp được loại
bỏ. Hai quan hệ toán hạng R và S phải “tương thích
kiểu” (hoặc tương thích UNION): R
và S phải có cùng số thuộc tính. Mỗi
cặp thuộc tính tương ứng phải tương thích về kiểu
(có cùng miền hoặc miền tương thích).

23
Machine Translated by Google

Ví dụ về kết quả của hoạt động UNION

24
Machine Translated by Google

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


Lý thuyết tập hợp

Cần có tính tương thích về kiểu của các toán hạng đối
với phép toán tập nhị phân UNION , (cũng dành cho
INTERSECTION , SET DIFFERENCE –).

Quan hệ kết quả cho R1 R2 (cũng cho R1 R2, hoặc R1–


R2) có cùng tên thuộc tính với quan hệ toán hạng đầu
tiên R1 (theo quy ước).

25
Machine Translated by Google

Các phép toán đại số quan hệ từ lý thuyết tập hợp:


NGÃ TƯ

GIAO TẮC được ký hiệu là .

Kết quả của phép toán R S là một quan hệ


bao gồm tất cả các bộ thuộc cả R và S. Tên
thuộc tính trong kết quả sẽ giống với tên
tên thuộc tính trong R.

Hai quan hệ toán hạng R và S phải “tương thích kiểu”.

26
Machine Translated by Google

Các phép toán đại số quan hệ từ lý thuyết tập hợp:


ĐẶT SỰ KHÁC BIỆT

BỘ KHÁC BIỆT (còn gọi là TRỪ hoặc NGOẠI TRỪ) được ký


hiệu là –.

Kết quả của R – S, là một quan hệ bao gồm tất cả các bộ


thuộc R nhưng không thuộc S.
Tên thuộc tính trong kết quả sẽ giống với tên

tên thuộc tính trong R.

Hai quan hệ toán hạng R và S phải “tương thích kiểu”.

27
Machine Translated by Google

Ví dụ minh
họa kết quả của

LIÊN HIỆP,

GIAO NHAU,
SỰ KHÁC BIỆT

28
Machine Translated by Google

Một số tính chất của UNION, INTERSECT và


SỰ KHÁC BIỆT

Chú ý rằng cả hợp và giao đều là các phép toán giao hoán ;
đó là: R S =
S R, và R S = S R

Cả hợp và giao đều có thể được coi là các phép toán n-ary
áp dụng cho số quan hệ bất kỳ vì cả hai đều là phép toán
kết hợp : R (S T) = (R
S) T (R S) T
= R (S T) Phép trừ

không có tính giao hoán; nghĩa là tổng quát R – S S – R

29
Machine Translated by Google

Các phép toán đại số quan hệ từ lý thuyết tập hợp:


SẢN PHẨM CARTES

Phép toán CARTESIAN (hoặc CROSS) Ký hiệu là

R(A1, A2, ..., An) x S(B1, B2, ..., Bm) Kết

quả là mối quan hệ với thuộc tính bậc n + m : Q

(A1, A2, ..., An, B1, B2, ..., Bm), theo thứ

tự đó. Quan hệ kết quả Q có một bộ cho mỗi tổ hợp các bộ—
một từ R và một từ S. Nếu R có nR bộ dữ liệu (ký

hiệu là |R| = nR ), và S có nS bộ dữ liệu, thì R x S sẽ có nR


*
bộ dữ liệu nS .

Hai toán hạng KHÔNG nhất thiết phải "tương thích kiểu".

30
Machine Translated by Google

FULLNAME_LIST FIRSTNAME_LIST x LASTNAME_LIST

FIRSTNAME_LIST LASTNAME_LIST ĐẦY ĐỦ_LIST


tên nhỏ tên tên Tên nhỏ

John B thợ rèn John B thợ rèn

Franklin T Vương John B Vương


Alicia J Franklin T thợ rèn

Jennifer S Franklin T Vương


Alicia J thợ rèn

Alicia J Vương
Jennifer S thợ rèn

Jennifer S Vương

31
Machine Translated by Google

Ví dụ về hoạt động SẢN PHẨM CARTESIAN

32
Machine Translated by Google

Nội dung

1 Các phép toán quan hệ một ngôi

2 Phép toán Đại số Quan hệ từ Lý thuyết Tập hợp

3 Phép toán quan hệ nhị phân

4 Hoạt động quan hệ bổ sung

5 Giới thiệu tóm tắt về phép tính quan hệ

33
Machine Translated by Google

Các phép toán quan hệ nhị phân: JOIN Thao tác

JOIN (ký hiệu là ) Dãy hàng CARTESIAN


PRO theo sau là SELECT được sử dụng khá phổ biến để xác
định và chọn các bộ dữ liệu liên quan từ hai quan hệ.

Một thao tác đặc biệt, được gọi là THAM GIA , kết hợp
chuỗi này thành một thao tác duy nhất.

Thao tác này rất quan trọng đối với bất kỳ cơ sở dữ


liệu quan hệ nào có nhiều hơn một quan hệ, vì nó cho
phép chúng ta kết hợp các bộ dữ liệu liên quan từ nhiều
quan hệ khác nhau.

34
Machine Translated by Google

Các phép toán quan hệ nhị phân: JOIN Phép

toán JOIN (ký hiệu là ) 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 <tham gia
điều kiện>S

trong đó R và S có thể là bất kỳ quan hệ nào phát


sinh từ các biểu thức đại số quan hệ tổng quát.

35
Machine Translated by Google

Các phép toán quan hệ nhị phân: THAM GIA

Ví dụ: Giả sử chúng ta muốn lấy tên người quản lý của từng bộ phận.

Để có được tên của người quản lý, chúng

ta cần kết hợp từng bộ DEPARTMENT với bộ EMPLOYEE có giá trị SSN khớp
với giá trị MGRSSN trong bộ bộ phận phòng ban.

DEPT_MGR DEPARTMENT MGRSSN=SSNEMPLOYEE


MGRSSN = SSN là điều kiện nối.
Kết hợp từng bản ghi của bộ phận với nhân viên
ai quản lý bộ phận đó.

Điều kiện nối cũng có thể được xác định như sau:
BỘ PHẬN.MGRSSN= NHÂN VIÊN.SSN

36
Machine Translated by Google

Lược đồ cơ sở dữ liệu CÔNG TY

37
Machine Translated by Google

Các kết quả truy vấn sau đây đề cập đến trạng thái cơ sở dữ liệu này

38
Machine Translated by Google

Các kết quả truy vấn sau đây đề cập đến trạng thái cơ sở dữ liệu này

39
Machine Translated by Google

Ví dụ về áp dụng thao tác JOIN

DEPT_MGR BỘ PHẬN NGƯỜI LAO ĐỘNG


MGRSSN=SSN

40
Machine Translated by Google

Một số tính chất của JOIN

Xét phép toán JOIN sau: R(A1,


A2, . . ., An) S(B1, B2, . . ., Bm)

R.Ai=S.Bj

Kết quả là quan hệ Q với các thuộc tính bậc n + m :

Q(A1, A2, . . ., An, B1, B2, . . ., Bm), theo thứ tự đó

Trạng thái quan hệ kết quả có một bộ cho mỗi tổ hợp các bộ - r từ R và
s từ S, nhưng chỉ khi chúng thỏa mãn điều kiện nối r[Ai]=s[Bj]. Do
đó, nếu R có nR bộ dữ liệu và

S có nS bộ dữ liệu thì nối nS bộ dữ liệu. Chỉ các bộ có liên quan (dựa


*
kết quả thường sẽ có ít hơn nR trên điều

kiện nối) mới xuất hiện trong


kết quả.

41
Machine Translated by Google

Một số thuộc tính của THAM GIA

Trường hợp tổng quát của thao tác THAM GIA được gọi là Theta-

tham gia: R S
<theta>

Điều kiện nối được gọi là theta.


>, < , =, …

Theta có thể là bất kỳ biểu thức boolean tổng quát nào trên
thuộc tính của R và S; Ví dụ:
R.Ai < S.Bj VÀ (R.Ak = S.Bl HOẶC R.Ap < S.Bq)

42
Machine Translated by Google

Ví dụ về thao tác THAM GIA

43
Machine Translated by Google

Các phép toán quan hệ nhị phân: EQUIJOIN

Một phép nối, trong đó toán tử so sánh duy nhất được sử ,


dụng là = được gọi là
EQUIJOIN. Trong kết quả của EQUIJOIN, chúng ta luôn
có một hoặc nhiều cặp thuộc tính (tên không cần giống
nhau) có giá trị giống nhau trong mỗi bộ.

44
Machine Translated by Google

Các phép toán quan hệ nhị phân:


Hoạt động THAM GIA TỰ NHIÊN

Thao tác THAM GIA TỰ NHIÊN


Một biến thể khác của JOIN gọi là NATURAL JOIN, ký hiệu là * , đã từng là

được tạo để loại bỏ thuộc tính thứ hai (thừa) trong điều kiện EQUIJOIN. Định
nghĩa chuẩn của phép

nối tự nhiên yêu cầu hai thuộc tính nối hoặc mỗi cặp thuộc tính nối tương ứng phải
có cùng tên trong cả hai quan hệ.

Nếu không đúng như vậy, thao tác đổi tên sẽ được áp dụng trước tiên.

Ví dụ: Q R(A,B,C,D) * S(C,D,E) Điều

kiện nối ngầm bao gồm từng cặp thuộc tính có cùng tên, “AND” được ghép với nhau: RC
= SC AND RD = SD

Kết quả chỉ giữ lại một thuộc tính của mỗi cặp như vậy:

Q(A,B,C,D,E)

45
Machine Translated by Google

Ví dụ về hoạt động THAM GIA TỰ NHIÊN

46
Machine Translated by Google

Ví dụ về hoạt động THAM GIA TỰ NHIÊN

47
Machine Translated by Google

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


Tập các phép toán { , ,
, X} được,gọi là một
- tập hợp đầy đủ vì bất kỳ đại số quan hệ nào khác
biểu thức có thể được thể hiện bằng sự kết hợp của
năm hoạt động này.

Ví dụ:
R S = (R S ) – ((R - S) (S - R))
R <tham gia
điều kiện>S = <điều kiện nối> (RXS)

48
Machine Translated by Google

Các phép toán quan hệ nhị phân: DIVISION

Phép chia Phép chia


được áp dụng cho hai quan hệ T(Y) R(Z) S(X),
trong đó Y = Z - X (Y là tập các thuộc tính của R mà không
phải là thuộc tính của S). Kết quả của
Phép chia là một quan hệ T(Y) bao gồm 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, tức là với a tuple t xuất hiện
trong kết quả T của phép chia thì các giá trị trong t
phải xuất hiện trong R kết hợp với mọi tuple trong S.

49
Machine Translated by Google

Ví dụ về
phép chia

SSNS(ESSN) SSN_PNOS `SMITH_PNOS

50
Machine Translated by Google

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

51
Machine Translated by Google

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

52
Machine Translated by Google

Ký hiệu cho cây truy vấn


Cây truy vấn

Biểu diễn các quan hệ đầu vào của truy vấn dưới dạng các nút lá của
cái cây.

Biểu diễn các phép toán đại số quan hệ dưới dạng nội bộ
điểm giao.

53
Machine Translated by Google

54
Machine Translated by Google

Nội dung

1 Các phép toán quan hệ một ngôi

2 Phép toán Đại số Quan hệ từ Lý thuyết Tập hợp

3 Phép toán quan hệ nhị phân

4 Hoạt động quan hệ bổ sung

5 Giới thiệu tóm tắt về phép tính quan hệ

55
Machine Translated by Google

Các hoạt động quan hệ bổ sung

Các hàm tổng hợp và phân nhóm Một


loại yêu cầu không thể biểu diễn được trong đại số quan hệ
cơ bản là chỉ định các hàm tổng hợp toán học trên các tập
hợp các giá trị từ cơ sở dữ liệu.

Ví dụ về các hàm như vậy bao gồm truy xuất mức lương
trung bình hoặc tổng của tất cả nhân viên hoặc tổng số bộ
giá trị của nhân
viên. Các hàm phổ biến được áp dụng cho tập hợp các giá
trị số bao gồm SUM, AVERAGE, MAXIMUM và MINIMUM. Hàm COUNT
được sử dụng để đếm các bộ hoặc giá trị.

56
Machine Translated by Google

Các hoạt động quan hệ bổ sung


Sử dụng toán tử hàm ℱ
Giá Lương (Nhân viên) lấy mức lương tối đa
trị ℱMAX từ quan hệ Nhân viên
ℱMIN Giá (Nhân viên) lấy Mức lương tối thiểu
trị tiền lương từ quan hệ Nhân viên

Lương (Nhân viên) lấy tổng Lương


ℱSUM từ quan hệ Nhân viên
DNO ℱCOUNTSSN, Mức lương TRUNG BÌNH (Nhân viên) nhóm nhân viên
theo DNO (số phòng ban) và tính số lượng
nhân viên và mức lương trung bình của mỗi bộ phận.

Lưu ý: count chỉ đếm số hàng, không có


loại bỏ trùng lặp.

57
Machine Translated by Google

Ví dụ về việc áp dụng các hàm tổng hợp và


nhóm

58
Machine Translated by Google

Các phép toán quan hệ bổ sung Các phép toán đóng

đệ quy Một loại phép toán khác nói


chung không thể được chỉ định trong đại số quan hệ gốc cơ bản
là phép đóng đệ quy. Thao tác này được áp dụng cho mối quan
hệ đệ quy. Một ví dụ về phép toán đệ quy là truy xuất tất
cả

GIÁM SÁT CỦA NHÂN VIÊN ở mọi cấp độ.

Mặc dù có thể truy xuất các nhân viên ở mỗi cấp và sau đó
lấy liên minh của họ, nhưng nói chung, chúng ta không thể chỉ
định một truy vấn chẳng hạn như “truy xuất những người được
giám sát của 'James Borg' ở tất cả các cấp” mà không
sử dụng cơ chế lặp. Tiêu chuẩn SQL3 bao gồm cú pháp đóng đệ quy.

59
Machine Translated by Google

Các hoạt động quan hệ bổ sung Hoạt

động OUTER JOIN Trong


NATURAL JOIN và EQUIJOIN, các bộ dữ liệu không có
bộ dữ liệu khớp (hoặc có liên quan) sẽ bị loại
khỏi kết quả nối.
Các bộ có giá trị null trong thuộc tính nối cũng bị loại
bỏ. Điều này dẫn đến mất thông tin.

Một tập hợp các phép toán, gọi là phép nối OUTER, có thể được sử
dụng khi chúng ta muốn giữ tất cả các bộ trong R, hoặc tất cả các bộ

trong S, hoặc tất cả các bộ trong cả hai quan hệ trong kết quả của

phép nối, bất kể chúng có hay không các bộ dữ liệu phù hợp trong mối
quan hệ khác.

Hoạt động ngoài Liên minh: bài tập về nhà!!

60
Machine Translated by Google

Các hoạt động quan hệ bổ sung


Thao tác nối ngoài bên trái giữ mọi bộ dữ liệu ở trong
quan hệ đầu tiên hoặc trái R trong R S; nếu không khớp
bộ được tìm thấy trong S thì các thuộc tính của S trong
kết quả nối được điền hoặc “đệm” với các giá trị null.

Thao tác tương tự, nối ngoài bên phải, giữ mọi
tuple trong quan hệ thứ hai hoặc bên phải S trong kết quả
của RS; ; nếu không tìm thấy bộ dữ liệu phù hợp trong R thì
các thuộc tính của R trong kết quả nối được điền hoặc
“đệm” với các giá trị null.

Thao tác thứ ba, nối ngoài đầy đủ, được biểu thị
bằng cách giữ tất cả các bộ dữ liệu ở cả quan hệ bên
trái và bên phải khi không tìm thấy bộ dữ liệu nào
phù hợp, đệm chúng bằng các giá trị null nếu cần.
61
Machine Translated by Google

Các kết quả truy vấn sau đây đề cập đến trạng thái cơ sở dữ liệu này

62
Machine Translated by Google

Các hoạt động quan hệ bổ sung

Ví dụ: Liệt kê tất cả tên nhân viên và tên các bộ phận


mà họ quản lý nếu họ quản lý một bộ phận (nếu họ không
quản lý một bộ phận, chúng ta có thể chỉ ra nó bằng giá
trị NULL)

63
Machine Translated by Google

Các hoạt động quan hệ bổ sung

64
Machine Translated by Google

Ví dụ về LEFT OUTER THAM GIA


R RSRA = SP
MỘT B C ABCPQ
1 2 3 1 2 3 1 5
4 5 6 1 2 7 1 5
1 2 7 4 5 6 null null
số 8 4 5 số 8 4 5 null null

S
P Q
1 5
3 7
65
Machine Translated by Google

Ví dụ về RIGHT OUTER THAM GIA


R RSRA = SP
MỘT B C ABCPQ
1 2 3 1 2 3 1 5
4 5 6 1 2 7 1 5
1 2 7 vô giá trị vô giá trị 3 7
số 8 4 5

S
P Q
1 5
3 7
66
Machine Translated by Google

Ví dụ về THAM GIA FULL OUTER


R RSRA = SP
MỘT B C ABCPQ
1 2 3 1 2 3 1 5
4 5 6 1 2 7 1 5
1 2 7 4 5 6 null null
số 8 4 5 số 8 4 5 null null

S vô giá trị vô giá trị 3 7


P Q
1 5
3 7
67
Machine Translated by Google

Nội dung

1 Các phép toán quan hệ một ngôi

2 Phép toán Đại số Quan hệ từ Lý thuyết Tập hợp

3 Phép toán quan hệ nhị phân

4 Hoạt động quan hệ bổ sung

5 Giới thiệu tóm tắt về phép tính quan hệ

68
Machine Translated by Google

Giới thiệu tóm tắt về phép tính quan hệ

Một biểu thức phép tính quan hệ tạo ra một mối quan hệ mới,
được xác định theo các biến nằm trong các hàng của các quan
hệ cơ sở dữ liệu được lưu trữ (trong phép tính bộ) hoặc
trên các cột của các quan hệ được lưu trữ (trong phép tính
miền). Trong một biểu thức tính toán, không có thứ tự các
phép tính nào để xác định cách truy xuất kết quả truy vấn—
một biểu thức tính toán chỉ xác định thông tin mà kết quả
sẽ chứa. Đây là đặc điểm phân biệt chính giữa đại số quan
hệ và phép tính quan hệ. Phép tính quan hệ được
coi là một ngôn ngữ phi thủ tục . Điều này khác với đại số
quan hệ, trong đó chúng ta phải viết một chuỗi các phép
toán để chỉ định một yêu cầu truy xuất; do đó đại số quan
hệ có thể được coi là một cách thủ tục để nêu một truy vấn.

69
Machine Translated by Google

Giới thiệu tóm tắt về phép tính quan hệ

Phép tính quan hệ bộ dựa trên việc xác định một số biến bộ. Mỗi
biến bộ dữ liệu thường nằm trong phạm vi một quan hệ cơ sở dữ
liệu cụ thể, nghĩa là biến đó có thể lấy giá trị của bất kỳ bộ dữ
liệu riêng lẻ nào từ quan hệ đó.
Một truy vấn tính toán quan hệ bộ đơn giản có dạng {t | COND(t)}
trong đó t là biến bộ và COND (t) là biểu thức điều kiện liên
quan đến t. Ví dụ: Để tìm họ và
tên của tất cả nhân viên có mức lương trên 50.000 USD, chúng ta
có thể viết biểu thức tính toán bộ sau: {t.FNAME, t.LNAME |
NHÂN
VIÊN(t) VÀ t.LƯƠNG>50000}

Điều kiện EMPLOYEE(t) chỉ định rằng quan hệ phạm vi của biến
bộ t là EMPLOYEE. Họ và tên ( FNAME, LNAME) của mỗi bộ NHÂN
VIÊN thỏa mãn điều kiện t.SALARY>50000 (
LƯƠNG >50000) sẽ được truy xuất.

70
Machine Translated by Google

Giới thiệu tóm tắt về phép tính quan hệ

Hai ký hiệu đặc biệt gọi là lượng từ có thể xuất hiện trong công

thức; đây là bộ định lượng phổ quát ( ) và bộ định lượng hiện sinh

( ).

Một cách không chính thức, một biến bộ t bị ràng buộc nếu nó được

định lượng, nghĩa là nó xuất hiện trong mệnh đề ( t) hoặc ( t);


nếu không, nó là miễn phí.

71
Machine Translated by Google

Giới thiệu tóm tắt về phép tính quan hệ

Ví dụ 1: lấy tên và địa chỉ của tất cả nhân viên


làm việc cho bộ phận “Nghiên cứu”. {t.FNAME,
t.LNAME, t.ADDRESS | NHÂN VIÊN(t) và ( d)
(DEPARTMENT(d) và d.DNAME='Nghiên cứu' và
d.DNUMBER=t.DNO) }

72
Machine Translated by Google

Giới thiệu tóm tắt về phép tính quan hệ

Ví dụ 2: tìm tên các nhân viên làm việc trong tất cả


các dự án do phòng số 5 quản lý. {e.LNAME, e.FNAME
| NHÂN VIÊN(e) và (( x) (not(PROJECT(x)) hoặc
not(x.DNUM=5)
HOẶC (( w)(WORKS_ON(w) và w.ESSN=e.SSN và x.PNUMBER=w.PNO))))}

Chi tiết: [1] Chương 6

73
Machine Translated by Google

Giới thiệu tóm tắt về phép tính quan hệ

Một biến thể khác của phép tính quan hệ được gọi là miền
phép tính quan hệ, hay đơn giản là phép tính miền tương đương với
phép tính bộ dữ liệu và đại số quan hệ.

QBE (Truy vấn theo ví dụ): xem Phụ lục D

Phép tính miền khác với phép tính bộ ở kiểu


các biến được sử dụng trong công thức: thay vì có phạm vi biến
trên các bộ dữ liệu, các biến nằm trong phạm vi các giá trị đơn lẻ từ các miền
của các thuộc tính. Để hình thành mối quan hệ bậc n cho kết quả truy vấn, chúng ta
phải có n biến miền này - một biến cho mỗi thuộc tính.

Biểu thức của phép tính miền có dạng

{x1, x2, . . ., xn | COND(x1, x2, . . ., xn, xn+1, xn+2, . . ., xn+m)},


Ở đâu:

x1, x2, . . ., xn, xn+1, . ., xn+m là các biến miền nằm trong phạm vi
xn+2, . miền (của thuộc tính)
COND là điều kiện hoặc công thức của phép tính quan hệ miền.

74
Machine Translated by Google

Giới thiệu tóm tắt về phép tính quan hệ

Ví dụ: Lấy ngày sinh và địa chỉ của nhân viên có


tên 'John B. Smith'.

{uv | ( q) ( r) ( s) ( t) ( w) ( x) ( y) ( z)

(NHÂN VIÊN(qrstuvwxyz) và q='John' và r='B' và s='Smith')}

75
Machine Translated by Google

Nội dung

1 Các phép toán quan hệ một ngôi

2 Phép toán Đại số Quan hệ từ Lý thuyết Tập hợp

3 Phép toán quan hệ nhị phân

4 Hoạt động quan hệ bổ sung

5 Giới thiệu tóm tắt về phép tính quan hệ

76
Machine Translated by Google

77
Machine Translated by Google

78

You might also like