Chương 44 Chương

ĐĐạại si sốố quan h

quan hệệ

Nội dung chi tiết

(cid:131) Giới thiệu (cid:131) Đại số quan hệ (cid:131) Phép toán tập hợp (cid:131) Phép chọn (cid:131) Phép chiếu (cid:131) Phép tích Cartesian (cid:131) Phép kết (cid:131) Phép chia (cid:131) Các phép toán khác (cid:131) Các thao tác cập nhật trên quan hệ

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

2

1

Giới thiệu

(cid:131) Xét một số xử lý trên quan hệ NHANVIEN

- Thêm mới một nhân viên - Chuyển nhân viên có tên là “Tùng” sang phòng số 1 - Cho biết họ tên và ngày sinh các nhân viên có lương

trên 20000

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

3

TENNV HONV NGSINH DCHI PHAI LUONG PHONG 638 NVC Q5 Nam 40000 Tung Tung Nguyen Nguyen 12/08/1955 12/08/1955 1 5 332 NTH Q1 25000 Nu Hang Hang Bui Bui 07/19/1968 07/19/1968 4 291 HVH QPN 43000 Nu 4 Nhu Nhu Le Le 06/20/1951 06/20/1951 Ba Ria VT 38000 Nam 5 Hung Hung Nguyen Nguyen 09/15/1962 09/15/1962 450 TV HN 55000 Nam 1 Quang Quang Pham Pham 11/10/1937 11/10/1937

Giới thiệu (tt)

(cid:131) Có 2 loại xử lý

- Làm thay đổi dữ liệu (cập nhật)

(cid:121) Thêm mới, xóa và sửa

- Không làm thay đổi dữ liệu (rút trích)

(cid:121) Truy vấn (query)

(cid:131) Thực hiện các xử lý

- Đại số quan hệ (Relational Algebra)

(cid:121) Biểu diễn câu truy vấn dưới dạng biểu thức - Phép tính quan hệ (Relational Calculus)

(cid:121) Biểu diễn kết quả

- SQL (Structured Query Language)

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

4

2

Nhắc lại

(cid:131) Đại số

- Toán tử (operator) - Toán hạng (operand)

(cid:131) Trong số học

- Toán tử: +, -, *, / - Toán hạng - biến (variables): x, y, z - Hằng (constant) - Biểu thức

(cid:121) (cid:121)

(x+7) / (y-3) (x+y)*z and/or (x+7) / (y-3)

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

5

Đại số quan hệ

(cid:131) Biến là các quan hệ

- Tập hợp (set)

(cid:131) Toán tử là các phép toán (operations)

- Trên tập hợp

(cid:121) Hội ∪ (union) (cid:121) Giao ∩ (intersec) (cid:121) Trừ − (difference)

- Rút trích 1 phần của quan hệ

(cid:121) Chọn σ (selection) (cid:121) Chiếu π (projection) - Kết hợp các quan hệ

(cid:121) Tích Cartesian × (Cartesian product) (cid:121) Kết (join)

- Đổi tên ρ

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

6

3

Đại số quan hệ (tt)

(cid:131) Hằng số là thể hiện của quan hệ (cid:131) Biểu thức

- Được gọi là câu truy vấn - Là chuỗi các phép toán đại số quan hệ - Kết quả trả về là một thể hiện của quan hệ

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

7

Nội dung chi tiết

(cid:131) Giới thiệu (cid:131) Đại số quan hệ (cid:131) Phép toán tập hợp (cid:131) Phép chọn (cid:131) Phép chiếu (cid:131) Phép tích Cartesian (cid:131) Phép kết (cid:131) Phép chia (cid:131) Các phép toán khác (cid:131) Các thao tác cập nhật trên quan hệ

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

8

4

Phép toán tập hợp

(cid:131) Quan hệ là tập hợp các bộ

- Phép hội R ∪ S - Phép giao R ∩ S - Phép trừ R − S

(cid:131) Tính khả hợp (Union Compatibility)

