BÀI GIẢNG
CỞ SỞ DỮ LiỆU
Các phép toán (operation)
5 phép toán cơ bản
Phép chọn (selection)
Phép chiếu (projection)
Phép hợp (union)
Phép trừ (set difference)
Phép tích Descartes (Cartesian product)
3 phép toán suy dẫn*
Phép kết (Join)
Phép giao (Intersection)
Phép chia (Division)
(*Có thể được biểu diễn dưới dạng các phép toán cơ bản)
Ký
hiệu
Quan hệ r là một thể hiện của lược đồ quan hệ R(A1, A2,
…, Am)
Điều kiện F là 1 biểu thức luận lý có giá trị true/false. F
bao gồm:
Các toán hạng là hằng hoặc tên thuộc tính
Các phép toán so sánh =, , <, ≤, >,
Các phép toán luận lý not (), and (), or ()
Phép chọn (selection)
Phép chọn trên quan hệ r(R) theo điều kiện F, ký hiệu là
r(F) hay r:F , cho kết quả là 1 quan hệ bao gồm các bộ
của r thỏa mãn điều kiện F
r(F) = r:F = { t |t r và F(t) = true }
* Phép chọn và phép chiếu là phép toán một toán hạng
4
Phép chọn (selection) – ví dụ 1
Relation r
A
B
C
1
5
D
r(A=B)
7
7
12 3
23 10
r(A=B ^ D>5)
A
B
C
D
1
7
12 3
23 10
A
B
C
D
1
7
23 10
Phép chiếu (Projection)
Cho quan hệ r trên R(A1, A2,..,Am) và tập con các thuộc
tính X={Aj1, Aj2, …, Ajn} với j1, j2,.., jn là các số
nguyên phân biệt nằm trong khoảng từ 1 đến m
Phép chiếu r trên tập thuộc tính X cho kết quả là 1 quan
hệ
r[X] = r.X = {t | u r sao cho t = u[X]}
Phép chiếu loại bỏ những bộ trùng nhau
6
Phép chiếu (Projection) – ví dụ 1
Relation r
r[A,C]
A
B
C
A
C
A C
10
1
1
1
20
1
1
1
30
1
1
2
40
2
2
Phép
hợp
(union)
Phép hợp của 2 quan hệ r và s
r + s = r s = { t | t r t s}
trong đó: r và s là hai quan hệ khả hợp
r+s
Phép
hiệu
(Set
Difference)
Phép hiệu của 2 quan hệ r và s
r-s={t|tr
ts}
trong đó: r và s là hai quan hệ khả hợp
r-s
Phép
giao
(Intersection)
Phép giao
của 2 quan
hệ r và s
r * s = r s = {t | t r t s}
trong đó: r và s là hai quan hệ khả hợp
r*s
Hai quan hệ r và s là khả hợp ( union-compatible) khi :
•Có cùng số thuộc tính
•Các thuộc tính tương ứng có cùng miền giá trị
Bài tập
Cho 2 quan hệ định nghĩa trên 2 lược đồ Quan hệ :
Customer( Cuscode, cusName, cusPhone, City)
Supplier ( SupCode, SupName, SupPhone, City)
Hiển thị danh sách các thành phố có khách hàng và
đồng thời có nhà cung cấp?
Hiển thị danh sách các thành phố có khách hàng và
không có nhà cung cấp?
Phép kết (join)
thay thế phép (r x s) (F)
với F là biểu thức điều kiện có dạng r.A s.B
Bao gồm :
Theta join (
-join
join)
Equijoin
Natural join
Outer join
Phép kết - Theta join
Cho r và s là hai quan hệ tương ứng trên các lược đồ R(A1,
A2,..,Am) và S(B1,B2,…,Bn)
Gọi Q(A1, A2,.., Am, B1, B2, ….,Bn)
là 1 phép so sánh
Ai R và Bj S là 2 thuộc tính có thể so sánh với nhau bởi
phép
Phép kết của r và s trên 2 thuộc tính Ai và Bj ký hiệu ,
cho kết quả là 1 quan hệ q trên lược đồ quan hệ Q, bao gồm
các bộ t
q(Q) = {t | tr r r và tss s với t[R] = tr
Ai Bj
và t[S] = ts và t[Ai] t[Bj] }
13
Phép kết - Theta join
Ví dụ : Hiển thị ứng với mã mỗi môn học và các môn học
tiếp sau nó ?
MONHOC ( MaMon, TenMon, SoTC, Hocky)
MaMon
A
B
C
D
TenMon
Aaaa
Bbbb
Cccc
Dddd
SoTC
3
4
3
2
Hocky
1
1
2
3
Chú ý : Sử dụng phép gán để tạo ra một biến quan hệ tạm:
s r [MaMon, Hocky] , với r MONHOC
14
Phép kết - Theta join
MaMon
A
B
C
D
Hocky
1
1
2
3
r
s
r.Hocky < s.Hocky
MaMon
A
A
B
B
C
MaMon
A
B
C
D
MaMonsau
C
D
C
D
D
Hocky
1
1
2
3
Phép kết bằng và kết tự nhiên
Phép kết Theta với là phép so sánh bằng , thì được gọi là
phép kết bằng _ Equijoin
Phép kết Theta với là phép so sánh bằng được thực hiện
trên các thuộc tính chung (cùng tên) của R và S , thì được
gọi là phép kết tự nhiên – Natural join. Ký hiệu
Quan hệ kết quả q không lặp lại các thuộc tính chung của R
r
s
và S
VD: Hiển thị danh sách các khách hàng và nhà cung cấp ở cùng một thành phố
Customer( Cuscode, cusName, cusPhone, City)
Supplier ( SupCode, SupName, SupPhone, City)
16
Phân biệt các phép join
Phép so sánh
Theta join
Tất cả
Equijoin
phép bằng
Natural join
phép bằng
Áp dụng trên
Tập kết quả
Trên 2 thuộc
tính cùng kiểu
dữ liệu
Trên 2 thuộc
tính cùng kiểu
dữ liệu
Trên 2 thuộc Không lặp lại
tính chung
thuộc tính
chung
Phép kết ngoài - Outer join
Bao gồm : Left/Right Outer Join, Full Outer Join
Phép kết Left Outer Join giữa r và s, cho phép các bộ của r
không kết được với các bộ của s cũng được xuất hiện trong
quan hệ kết quả
Những giá trị tương ứng với các bộ trong quan hệ bị thiếu sẽ
được gán trị Null
Ưu điểm : giữ được thông tin mà lẽ ra bị mất trong phép kết
Ký hiệu :
r
s
18
Phép kết ngoài - Outer join
MASV
MAMH
DIEM
99001
CSDL
5.0
99002
FOX
2.0
99003
MANG
8.0
MASV
r
MAMH
s
MAMH
DIEM
TENMH
CSDL
COSO
DULIEU
FOX
FOXPRO
MAMH
TENMH
99001
CSDL
5.0
CSDL
COSO DULIEU
99002
FOX
2.0
FOX
FOXPRO
99003
MANG
8.0
Phép chia - Division
Cho quan hệ r định nghĩa trên R với tập thuộc tính A
Cho quan hệ s định nghĩa trên S với tập thuộc tính B , với
BA
Gọi C = A - B , là tập thuộc tính chỉ có trong tập thuộc
tính A của R
Phép chia r s cho kết quả là một quan hệ với tập thuộc
tính C và bao gồm các bộ <a> sao cho đối với mọi bộ <b>
của s , thì tồn tại bộ <a,b> thuộc r
Phép chia – Division
r
A B
1
2
3
1
1
1
3
4
6
1
2
s
A
B
1
2
rs
s
Phép chia – Division
Ví dụ : cho lược đồ CSDL
SV( MaSV, HoSV, TenSV, Phai)
Monhoc( MaMon, TenMon, SoTC )
KetQua( MaSV, MaMon, Diem)
Hiển thị danh sách các Sinh viên (MaSV) đã có kết quả học tập
của tất cả các môn học ?
KetQua[MaSV, MaMon] Monhoc[MaMon]