Cơ sở dữ liệu - Chương 4: Đại số quan hệ

Hiểu các phép toán trên quan hệ

Vận dụng các phép toán khi thao

tác trên dữ liệu (được tổ chức theo

môhìnhquanhệ)

pdf18 trang | Chuyên mục: SQL Server | Chia sẻ: dkS00TYs | Lượt xem: 15761 | Lượt tải: 1download
Tóm tắt nội dung Cơ sở dữ liệu - Chương 4: Đại số quan hệ, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
b1 c2
a2 b2 c1
r (A, B, C)
A B C
a1 b1 c1
a2 b2 c2
s(A, B, C)
7Ví dụ:
Phép trừ Ký hiệu: -
Cho hai quan hệ r và s khả hợp.
Biểu diễn hình thức của phép trừ:
r – s = {t / (t∈ r) ∧ (t ∉ s) }
Kết quả là một quan hệ có các thuộc tính là các thuộc tính của 
quan hệ r, gồm các bộ xuất hiện ở quan hệ r mà không có ở s.
r - s (A, B, C)
A B C
a2 b1 c2
a2 b2 c1
A B C
a1 b1 c1
a2 b1 c2
a2 b2 c1
r (A, B, C)
A B C
a1 b1 c1
a2 b2 c2
s(A, B, C)
CÁC PHÉP TOÁN TRÊN QUAN HỆ
8
Phép chọn Ký hiệu σ
Định nghĩa: Cho lược đồ quan hệ R (A1, A2,…, An), r(R):
σE (r) = {t , t ∈ r và t thỏa E} 
E là một biểu thức cho biết điều kiện chọn.
Ký hiệu: σE (r)
+ Phép chọn được dùng để trích chọn các dòng thỏa điều kiện chọn
E từ quan hệ ban đầu.
+ Kết quả là một quan hệ có số cột bằng số cột của r, số dòng là số
dòng trong r thỏa E.
CÁC PHÉP TOÁN TRÊN QUAN HỆ
9Phép chọn
Ví dụ1: Cho danh sách các nhân viên thuộc phòng có mã là KD. 
σPHG = ‘KD’ (NHANVIEN)
CÁC PHÉP TOÁN TRÊN QUAN HỆ
Ví dụ2: Cho danh sách các nhân viên nữ của phòng KD có lương
lớn hơn 1000000. 
σPHAI = ‘nu’ and PHG = ‘KD’ and LUONG >1000000 (NHANVIEN)
10
Phép chiếu Ký hiệu: Π
Cho trước một lược đồ quan hệ R (A1, A2,…, An), X⊂R, 
r(R):
ΠX(r) = {t[X] ⏐ t ∈ r}
Ký hiệu: Π A1, A2, ..., Ak (r)
Ai là các thuộc tính chiếu
+ Phép chiếu được dùng để bỏ bớt các thuộc tính không quan tâm 
từ quan hệ ban đầu.
+ Kết quả là một quan hệ có số cột là tập thuộc tính chiếu X, số
dòng là số dòng trong r có loại bỏ sự trùng lắp.
+ Nếu X có chứa khóa của r thì không cần loại bỏ sự trùng lắp dữ 
liệu.
CÁC PHÉP TOÁN TRÊN QUAN HỆ
11
Phép chiếu
Ví dụ 1: Cho danh sách nhân viên gồm các thông tin tên
nhân viên, lương, năm sinh, phái. 
∏ TENNV, LUONG, NAMSINH, PHAI (NHANVIEN)
CÁC PHÉP TOÁN TRÊN QUAN HỆ
Ví dụ 2: Cho danh sách tên tất cả các đề án. 
∏ TENDA DEAN
12
CÁC PHÉP TOÁN TRÊN QUAN HỆ
Ví dụ 1: Cho danh sách nhân viên có lương > 2000 
(MANV, TENNV, LUONG) 
Π MANV, TENNV, LUONG (σ LUONG >2000 (NHANVIEN))
Ví dụ 2: Cho danh sách nhân viên nữ thuộc phòng có mã là KD. 
(MANV, TENNV) 
Π MANV, TENNV (σ PHAI = ‘NU’ AND PHG = ‘KD’ (NHANVIEN))
13
CÁC PHÉP TOÁN TRÊN QUAN HỆ
Phép gán Ký hiệu: ←
Ví dụ 1: Cho danh sách nhân viên có lương > 2000 
(MANV, TENNV, LUONG)
Π MANV, TENNV, LUONG (σ LUONG >2000 (NHANVIEN))
KQ1 ← σ LUONG >2000 (NHANVIEN)
KQ ← Π MANV, TENNV, LUONG(KQ1)
14
CÁC PHÉP TOÁN TRÊN QUAN HỆ
Phép đổi tên Ký hiệu: ρ
Đổi tên quan hệ
Biểu thức ρχ (E) trả về kết quả biểu thức E dưới tên χ.
Đổi tên thuộc tính
biểu thức
ρ(A1, A2, …, An) (E)
trả về kết quả biểu thức E với các thuộc tính đã được đổi tên
thành A1, A2, …, An.
15
CÁC PHÉP TOÁN TRÊN QUAN HỆ
Phép tích Đề – các (Cartesian) 
Ký hiệu: x
Định nghĩa khái niệm “đặt cạnh nhau”. Giả sử ta
có hai bộ dữ liệu:
d = (d1, d2, …, dm)
e = (e1, e2, …, em)
Phép “đặt cạnh nhau” của e và d được định nghĩa
như sau:
d ∩ e = (d1, d2, …, dm, e1, e2, …, em)
16
Phép tích Đề–các (Cartesian) Ký hiệu: x
R1(A1, A2, …, An) r(R1) có k1 bộ dữ liệu
R2(B1, B2, …, Bm) s(R2) có k2 bộ dữ liệu
Biểu diễn hình thức của phép tích Đề-các:
r x s = {t/ t có dạng (a1, a2, …, an, b1, b2, …, bn), trong đó (a1, 
a2, …, an) ∈ r và (b1, b2, …, bn) ∈ s}
Tích Đề – các r x s của r và s là một quan hệ có k1*k2 
bộ, mỗi bộ của quan hệ kết quả được tạo thành bằng cách đặt
cạnh nhau 1 bộ của s và 1 bộ của r.
CÁC PHÉP TOÁN TRÊN QUAN HỆ
17
CÁC PHÉP TOÁN TRÊN QUAN HỆ
Phép tích Đề – các Ký hiệu: x
A B C
a1 b1 c1
a2 b2 c2
D E F
d1 e1 f1
d2 e2 f2
r (A, B, C) s(D, E, F)
A B C D E F
a1 b1 c1 d1 e1 f1
a1 b1 c1 d2 e2 f2
a2 b2 c2 d1 e1 f1
a2 b2 c2 d2 e2 f2
rxs (A, B, C, D, E, F)
18
CÁC PHÉP TOÁN TRÊN QUAN HỆ
Phép tích Đề – các Ký hiệu: x
MANV TEN PHG
N1 NVA KD
N2 TTB KT
MAPB TENPB
KD Kinh doanh
KT Kỹ thuật
NV (MANV, TEN, PHG) PB(MAPB, TENPB)
MANV TEN PHG MAPB TENPB
N1 NVA KD KD Kinh
doanh
N1 NVA KD KT Kỹ thuật
N2 TTB KT KD Kinh
doanh
N2 TTB KT KT Kỹ thuật
NVxPB
(MANV,TEN, PHG,MAPB,TENPB)
19
Phép kết Ký hiệu: ⋈
θ Kết
Kết tự nhiên (Natural join) Kết bằng (Equi join)
Kết trái (Left join)
Kết phải (Right join)
Kết ngoạïi (Outer join)
CÁC PHÉP TOÁN TRÊN QUAN HỆ
20
Phép kết Ký hiệu: ⋈ θ Kết
Phép kết là sự kết hợp có thứ tự của phép tích đề – các và phép
chọn. 
Gọi θ là một trong các phép so sánh {=, >, ≥, <, ≤, ≠}. Phép kết
được định nghĩa như sau:
Phép kết giữa quan hệ r(A) và s(B) ghi là:
r ⋈A θ B s = { t ∩ u| t ∈ r, u ∈ s và t[A] θ u[B]}
Điều kiện A θ B được gọi là điều kiện kết.
Cũng cần giả thiết rằng mỗi giá trị của cột r[A] đều có thể so 
được (thông qua phép so sánh θ) với mỗi giá trị của cột s[B].
CÁC PHÉP TOÁN TRÊN QUAN HỆ
21
Phép kết Ký hiệu: ⋈ Kết bằng, kết tự nhiên
θ là phép so sánh “=” ta gọi là phép kết bằng hay còn gọi
là equi-join
Kết bằng tại thuộc tính cùng tên của hai quan hệ và một
trong hai thuộc tính đó được loại bỏ qua phép chiếu thì
phép kết đó được gọi là kết tự nhiên .
CÁC PHÉP TOÁN TRÊN QUAN HỆ
22
R(A,B) 
C D
1 A
1 B
2 C
4 D
A B
1 X
2 Y
3 Z
S(C,D)
A B C D
1 X 1 A
1 X 1 B
2 Y 2 C
3 Z Null Null
A B C D
1 X 1 A
1 X 1 B
2 Y 2 C
Null Null 4 D
A B C D
1 X 1 A
1 X 1 B
2 Y 2 C
3 Z Null Null
Null Null 4 D
A B C D
1 X 1 A
1 X 1 B
2 Y 2 C
CÁC PHÉP TOÁN TRÊN QUAN HỆ
Inner join Q(A, B, C, D)
Left join Q(A, B, C, D) Right join Q(A, B, C, D)
Outer join Q(A, B, C, D)
Phép kết
23
CÁC PHÉP TOÁN TRÊN QUAN HỆ
Phép kết
MANV TEN PHG
N1 NVA KD
N2 TTB KT
MAPB TENPB
KD Kinh doanh
KT Kỹ thuật
NV (MANV, TEN, PHG) PB(MAPB, TENPB)
MANV TEN PHG MAPB TENPB
N1 NVA KD KD Kinh
doanh
N1 NVA KD KT Kỹ thuật
N2 TTB KT KD Kinh
doanh
N2 TTB KT KT Kỹ thuật
NVxPB
(MANV,TEN, PHG,MAPB,TENPB)
24
CÁC PHÉP TOÁN TRÊN QUAN HỆ
Phép kết
MANV TEN PHG TENPB
N1 NVA KD Kinh doanh
N2 TTB KT Kỹ thuật
NV ⋈ PB (MANV,TEN, PHG,TENPB)
25
Phép chia
Cho 2 quan hệ r(R) và s(S), S ⊆ R. Đặt R’ = R – S. 
r chia s, viết là r ÷s, là một quan hệ:
r’(R’) = { t ⏐ ∀ ts ∈ s, ∃ tr ∈ r: tr(R’) = t và tr(S) = ts}
CÁC PHÉP TOÁN TRÊN QUAN HỆ
r (A, B, C, D) 
A B C D
a b c d
a b c1 d1
b c c1 d1
a1 b c1 d1
a1 b1 c d
a1 b1 c1 d1
C D
c d
c1 d1
r (C, D) r ÷ s (A, B)
A B
a b
a1 b1
26
CÁC HÀM GOM NHÓM
Max (1 field kiểu số) : trả về giá trị lớn nhất. 
Min (1field kiểu số) : trả về giá trị nhỏ nhất. 
Count(tên field), Count(*): Đếm số phần tử, trùng
vẫn đếm. 
Sum(1field kiểu số): Trả về tổng. 
Avg(1 field kiểu số): Trả về giá trị trung bình.
27
G1, G2, …, Gn ℑ F1(A1), F2(A2), …, Fn(An) (E)
Trong đó
• E là biểu thức đại số quan hệ
• Gi là tên thuộc tính gom nhóm (có thể tính toán không gom
nhóm)
• Fi là hàm gom nhóm.
• Ai là tên thuộc tính tính tóan trong hàm gom nhóm Fi.
Tính toán trong đại số quan hệ
28
Tính toán trong đại số quan hệ
Ví dụ 1: Tính số nhân viên trong toàn công ty.
ℑCount(*) (NHANVIEN) No column name
20
ρTONGSONV (ℑCount(*) (NHANVIEN)) TONGSONV
20
29
Ví dụ 2:Cho biết trong từng phòng ban có bao nhiêu nhân viên.
Tính toán trong đại số quan hệ
PHG ℑCount(*) (NHANVIEN)
ρPHG, SONV ( PHGℑCount(*) (NHANVIEN))
MANV HOTEN PHAI PHG
N1 NVA Nam KD
N2 TTB Nu KT
N3 NVC Nam KD
N4 TTX Nu KT
N5 PTC Nu QLĐA
MANV HOTEN PHAI PHG
N1 NVA Nam KD
N3 NVC Nam KD
N4 TTX Nu KT
N2 TTB Nu KT
N5 PTC Nu QL
PHG No 
column 
name
KD 2
KT 2
QL 1
PHG SONV
KD 2
KT 2
QL 1
30
CÁC THAO TÁC TRÊN QUAN HỆ
Thêm
Xoá
Sửa
Các thao tác trên CSDL:
Tìm kiếm
31
Thêm
CÁC THAO TÁC TRÊN QUAN HỆ
) nêu ra một bộ cần chèn.
) viết ra một câu truy vấn mà kết quả là một tập
hợp các bộ cần chèn.
+ Trong ĐSQH, thao tác chèn được diễn đạt như sau:
r ← r ∪ E
trong đó r là một quan hệ và E là một biểu thức ĐSQH
Ví dụ: Phân công cho nhân viên mã số 001 làm thêm đề án 10 
với số giờ là 20.
PHANCONG ← PHANCONG ∪ {(‘001’,10,20)}
32
CÁC THAO TÁC TRÊN QUAN HỆ
Chỉ có thể xoá toàn bộ một bộ, không thể xóa các giá trị trên
chỉ 1 thuộc tính.
Trong ĐSQH, thao tác chèn được diễn đạt như sau:
r ← r - E
trong đó r là một quan hệ và E là một câu truy vấn ĐSQH
Xóa
Ví dụ: Xoá tất cả những phân công đề án cho nhân viên có mã là
001.
PHANCONG ← PHANCONG - σMANV=’001’ (PHANCONG)
33
CÁC THAO TÁC TRÊN QUAN HỆ
Xóa
Ví dụ: Xoá tất cả những phân công đề án mà địa điểm của đề
án ở Hà Nội.
R1← σDDIEM_DA =’HA NOI’ (PHANCONG⋈SODA=MADADEAN)
R2 ← πMANV,SODA,THOIGIAN(R1) 
PHANCONG ← PHANCONG – R2
34
CÁC THAO TÁC TRÊN QUAN HỆ
Sửa
+ Cơ chế làm thay đổi một giá trị trong một bộ mà
không làm thay đổi tất cả các giá trị trong bộ đó.
+ Để cập nhật, sử dụng phép chiếu tổng quát như sau:
r ← πF1,F2, …, Fn (r)
trong đó mỗi Fi là thuộc tính thứ i của R, thuộc tính thứ i 
không được cập nhật, hoặc sẽ được cập nhật.
35
Ví dụ 1: Tăng thời gian làm việc của nhân viên lên 1.5 lần
PHANCONG ← πMANV, SODA, THOIGIAN*1.5 (PHANCONG)
Ví dụ 2: Trong quan hệ PHANCONG, các nhân viên làm việc dưới 30 
giờ sẽ tăng thời gian làm việc 1.5 lần, còn lại sẽ tăng lên 2 lần.
PHANCONG ← πMANV, SODA, THOIGIAN*1.5 (σTHOIGIAN<30(PHANCONG)) 
∪ πMANV, SODA THOIGIAN*2 (σTHOIGIAN>=30(PHANCONG))
CÁC THAO TÁC TRÊN QUAN HỆ
Sửa
36
Hết.

File đính kèm:

  • pdfChuong_4_Dai_so_quan_he.pdf
Tài liệu liên quan