- Hai lược đồ quan hệ R(A1, A2, …, An) và S(B1, B2, …, Bn)

là khả hợp nếu (cid:121) Cùng bậc n (cid:121) Và có DOM(Ai)=DOM(Bi) , 1≤ i ≤ n

(cid:131) Kết quả của ∪, ∩, và − là một quan hệ có cùng tên

thuộc tính với quan hệ đầu tiên (R)

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

9

Phép toán tập hợp (tt)

(cid:131) Ví dụ

NHANVIEN TENNV NGSINH PHAI THANNHAN TENTN NG_SINH PHAITN

Bậc n=3 DOM(TENNV) = DOM(TENTN) DOM(NGSINH) = DOM(NG_SINH) DOM(PHAI) = DOM(PHAITN)

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

10

5

Tung 12/08/1955 Nam Trinh 04/05/1986 Nu Hang 07/19/1968 Nu Khang 10/25/1983 Nam Nhu 06/20/1951 Nu Phuong 05/03/1958 Nu Hung 09/15/1962 Nam Minh 02/28/1942 Nam Chau 12/30/1988 Nu

Phép hội

(cid:131) Cho 2 quan hệ R và S khả hợp (cid:131) Phép hội của R và S

- Ký hiệu R ∪ S - Là một quan hệ gồm các bộ thuộc R hoặc thuộc S, hoặc

cả hai (các bộ trùng lắp sẽ bị bỏ)

R ∪ S = { t / t∈R ∨ t∈S }

(cid:131) Ví dụ

R + S = { t / t∈R ∨ t∈S }

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

11

A B R ∪ S R S A B A B 1 α 1 2 α α 2 α 2 3 α β 1 β 1 β 2 α 3 β

Phép giao

(cid:131) Cho 2 quan hệ R và S khả hợp (cid:131) Phép giao của R và S

- Ký hiệu R ∩ S - Là một quan hệ gồm các bộ thuộc R đồng thời thuộc S

R ∩ S = { t / t∈R ∧ t∈S }

(cid:131) Ví dụ

R * S = { t / t∈R ∧ t∈S }

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

12

6

R S A B A B A B R ∩ S 1 2 2 α α α 2 3 α β 1 β

Phép trừ

(cid:131) Cho 2 quan hệ R và S khả hợp (cid:131) Phép giao của R và S

- Ký hiệu R − S - Là một quan hệ gồm các bộ thuộc R và không thuộc S

R − S = { t / t∈R ∧ t∉S }

(cid:131) Ví dụ

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

13

R S A B A B A B R − S 1 2 1 α α α 2 3 1 α β β 1 β

Các tính chất

(cid:131) Giao hoán

R ∪ S = S ∪ R

R ∩ S = S ∩ R

(cid:131) Kết hợp

R ∪ (S ∪ T) = (R ∪ S) ∪ T

R ∩ (S ∩ T) = (R ∩ S) ∩ T

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

14

7

Nội dung chi tiết

(cid:131) Giới thiệu (cid:131) Đại số quan hệ (cid:131) Phép toán tập hợp (cid:131) Phép chọn (cid:131) Phép chiếu (cid:131) Phép tích Cartesian (cid:131) Phép kết (cid:131) Phép chia (cid:131) Các phép toán khác (cid:131) Các thao tác cập nhật trên quan hệ

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

15

Phép chọn

(cid:131) Được dùng để lấy ra các bộ của quan hệ R (cid:131) Các bộ được chọn phải thỏa mãn điều kiện chọn P (cid:131) Ký hiệu

σ P (R)

(cid:131) P là biểu thức gồm các mệnh đề có dạng - -

(cid:121) gồm < , > , ≤ , ≥ , ≠ , = (cid:121) Các mệnh đề được nối lại nhờ các phép ∧ , ∨ , ¬

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

16

8

Phép chọn (tt)

(cid:131) Kết quả trả về là một quan hệ

- Có cùng danh sách thuộc tính với R - Có số bộ luôn ít hơn hoặc bằng số bộ của R

