Download - C3 2 (tuan6,7)
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:48 sáng 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:48 sáng 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:48 sáng 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:48 sáng 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:48 sáng 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:48 sáng 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:48 sáng 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:48 sáng 9Khoa CNTT
Nhập môn Cơ sở Dữ liệuNgôn ngữ đại số quan hệ
DELETE(R; f )
Xử lí
07:48 sáng 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:48 sáng 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ần
MODIFY (NHANVIEN; Ten =“Tùng”; Phong = 4)MODIFY (NHANVIEN; all; Luong=Luong*1.1)MODIFY(MONHOC; Mamon=“Int1001”;
sotinchi=2)
07:48 sáng 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:48 sáng 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:48 sáng 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:48 sáng 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ợpo 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:48 sáng 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:48 sáng 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:48 sáng 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:48 sáng 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:48 sáng 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à S
Ký 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:48 sáng 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:48 sáng 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à S
Ký 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:48 sáng 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à S
Ký 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:48 sáng 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:48 sáng 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:48 sáng 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:48 sáng 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:48 sáng 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:48 sáng 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ố 4
Quan hệ: NHANVIEN Thuộc tính: PHGĐiều kiện: PHG=4
07:48 sáng 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:48 sáng 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:48 sáng 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:48 sáng 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:48 sáng 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:48 sáng 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:48 sáng 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ânNV_DEAN(Manv,Madean,Sogio)THANNHAN(Manv,Hoten, Gt)
07:48 sáng 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:48 sáng 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:48 sáng 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:48 sáng 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ệ