ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA HỆ THỐNG THÔNG TIN

Chương 3

Đại số quan hệ

GV: ThS. Hồ Trần Nhật Thủy

Nội dung

1.Gi ới thiệu

2. Đại số quan hệ

3.Các phép toán c ơ bản

4.Các phép toán khác

5.Các thao tác c ập nhật

2

1. Giới thiệu

u Thế nào là truy vấn CSDL?

n Cho một CSDL, đưa ra các câu hỏi, nhận được các câu

trả lời n Ví dụ:

n Cho biết tất cả sinh viên có điểm trung bình > 8 thuộc các

khoa.

n Cho biết các khoa có hơn 100 sinh viên. n Trong các khoa, chọn sinh viên đạt điểm trung bình cao

nhất trong năm học trước

u Ngôn ngữ truy vấn: là ngôn ngữ cho phép người

dùng cập nhật và rút trích dữ liệu được lưu trong một mô hình dữ liệu.

3

1. Giới thiệu (tt)

u Có 2 loại xử lý

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

n Thêm mới, xóa và sửa

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

n Truy vấn (query)

u Thực hiện các xử lý

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

n Biểu diễn câu truy vấn dưới dạng biểu thức

n Phép tính quan hệ (Relational Calculus)

n Biểu diễn kết quả

n SQL (Structured Query Language)

4

Nội dung

1.Gi ới thiệu

2. Đại số quan hệ

3.Các phép toán c ơ bản

4.Các phép toán khác

5.Các thao tác c ập nhật

5

2. Đại số quan hệ

u Đại số quan hệ (ĐSQH)

n Có nền tảng toán học (cụ thể là lý thuyết tập hợp). n Là một tập hợp các phép toán quan hệ để rút trích dữ

liệu.

u Chức năng:

n Cho phép mô tả các phép toán rút trích dữ liệu từ các

quan hệ trong cơ sở dữ liệu quan hệ.

n Cho phép tối ưu quá trình rút trích bằng các phép toán

có sẵn của lý thuyết tập hợp.

6

2. Đại số quan hệ

u Biến là các quan hệ

n Tập hợp (set)

u Toán tử là các phép toán (operations)

n Trên tập hợp

n Hội ¨ (union) n Giao ˙ (intersec) n Trừ - (difference)

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

n Chọn s (selection) n Chiếu p (projection)

n Kết hợp các quan hệ

n Tích Cartesian · (Cartesian product) n Kết (join)

n Đổi tên r

7

2. Đại số quan hệ (tt)

u Biểu thức ĐSQH

n Là chuỗi các phép toán đại số quan hệ n Kết quả trả về là thể hiện của quan hệ

8

Nội dung

1.Gi ới thiệu

2. Đại số quan hệ

3.Các phép toán c ơ bản

4.Các phép toán khác

5.Các thao tác c ập nhật

9

Phép chọn

( P Rs s

) =˛ (){|()} P RttRP t

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

n R là một quan hệ n P là biểu thức điều kiện gồm các mệnh đề có dạng:

n n

n gồm < , > , £ , ‡ , „ , = n Các mệnh đề được nối lại nhờ các phép (cid:217) (AND), (cid:218)(OR), (cid:216)(NOT)

10

(cid:217)

Ví dụ phép chọn

u Cho biết danh sách các học viên nam

n Quan hệ: HOCVIEN n Thuộc tính: Gioitinh n Điều kiện: Gioitinh=‘Nam’

sGioitinh=‘Nam’(HOCVIEN)

Mahv

HoTen

Gioitinh

Noisinh Malop

K1103 Ha Duy Lap

Nam

Nghe An

K11

K1102 Tran Ngoc Han Nu

Kien Giang K11

K1104 Tran Ngoc Linh Nu

Tay Ninh

K11

K1105 Tran Minh Long Nam

TpHCM

K11

K1106 Le Nhat Minh

Nam

TpHCM

K11

11

Phép chọn (tt)

u Kết quả trả về là một quan hệ

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

