Phép toán quan hệ hai ngôi : JOIN và DIVIDE2.. Ví dụ về áp dụng đại số quan hệ... Phép toán quan hệ hai ngôi : JOIN và DIVIDE2.. Ví dụ về áp dụng đại số quan hệ... Phép toán quan hệ hai
Trang 1HỆ CƠ SỞ
DỮ LIỆU
Trang 21 Phép toán quan hệ hai ngôi : JOIN và DIVIDE
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ệ
Trang 31 Phép toán quan hệ hai ngôi : JOIN và DIVIDE
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ệ
Trang 4Phép toán quan hệ hai ngôi
Phép toán quan h hai ngôi là các phép toán ệtác đ ng lên hai quan h ộ ệ
Trang 6▸D ng t ng quát : ạ ổ
R ⨝<bi uể th cứ đi u ki n>ề ệ S
▸K t qu c a phép theta join là m t quan h Q ế ả ủ ộ ệ
ch a ứ n+m thu c tính Q(Aộ 1,A2,…,An,B1,B2,…,Bm), trong Q có 1 thu c tính c a R và 1 thu c tính c a ộ ủ ộ ủ
S th a bi u th c đi u ki n ỏ ể ứ ề ệ
▹ Các quan h : ệ R(A1,A2,…,An), S(B1,B2,…,Bm)
Trang 11▸Là phép n i b ng (EQUIJOIN) nh ng không ố ằ ư
có hai c t nào trùng nhau.ộ
▸Do đó n u hai quan h không cùng tên ế ệ
thu c tính, ta đ i tên tr c khi áp d ng phép ộ ổ ướ ụ
n i t nhiên.ố ự
▸Kí hi u :ệ
R ⨝ S ho c ặ R ⋆ S
▸ NALTURAL JOIN yêu c u các c p thu c tính ầ ặ ộ
trong bi u th c đi u ki n ph i cùng tên trong ể ứ ề ệ ả
m i quan h ỗ ệ
Trang 15Chú ý
▸M t phép toán JOIN đ c s d ng đ k t h p ộ ượ ử ụ ể ế ợ
d li u có liên quan t 2 quan h đ t o thành ữ ệ ừ ệ ể ạ
m t b ng duy nh t Phép toán JOIN còn đ c ộ ả ấ ượ
g i là ọ inner join.
▸Phép inner join còn đ c bi u di n b i hai ượ ể ễ ởphép là CARTESIAN PRODUCT và SELECTION
R⨝ <đi uề ki n>ệ S ≡σ<đi uề ki n>ệ (R⨯S)
Trang 16Tập đầy đủ phép toán quan hệ
▸ T p mà đ c bi u th b i t p nh ng toán t ậ ượ ể ị ở ậ ữ ửquan h s h c {ệ ố ọ σ π ∪ ρ, , , , –, ×} đ c g i là t p ượ ọ ậ
đ y đ ầ ủ (complete set)
▸Ví d :ụ
R⨝ <đi uề ki n>ệ S ≡σ<đi uề ki n>ệ (R⨯S)
▹Toán t ử INTERSECTION có th bi u di n ể ể ễ
b i hai phép ở UNION và MINUS :
▹Toán t ử JOIN có th bi u di n b i hai phép ể ể ễ ở
CARTESIAN PRODUCT và SELECTION
R ∩ S ≡ (R ∪ S) – ((R – S) ∪ (S – R))
Trang 18▹ Các thu c tính c a S là t p con c a các thu c tính ộ ủ ậ ủ ộ
c a R ( ủ X ⊆ Z)
R(Z)÷S(X)
▹ G i Y = Z ọ – X (Z = X Y) là t p h p c a các thu c ∪ ậ ợ ủ ộ tính c a R không là thu c tính c a S ủ ộ ủ
Trang 19T ⟵R÷S
▸Bi u di n : ể ễ
Trang 23▸K t qu :ế ả
Trang 24T ← T1 – T2
▸Toán t chia đ c đ nh nghĩa cho thu n ti n ử ượ ị ậ ệ
đ gi i quy t các truy v n liên quan đ n đ nh ể ả ế ấ ế ị
l ng ph quát(universal quantification)ượ ổ ho c ặ
t t c các đi u ki n ấ ả ề ệ
Trang 25Cây truy vấn
▸Cây truy v nấ bao g m các toán t đ i s quan ồ ử ạ ố
h đang đ c th c thi và đ c s d ng nh ệ ượ ự ượ ử ụ ư
m t c u trúc d li u có th bi u di n trong ộ ấ ữ ệ ể ể ễtruy v n ấ quan h ệ
▸Cây truy v n là cây c u trúc d li u t ng ấ ấ ữ ệ ươ
ng v i bi u th
ứ ớ ể ức đ i s quan h ạ ố ệ Nó bi u th ể ịcác quan h d i d ng các nút lá c a câệ ướ ạ ủ y và các phép truy v n d i d ng ấ ướ ạ các nút n i c a cây ộ ủ
Trang 27Cây truy vấn
▸ Ví d : ụ Đ i v i m i d án n m ố ớ ọ ự ằ ở ‘Stafford’, hãy li t kê ệ các d án, ự các phòng/ban giám sát và tên, đ a ch và ị ỉ ngày sinh c a ng i qu n lí phòng/ban đó ủ ườ ả
πPnumber, Dnum, Lname,
Address,Bdate (((σPlocation=‘Stafford’((PROJECT))
⨝Dnum=Dnumber(DEPARTMENT)) ⨝
Mgr_ssn=Ssn (EMPLOYEE))
Trang 28Cây truy vấn
▸ Ví d : ụ
πPnumber, Dnum, Lname,
Address,Bdate (((σPlocation=‘Stafford’((PROJECT))
⨝Dnum=Dnumber(DEPARTMENT)) ⨝
Mgr_ssn=Ssn (EMPLOYEE))
Trang 291 Phép toán quan hệ hai ngôi : JOIN và DIVIDE
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ệ
Trang 30Phé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)
Trang 31Phép chiếu tổng quát
▸Ví d : Cho quan h sau :ụ ệ
EMPLOYEE(Ssn, Salary, Deduction, Year_service)
(RENAMING) đ gán các tên t ng ng cho F1, ể ươ ứ
F2, F3, F4, …
Trang 32Phé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 ượ ạ ộ ủ ộ ế ả ấ
Trang 33Phép chiếu tổng quát
▸Ví d : Cho quan h sau:ụ ệ
EMPLOYEE(Ssn, Salary, Deduction, Year_service)
Trang 34Phé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))
Trang 35Phé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))
Trang 36Hà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 ắ ừ ộ
Trang 37▸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
Trang 38Hà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
Trang 40Hà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)
Trang 41Hà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))
Trang 42Hà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,
Trang 43Hà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)
Trang 45Recursive 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.ạ
Trang 50OUTER 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 ườ ố ữ ạ ấ ả
Trang 51LEFT OUTER JOIN Operations
▸Nh c nh :ắ ớ
51
Trang 52OUTER JOIN Operations
▸Nh c nh :ắ ớ
52
Trang 53LEFT OUTER JOIN Operations
Trang 54RIGHT OUTER JOIN Operations
http://www.math.hcmus.edu.vn/~nhluong/courses/DS/
R ⟕C>DS
54
Trang 55FULL OUTER JOIN Operations
http://www.math.hcmus.edu.vn/~nhluong/courses/DS/
R ⟕C=DS
55
Trang 56OUTER 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
Trang 57OUTER UNION Operator
Trang 58CHỦ ĐỀ
ĐẠ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
3 Câu hỏi ôn tập
4 Ví dụ về áp dụng đại số quan hệ
58
Trang 59Câu hỏi 1
Nh ng ki u bi n th c a inner join là gì ? ữ ể ế ể ủ
Các ki u bi n th c a toán t inner join bao g m: ể ế ể ủ ử ồ
▹Theta join: K t h p nh ng tuple t các quan h khác nhau khi ế ợ ữ ừ ệ chúng th a mãn đi u ki n nào đó T p các toán t so sánh trong ỏ ề ệ ậ ử
đi u ki n join có th bao g m (=, <, ≤, >, ề ệ ể ồ ≥ , ≠).
▹ Equijoin: Gi ng v i theta join nh ng trong đi u ki n join ch ố ớ ư ề ệ ỉ dùng toán t so sánh (=) ử
▹ Natural join : Không s d ng đi u ki n so sánh Ch th c hi n ử ụ ề ệ ỉ ự ệ
đ c khi có ít nh t 1 thu c tính trùng tên gi a 2 relation L c ượ ấ ộ ữ ượ
b nh ng thu c tính b trùng l p ỏ ữ ộ ị ặ
Đ c đi m chung c a inner join: ch nh ng tuple nào có join ặ ể ủ ỉ ữ attribute th a mãn đi u ki n so sánh (Theta join), có join ỏ ề ệ attribute so kh p nhau (Equijoin, Natural join) m i xu t hi n ớ ớ ấ ệ trong relation k t qu , nh ng tuple có join attribute là null ho c ế ả ữ ặ không th a mãn đi u ki n b lo i b ỏ ề ệ ị ạ ỏ
Trang 60
Câu hỏi 2
Vì sao theta join l i c n thi t?ạ ầ ế
Theta join c n thi t vì có tính t ng quát nh t ầ ế ổ ấ Equijoin là tr ng h p đ c bi t c a Theta Join, ườ ợ ặ ệ ủ Natural Join có th bi u di n thông qua Theta join, ể ể ễ RENAME và toán t PROJECT. ử
Trang 61qu không mong mu n.ả ố
Trang 62Câu hỏi 4
S khác bi t gi a OUTER JOIN và INNER JOIN, ự ệ ữ
gi a OUTER UNION và UNION?ữ
▹ OUTER JOIN luôn tr v t t c tuple c a relation ả ề ấ ả ủ
đ c ch n (tùy thu c vào ượ ọ ộ LEFT - RIGHT hay FULL OUTER JOIN)
▹ UNION yêu c u t p các thu c tính trong các quan ầ ậ ộ
h kh p nhau Trong khi đó OUTER UNION không ệ ớ yêu c u t t c các thu c tính ph i gi ng nhau ầ ấ ả ộ ả ố
Trang 631 Phép toán quan hệ hai ngôi : JOIN và DIVIDE
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ệ
Trang 67Ví dụ 2
Xác đ nh các câu truy v n sau d a trên l c đ CSDL ị ấ ự ượ ồ quan h d i đây, s d ng các toán t quan h : ệ ướ ử ụ ử ệ
Trang 68Ví dụ 2
c) DE_RES ←σDname=‘Research’(DEPARTMENT)
EMP_RES ← DE_RES⨝ Dnumber=Dno(EMPLOYEE)
EMP_MALE ← σSex=‘Male’(EMP_RES)
EMP_WORK← EMP_MALE⨝ Ssn=Essn(WORKS_ON)
RESULT ←πFname,Lname(EMP_WORK)
Trang 71Ví dụ 2
f) PROJ_OLYMPUS ← σPname=‘Olympus’(PROJECT)
WORK_OLYMPUS ←PROJ_OLYMPUS⨝ Pnumber=PnoWORKS_ON
EMP_OLYMPUS←DEP_OLYMPUS⨝ Essn=SsnEMLOYEE
RESULT ← πEssn,Fname,Lname(EMP_OLYM)
f) Truy xu t tên c a t t ấ ủ ấ
c nhân viên làm vi c ả ệ cho project có tên là
“Olympus”
Trang 73THANK YOU!