Download - C3 2
3.2. Đại số quan hệ3.2. Đại số quan hệ
Nhập môn Cơ sở Dữ liệu
Giới thiệuXét một số xử lý trên quan hệ NHANVIENThêm mới một nhân viênChuyển nhân viên có tên là “Tùng” sang phòng số
1Cho biết họ tên và ngày sinh các nhân viên có
lương thấp hơn 50000
07:18 chiều 2
54
TENNV HONV NS DCHI GT LUONG PHONG
Tung Nguyen 12/08/1955
638 NVC Q5 Nam 40000
Hang Bui 07/19/1968
332 NTH Q1 Nu 25000
Nhu Le 06/20/1951
291 HVH QPN
Nu 43000 4
Hung Nguyen 09/15/1962
Ba Ria VT Nam 38000 5
Quang Pham 11/10/1937
450 TV HN Nam 55000 1
1Tung Nguyen 12/08/1955Hang Bui 07/19/1968Nhu Le 06/20/1951Hung Nguyen 09/15/1962
Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
Giới thiệuXét một số xử lý trên quan hệ SINHVIEN, SV_DIEM, MONHOC
07:18 chiều 3Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
Masv Ho Dem Ten
T1 Trần Văn An
C2 Lê Đình Bắc
T3 Trần Thị Hảo
T4 Vũ Đức Lâm
C3 Phạm Hải Ngọc
SINHVIEN
Masv Mamon Diem
T1 Int1001 8
T1 Int1002 9
C2 Int1003 7
C2 Int1002 3
T3 Int1003 10
T4 Int1002 8
C2 Int1001 8
T4 Int1001 7
C3 Int1003 6
SV_DIEM
Mamon Tenmon Sotinchi
Int1001 CSDL 3
Int1002 NGLT C 4
Int1003 TRR 3
MONHOC
Giới thiệuXét một số xử lý trên quan hệ SINHVIEN, SV_DIEM
07:18 chiều 4Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
BANGDIEM
Giới thiệuCác thao tác:
1.Cập nhật: Thay đổi dữ liệu (trạng thái CSDL): o Thêm các bộ mới o Xóa các bộ o Sửa giá trị của bộ
2.Các phép toán đại số quan hệCác phép toán tập hợp: hợp, giao, trừ, tích
Đề-cácCác phép toán trên cơ sở dữ liệu quan hệ:
chọn, chiếu, đổi tên, nối, chia3.Một số phép toán bổ sung: nhóm, nối ngoài
07:18 chiều 5Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ đại số quan hệ
1. Các thao tác cập nhật
Nội dung (trạng thái) của CSDL có thể được cập nhật bằng các thao tácThêm (insert)Xóa (delete)Sửa (modify)
Chú ý: • Chỉ đề cập thao tác và ý nghĩa, không nêu câu
lệnh trong HQTCSDL cụ thể • Xét trên một quan hệ
07:18 chiều 6Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ đại số quan hệ
1.1. Thêm bộ mới vào quan hệ
Được diễn đạt o R là quan hệo t là một bộ mới cần thêm vào
Ví dụo INSERT(SINHVIEN; T5,”Nguyen”, “Hong”, “Anh”)o INSERT(SV_DIEM; “T5”, “Int1002”, 9)o INSERT(SV_DIEM; “T5”, “Int1004”, 7)o INSERT(SV_DIEM; “T5”,” Int1001”, 12)
Vi phạm ràng buộco Ràng buộc miềno Ràng buộc khóao Ràng buộc tham chiếu
07:18 chiều 7
INSERT(R; t)
Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ đại số quan hệ
Xử lý Loại bỏ
07:18 chiều 8Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
Masv Ho Dem TenT1 Trần Văn AnC2 Lê Đình BắcT3 Trần Thị HảoT4 Vũ Đức LâmC3 Phạm Hải Ngọc
SINHVIEN
Masv Mamon Diem
T1 Int1001 8T1 Int1002 9C2 Int1003 7C2 Int1002 3T3 Int1003 10T4 Int1002 8C2 Int1001 8T4 Int1001 7C3 Int1003 6
SV_DIEM
Mamon Tenmon Sotinchi
Int1001 CSDL 3Int1002 NGLT C 4Int1003 TRR 3
MONHOC
1.1. Thêm bộ mới vào quan hệ
INSERT(SINHVIEN; “C4”, “Vũ”,null,”Luận”)INSERT(SINHVIEN; null, “Trần”,”Bá”,”Luận”)INSERT(SV_DIEM; “T1”, “Int1001”,9.5)INSERT(SV_DIEM; “T4”, “Int1007”, 6.0)
1.2. Thao tác xóa: Xóa một hoặc nhiều bộ theo điều kiện nào đó
Được diễn đạt o R là quan hệo f là một biểu thức ĐS
Ví dụo DELETE(SINHVIEN; Masv = “T1”)o DELETE(SV_DIEM; Masv = “T2” )
Ràng buộc có thể vi phạmo Ràng buộc tham chiếu: được tham chiếu
o Loại bỏ phép xóa, o Xóa lan truyền, o Sửa đổi giá trị khóa ngoài tham chiếu (null)
07:18 chiều 9Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ đại số quan hệ
DELETE(R; f )
Xử lí
07:18 chiều 10Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
Masv Ho Dem TenT1 Trần Văn AnC2 Lê Đình BắcT3 Trần Thị HảoT4 Vũ Đức LâmC3 Phạm Hải Ngọc
SINHVIEN
Masv Mamon Diem
T1 Int1001 8T1 Int1002 9C2 Int1003 7C2 Int1002 3T3 Int1003 10T4 Int1002 8C2 Int1001 8T4 Int1001 7C3 Int1003 6
SV_DIEM
Mamon Tenmon Sotinchi
Int1001 CSDL 3Int1002 NGLT C 4Int1003 TRR 3Int2005 KTCT 2
MONHOC
1.2. Xóa các bộ
DELETE(MONHOC; Mamon =“Int2005”)DELETE(SV_DIEM; Masv =“T1”)DELETE(MONHOC; Mamon =“Int1001”)DELETE(SV_DIEM; Masv = “T4” and Mamon =“Int1001”)DELETE(SINHVIEN; Masv =“C2”)
Thay đổi giá trị của các thuộc tính trong một hoặc nhiều bộ.
Ví dụo Tăng hệ số lương thêm 10 % cho tất cả nhân
viên trong quan hệ NHANVIENo “Chuyển “ nhân viên “Tùng” từ phòng Nghiên
cứu sang phòng Kỹ thuật.o Sửa số tín chỉ thành 2 của môn học có mã là
Int1001 trong quan hệ MONHOC.
07:18 chiều 11Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
1.3. Cập nhật các bộ
Được diễn đạt o R là quan hệo f là biểu thức đại số xác định bộo ai thuộc tính cần sửa, vi giá trị mới của thuộc
tính.Ví dụTăng thời gian làm việc cho tất cả nhân viên lên
1.5 lầnMODIFY (NHANVIEN; Ten =“Tùng”; Phong = 4)MODIFY (NHANVIEN; all; Luong=Luong*1.1)MODIFY(MONHOC; Mamon=“Int1001”;
sotinchi=2)
07:18 chiều 12
MODIFY(R; f;<ai = vi,…>)
Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
1.3. Cập nhật các bộ
Các ràng buộc toàn vẹn có thể vi phạmo Ràng buộc miềno Với khóa chính = {xóa, chèn} => miền, toàn
vẹn thực thểo Khóa ngoài=> toàn vẹn tham chiếuVí dụ
07:18 chiều 13
MODIFY(R; f;<ai = vi,…>)
Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
1.3. Cập nhật các bộ
MODIFY(SINHVIEN ; Masv =“T1”; dem=“Đức”) MODIFY(SINHVIEN ; Masv =“T1”; Masv =“T5”)
MODIFY(SV_DIEM; Masv =“T1”and Mamon=“Int1001”; Diem=5.5)
MODIFY(SV_DIEM; Masv =“T1”; Mamon =“Int1002”)
Nội dung chi tiết
Giới thiệuCác thao tác cập nhật trên quan hệĐại số quan hệPhép toán tập hợpPhép chọnPhép chiếuPhép tích CartesianPhép nốiPhép chiaCác phép toán khác
07:18 chiều 14Khoa CNTT
2. Các phép toán đại số quan hệToán hạng (Biến) là các quan hệ , tập hợp (set)
o 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ệ
Toán tử là các phép toán đại số quan (operations)
Kết quả trả về là một thể hiện của quan hệ
07:18 chiều 15Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
2. Các phép toán đại số quan hệToán tử (operations) Dựa trên lý thuyết tập hợp
o Hội (union)o Giao (intersec)o Trừ (difference)
Rút trích 1 phần của quan hệo Chọn (selection)o Chiếu (projection)
Kết hợp các quan hệo Tích Đề-các (Cartesian product)o Nối (join)
Đổi tên
07:18 chiều 16Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
Nội dung chi tiếtGiới thiệuCác thao tác cập nhật trên quan hệ Đại số quan hệPhép toán tập hợpPhép chọnPhép chiếuPhép tích CartesianPhép nốiPhép chiaCác phép toán khác
07:18 chiều 17Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
2.1. Phép toán tập hợpQuan hệ là tập hợp các bộ
Phép hợp R SPhép giao R SPhép trừ R S
Tính khả hợp (Tương thích đồng nhất - Union Compatibility)Hai lược đồ quan hệ R(A1, A2, …, An) và S(B1, B2, …, Bn)
là khả hợp nếu Cùng bậc n Và có DOM(Ai)=DOM(Bi) , 1 i n
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)
07:18 chiều 18Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
2.1 Phép toán tập hợpVí dụ: tính khả hợp
07:18 chiều 19Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
GIAOVIEN
Ho Dem Ten Ngaysinh
HSL
Lê Văn Tám 12/01/1980
3.33
Trần Đình Trí 10/12/1970
3.66
Nguyễn
Hữu Minh 05/06/1980
3.00NHANVIEN
Ho Dem Ten Ngaysinh
HSL
Trần Văn Đức 10/01/1980
3.33
Vũ Vân Long 18/04/1971
3.66
Phạm Đức Thành 01/01/1969
3.66Bậc của 2 quan hệ n=5
Miền giá trị các thuộc tính như nhau
2.1 Phép toán tập hợpVí dụ: tính khả hợp
07:18 chiều 20
TENNV NS GT
Tung 12/08/1955
Nam
Hang 07/19/1968
Nu
Nhu 06/20/1951
Nu
Hung 09/15/1962
Nam
NHANVIEN TENTN NS_TN GT_TN
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=3DOM(TENNV) = DOM(TENTN)DOM(NS) = DOM(NS_TN)DOM(GT) = DOM(GT_TN)
Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
2.1.a Phép hợpCho 2 quan hệ R và S khả hợpPhép hợp của R và SKý hiệu R SLà 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ỏ)
Ví dụ 1
07:18 chiều 21
R S = { t / tR tS }
A B
R
1
2
1
A B
S
2
3
Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
R S
R S
A B
1
2
1
3
Ví dụ
07:18 chiều 22Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
GIAOVIEN Ho Dem Ten Ngaysinh HSL
Lê Văn Tám 12/01/1980 3.33
Trần Đình Trí 10/12/1970 3.66
Nguyễn Hữu Minh 05/06/1980 3.00
NHANVIEN Ho Dem Ten Ngaysinh HSL
Trần Văn Đức 10/01/1980 3.33
Vũ Vân Long 18/04/1971 3.66
Phạm Đức Thành 01/01/1969 3.66
2.1.a Phép hợp
GIAOVIEN NHANVIEN
Ho Dem Ten Ngaysinh HSL
Lê Văn Tám 12/01/1980 3.33
Trần Đình Trí 10/12/1970 3.66
Nguyễn Hữu Minh 05/06/1980 3.00
Trần Văn Đức 10/01/1980 3.33
Vũ Vân Long 18/04/1971 3.66
Phạm Đức Thành 01/01/1969 3.66
2.1.b. Phép giaoCho 2 quan hệ R và S khả hợpPhép giao của R và SKý hiệu R SLà một quan hệ gồm các bộ thuộc R đồng thời
thuộc S
Ví dụ
07:18 chiều 23
R S = { t / tR tS }
A B
R
1
2
3
A B
S
2
3
Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
A B
R S
2
3
2.1.c. Phép trừ
Cho 2 quan hệ R và S khả hợpPhép giao của R và SKý hiệu R SLà một quan hệ gồm các bộ thuộc R và không
thuộc S
Ví dụ
07:18 chiều 24
R S = { t / tR tS }
A B
R
1
2
1
A B
S
2
3
Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
A B
R-S
1
1
Các tính chất
Giao hoán
Kết hợp
07:18 chiều 25
R S = S R
R S = S R
R (S T) = (R S) T
R (S T) = (R S) T
Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
2.2.a. Phép chọn
Được dùng để lấy ra các bộ của quan hệ RCác bộ được chọn phải thỏa mãn điều kiện chọn PKý hiệu
P là điều kiện chọn gồm các mệnh đề có dạngo <tên thuộc tính> <phép so sánh> <hằng số>o <tên thuộc tính> <phép so sánh> <tên thuộc tính> <phép so sánh> gồm , , , , , Các mệnh đề được nối lại nhờ các phép , ,
07:18 chiều 26
P (R)
Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
2.2. Các phép toán Cơ sở dữ liệu
Kết quả trả về là một quan hệ Có cùng danh sách thuộc tính với RCó số bộ luôn ít hơn hoặc bằng số bộ của R
Ví dụ
07:18 chiều 27
S = (A=B)(D>5) (R) A B
R
C
1
5
12
23
D
7
7
3
10
Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
2.2.a. Phép chọn
A B
C
1
23
D
7
10
S
07:18 chiều 28Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
2.2.a. Phép chọnBANGDIEM
D_1oo1
D_1001 = (Mamon=“Int1001”)
(BANGDIEM)
Phép chọn có tính giao hoán
Ví dụ
Kết hợp nhiều phép chọn thành 1 phép chọn
07:18 chiều 29
p1 ( p2 (R)) =
p1 ( p2 (R)) =
Khoa CNTT
p2 ( p1 (R))
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
2.2.a. Phép chọn
(Mamon=“Int1001”) ( (Masv = “T1”)(BANGDIEM))
= (Masv=“T1”) ( (Mamon = “Int1001”)(BANGDIEM))
(p1 ^ p2) (R)
(Mamon=“Int1001”) ( (Masv = “T1”)
(BANGDIEM)) = ((Mamon=“Int1001”)^(Masv = “T1”))(BANGDIEM)
Ví dụ 1Cho biết các nhân viên ở phòng số 4Quan hệ: NHANVIEN Thuộc tính: PHGĐiều kiện: PHG=4
07:18 chiều 30
PHG=4 (NHANVIEN)
Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
Ví dụ 2Tìm các nhân viên có lương trên 2.5 tr ở
phòng 4 hoặc các nhân viên có lương trên 3 tr ở phòng 5Quan hệ: NHANVIENThuộc tính: LUONG, PHGĐiều kiện: LUONG>2500000 và PHG=4 hoặc LUONG>3000000 và PHG=5
07:18 chiều 31
(PHG=4 ^ LUONG>2500000) (PHG=5 ^ LUONG>3000000) (NHANVIEN)
Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
Nội dung chi tiết
Giới thiệuCác thao tác cập nhật trên quan hệĐại số quan hệPhép toán tập hợpPhép chọnPhép chiếuPhép tích CartesianPhép nốiPhép chiaCác phép toán khác
07:18 chiều 32Khoa CNTT
2.2.b Phép chiếuLấy ra một số cột của quan hệ RKý hiệu
Kết quả trả về là một quan hệ o Có k thuộc tínho Có số bộ luôn ít hơn hoặc bằng số bộ của R (loại các bộ
trùng)
Ví dụ
07:18 chiều 33
A1, A2, …, Ak(R)
A B
R
10
20
30
C
1
1
1
40 2
S=A,C (R)
Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
R: lược đồ quan hệ
A1, A2,,,Ak tập thuộc tính của R
Ví dụ 1:
07:18 chiều 34Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
2.2.b Phép chiếuBANGDIEM
DS1 = Masv,Ho,Dem,Ten,Diem
(BANGDIEM) DS1
Tính chất:
Ví dụ 2:
07:18 chiều 35
X (Y (R)) =
Khoa CNTT
X (R)
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
2.2.b Phép chiếu
Masv,Ho,Dem,Ten (Masv,Ho,Dem,Ten,Mamon (R)) =
Masv,Ho,Dem,Ten (R)
A1,A2,..,Ak (B1,B2,..Bn(R)) B1,B2,..,Bn(A1,A2,..Ak(R)) ?
Ví dụ 3
Cho biết họ tên và lương của các nhân viênQuan hệ: NHANVIENThuộc tính: HONV, TENNV, LUONG
07:18 chiều 36
HONV, TENNV, LUONG(NHANVIEN)
Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
Ví dụ 4:
Cho biết mã nhân viên có tham gia đề án hoặc có thân nhân
NV_DEAN(Manv,Madean,Sogio)THANNHAN(Manv,Hoten, Gt)
07:18 chiều 37
Manv(NV_DEAN)
Manv(THANNHAN)
Manv(NV_DEAN) Manv(THANNHAN)
Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
Ví dụ 5:
Cho biết mã nhân viên có người thân và có tham gia đề án
07:18 chiều 38Khoa CNTT
Manv(NV_DEAN) Manv(THANNHAN)
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
Ví dụ 6 :
Cho biết mã nhân viên không có thân nhân nào
07:18 chiều 39Khoa CNTT
Manv(NV_DEAN) - Manv(THANNHAN)
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
Ví dụ7 : Danh sách sinh viên (Mã, Họ, đệm, tên, mã môn) nợ môn
07:18 chiều 40Khoa CNTT
Masv,Ho,Dem,Ten,Mamon((Diem<5)(BANGDIEM))
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
Ví dụ : Lấy ra danh sách Masv, Ho,Dem,Ten, Mamon của những sinh viên có điểm <5
07:18 chiều 41Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
Chuỗi phép toán và phép toán đổi tên
Masv,Ho,Dem,Ten,Mamon((Diem<5)(BANGDIEM))
Ví dụ : Lấy ra danh sách Manv, Ho,Dem,Ten, của nhân viên phòng 4 có lương trên 3000000
Masv,Ho,Dem,Ten,Mamon ((Luong >3000000)((PHG=4)(NHANVIEN)))
↔ Masv,Ho,Dem,Ten,Mamon ((Luong >3000000 ^ PHG=4)(NHANVIEN)))
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
Thực hiện từng phép toán một B1
B2
07:18 chiều 42
A1, A2, …, Ak (P (R)) P (A1, A2, …, Ak (R))
P (R)
A1, A2, …, Ak (Quan hệ kết quả ở B1)
Cần đặt tên cho quan hệ
Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
Chuỗi phép toán và phép toán đổi tên
Phép gánĐược sử dụng để nhận lấy kết quả trả về của
một phép toánThường là kết quả trung gian trong chuỗi các
phép toán Ký hiệu , =
Ví dụB1
B2
07:18 chiều 43
S P (R)
KQ A1, A2, …, Ak (S)
Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
Phép đổi tên ( - rho)Được dùng để đổi tên, thuộc tính lược đồ quan
hệ
Các dạng:
07:18 chiều 44
S(R) -> Đổi tên quan hệ R thành S
Xét lược đồ quan hệ R(B, C, D)
X, C, D (R) -> Đổi tên thuộc tính B thành X
S(X,C,D)(R) -> Đổi tên quan hệ R thành S và thuộc tính B thành X
Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
Ví dụ 8Cho biết họ và tên nhân viên làm việc ở phòng số
4(tạo ra quan hệ KQ(HO,TEN)Quan hệ: NHANVIENThuộc tính: HONV, TENNVĐiều kiện: PHG=4
C1:
C2:
07:18 chiều 45
KQ(HO,TEN)(HONV, TENNV (PHG=4 (NHANVIEN)))
NV_P4 PHG=4 (NHANVIEN)
KQ HONV, TENNV (NV_P4)
HO, TEN (KQ)
Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
Nội dung chi tiết
Giới thiệuCác thao tác cập nhật trên quan hệĐại số quan hệPhép toán tập hợpPhép chọnPhép chiếuPhép toán tích CartesianPhép nốiPhép chiaCác phép toán khác
07:18 chiều 46Khoa CNTT
Phép toán tích Đề các
Được dùng để kết hợp các bộ của các quan hệ lại với nhau
Cho lược đồ R(A1,,An), S(B1,..Bm)Ký hiệuKết quả một quan hệ QQ(A1,,An, B1,..Bm)Mỗi bộ của Q là tổ hợp giữa 1 bộ trong R và 1 bộ
trong S Q ={ <t,u> | t R, u S}
Nếu R có n bộ và S có m bộ thì Q sẽ có n m bộ
07:18 chiều 47
R S
Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
Phép toán tích Đề các
Ví dụ
07:18 chiều 48
A B
R
1
2
B C
S
10
10
D
+
+
20 -
10 -
Khoa CNTT
R S =??
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
Phép toán tích Đề cácVí dụ
07:18 chiều 49
A B
R
1
2
B C
S
10
10
D
+
+
20 -
10 -
unambiguous
A R.B
1
2
2
1
1
1
2
2
S.B
C
10
10
10
10
20
10
20
10
D
+
+
+
+
-
-
-
-
R S
Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
Phép toán tích Đề cácThông thường theo sau phép tích Đề-các là
phép chọn
07:18 chiều 50
R S
A R.B
1
2
2
1
1
1
2
2
S.B
C
10
10
10
10
20
10
20
10
D
+
+
+
+
-
-
-
-
A=S.B (R S)
A R.B
1
2
2
S.B
C
10
10
20
D
+
+
-
Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
07:18 chiều 51Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
Masv Ho Dem TenT1 Trần Văn AnC2 Lê Đình BắcT3 Trần Thị HảoT4 Vũ Đức LâmC3 Phạm Hải Ngọc
SINHVIEN
Masv Mamon DiemT1 Int1001 8T1 Int1002 9C2 Int1003 7C2 Int1002 3T3 Int1003 10T4 Int1002 8C2 Int1001 8T4 Int1001 7C3 Int1003 6
SV_DIEM
Ví dụ 9: đưa ra danh sách bảng điểm những sv có điểm>=8
R = Diem>=8
(SV_DIEM)
S = SINHVIEN R
KQ = Masv,Ho,Dem,Ten,Mamon,Diem(Masv=Ma (S))
Ma,Mamon,Diem(R)
Ví dụ 10Với mỗi phòng ban, cho biết thông tin của
người trưởng phòngQuan hệ: PHONGBAN, NHANVIEN Thuộc tính: TRPHG, MAPHG, TENNV, HONV,
…
07:18 chiều 52
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/1981TENPHG MAPHG TRPHG NG_NHANCH
UCNghien
cuu5 33344555
505/22/1988
Dieu hanh 4 987987987
01/01/1995
Quan ly 1 888665555
06/19/1981
TENNV HONV
Tung Nguyen
Hung Nguyen
333445555987987987888665555
MANV
Vinh Pham
…
…
…
…
TRPHG=MANV (PHONGBAN NHANVIEN)
Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
TENNV HONV NS DCHI GT 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 5
333445555
987987987
987654321
999887777
MANV
Vinh Pham 06/19/1981
Nam Dinh Nam 54000 1888665555
Ví dụ 10B1: Tích Đề-các PHONGBAN và NHANVIEN
B2: Chọn ra những bộ thỏa TRPHG=MANV
07:18 chiều 53
PB_NV (NHANVIEN PHONGBAN)
KQ TRPHG=MANV(PB_NV)
Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
Ví dụ 11
Cho biết các phòng ban có cùng địa điểm với phòng số 5 ?o Quan hệ: DIADIEM_PHGo Thuộc tính: DIADIEM, MAPHGo Điều kiện: MAPHG=5
07:18 chiều 54
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 đó?
DIADIEMMAPHG
1
4
5
5
TP HCM
VUNGTAU
NHATRANG
HA NOI
5 TP HCM
DIADIEMMAPHG
1
4
5
5
TP HCM
VUNGTAU
NHATRANG
HA NOI
5 TP HCM
Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
Ví dụ 11
B1: Tìm các địa điểm của phòng 5
B2: Lấy ra các phòng có cùng địa điểm với DD_P5
07:18 chiều 55
DD_P5 DIADIEM (MAPHG=5 (DIADIEM_PHG))
DD(DD_P5)
R2 DIADIEM=DD (R1 DD_P5)
KQ MAPHG (R2)
R1 MAPHG5 (DIADIEM_PHG)
Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
Nội dung chi tiếtGiới thiệuCác thao tác cập nhật trên quan hệ Đại số quan hệPhép toán tập hợpPhép chọnPhép chiếuPhép tích CartesianPhép nốiNối có điều kiện tổng quát (Theta join)Nối bằng (Equi join) Nối tự nhiên (Natural join)
Phép chiaCác phép toán khác
07:18 chiều 56Khoa CNTT
Phép toán nối (join)Nối 2 bộ có liên quan (thỏa mãn điều kiện nào
đó) từ 2 quan hệ thành 1 bộKý hiệu R S
o R(A1, A2, …, An) và S(B1, B2, …, Bm) các lược đồ quan hệo f: điều kiện nối
Kết quả là một quan hệ Q
Q= { <t,v> | f(t,v) đúng, tR, v S}
o f có dạng Ai Bj
o Ai là thuộc tính của R, Bj là thuộc tính của S o Ai và Bj có cùng miền giá trịo là phép so sánh , , , , , , kết hợp các toán tử
logic
07:18 chiều 57Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
f
Phép toán nối (join)Ví dụ 12:
07:18 chiều 58Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
SINHVIEN Masv Ho Dem Ten Ns Gt Lop
10001 Trần Văn Minh 1/1/1995 Nam Int1001
10002 Lê Đức Vinh 2/10/1994
Nam Int1002
10005 Vũ Văn Toàn 5/2/1989 Nam null
11007 Nguyễn
Thị Hương 2/4/1991 Nữ Int2001
LOP Malop Tenlop Giaovien
Int1001 Tin học cơ sở 1 Hồ Sỹ Đàm
Int1002 Nguyên lý Hệ ĐH Hà Quang Thụy
Int1003 Cơ sở dữ liệu Nguyễn Tuệ
Int2001 Chương trình dịch Lê Anh Cường
Int1005 Tin học cơ sở 4 Trần Thị Minh Châu
SV_LOP = SINHVIEN Lop = Malop
LOP
Phép toán nối (join)Ví dụ 12 (kết quả):
07:18 chiều 59Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
SV_LOP
Masv
Ho Dem Ten Ns Gt LopMalop
Tenlop Giaovien
10001
Trần Văn Minh1/1/1995
Nam
Int1001
Int1001
Tin học cơ sở 1 Hồ Sỹ Đàm
10002
Lê Đức Vinh2/10/1994
Nam
Int1002
Int1002
Nguyên lý Hệ ĐH
Hà Quang Thụy
11007
Nguyễn
ThịHương
2/4/1991
NữInt2001
Int2001
Chương trình dịch
Lê Anh Cường
- Kết hợp các bộ có điều kiện
- Thuộc tính nối có giá trị null không xuất hiện trong kết quả
Khác với tích Đề các:
Phép toán nối
Phân loại1. Nối theta là phép nối có điều kiện dạng tổng
quáto Ký hiệu R S
o f : điều kiện nối trên thuộc tính
2. Nối bằng (equi join) khi f là điều kiện so sánh bằng của 2 thuộc tính
07:18 chiều 60Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
f
BANGDIEM= SINHVIEN SINHVIEN.Masv = SV_DIEM.Masv
SV_DIEM
SV_DIEM(Masv, Mamon, Diem)
SINHVIEN(Masv, Ho,Dem,Ten, Ns,Gt)
BANGDIEM(SINHVIEN.Masv, Ho,Dem,Ten, Ns,Gt, SV_DIEM.Masv, Mamon, Diem)
ví dụ:
Phép toán nối
3. Nối tự nhiên (natural join)o Nối bằngo Hai thuộc tính nối cùng têno Loại bỏ một thuộc tính dư thừa trong kết quả
Ký hiệu R S hay R S
07:18 chiều 61Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
SV_DIEM(Masv, Mamon, Diem)
SINHVIEN(Masv, Ho,Dem,Ten, Ns,Gt)Ví dụ
BANGDIEM= SINHVIEN * SV_DIEM
BANGDIEM(Masv, Ho,Dem,Ten, Ns,Gt, Mamon, Diem)
Ví dụ phép nối theta
07:18 chiều 62
D E
3
S
6
1
2
A B
1
R
4
2
5
C
3
6
7 8 9
R B<D S
Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
Ví dụ phép nối bằng
07:18 chiều 63
D E
3
S
6
1
2
A B
1
R
4
2
5
C
3
6
7 8 9
R C=D S
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
Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
Ví dụ phép nối tự nhiên
07:18 chiều 64
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.C3
D
1
6 2
A B
1 2
C
3
4 5 6
D
1
2
Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
Ví dụ 14 (bài tập)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(Manv,Honv,Tennv,Phg,
Luong)Thuộc tính: LUONG
07:18 chiều 65
R(L_TUNG) Luong(Tennv=‘Tung’ (NHANVIEN))
KQ Manv,Honv,Tennv,Phg,luong(NHANVIEN Luong>L_TUNG R)
B1: Chọn ra lương của ‘Tùng’
B2: Lấy ra những bộ có lương >lương của ‘Tùng”
Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
Ví dụ 15 (bài tập)
Liệt kê danh sách nhân viên, 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ệco NHANVIEN(Manv,Honv,Tennv,Phg, Luong) o PHONGBAN(MaPhg, TenPhg, TrPhg, Ng_Nhanchuc)
07:18 chiều 66Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
Manv,Honv,Tennv,MaPhg,Luong(NHANVIEN)
KQ = NHANVIEN * PHONGBAN
Ví dụ 16(Bài tập)Với mỗi phòng ban hãy cho biết các địa điểm của
phòng ban đó (Mã, tên, địa điểm, điện thoại)PHONGBAN(MaPhg, TenPhg, TrPhg,
Ng_Nhanchuc)DDIEM_PHG(MaPhg, Ddiem, Dthoai)
07:18 chiều 67Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
R =PHONGBAN* DDIEM_PHG
KQ= MaPhg, TenPhg,Ddiem,Dthoai(R)
Ví dụ 17 (bài tập) Với mỗi phòng ban hãy cho biết thông tin của người
trưởng phòng(Mã phòng, tên phòng, Mã trưởng phòng, Họ, tên trưởng phòng, ngày nhận chức)PHONGBAN(MaPhg, TenPhg, TrPhg, Ng_Nhanchuc)NHANVIEN(Manv,Honv,Tennv,Phg,Luong)
07:18 chiều 68Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
Ví dụ 18Cho biết phòng ban có cùng địa điểm với phòng 5PHONGBAN(MaPhg, TenPhg, TrPhg, Ng_Nhanchuc)DDIEM_PHG(MaPhg, Ddiem, Dthoai)
07:18 chiều 69Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
DDP5 = DDIEM (MaPhg=5 (DIADIEM_PHG))
R =PHONGBAN * DDIEM_PHG
KQ= MaPhg,TenPhg (R * DDP5)
Tập đầy đủ các phép toán ĐSQHTập các phép toán {, , , , } là tập đầy
đủ với các phép toán ĐSQHNghĩa là các phép toán có thể được biểu diễn
qua chúngVí dụ RS = RS ((RS) (SR))
R C S = C(RS)
07:18 chiều 70Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
Nội dung chi tiết
Giới thiệuCác thao tác cập nhật trên quan hệ Đại số quan hệPhép toán tập hợpPhép chọnPhép chiếuPhép tích CartesianPhép nốiPhép chiaCác phép toán khác
07:18 chiều 71Khoa CNTT
Phép chiaLấ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ệ SKý hiệu R S
Giả thiết Z, X là các tập thuộc tính của R, S với X ZKết quả của phép chia là một quan hệ T(Y), Với
Y=Z-Xt là một bộ của T nếu với mọi bộ tSS, tồn tại bộ
tRR thỏa 2 điều kiện tR(Y) = t
tR(X) = tS(X)
07:18 chiều 72
X Y
T(Y)
S(X)R(Z)
Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
Hay: với mỗi bộ t T, với mọi u S thì <u,t> R
Phép chiaVí dụ
07:18 chiều 73Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
R A BA1 B1
A2 B1
A3 B1
A4 B1
A1 B2
A2 B3
A3 B3
A4 B3
A1 B4
A2 B4
A3 B4
S AA1
A2
A3
T= R S T BB1
B4
Phép chiaCách tính T(Y)= R(Z) S(X)
1. Y = Z-X
2. T1 = Y(R)
3. T2 = Y((S T1)-R)
4. T= T1-T2
07:18 chiều 74Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
Phép chiaVí dụ
07:18 chiều 75
A B
a
a
a
a
a
a
a
a
C D
a
b
a
a
b
a
b
b
E
1
3
1
1
1
1
1
1
R D E
a
S
b
1
1
R S
Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
R S
A B C
a
a
Phép chiaVí dụ
07:18 chiều 76Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
S A B
a1 b1
a2 b2
R A B C D
a1 b1 x1 y1
a2 b2 x1 y1
a1 b2 x1 y1
a2 b2 x1 y2
a1 b1 x1 y2
a1 b1 x2 y1
a2 b2 x2 y1
a1 b1 x2 y2
a2 b3 x1 y2
a3 b1 x1 y1
T = R S ?
Phép chiaVí dụ
07:18 chiều 77Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
S A B
a1 b1
a2 b2
R A B C D
a1 b1 x1 y1
a2 b2 x1 y1
a1 b2 x1 y1
a2 b2 x1 y2
a1 b1 x1 y2
a1 b1 x2 y1
a2 b2 x2 y1
a1 b1 x2 y2
a2 b3 x3 y2
a3 b1 x1 y3
1. Y = {C,D }
2. T1 = Y
(R) T1 C D
x1 y1
x1 y2
x2 y1
x2 y2
x3 y2
x1 y3
Phép chiaVí dụ
07:18 chiều 78Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
S A B
a1 b1
a2 b2
R A B C D
a1 b1 x1 y1
a2 b2 x1 y1
a1 b2 x1 y1
a2 b2 x1 y2
a1 b1 x1 y2
a1 b1 x2 y1
a2 b2 x2 y1
a1 b1 x2 y2
a2 b3 x3 y2
a3 b1 x1 y3
1. Y = {C,D }
2. T1 = Y (R)
T1 C D
x1 y1
x1 y2
x2 y1
x2 y2
x3 y2
x1 y3
3. T2 = Y (S T1) - R)
A B C D
a1 b1 x1 y1
a1 b1 x1 y2
a1 b1 x2 y1
a1 b1 x2 y2
a1 b1 x3 y2
a1 b1 x1 y3
a2 b2 x1 y1
a2 b2 x1 y2
a2 b2 x2 y1
a2 b2 x2 y2
a2 b2 x3 y2
a2 b2 x1 y3
Phép chiaVí dụ
07:18 chiều 79Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
S A B
a1 b1
a2 b2
R A B C D
a1 b1 x1 y1
a2 b2 x1 y1
a1 b2 x1 y1
a2 b2 x1 y2
a1 b1 x1 y2
a1 b1 x2 y1
a2 b2 x2 y1
a1 b1 x2 y2
a2 b3 x3 y2
a3 b1 x1 y3
1. Y = {C,D }
2. T1 = Y (R)
T1 C D
x1 y1
x1 y2
x2 y1
x2 y2
x3 y2
x1 y3
3. T2 = Y (S T1) - R)
A B C D
a1 b1 x3 y2
a1 b1 x1 y3
a2 b2 x2 y2
a2 b2 x3 y2
a2 b2 x1 y3
T2
C D
x3 y2
x1 y3
x2 y2
T C D
x1 y1
x1 y2
x2 y1
3. T = T1-T2
Ví dụ 1 (bài tập)
Cho biết mã nhân viên tham gia tất cả các đề ánQuan hệ: DEAN (MaDa, TenDa,Ddiem, Phong);
NV_DEAN(Manv,MaDa, Sogio)
07:18 chiều 80
DA MaDa(DEAN)
NV_DEAN MANV, MADA(NV_DEAN)
KQ MANV(NV_DEAN÷DA)
B1:
B2:
B3:
Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
Ví dụ 2 (bài tập)
Cho biết mã nhân viên tham gia tất cả các đề án do phòng số 4 phụ tráchQuan hệ: NHANVIEN, NV_DEAN, DEANThuộc tính: MANVĐiều kiện: PHONG=4
07:18 chiều 81
P4_DA MaDa(PHG=4 (DEAN))
NV_DA Manv MaDa(NV_DEAN)
MA_NV Manv(NV_DA÷P4_DA)
B1:
B2:
B3:
Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
07:18 chiều 82Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
Masv Ho Dem TenT1 Trần Văn AnC2 Lê Đình BắcT3 Trần Thị HảoT4 Vũ Đức LâmC3 Phạm Hải Ngọc
SINHVIEN
Masv Malop DiemT1 Int1001T1 Int1002C2 Int1003C2 Int1002T3 Int1003T4 Int1002C2 Int1001T4 Int1001C3 Int1003T1 Int1003
SV_LOP
LOP
Malop Tenlop GiaovienInt1001 THCS Lê Văn TânInt1002 CSDL Trần Văn ThịnhInt1003 CTD Lê Đức HòaInt2003 NLHDH Lê Đức Hòa
Ví dụ 3: Hãy đưa ra danh sách sinh viên (Mã, Họ, Đệm, Tên)
đăng kí tất cả các môn học
Ví dụ 3(bài tập)
SINHVIEN(Masv, Ho,Dem,Ten)LOP(Malop,Tenlop,Giaovien)SV_LOP(Masv, Malop, Diem)
07:18 chiều 83
LOPMA Malop(LOP)
KQ SV*SINHVIEN
SV Masv(SV_LOP÷LOPMA)
B1: Lấy mã lớp trong LOP
B2:Lấy mã sinh viên tham gia tất cả các lớp
B3: Danh sách đầy đủ các thuộc tính
Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
Ví dụ 4 (bài tập): Danh sách sinh viên đăng kí các lớp do giáo viên Lê Đức Hòa dạy
SINHVIEN(Masv, Ho,Dem,Ten)LOP(Malop,Tenlop,Giaovien)SV_LOP(Masv, Malop, Diem)
07:18 chiều 84
LOPGV Malop(Giaovien=“Lê Đức Hòa”(LOP))
KQ SV*SINHVIEN
SV Masv(SV_LOP÷LOPGV)
B1: Lấy mã lớp trong do Lê Đức Hòa dạy
B2:Lấy mã sinh viên tham gia tất cả các lớp trong LOPGV
B3: Danh sách đầy đủ các thuộc tính
Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
Nội dung chi tiếtGiới thiệuCác thao tác cập nhật trên quan hệĐại số quan hệPhép toán tập hợpPhép chọnPhép chiếuPhép tích CartesianPhép nốiPhép chiaCác phép toán khácHàm kết hợp (Aggregation function)Phép gom nhóm (Grouping)Phép kết ngoài (Outer join)
07:18 chiều 85Khoa CNTT
Hàm kết hợp
Nhận vào tên thuộc tính (tập hợp các giá trị) và trả về một giá trị đơnAVGMINMAXSUMCOUNT
07:18 chiều 86Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
Hàm kết hợp Ví dụ
07:18 chiều 87
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
Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
Phép gom nhómĐược dùng để phân chia quan hệ thành nhiều nhóm
dựa trên thuộc tính phân nhóm nào đó Ký hiệu
o R là Quan hệo Gi là thuộc tính gom nhómo F1, F2, …, Fn là các hàm kết hợpo A1, A2, …, An là các thuộc tính tính toán trong hàm F
07:18 chiều 88
G1,G2,..,Gk F F1(A1), F2(A2), …, Fn(An)(R)
Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
Phép gom nhóm
Ví dụ
07:18 chiều 89
S1= Sum_C FSUM(C)
(R)
A B
R
2
4
2
2
C
7
7
3
10
S2 = A, Sum_C FSUM(C)
(R)
Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
S1 Sum_c
27
S2 A Sum_c
14
3
10
Ví dụ 18Tính số lượng nhân viên và lương trung bình
của cả công ty
07:18 chiều 90
F COUNT(), AVERAGE(LUONG)(NHANVIEN)
Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
Ví dụ 19Tính số lượng nhân viên và lương trung bình
của từng phòng ban
07:18 chiều 91
MAPGHF COUNT(), AVERAGE(LUONG)(NHANVIEN)
Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
Đếm số học sinh theo môn và điểm TB, LN,NN trong
SV_DIEM(Masv, Mamon, Diem)MamonF COUNT(), AVG(Diem),Max(Diem),Min(Diem)(SV_DIEM)
Ví dụ 20Đưa ra danh sách nhân viên có lương cao nhất
công ty
07:18 chiều 92
R1 = Luong F Max(LUONG)(NHANVIEN)
Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
R1*NHANVIEN
Ví dụ 21Đưa ra danh sách nhân viên có lương thấp hơn
lương trung bình của công ty
07:18 chiều 93
Manv,Honv,Tennv, Maphg,Luong(NHANVIEN Luong<Luong_TB R)
Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
R = Luong_TB F AVG(LUONG)(NHANVIEN)
Phép nối ngoài
07:18 chiều 94Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
Masv Ho Dem TenT1 Trần Văn AnC1 Trần Văn ĐứcC2 Lê Đình BắcT3 Trần Thị HảoT4 Vũ Đức LâmC3 Phạm Hải NgọcT2 Lê Thị Hà
Masv Malop DiemT1 Int1001 8C2 Int1003 7T3 Int1003 10T4 Int1002 8
Xét ví dụ (SINHVIEN,SV_LOP)
R = SINHVIEN * SV_LOP
Masv Ho Dem Ten Malop DiemT1 Trần Văn An Int1001 8C2 Lê Đình Bắc Int1003 7T3 Trần Thị Hảo Int1003 10T4 Vũ Đức Lâm Int1002 8
Phép nối ngoài
07:18 chiều 95Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
Masv Ho Dem TenT1 Trần Văn AnC1 Trần Văn ĐứcC2 Lê Đình BắcT3 Trần Thị HảoT4 Vũ Đức LâmC3 Phạm Hải NgọcT2 Lê Thị Hà
Masv Malop DiemT1 Int1001 8C2 Int1003 7T3 Int1003 10T4 Int1002 8
Xét ví dụ (SINHVIEN,SV_LOP)
R = SINHVIEN ?? SV_LOP
Masv Ho Dem Ten Malop DiemT1 Trần Văn An Int1001 8C2 Lê Đình Bắc Int1003 7T3 Trần Thị Hảo Int1003 10T4 Vũ Đức Lâm Int1002 8C1 Trần Văn Đức null nullC3 Phạm Hải Ngọc null nullT2 Lê Thị Hà null null
Phép nối ngoàiMở rộng phép nối để tránh mất mát thông tin
o Thực hiện phép nốio Lấy thêm các bộ không thỏa điều kiện nối
Có 3 dạng1.Nối ngoài trái 2.Nối ngoài phải 3.Nối ngoài đầy đủ
07:18 chiều 96Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
Phép nối ngoàiQ = R f S
= { <t,u> nếu f (t,u) đúng <t, null,..,null> nếu u S, f(t,u) sai }
07:18 chiều 97Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
Phép nối ngoài
07:18 chiều 98Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
Masv Ho Dem TenT1 Trần Văn AnC1 Trần Văn ĐứcC2 Lê Đình BắcT3 Trần Thị HảoT4 Vũ Đức LâmC3 Phạm Hải NgọcT2 Lê Thị Hà
Masv Malop DiemT1 Int1001 8C2 Int1003 7T3 Int1003 10T4 Int1002 8
Xét ví dụ (SINHVIEN,SV_LOP)
R = SINHVIEN.Masv,Ho,Dem,Ten,Malop,Diem (SINHVIEN f SV_LOP)
SINHVIEN.Masv Ho Dem Ten Malop DiemT1 Trần Văn An Int1001 8C2 Lê Đình Bắc Int1003 7T3 Trần Thị Hảo Int1003 10T4 Vũ Đức Lâm Int1002 8C1 Trần Văn Đức null nullC3 Phạm Hải Ngọc null nullT2 Lê Thị Hà null null
với f là SINHVIEN.Masv=SV_LOP.Masv
Ví dụ 20Cho biết họ tên nhân viên và tên phòng ban
mà họ phụ trách nếu cóQuan hệ: NHANVIEN, PHONGBANThuộc tính: TENNV, TENPH
07:18 chiều 99
R1 NHANVIEN MANV=MATRPHG PHONGBAN
KQ HONV,TENNV, TENPHG (R1)
TENNV HONV TENPHG
Tung Nguyen Nghien cuuHang Bui null
Nhu Le null
Vinh Pham Quan ly
Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ
Bài tập 1
07:18 chiều 100
T1 T1.P = T2.AT2
T1 (T1.Q = T2.A AND T1.R = T2.C)T2
T1 (T1.Q = T2.B)T2
T1 T1.P = T2.AT2
T1 (T1.Q = T2.B)T2
T1T2T1
Khoa CNTT
Bài tập 2 Cho cơ sở dữ liệu CÔNGTY gồm các lược đồ: NHANVIEN(MANV, HONV, TENNV, NS, GT,
DCHI, LUONG, MANGS, MAĐV) ĐONVI(MADV, TENDV, MANQL, NGAY_BD)
DEAN(MADA, TENDA, DD_DA, MADV) THANNHAN(MANV, TEN_TN, NS, GT,
QUANHE) NV_DEAN(MANV, MADA, SOGIO) DONVI_DD(MADV, DD)
07:18 chiều 101Khoa CNTT
Bài tập 2(tt) Đưa ra tên và địa chỉ của tất cả các nhân viên làm
việc cho đơn vị. Với mỗi dự án có địa điểm tại Hà nội, hãy liệt kê mã
số dự án, mã số của đơn vị kiểm soát, Tên, địa chỉ và ngày sinh của người quản lý đơn vị
Tìm tên của các nhân viên làm việc trên tất cả các dự án do đơn vị có mã số 5 kiểm soát.
Tạo ra một danh sách các mã số dự án đối với các dự án có một nhân viên hoặc một người quản lý đơn vị kiểm soát dự án có tên là ‘Nam’.
Đưa ra tên của tất cả các nhân viên có nhiều hơn hoặc bằng 2 người phụ thuộc.
Đưa ra các nhân viên không có người phụ thuộc. Đưa ra tên của những người quản lý có ít nhất là một
người phụ thuộc. 07:18 chiều 102Khoa CNTT
Thi giữa kỳNắm được các khái niệm cơ bản về CSDL, mô
hình CSDLVẽ được lược đồ liên kết, hiểu lược đồ liên kết
mở rộng chuyển đổi được sang lược đồ quan hệ
Thực hiện được các thao tác CSDL (sử dụng các phép toán trên đại số quan hệ)
07:18 chiều 103Khoa CNTT