=

= )

R

u Phép chọn có tính chất giao hoán s

ssss

(())(())( PPPPP P RR 1221(12)

12

(cid:217)

Ví dụ phép chọn (tt)

u Tìm những học viên ‘Nam’ có nơi sinh ở ‘TpHCM’

n Quan hệ: HOCVIEN n Thuộc tính: Gioitinh, Noisinh n Điều kiện: Gioitinh=‘Nam’ và Noisinh=‘TpHCM’

(Gioitinh=‘Nam’)(cid:217) (Noisinh=‘TpHCM’)(HOCVIEN)

s

Mahv

HoTen

Gioitinh

Noisinh Malop

K1103 Ha Duy Lap

Nam

Nghe An

K11

K1102 Tran Ngoc Han Nu

Kien Giang K11

K1104 Tran Ngoc Linh Nu

Tay Ninh

K11

K1105 Tran Minh Long Nam

TpHCM

K11

K1106 Le Nhat Minh

Nam

TpHCM

K11

13

Ví dụ phép chọn (tt)

u Liệt kê danh sách các nhân viên làm việc ở phòng

số 4

u Cho biết các nhân viên có lương > 45000 hoặc

sinh sau ngày ‘1/1/1970’

u 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

14

Phép chiếu

u Được dùng để lấy ra một vài cột (thuộc tính) của

u Ký hiệu:

(

)R

quan hệ R p

,,..., AA 12

A k

n Trong đó, Ai là tên các thuộc tính được chiếu

u Định nghĩa:

}

= (){[,,...,]| Rtt R

AA

A

p

k

,,..., AAA12 12

k

u Kết quả trả về là một quan hệ

n Có k thuộc tính n Có số bộ luôn ít hơn hoặc bằng số bộ của R n Các dòng trùng nhau chỉ lấy một

u Phép chiếu không có tính giao hoán

15

˛

Ví dụ phép chiếu

u Cho biết mã học viên và họ tên của các học viên

n Quan hệ: HOCVIEN n Thuộc tính: Mahv, HoTen

Mahv,HoTen (HOCVIEN)

16

p

Ví dụ phép chiếu (tt)

1.Ch ỉ trả về các thuộc tính

nvu và tgian

2.Ch ỉ trả về thuộc tính ms_nv 3.Ch ỉ trả về thuộc tính ms_da

Cho biết kết quả trong mỗi trường hợp.

17

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

u 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

u Ký hiệu pF1, F2, …, Fn (E)

n E là biểu thức ĐSQH n F1, F2, …, Fn là các biểu thức số học liên quan đến

n Hằng số n Thuộc tính trong E

u Ví dụ:

n 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)

18

p

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

u Kết hợp các phép toán đại số quan hệ

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

A1, A2, …, Ak (s

P (R))

P (p

A1, A2, …, Ak (R))

p s

n B1:

n Thực hiện từng phép toán một P (R)

s

n B2:

A1, A2, …, Ak (Quan hệ kết quả ở B1)

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

19

p

Ví dụ kết hợp phép chiếu và phép chọn

u Tìm mã số, họ tên những học viên ‘Nam’ có nơi

sinh ở ‘TpHCM’ p Mahv,Hotens(Gioitinh=‘Nam’)(cid:217)(Noisinh=‘TpHCM’)(HOCVIEN)

Mahv

HoTen

Gioitinh

Noisinh Malop

K1103 Ha Duy Lap

Nam

Nghe An

K11

K1102 Tran Ngoc Han Nu

Kien Giang K11

K1104 Tran Ngoc Linh Nu

Tay Ninh

K11

K1105 Tran Minh Long Nam

TpHCM

K11

K1106 Le Nhat Minh

Nam

TpHCM

K11

20

Ví dụ kết hợp phép chiếu và phép chọn

u Cho biết họ, tên, giới tính và mức lương của các

nhân viên của phòng số 5.

u Cho biết các dự án (MaDA, TenDA) có địa điểm ở