(cid:131) Ví dụ

σ (A=B)∧(D>5) (R)

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

17

D R A B C 7 1 α α A B C D 7 5 α β 1 7 α α 3 12 β β 23 10 β β 10 23 β β

Phép chọn (tt)

(cid:131) Phép chọn có tính giao hoán

σ p1 (σ p2 (R)) = σ p2 (σ p1 (R)) = σ p1 ∧ p2 (R)

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

18

9

Ví dụ 1

(cid:131) Cho biết các nhân viên ở phòng số 4

- Quan hệ: NHANVIEN - Thuộc tính: PHG - Điều kiện: PHG=4

σ PHG=4 (NHANVIEN)

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

19

Ví dụ 2

(cid:131) Tìm các nhân viên có lương trên 25000 ở phòng 4 hoặc các nhân viên có lương trên 30000 ở phòng 5 - Quan hệ: NHANVIEN - Thuộc tính: LUONG, PHG - Điều kiện:

(cid:121) LUONG>25000 và PHG=4 hoặc (cid:121) LUONG>30000 và PHG=5

σ (LUONG>25000 ∧ PHG=4) ∨ (LUONG>30000 ∧ PHG=5) (NHANVIEN)

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

20

10

Nội dung chi tiết

(cid:131) Giới thiệu (cid:131) Đại số quan hệ (cid:131) Phép toán tập hợp (cid:131) Phép chọn (cid:131) Phép chiếu (cid:131) Phép tích Cartesian (cid:131) Phép kết (cid:131) Phép chia (cid:131) Các phép toán khác (cid:131) Các thao tác cập nhật trên quan hệ

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

21

Phép chiếu

(cid:131) Được dùng để lấy ra một vài cột của quan hệ R (cid:131) Ký hiệu

πA1, A2, …, Ak(R)

(cid:131) Kết quả trả về là một quan hệ

- Có k thuộc tính - Có số bộ luôn ít hơn hoặc bằng số bộ của R

(cid:131) Ví dụ

C R A B A C 10 1 1 α α 1 20 1 α α

πA,C (R)

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

22

11

1 30 1 β β 40 2 2 β β

Phép chiếu (tt)

(cid:131) Phép chiếu không có tính giao hoán

πX,Y (R) = πX (πY (R))

πA1, A2, …, An(πA1, A2, …, Am(R)) = πA1, A2, …, An (R) , với n ≤ m

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

23

Ví dụ 3

(cid:131) Cho biết họ tên và lương của các nhân viên

- Quan hệ: NHANVIEN - Thuộc tính: HONV, TENNV, LUONG

πHONV,TENNV,LUONG (NHANVIEN)

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

24

12

Phép chiếu tổng quát

(cid:131) Mở rộng phép chiếu bằng cách cho phép sử dụng

các phép toán số học trong danh sách thuộc tính

(cid:131) Ký hiệu πF1, F2, …, Fn (E) - E là biểu thức ĐSQH - F1, F2, …, Fn là các biểu thức số học liên quan đến

(cid:121) Hằng số (cid:121) Thuộc tính trong E

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

25

Phép chiếu tổng quát (tt)

(cid:131) Ví dụ

- Cho biết họ tên của các nhân viên và lương của họ sau

khi tăng 10%

πHONV, TENNV, LUONG*1.1 (NHANVIEN)

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

26

13

Chuỗi các phép toán

(cid:131) Kết hợp các phép toán đại số quan hệ

- Lồng các biểu thức lại với nhau

πA1, A2, …, Ak (σP (R))

σP (πA1, A2, …, Ak (R))

(cid:121) B1

(cid:121) B2

- Thực hiện từng phép toán một σP (R) πA1, A2, …, Ak (Quan hệ kết quả ở B1)

Cần đặt tên cho quan hệ

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

27

Phép gán

(cid:131) Được sử dụng để nhận lấy kết quả trả về của một

phép toán - Thường là kết quả trung gian trong chuỗi các phép toán

