Tài liệu Cấu trúc dữ liệu và giải thuật - Chương 3: Đại số quan hệ - Hồ Trần Nhật Thủy: Chương 3
Đại số quan hệ
GV: ThS. Hồ Trần Nhật Thủy
ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA HỆ THỐNG THÔNG TIN
2Nộ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
31. Giới thiệu
uThế 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
uNgô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.
41. Giới thiệu (tt)
uCó 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)
uThự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ả...
64 trang |
Chia sẻ: putihuynh11 | Lượt xem: 988 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Cấu trúc dữ liệu và giải thuật - Chương 3: Đại số quan hệ - Hồ Trần Nhật Thủy, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Chương 3
Đại số quan hệ
GV: ThS. Hồ Trần Nhật Thủy
ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA HỆ THỐNG THÔNG TIN
2Nộ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
31. Giới thiệu
uThế 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
uNgô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.
41. Giới thiệu (tt)
uCó 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)
uThự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)
5Nộ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
62. Đạ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.
uChứ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.
72. Đại số quan hệ
uBiến là các quan hệ
n Tập hợp (set)
uToá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
82. Đại số quan hệ (tt)
uBiể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ệ
9Nộ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
10
Phép chọn
uĐược dùng để lấy ra các bộ của quan hệ R
uCác bộ được chọn phải thỏa mãn điều kiện chọn P
uKý hiệu:
uĐịnh nghĩa:
uTrong đó:
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 Ù (AND), Ú(OR), Ø(NOT)
( )P Rs
( ) { | ( )}P R t t R P ts = Î Ù
11
Ví dụ phép chọn
uCho 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
12
Phép chọn (tt)
uKế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
uPhép chọn có tính chất giao hoán
1 2 2 1 ( 1 2)( ( )) ( ( )) ( )P P P P P PR R Rs s s s s Ù= =
13
Ví dụ phép chọn (tt)
uTì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’
s(Gioitinh=‘Nam’)Ù(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
14
Ví dụ phép chọn (tt)
uLiệt kê danh sách các nhân viên làm việc ở phòng
số 4
uCho biết các nhân viên có lương > 45000 hoặc
sinh sau ngày ‘1/1/1970’
uTì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
15
Phép chiếu
uĐược dùng để lấy ra một vài cột (thuộc tính) của
quan hệ R
uKý hiệu:
n Trong đó, Ai là tên các thuộc tính được chiếu
uĐịnh nghĩa:
uKế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
uPhép chiếu không có tính giao hoán
1 2 kA A A, ,...,
( )Rp
1 2 kA A A 1 2 k
A A A, ,..., ( ) { [ , ,..., ] | }R t t Rp = Î
16
Ví dụ phép chiếu
uCho 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
pMahv,HoTen (HOCVIEN)
17
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.
18
Phép chiếu tổng quát
uMở 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
uKý 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
uVí 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%
pHONV, TENNV, LUONG*1.1 (NHANVIEN)
19
Chuỗi các phép toán
uKế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
n Thực hiện từng phép toán một
n B1:
n B2:
pA1, A2, , Ak (sP (R)) sP (pA1, A2, , Ak (R))
sP (R)
pA1, A2, , Ak (Quan hệ kết quả ở B1)
Cần đặt tên cho quan hệ
20
Ví dụ kết hợp phép chiếu và phép chọn
uTìm mã số, họ tên những học viên ‘Nam’ có nơi
sinh ở ‘TpHCM’
p Mahv,Hotens(Gioitinh=‘Nam’)Ù(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
21
Ví dụ kết hợp phép chiếu và phép chọn
uCho 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.
uCho 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.
22
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
uKý hiệu: ¬
uVí dụ:
n B1:
n B2:
S ¬ sP (R)
KQ ¬ pA1, A2, , Ak (S)
R(HO,TEN,LUONG)¬ pHONV,TENNV,LUONG(NHANVIEN)
23
Phép đổi tên
uĐược dùng để đổi tên quan hệ và các thuộc tính
uCú pháp: Cho quan hệ R(A1, ..., An)
n Đổi tên quan hệ R thành S
rS(R)
n Đổi tên thuộc tính A1 thành B1
r(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
rS(B1, B2, ..., Bn)(R)
n Đổi tên quan hệ R thành S và thuộc tính A1 thành B1
rS(B1, A2, A3, ..., An)(R)
24
Ví dụ
uCho 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
uC1:
uC2:
pHONV, TENNV (sPHG=4 (NHANVIEN))
NV_P4 ¬ sPHG=4 (NHANVIEN)
KQ ¬ pHONV, TENNV (NV_P4)
KQ(HO, TEN) ¬ pHONV, TENNV (NV_P4)
rKQ(HO, TEN) (pHONV, TENNV (NV_P4))
25
Các phép toán tập hợp
uCá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
uCá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)
uKế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)
26
Các phép toán tập hợp (tt)
uVí dụ:
TENNV NGSINH PHAI
Tung 12/08/1955 Nam
Hang 07/19/1968 Nu
Nhu 06/20/1951 Nu
Hung 09/15/1962 Nam
NHANVIEN TENTN NG_SINH PHAITN
Trinh 04/05/1986 Nu
Khang 10/25/1983 Nam
Phuong 05/03/1958 Nu
Minh 02/28/1942 Nam
THANNHAN
Chau 12/30/1988 Nu
Bậc n=3
DOM(TENNV) = DOM(TENTN)
DOM(NGSINH) = DOM(NG_SINH)
DOM(PHAI) = DOM(PHAITN)
27
Phép hội (Union)
uCho 2 quan hệ R và S khả hợp
uPhép hội của R và S
n Ký hiệu R È S
n 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ỏ)
uVí dụ: Cho biết học viên được khen thưởng đợt 1
hoặc đợt 2
R È S = { t / tÎR Ú tÎS }
DOT1
Mahv Hoten
K1103 Le Van Tam
K1114 Tran Ngoc Han
K1203 Le Thanh Hau
K1308 Nguyen Gia
DOT2
Mahv Hoten
K1101 Le Kieu My
K1114 Tran Ngoc Han
Mahv Hoten
K1101 Le Kieu My
K1103 Le Van Tam
K1114 Tran Ngoc Han
K1203 Le Thanh Hau
K1308 Nguyen Gia
DOT1 È DOT2
28
Phép giao (intersection)
uCho 2 quan hệ R và S khả hợp
uPhép giao của R và S
n Ký hiệu R Ç S
n Là một quan hệ gồm các bộ thuộc R đồng thời thuộc S
uVí dụ: Học viên được khen thưởng cả hai đợt 1 và 2
R Ç S = { t / tÎR Ù tÎS }
KT_D1
Mahv Hoten
K1103 Le Van Tam
K1114 Tran Ngoc Han
K1203 Le Thanh Hau
K1308 Nguyen Gia
KT_D2
Mahv Hoten
K1101 Le Kieu My
K1114 Tran Ngoc Han
Mahv Hoten
K1114 Tran Ngoc Han
DOT1 Ç DOT2
29
Phép trừ
uCho 2 quan hệ R và S khả hợp
uPhép giao của R và S
n Ký hiệu R - S
n Là một quan hệ gồm các bộ thuộc R và không thuộc S
uVí dụ: Học viên được khen thưởng đợt 1 nhưng
không được khen thưởng đợt 2
R - S = { t / tÎR Ù tÏS }
DOT1
Mahv Hoten
K1103 Le Van Tam
K1114 Tran Ngoc Han
K1203 Le Thanh Hau
K1308 Nguyen Gia
DOT2
Mahv Hoten
K1101 Le Kieu My
K1114 Tran Ngoc Han
Mahv Hoten
K1103 Le Van Tam
K1203 Le Thanh Hau
K1308 Nguyen Gia
DOT1 - DOT2
30
Phép tích
uĐược dùng để kết hợp các bộ của các quan hệ lại
với nhau
uKý hiệu: R ´ S
uKết quả trả về là một quan hệ Q
n Mỗi bộ của Q là tổ hợp giữa 1 bộ trong R và 1 bộ trong S.
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.
31
Phép tích (tt)
uVí dụ:
HOCVIEN
Mahv Hoten
K1103 Le Van Tam
K1114 Tran Ngoc Han
K1203 Le Thanh Hau
MONHOC
Mamh
CTRR
THDC
CTDL
Mahv Hoten Mamh
K1103 Le Van Tam CTRR
K1103 Le Van Tam THDC
K1103 Le Van Tam CTDL
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
HOCVIEN´MONHOC
32
Phép tích (tt)
33
Phép tích (tt)
Pban ´ Dan
34
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ộ
uKý hiệu R S
n R(A1, A2, , An) và (B1, B2, , Bm)
uKế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ết nào đó
n Có dạng Ai q Bj
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 ¹, =, , £, ³
35
Phép kết (tt)
uPhâ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
36
Phép kết (tt)
uVí dụ phép kết theta
D E
3
S
6
1
2
A B
1
R
4
2
5
C
3
6
7 8 9
R B<D S
1 2 3 3 1
1 2 3 6 2
4 5 6 6 2
A B C D E
R C S = sC(R ´ S)
37
Phép kết (tt)
uVí dụ phép kết bằng
D E
3
S
6
1
2
A B
1
R
4
2
5
C
3
6
7 8 9
R C=D S
A B
1 2
C
3
4 5 6
D
3
E
1
6 2
C D
3
S
6
1
2
A B
1
R
4
2
5
C
3
6
7 8 9
R C=S.C S
A B
1 2
C
3
4 5 6
S.C
3
D
1
6 2
S.C D
3
6
1
2
r(S.C,D) S
38
Phép kết (tt)
uVí dụ phép kết tự nhiên
R * S
C D
3
S
6
1
2
A B
1
R
4
2
5
C
3
6
7 8 9
A B
1 2
C
3
4 5 6
S.
C
3
D
1
6 2
A B
1 2
C
3
4 5 6
D
1
2
39
Ví dụ phép kết
uVớ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
TENNV HONV NGSINH DCHI PHAI LUONG PHG
Tung Nguyen 12/08/1955 638 NVC Q5 Nam 40000 5
Hang Bui 07/19/1968 332 NTH Q1 Nu 25000 4
Nhu Le 06/20/1951 291 HVH QPN Nu 43000 4
Hung Nguyen 09/15/1962 Ba Ria VT Nam 38000 4
333445555
987987987
987654321
999887777
MANV
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
TENNV HONV
Tung Nguyen
Hung Nguyen
333445555
987987987
888665555
MANV
Vinh Pham
PHONGBAN TRPHG=MANV NHANVIEN
40
Ví dụ phép kết (tt)
uVớ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
PHONGBAN(TENPHG, MAPHG, TRPHG, NG_NHANCHUC)
NHANVIEN(HONV, TENNV, MANV, , PHG)
KQ ¬ NHANVIEN PHG=MAPHG PHONGBAN
KQ(HONV, TENNV, MANV, , PHG, TENPHG, MAPHG, )
41
Ví dụ phép kết (tt)
uVớ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
42
Ví dụ phép kết (tt)
uCho 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)
R1(LG) ¬ pLUONG (sTENNV=‘Tung’ (NHANVIEN))
KQ ¬ NHAN_VIEN LUONG>LG R1
KQ(HONV, TENNV, MANV, , LUONG, LG)
43
Ví dụ phép kết (tt)
uCho 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
44
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.
45
Phép chia
uĐượ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
uKý hiệu R ¸ S
n R(Z) và S(X)
n Z là tập thuộc tính của R, X là tập thuộc tính của S
n X Í Z
uKết quả của phép chia là một quan hệ T(Y)
n Với Y=Z-X
n 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
n tR(Y) = t
n tR(X) = tS(X) X Y
T(Y)S(X)R(Z)
46
Phép chia (tt)
uVí dụ:
A B
c
d
a
a
e a
c a
c a
d a
e a
e a
C D
c
e
a
b
e a
e a
e b
e a
e b
d b
E
1
3
1
1
1
1
1
1
R D E
a
S
b
1
1
R ¸ S
A B C
c a e
e a e
47
Ví dụ
uCho biết mã nhân viên tham gia tất cả các đề án
pMA_NVIEN, MADA(PHANCONG) ÷ pMADA(DEAN)
uCho biết các nhân viên (Ho, ten) tham gia tất cả các
đề án do phòng số 4 phụ trách
A ¬ pMADA(sPHONG = 4(DUAN))
B ¬ pMA_NVIEN, MADA(PHANCONG)
C ¬ B ÷ A
KQ ¬ pHONV,TENNV (C MA_NVEN=MANV NHANVIEN)
48
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
49
Hàm kết hợp
uNhận vào tập hợp các giá trị và trả về một giá trị
đơn
n AVG
n MIN
n MAX
n SUM
n COUNT
uVí dụ:
A B
1
R
3
2
4
1
1
2
2
SUM(B) = 10
AVG(A) = 1.5
MIN(A) = 1
MAX(B) = 4
COUNT(A) = 4
50
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 đó
uKý hiệu:
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
G1, G2, , GnIF1(A1), F2(A2), , Fn(An)(E)
51
Phép gom nhóm (tt)
uVí dụ:
ISUM(C)(R)
SUM_C
27
A B
a
R
a
2
4
b
g
2
2
C
7
7
3
10 AISUM(C)(R)
SUM_C
14
3
10
52
Phép gom nhóm (tt)
uVí dụ: Xét quan hệ Nhanvien(honv, tenlot, tennv,
manv, luong, ma_nql, phg). Cho biết:
n Số lượng nhân viên trong công ty và lương trung bình
n Số lượng nhân viên và lương trung bình của từng
phòng
ICOUNT(MANV),AVG(luong)(Nhanvien)
phgICOUNT(MANV),AVG(luong)(Nhanvien)
53
Phép kết ngoài (mở rộng)
uMở rộng phép kết để tránh mất mát thông tin
n Thực hiện phép kết
n Lấy thêm các bộ không thỏa điều kiện kết
u Có 3 dạng
n Left outer join (Mở rộng bên trái) R p S
n Right outer join (Mở rộng bên phải) R p S
n Full outer join (Mở rộng 2 bên) R p S
54
Phép kết ngoài (tt)
uPhé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.
15bb
5ba
1aa
CBAR
312
72
71
EDS
3125ba
3121aa
null
2
D
null15bb
71aa
ECBA
R C<D S
55
Phép kết ngoài (tt)
uPhé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.
R C>D S
A B C D E
a b 5 1 7
a b 5 2 7
b b 15 1 7
b b 15 2 7
null null null 20 3
15bb
5ba
1aa
CBAR
320
72
71
EDS
56
Phép kết ngoài (tt)
uPhé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.
A B C D E
a a 1 1 7
a b 2 2 7
b b 15 null null
null null null 20 3
15bb
2ba
1aa
CBAR
320
72
71
EDS
R C=D S
57
Ví dụ
uCho 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
pHONV,TENNV, TENPHG (NHANVIEN MANV=TRPHG PHONGBAN)
TENNV HONV TENPHG
Tung Nguyen Nghien cuu
Hang Bui null
Nhu Le null
Vinh Pham Quan ly
58
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
59
Các thao tác cập nhật
uNộ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)
uCá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
60
Thao tác thêm
uThao tác thêm được diễn đạt như sau:
n R là quan hệ
n E là một biểu thức ĐSQH
uVí dụ: Phân công nhân viên có mã 123456789 làm
thêm đề án mã số 20 với số giờ là 10
Rnew ¬ Rold È E
PHANCONG ¬ PHANCONG È (‘123456789’, 20, 10)
61
Thao tác xóa
uThao tác xóa được diễn đạt như sau:
n R là quan hệ
n E là một biểu thức ĐSQH
uVí dụ:
n Xóa các phân công đề án của nhân viên 123456789
n Xóa những phân công đề án có địa điểm ở ‘HA NOI’
Rnew ¬ Rold - E
PHANCONG ¬ PHANCONG - sMANV=‘123456789’(PHANCONG)
62
Thao tác sửa
uThao tác sửa được diễn đạt như sau:
n R là quan hệ
n Fi là biểu thức tính toán cho ra giá trị mới của thuộc tính,
thuộc tính thứ i có thể giữ nguyên nếu không muốn cập nhật
uVí dụ:
n Tăng thời gian làm việc cho tất cả nhân viên lên 1.5 lần
Rnew ¬ pF1, F2, , Fn (Rold)
PHANCONG ¬pMA_NVIEN, SODA, THOIGIAN*1.5(PHANCONG)
63
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ệ.
uCác phép toán cơ sở gồm: s, p, ´, È, -
uCác phép toán khác định nghĩa trên các phép toán
cơ sở: Ç, , ¸
64
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)
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.
Các file đính kèm theo tài liệu này:
- chuong_3_dai_so_quan_he_2017_0384_1995119.pdf