Hà Nội và có ngân sách lớn hơn 10.000.000.

21

Phép gán

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

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

u Ký hiệu: ‹ u Ví dụ: n B1:

S ‹

P (R)

s

KQ ‹

n B2:

A1, A2, …, Ak (S)

p

R(HO,TEN,LUONG)‹

HONV,TENNV,LUONG(NHANVIEN)

22

p

Phép đổi tên

u Được dùng để đổi tên quan hệ và các thuộc tính u Cú pháp: Cho quan hệ R(A1, ..., An)

n Đổi tên quan hệ R thành S

S(R)

r

n Đổi tên thuộc tính A1 thành B1 (B1, A2, A3, ..., An)(R)

n Đổi tên quan hệ R thành S và các thuộc tính Ai thành Bi

r

S(B1, B2, ..., Bn)(R)

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

r

S(B1, A2, A3, ..., An)(R)

23

r

Ví dụ

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

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

u C1:

HONV, TENNV (s

PHG=4 (NHANVIEN))

u C2:

p

PHG=4 (NHANVIEN)

s

NV_P4 ‹ KQ ‹

HONV, TENNV (NV_P4)

p

HONV, TENNV (NV_P4)

p

KQ(HO, TEN) ‹ KQ(HO, TEN) (p

HONV, TENNV (NV_P4))

24

r

Các phép toán tập hợp

u Các phép toán thực hiện trên 2 quan hệ xuất phát

từ lý thuyết tập hợp của toán học: n Phép hội R ¨ S n Phép giao R ˙ S n Phép trừ R - S

u Các quan hệ R(A1,A2,…An) và S(B1,B2,…Bn) phải

có tính khả hợp n Có cùng bậc (cùng số lượng thuộc tính) n Với mọi i, Dom(Ai) = Dom(Bi)

u 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)

25

Các phép toán tập hợp (tt)

u Ví dụ:

NHANVIEN TENNV NGSINH PHAI THANNHAN TENTN NG_SINH PHAITN

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

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

26

Chau 12/30/1988 Nu

Phép hội (Union)

u Cho 2 quan hệ R vàS kh ả hợp u Phép hội củaR và S

n Kýhi ệuR ¨ S n Là mộtquan h ệ gồmcác b ộ thuộcR ho ặcthu ộcS, ho ặc cả hai

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

R ¨ S = { t / t˛R (cid:218) t˛S }

u Ví dụ: Cho biết học viên đượckhenth ưởng đợt1

hoặc đợt 2

DOT1

DOT2

Mahv

Hoten

Mahv

Hoten

Mahv

Hoten

K1101 Le Kieu My

K1103 Le Van Tam

K1101 Le Kieu My

K1103 Le Van Tam

K1114 Tran Ngoc Han

K1114 Tran Ngoc Han

K1114 Tran Ngoc Han

K1203 Le Thanh Hau

K1203 Le Thanh Hau

K1308 Nguyen Gia

K1308 Nguyen Gia

DOT1 ¨ DOT2

27

Phépgiao(intersection)

u Cho 2 quan hệ R vàS kh ả hợp u Phépgiao c ủaR và S

n Kýhi ệuR ˙ S n Là mộtquan h ệ gồmcác b ộ thuộcR đồngth ờithu ộc S

R ˙ S = { t / t˛R (cid:217) t˛S }

u Ví dụ: Họcviên đượckhenth ưởng cả hai đợt1 và 2

KT_D1

Mahv

Hoten

KT_D2

Mahv

Hoten

K1114 Tran Ngoc Han

Mahv

Hoten

K1103 Le Van Tam

K1101 Le Kieu My

DOT1 ˙ DOT2

K1114 Tran Ngoc Han

K1114 Tran Ngoc Han

K1203 Le Thanh Hau

K1308 Nguyen Gia

28

Phéptr ừ

u Cho 2 quan hệ R vàS kh ả hợp u Phépgiao c ủaR và S

n Kýhi ệuR - S n Là mộtquan h ệ gồmcác b ộ thuộcR vàkhôngthu ộc S