(cid:131) Ký hiệu ←

(cid:131) Ví dụ - B1

S ← σP (R)

- B2

KQ ← πA1, A2, …, Ak (S)

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

28

14

Phép đổi tên

(cid:131) Được dùng để đổi tên

- Quan hệ

Xét quan hệ R(B, C, D) ρS(R) : Đổi tên quan hệ R thành S

- Thuộc tính

ρX, C, D (R) : Đổi tên thuộc tính B thành X

Đổi tên quan hệ R thành S và thuộc tính B thành X

ρS(X,C,D)(R)

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

29

Ví dụ 7

(cid:131) Cho biết họ và tên nhân viên làm việc ở phòng số 4

- Quan hệ: NHANVIEN - Thuộc tính: HONV, TENNV - Điều kiện: PHG=4

(cid:131) C1:

πHONV, TENNV (σPHG=4 (NHANVIEN))

(cid:131) C2:

NV_P4 ← σPHG=4 (NHANVIEN) KQ ← πHONV, TENNV (NV_P4)

KQ(HO, TEN) ← πHONV, TENNV (NV_P4) ρKQ(HO, TEN) (πHONV, TENNV (NV_P4))

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

30

15

Nội dung chi tiết

(cid:131) Giới thiệu (cid:131) Đại số quan hệ (cid:131) Phép toán tập hợp (cid:131) Phép chọn (cid:131) Phép chiếu (cid:131) Phép tích Cartesian (cid:131) Phép kết (cid:131) Phép chia (cid:131) Các phép toán khác (cid:131) Các thao tác cập nhật trên quan hệ

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

31

Phép tích Cartesian

(cid:131) Được dùng để kết hợp các bộ của các quan hệ lại

với nhau

(cid:131) Ký hiệu

R × S

(cid:131) Kết quả trả về là một quan hệ Q

- Mỗi bộ của Q là tổ hợp giữa 1 bộ trong R và 1 bộ trong S - Nếu R có u bộ và S có v bộ thì Q sẽ có u × v bộ - Nếu R có n thuộc tính và Q có m thuộc tính thì Q sẽ có

n + m thuộc tính (R+ ∩ Q+ ≠ ∅ )

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

32

16

Phép tích Cartesian (tt)

(cid:131) Ví dụ

R × S

R A B B A X C D 1 α 2 β 1 10 + α α 1 10 + β α 1 20 - β α S S X B C C D D 1 10 - γ α 2 10 + β α 10 10 + + α α 10 + 2 β β 10 10 + + β β - 2 20 β β 20 20 - - β β - 2 10 γ β 10 10 - - γ γ

ρ(X,C,D) (S)

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

33

Phép tích Cartesian (tt)

(cid:131) Ví dụ

unambiguous

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

34

17

R A B D S.B C R.B A R × S 1 α + 10 1 α α 2 β 10 + 1 β α 20 - 1 β α 10 - 1 γ α D S B C + 10 2 α β 10 + α + 10 2 β β 10 + β 20 - 2 β β 20 - β 10 - 2 γ β 10 - γ

Phép tích Cartesian (tt)

(cid:131) Thông thường theo sau phép tích Cartesian là phép

chọn

R × S

σA=S.B (R × S)

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

35

D S.B C D S.B C A R.B R.B A + 10 10 + 1 1 α α α α 10 + 1 2 10 + β α β β 20 - 1 2 20 - β α β β 10 - 1 γ α + 10 2 α β + 10 2 β β 20 - 2 β β - 10 2 γ β

Ví dụ 8

(cid:131) Với mỗi phòng ban, cho biết thông tin của người

trưởng phòng - Quan hệ: PHONGBAN, NHANVIEN - Thuộc tính: TRPHG, MAPHG, TENNV, HONV, …

TENPHG MAPHG TRPHG NG_NHANCHUC

Nghien cuu 5 333445555 05/22/1988 … MANV TENNV HONV

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

36

18

