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:44 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:44 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:44 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:44 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:44 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:44 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:44 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:44 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:44 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:44 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:44 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:44 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:44 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:44 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:44 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:44 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:44 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:44 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:44 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:44 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:44 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:44 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:44 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:44 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:44 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:44 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:44 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:44 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:44 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:44 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:44 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:44 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:44 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:44 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:44 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:44 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:44 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:44 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:44 AM
Khoa CNTT
(
σ
(Diem<5)
(BANGDIEM))
40