Professional Documents
Culture Documents
5 RelationaAlgebra
5 RelationaAlgebra
Đại số quan hệ
Chương 5
Machine Translated by Google
Nội dung
2
Machine Translated by Google
Nội dung
3
Machine Translated by Google
4
Machine Translated by Google
5
Machine Translated by Google
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
Ví dụ:
Chọn bộ EMPLOYEE có mã số phòng ban là
4:
9
Machine Translated by Google
<đ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
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
12
Machine Translated by Google
FNAME,SALARY(EMPLOYEE)
13
Machine Translated by Google
<danh sách thuộc tính> là danh sách các thuộc tính mong muốn từ
quan hệ R
14
Machine Translated by Google
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.
15
Machine Translated by Google
Ví dụ về vận hành DỰ ÁN
16
Machine Translated by Google
17
Machine Translated by Google
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
18
Machine Translated by Google
Chúng ta có thể viết một biểu thức đại số quan hệ dưới dạng
sau:
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:
19
Machine Translated by Google
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
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 )
21
Machine Translated by Google
Nội dung
22
Machine Translated by Google
23
Machine Translated by Google
24
Machine Translated by Google
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 –).
25
Machine Translated by Google
26
Machine Translated by Google
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
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ừ
29
Machine Translated by Google
(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ý
Hai toán hạng KHÔNG nhất thiết phải "tương thích kiểu".
30
Machine Translated by Google
Alicia J Vương
Jennifer S thợ rèn
Jennifer S Vương
31
Machine Translated by Google
32
Machine Translated by Google
Nội dung
33
Machine Translated by Google
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.
34
Machine Translated by Google
R <tham gia
điều kiện>S
35
Machine Translated by Google
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.
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.
Đ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
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
40
Machine Translated by Google
R.Ai=S.Bj
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à
41
Machine Translated by Google
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>
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
43
Machine Translated by Google
44
Machine Translated by Google
đượ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.
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
46
Machine Translated by Google
47
Machine Translated by Google
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
49
Machine Translated by Google
Ví dụ về
phép chia
50
Machine Translated by Google
51
Machine Translated by Google
52
Machine Translated by Google
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
55
Machine Translated by Google
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
57
Machine Translated by Google
58
Machine Translated by Google
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
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.
60
Machine Translated by Google
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
63
Machine Translated by Google
64
Machine Translated by Google
S
P Q
1 5
3 7
65
Machine Translated by Google
S
P Q
1 5
3 7
66
Machine Translated by Google
Nội dung
68
Machine Translated by Google
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
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
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
71
Machine Translated by Google
72
Machine Translated by Google
73
Machine Translated by Google
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ệ.
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
{uv | ( q) ( r) ( s) ( t) ( w) ( x) ( y) ( z)
75
Machine Translated by Google
Nội dung
76
Machine Translated by Google
77
Machine Translated by Google
78