… Dieu hanh TENPHG Quan ly Nghien cuu 4 MAPHG 1 5 987987987 TRPHG 888665555 333445555 01/01/1995 NG_NHANCHUC 06/19/1981 05/22/1988 333445555 Tung Nguyen 01/01/1995 987987987 Hung Nguyen NGSINH DCHI PHAI LUONG Vinh Pham 06/19/1981 888665555 Dieu hanh MANV Quan ly 333445555 4 TENNV 1 Tung 987987987 HONV 888665555 Nguyen 12/08/1955 638 NVC Q5 Nam … PHG … 5 40000 999887777 Hang Bui 07/19/1968 332 NTH Q1 Nu 4 25000 987654321 Nhu Le 06/20/1951 291 HVH QPN Nu 4 43000 987987987 Hung Nguyen 09/15/1962 Ba Ria VT Nam 5 38000

Ví dụ 8 (tt)

(cid:131) B1: Tích Cartesian PHONGBAN và NHANVIEN

PB_NV ← (NHANVIEN × PHONGBAN)

(cid:131) B2: Chọn ra những bộ thỏa TRPHG=MANV

KQ ← σTRPHG=MANV(PB_NV)

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

37

Ví dụ 9

(cid:131) Cho biết lương cao nhất trong công ty

- Quan hệ: NHANVIEN - Thuộc tính: LUONG

TENNV HONV LUONG … … LUONG … …

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

38

19

Tung Nguyen … … 40000 40000 … … Hang Bui … … 25000 25000 … … Nhu Le … … 43000 43000 … … Hung Nguyen … … 38000 38000 … …

Ví dụ 9 (tt)

(cid:131) B1: Chọn ra những lương không phải là lớn nhất

R1 ← (πLUONG (NHANVIEN)) R2 ← σNHAN_VIEN.LUONG < R1.LUONG(NHANVIEN × R1) R3 ← πNHAN_VIEN.LUONG (R2)

(cid:131) B2: Lấy tập hợp lương trừ đi lương trong R3

KQ ← πLUONG (NHANVIEN) − R3

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

39

Ví dụ 10

(cid:131) Cho biết các phòng ban có cùng địa điểm với phòng

số 5 - Quan hệ: DIADIEM_PHG - Thuộc tính: DIADIEM, MAPHG - Điều kiện: MAPHG=5

Phòng 5 có tập hợp những địa điểm nào?

Phòng nào có địa điểm nằm trong trong tập hợp đó?

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

40

20

MAPHG DIADIEM MAPHG DIADIEM TP HCM TP HCM 1 1 HA NOI HA NOI 4 4 VUNGTAU VUNGTAU 5 5 NHATRANG NHATRANG 5 5 5 TP HCM 5 TP HCM

Ví dụ 10 (tt)

(cid:131) B1: Tìm các địa điểm của phòng 5

DD_P5(DD) ← πDIADIEM (σMAPHG=5 (DIADIEM_PHG))

(cid:131) B2: Lấy ra các phòng có cùng địa điểm với DD_P5

R1 ← σMAPHG≠5 (DIADIEM_PHG) R2 ← σDIADIEM=DD (R1 × DD_P5) KQ ← πMAPHG (R2)

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

41

Nội dung chi tiết

(cid:131) Giới thiệu (cid:131) Đại số quan hệ (cid:131) Phép toán tập hợp (cid:131) Phép chọn (cid:131) Phép chiếu (cid:131) Phép tích Cartesian (cid:131) Phép kết

- Kết tự nhiên (Natural join) - Kết có điều kiện tổng quát (Theta join) - Kết bằng (Equi join)

(cid:131) Phép chia (cid:131) Các phép toán khác (cid:131) Các thao tác cập nhật trên quan hệ

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

42

21

Phép kết

(cid:131) Được dùng để tổ hợp 2 bộ có liên quan từ 2 quan

hệ thành 1 bộ (cid:131) Ký hiệu R S

- R(A1, A2, …, An) và (B1, B2, …, Bm)

(cid:131) Kết quả của phép kết là một quan hệ Q

