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ửa - Không làm thay đổi dữ liệu rút trích Truy vấn query Thực hiện các xử lý - Đại số quan hệ Rel
Trang 1Chương 4
Đại số quan hệ
Trang 3Giớ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
trên 20000
5 4
Tung Nguyen 12/08/1955 638 NVC Q5 Nam 40000
1 Tung Nguyen 12/08/1955
Hung Nguyen 09/15/1962
Quang Pham 11/10/1937
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 (query)
Thực hiện các xử lý
- Đại số quan hệ (Relational Algebra)
Biểu diễn câu truy vấn dưới dạng biểu thức
- Phép tính quan hệ (Relational Calculus)
Biểu diễn kết quả
- SQL (Structured Query Language)
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ệ
Trang 10Trinh 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=3 DOM(TENNV) = DOM(TENTN) DOM(NGSINH) = DOM(NG_SINH) DOM(PHAI) = DOM(PHAITN)
Trang 111 2 1
Trang 131 2 1
Trang 151 2 1
Trang 17Phép trừ, phép hội, phép giao tập hợp
R HONV TENNV
S HONV TENNV
Kết quả phép trừ Q ={Nguyen Tung}
Kết quả phép hội Q ={Vuong Quyen, Nguyen Tung, Le Nhan, Bui
Trang 18Câu hỏi 1: Cho biết nhân viên không làm việc ? (Phép trừ)
Câu hỏi 2: Cho biết nhân viên được phân công tham gia đề án có mã số
Trang 21Phé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
Trang 22Phé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 1 5 12
D 7 7 3 10
α β β β
Trang 23Phép chọn (tt)
Ví dụ
σ (A=B) (R) σ (A=B) ∧ (D>5) (R) (R)
Trang 24Phép chọn
(Điều kiện 1 ∧ điều kiện 2 ∧ ….)
NV001 Nguyễn Tấn Đạt 10/12/1970 Nam
NV002 Trần Đông Anh 01/08/1981 Nữ
NV003 Lý Phước Mẫn 02/04/1969 Nam
NHANVIEN MANV HOTEN NTNS PHAI
NV001 Nguyễn Tấn Đạt 10/12/1970 Nam NV003 Lý Phước Mẫn 02/04/1969 Nam
Kết quả phép chọn
Câu hỏi 1: Cho biết các nhân viên nam ?
24
Trang 25NV001 Nguyễn Tấn Đạt 10/12/1970 Nam
NV002 Trần Đông Anh 01/08/1981 Nữ
NV003 Lý Phước Mẫn 02/04/1969 Nam
NHANVIEN MANV HOTEN NTNS PHAI
Kết quả phép chọn
Câu hỏi 2: Cho biết các nhân viên nam sinh sau năm 1975 ?
(không có bộ nào thỏa)
Phép chọn
Trang 26Phép chọn (tt)
Phép chọn có tính giao hoán
Trang 29Nội dung chi tiết
Trang 30- Có số bộ luôn ít hơn hoặc bằng số bộ của R
- Phép chiếu loại bỏ những bộ trùng nhau
Ví dụ
πA1, A2, …, Ak(R)
πA,C (R)
Trang 31 Biểu diễn cách 1 : Cú pháp : (Quan hệ) Cột1, cột2, cột 3, ….
NV001 Nguyễn Tấn Đạt 10/12/1970 Nam
NV002 Trần Đông Anh 01/08/1981 Nữ
Kết quả phép chiếu
Câu hỏi 1: Cho biết họ tên nhân viên và giới tính ?
π
NHANVIEN HOTEN PHAI
Nguyễn Tấn Đạt Nam Trần Đông Anh Nữ
Phép chiếu
Trang 32 Biểu diễn cách 1:
Biểu diễn cách 2:
Câu hỏi 4:
NHANVIEN MANV HOTEN NTNS PHAI
NV001 Nguyễn Tấn Đạt 10/12/1970 Nam
NV002 Trần Đông Anh 01/08/1981 Nữ
NV003 Lý Phước Mẫn 02/04/1969 Nam
Kết quả phép chiếu
Câu hỏi 2: Cho biết họ tên và ngày tháng năm sinh của các nhân viên nam?
Bước 1: (còn gọi là biểu thức Kết quả phép chọn
ĐSQH) được đổi tên thành quan hệ Q
Bước 2:
NHANVIEN HOTEN NTNS
Nguyễn Tấn Đạt 10/12/1970
Lý Phước Mẫn 02/04/1969
Phép chiếu
32
Trang 33Phép chiếu
Phép chiếu không có tính giao hoán
Trang 35Phép chiếu mở rộng
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 39Chuỗi các phép toán
Trang 40KQ(HO, TEN) ← πHONV, TENNV (NV_P4)
ρKQ(HO, TEN) (πHONV, TENNV (NV_P4))
Trang 41Nội dung chi tiết
Trang 43D + +
+ +
+ - -
-
-R × S
Trang 44Phép tích Cartesian (tt)
Trang 45NHANVIEN × PHONGBAN× …Quan-hệ-k
Câu hỏi 5 được viết lại:
Nam Nữ Nam
02/04/1969 01/08/1981 10/12/1970
NTNS HOTEN
MANV
Nguyễn Tấn Ðạt NV001
Lý Phước Mẫn NV003
Trần Ðông Anh NV002
NHANVIEN
PHAI PHONG
DH NC NC
NHANVIEN X PHONGBAN
MANV HOTEN NTNS PHAI PHONG MAPH TENPH TRPH
NV001 Nguyễn Tấn Đạt 10/12/1970 Nam NC NC Nghiên cứu NV001 NV001 Nguyễn Tấn Đạt 10/12/1970 Nam NC DH Điều hành NV002 NV002 Trần Đông Anh 01/08/1981 Nữ DH NC Nghiên cứu NV001 NV002 Trần Đông Anh 01/08/1981 Nữ DH DH Điều hành NV002
Phép tích Cartesian (tt)
Trang 46+ +
+ - -
-
Trang 47Ví dụ
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, …
Nghien cuu 5 333445555 05/22/1988
Dieu hanh 4 987987987 01/01/1995
Trang 50Ví dụ
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
R1 ← (πLUONG (NHANVIEN))R2 ← σNHAN_VIEN.LUONG < R1.LUONG(NHANVIEN × R1)R3 ← πNHAN_VIEN.LUONG (R2)
KQ ← πLUONG (NHANVIEN) − R3
Trang 51Ví dụ
Cho biết các phòng ban có cùng địa điểm với phòng
số 5
- Quan hệ: DIADIEM_PHG
- Thuộc tính: DIADIEM, MAPHG
- Điều kiện: MAPHG=5
Phòng 5 có tập hợp những
địa điểm nào? Phòng nào có địa điểm nằm trong trong tập hợp đó?
DIADIEM MAPHG
1 4 5 5
TP HCM
VUNGTAU NHATRANG
HA NOI
DIADIEM MAPHG
1 4 5 5
TP HCM
VUNGTAU NHATRANG
HA NOI
Trang 52Ví dụ
B1: Tìm các địa điểm của phòng 5
B2: Lấy ra các phòng có cùng địa điểm với DD_P5
DD_P5(DD) ← πDIADIEM (σMAPHG=5 (DIADIEM_PHG))
R2 ← σDIADIEM=DD (R1 × DD_P5)
KQ ← πMAPHG (R2)R1 ← σMAPHG ≠ 5 (DIADIEM_PHG)
Trang 53Nộ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)
Phép chia
Các phép toán khác
Trang 54- 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 đó
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 ≠ , = , < , > , ≤ , ≥
Trang 55Câu hỏi : Cho biết mã nhân viên, họ tên và tên phòng mà n/v trực thuộc.
((NHANVIEN X PHONGBAN) : NHANVIEN.PHONG=PHONGBAN.MAPH)
MANV HOTEN NTNS PHAI PHONG MAPH TENPH TRPH
NV001 Nguyễn Tấn Đạt 10/12/1970 Nam NC NC Nghiên cứu NV001
NV001 Nguyễn Tấn Đạt 10/12/1970 Nam NC DH Điều hành NV002
NV002 Trần Đông Anh 01/08/1981 Nữ DH NC Nghiên cứu NV001
NV002 Trần Đông Anh 01/08/1981 Nữ DH DH Điều hành NV002
NV003 Lý Phước Mẫn 02/04/1969 Nam NC NC Nghiên cứu NV001
-Ta thấy nếu thực hiện phép tích Decartes NHANVIEN X PHONGBAN thì
mỗi nhân viên đều thuộc 2 phòng.
- Thực tế mỗi nhân viên chỉ thuộc duy nhất 1 phòng ban do ràng buộc khóa ngoại (PHONG), do đó để lấy được giá trị MAPH đúng của mỗi
nhân viên
Phép kết
phải có điều kiện chọn:
NHANVIEN.PHONG = PHONGBAN.MAPH
Trang 56Quan-hệ-1
* Phép kết được định nghĩa là phép tích Decartes và có điều kiện
chọn liên quan đến các thuộc tính giữa 2 quan hệ, cú pháp :
Trang 57Phé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
Trang 58C 3 6
R B<D S
Trang 59C 3 6
C 3 6
R C=S.C S
Trang 60C 3 6
C 3
S.C 3
D 1
C 3
D 1 2
Trang 65Nội dung chi tiết
Trang 66Phép chia
} )
, ( , /
S R
Q = ÷ = ∀ ∈ ∈
66
Trang 68Hoặc viết Q= PHANCONG DEAN
Q= PHANCONG/DEAN
MADA
TH001 TH002 DT001
÷
Phép chia
68
Trang 69HV01 HV03
KETQUATHI[Mahv,Mamh] /MONHOC[Mamh]
Q=KETQUA/MONHOC
][
],
[
Mamh MONHOC
MONHOC
Mamh Mahv
Trang 703 1
1 1 1
1 1
R ÷ S
Trang 71Ví dụ
Cho biết mã nhân viên tham gia tất cả các đề án
- Quan hệ: PHANCONG, DEAN
- Thuộc tính: MANV
Trang 73Nội dung chi tiết
Trang 752 2
SUM(B) = 10AVG(A) = 1.5MIN(A) = 1MAX(B) = 4COUNT(A) = 4
Trang 76G1, G2, …, GnIF1(A1), F2(A2), …, Fn(An)(E)
Trang 77β γ
2 2
C 7 7 3
10 AISUM(C)(R)
Trang 79Ví dụ
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 tinh: TENNV, TENPH
R1 ← NHANVIEN PHG=MAPHG PHONGBAN
KQ ← πHONV,TENNV, TENPHG (R1)
Tung Nguyen Nghien cuu