Bài giảng Nhập môn Cơ sở dữ liệu - Bài 4: Ngôn ngữ đại số quan hệ

Nội dung

1. Giới thiệu

2. Biểu thức đại số quan hệ

3. Các phép toán

4. Biểu thức đại số quan hệ

5. Ví dụ

pdf17 trang | Chia sẻ: hienduc166 | Lượt xem: 785 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Bài giảng Nhập môn Cơ sở dữ liệu - Bài 4: Ngôn ngữ đại số quan hệ, để tải tài liệu về máy bạn click vào nút TẢI VỀ ở trên
chọn (Selection)
Š Trích chọn các bộ (dòng) từ quan hệ R. Các bộ được 
trích chọn phải thỏa mãn điều kiện chọn p.
Š Ký hiệu: 
Š Định nghĩa: p(t):thỏa điều kiện p
Š Kết quả trả về là một quan hệ, có cùng danh sách thuộc 
tính với quan hệ R. Không có kết quả trùng.
Š Phép chọn có tính giao hoán
)(Rpσ
)}(,/{)( tpRttRp ∈=σ
)())(())(( )21(1221 RRR pppppp ∧== σσσσσ
5Khoa HTTT-Đại học CNTT 9
Lược đồ CSDL quản lý giáo vụ
HOCVIEN (MAHV, HO, TEN, NGSINH, GIOITINH, NOISINH, MALOP)
LOP (MALOP, TENLOP, TRGLOP, SISO, MAGVCN)
KHOA (MAKHOA, TENKHOA, NGTLAP, TRGKHOA)
MONHOC (MAMH, TENMH, TCLT, TCTH, MAKHOA)
DIEUKIEN (MAMH, MAMH_TRUOC)
GIAOVIEN(MAGV,HOTEN,HOCVI,HOCHAM,GIOITINH,NGSINH,NGVL,
HESO, MUCLUONG, MAKHOA)
GIANGDAY(MALOP,MAMH,MAGV,HOCKY, NAM,TUNGAY,DENNGAY)
KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA)
Khoa HTTT-Đại học CNTT 10
3.2 Ví dụ phép chọn
ƒ Tìm những học viên có giới tính là nam và có nơi 
sinh ở TpHCM
σ(Gioitinh=‘Nam’)∧(Noisinh=‘TpHCM’)(HOCVIEN)
K11TpHCMNamLe Nhat MinhK1106
K11TpHCMNamTran Minh LongK1105
K11Tay NinhNuTran Ngoc LinhK1104
K11Kien GiangNuTran Ngoc HanK1102
K11Nghe AnNamHa Duy LapK1103
MalopNoisinhGioitinhHoTenMahv
HOCVIEN
6Khoa HTTT-Đại học CNTT 11
3.3 Phép chiếu (Project)
Š Sử dụng để trích chọn giá trị một vài thuộc tính của 
quan hệ
Š Ký hiệu: 
 trong đó Ai là tên các thuộc tính được chiếu.
Š Kết quả trả về một quan hệ có k thuộc tính theo thứ
tự như liệt kê. Các dòng trùng nhau chỉ lấy một.
Š Phép chiếu không có tính giao hoán
)(,...,
2
,
1
R
k
AAAπ
Khoa HTTT-Đại học CNTT 12
3.3 Ví dụ
ƒ Tìm mã số, họ tên những học viên có giới tính là nam và có 
nơi sinh ở TpHCM
π Mahv,Hotenσ(Gioitinh=‘Nam’)∧(Noisinh=‘TpHCM’)(HOCVIEN)
K11TpHCMNamLe Nhat MinhK1106
K11TpHCMNamTran Minh LongK1105
K11Tay NinhNuTran Ngoc LinhK1104
K11Kien GiangNuTran Ngoc HanK1102
K11Nghe AnNamHa Duy LapK1103
MalopNoisinhGioitinhHoTenMahv
HOCVIEN
7Khoa HTTT-Đại học CNTT 13
3.4 Phép gán (Assignment)
Š Dùng để diễn tả câu truy vấn phức tạp.
Š Ký hiệu: A ← B
Š Ví dụ: 
R(HO,TEN,LUONG)← πHONV,TENNV,LUONG(NHANVIEN)
Š Kết quả bên phải của phép gán được gán cho 
biến quan hệ nằm bên trái.
Khoa HTTT-Đại học CNTT 14
3.5 Các phép toán tập hợp
3.5.1 Giới thiệu
3.5.2 Phép hội
3.5.3 Phép trừ
3.5.4 Phép giao
3.5.5 Phép tích
8Khoa HTTT-Đại học CNTT 15
3.5.1 Giới thiệu
Š Các phép toán thực hiện trên 2 quan hệ xuất phát từ lý 
thuyết tập hợp của toán học: phép hội (R∪S), phép 
giao (R∩S), phép trừ (R-S), phép tích (R×S).
Š Đối với các phép hội, giao, trừ, các quan hệ R và S 
phải khả hợp:
„ Số lượng thuộc tính của R và S phải bằng nhau: 
R(A1,A2,An) và S(B1,B2,Bn)
„ Miền giá trị của thuộc tính phải tương thích 
dom(Ai)=dom(Bi)
Š Quan hệ kết quả của phép hội, giao, trừ có cùng tên 
thuộc tính với quan hệ đầu tiên.
Khoa HTTT-Đại học CNTT 16
3.5.2 Phép hội (Union)
}|{ StRttSR ∈∨∈=∪
HotenMahv
Le Van TamK1103
Nguyen GiaK1308
Le Thanh HauK1203
Tran Ngoc HanK1114
DOT1
HotenMahv
Le Kieu MyK1101
Tran Ngoc HanK1114
DOT2
Le Kieu MyK1101
HotenMahv
Le Van TamK1103
Nguyen GiaK1308
Le Thanh HauK1203
Tran Ngoc HanK1114
DOT1∪DOT2
Š Ký hiệu: R∪S
Š Định nghĩa: trong đó R,S là
hai quan hệ khả hợp.
Š Ví dụ: Học viên được khen thưởng đợt 1 hoặc đợt 2
9Khoa HTTT-Đại học CNTT 17
3.5.3 Phép trừ (Set Difference)
Š Ký hiệu: R-S
Š Định nghĩa: trong đó R,S là
hai quan hệ khả hợp.
Š Ví dụ: Học viên được khen thưởng đợt 1 nhưng 
không được khen thưởng đợt 2
}|{ StRttSR ∉∧∈=−
HotenMahv
Le Van TamK1103
Nguyen GiaK1308
Le Thanh HauK1203
Tran Ngoc HanK1114
DOT1
HotenMahv
Le Kieu MyK1101
Tran Ngoc HanK1114
DOT2
Nguyen GiaK1308
HotenMahv
Le Van TamK1103
Le Thanh HauK1203
DOT1- DOT2
Khoa HTTT-Đại học CNTT 18
3.5.4 Phép giao (Set-Intersection)
Š Ký hiệu: R∩S
Š Định nghĩa: trong đó R,S là
hai quan hệ khả hợp. Hoặc R∩S = R – (R – S)
Š Ví dụ: Học viên được khen thưởng cả hai đợt 1 và 2
}|{ StRttSR ∈∧∈=∩
HotenMahv
Le Van TamK1103
Nguyen GiaK1308
Le Thanh HauK1203
Tran Ngoc HanK1114
KT_D1
HotenMahv
Le Kieu MyK1101
Tran Ngoc HanK1114
KT_D2 HotenMahv
Tran Ngoc HanK1114
DOT1∩ DOT2
10
Khoa HTTT-Đại học CNTT 19
3.5.5 Phép tích (1)
Š Ký hiệu: R×S
Š Định nghĩa:
Š Nếu R có n bộ và S có m bộ thì kết quả là n*m bộ
KQ(A1,A2,Am,B1,B2,Bn) ← R(A1,A2,Am) × S(B1,B2,Bn)
Š Phép tích thường dùng kết hợp với các phép chọn 
để kết hợp các bộ có liên quan từ hai quan hệ.
Š Ví dụ: từ hai quan hệ HOCVIEN và MONHOC, có
tất cả những trường hợp nào “học viên đăng ký học 
môn học”, giả sử không có bất kỳ điều kiện nào
}/{ SstRrtstrtSR ∈∧∈=×
Khoa HTTT-Đại học CNTT 20
3.5.5 Phép tích (2)
HotenMahv
Le Van TamK1103
Le Thanh HauK1203
Tran Ngoc HanK1114
HOCVIEN
CTDL
Mamh
CTRR
THDC
MONHOC
CTRRLe Thanh HauK1203
CTRRTran Ngoc HanK1114
CTRRLe Van TamK1103
THDCLe Thanh HauK1203
THDCTran Ngoc HanK1114
THDCLe Van TamK1103
CTDLLe Thanh HauK1203
CTDLTran Ngoc HanK1114
CTDLLe Van TamK1103
MamhHotenMahv
HOCVIEN×MONHOC
11
Khoa HTTT-Đại học CNTT 21
3.6 Phép kết
3.6.1 Phép kết
3.6.2 Phép kết bằng, phép kết tự nhiên
3.6.3 Phép kết ngoài
Khoa HTTT-Đại học CNTT 22
3.6.1 Phép kết (Theta-Join) (1)
Š Theta-join (θ): Tương tự như phép tích kết hợp với 
phép chọn. Điều kiện chọn gọi là điều kiện kết. 
Š Ký hiệu: 
trong đó R,S là các quan hệ, p là điều kiện kết
Š Các bộ có giá trị NULL tại thuộc tính kết nối không 
xuất hiện trong kết quả của phép kết.
Š Phép kết với điều kiện tổng quát gọi là θ-kết với θ là
một trong những phép so sánh (≠,=,>,≥,<,≤)
SR
p

12
Khoa HTTT-Đại học CNTT 23
3.6.1 Phép kết (2)
SR
BA 21>
30
48
A2A1
21
00
81
R
5
7
4
7
8
B3
12
01
B2B1
20
08
87
S
51248
70148
40848
8
7
4
7
4
B3
2
0
0
0
0
B2
0
1
8
1
8
B1
48
81
A2A1
21
81
21
Khoa HTTT-Đại học CNTT 24
3.6.2 Phép kết bằng, kết tự nhiên
Š Nếu θ là phép so sánh bằng (=), phép kết gọi là
phép kết bằng (equi-join).
Ký hiệu: 
Š Nếu điều kiện của equi-join là các thuộc tính giống 
nhau thì gọi là phép kết tự nhiên (natural-join). Khi 
đó kết quả của phép kết loại bỏ bớt 1 cột (bỏ 1 
trong 2 cột giống nhau)
Ký hiệu: hoặc
LOPHOCVIEN
TrglopMahv =

KETQUATHIHOCVIEN
Mahv

KETQUATHIHOCVIEN *
13
Khoa HTTT-Đại học CNTT 25
3.6.3 Phép kết ngoài (outer join)
Š Mở rộng phép kết để tránh mất thông tin
Š Thực hiện phép kết và sau đó thêm vào kết quả của 
phép kết các bộ của quan hệ mà không phù hợp với 
các bộ trong quan hệ kia.
Š Có 3 loại: 
„ Left outer join R S
„ Right outer join R S
„ Full outer join R S
Š Ví dụ: In ra danh sách tất cả các học viên và điểm 
số của các môn học mà học viên đó thi (nếu có)
Khoa HTTT-Đại học CNTT 26
3.6.3 Phép kết ngoài (2)
Š HOCVIEN KETQUATHI
mahv
9.0
8.5
8.5
7.0
Diem
CTRRHV03
MamhMahv
CSDLHV01
CTRRHV01
CSDLHV02
KETQUATHI
Le MinhHV04
HotenMahv
Nguyen Van LanHV01
Nguyen LeHV03
Tran Hong SonHV02
HOCVIEN
NullNullNullLe MinhHV04
9.0
8.5
8.5
7.0
Diem
CTRR
CSDL
CTRR
CSDL
Mamh
HV03
HV02
HV01
HV01
Mahv
Nguyen LeHV03
HotenMahv
Nguyen Van LanHV01
Tran Hong SonHV02
Nguyen Van LanHV01
14
Khoa HTTT-Đại học CNTT 27
3.7 Phép chia (Division)
Š Được dùng để 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
„ R(Z) và S(X)
z Z là tập thuộc tính của R, X là tập thuộc tính của S
z X ⊆ Z
Š Kết quả của phép chia là một quan hệ T(Y) 
„ Với Y=Z- X
„ 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
z tR(Y) = t
z tR(X) = tS(X) X Y
T(Y)S(X)R(Z)
Khoa HTTT-Đại học CNTT 28
3.7 Phép chia (2)
Š Ví dụ
A B
α
β
a
a
γ a
α a
α a
β a
γ a
γ a
C D
α
γ
a
b
γ a
γ a
γ b
γ a
γ b
β b
E
1
3
1
1
1
1
1
1
R D E
a
S
b
1
1
R ÷ S
A B C
α a γ
γ a γ
15
Khoa HTTT-Đại học CNTT 29
3.7 Phép chia (3)
Š Ví dụ: Cho biết mã học viên thi tất cả các môn học
„ Quan hệ: KETQUA, MON HOC
„ Thuộc tính: MAHV
HV03
Mahv
HV01
6.0CSDLHV03
7.5THDCHV03
5.0THDCHV02
7.0THDCHV01
9.0
8.5
8.5
7.0
Diem
CTRRHV03
MamhMahv
CSDLHV01
CTRRHV01
CSDLHV02
KETQUATHI MONHOC
TenmhMamh
Co so du lieuCSDL
Tin hoc dai cuongTHDC
Cau truc roi racCTRR
KETQUA
MONHOC
KETQUA÷MONHOC
[ , ]
[ ]
KETQUA KETQUATHI Mahv Mamh
MONHOC MONHOC Mamh
←
←
Khoa HTTT-Đại học CNTT 30
3.7 Phép chia (4)
Š Biểu diễn phép chia thông qua tập đầy đủ các 
phép toán ĐSQH
Q1 ← πY (R)
Q2 ← Q1 × S
Q3 ←πY(Q2 − R)
T ← Q1 − Q3
16
Khoa HTTT-Đại học CNTT 31
3.8 Hàm tính toán và gom nhóm 
(1)
Š Hàm tính toán gồm các hàm: avg(giatri), 
min(giatri), max(giatri), sum(giatri), count(giatri).
Š Phép toán gom nhóm:
„ E là biểu thức đại số quan hệ
„ Gi là thuộc tính gom nhóm (rỗng, nếu không gom nhóm)
„ Fi là hàm tính toán
„ Ai là tên thuộc tính
)()(),...,(),(,...,, 221121 Ennn AFAFAFGGG ℑ
Khoa HTTT-Đại học CNTT 32
3.8 Hàm tính toán và gom nhóm 
(2)
Š Điểm thi cao nhất, thấp nhất, trung bình của 
môn CSDL ?
Š Điểm thi cao nhất, thấp nhất, trung bình của 
từng môn ?
)()(),min(),max( KETQUATHIDiemavgDiemDiemMamhℑ
)(CSDL''Mamh)(),min(),max( KETQUATHIDiemagvDiemDiem =ℑ σ
17
Khoa HTTT-Đại học CNTT 33
Bài tập
Lược đồ CSDL quản lý bán hàng gồm có các quan hệ sau:
KHACHHANG (MAKH, HOTEN, DCHI, SODT, NGSINH, 
DOANHSO, NGDK)
NHANVIEN (MANV,HOTEN, NGVL, SODT)
SANPHAM (MASP,TENSP, DVT, NUOCSX, GIA)
HOADON (SOHD, NGHD, MAKH, MANV, TRIGIA)
CTHD (SOHD,MASP,SL)
Khoa HTTT-Đại học CNTT 34
Mô tả các câu truy vấn sau 
bằng ĐSQH
1. In ra danh sách các sản phẩm (MASP,TENSP) do “Trung Quốc”
sản xuất có giá từ 30.000 đến 40.000
2. In ra danh sách các khách hàng (MAKH, HOTEN) đã mua hàng 
trong ngày 1/1/2007.
3. In ra danh sách các sản phẩm (MASP,TENSP) do “Trung Quoc”
sản xuất hoặc các sản phẩm được bán ra trong ngày 1/1/2007.
4. Tìm các số hóa đơn mua cùng lúc 2 sản phẩm có mã số “BB01” và
“BB02”.
5. In ra danh sách các sản phẩm (MASP,TENSP) do “Trung Quoc”
sản xuất không bán được trong năm 2006.
6. Tìm số hóa đơn đã mua tất cả các sản phẩm do Singapore sản xuất

File đính kèm:

  • pdfBuoi_3,4.pdf