- Có n + m thuộc tính Q(A1, A2, …, An, B1, B2, …, Bm) - Mỗi bộ của Q là tổ hợp của 2 bộ trong R và S, thỏa mãn

một số điều kiện kết nào đó (cid:121) Có dạng Ai θ Bj (cid:121) Ai là thuộc tính của R, Bj là thuộc tính của S (cid:121) Ai và Bj có cùng miền giá trị (cid:121) θ là phép so sánh ≠, =, <, >, ≤, ≥

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

43

Phép kết (tt)

(cid:131) Phân loại

- Kết theta (theta join) là phép kết có điều kiện

(cid:121) Ký hiệu R C S (cid:121) C gọi là điều kiện kết trên thuộc tính

- Kết bằng (equi join) khi C là điều kiện so sánh bằng

- Kết tự nhiên (natural join)

(cid:121) Ký hiệu R S hay R ∗ S (cid:121) R+ ∩ Q+ ≠ ∅ (cid:121) Kết quả của phép kết bằng bỏ bớt đi 1 cột giống nhau

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

44

22

Phép kết (tt)

(cid:131) Ví dụ phép kết theta

R B

R C S = σC(R × S)

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

45

C R S A B D E A B C D E 3 1 3 1 1 2 3 3 1 2 6 2 1 2 3 6 2 4 5 6 4 5 6 6 2 7 8 9

Phép kết (tt)

(cid:131) Ví dụ phép kết bằng

R C=D S

R C=S.C S

C D E C R S D E A B A B 1 2 3 3 1 2 3 3 1 1 2 4 5 6 6 2 6 4 5 6 7 8 9

C S.C D C A B R S S S.C C D D A B 1 1 2 3 3 1 2 3 1 3 3 1 2 2 4 5 6 6 2 4 5 6 6 6 7 8 9

ρ(S.C,D) S

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

46

23

Phép kết (tt)

(cid:131) Ví dụ phép kết tự nhiên

R S

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

47

C A B C D S.C D C A B R S A B C D 2 3 1 1 1 2 3 3 1 2 3 1 1 3 4 5 6 2 2 4 5 6 6 2 4 5 6 6 7 8 9

Ví dụ 11

(cid:131) Cho biết nhân viên có lương hơn lương của nhân

viên ‘Tùng’ - Quan hệ: NHANVIEN - Thuộc tính: LUONG

NHAN_VIEN(HONV, TENNV, MANV, …, LUONG, PHG)

R1(LG) ← πLUONG (σTENNV=‘Tung’ (NHANVIEN)) KQ ← NHAN_VIEN LUONG>LG R1

KQ(HONV, TENNV, MANV, …, LUONG, LG)

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

48

24

Ví dụ 12

(cid:131) Với mỗi nhân viên, hãy cho biết thông tin của phòng

ban mà họ đang làm việc - Quan hệ: NHANVIEN, PHONGBAN

NHANVIEN(HONV, TENNV, MANV, …, PHG)

PHONGBAN(TENPHG, MAPHG, TRPHG, NG_NHANCHUC)

KQ ← NHANVIEN PHG=MAPHG PHONGBAN

KQ(HONV, TENNV, MANV, …, PHG, TENPHG, MAPHG, …)

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

49

Ví dụ 13

(cid:131) Với mỗi phòng ban hãy cho biết các địa điểm của

phòng ban đó - Quan hệ: PHONGBAN, DDIEM_PHG

PHONGBAN(TENPHG, MAPHG, TRPHG, NGAY_NHANCHUC)

DDIEM_PHG(MAPHG, DIADIEM)

KQ ← PHONGBAN DDIEMPHG

KQ(TENPHG, MAPHG, TRPHG, NGAY_NHANCHUC, DIADIEM)

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

50

25

Ví dụ 8

(cid:131) Với mỗi phòng ban hãy cho biết thông tin của người

trưởng phòng - Quan hệ: PHONGBAN, NHANVIEN

NHANVIEN(HONV, TENNV, MANV, …, PHG)

