Nội dung chi tiết Các thao tác cập nhật trên quan hệ Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 2... Giới thiệu tt Có 2 loại xử lý : - Làm thay đổi dữ liệu cập nhật : thêm mới, xóa và s
Trang 1Chương 4 Đại số quan hệ
Trang 2Nội dung chi tiết
Các thao tác cập nhật trên quan hệ
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
2
Trang 3Giới thiệu
Xét một số xử lý trên quan hệ KHOA
- Thêm Khoa ‘Hóa học’ vào quan hệ
- Chuyển Khoa CNTT sang phòng B12
- Cho biết tên các khoa đã được thành lập trên 10 năm
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
3
Sinh học 11/10/2000
MÃKHOA TÊNKHOA NĂMTL PHÒNG ĐIỆNTHOAI TRƯỞNGKHOA NGÀYNHẬNCHỨC
CNTT Công nghệ thông tin 1995 B11 0838123456 002 20/02/2005
VL Vật lý 1976 B21 0838223223 005 18/09/2003
SH Sinh học 1980 B31 0838454545 004 11/10/2000
B12
HH Hóa học 1980 B41 NULL 007 15/10/2001
Trang 4Giới thiệu (tt)
Có 2 loại xử lý :
- Làm thay đổi dữ liệu (cập nhật) : thêm mới, xóa và sửa
- Không làm thay đổi dữ liệu (rút trích) : truy vấn
Ngôn ngữ truy vấn (Query Language – QL) :
- Cho phép người dùng rút trích hay cập nhật dữ liệu được lưu
trong một mô hình dữ liệu
Ngôn ngữ truy vấn quan hệ :
- Đại số quan hệ (Relational Algebra)
• Biểu diễn câu truy vấn dưới dạng biểu thức, cho phép người dùng biểu diễn các bước thực hiện câu truy vấn
- Phép tính quan hệ (Relational Calculus)
• Biểu diễn kết quả phi thủ tục dựa trên ngôn ngữ logic, cho phép người dùng
diễn đạt cái họ cần hơn là thao tác xử lý nó
- SQL (Structured Query Language)
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
4
Trang 5• (x+y)*z and/or (x+7) / (y-3)
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
5
Đại số
Trang 7Đại số quan hệ (tt)
Hằng số là thể hiện của quan hệ
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ệ
- Kết quả trả về là một thể hiện của quan hệ
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
7
Trang 8Nội dung chi tiết
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
9
Trang 9 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)
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
10
Trang 10SINHVIEN TENGV NG_SINH GIOITINH
Trinh 04/05/1986 NuKhang 10/25/1983 NamPhuong 05/03/1958 NuMinh 02/28/1942 NamGIAOVIEN
Chau 12/30/1988 Nu
Bậc n=3 DOM(TENSV) = DOM(TENGV) DOM(NGSINH) = DOM(NG_SINH) DOM(PHAI) = DOM(GIOITINH)
Trang 11Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
121
A B
α
R ∪ S
αβ
121
β 3
α 2
Trang 12SINHVIENTENGV NG_SINH GIOITINH
Tung 12/08/1955 NamKhang 10/25/1983 NamNhu 06/20/1951 NuMinh 02/28/1942 NamGIAOVIEN
TENGV NG_SINH GIOITINHTung 12/08/1955 NamKhang 10/25/1983 NamNhu 06/20/1951 NuMinh 02/28/1942 NamGIAOVIEN ∪ SINHVIEN
Hang 07/19/1968 NuHung 09/15/1962 Nam
Trang 13Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
121
A B
α
R ∩ S
2
Trang 14Phép giao (tt)
SinhVien
HOTEN DIACHIĐinh Bá Tiến 119 Cống Quỳnh, Tp HCMNguyễn Thanh
Tùng 222 Nguyễn Văn Cừ, Tp HCM
Lê Quỳnh Như 291 Hồ Văn Huê, Tp HCM
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
15
GiaoVien
HOTEN DIACHIĐinh Bá Tiến 119 Cống Quỳnh, Tp HCMTrần Thanh Tâm 553 Mai Thị Lựu, Tp HCM
SinhVien ∩ GiaoVien
HOTEN DIACHIĐinh Bá Tiến 119 Cống Quỳnh, Tp HCM
Trang 15Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
121
Trang 16Phép trừ (tt)
SinhVien
HOTEN DIACHIĐinh Bá Tiến 119 Cống Quỳnh, Tp HCMNguyễn Thanh
Tùng 222 Nguyễn Văn Cừ, Tp HCM
Lê Quỳnh Như 291 Hồ Văn Huê, Tp HCM
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
17
GiaoVien
HOTEN DIACHIĐinh Bá Tiến 119 Cống Quỳnh, Tp HCMTrần Thanh Tâm 553 Mai Thị Lựu, Tp HCM
SinhVien – GiaoVien
HOTEN DIACHINguyễn Thanh
Tùng 222 Nguyễn Văn Cừ, Tp HCM
Lê Quỳnh Như 291 Hồ Văn Huê, Tp HCM
Trang 17Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
Trang 19Nội dung chi tiết
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
20
Trang 20Phé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
• Các mệnh đề được nối lại nhờ các phép ∧ , ∨ , ¬
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
21
σ P (R)
Trang 21Phép chọn (tt)
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
C
1512
β 23
D
77310
αβββ
αβ
Trang 23Nội dung chi tiết
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
24
Trang 24C111
β 40 2
π A,C (R)
A
αβ
C11
β 2
πA,C (R)
Trang 25Phép chiếu (tt)
Phép chiếu không có tính giao hoán
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
26
π A1, A2, …, An( π A1, A2, …,
Am(R)) = π A1, A2, …, An (R) , với n
≤ m
π X,Y (R) = π X ( π Y (R))
Trang 26Phép chọn vs Phép chiếu
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
27
A1, A2, A3 …, An
i
A1, A2, A3 …, An
Trang 27 Cho biết họ tên và mức lương của các giáo viên nữ
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
28
Ví dụ 1
π HOTEN, LUONG ( σ PHAI=‘Nữ’
(GIAOVIEN))
Trang 28 Cho biết mã số các giáo viên thuộc bộ môn HTTT hoặc có tham gia đề tài mã 001
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
29
Ví dụ 2
π MAGV ( σ MABM=‘HTTT’ (GIAOVIEN)) ∪ π MAGV ( σ MAĐT=‘001’ (THAMGIADT))
Trang 29 Cho biết mã số các trưởng khoa có chủ nhiệm đề tài
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
30
Ví dụ 3
π TRUONGKHOA(KHOA)) ∩ π GVCNĐT (ĐETAI))
Trang 30 Cho biết tên các công việc bắt đầu trong khoảng từ 01/01/2007 đến 01/08/2007
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
31
Ví dụ 4
σ (NGAYBĐ>=‘1/1/2007’ ∧ NGAYBĐ<=‘1/8/2007’)
(CONGVIEC)
Trang 31Phép chiếu tổng quát
Mở rộng phép chiếu bằng cách cho phép sử dụng các phép toán số học trong danh sách thuộc tính
Trang 33Chuỗi các phép toá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
Trang 35ρ 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
ρ S(X,C,D)(R)
Trang 36Ví dụ 5
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
37
Tìm mã giáo viên có chủ nhiệm đề tài thuộc chủ đề QLGD
hoặc là trưởng khoa
Trang 37(GIAOVIEN) KQ ← π MAGV, HOTEN
Trang 38(GIAOVIEN) KQ ← π MAGV, HOTEN
Trang 39Nội dung chi tiết
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
40
Trang 41++
+
-
-R × S
ρ (X,C,D) (S)
X
X
ρ Q (S)
Trang 42+
-
Trang 43004003002MAGV
Hệ thống thông tin
TENBM MABM TRUONGBM NGAYNHANCHUC
HTTT 002 20/09/2004Công nghệ tri thức CNTT
Mạng máy tính MMT 001 15/05/2005
…002
002
Trang 44HOTENTrần Trà DươngGV
Trương Nam Sơn
…
002 001
Trang 45Ví dụ 6 (tt)
B1: Tích Cartesian BOMON và GIAOVIEN
B2: Chọn ra những bộ thỏa TRUONGBM = MAGV
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
46
BM_GV ← (GIAOVIEN × BOMON)
KQ ← σ TRUONGBM=MAGV(BM_GV)
Trang 46Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
Trang 47Ví dụ 7
Cho biết mức lương cao nhất của các giảng viên
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
48
HOTEN LUONG …Nguyễn Hoài An 2000 …Trần Trà Hương 2500 …Nguyễn Ngọc Anh 2200 …
Trang 48Ví dụ 7 (tt)
B1: Chọn ra những lương không phải là lớn nhất
B2: Lấy tập hợp lương trừ đi lương trong R3
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
49
R1 ← ( π LUONG (GIAOVIEN))
R2 ← σ GIAOVIEN.LUONG < R1.LUONG(GIAOVIEN ×
R1) R3 ← π R2.LUONG (R2)
KQ ← π LUONG (GIAOVIEN) − R3
Trang 49Ví dụ 8
Cho biết họ tên các giáo viên cùng bộ môn với giáo viên ‘Trần Trà Hương’
- Quan hệ: GIAOVIEN
- Thuộc tính: HOTEN, MABM
- Điều kiện: HOTEN = ‘Trần Trà Hương’
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
50
Giáo viên “Trần Trà Hương”
ở bộ môn nào? Những giáo viên nào thuộc về bộ môn đó?
HOTENMABM
MMTHTTTHTTTVS
Nguyễn Hoài An
Nguyễn Ngọc AnhTrương Nam SơnTrần Trà Hương
… …
HOTENMABM
MMTHTTTHTTTVS
Nguyễn Hoài An
Nguyễn Ngọc AnhTrương Nam SơnTrần Trà Hương
… …
Trang 50Ví dụ 8 (tt)
B1: Tìm bộ môn mà giáo viên ‘Trần Trà Hương’ thuộc về
B2: Lấy ra họ tên các giáo viên cùng bộ môn
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
Trang 51Nội dung chi tiết
- Kết tự nhiên (Natural join)
- Kết có điều kiện tổng quát (Theta join)
- Kết bằng (Equi join)
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
53
Trang 52Phép kết
Được dùng để tổ hợp 2 bộ có liên quan từ 2 quan
hệ thành 1 bộ
Ký hiệu R S
- R(A1, A2, …, An) và S(B1, B2, …, Bm)
Kết quả của phép kết là một quan hệ Q
- Có n + m thuộc tính Q(A1, A2, …, An, B1, B2, …, Bm)
- Mỗi bộ của Q là tổ hợp của 2 bộ trong R và S, thỏa mãn một số điều kiện kết nào đó
Trang 53Phép kết (tt)
Phân loại
- Kết theta (theta join) là phép kết có điều kiện
• Ký hiệu R C S
• C gọi là điều kiện kết trên thuộc tính
- Kết bằng (equi join) khi C là điều kiện so sánh bằng
- Kết tự nhiên (natural join)
• Ký hiệu R S hay R ∗ S
• R+ ∩ S+ ≠ ∅
• Kết quả của phép kết bằng bỏ bớt đi 1 cột giống nhau
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
55
Trang 546
12
A B1
R
4
25
C36
7 8 9
R B<D S
Trang 556
12
A B1
R
4
25
C36
7 8 9
R C=D S
A B
1 2
C3
4 5 6
D3
E1
6 2
C D3
S
6
12
A B1
R
4
25
C36
4 5 6
S.C3
D1
6 2
S.C D3
S
6
12
ρ (S.C,D) S
Trang 566
12
A B1
R
4
25
C36
7 8 9
A B
1 2
C3
4 5 6
S.C3
D1
6 2
A B
1 2
C3
4 5 6
D12
Trang 58GIAOVIEN(MAGV, HOTEN, LUONG, PHAI, NGAYSINH,…)
R1(LG) ← π LUONG ( σ HOTEN=‘Nguyễn Hoài An’
(GIAOVIEN))
KQ ← GIAOVIEN LUONG>LG R1
KQ(MAGV, HOTEN, LUONG, PHAI, NGAYSINH,…, LG))
Trang 59Ví dụ 11
Với mỗi giáo viên, hãy cho biết thông tin của bộ môn
mà họ đang làm việc
- Quan hệ: GIAOVIEN , BOMON
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
Trang 60Ví dụ 12
Với mỗi đề tài, cho biết thông tin giáo viên chủ nhiệm đề tài đó
- Quan hệ: ĐETAI , GIAOVIEN
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
62
ĐETAI(MAĐT, TENĐT, KINHPHI, …, GVCNĐT) GIAOVIEN(MAGV, HOTEN, LUONG, PHAI, …)
KQ ← ĐETAI GVCNĐT = MAGV GIAOVIEN
KQ(MAĐT, TENĐT, KINHPHI, …, GVCNĐT, MAGV, HOTEN, …)
Trang 61Ví dụ 13
Với mỗi khoa cho biết thông tin trưởng khoa
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
63
Trang 62Ví dụ 14
Cho biết lương cao nhất trong bộ môn ‘HTTT’
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
64
Trang 63Ví dụ 15
Với mỗi khoa cho biết thông tin trưởng khoa
Cho biết giáo viên làm việc cùng bộ môn với giáo viên 002
Cho biết các giáo viên của bộ môn ‘Vi sinh’ có
tham gia đề tài 006
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
65
Trang 64Ví dụ 15
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
66
Trang 67Nội dung chi tiết
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
69
Trang 68- Có 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
R(Z)
Trang 69111
11
R ÷ S
A B C
α a γ
γ a γ
Trang 70KQ ← Q1 − Q3
Trang 71111
11
Q1
Trang 72b
11
Trang 73111
11
Trang 75Ví dụ 17
Cho biết mã giáo viên tham gia tất cả các đề tài
Cho biết mã giáo viên (T) tham gia tất cả công việc
(S) thuộc đề tài 001
Xác định:
S: CONGVIEC (madt,stt)(detai=001) R: THAMGIADT(magv, madt, stt)
Cho biết tên đề tài có tất cả giảng viên bộ môn ‘Hệ thống thông tin’ tham gia
Trang 77Nội dung chi tiết
- Phép kết ngoài (Outer join)
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
79
Trang 793
241
1
22
SUM(B) = 10 AVG(A) = 1.5 MIN(A) = 1 MAX(B) = 4 COUNT(A) = 4
Trang 80- A1, A2, …, An là các thuộc tính tính toán trong hàm F
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
82
G1, G2, …, Gn ℑ F1(A1), F2(A2), …, Fn(An)(E)
Trang 8122
C773
10 A ℑ SUM(C)(R)
SUM_C14310
A
αβγ
Trang 82Ví dụ 19
Cho biết số lượng giáo viên viên và tổng lương của họ
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
84
Trang 84Ví dụ 21
Cho biết tên khoa có đông giáo viên nhất
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
86
Trang 85Ví dụ 22
Cho biết họ tên giáo viên chủ nhiệm nhiều đề tài nhất
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
87
Trang 88Nội dung chi tiết
Các thao tác cập nhật trên quan hệ
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
93
Trang 90- Phân công giáo viên có mã 001 tham gia công việc 4
của đề tài số 001 với mức phụ cấp 2
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
95
Rnew ← Rold ∪ E
THAMGIAĐT ← THAMGIAĐT ∪ (‘001’, ‘001’, 4, 2)
Trang 91- Xóa phân công tham gia đề tài cho giáo viên 001
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
96
Rnew ← Rold − E
THAMGIAĐT ← THAMGIAĐT − σ MAGV=‘001’(THAMGIAĐT)
Trang 92Ví dụ 25
Xóa các đề tài thuộc chủ đề ‘NCPT’
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
97
Trang 94NHANVIEN(MANV, HOTEN, PHAI, LUONG,
PHONGBAN(MAPB, TENPHG, TR_PHG , NG_NC) DEAN(MADA, TENDA, MAPB )
CONGVIEC( MADA , STT, TENCV, TG) PHANCONG( MANV, MADA, STT )
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
99
Trang 95Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM
100