R - S = { t / t˛R (cid:217) tˇS }

u Ví dụ: Họcviên đượckhenth ưởng đợt1 nh ưng

không đượckhenth ưởng đợt 2

DOT1

DOT2

Mahv

Hoten

Mahv

Hoten

Mahv

Hoten

K1103 Le Van Tam

K1103 Le Van Tam

K1101 Le Kieu My

K1203 Le ThanhHau

K1114 Tran Ngoc Han

K1114 Tran Ngoc Han

K1308 Nguyen Gia

K1203 Le Thanh Hau

DOT1 -DOT2

K1308 Nguyen Gia

29

Phéptích

u Đượcdùng để kết hợpcác b ộ củacácquan h ệ lại

vớinhau

u Ký hiệu: R · S

u Kết quả trả về là mộtquan h ệ Q

n Mỗi bộ củaQ là t ổ hợpgi ữa1 b ộ trongR và1 b ộ trongS.

n Số bộ của Q = Số bộ của R x số bộ của S .

n Số thuộc tính của Q = Số thuộc tính của R + Số thuộc tính

của S.

30

Phép tích (tt)

u Ví dụ:

HOCVIEN· MONHOC

MONHOC

HOCVIEN

Mahv

Hoten

Mamh

Mamh

Mahv

Hoten

K1103 Le Van Tam

CTRR

CTRR

K1103 Le Van Tam

THDC

K1103 Le Van Tam

THDC

K1114 Tran Ngoc Han

CTDL

K1103 Le Van Tam

CTDL

K1203 Le Thanh Hau

K1114 Tran Ngoc Han CTRR

K1114 Tran Ngoc Han THDC

K1114 Tran Ngoc Han CTDL

K1203 Le Thanh Hau CTRR

K1203 Le Thanh Hau

THDC

K1203 Le Thanh Hau CTDL

31

Phép tích (tt)

32

Phép tích (tt)

Pban · Dan

33

Phép kết

u Được dùng để tổ hợp 2 bộ có liên quan từ 2 quan

hệ thành 1 bộ

u Ký hiệu R S

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

u Kết quả của phép kết là một quan hệ Q

n Có n + m thuộc tính Q(A1, A2, …, An, B1, B2, …, Bm) n 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ếtnào đó q Bj

n Có dạng Ai n Ai là thuộc tính của R, Bj là thuộc tính của S n Ai và Bj có cùng miền giá trị n q

là phép so sánh „, =, <, >, £, ‡

34

Phép kết (tt)

u Phân loại

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

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

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

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

n Ký hiệu R * S n R+ ˙ Q+ „ ˘ n Kết trên tập thuộc tính cùng tên n Kết quả của phép kết bằng bỏ bớt đi 1 cột giống nhau

35

Phép kết (tt)

u Ví dụ phép kết theta

R

B

R S A B C D E A B C D E

1 2 3 3 1 1 2 3 3 1

4 5 6 6 2 1 2 3 6 2

C(R · S)

R C S = s

36

7 8 9 4 5 6 6 2

Phép kết (tt)

u Ví dụ phép kết bằng

R C=D S

R S A B C D E A B C D E

1 2 3 3 1 1 2 3 3 1

4 5 6 6 2 4 5 6 6 2

R C=S.C S

7 8 9

R S S S.C D C D A B C A B C S.C D

1 2 3 3 3 1 1 1 2 3 3 1

4 5 6 6 6 2 2 4 5 6 6 2

7 8 9

(S.C,D) S 37

r

Phép kết (tt)

u Ví dụ phép kết tự nhiên

R * S

R S A B C C D A B C D

1 2 3 3 1 1 2 3 S. C 3 1

4 5 6 6 2 4 5 6 6 2

7 8 9

A B C D

1 2 3 1

38

4 5 6 2

Ví dụ phép kết

u Với mỗi phòng ban, cho biết thông tin của người

trưởng phòng

TENPHG MAPHG TRPHG NG_NHANCHUC

