Phép chi u 2• Phép chi u không có tính giao hoán... Phép toán 2 ngôi̇ Là các phép toán tác đ ng lên hai quan h.
Trang 1i s quan h và
Phép tính quan h
N i dung trình bày
̇ Gi i thi u
̇ Phép toán m t ngôi
̇ Phép toán hai ngôi.
̇ Phép toán khác.
̇ Phép tính quan h bi n b
̇ Phép tính quan h bi n mi n.
Gi i thi u (1)
• Là t p h p các phép toán c s c a mô hình d li u
quan h
• Bi u th c đ i s quan h là m t chu i các phép toán
• K t qu c a m t bi u th c là m t th hi n quan h
̇ Ý ngh a
• C s hình th c cho các phép toán c a mô hình quan
h
• C s đ cài đ t và t i u hóa các truy v n trong các
HQT CSDL quan h
• c áp d ng trong SQL
Gi i thi u (2)
̇ Toán h ng
• Các th hi n quan h
• Các t p h p.
̇ Toán t là các phép toán
• Phép toán t p h p
- H i, giao, hi u, tích Cartesian
• Phép toán quan h
- Ch n, chi u, k t, chia, đ i tên
- M t s phép toán khác
Trang 2Phép toán 1 ngôi
̇ Là các phép toán ch tác đ ng lên m t quan
h
̇ G m
• Phép ch n (Select).
• Phép chi u (Project).
Phép ch n (1)
m t quan h
̇ Cú pháp
• σ< K>(R)
• < K> là bi u th c logic
10 23
β β
7 1
α α
D C B A
σA= B ∧D> 5( R)
10 23
β β
3 12
β β
7 5
β α
7 1
α α
D C B A
R
Phép ch n (2)
• Ch a các m nh đ có d ng
- <thu c tính> <toán t so sánh> <h ng s >.
- <thu c tính> <toán t so sánh> <thu c tính>.
• Toán t so sánh: =, <, ≤, >, ≥, ≠
• Các m nh đ đ c n i b i toán t logic: ∧, ∨, ¬
• Phép ch n có tính giao hoán
- σ< K1>(σ< K2>(R)) = σ< K2>(σ< K1>(R)).
• K t qu là m t quan h
- Có cùng b c v i R.
- Có s b ít h n ho c b ng s b c a R.
Phép chi u (1)
c a m t quan h
̇ Cú pháp
• π<DSTT>(R)
• <DSTT> là danh sách các thu c tính c a R
10 23
β β
3 12
β β
7 5
β α
7 1
α α
D C B A
R
πA,D( R)
10
β
3
β
7
α
7
α
D A
10
β
3
β
7
α
D A
Trang 3Phép chi u (2)
• Phép chi u không có tính giao hoán
- π<DSTT1>(π<DSTT2>(R)) ≠ π<DSTT2>(π<DSTT1>(R)).
• Phép chi u lo i b các b trùng nhau
• K t qu là m t quan h
- Có b c b ng s thu c tính c a danh sách thu c tính.
- Có b c nh h n ho c b ng b c c a R.
- Có s b ít h n ho c b ng s b c a R.
̇ M r ng phép chi u
• Cho phép s d ng các phép toán s h c trong danh
sách thu c tính
- πA,2*C(R).
Chu i các phép toán và phép gán
̇ Chu i các phép toán
• Mu n s d ng k t qu c a phép toán này làm toán h ng c a phép toán khác.
• Mu n vi t các phép toán l ng nhau.
- πA,C(σA=B ∧ D>5(R))
̇ Phép gán
• Mu n l u l i k t qu c a m t phép toán.
• đ n gi n hóa m t chu i phép toán ph c t p.
• Cú pháp
- R’ ← E
- E là bi u th c đ i s quan h
• Ví d
- R’ ← σA=B ∧ D>5(R)
πA,C(R’)
Phép đ i tên
̇ đ i tên quan h và các thu c tính
̇ Cú pháp: cho quan h R(A1, , An)
• i tên quan h R thành S
- ρS(R)
• i tên quan h R thành S và các thu c tính Aithành Bi
- ρS(B1, B2, , Bn)(R)
• i tên các thu c tính Aithành Bi
- ρ(B1, B2, , Bn)(R)
• i tên quan h R thành S và thu c tính A1thành B1
- ρS(B1, A2, A3, , An)(R)
• i tên thu c tính A1thành B1
- ρ(B1, A2, A3, , An)(R)
M t s ví d
̇ Tìm các nhân viên làm vi c trong phòng s 4
• σMaPB = 4(NHANVIEN)
̇ Tìm các nhân viên làm vi c trong phòng s 4 và có m c
l ng t 25.000 đ n 40.000
• σMaPB = 4 ∧ Luong ≥ 25.000 ∧ Luong ≤ 40.000(NHANVIEN)
̇ Cho bi t h , tên, gi i tính và m c l ng c a các nhân viên
• πHo, Ten, Gtinh, Luong(NHANVIEN)
̇ Cho bi t h , tên, gi i tính và m c l ng c a các nhân viên
c a phòng s 5
• πHo, Ten, Gtinh, Luong(σMaPB = 5(NHANVIEN))
Trang 4Phép toán 2 ngôi
̇ Là các phép toán tác đ ng lên hai quan h
̇ G m 2 lo i
• Phép toán t p h p
- Phép h i (Union)
- Phép giao (Intersection)
- Phép hi u (Mimus)
- Phép tích Cartesian
• Phép toán phi t p h p
- Phép k t (Join)
- Phép chia (Division)
Phép toán t p h p (1)
̇ Ch đ c s d ng khi hai quan h đ c tác
đ ng là kh h p.
̇ Hai quan h R(A1, , An) và S(B1, , Bn) g i
là kh h p n u
• B c R = B c S.
n.
Phép h i
̇ H i c a R và S
• R ∪ S
• Là quan h g m các b thu c R ho c thu c S.
• Các b trùng nhau b lo i đi.
̇ R ∪ S = {t | t ∈ R ∨ t ∈ S}
23
β
12
β
5
α
1
α
C
A
R
23
β
12
γ
1
α
C A
S
1
α
23
β
12
β
5
α
12
γ
23
β
1
α
C A
R ∪ S
12
β
23
β
12
γ
5
α
1
α
C A
Phép giao
̇ Giao c a R và S
• R ∩ S
• Là quan h g m các b thu c R đ ng th i thu c S.
̇ R ∩ S = {t | t ∈ R ∧ t ∈ S}
23
β
12
β
5
α
1
α
C A
R
23
β
12
γ
1
α
C A
S
R ∩ S
23
β
1
α
C A
Trang 5Phép hi u
̇ Hi u c a R và S
• R - S
• Là quan h g m các b thu c R nh ng không thu c S.
̇ R - S = {t | t ∈ R ∧ t ∉ S}
23
β
12
β
5
α
1
α
C
A
R
23
β
12
γ
1
α
C A
S
R - S
12
β
5
α
C A
Phép toán t p h p (2)
̇ c tr ng
• Phép h i và giao có tính giao hoán
- R ∪ S = S ∪ R và R ∩ S = S ∩ R
• Phép h i và giao có tính k t h p
- R ∪ (S ∪ T) = (R ∪ S) ∪ T và R ∩ (S ∩ T) = (R ∩ S)
∩ T
Phép tích Cartesian
̇ Tích Cartesian c a R và S (không nh t thi t kh h p).
• R × S
• Là quan h Q mà m i b là m t t h p c a m t thu c R và m t b thu c S.
• B c Q = B c R + B c S.
• S b Q = S b R × S b S.
̇ R × S = {(a1, , am, b1, , bn) | (a1, , am) ∈ R ∧ (b1, , bn) ∈ S}
12
β
β
5
β
α
1
α
α
C
B
A
R
7 5 7 1 E D
S
7 5 1
α α
7 1 5
β α
5 1 5
1 D
7 12
β β
7 12
β β
7 5
β α
7 1
α α
E C B A
R × S
M t s ví d
̇ Tìm mã s các nhân viên c a phòng s 5 ho c giám sát
tr c ti p các nhân viên phòng s 5
• Q1 ← σMaPB = 5(NHANVIEN) Q2 ← πMaNV(Q1)
Q3 ← πMaGS(Q1)
Q ← Q2 ∪ Q3
̇ Cho bi t h , tên c a các nhân viên n và tên các thân nhân
c a h
• Q1 ← σGTinh = ‘Nu’(NHANVIEN) Q2 ← ρ(HoNV, TenNV, MaNV1)(πHo, Ten, MaNV(Q1)) Q3 ← Q2 × THANNHAN
Q4 ← σMaNV1 = MaNV(Q3)
Q ← πHoNV, TenNV, Ten(Q4)
Trang 6Phép k t
̇ k t h p các b có liên quan t hai quan
h
̇ Có 3 lo i
• K t theta (Theta Join)
- R < K> S
- < K> là bi u th c logic
• K t b ng (Equi Join)
- R S ho c R * S
Phép k t theta
̇ Bi u th c đi u ki n
• Ch a các m nh đ có d ng
- Ai<toán t so sánh> Bj.
+ A i là thu c tính c a R.
+ Bjlà thu c tính c a S.
+ Mi n xác đ nh Ai≡ Mi n xác đ nh Bj.
• Toán t so sánh: =, <, ≤, >, ≥, ≠.
• Các m nh đ đ c n i b i toán t logic: ∧.
12
β β
5
α β
5
β α
1
α α
C B A
R
12
β
4
α
1
α
F E
S R A=E ∧ C<FS
β α
E
12 5
α β
4 1
α α
F C B A
Phép k t b ng
̇ T t c các toán t so sánh trong bi u th c đi u ki n đ u là
=
̇ Trong m i b luôn có m t ho c nhi u c p thu c tính có giá
tr gi ng nhau
12
β
β
5
α
β
5
β
α
1
α
α
C
B
A
R
12
β
4
α
1
α
F E
S R A=E ∧ C=FS
β α
E
12 12
β β
1 1
α α
F C B A
Phép k t t nhiên
̇ Là phép k t b ng và các c p thu c tính trong các m nh đ
ph i cùng tên và cùng mi n xác đ nh
̇ N u các c p thu c tính không cùng tên thì ph i th c hi n phép toán đ i tên tr c khi k t
• R(A, B, C) và S(E, F), mu n k t t nhiên trên 2 c p thu c tính (A, E)
và (C, F).
- R (ρ(A, C)(S)).
12
β β
5
α β
5
β α
1
α α
C B A
R
12
β
4
α
1
α
C A
S R S
12
β β
1
α α
C B A
Trang 7Phép chia (1)
t t c các b c a quan h còn l i.
̇ Cho 2 quan h R(Z) và S(X)
• Z t p h p các thu c tính c a quan h R
• X t p h p các thu c tính c a quan h S
• X ⊆ Z
• R chia S là quan h T(Y) v i Y = Z – X
- T(Y) = {t | t ∈ πY(R) ∧ ∀ u ∈ S ⇒ (t, u) ∈ R}.
̇ Cú pháp
• R ÷ S
Phép chia (2)
10 1 3
β β
5 2 23
α β
10 10 23
β β
2 7 23
α β
1
7 2 7 D
2 12
β β
2 12
β α
5 1
α α
2 1
α α
E C B A
R
3
β β
23
β β
23
α β
12
β β
12
β α
1
α α
C B A
2 7 D
5 2 E
S
πA,B,C(R)
23
α β
1
α α
C B A
R ÷ S
M t s ví d
̇ Cho bi t tên, đ a ch c a các nhân viên c a phòng Nghiên
c u
• Q1 ← σTenPB = ‘Nghien cuu’(PHONGBAN)
Q2 ← Q1 * NHANVIEN
Q ← πHo, Ten, DChi(Q2)
̇ Cho bi t tên các nhân viên tham gia t t c các d án do
phòng s 5 đi u ph i
• Q1 ← πMaDA(σPhongQL = 5(DUAN))
Q2 ← πMaNV, MaDA(THAMGIA)
Q3 ← Q2 ÷ Q1
Q ← πHo, Ten(Q3 * NHANVIEN)
Các phép toán khác
• Các truy v n mang tính ch t thông kê đ n gi n trên m t
t p h p các giá tr ho c các nhóm t p h p giá tr d li u
• Các truy v n dùng đ t o các báo cáo
̇ G m
• Hàm t p h p (Aggregate Function)
• Phép gom nhóm các b d li u (Grouping)
• Phép k t m r ng (Outer Join)
Trang 8Hàm t p h p và gom nhóm (1)
̇ th c hi n các truy v n th ng kê đ n gi n trên t p h p các giá tr s
• SUM - Tính t ng c a các giá tr trong t p h p.
• AVG - Tính giá tr trung bình c a các giá tr trong t p h p.
• MAX, MIN - Tìm giá tr l n nh t, nh nh t c a các giá tr trong t p h p.
̇ đ m s b c a m t quan h ho c s các giá tr c a m t thu c tính.
• COUNT
̇ gom nhóm các b c a m t quan h theo các thu c tính r i áp d ng
các hàm t p h p.
̇ Cú pháp
• <DSTT> <DSH>(R)
<DSTT> là danh sách các thu c tính thu c R.
• <DSH> là danh sách các c p (hàm t p h p, thu c tính) áp d ng trên các
nhóm.
Hàm t p h p và gom nhóm (2)
10 20
β β
3 12
β β
8 5
β α
7 1
α α
D C B A
R
16 32
β β
5 5
β α
1 1
α α
F E B A
S
12 20
β
1 5
α
MIN_C MAX_C A
7 4
AVG_D COUNT_C
ρS(A, B, E, F)(A, B SUM(C), AVG(C)(R))
A MAX(C), MIN(C) (R)
COUNT(C), AVG(D) (R)
Phép k t m r ng (1)
còn l i hay không nh m tránh m t thông tin ho c
t o các báo cáo.
̇ Có 3 d ng
• M r ng trái (Left Outer Join)
- R < K>S.
• M r ng ph i (Right Outer Join)
- R < K>S.
• M r ng hai phía (Full Outer Join)
- R < K>S.
Phép k t m r ng trái
̇ Gi l i t t c các b c a quan h bên trái phép toán k t
mà không liên k t đ c v i b nào c a quan h bên ph i
23
β β
12
β β
5
β α
1
α α
C B A
R
10 23 3 12 7 2 7 1 E D
10 23 1
α α
3 12 1
α α
null null 23
β β
23 12
2 D
10 12
β β
3 5
β α
7 1
α α
E C B A
R C<DS
Trang 9Phép k t m r ng ph i
̇ Gi l i t t c các b c a quan h bên ph i phép toán k t
mà không liên k t đ c v i b nào c a quan h bên trái
23
β
β
12
β
β
5
β
α
1
α
α
C B
A
R
10
23
3
12
7
2
7
1
E
D
S
R C>DS
3 12 23
β β
7 2 23
β β
7 1 23
β β
7 2 12
β β
23
1 2 1 D
10 null null null
7 12
β β
7 5
β α
7 5
β α
E C B A
Phép k t m r ng hai phía
̇ Gi l i t t c các b c a t ng quan h hai bên phép toán
k t mà không liên k t đ c v i b nào c a quan h còn l i
23
β β
12
β β
5
β α
1
α α
C B A
R
10 23 3 12 7 2 7 1 E D
S
R C=DS
7 2 null null null
null null 5
β α
10 23 23
β β
12 1 D
3 12
β β
7 1
α α
E C B A
M t s ví d
̇ V i m i phòng ban cho bi t mã s , t ng s nhân viên và
m c l ng trung bình
• ρ(MaPB, SoNV, LuongTB)(MaPB COUNT(MaNV), AVG(Luong)
(NHANVIEN))
̇ V i m i nhân viên cho bi t h , tên và tên phòng n u h là
tr ng phòng
• Q1 ← NHANVIEN MaNV = TrPhongPHONGBAN
Q ← πHo, Ten, TenPB(Q1)
Phép tính quan h (1)
̇ M t s khái ni m logic toán h c
• M nh đ
- Các kh ng đ nh có giá tr chân lý xác đ nh.
• V t
- Là m t kh ng đ nh P(x, y, ) v i x, y, là các bi n trên các mi n xác
đ nh A, B,
+ P(x, y, ) không là m nh đ + Thay x, y, b ng các giá tr c th ta đ c m t m nh đ
- x, y, là các bi n t do.
• L ng t
- M nh đ “∀x ∈ A, P(x)” và “∃x ∈ A, P(x)” là các l ng t hóa c a v t P(x).
+ ∀ là l ng t ph d ng.
+ ∃ là l ng t t n t i.
- x không còn là bi n t do, nó b bu c b i các l ng t ∀ hay ∃.
Trang 10Phép tính quan h (2)
̇ T ng quan
• D a trên logic toán h c.
̇ Chia làm 2 d ng
• Phép tính quan h bi n b
Bi n b và quan h mi n giá tr
̇ Bi n b (Tuple Variable)
• Bi n bi n thiên trên m t quan h R xác đ nh
(Range Relation).
• {t | P(t)}
- t là bi n b
- P(t) là v t ho c công th c.
̇ Ví d
• {t | t ∈ NHANVIEN ∧ t.Luong > 50000}
• {t.Ho, t.Ten | NHANVIEN(t)∧ t.Luong > 50000}
Bi u th c và công th c (1)
̇ Bi u th c t ng quát c a phép tính quan h bi n b
• {t1.Aj, t2.Ak, , tn.Am| P(t1, t2, , tn, , tn+m)}
- t1, , tn+mlà các bi n b
- Ailà thu c tính c a quan h mi n giá tr ng v i bi n b ti.
̇ Công th c nguyên t
• Thu c m t trong 3 d ng sau
- t ∈ R ho c R(t)
- ti.A <phép toán so sánh> tj.B.
- ti.A <phép toán so sánh> c.
• Có chân tr ÚNG ho c SAI
t ∈ NHANVIEN ho c NHANVIEN(t) t.MaNV = s.MaNV
t.Luong > 50000
Bi u th c và công th c (2)
̇ P đ c xây d ng t các công th c nguyên t liên
k t v i nhau b i các phép toán logic ∧, ∨, ¬ theo các
lu t sau
1 Công th c nguyên t là công th c.
2 F là công th c thì ¬F c ng là công th c.
F, G là công th c thì F ∧ G,
F ∨ G c ng là công th c
3 F là công th c thì (∀t)(F)
c ng là công th c.
4 F là công th c thì (∃t)(F)
c ng là công th c.
̇ Bi n b t do và b bu c
• F là nguyên t
- Bi n b là t do.
• (∀t)(F), (∃t)(F)
- Bi n b là b bu c.
• ¬F, F ∧ G, F ∨ G
- Bi n b là t do ho c b
bu c.
- Bi n b có th là t do trong
F và b bu c trong G.
̇ Ví d
•
•
F1: NHANVIEN(d)
F2: (∀d)(d.MaGSat =
‘123456789’)
Trang 11Bi n đ i gi a hai l ng t
• (∀) thay b ng ¬(∃), và ng c l i
• ∧ thay b ng ∨, và ng c l i
• ¬P thay b ng P, và ng c l i
• (∀x)(P(x)) ⇔
• (∃x)(P(x)) ⇔
• (∀x)(P(x) ∧ Q(x)) ⇔
• (∀x)(P(x) ∨ Q(x)) ⇔ ¬(∃x)(¬(P(x)) ∧ ¬(Q(x)))
• (∃x)(P(x) ∧ Q(x)) ⇔ ¬(∀x)(¬(P(x)) ∨ ¬(Q(x)))
• (∃x)(P(x) ∨ Q(x)) ⇔ ¬(∀x)(¬(P(x)) ∧ ¬(Q(x)))
¬(∃x)(¬(P(x)))
¬(∀x)(¬(P(x)))
¬(∃x)(¬(P(x))¬(P(x)) ¬(Q(x))∨¬(Q(x)))
Truy v n dùng l ng t t n t i (1)
c u.
•
• {e.Ten, e.DChi | NHANVIEN(e) ∧ F}
- F = (∃d)(PHONGBAN(d) ∧ F1)
- F1= (d.TenPB = ‘Nghiên c u’ ∧ d.MaPB = e.MaPB)
{e.Ten, e.DChi | NHANVIEN(e) ∧ (∃d)(PHONGBAN(d) ∧ d.TenPB = ‘Nghiên c u’∧ d.MaPB = e.MaPB)}
NHANVIEN(e) ∧ (∃d)(PHONGBAN(d) ∧ d.TenPB = ‘Nghiên c u’∧ d.MaPB = e.MaPB)
Truy v n dùng l ng t t n t i (2)
•
̇ Nh n xét
• Trong m t truy v n có th có nhi u bi n b t do
{p.MaDA, p.Phong, e.Ho, e.Ten | DUAN(p) ∧
NHANVIEN(e) ∧ p.Diadiem = ‘Th c’∧
(∃d)(PHONGBAN(d) ∧ d.MaPB = p.Phong ∧ d.TrPhg =
e.MaNV)}
DUAN(p) ∧ NHANVIEN(e) ∧ p.Diadiem = ‘Th c’∧
(∃d)(PHONGBAN(d) ∧ d.MaPB = p.Phong ∧ d.TrPhg =
e.MaNV)
Truy v n dùng l ng t t n t i (3)
̇ V i m i nhân viên, cho bi t h tên c a nhân viên
•
̇ Nh n xét
• M t vài bi n b trong cùng m t truy v n có th có cùng quan h mi n giá tr
{e.Ho, e.Ten, s.Ho, s.Ten | NHANVIEN(e) ∧ NHANVIEN(s) ∧ e.MaGSat = s.MaNV }
NHANVIEN(e) ∧ NHANVIEN(s) ∧ e.MaGSat = s.MaNV
Trang 12Truy v n dùng l ng t t n t i (4)
̇ Tìm các nhân viên tham gia các d án do phòng s
• {e | NHANVIEN(e) ∧ (∃x)(∃w)(DUAN(x) ∧ THAMGIA(w) ∧
x.Phong = 5 ∧ x.MaDA = w.MaDA ∧ x.MaNV = w.MaNV)}
̇ Tìm các nhân viên tham gia t t c các d án do
• {e | NHANVIEN(e) ∧ ((∀x)(¬(DUAN(x)) ∨ ¬(x.MaDA = 5)
∨ ((∃w)(THAMGIA(w) ∧ w.MaNV = e.MaNV ∧ x.MaDA = w.MaDA))))}
• {e | NHANVIEN(e) ∧ F}
- F = (∀x)(¬(DUAN(x)) ∨ F1)
- F1= ¬(x.MaDA=5) ∨ F2
- F2= (∃w)(THAMGIA(w) ∧ w.MaNV=e.MaNV ∧ x.MaDA=w.MaDA)
• {e | NHANVIEN(e) ∧ (¬(∃x)(DUAN(x) ∧ x.MaDA = 5 ∧ (¬(∃w)(THAMGIA(w) ∧ w.MaNV = e.MaNV ∧ x.MaDA = w.MaDA))))}
Bi u th c an toàn
̇ Xét bi u th c
• {t | ¬(NHANVIEN(t))}
• Nh n xét
- K t qu c a bi u th c không
là m t s h u h n các b
- Bi u th c là không an toàn.
̇ Bi u th c an toàn là bi u
th c có m t s h u h n
các b trong k t qu
̇ nh ngh a hình th c
• Mi n xác đ nh c a bi u th c
là t p h p g m
- Các h ng xu t hi n trong P.
- Giá tr thu c tính c a các b
c a các quan h xu t hi n trong P.
• Ví d
- {t | R(t) ∧ t.A = 5}
- Mxđ = {5, 1, 7, 23, 10}
• Bi u th c là an toàn n u m i giá tr trong k t qu thu c
mi n xác đ nh c a bi u th c.
10 23
7 1
B A
R
Phép tính quan h bi n mi n
̇ Bi u th c t ng quát c a phép tính quan h bi n
mi n
• {x1, x2, , xn| P(x1, x2, , xn, , xn+m)}
- x1, , xn+mlà các bi n mi n.
̇ Công th c nguyên t
• Thu c m t trong 3 d ng sau
- <x1, , xj> ∈ R ho c R(x1, , xj)
- xi<phép toán so sánh> xj.
- x i <phép toán so sánh> c.
• Có chân tr ÚNG ho c SAI