ĐẠI SỐ QUAN HỆ
2. Phép toán quan hệ bổ sung
3. Câu hỏi ôn tập
4. Ví dụ về áp dụng đại số quan hệ
30 Phép chiếu tổng quát
▸Phép chi u t ng quát (Generalized Projection) ế ổ m r ng t phép chi u b ng cách cho phép các ở ộ ừ ế ằ hàm c a các thu c tính đ c đ a vào danh sách ủ ộ ượ ư chi u.ế
▸Công th c t ng quát: ứ ổ
▹F1, F2, ..., Fn là các hàm c a các thu c tính trong ủ ộ quan h R và có th liên quan đ n các phép toán s ệ ể ế ố h c và h ng.ọ ằ
πF1,F2,…,Fn(R)
31 Phép chiếu tổng quát
▸Ví d : Cho quan h sau :ụ ệ
EMPLOYEE(Ssn, Salary, Deduction, Year_service) Khi đó ta có th ví d F1, F2, F3, F4, … là các hàm ể ụ c a các thu c tính trên nh sau:ủ ộ ư
F1 = Ssn + 1;
F2 = 0.25*Salary;
F3 = Salary – Deduction;
F4 = 2000*Year_service;
. . .
Sau đó ta có th s d ng phép đ i tên ể ử ụ ổ (RENAMING) đ gán các tên t ng ng cho F1, ể ươ ứ F2, F3, F4, …
32 Phép chiếu tổng quát
Phép toán này r t h u ích khi phát tri n các ấ ữ ể reports trong đó các giá tr đ c tính toán ph i ị ượ ả đ c t o trong các c t c a m t k t qu truy v n.ượ ạ ộ ủ ộ ế ả ấ
33 Phép chiếu tổng quát
▸Ví d : Cho quan h sau:ụ ệ
EMPLOYEE(Ssn, Salary, Deduction, Year_service)
EMPLOYEE
Ssn Salary Deduction Year_service 123456 5.0 1.5 2000
222222 6.5 1.0 2010 123321 4.5 0.5 2005
34 Phép chiếu tổng quát
▸Ví d : Cho quan h sau:ụ ệ
EMPLOYEE(Ssn, Salary, Deduction, Year_service) M t report có th đ c yêu c u :ộ ể ượ ầ
Net = Salary – Deduction
Bonus = 2000*Years_service Tax = 0.25*Salary
Sau đó, m t phép chi u t ng quát k t h p v i ộ ế ổ ế ợ ớ phép đ i tên có th đ c s d ng nh sau:ổ ể ượ ử ụ ư
REPORT ← ρ(Ssn, Net_salary, Bonus, Tax)(πSsn, Salary – Deduction, 2000 * Years_service,0.25 * Salary(EMPLOYEE))
35 Phép chiếu tổng quát
▸Ví d : Cho quan h sau:ụ ệ
EMPLOYEE(Ssn, Salary, Deduction, Year_service)
Ta sẽ có m t REPORT nh sau :ộ ư
REPORT ← ρ(Ssn, Net_salary, Bonus, Tax)(πSsn, Salary – Deduction, 2000 * Years_service,0.25 * Salary(EMPLOYEE))
REPORT
Ssn Net_salary Bonus Tax
123456 3.5 4000000 0.25*3.5 222222 5.5 4020000 0.25*5.5 123321 4.0 4010000 0.25*4.0
36 Hàm tập hợp và nhóm
▸M t lo i yêu c u (request) khác không th ộ ạ ầ ể đ c bi u th trong đ i s quan h c b n là ượ ể ị ạ ố ệ ơ ả các hàm t p h p toán h c trên các t p h p các ậ ợ ọ ậ ợ giá tr t c s d li u. ị ừ ơ ở ữ ệ
▸Ví d : ụ l y trung bình ho c t ng ti n l ng ấ ặ ổ ề ươ c a t t c nhân viên ho c t ng s các ủ ấ ả ặ ổ ố b (tuples) nhân viên. Các hàm này đ c s ộ ượ ử d ng trong các truy v n th ng kê đ n gi n ụ ấ ố ơ ả tóm t t thông tin t các b . ắ ừ ộ
37 Hàm tập hợp và nhóm
▸Các hàm ph bi n đ c áp d ng cho các t p ổ ế ượ ụ ậ h p các giá tr s bao g m ợ ị ố ồ SUM, AVERAGE, MAXIMUM và MINIMUM. Hàm COUNT đ c ượ s d ng đ đ m các b ho c giá tr .ử ụ ể ế ộ ặ ị
▸M t lo i yêu c u ph bi n khác liên quan đ n ộ ạ ầ ổ ế ế vi c nhóm các b trong m t quan h theo giá ệ ộ ộ ệ tr c a m t s thu c tính c a chúng và sau đó ị ủ ộ ố ộ ủ áp d ng m t hàm t p h p đ c l p cho m i ụ ộ ậ ợ ộ ậ ỗ nhóm.
38 Hàm tập hợp và nhóm
▸Đ nh nghĩa m t phép toán HÀM T P H P, ị ộ Ậ Ợ đ ch đ nh các lo i yêu c u nh sau:ể ỉ ị ạ ầ ư
<grouping attributes> ℑ<function list> (R)
▹ <grouping attributes> là danh sách các thu c tính ộ c a m i quan h đ c đ c t trong R .ủ ố ệ ượ ặ ả
▹ <function list> là danh sách các c p (<ặ function attribute>). Trong m i c p nh v y, <ỗ ặ ư ậ function> là m t ộ trong các hàm đ c cho phép, ch ng h n nh ượ ẳ ạ ư SUM, AVERAGE, MAXIMUM, MINIMUM, COUNT và
<attribute> là m t thu c tính c a quan h đ c đ c ộ ộ ủ ệ ượ ặ t trong ả R.
39 Hàm tập hợp và nhóm
▸Đ nh nghĩa m t phép toán HÀM T P H P, ị ộ Ậ Ợ đ ch đ nh các lo i yêu c u nh sau:ể ỉ ị ạ ầ ư
<grouping attributes> ℑ<function list> (R)
▸Quan h k t qu có các thu c tính nhóm ệ ế ả ộ c ng v i m t thu c tính cho t ng thành ph n ộ ớ ộ ộ ừ ầ trong danh sách hàm (function list).
40 Hàm tập hợp và nhóm
▸Ví d cho quan h EMPLOYEE có b ng sau :ụ ệ ả
EMPLOYEE(Fname, Minit, Ssn, Bdate, Address, Sex, Super_ssn, Dno)
41 Hàm tập hợp và nhóm
▸Ví d cho quan h EMPLOYEE có b ng sau :ụ ệ ả
EMPLOYEE(Fname, Minit, Ssn, Bdate, Address, Sex, Super_ssn, Dno)
a) Truy xu t t ng s phòng ban, s l ng nhân viên ấ ừ ố ố ượ trong phòng ban và m c l ng trung bình c a h : ứ ươ ủ ọ
ρR(Dno, No_of_employees, Average_sal) (Dno ℑCOUNT Ssn, AVERAGE Salary
(EMPLOYEE))
42 Hàm tập hợp và nhóm
▸Ví d cho quan h EMPLOYEE có b ng sau :ụ ệ ả
EMPLOYEE(Fname, Minit, Ssn, Bdate, Address, Sex, Super_ssn, Dno)
b) N u không áp d ng RENAME, thì các thu c tính c a ế ụ ộ ủ quan h k t qu t ng ng v i danh sách hàm sẽ ệ ế ả ươ ứ ớ đ c n i theo tên hàm v i tên thu c tính d ng:ượ ố ớ ộ ở ạ
<function> _ <thu c tính> ộ
Dno ℑCOUNT Ssn, AVERAGE Salary
(EMPLOYEE)
43 Hàm tập hợp và nhóm
▸Ví d cho quan h EMPLOYEE có b ng sau :ụ ệ ả
c) N u không có thu c tính nhóm (ế ộ no grouping attributes) nào đ c ch đ nh, các hàm đ c áp d ng ượ ỉ ị ượ ụ cho t t c các b trong quan h , do đó, quan h k t ấ ả ộ ệ ệ ế qu ch có m t b duy nh t (ả ỉ ộ ộ ấ single tuple only).
ℑCOUNT Ssn, AVERAGE Salary (EMPLOYEE)
EMPLOYEE(Fname, Minit, Ssn, Bdate, Address, Sex, Super_ssn, Dno)
44 Chú ý
▸ K t qu c a vi c áp d ng hàm t p h p là ế ả ủ ệ ụ ậ ợ m t quan h , không ph i là m t s vô h ng - ộ ệ ả ộ ố ướ ngay c khi nó có m t giá tr duy nh t. Đi u ả ộ ị ấ ề này làm cho đ i s quan h là m t h th ng ạ ố ệ ộ ệ ố toán h c khép kín.ọ
45 Recursive Closure Operations
▸ M t lo i phép toán khác không đ c mô t ộ ạ ượ ả trong đ i s quan h c b n là ạ ố ệ ơ ả Recursive Closure. Phép toán đ c s d ng trong các ượ ử ụ Recursive Relationship gi a nh ng ữ ữ Tuples có cùng lo i.ạ
46 Recursive Closure Operations
▸Ví d :ụ
Truy xu t t t c nhân viên đ c ấ ấ ả ượ giám sát b i nhân viên e t t c các m c.ở ở ấ ả ứ
47 Recursive Closure Operations
▸Áp D ng:ụ
Truy xu t t t c nhân viên đ c ấ ấ ả ượ giám sát b i nhân viên “James Borg” m c 1 ở ở ứ và 2.▸Nh c L iắ ạ :
48 Recursive Closure Operations
▸Áp D ng:ụ
Truy xu t t t c nhân viên đ c ấ ấ ả ượ giám sát b i nhân viên “James Borg” m c 1 ở ở ứ và 2.▸Nh c L iắ ạ :
49 Recursive Closure Operations
▸Áp D ng:ụ
Truy xu t t t c nhân viên đ c ấ ấ ả ượ giám sát b i nhân viên “James Borg”ở
𝑆𝑈𝑃𝑃𝐸𝑅𝑉𝐼𝑆𝐼𝑂𝑁(𝑆𝑠𝑛1,𝑆𝑆𝑛2)←𝜋𝑆𝑠𝑛𝑆𝑢𝑝𝑒𝑟,𝑆𝑠𝑛(𝐸𝑀𝑃𝐿𝑂𝑌𝐸𝐸)
𝐵𝑂𝑅𝐺𝑆𝑆𝑁←𝜋𝑆𝑠𝑛(𝜎𝐹𝑛𝑎𝑚𝑒¿′ 𝐽𝑎𝑚𝑒 𝑠′𝐴𝑁𝐷 𝐿𝑛𝑎𝑚𝑒¿′𝐵𝑜𝑟 𝑔′)(𝐸𝑀𝑃𝐿𝑂𝑌𝐸𝐸)
𝑅𝐸𝑆𝑈𝐿𝑇 1(𝑆𝑠𝑛)←𝜋𝑆𝑠𝑛1(𝑆𝐸𝑃𝑃𝐸𝑅𝑉𝐼𝑆𝐼𝑂𝑁 ⋈𝑆𝑠𝑛2=𝑆𝑠𝑛𝐵𝑂𝐺𝑆𝑆𝑁) 𝑅𝐸𝑆𝑈𝐿𝑇 2(𝑆𝑠𝑛)←𝜋𝑆𝑠𝑛1(𝑆𝐸𝑃𝑃𝐸𝑅𝑉𝐼𝑆𝐼𝑂𝑁 ⋈𝑆𝑠𝑛2=𝑆𝑠𝑛 𝑅𝐸𝑆𝑈𝐿𝑇1)
𝑅𝐸𝑆𝑈𝐿𝑇 ←𝑅𝐸𝑆𝑈𝐿𝑇1∪𝑅𝐸𝑆𝑈𝐿𝑇 2
OUTER JOIN Operations
▸Outer Join đ c phát tri n cho tr ng h p ượ ể ườ ợ ng i dung mu n gi l i t t c Tuples trong R ườ ố ữ ạ ấ ả ho c Sặ
▸Outer Join:
▹ Left Outer Join:
⟕ <điều kiện> S
▹ Right Outer Join:
<điều kiện> S
▹ Full Outer Join:
⟕<điều kiện> S
50
LEFT OUTER JOIN Operations
▸Nh c nh :ắ ớ
51
OUTER JOIN Operations
▸Nh c nh :ắ ớ
52
LEFT OUTER JOIN Operations
▸Ví d :ụ
TEMP ⟵ (EMPLOYEE ⟕Ssn=Mgr_ssn
DEPARTMENT)
RESULT ⟵ πFname, Minit, Lname, Dname(TEMP)
53
RIGHT OUTER JOIN Operations
http://www.math.hcmus.edu.vn/~nhluong/courses/DS/
R ⟕C>DS
54
FULL OUTER JOIN Operations
http://www.math.hcmus.edu.vn/~nhluong/courses/DS/
R ⟕C=DS
55
OUTER UNION Operator
▸Outer Union Operator đ c phát tri n đ k t ượ ể ể ế h p hai ợ Relation có m t s thu c tính chungộ ố ộ
▸Phép toán th c hi n ự ệ UNION m i tuples trên ỗ hai Relation R(X, Y) và S(X, Z) mà chúng partially compatible ( t ng thích 1 ph n)ươ ầ
▸Hai t1 tuple trong R và t2 tuple trong S là match n u t1[X] = t2[X]ế
56
OUTER UNION Operator
▸Ví d :ụ
A B
1 2
3 4
B C
4 5
6 7
R S
R(A,B) OUTTER UNION S(B, C)
A B C
1 2 NULL
3 4 5
NULL 6 7
57
CHỦ ĐỀ
ĐẠI SỐ QUAN HỆ (tiếp theo)
3
1. Phép toán quan hệ hai ngôi : JOIN và DIVIDE 2. Phép toán quan hệ bổ sung