2. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
Giớ i thiệ u
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
thấp hơn 50000
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
1
5
4
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
02:45 AM
Khoa CNTT
2
3. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
Giớ i thiệ u
Xét một số xử lý trên quan hệ SINHVIEN, SV_DIEM, MONHOC
SINHVIEN
SV_DIEM
Masv
Ho
Dem
Ten
T1
C2
T3
T4
Trần
Lê
Trần
Vũ
Văn
Đình
Thị
Đức
An
Bắc
Hảo
Lâm
C3
Phạm
Hải
Ngọc
Mamon
Diem
T1
Int1001
8
T1
Int1002
9
C2
Int1003
7
C2
Int1002
3
T3
Int1003
10
T4
MONHOC
Masv
Int1002
8
Mamon
Sotinchi
C2
Int1001
8
Int1001
Int1002
Int1003
02:45 AM
Tenmon
CSDL
NGLT C
TRR
3
4
3
T4
Int1001
7
C3
Int1003
6
Khoa CNTT
3
4. Ngôn ngữ Đại số quan hệ
Nhập môn Cơ sở Dữ liệu
Giớ i thiệ u
Xét một số xử lý trên quan hệ SINHVIEN, SV_DIEM
BANGDIEM
02:45 AM
Khoa CNTT
4
5. Ngôn ngữ đại số quan hệ
Nhập môn Cơ sở Dữ liệu
Giớ i thiệ u
Các thao tác:
1. Cậ p nhậ t: Thay đổi dữ liệu (trạng thái CSDL):
o
o
o
Thêm các bộ mới
Xóa các bộ
Sửa giá trị của bộ
1. Các phép toán đạ i số quan hệ
phép toán tập hợp: hợp, giao, trừ, tích Đề-các
Các phép toán trên cơ sở dữ liệu quan hệ: chọn,
chiếu, đổi tên, nối, chia
1. Mộ t số phép toán bổ sung: nhóm, nối ngoài
Các
02:45 AM
Khoa CNTT
5
6. Ngôn ngữ đại số quan hệ
Nhập môn Cơ sở Dữ liệu
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ác
Thê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ệ
02:45 AM
Khoa CNTT
6
7. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ đại số quan hệ
1.1. Thêm bộ mớ i vào quan hệ
Được diễn đạt
o
o
INSERT(R; t)
R là quan hệ
t là một bộ mới cần thêm vào
Ví dụ
o
o
o
o
INSERT(SINHVIEN; T5,”Nguyen”, “Hong”, “Anh”)
INSERT(SV_DIEM; “T5”, “Int1002”, 9)
INSERT(SV_DIEM; “T5”, “Int1004”, 7)
INSERT(SV_DIEM; “T5”,” Int1001”, 12)
Vi phạm ràng buộc
o
o
o
02:45 AM
Ràng buộc miền
Ràng buộc khóa
Ràng buộc tham chiếu
Khoa CNTT
Xử lý
Loại bỏ
7
8. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
1.1. Thêm bộ mớ i vào quan hệ
SINHVIEN
Masv
T1
C2
T3
T4
C3
Ho
Trần
Lê
Trần
Vũ
Phạm
MONHOC
Mamon
Int1001
Int1002
Int1003
Dem
Văn
Đình
Thị
Đức
Hải
Tenmon
CSDL
NGLT C
TRR
Ten
An
Bắc
Hảo
Lâm
Ngọc
Sotinchi
3
4
3
SV_DIEM
Masv
Mamon
Diem
T1
T1
C2
C2
T3
T4
C2
T4
C3
Int1001
Int1002
Int1003
Int1002
Int1003
Int1002
Int1001
Int1001
Int1003
8
9
7
3
10
8
8
7
6
INSERT(SV_DIEM; “C4”,“Int1001”,9.5)
INSERT(SINHVIEN;“T1”, “Trầ n”,”Bá”,”Luậ n”)
null, “Vũ”,null,”Lu
INSERT(SV_DIEM; “T4”, “Int1007”, 6.0)ậ n”)
02:45 AM
Khoa CNTT
8
9. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ đại số quan hệ
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
o
DELETE(R; f )
R là quan hệ
f là một biểu thức ĐS
Ví dụ
DELETE(SINHVIEN; Masv = “T1”)
o DELETE(SV_DIEM; Masv = “T2” )
Ràng buộ c có thể vi phạ m
o
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,
Xử lí
o Sửa đổi giá trị khóa ngoài tham chi ếu (null)
o
02:45 AM
Khoa CNTT
9
10. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
1.2. Xóa các bộ
SINHVIEN
Masv
T1
C2
T3
T4
C3
Ho
Trần
Lê
Trần
Vũ
Phạm
MONHOC
Mamon
Int1001
Int1002
Int1003
Int2005
Dem
Văn
Đình
Thị
Đức
Hải
Tenmon
CSDL
NGLT C
TRR
KTCT
Ten
An
Bắc
Hảo
Lâm
Ngọc
Sotinchi
3
4
3
2
SV_DIEM
Masv
Mamon
Diem
T1
T1
C2
C2
T3
T4
C2
T4
C3
Int1001
Int1002
Int1003
Int1002
Int1003
Int1002
Int1001
Int1001
Int1003
8
9
7
3
10
8
8
7
6
DELETE(MONHOC;Masv =“T1”)
DELETE(SV_DIEM; Mamon =“Int2005”)
DELETE(MONHOC; Masv =“C2”) and Mamon =“Int1001”)
DELETE(SV_DIEM; Masv = =“Int1001”)
DELETE(SINHVIEN; Mamon“T4”
02:45 AM
Khoa CNTT
10
11. Ngôn ngữ Đại số quan hệ
Nhập môn Cơ sở Dữ liệu
1.3. Cậ p nhậ t các bộ
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ệ NHANVIEN
o “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.
02:45 AM
Khoa CNTT
11
12. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
1.3. Cậ p nhậ t các bộ
Được diễn đạt
MODIFY(R; f;<a i = v i ,…>)
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)
02:45 AM
Khoa CNTT
12
13. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
1.3. Cậ p nhậ t các bộ
MODIFY(R; f;<a i = v i ,…>)
Các ràng buộc toàn vẹn có thể vi phạm
o Ràng buộc miền
o 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ếu
Ví dụ
MODIFY(SINHVIEN Masv =“T1”; Masv
MODIFY(SV_DIEM; MasvMasv;;=“T1”; Mamon =“Int1002”)
MODIFY(SV_DIEM; =“T1”and Mamon=“Int1001”; Diem=5.5)
MODIFY(SINHVIEN Masv =“T1”;
dem=“Đức”)
=“T5”)
02:45 AM
Khoa CNTT
13
14. Nội dung chi tiết
Giới thiệu
Các thao tác cập nhật trên quan hệ
Đại số quan hệ
Phép toán tập hợp
Phép chọn
Phép chiếu
Phép tích Cartesian
Phép nối
Phép chia
Các phép toán khác
02:45 AM
Khoa CNTT
14
15. Ngôn ngữ Đại số quan hệ
Nhập môn Cơ sở Dữ liệu
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ệ
02:45 AM
Khoa CNTT
15
16. Ngôn ngữ Đại số quan hệ
Nhập môn Cơ sở Dữ liệu
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
o
o
Hội ∪ (union)
Giao ∩ (intersec)
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
o
Tích Đề-các × (Cartesian product)
Nối
(join)
Đổi tên ρ
02:45 AM
Khoa CNTT
16
17. Ngôn ngữ Đại số quan hệ
Nhập môn Cơ sở Dữ liệu
Nộ i dung chi tiế t
Giới thiệu
Các thao tác cập nhật trên quan hệ
Đại số quan hệ
Phép toán tậ p hợ p
Phép chọn
Phép chiếu
Phép tích Cartesian
Phép nối
Phép chia
Các phép toán khác
02:45 AM
Khoa CNTT
17
18. Ngôn ngữ Đại số quan hệ
Nhập môn Cơ sở Dữ liệu
2.1. Phép toán tậ p hợ p
Quan hệ là tập hợp các bộ
Phép hợp R ∪ S
Phép giao R ∩ S
Phé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)
02:45 AM
Khoa CNTT
18
19. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
2.1 Phép toán tậ p hợ p
Ví dụ: tính khả hợp
GIAOVIEN Ho
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
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
NHANVIEN
Dem
Đức
Thành
01/01/1969
3.66
Bậc của 2 quan hệ n=5
Miền giá trị các thuộc tính như nhau
02:45 AM
Khoa CNTT
19
20. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
2.1 Phép toán tậ p hợ p
Ví dụ: tính khả hợp
NHANVIEN
TENNV
NS
GT
Tung
12/08/1955
Hang
THANNHAN
TENTN
NS_TN
GT_TN
Nam
Trinh
04/05/1986
Nu
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
Bậc n=3
DOM(TENNV) = DOM(TENTN)
DOM(NS) = DOM(NS_TN)
DOM(GT) = DOM(GT_TN)
02:45 AM
Khoa CNTT
20
21. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
2.1.a Phép hợ p
Cho 2 quan hệ R và S khả hợp
Phép hợp 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 }
Ví dụ 1
R
R∪ S
B
α
S
B
α
1
A
B
1
α
2
α
2
α
2
β
3
β
02:45 AM
A
A
1
β
1
β
3
Khoa CNTT
R∪ S
21
22. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
2.1.a Phép hợ p
Ví dụ
GIAOVIEN
HSL
Văn
Tám
12/01/1980
3.33
Đình
Trí
10/12/1970
3.66
Hữu
Minh
05/06/1980
3.00
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
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ũ
Khoa CNTT
Ngaysinh
Nguyễn
02:45 AM
Ten
Trần
GIAOVIEN ∪
NHANVIEN
Dem
Lê
NHANVIEN
Ho
Vân
Long
18/04/1971
3.66
Phạm
Đức
Thành
01/01/1969
3.66
22
23. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
2.1.b. Phép giao
Cho 2 quan hệ R và S khả hợp
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 }
Ví dụ
R
B
α
A
B
1
α
2
α
2
β
3
β
02:45 AM
A
S
3
Khoa CNTT
R∩ S
A
B
α
2
β
3
23
24. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
2.1.c. Phép trừ
Cho 2 quan hệ R và S khả hợp
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 }
Ví dụ
R
B
α
S
A
B
2
α
1
3
β
1
A
B
1
α
α
2
β
β
02:45 AM
A
RS
1
Khoa CNTT
24
25. Ngôn ngữ Đại số quan hệ
Nhập môn Cơ sở Dữ liệu
Các tính chấ t
Giao hoán
R∪ S=S∪R
R∩ S=S∩R
Kết hợp
R ∪ (S ∪ T) = (R ∪ S) ∪ T
R ∩ (S ∩ T) = (R ∩ S) ∩ T
02:45 AM
Khoa CNTT
25
26. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
2.2. Các phép toán Cơ sở dữ liệu
2.2.a. Phép chọ n
Được dùng để lấy ra các bộ của quan hệ R
Các bộ được chọn phải thỏa mãn điều kiện chọn P
Ký hiệu
σ
P
(R)
P là điều kiện chọn gồm các mệnh đề có dạng
o <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 ∧ , ∨ , ¬
02:45 AM
Khoa CNTT
26
27. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
2.2.a. Phép chọ n
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
Ví dụ
R
B
C
D
α
α
1
7
α
β
5
β
β
β
02:45 AM
A
β
S=
σ
(R)
A
B
C
D
7
α
α
1
7
12
3
23
10
β
β
23
10
Khoa CNTT
S
(A=B)∧(D>5)
27
28. Ngôn ngữ Đại số quan hệ
Nhập môn Cơ sở Dữ liệu
2.2.a. Phép chọ n
BANGDIEM
D_1001 =
σ
(Mamon=“Int1001”)
(BANGDIEM)
D_1oo1
02:45 AM
Khoa CNTT
28
29. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
2.2.a. Phép chọ n
Phép chọn có tính giao hoán
σ (σ
p1
p2
Ví dụ
σ
=σ
(R)) =
σ (σ
p2
(R))
(Mamon=“Int1001”)
(Masv=“T1”)
p1
(σ (Masv = “T1”)(BANGDIEM))
(σ (Mamon = “Int1001”)(BANGDIEM))
Kết hợp nhiều phép chọn thành 1 phép chọn
σ (σ
p1
σ
=σ
p2
(R)) =
(Mamon=“Int1001”)
σ
(R)
(σ (Masv = “T1”)(BANGDIEM))
((Mamon=“Int1001”)^(Masv = “T1”))
02:45 AM
(p1 ^ p2)
Khoa CNTT
(BANGDIEM)
29
30. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
Ví dụ 1
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
σ
02:45 AM
PHG=4
Khoa CNTT
(NHANVIEN)
30
31. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
Ví dụ 2
Tì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 5
Quan hệ: NHANVIEN
Thuộc tính: LUONG, PHG
Điều kiện:
LUONG>2500000 và PHG=4 hoặc
LUONG>3000000 và PHG=5
σ
02:45 AM
(PHG=4 ^ LUONG>2500000) ∨ (PHG=5 ^ LUONG>3000000)
Khoa CNTT
(NHANVIEN)
31
32. Nội dung chi tiết
Giới thiệu
Các thao tác cập nhật trên quan hệ
Đại số quan hệ
Phép toán tập hợp
Phép chọn
Phép chiế u
Phép tích Cartesian
Phép nối
Phép chia
Các phép toán khác
02:45 AM
Khoa CNTT
32
33. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
2.2.b Phép chiế u
Lấy ra một số cột của quan hệ R
Ký hiệu
π
A1, A2, …, Ak
(R)
R: lược đồ quan hệ
Kết quả trả về là một quan hệ
A1, A2,,,Ak ⊆ tập thuộc tính của R
o Có k thuộc tính
o 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ụ
A
B
C
α
10
1
α
20
30
1
β
40
π
1
β
02:45 AM
R
2
Khoa CNTT
S=
A,C
(R)
33
34. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
2.2.b Phép chiế u
Ví dụ 1:
BANGDIEM
DS1 = πMasv,Ho,Dem,Ten,Diem (BANGDIEM)
DS1
02:45 AM
Khoa CNTT
34
35. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
2.2.b Phép chiế u
Tính chất:
π (π
X
Ví dụ 2:
π
Y
Masv,Ho,Dem,Ten
π
(
π
(R)) =
Masv,Ho,Dem,Ten,Mamon
(R)
X
(R)) =
π
Masv,Ho,Dem,Ten
π
02:45 AM
A1,A2,..,Ak
π
(
B1,B2,..Bn
(R))
Khoa CNTT
≠
?
π
B1,B2,..,Bn
π
(
A1,A2,..Ak
(R)
(R))
35
36. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
Ví dụ 3
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
π
02:45 AM
(NHANVIEN)
HONV, TENNV, LUONG
Khoa CNTT
36
37. Nhập môn Cơ sở Dữ liệu
Ngô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)
π
π
(NV_DEAN)
Manv
(THANNHAN)
Manv
π
02:45 AM
(NV_DEAN) ∪
Manv
Khoa CNTT
π
Manv
(THANNHAN)
37
38. Nhập môn Cơ sở Dữ liệu
Ngô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
π
Manv
02:45 AM
(NV_DEAN) ∩
Khoa CNTT
π
Manv
(THANNHAN)
38
39. Nhập môn Cơ sở Dữ liệu
Ngô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
π
(NV_DEAN) -
Manv
02:45 AM
Khoa CNTT
π
Manv
(THANNHAN)
39
40. Nhập môn Cơ sở Dữ liệu
Ngô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
π
Masv,Ho,Dem,Ten,Mamon
02:45 AM
Khoa CNTT
(
σ
(Diem<5)
(BANGDIEM))
40
41. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
Chuỗi phép toán và phép toán đổi tên
Ví dụ : Lấy ra danh sách Masv, Ho,Dem,Ten, Mamon
của những sinh viên có điểm <5
π
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
π
↔
π
02:45 AM
Masv,Ho,Dem,Ten,Mamon
Masv,Ho,Dem,Ten,Mamon
(σ(Luong >3000000)(σ(PHG=4)(NHANVIEN)))
(σ(Luong >3000000 ^ PHG=4)(NHANVIEN)))
Khoa CNTT
41
42. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
Chuỗi phép toán và phép toán đổi tên
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))
Thực hiện từng phép toán một
B1
B2
σ (R)
π
P
A1, A2, …, Ak
(Quan hệ kết quả ở B1)
Cần đặt tên cho quan hệ
02:45 AM
Khoa CNTT
42
43. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
Phép gán
Đượ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
Ký hiệu ←, =
Ví dụ
σ (R)
B1
S←
B2
KQ ←
02:45 AM
P
π
A1, A2, …, Ak
Khoa CNTT
(S)
43
44. Ngôn ngữ Đại số quan hệ
Nhập môn Cơ sở Dữ liệu
Phép đổ i tên (ρ - rho)
Được dùng để đổi tên, thuộc tính lược đồ quan hệ
Xét lược đồ quan hệ R(B, C, D)
Các dạng:
ρ S (R)
-> Đổi tên quan hệ R thành S
ρ X, C, D (R)
ρ S(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
02:45 AM
Khoa CNTT
44
45. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
Ví dụ 8
Cho 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ệ: NHANVIEN
Thuộc tính: HONV, TENNV
Điều kiện: PHG=4
C1:
ρ
C2:
NV_P4
KQ
KQ(HO,TEN)
←
ρ HO,
02:45 AM
←
π
TEN
(
π
σ
HONV, TENNV
PHG=4
(
σ
PHG=4
(NHANVIEN)))
(NHANVIEN)
HONV, TENNV
(NV_P4)
(KQ)
Khoa CNTT
45
46. Nội dung chi tiết
Giới thiệu
Các thao tác cập nhật trên quan hệ
Đại số quan hệ
Phép toán tập hợp
Phép chọn
Phép chiếu
Phép toán tích Cartesian
Phép nối
Phép chia
Các phép toán khác
02:45 AM
Khoa CNTT
46
47. Ngôn ngữ Đại số quan hệ
Nhập môn Cơ sở Dữ liệu
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ệu
R×S
Kết quả một quan hệ Q
Q(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ộ
02:45 AM
Khoa CNTT
47
48. Ngôn ngữ Đại số quan hệ
Nhập môn Cơ sở Dữ liệu
Phép toán tích Đề các
Ví dụ
R
1
β
2
B
C
D
α
10
+
β
10
+
β
20
-
γ
02:45 AM
B
α
S
A
10
-
R × S =??
Khoa CNTT
48
49. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
Phép toán tích Đề các
Ví dụ
R
unambiguous
A
B
α
1
β
2
R × S
D
α
10
+
β
10
+
β
20
-
γ
02:45 AM
C
10
-
Khoa CNTT
D
10
+
α
B
S.
B
α
C
α
R.
B
1
1
β
10
+
α
S
A
1
β
20
-
α
1
γ
10
-
β
2
α
10
+
β
2
β
10
+
β
2
β
20
-
β
2
γ
10
-
49
50. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
Phép toán tích Đề các
Thông thường theo sau phép tích Đề-các là phép
chọn
σ
R× S
A
A=S.B
(R × S)
S.
B
α
C
D
10
+
D
A
10
+
α
R.
B
1
α
1
β
10
+
β
2
β
10
+
α
1
β
20
-
β
2
β
20
-
α
1
γ
10
-
β
2
α
10
+
β
2
β
10
+
β
2
β
20
-
β
02:45 AM
S.
B
α
C
α
R.
B
1
2
γ
10
-
Khoa CNTT
50
51. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
Ví dụ 9: đưa ra danh sách bảng điểm những sv có điểm>=8
SINHVIEN
Masv
Ho
T1
Trần
C2
Lê
T3
Trần
T4
Vũ
C3
Phạm
R=
Dem
Văn
Đình
Thị
Đức
Hải
Ten
An
Bắc
Hảo
Lâm
Ngọc
σDiem>=8 (SV_DIEM)
ρ Ma,Mamon,Diem(R)
SV_DIEM
Masv Mamon
T1 Int1001
T1 Int1002
C2 Int1003
C2 Int1002
T3 Int1003
T4 Int1002
C2 Int1001
T4 Int1001
C3 Int1003
Diem
8
9
7
3
10
8
8
7
6
S = SINHVIEN ×R
KQ =
02:45 AM
π Masv,Ho,Dem,Ten,Mamon,Diem(σMasv=Ma (S))
Khoa CNTT
51
52. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
Ví dụ 10
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
Nghien cuu
5
333445555
NG_NHANCHU
C
05/22/1988
Dieu hanh
TENPHG
Quan ly
Nghien cuu
4
MAPHG
1
5
987987987
TRPHG
888665555
333445555
01/01/1995
NG_NHANCHU
MANV
C
06/19/1981
05/22/1988
333445555
Dieu hanh
MANV
Quan ly
333445555
999887777
987654321
987987987
σ
888665555
02:45 AM
4
TENNV
1
Tung
Hang
Nhu
Hung
TRPHG=MANV
Vinh
TENNV
HONV
…
Tung
Nguyen
…
987987987
01/01/1995
987987987
Hung
Nguyen
…
HONV
NS
DCHI
GT
LUONG
PHG
888665555
06/19/1981
888665555
Vinh
Pham
…
Nguyen
12/08/1955
638 NVC Q5
Nam
40000
5
Bui
07/19/1968
332 NTH Q1
Nu
25000
4
Le
06/20/1951 291 HVH QPN
Nu
43000
4
Nguyen
09/15/1962
Ba Ria VT
38000
5
(PHONGBAN × NHANVIEN)Nam
Pham
Khoa CNTT
06/19/1981
Nam Dinh
Nam
54000
1
52
53. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
Ví dụ 10
B1: Tích Đề-các PHONGBAN và NHANVIEN
PB_NV ← (NHANVIEN × PHONGBAN)
B2: Chọn ra những bộ thỏa TRPHG=MANV
KQ ←
02:45 AM
σ
TRPHG=MANV
Khoa CNTT
(PB_NV)
53
54. Nhập môn Cơ sở Dữ liệu
Ngô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_PHG
o Thuộc tính: DIADIEM, MAPHG
o Điều kiện: MAPHG=5
Phòng 5 có tập hợp những
địa điểm nào?
MAPHG
DIADIEM
Phòng nào có địa điểm nằm
trong trong tập hợp đó?
MAPHG
DIADIEM
1
1
TP HCM
4
HA NOI
4
HA NOI
5
VUNGTAU
5
VUNGTAU
5
NHATRANG
5
NHATRANG
5
02:45 AM
TP HCM
TP HCM
5
TP HCM
Khoa CNTT
54
55. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
Ví dụ 11
B1: Tìm các địa điểm của phòng 5
DD_P5 ←
π
DIADIEM
(
σ
MAPHG=5
(DIADIEM_PHG))
ρDD(DD_P5)
B2: Lấy ra các phòng có cùng địa điểm với DD_P5
σ
R2 ← σ
KQ ← π
R1 ←
MAPHG≠5
(DIADIEM_PHG)
DIADIEM=DD
02:45 AM
MAPHG
Khoa CNTT
(R1 × DD_P5)
(R2)
55
56. Nội dung chi tiết
Giới thiệu
Các thao tác cập nhật trên quan hệ
Đại số quan hệ
Phép toán tập hợp
Phép chọn
Phép chiếu
Phép tích Cartesian
Phép nố i
Nố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 chia
Các phép toán khác
02:45 AM
Khoa CNTT
56
57. Ngôn ngữ Đại số quan hệ
Nhập môn Cơ sở Dữ liệu
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
f
o
o
R(A1, A2, …, An) và S(B1, B2, …, Bm) các lược đồ quan hệ
f: điều kiện nối
Kết quả là một quan hệ Q
Q= { <t,v> | f(t,v) đúng, t∈R, v ∈ S}
o
o
o
o
02:45 AM
f có dạng Ai θ Bj
Ai là thuộc tính của R, Bj là thuộc tính của S
Ai và Bj có cùng miền giá trị
θ là phép so sánh ≠, =, <, >, ≤, ≥, kết hợp các toán tử logic
Khoa CNTT
57
58. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
Phép toán nố i (join)
Ví dụ 12:
SINHVIEN
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
LOP
Masv
Nguyễn
Thị
Hương
2/4/1991
Nữ
Int2001
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
02:45 AM
Khoa CNTT
LOP
Lop = Malop
58
59. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
Phép toán nố i (join)
Ví dụ 12 (kết quả):
SV_LOP
Masv
Ho
Dem
Ten
Ns
Gt
Lop
Malop
Tenlop
Giaovien
10001
Trần
Văn
Minh
1/1/1995
Nam
Int1001
Int1001
Tin học cơ sở 1
Hồ Sỹ Đàm
10002
Lê
Đức
Vinh
2/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
Khác với tích Đề các:
- 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ả
02:45 AM
Khoa CNTT
59
60. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
Phép toán nố i
Phân loại
1. Nối theta là phép nối có điều kiện dạng tổng quát
o
Ký hiệu R
o
f : điều kiện nối trên thuộc tính
f
S
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
ví dụ:
SINHVIEN(Masv, Ho,Dem,Ten, Ns,Gt)
SV_DIEM(Masv, Mamon, Diem)
BANGDIEM= SINHVIEN
SV_DIEM
SINHVIEN.Masv = SV_DIEM.Masv
BANGDIEM(SINHVIEN.Masv, Ho,Dem,Ten, Ns,Gt, SV_DIEM.Masv, Mamon, Diem
02:45 AM
Khoa CNTT
60
61. Ngôn ngữ Đại số quan hệ
Nhập môn Cơ sở Dữ liệu
Phép toán nố i
3. Nối tự nhiên (natural join)
o
o
o
Nối bằng
Hai thuộc tính nối cùng tên
Loại bỏ một thuộc tính dư thừa trong kết quả
Ký hiệu R
Ví dụ
S hay R ∗ S
SINHVIEN(Masv, Ho,Dem,Ten, Ns,Gt)
SV_DIEM(Masv, Mamon, Diem)
BANGDIEM= SINHVIEN * SV_DIEM
02:45 AM
BANGDIEM(Masv, Ho,Dem,Ten, Ns,Gt, Mamon, Diem)
Khoa CNTT
61
62. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
Ví dụ phép nối theta
R
R
B
C
1
2
4
7
02:45 AM
A
S
D
3
1
5
6
6
2
8
S
E
3
B<D
9
Khoa CNTT
62
63. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
Ví dụ phép nối bằng
R
R
R
B
C
1
2
4
7
R
A
D
3
3
6
6
2
8
9
B
C
1
2
4
7
02:45 AM
C=S.C
1
5
S
E
A
S
C=D
S
C
D
3
3
1
5
6
6
2
8
S
9
Khoa CNTT
63
64. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
Ví dụ phép nối tự nhiên
R
R
C
D
AA
BB
3
3
1
5
6
6
2
11
44
22
55
8
9
A
B
C
1
2
4
7
02:45 AM
S
S
Khoa CNTT
C C S.D D
C
33 31 1
66 62 2
64
65. Nhập môn Cơ sở Dữ liệu
Ngô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
B1: Chọn ra lương của ‘Tùng’
R(L_TUNG) ← πLuong(σTennv=‘Tung’ (NHANVIEN))
B2: Lấy ra những bộ có lương >lương của ‘Tùng”
KQ ←
02:45 AM
π
Manv,Honv,Tennv,Phg,luong
Khoa CNTT
(NHANVIEN
Luong>L_TUNG
R)
65
66. Nhập môn Cơ sở Dữ liệu
Ngô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ệc
o NHANVIEN(Manv,Honv,Tennv,Phg, Luong)
o PHONGBAN(MaPhg, TenPhg, TrPhg, Ng_Nhanchuc)
ρ
Manv,Honv,Tennv,MaPhg,Luong
(NHANVIEN)
KQ = NHANVIEN * PHONGBAN
02:45 AM
Khoa CNTT
66
67. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
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)
R =PHONGBAN* DDIEM_PHG
KQ=
02:45 AM
π
MaPhg, TenPhg,Ddiem,Dthoai
Khoa CNTT
(R)
67
68. Ngôn ngữ Đại số quan hệ
Nhập môn Cơ sở Dữ liệu
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)
02:45 AM
Khoa CNTT
68
69. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
Ví dụ 18
Cho biết phòng ban có cùng địa điểm với phòng 5
PHONGBAN(MaPhg, TenPhg, TrPhg, Ng_Nhanchuc)
DDIEM_PHG(MaPhg, Ddiem, Dthoai)
DDP5 =
π
DDIEM
(
σ
MaPhg=5
(DIADIEM_PHG))
R =PHONGBAN * DDIEM_PHG
KQ=
02:45 AM
πMaPhg,TenPhg (R * DDP5)
Khoa CNTT
69
70. Ngôn ngữ Đại số quan hệ
Nhập môn Cơ sở Dữ liệu
Tậ p đầ y đủ các phép toán ĐSQH
Tập các phép toán {σ, π, ×, −, ∪} là tập đầy đủ với
các phép toán ĐSQH
Nghĩa là các phép toán có thể được biểu diễn qua
chúng
Ví dụ
02:45 AM
R∩S = R∪S − ((R−S) ∪ (S−R))
R
C
S = σC(R×S)
Khoa CNTT
70
71. Nội dung chi tiết
Giới thiệu
Các thao tác cập nhật trên quan hệ
Đại số quan hệ
Phép toán tập hợp
Phép chọn
Phép chiếu
Phép tích Cartesian
Phép nối
Phép chia
Các phép toán khác
02:45 AM
Khoa CNTT
71
72. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
Phép chia
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
Ký 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 ⊆ Z
Kết quả của phép chia là một quan hệ T(Y), Với Y=Z-
X
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
tR(Y) = t
R(Z)
X
S(X)
T(Y)
Y
tR(X) = tS(X)
Hay: với mỗi bộ t ∈ T, với mọi u ∈ S thì <u,t> ∈ R
02:45 AM
Khoa CNTT
72
73. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
Phép chia
Ví dụ
R
B
A1
B1
A1
B1
A2
B1
A2
B4
A3
B1
A3
A4
B1
A1
B2
A2
B3
A3
B3
A4
B3
A1
B4
A2
B4
A3
02:45 AM
S
B4
Khoa CNTT
A
T= R ÷ S
A
T
B
73
74. Ngôn ngữ Đại số quan hệ
Nhập môn Cơ sở Dữ liệu
Phép chia
Cá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
02:45 AM
Khoa CNTT
74
75. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
Phép chia
Ví dụ
R
B
C
D
E
α
a
α
a
1
α
a
γ
a
1
α
a
γ
b
a
γ
a
1
β
a
γ
b
3
γ
a
γ
a
1
γ
a
γ
b
1
γ
a
β
b
1
S
D
E
a
1
b
1
1
β
02:45 AM
A
Khoa CNTT
R ÷ S R÷ S A
B
C
α
a
γ
γ
a
γ
75
76. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
Phép chia
Ví dụ
R
B
C
D
a1
b1
x1
a2
b2
a1
A
B
y1
a1
b1
x1
y1
a2
b2
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
02:45 AM
A
b1
x1
y1
Khoa CNTT
S
T=R÷S
?
76
77. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
Phép chia
Ví dụ
R
A
B
C
D
a1
b1
x1
a2
b2
a1
S
A
B
y1
a1
b1
x1
y1
a2
b2
b2
x1
y1
a2
b2
x1
y2
a1
b1
x1
y2
a1
b1
x2
y1
a2
b2
x2
y1
a1
b1
x2
a2
b3
a3
b1
1.
Y = {C,D }
2.
T1 = π Y (R)
C
D
x1
y1
y2
x1
y2
x3
y2
x2
y1
x1
y3
x2
y2
x3
y2
x1
02:45 AM
y3
Khoa CNTT
T1
77
78. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
1.
2.
Phép chia
Ví dụ
R
A
B
C
D
a1
b1
x1
a2
b2
a1
S
A
B
y1
a1
b1
x1
y1
a2
b2
b2
x1
y1
a2
b2
x1
y2
a1
b1
x1
y2
a1
b1
x2
a2
b2
a1
a2
Y = {C,D }
T1 = π Y (R)
3.
T2 =
R)
π
Y
(S × T1) -
B
a1
b1
x1
y1
a1
C
D
b1
x1
y2
D
a1
b1
x2
y1
x1
y1
y1
y2
y2
b1
x2
x1
a1
x2
y1
x2
y1
a1
b1
x3
y2
b1
x2
y2
x2
y2
a1
b1
x1
y3
b3
x3
y2
x3
y2
a2
b2
x1
y1
y3
x1
y3
a2
b2
x1
y2
a2
b2
x2
y1
b2
x2
y2
a2
02:45 AM
C
a2
a3
b2
x3
y2
a2
b2
x1
y3
b1
x1
T1
A
Khoa CNTT
78
79. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
1.
2.
Phép chia
Ví dụ
R
A
B
C
D
a1
b1
x1
a2
b2
a1
S
A
B
y1
a1
b1
x1
y1
a2
b2
b2
x1
y1
a2
b2
x1
y2
a1
b1
x1
y2
a1
b1
x2
a2
b2
a1
Y = {C,D }
T1 = π Y (R)
3.
T2 =
R)
π
Y
(S × T1) -
A
B C D
a1 T2 C x3 D y2
b1
C
D
a1
b1 x3 x1 y2 y3
x1
y1
y1
a2
b2 x1 x2 y3 y2
x1
y2
x2
y1
x2
y1
a2
b2
b1
x2
y2
x2
y2
a2
b2
a2
b3
x3
y2
x3
y2
a3
b1
x1
y3
x1
y3
T1
3.
02:45 AM
Khoa CNTT
T = T1-T2
T
x2
x3
x1
y2
y2
y3
C
D
x1
y1
x1
y2
x2
y1
79
80. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
Ví dụ 1 (bài tập)
Cho biết mã nhân viên tham gia tất cả các đề án
Quan hệ: DEAN (MaDa, TenDa,Ddiem, Phong);
NV_DEAN(Manv,MaDa, Sogio)
B1:
DA ← πMaDa(DEAN)
B2:
B3:
02:45 AM
NV_DEAN ←
KQ ←
πMANV, MADA(NV_DEAN)
πMANV(NV_DEAN÷DA)
Khoa CNTT
80
81. Nhập môn Cơ sở Dữ liệu
Ngô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ách
Quan hệ: NHANVIEN, NV_DEAN, DEAN
Thuộc tính: MANV
Điều kiện: PHONG=4
π
σ
B1:
P4_DA ←
B2:
NV_DA ← πManv MaDa(NV_DEAN)
B3:
MA_NV ← πManv(NV_DA÷P4_DA)
02:45 AM
(
MaDa
Khoa CNTT
PHG=4
(DEAN))
81
82. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
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
SV_LOP
SINHVIEN
Masv
T1
C2
T3
T4
C3
Ho
Trần
Lê
Trần
Vũ
Phạm
Dem
Văn
Đình
Thị
Đức
Hải
Ten
An
Bắc
Hảo
Lâm
Ngọc
LOP
Malop
Int1001
Int1002
Int1003
Int2003
02:45 AM
Tenlop
THCS
CSDL
CTD
NLHDH
Giaovien
Lê Văn Tân
Trần Văn Thịnh
Lê Đức Hòa
Lê Đức Hòa
Khoa CNTT
Masv
T1
T1
C2
C2
T3
T4
C2
T4
C3
T1
Malop
Int1001
Int1002
Int1003
Int1002
Int1003
Int1002
Int1001
Int1001
Int1003
Int1003
Diem
82
83. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
Ví dụ 3(bài tập)
SINHVIEN(Masv, Ho,Dem,Ten)
LOP(Malop,Tenlop,Giaovien)
SV_LOP(Masv, Malop, Diem)
B1: Lấy mã lớp trong LOP
LOPMA←
πMalop(LOP)
B2:Lấy mã sinh viên tham gia tất cả các lớp
SV←
πMasv(SV_LOP÷LOPMA)
B3: Danh sách đầy đủ các thuộc tính
KQ ← SV*SINHVIEN
02:45 AM
Khoa CNTT
83
84. Nhập môn Cơ sở Dữ liệu
Ngô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)
B1: Lấy mã lớp trong do Lê Đức Hòa dạy
LOPGV←
πMalop(σ
Giaovien=“Lê Đức Hòa”(LOP))
B2:Lấy mã sinh viên tham gia tất cả các lớp trong LOPGV
SV←
πMasv(SV_LOP÷LOPGV)
B3: Danh sách đầy đủ các thuộc tính
KQ ← SV*SINHVIEN
02:45 AM
Khoa CNTT
84
85. Nội dung chi tiết
Giới thiệu
Các thao tác cập nhật trên quan hệ
Đại số quan hệ
Phép toán tập hợp
Phép chọn
Phép chiếu
Phép tích Cartesian
Phép nối
Phép chia
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)
02:45 AM
Khoa CNTT
85
86. Ngôn ngữ Đại số quan hệ
Nhập môn Cơ sở Dữ liệu
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ị đơn
AVG
MIN
MAX
SUM
COUNT
02:45 AM
Khoa CNTT
86
87. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
Hàm kế t hợ p
Ví dụ
R
A
B
1
2
3
4
1
2
1
SUM(B) = 10
2
AVG(A) = 1.5
MIN(A) = 1
MAX(B) = 4
COUNT(A) = 4
02:45 AM
Khoa CNTT
87
88. Nhập môn Cơ sở Dữ liệu
Ngô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
G1,G2,..,Gk
F
(R)
F1(A1), F2(A2), …, Fn(An)
o R là Quan hệ
o Gi là thuộc tính gom nhóm
o F1, F2, …, Fn là các hàm kết hợp
o A1, A2, …, An là các thuộc tính tính toán trong hàm F
02:45 AM
Khoa CNTT
88
89. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
Phép gom nhóm
Ví dụ
R
A
B
C
α
2
7
α
4
7
β
2
3
γ
2
S1= ρ Sum_C FSUM(C)(R)
10
S1
Sum_c
27
S2 = ρ A, Sum_C FSUM(C)(R)
S2
14
β
3
γ
Khoa CNTT
Sum_c
α
02:45 AM
A
10
89
90. Ngôn ngữ Đại số quan hệ
Nhập môn Cơ sở Dữ liệu
Ví dụ 18
Tính số lượng nhân viên và lương trung bình của cả
công ty
F
02:45 AM
COUNT(), AVERAGE(LUONG)(NHANVIEN)
Khoa CNTT
90
91. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
Ví dụ 19
Tính số lượng nhân viên và lương trung bình của từng
phòng ban
F COUNT(), AVERAGE(LUONG)(NHANVIEN)
MAPGH
Đếm số học sinh theo môn và điểm TB, LN,NN trong
SV_DIEM(Masv, Mamon, Diem)
Mamon
02:45 AM
F COUNT(), AVG(Diem),Max(Diem),Min(Diem (SV_DIEM)
)
Khoa CNTT
91
92. Ngôn ngữ Đại số quan hệ
Nhập môn Cơ sở Dữ liệu
Ví dụ 20
Đưa ra danh sách nhân viên có lương cao nhất công ty
R1 = ρLuong
F Max(LUONG)(NHANVIEN)
R1*NHANVIEN
02:45 AM
Khoa CNTT
92
93. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
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
R = ρLuong_TB
F
AVG(LUONG)
π
(NHANVIEN)
Manv,Honv,Tennv, Maphg,Luong(NHANVIEN
02:45 AM
Khoa CNTT
Luong<Luong_TB
R)
93
94. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
Phép nố i ngoài
Xét ví dụ (SINHVIEN,SV_LOP)
Masv
T1
C1
C2
T3
T4
C3
T2
Ho
Trần
Trần
Lê
Trần
Vũ
Phạm
Lê
Dem
Văn
Văn
Đình
Thị
Đức
Hải
Thị
Ten
An
Đức
Bắc
Hảo
Lâm
Ngọc
Hà
Masv
T1
C2
T3
T4
Malop
Int1001
Int1003
Int1003
Int1002
Diem
8
7
10
8
R = SINHVIEN * SV_LOP
Masv
T1
C2
T3
T4
02:45 AM
Khoa CNTT
Ho
Trần
Lê
Trần
Vũ
Dem
Văn
Đình
Thị
Đức
Ten
An
Bắc
Hảo
Lâm
Malop
Int1001
Int1003
Int1003
Int1002
Diem
8
7
10
8
94
95. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
Phép nố i ngoài
Xét ví dụ (SINHVIEN,SV_LOP)
Masv
T1
C2
T3
T4
Malop
Int1001
Int1003
Int1003
Int1002
Diem
8
7
10
8
R = SINHVIEN ?? SV_LOP
Masv
T1
C2
T3
T4
C1
C3
T2
02:45 AM
Khoa CNTT
Masv
T1
C1
C2
T3
T4
C3
T2
Ho
Trần
Lê
Trần
Vũ
Trần
Phạm
Lê
Ho
Trần
Trần
Lê
Trần
Vũ
Phạm
Lê
Dem
Văn
Đình
Thị
Đức
Văn
Hải
Thị
Dem
Văn
Văn
Đình
Thị
Đức
Hải
Thị
Ten
An
Bắc
Hảo
Lâm
Đức
Ngọc
Hà
Ten
An
Đức
Bắc
Hảo
Lâm
Ngọc
Hà
Malop
Int1001
Int1003
Int1003
Int1002
null
null
null
Diem
8
7
10
8
null
null
null
95
96. Ngôn ngữ Đại số quan hệ
Nhập môn Cơ sở Dữ liệu
Phép nố i ngoài
Mở rộng phép nối để tránh mất mát thông tin
o Thực hiện phép nối
o Lấy thêm các bộ không thỏa điều kiện nối
Có 3 dạng
1. Nối ngoài trái
2. Nối ngoài phải
3. Nối ngoài đầy đủ
02:45 AM
Khoa CNTT
96
97. Ngôn ngữ Đại số quan hệ
Nhập môn Cơ sở Dữ liệu
Phép nố i ngoài
Q = R
f
S
= { <t,u> nếu f (t,u) đúng
<t, null,..,null> nếu ∀u ∈ S, f(t,u) sai
}
02:45 AM
Khoa CNTT
97
98. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
Phép nố i ngoài
Xét ví dụ (SINHVIEN,SV_LOP)
Masv
Malop
Int1001
Int1003
Int1003
Int1002
Ho
Dem
Ten
T1
C1
C2
T3
T4
C3
T2
Trần
Trần
Lê
Trần
Vũ
Phạm
Lê
Văn
Văn
Đình
Thị
Đức
Hải
Thị
An
Đức
Bắc
Hảo
Lâm
Ngọc
Hà
Diem
T1
C2
T3
T4
Masv
8
7
10
8
R=
π
SINHVIEN.Masv,Ho,Dem,Ten,Malop,Diem
f
SV_LOP)
với f là SINHVIEN.Masv=SV_LOP.Masv
SINHVIEN.Masv
T1
C2
T3
T4
C1
C3
T2
02:45 AM
(SINHVIEN
Khoa CNTT
Ho
Trần
Lê
Trần
Vũ
Trần
Phạm
Lê
Dem
Văn
Đình
Thị
Đức
Văn
Hải
Thị
Ten
An
Bắc
Hảo
Lâm
Đức
Ngọc
Hà
Malop
Int1001
Int1003
Int1003
Int1002
null
null
null
Diem
8
7
10
8
null
null
null
98
99. Nhập môn Cơ sở Dữ liệu
Ngôn ngữ Đại số quan hệ
Ví dụ 20
Cho 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, PHONGBAN
Thuộc tính: TENNV, TENPH
R1 ← NHANVIEN
KQ ←
MANV=MATRPHG
π
HONV,TENNV, TENPHG
PHONGBAN
(R1)
TENNV
TENPHG
Tung
Nguyen
Nghien cuu
Hang
Bui
null
Nhu
Le
null
Vinh
02:45 AM
HONV
Pham
Quan ly
Khoa CNTT
99
101. 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)
02:45 AM
Khoa CNTT
101
102. 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.
02:45 AM
Khoa CNTT
102
103. Thi giữa kỳ
Nắm được các khái niệm cơ bản về CSDL, mô hình
CSDL
Vẽ đượ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ệ)
02:45 AM
Khoa CNTT
103