Nghien cuu 5 333445555 05/22/1988

Dieu hanh 4 987987987 01/01/1995

Quan ly 1 888665555 06/19/1981

MANV TENNV HONV NGSINH DCHI PHAI LUONG PHG

333445555 Tung Nguyen 12/08/1955 638 NVC Q5 Nam 40000 5

999887777 Hang Bui 07/19/1968 332 NTH Q1 25000 Nu 4

987654321 Nhu Le 06/20/1951 291 HVH QPN 43000 Nu 4

PHONGBAN TRPHG

987987987 Hung Nguyen 09/15/1962 Ba Ria VT 38000 Nam 4

TRPHG=MANV NHANVIEN NG_NHANCHUC

MAPHG MANV TENNV HONV TENPHG …

333445555 05/22/1988 333445555 Tung Nguyen Nghien cuu 5 …

39

987987987 01/01/1995 987987987 Hung Nguyen Dieu hanh 4 …

888665555 06/19/1981 888665555 Quan ly 1 Vinh Pham …

Ví dụ phép kết (tt)

u 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 n 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, …)

40

Ví dụ phép kết (tt)

u Với mỗi phòng ban hãy cho biết các địa điểm của

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

PHONGBAN(TENPHG, MAPHG, TRPHG, NGAY_NHANCHUC)

DDIEM_PHG(MAPHG, DIADIEM)

PHONGBAN * DDIEMPHG

41

Ví dụ phép kết (tt)

u Cho biết nhân viên có lương hơn lương của nhân

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

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

LUONG (s

TENNV=‘Tung’ (NHANVIEN))

R1(LG) ‹ KQ ‹

NHAN_VIEN LUONG>LG R1

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

42

p

Ví dụ phép kết (tt)

u Cho biết họ, tên của các nhân viên nữ và tên các

thân nhân của họ.

A ‹ sPHAI = ‘Nu’(NHANVIEN)

B ‹ A

MANV=MA_NVIEN THANNHAN

KQ ‹ pHONV, TENNV, TENTN B

43

Bài tập

Cho biết: 1.Tìm tên và địa chỉ của các nhân viên thuộc phòng

‘Nghien cuu'.

2.Tên nhân viên và tên phòng mà nhân viên đó làm

việc.

3.Tên tr ưởng phòng và tên phòng mà người đó làm

trưởng phòng.

4.Tên nh ững trưởng phòng có ít nhất một thân nhân. 5.Cho bi ết tên những đề án có nhân viên Nguyen Van A

và Nguyen Van B cùng tham gia. 6.Tên nhân viên không có thân nhân nào. 7.Tên nh ững nhân viên phòng số 5 có tham gia vào đề án ‘San pham X’ và nhân viên này do ‘Nguyen Thanh Tung’ quản lý trực tiếp.

44

Phép chia

u Đượcdùng để lấyra m ột số bộ trongquan h ệ R saochoth ỏa với tất cả các bộ trongquan h ệ S

u Kýhi ệuR ‚ S n R(Z) vàS(X)

n Z là tậpthu ộctính c ủaR, X là t ậpthu ộctính c ủa S n X ˝ Z

u Kếtqu ả củaphépchialà m ộtquan h ệ T(Y)

˛ R

n VớiY=Z-X n Cót là m ột bộ củaT n ếu với mọi bộ tS

˛ S, tồn tại bộ tR

thỏa2 điềuki ện

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

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

45

X Y

Ví dụ

u Cho biết mã nhân viên tham gia tất cả các đề án

MA_NVIEN, MADA(PHANCONG) ÷ p

MADA(DEAN)

u Cho biết các nhân viên (Ho, ten) tham gia tất cả các

p

đề án do phòng số 4 phụ trách

p

MADA(s PHONG = 4(DUAN)) MA_NVIEN, MADA(PHANCONG)

p

A ‹ B ‹ C ‹ B ÷ A KQ ‹

HONV,TENNV (C

MA_NVEN=MANV NHANVIEN)