PHONGBAN(TENPHG, MAPHG, TRPHG, NG_NHANCHUC)

KQ ← NHANVIEN PHG=MAPHG PHONGBAN

KQ(HONV, TENNV, MANV, …, PHG, TENPHG, MAPHG, …)

TP ← (σTENPHG=‘Truong phong’ (KQ))

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

51

Nội dung chi tiết

(cid:131) Giới thiệu (cid:131) Đại số quan hệ (cid:131) Phép toán tập hợp (cid:131) Phép chọn (cid:131) Phép chiếu (cid:131) Phép tích Cartesian (cid:131) Phép kết (cid:131) Phép chia (cid:131) Các phép toán khác (cid:131) Các thao tác cập nhật trên quan hệ

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

52

26

Phép chia

(cid:131) Được dùng để lấy ra một số bộ trong quan hệ R sao

cho thỏa với tất cả các bộ trong quan hệ S

(cid:131) Ký hiệu R ÷ S - R(Z) và S(X)

(cid:121) Z là tập thuộc tính của R, X là tập thuộc tính của S (cid:121) X ⊆ Z

(cid:131) Kết quả của phép chia là một quan hệ T(Y)

- Với Y=Z-X - Có t là một bộ của T` nếu với mọi bộ tS∈S, tồn tại bộ

tR∈R thỏa 2 điều kiện (cid:121) (cid:121)

tR(Y) = t tR(X) = tS(X)

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

53

R(Z) S(X) T(Y) X Y

Phép chia (tt)

(cid:131) Ví dụ

R ÷ S

(cid:131) R ÷ S là một quan hệ T(Y)

- Với Y=Z-X - Có t là một bộ của T nếu với mọi bộ tS∈S, tồn tại bộ tR∈R thỏa 2 điều kiện (cid:121) tR(Y) = t (cid:121) tR(X) = tS(X)

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

54

27

E R C D A B S D E A B C 1 a a a 1 a α α α γ a 1 a a 1 b γ α γ γ b 1 a γ α a 1 a γ β 3 b a γ β 1 a a γ γ b 1 a γ γ b 1 a β γ

Nội dung chi tiết

(cid:131) Giới thiệu (cid:131) Đại số quan hệ (cid:131) Phép toán tập hợp (cid:131) Phép chọn (cid:131) Phép chiếu (cid:131) Phép tích Cartesian (cid:131) Phép kết (cid:131) Phép chia (cid:131) Các phép toán khác

- Hàm kết hợp (Aggregation function) - Phép gom nhóm (Grouping) - Phép kết ngoài (Outer join)

(cid:131) Các thao tác cập nhật trên quan hệ

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

55

Hàm kết hợp

(cid:131) Nhận vào tập hợp các giá trị và trả về một giá trị

đơn - AVG - MIN - MAX - SUM - COUNT

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

56

28

Hàm kết hợp (tt)

(cid:131) Ví dụ

SUM(B) = 10

AVG(A) = 1.5

MIN(A) = 1

MAX(B) = 4

COUNT(A) = 4

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

57

R A B 2 1 4 3 1 2 1 2

Phép gom nhóm

(cid:131) Được dùng để phân chia quan hệ thành nhiều nhóm

dựa trên điều kiện gom nhóm nào đó

(cid:131) Ký hiệu

G1, G2, …, GnIF1(A1), F2(A2), …, Fn(An)(E)

- E là biểu thức ĐSQH - G1, G2, …, Gn là các thuộc tính gom nhóm - F1, F2, …, Fn là các hàm - A1, A2, …, An là các thuộc tính tính toán trong hàm F

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

58

29

Phép gom nhóm (tt)

(cid:131) Ví dụ

ISUM(C)(R)

AISUM(C)(R)

SUM_C C A B R 27 7 2 α 7 4 α 3 2 β 10 2 γ

Cơ sở dữ liệu - Khoa ĐT-TH - CĐ KTCN-ĐN

59

30

SUM_C 14 3 10