47

p

Nội dung

1.Gi ới thiệu

2. Đại số quan hệ

3.Các phép toán c ơ bản

4.Các phép toán khác

5.Các thao tác c ập nhật

48

Hàm kết hợp

u Nhậnvào t ập hợpcácgiátr

ị vàtr ả về mộtgiátr ị

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

u Ví dụ:

R A B

1 2

3 4

1 2

SUM(B) = 10 AVG(A) = 1.5 MIN(A) = 1 MAX(B) = 4 COUNT(A) = 4

49

1 2

Phép gom nhóm

u Đượ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 đó

u Ký hiệu:

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

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

50

Phép gom nhóm (tt)

u Ví dụ:

ISUM(C)(R)

SUM_C

R A B C 27 a 2 7

a 4 7

b 2 3

AISUM(C)(R)

g 2 10

SUM_C

14

3

51

10

Phép gom nhóm (tt)

u Ví dụ: Xétquan h ệ Nhanvien(honv, tenlot, tennv,

manv, luong, ma_nql, phg). Cho biết: n Số lượngnhânviêntrongcôngtyvà l

ươngtrungbình

ICOUNT(MANV),AVG(luong)(Nhanvien)

n Số lượngnhânviên và l ươngtrungbình c ủa từng

phòng

phgICOUNT(MANV),AVG(luong)(Nhanvien)

52

Phép kết ngoài (mở rộng)

u Mở rộngphép k ết để tránh mấtmátthôngtin

n Thựchi ệnphép k ết n Lấythêmcác b ộ khôngth ỏa điềuki ện kết

u Có 3 dạng

p S

p S

n Left outer join (Mở rộngbêntrái) R n Right outer join (Mở rộngbênph ải) R n Full outer join (Mở rộng2 bên) R

p S

53

Phép kết ngoài (tt)

u Phép kết mở rộng trái:

n Giữ lại tất cả các bộ của quan hệ ở bên trái phép toán kết mà

không liên kết được với bộ nào của quan hệ bên phải.

C

R

A

B

A

B

C

E

D

1

a

a

a

a

1

7

2

5

a

b

a

a

1

12

3

15

b

b

R C

a

b

5

12

3

b

b

15

null

null

S

D

E

1

7

2

7

12

3

54

Phép kết ngoài (tt)

u Phép kết mở rộng phải:

n Giữ lại tất cả các bộ của quan hệ ở bên phải phép toán kết mà không liên kết được với bộ nào của quan hệ bên trái.

C

R

A

B

A

B

C

D

E

1

a

a

a

b

5

1

7

5

a

b

a

b

5

2

7

15

b

b

R C>D S

b

b

15

1

7

b

b

15

2

7

S

D

E

nullnullnull

20

3

1

7

2

7

20

3

55

Phép kết ngoài (tt)

u Phép kết mở rộng 2 phía:

n Giữ lại tất cả các bộ của từng quan hệ ở hai bên phép toán kết mà không liên kết được với bộ nào của quan hệ còn lại.

C

R

A

B

A

B

C

D

E

1

a

a

a

a

1

1

7

2

a

b

a

b

2

2

7

15

b

b

R C=D S

b

b

15

null

null

null null

null

20

3

S

D

E

1

7

2

7

20

3

56

Ví dụ

u Cho biết họ tên nhân viên và tên phòng ban mà họ

phụ trách nếu có n Quan hệ: NHANVIEN, PHONGBAN n Thuộc tinh: HONV, TENNV, TENPH

HONV,TENNV, TENPHG (NHANVIEN MANV=TRPHG PHONGBAN)

p

TENNV HONV TENPHG

Tung Nguyen Nghiencuu

Hang Bui null

Nhu Le null

57

Vinh Pham Quan ly

Nội dung

1.Gi ới thiệu

2. Đại số quan hệ

3.Các phép toán c ơ bản

4.Các phép toán khác

5.Các thao tác c ập nhật

58

Các thao tác cập nhật

u Nội dung của CSDL có thể được cập nhật bằng

các thao tác n Thêm (insertion) n Xóa (deletion) n Sửa (updating)

u Các thao tác cập nhật được diễn đạt thông qua

phép toán gán

Rnew

các phép toán trên Rold

59

Thao tác thêm

u Thaotácthêm đượcdi ễn đạtnh ư sau:

Rold ¨ E

Rnew n R làquan h ệ n E là mộtbi ểuth ức ĐSQH

u Ví dụ: Phâncôngnhânviêncómã123456789 làm

thêm đề ánmã s ố 20 với số giờ là10

PHANCONG ‹

PHANCONG ¨ (‘123456789’, 20, 10)

60

Thao tác xóa

u Thaotácxóa đượcdi ễn đạtnh ư sau:

Rnew

Rold - E

n R làquan h ệ n E là mộtbi ểuth ức ĐSQH

u Ví dụ:

n Xóacácphâncông đề án củanhânviên123456789

PHANCONG ‹

PHANCONG - s

MANV=‘123456789’(PHANCONG)

n Xóanh ữngphâncông đề áncó địa điểm ở ‘HA NOI’

61

Thao tác sửa

u Thaotác s ửa đượcdi ễn đạtnh ư sau:

F1, F2, …, Fn (Rold)

Rnew n R làquan h ệ n Filàbi ểuth ứctínhtoánchoragiátr

ị mới củathu ộctính,

thuộctínhth ứ icóth ể giữ nguyên nếukhôngmu ốn cậpnh ật

u Ví dụ:

n Tăngth ờigianlàmvi ệccho t ất cả nhânviênlên1.5 l ần

‹ p

PHANCONG ‹

MA_NVIEN, SODA, THOIGIAN*1.5(PHANCONG)

62

p

Tổng kết

u Đại số quan hệ là một tập hợp các phép toán để

ánh xạ quan hệ thành quan hệ.

u Các phép toán cơ sở gồm: s, p, ·, ¨, -

u Các phép toán khác định nghĩa trên các phép toán

cơ sở: ˙, , ‚

63

Lược đồ CSDL Quản lý dự án công ty: u PHONGBAN(TENPHG, MAPHG, TRPHG, NGAY_NHANCHUC)

Mỗi phòng ban có một mã phòng ban duy nhất để phân biệt với phòng ban khác, có tên phòng ban, do một nhân viên làm trưởng phòng và có ngày nhận chức của người trưởng phòng đó.

u NHANVIEN(HONV,TENLOT,TENNV,MANV,NGSINH,DCHI,PHAI,CVU,LUONG,MA_NQL,PHG)

Mỗi nhân viên của công ty có một họ, tên lót, tên, lương, địa chỉ, điện thoại, phái và có một mã nhân viên duy nhất để phân biệt với các nhân viên khác. Một nhân viên có một người quản lý trực tiếp và làm việc cho một phòng ban nào đó.

u DIADIEM_PHG(MAPHG, DIADIEM)

Một phòng ban có thể ở nhiều địa điểm và một địa điểm có thể có nhiều phòng ban tọa lạc.

u THANNHAN(MA_NVIEN, TENTN, PHAI, NGSINH, QUANHE)

Mỗi thân nhân là một người thân của một nhân viên nào đó. Một nhân viên có thể có nhiều thân nhân. Thân nhân có tên, phái, ngày sinh và mô tả mối quan hệ với nhân viên.

u DEAN(TENDA, MADA, DDIEM_DA, PHONG, NSACH)

Một đề án có tên và một mã đề án duy nhất để phân biệt với đề án khác. Đề án do một phòng ban chịu trách nhiệm chủ trì và diễn ra ở một địa điểm nào đó.

u PHANCONG(MA_NVIEN, MADA, THOIGIAN)

64

Một nhân viên được phân công làm nhiều đề án và một đề án có thể có nhiều nhân viên tham gia. Nhân viên tham gia đề án với 1 khoảng thời gian nào đó trong tuần.