bai_2_oncaohoccntt&#
TRANSCRIPT
![Page 1: Bai_2_OnCaoHocCNTT&#](https://reader030.vdocuments.mx/reader030/viewer/2022020808/5571fd094979599169985934/html5/thumbnails/1.jpg)
5/10/2018 Bai_2_OnCaoHocCNTT&# - slidepdf.com
http://slidepdf.com/reader/full/bai2oncaohoccntt 1/20
6/14/
Phụ thuộc hàm và các dạng chuẩ n( Functional Dependency and Normal Forms)
Giảng viên: PGS.TS. Đỗ PhúcKhoa Hệ thố ng thông tin
Trường Đại học Công nghệ thông tin, ĐHQG-HCM
Ôn thi cao học CNTT năm 2009
2
Nội dung Phụ thuộc hàm Hệ tiên đề Armstrong Bao đóng của tập thuộc tính Bài toán thành viên Phủ tố i tiể u Khóa và thuật toán tìm khóa Các dạng chuẩ n Chuẩ n hóa lược đồ quan hệ Các thuật toán kiể m tra phân rã nố i không mấ t tin Thuật toán phân rã LĐQH đạt DC3
3
Phụ thuộc hàmFunctional Dependencies (1)
PTH (FDs) được dùng để đo mứ c độhoàn thiện của thiế t k ế các quan hệ
PTH và khóa được dùng để xác địnhdạng chuẩ n của quan hệ
PTH là các ràng buộc (constraints) đượcsuy từ ý ngh ĩ a và các liên hệ giũa cácthuộc tính dữ liệu
4
Định ngh ĩ a phụ thuộc hàmFunctional Dependencies (2) X -> Y đúng nế u bấ t k ỳ khi nào hai bộ (tuple)
có cùng giá trị X phải có cùng giá trị Y Với bấ t k ỳ hai bộ t1 và t2 trong thể hiện quan
hệ r(R): Nế u t1[X]=t2[X] thì t1[Y]=t2[Y] X -> Y trong R xác định ràng buộc trên tấ t cả
thể hiện r(R) Ký hiệu X -> Y ( đọc là “X xác định duy nhấ t
Y”) PTH được suy từ các ràng buộc trong thế giới
thự c trên các thuộc tính.
5
Ví dụ v ề phụ thuộc hàm (1)
Mã nhân viên xác định tên nhân viênSSN -> ENAME
Mã đề án xác định tên đề án và địa điể mPNUMBER -> {PNAME, PLOCATION}
Mã nhân viên và mã đề án xác định giờ làmviệc trong tu ần của nhân viên cho đề án{SSN, PNUMBER} -> HOURS
6
Ví dụ v ề ràng buộc PTH (2)
PTH là một tính chất của các thuộc tính tronglư ợ c đồ R
Ràng buộc phải thỏa trên tất cả các thể hiệncủa quan hệ r(R)
Nếu K là khóa của R thì K xác định phụ thuộcvớ i tất cả các thuộc tính của R (vì chúng takhông bao giờ có hai bộ phân biệt màt1[K]=t2[K])
![Page 2: Bai_2_OnCaoHocCNTT&#](https://reader030.vdocuments.mx/reader030/viewer/2022020808/5571fd094979599169985934/html5/thumbnails/2.jpg)
5/10/2018 Bai_2_OnCaoHocCNTT&# - slidepdf.com
http://slidepdf.com/reader/full/bai2oncaohoccntt 2/20
6/14/
7
Bài toán tìm tấ t cả PTH khả d ĩ Cho thể hiện của quan hệ, tìm tấ t cả các PTH khả d ĩ :R ( A B C)--------------------
1 2 41 2 42 5 73 5 7
Các PTH: A->B, A->C, B->C,AB->C,….Thuật toán ?
8
Tính F+, bao đóng của tập cácPTH F
Khi thiế t k ế CSDL quan hệ,chúng ta bắt đầubằng cách xem xét tập các PTH khả d ĩ . Khảo sát được tấ t cả các PTH là đi ều quan
trọng, do vậy làm thế nào để có tấ t cả PTH. Bao đóng (closure) của tập PTH F là tập tấ t
cả PTH có thể suy diễn logic từ F. Ta ký hiệubao đóng của F là F+
Ta tính F+ bằng cách áp dùng hệ tiên đề Armstrong
9
Các luật suy diễn cho PTH (1) Cho tập PTH F, ta có thể suy ra thêm các PTH khác
thỏa.Hệ tiên đề Armstrong: IR1. (Luật phản xạ) Nế u Y ⊆ X, thì X -> Y
Vd: ABC BC IR2. (Luật tăng trưởng) nế u X -> Y thì XZ -> YZ
Vd: nế u C D thì ABC ABD IR3. (Luật bắc c ầu) Nế u X -> Y và Y -> Z thì X -> Z
Vd: Nế u AB CD và CD EF thì AB EF Hệ tiên đề Armstrong là đúng và đủ
10
Các luật suy diễn khác củaPTH (2)Có thể suy thêm các luật hữ u ích khác từ hệ tiên đề
Armstrong: (Luật hợp) Nế u X -> Y và X -> Z thì X -> YZ Vd: Nế u AB CD và AB EF thì AB CDEF (Luật tách) Nế u X -> YZ thì X -> Y và X -> Z Vd: Nế u AB CDEF thì AB CD và AB EF
và AB C và AB D và AB E và AB F (Luật bắc c ầu giả) Nế u X -> Y và WY -> Z thì WX->Z
Vd: Nế u AB EF và DEF G thì ABD G
11
Bài tập: Cho quan hệ R = (A, B, C, G, H, I) và tập PTH: F = {A B, A C, CG H, CG I, B H}
Dùng hệ tiên đề Armstrong và các luật mở rộng của nó để tínhF+ (Luật phản xạ) Nế u Y ⊆ X, thì X -> Y (Luật tăng trưởng) Nế u X -> Y thì XZ -> YZ (Luật bắc c ầu) Nế u X -> Y và Y -> Z thì X -> Z (Luật hợp) Nế u X -> Y và X -> Z thì X -> YZ (Luật tách) Nế u X -> YZ thì X -> Y và X -> Z (Luật bắc c ầu giả) Nế u X -> Y và W Y -> Z thì WX -> Z
12
Áp dụng hệ tiên đề ArmstrongBài tập: Hãy dùng hệ tiên đ ề Armstrong để
chứng minh:Nế u X -> Y và U -> V thì XU -> YV
CM:1. X -> Y ( gt)2. XU-> YU, (tăng trư ởng U vào (1) )3. U -> V (gt)4. YU -> YV (tăng trư ởng Y vào (3)5. XU -> YV ( bắc c ầu (2) và (4) )
![Page 3: Bai_2_OnCaoHocCNTT&#](https://reader030.vdocuments.mx/reader030/viewer/2022020808/5571fd094979599169985934/html5/thumbnails/3.jpg)
5/10/2018 Bai_2_OnCaoHocCNTT&# - slidepdf.com
http://slidepdf.com/reader/full/bai2oncaohoccntt 3/20
6/14/
Bao đóng của tập thuộc tínhThe Closure of Attribute Sets
14
Bao đóng của tập thuộc tính
F+ có thể có kích thước lớn, tìm F+ mấ tnhi ều công sứ c Nế u chúng ta có thể xác định duy nhấ t tấ t cả
thuộc tính trong R bằng một tập con thuộctính X thì X là siêu khóa của R
Bao đóng của X trên F (được ký hiệu là X+)là tập con của tập thuộc tính được xác địnhduy nhấ t bởi X qua các PTH trong F
15
Thuật toán tính X+ ( bao đóng của X trên F)
X+ = X // khởi tạorepeat
oldX+ = X+for each FD Y Z in F do // kiể m tra từ ng PTH
if Y is a subset of X+, then // nế u vế trái trong X+X+ = X+ U Z // thêm vế phải vào X+
until X+ == oldX+ // lặp trong khi X+ thay đổ i
16
Ví dụ tính bao đóng của tập thuộc tính
R=(A,B,C,D,E,H) F { AB → C, BC → AD, D → E, CE → B} How to compute closure of {A,B}, i.e., {A,B}+?
1. Start with X={A,B}2. Add C to X due to AB → C; X={A,B,C}3. Add A,D to X due to BC → AD; X={A,B,C,D}4. Add E to X due to D → E; X={A,B,C,D,E}5. No more attributes can be added to X
6. {A,B}+
= {A,B,C,D,E}
17
Ví dụ tính bao đóng X+
Cho quan hệ R = (A, B, C, G, H, I) và tập PTHF = {A B, A C, CG H, CG I, B H},
Tính (AG)+ ?Ta muố n kiể m tra AG là siêu khóa của R. Dùng thuật toán tính bao đóng (AG)+. Nế u (AG)+ chứ a tấ t cả thuộc tính của R thì
AG là siêu khóa của R.
18
Ví dụ tiế p theo
Cho R = (A, B, C, G, H, I) và F = {A B, A C, CG H, CG I, B H}, tính(AG)+
X+ = X
repeatoldX+ = X+for each FD Y Z in F do
if Y is a subset of X+, thenX+ = X+ U Z
until X+ == oldX+
![Page 4: Bai_2_OnCaoHocCNTT&#](https://reader030.vdocuments.mx/reader030/viewer/2022020808/5571fd094979599169985934/html5/thumbnails/4.jpg)
5/10/2018 Bai_2_OnCaoHocCNTT&# - slidepdf.com
http://slidepdf.com/reader/full/bai2oncaohoccntt 4/20
6/14/
19
Bài tập Cho F = { AB -> E, BE -> I, E -> C, CI -> D }
Chứng minh AB -> CD suy đư ợc từ F. Simple Proof: (AB)+ = ABEICD which includes CD. Proof using Armstrong's Axioms: 1. AB --> E, Given 2. E --> C, Given 3. AB --> C, Transitivity on (1) and (2) 4. AB --> BE, Augment (1) by B 5. BE --> I, Given
20
Tiế p theo
6. AB --> I, Transitivity on (4) and (5) 7. ABC --> CI, Augment (6) by C 8. AB --> ABC, Augment (3) by AB 9. AB --> CI, Transitivity on (7) and (8) 10. CI --> D, Given 11. AB --> D, Transitivity on (9) and (10) 12. ABC --> CD, Augment (11) by C 13. AB --> CD, Transitivity on (8) and (12)
Tìm khóaFind Keys
22
Định ngh ĩ a khóa và các thuộctính tham gia vào khóa (1)
Siêu khóa (superkey) của một lược đồquan hệ R = {A1, A2, ...., An} là tập thuộctính S ⊆ R thỏa tính chấ t không có hai bộ t1và t2 trong một trạng thái hợp lệ r của R màt1[S] = t2[S]
Khóa ( key) K là siêu khóa với tính chấ t bổ sung là khi xóa thuộc tính nào khỏi K sẽ khiế n
K không còn là siêu khóa.
23
Định ngh ĩ a khóa và các thuộctính tham gia vào khóa (2)
Nế u lược đồ quan hệ có nhi ều hơn một khóa,mỗi khóa sẽ được gọi là khóa dự tuyể n
(candidate key). Một trong các khóa dự tuyể n được lự a chọn làm khóa chính(primary key), các khóa còn lại làm khóaphụ (secondary keys).
Thuộc tính khóa là thuộc tính nằm trongmột khóa dự tuyể n.
Thuộc tính không khóa không phải làthuộc tính khóa
24
Khóa của quan hệ
Định ngh ĩ a: Cho quan hệ r( R ), tập K ⊂ R được gọi là khóa của quan hệ r nế u:K+=R
nế u bớt một ph ần tử khỏi K thì bao đóng củanó sẽ khác R. Như thế tập K ⊂ R nế u K+=R và ( K \ A )+ ≠ R , ∀ A ⊂ R.
Một quan hệ có thể có nhi ều khóa.
![Page 5: Bai_2_OnCaoHocCNTT&#](https://reader030.vdocuments.mx/reader030/viewer/2022020808/5571fd094979599169985934/html5/thumbnails/5.jpg)
5/10/2018 Bai_2_OnCaoHocCNTT&# - slidepdf.com
http://slidepdf.com/reader/full/bai2oncaohoccntt 5/20
6/14/
25
Ví dụ v ề khóa
Cho R = { A, B, C, D, E, G } vàF= {AB->C, D->EG , BE -> C , BC -> D ,CG ->BD, ACD ->B, CE -> AG}
Ta sẽ thấ y các tập thuộc tính:K1 = { A, B} , K2 = {B,E} , K3={C,G} ,K4={C,E} , K5 = {C,D}, K6={B,C} đềulà khóa
26
Tìm khóa (1)
Gọi LHS là tập các thuộc tính nằm ở vế trái của các PTH. Đây là tập các ứ ngviên của siêu khóa.
Dùng bao đóng của tập thuộc tính vàtính chấ t của siêu khóa để kiể m tra ứ ngviên có có phải là siêu khóa hay không?Nế u không phải thì bỏ qua ứ ng viên đó.
27
Vế trái CHRS, dàn các tập hợpcon của CHRS
28
Tìm khóa (1)
Nế u ứ ng viên là siêu khóa thì tiế p tụckiể m tra các tập con của ứ ng viên này.
Lặp lại cho đế n khi gặp siêu khóa nhỏnhấ t
Siêu khóa nhỏ nhấ t là khóa dự tuyể n(candidate keys)
29
Ví dụ tìm khóa (1) Cho LĐQH r(R) với R = {A, B, C, D, E,
G, H,I} và tập PTH F
F={ AB -> CDEFGH,C -> BEI,G -> H }
Tìm tấ t cả các khóa dự tuyể n củaLĐQH trên và chỉ định khóa chính ?
30
Ví dụ tìm khóa (2)
Bước 1: Tìm siêu khóa
Tập LHS : ABCG Bước 2: Kiể m tra các tập con để
tìm siêu khóa ; tập con nhỏ nhấ tđể tìm khó dự tuyể n Kiể m tra ABC ABC+ = ABCDEGHI =R
![Page 6: Bai_2_OnCaoHocCNTT&#](https://reader030.vdocuments.mx/reader030/viewer/2022020808/5571fd094979599169985934/html5/thumbnails/6.jpg)
5/10/2018 Bai_2_OnCaoHocCNTT&# - slidepdf.com
http://slidepdf.com/reader/full/bai2oncaohoccntt 6/20
6/14/
31
Ví dụ tìm khóa (3)
Kiể m tra ACG ACG+= ABCDEGHI =R Kiể m tra BCGBCG+= BCGEHI ≠ R ? KHÔNG Can ABG
ABG+ = ABCDEGHI =R V Ậy ABC, ABG, ACG là các siêu khóa
32
Ví dụ tìm khóa (4) Lặp lại bước 2 cho ABC:
Xét AB AB+ = ABCDEGHI = R Xét AC
AC+ = ABCDEGHI = R Xét BC determine A? NoBC+ = BCEI ≠ R ? KHÔNG
Vậy AB và AC là siêu khóa
33
Ví dụ tìm khóa (5)
Lặp lại bước 2 cho ACG: Xét AC AC+ = ABCDEGHI = R Xét AG
AG+ = AGH ≠ R ? KHÔNG Xét CGCG+ = CGBEHI ≠ R ? KHÔNG Vậy AC là siêu khóa
34
Ví dụ tìm khóa (6)
Lặp lại bước 2 cho ABG: Xét AB
AB+=ABCDEGHI = R Xét AG
AG+ = AGH ≠ R ? KHÔNG Xét BGBG+= BGH ≠ R ? KHÔNG
Vậy AB là siêu khóa
35
Ví dụ tìm khóa (7) Tiế p tục lặp bước 2 cho AB:
Xét A
A+= A ≠ R Xét BB+= B ≠ R Vậy AB là siêu khóa nhỏ nhấ t (minimal
superkey)
36
Ví dụ tìm khóa (8)
Tiế p tục lặp bước 2 cho AC: Xét A
A+= A ≠ R Xét CC+=CBEI ≠ R
Vậy AC là siêu khóa nhỏ nhấ t
Tóm lại ta có AB và AC là các khóa dự tuyể n,chọn một trong hai làm khóa chính
![Page 7: Bai_2_OnCaoHocCNTT&#](https://reader030.vdocuments.mx/reader030/viewer/2022020808/5571fd094979599169985934/html5/thumbnails/7.jpg)
5/10/2018 Bai_2_OnCaoHocCNTT&# - slidepdf.com
http://slidepdf.com/reader/full/bai2oncaohoccntt 7/20
6/14/
37
Bài tập tìm khóa:
cho R = { A,B,C,D,E,G,H,I}F= { AC → B, BI → ACD, ABC → D , H→ I , ACE → BCG , CG → AE }Tìm khóa ? (1)
Bước 1: Gán K = R = {A,B,C,D,E,G,H,I} Bước 2: L ần lượt loại các thuộc tính của K
38
Tìm khóa ? (1)
Loại ph ần tử A: ta có{B,C,D,E,G,H,I}+ = R vì pth CG → AEkhiế n A thuộc v ề {B,C,D,E,G,H,I}+ nênK = {B,C,D,E,G,H,I}.
Loại ph ần tử B, ta có {C,D,E,G,H,I}+= R vì pth CG → AE khiế n A thuộc v ề{C,D,E,G,H,I}+ và pth AC → B nên K {C,D,E,G,H,I}.
39
Tìm khóa ? ( 2) Loại ph ần tử C, ta có {D,E,G,H,I}+ ≠ R
nên K vẫn là {C, D,E,G,H,I} Loại ph ần tử D, ta có: {C, E,G,H,I}+ = R vì
pth CG → AE khiế n A thuộc v ề {C,E,G,H,I}+ và pth AC → B nên K ={C,E,G,H,I}.
Loại ph ần tử E, ta có: {C, G,H,I}+ = R vìpth CG → AE , AC → B , ABC→ D nên K
={C,G,H,I}.40
Tìm khóa ? (3) Loại ph ần tử G, ta có: {C, H,I}+ ≠ R
nên K vẫn là {C, G,H,I}. Loại ph ần tử H, ta có: {C, G,I}+ ≠ R
nên K vẫn là {C, G,H,I}. Loại ph ần tử I, ta có: {C,G,H}+ = R
vì CG → AE , AC → B, ABC→ D nênK={C,G,H}.
Vậy K={ C,G,H} là một khóa của r ( R )
41
Bài tập 1
Cho LĐQH r( R) với R=ABCD và tập PTHF ={AB->C, C->D, D->A}
Tìm các khóa dự tuyể n ? Xét các tập con của ABCD Khóa AB,DB AB+=ABCD=R và DB=DBAC=R
42
Bài tập 2
Cho LĐQH r( R) với R=ABCD và tậpPTH F ={AB->C, B->D, D->B}
Tìm các khóa dự tuyể n ? Xét các tập con của ABD Khóa AB,AD AB+=ABCD=R và AD=DBAC=R
![Page 8: Bai_2_OnCaoHocCNTT&#](https://reader030.vdocuments.mx/reader030/viewer/2022020808/5571fd094979599169985934/html5/thumbnails/8.jpg)
5/10/2018 Bai_2_OnCaoHocCNTT&# - slidepdf.com
http://slidepdf.com/reader/full/bai2oncaohoccntt 8/20
6/14/
43
Bài tập 3 Cho tập PTH F={XY->W, Y->Z, WZ->P, WP->QR, Q->X} CM XY->P có thể suy được từ F(1) Ta có XY-> W ( cho)(2) Ta có WZ->P (cho)(3)XYZ->P ( bắc c ầu giả (1) và (2)(4) Y->Z ( cho)(5) XY->P ( bắc c ầu giả (4) và (3)Có thể dùng bao đóng XY+=XYWZPQR đpcm
Tương đương giữ a các tập PTH
45
Bài toán thành viên
Procedure Member Vào: F và PTH X → Y Ra : Đúng nế u F |= X → Y và Sai nế u nguợc lạiCách thứ c:Member(F, X → Y)Begin
If Y ⊂ Closure(X,F) Then return (True)Else Return (False)
End46
Tương đương của tập các PTH
Hai tập PTH F và G là tương đương nế u: Mọi PTH của F đều có thể suy được từ G và Mọi PTH của G đều có thể suy được từ F Do vậy F và G là tương đương nế u F + = G +
Định ngh ĩ a: F phủ G nế u mọi PTH của G đềusuy được từ F ( G + ⊆ F +)
F và G là tương đương nế u F phủ G và G phủF
47
Thuật toán DERIVES kiểm tra F |= G
Vào : hai tập PTH F và G Ra: Đúng nế u F |= G và sai nế u ngược lại. Cách thứ c:
DERIVES (F,G) Begin V:= true; For each X→ Y ∈ G do V := V AND member(F, X→ Y) Return (V); End.Dự a trên hàm DERIVES để xây dự ng hàm tương đương của hai tập
PTH.
48
Thuật toán EQUIVALENCE kiể mtra F tương đương G
Vào: hai tập PTH F và G Ra: Đúng nế u F tương đương G, sai nế u
ngược lại Cách thứ cEQUIVALENCE( F, G)Begin
V := Derives (F,G) AND Derives(G,F)Return (V)
End.
![Page 9: Bai_2_OnCaoHocCNTT&#](https://reader030.vdocuments.mx/reader030/viewer/2022020808/5571fd094979599169985934/html5/thumbnails/9.jpg)
5/10/2018 Bai_2_OnCaoHocCNTT&# - slidepdf.com
http://slidepdf.com/reader/full/bai2oncaohoccntt 9/20
6/14/
49
Bài tập kiể m tra tương đương Kiểm tra 2 tập PTH tương đương? Giải thích lý doF = { AB -> C, B -> C, A -> D }G = { A -> B, B -> C, C -> D }Giải: Hai tập PTH F và G là không tương đương vì PTH A -> B ∈ G như ng không thể suy đư ợc từ F
( Bao đóng A+ trên F là AD và không chứa B). PTH C -> D ∈ G cũng không suy đư ợc từ F ( Bao
đóng C+ trên F là C and và cũng không chứa D )
50
Phủ của tập PTH, tập PTH tương đương
C h o F v à G l à tập các PTH, ta nói Ftương đương với G và ký hiệu F ≡ Gnế u F+= G+.
Nế u F và G là tương đương thì ta nói Fphủ G hay G phủ F.
51
Tương đương giữ a 2 tập PTH Bài t ậ p: Cho quan hệ Q(ABCDE) với:F = {A BC ,
A DCD E}
vàG = {
A BCE A ABDCD E
}
52
Tương đương giữ a 2 tập PTH
Ta c ần CM: F ╞ G ⇔ F ├ G Xét PTH A E ∈ G suy được từ F nhờ vào
các luật dẫn.Trong F,ta có: {A C; A D}├ {A CD; CD ├ E} ├ A
E (bắc c ầu) K ế t luận: F ╞ G
Ta nhận thấ y F ⊆ G , do đó hiể n nhiên G ╞ F
K ế t luận: F ≡ G
53
PTH đầy đủ
Cho quan hệ r(U), F và X,Y ⊂ U, PTH f: X → Y ∈ F là đầy đủ với X nế u
không t ồn tại X’ ⊂ X sao cho F|=X’ → Y.
54
Phủ tố i tiể u của PTHMinimal Covers of FDs (1)
Tập PTH là tố i tiể u nế u thỏa các đi ều kiện sau: (1) Mọi PTH của F đều có một thuộc tính duy
nhấ t ở vế phải (RHS). (2) Không thể loại bấ t k ỳ PTH nào khỏi F mà
tập các PTH còn lại vẫn tương đương với F. (3) Không thể thay thế PTH X -> A của F với
PTH Y -> A khi Y ⊂ X mà vẫn có tập PTHtương đương với F (tấ t cả các PTH đều làPTH đầy đủ)
![Page 10: Bai_2_OnCaoHocCNTT&#](https://reader030.vdocuments.mx/reader030/viewer/2022020808/5571fd094979599169985934/html5/thumbnails/10.jpg)
5/10/2018 Bai_2_OnCaoHocCNTT&# - slidepdf.com
http://slidepdf.com/reader/full/bai2oncaohoccntt 10/20
6/14/
55
Phủ tố i tiể u của PTH
Mọi tập PTH đều tương đương vớ i mộtphủ tối tiểu Có thể tương đương vớ i nhiều phủ tiểu Có thuật toán để tính phủ tối tiểu
56
Thuật toán tìm phủ tố i thiể u của F
MINIMALCOVER(F,G) Vào: tập phụ thuộc hàm F Ra: G là phủ tố i thiể u của FG := FThay thế từ ng PTH X { A, A2, . . . , An} trong G bằng các PTH X A1,
X A2, . . . , X AnFOR EACH PTH X A trong G
FOR EACH B ∈ XIF ( G \ { X A} ) ∪ ( X \ {B}) A ) tương đương với G
Then Thay X A bằng ( X \{B}) AtrongGFOR EACH X AtrongGIF ( G \ { X A} ) tương đương với G thenloại X Akhỏi G
RETURN (G)END.
57
Ví dụ tìm phủ tố i thiể u
Cho tập thuộc tính R = {PCHART} vàtập phụ thuộc hàm F như sau:
F = { P → CHARTCH → PARTC → T
A → R
}58
Các bước của thuật toán (1)
Bước 1: G = F. Bước 2: G = { P → C;P → H; P→ A; P→ R;
P→T; CH → P; CH → A; CH → R; CH → T;C → T; A → R } ( 11 PTH)
Buớc 3: Kiể m tra PTH đầy đủ. Xóa l ần lượtcác thuộc tính trong vế trái của các PTH màvế trái có nhi ều thuộc tính, ví dụ CH → P;CH → A; CH → R; CH → T (Vế trái có 2thuộc tính).
59
Các bước của thuật toán (2)
3.a. (Xóa thuộc tính C từ CH → P), chứ ng tỏcó thể suy H → P từ G. (sai)
3.b. (Xóa thuộc tính H from CH → P) chứ ngtỏ có thể suy C→P có thể được suy ra từ G.(sai)
3.c.(Xóa thuộc tính C từ CH → A) chứ ng tỏ cóthể suy H→ A từ G. (sai)
3.d.(Xóa thuộc tính h từ CH → A) chứ ng tỏcó thể suy C→ A từ G. (sai)
60
Các bước của thuật toán (3)
3.e.(Xóa thuộc tính C từ CH → R )chứ ng tỏ có thể suy H→R từ G. (sai)
3.f.(Xóa thuộc tính H từ CH → R )chứ ng tỏ có thể suy C→R từ G. (sai) 3.g(Xóa thuộc tính C từ CH → T)
chứ ng tỏ có thể suy H→T từ G. (sai) 3.h. (Xóa thuộc tính H từ CH → T)
chứ ng tỏ có thể suy C→T từ G. (đúng)
![Page 11: Bai_2_OnCaoHocCNTT&#](https://reader030.vdocuments.mx/reader030/viewer/2022020808/5571fd094979599169985934/html5/thumbnails/11.jpg)
5/10/2018 Bai_2_OnCaoHocCNTT&# - slidepdf.com
http://slidepdf.com/reader/full/bai2oncaohoccntt 11/20
6/14/
61
Các bước của thuật toán (4)
Do vậy, vào cuố i bước 3, ta có : G= { P→C; P→H; P→ A; P→ R;
P→ T; CH → P; CH → A;CH → R; C→ T; A→ R } ( 10 PTH)
Loại CH → T
62
Các bước của thuật toán (5) Bước 4: Kiể m tra có thể loại bỏ các PTH trong G .
Mỗi l ần loại bỏ sẽ phát sinh tập các PTH mới G' .4.a. Có thể loại P→C ? (không )4.b. Có thể loại P→ H? (không)4.c. Có thể loại P→ A ? (không)4.d. Có thể loại P→R ? (được vì P→ A và A→R)4.e. Có thể loại P→ T ? (được vì P→C v à C→T)4.f. Có thể loại CH → P ? (không)4.g. Có thể loại CH → A ? (được, vì CH→ P vàP→ A)4.h. Có thể loại CH→ R ? (được vì CH→ P and P→R)
63
Các bước của thuật toán (6)
4.i. Có thể loại C→ T ? (không)4.j. Có thể loại A→ R ? (không)
Do vậy vào cuố i bước 4, ta có:G = { P→C; P→H; P→ A;CH -> P; C -> T; A → R }
K ế t quả: Phủ tố i thiể u của F l à :G = { P→C; P→ H; P→ A;
CH→ P; C→ T; A→ R}
64
Bài tập tìm phủ tố i tiể u
Cho R = ABCDE và F = { A -> C, BD -> E, B -> D, B -> E, C -> AD }.
1) Tìm phủ tố i thiể u của PTT(F) ?Đáp PTT(F)= { A-> C, B -> D, B-> E, C-> A, C-> D }
2) Tìm tấ t cả các khóa của F ? Đáp: AB và BC
Các dạng chuẩ nNormal Forms
66
Các dạng chuẩ n
Dạng chuẩ n 1 (DC1): First Normal Form (1NF) Dạng chuẩ n 2 (DC2): Second Normal Form (2NF) Dạng chuẩ n 3 (DC3): Third Normal Form (3NF)
Để chuẩ n hóa 1NF-> 2NF-> 3NF
![Page 12: Bai_2_OnCaoHocCNTT&#](https://reader030.vdocuments.mx/reader030/viewer/2022020808/5571fd094979599169985934/html5/thumbnails/12.jpg)
5/10/2018 Bai_2_OnCaoHocCNTT&# - slidepdf.com
http://slidepdf.com/reader/full/bai2oncaohoccntt 12/20
6/14/
67
Các loại PTH Phụ thuộc hàm riêng phần
partial functional dependency
X → A đư ợc gọi là ph ụ thu ộc h àm riêng ph ần nếu tồn tại Y ⊂ X để cho Y → A.
Phụ thuộc hàm đầy đủ full functional dependency
X → A đư ợc gọi là ph ụ thu ộc h àm đ ầy đ ủ nếu không tồn tại Y ⊂ X để cho Y → A.
Phụ thuộc bắc cầu transitive dependency
X → A đư ợc gọi là ph ụ thu ộc b ắc c ầu nếu tồn tại Y để cho X →Y , Y → A, Y −/→ X và A ∉ XY .
68
Dạng chuẩn 1(1NF - First Normal Form)
Định ngh ĩ a Quan hệ R ở d ạng chu ẩn 1 (1NF - First Normal Form )nếu mọi thuộc tính của R đều chứa các gi á tr ị nguyên t ố(atomic value ), giá trị này không là m ột danh s ách c ác gi á tr ị hoặc c ác gi á tr ị ph ứ c h ợ p (composite value ).
Các thuộc tính của quan hệ R
Không là thuộc tính đa trị (multivalued attribute ). Không là thuộc tính phức hợp (composite attribute ).
69
Ví dụ quan hệ không ở DC1
{435}DienVo Ngoc1311
{312,400,435
}
MocLe Son1412
{312,512}1311DienTran An1235
MANOILAM)MACBPTLOAINGHEHOTEN(MACNCNHAN
Lý do là thuộc tính MANOILAM có các giá trị không phải lànguyên tử .
Một quan hệ ở 1NF nế u các gía trị của tấ t cả thuộctính trong quan hệ là nguyên tử . Ví dụ quan hệ sau đây không phải là 1NF
70
Dạng chuẩn 2
Định ngh ĩ a Quan hệ R ở d ạng chu ẩn 2 (2NF - Second
Normal Form ) nếu R ở dạng chuẩn 1 và mọithuộc t ính không khóa đều phụ thuộc hàm đầyđủ vào mọi khóa của R .
71
Ví dụ v ề quan hệ ở DC2
Ví dụ: Cho LĐQH R = {A,B,C,D,E,G} vàF = { A → BC, C → DE, E → G }
Ta thấ y A là khóa vì A+ = R ( tập thuộctính của quan hệ).
Các thuộc tính không khóa là{B,C,D,E,G}.
Do khóa chỉ có một thuộc tính nên quanhệ R ở 2NF.
72
Dạng chuẩn 3Third Normal Form (2)
Lư ợ c đồ quan hệ R ở 3NF nếu nó ở 2NFvà không có thuộc tính không khóa nào
trong A trong R là phụ thuộc bắc cầuvào khóa
Có thể phân rã quan hệ thành các quanhệ ở 3NF qua tiến trình chuẩn hóa 3NF
![Page 13: Bai_2_OnCaoHocCNTT&#](https://reader030.vdocuments.mx/reader030/viewer/2022020808/5571fd094979599169985934/html5/thumbnails/13.jpg)
5/10/2018 Bai_2_OnCaoHocCNTT&# - slidepdf.com
http://slidepdf.com/reader/full/bai2oncaohoccntt 13/20
6/14/
73
Dạng chuẩ n 3(2)
Lược đồ quan hệ R ở 3NF nế u nó ở 2NFvà không có thuộc tính không khóa Anào trong R là phụ thuộc bắc c ầu vàobấ t k ỳ khóa nào của R
Định ngh ĩ a: Lược đồ quan hệ R ở 3NFnế u có PTH X -> A thỏa trên R thì: X là siêu khóa của R, hay A là thuộc tính khóa của R
74
Ví dụ v ề quan hệ không ở DC3 Xét quan hệ CNHAN nhu sau:
CNHAN(MACN LOAINGHE HESOTHUONG) Khóa của quan hệ là MACN Ta thấ y có các pth trong quan hệ:
MACN → LOAINGHEMACN → HESOTHUONGLOAINGHE → HESOTHUONG
Pth bắt c ầu: MACN -> LOAINGHE vàLOAINGHE -> HESOTHUONG
Thuộc tính không khóa HESOTHUONG phụ thuộcbắc c ầu vào thuộc tính khóa MACN, do đó quanhệ CNHAN không phải là 3NF.
75
Bài tập 1
Xét LĐQH r(R) với R=ABCDE và tậpPTH F = {AB->CE, E->AB, C->D}
Dạng chuẩ n cao nhấ t của quan hệ nàylà gì ?
1) Tìm khóa: AB, E AB+=ABCDE và E+=ABCDE
76
Bài tập 1 ( Xét DC cao nhấ t)Thuộc tính không khóa {C,D}2) Xác định dạng chuẩ n 2Các thuộc tính không khóa phải phụ thuộc đầy đủ vào khóa. Đúng
nên ở DC23) Xác định dạng chuẩ n 3Các thuộc tính không khóa phải không được phụ thuộc bắc c ầu vào
khóaHoặc nế u có PTH X->A thì X phải là siêu khóa hoặc A là thuộc tính
khóaXét PTH C->D ta có C không phải siêu khóa, D cũng không phải
thuộc tính khóaTa có AB->C và C-> D, vậy D phụ thuộc bắc c ầu vào khóa AB
77
Bài tập 2( Xét DC cao nhấ t) Cho LĐQH r(R) với R=ABCD F= {A->C, D->B, C->ABD}
Xác định dạng chuẩ n cao nhấ t Giải: Xác định khóa: A, C A+=ACBD C+ACBD Do tấ t cả các PTH đều có vế trái chỉ chứ a 1
thuộc tính nên DC2
78
Bài tập 2( Xét DC cao nhấ t)
Các thuộc tính khóa A,C Các thuộc tính không khóa B,D PTH D->B có vế trái D không phải là
siêu khóa. Ta có C->D và D->B phụ thuộc bắc
c ầu: không ở DC3 Dạng chuẩ n cao nhấ t là DC2
![Page 14: Bai_2_OnCaoHocCNTT&#](https://reader030.vdocuments.mx/reader030/viewer/2022020808/5571fd094979599169985934/html5/thumbnails/14.jpg)
5/10/2018 Bai_2_OnCaoHocCNTT&# - slidepdf.com
http://slidepdf.com/reader/full/bai2oncaohoccntt 14/20
6/14/
79
ThiThiế ế t k t k ế ế CSDL quan hCSDL quan hệệ
CSDLQH yêu c ầu tìm tập các lược đồquan hệ “tố t” Các PTH được dùng để lọc sơ đồ ER
(phân rã quan hệ phổ quát) Thiế t k ế t ồi có thể đư a đế n sai sót
80
V Vấ ấ n đn đ ề ề thithiế ế t k t k ế ế không tkhông t ồ ồii
f ir st _n am e l as t_ na me a dd re ss d ep ar tm en t p os it io n s al ar y
Dewi Srijaya 12a Jln Lempeng Toys clerk 2000
Izabel Leong 10 Outram Park Sports trainee 1200
John Smith 107 Clementi Rd Toys clerk 2000
Axel Bayer 55 Cuscaden Rd Sports trainee 1200
Winny Lee 10 West Coast Rd Sports manager 2500
Sylvia Tok 22 East Coast Lane Toys manager 2600
Eric Wei 100 Jurong drive Toys assistant manager 2200
? ? ? ? security guard 1500
Redundant storage
Update anomaly
Potential deletion anomaly
Insertion anomaly
Assume the position determines the salary:
position → salary
key
T1
81
V Ví í ddụụ vv ề ề chuchuẩ ẩ n hn hóóaaf ir st _n am e l as t _n am e a dd re ss d ep ar tm en t p os it io n
Dewi Srijaya 12a Jln lempeng Toys clerk
Izabel Leong 10 Outram Park Sports trainee
John Smith 107 Clementi Rd Toys clerk
Axel Bayer 55 Cuscaden Rd Sports trainee
Winny Lee 10 West Coast Rd Sports manager
Sylvia Tok 22 East Coast Lane Toys manager
Eric Wei 1 00 J ur on g d ri ve T oys assistant manager
position salary
clerk 2000
trainee 1200
manager 2500
assistant manager 2200
security guard 1500
T2
T3
No Redundant storage
No Update anomaly
No Deletion anomaly
No Insertion anomaly
82
ChuChuẩ ẩ n hn hóóaa
Chuẩ n hóa là tiế n trình phân rã lược đồquan hệ R thành các into mảnh (vdbảng nhỏ hơn) R 1, R 2,.., R n sao cho: Phân rã không mấ t tin (Lossless
decomposition): Các mảnh chứ a cùngthông tin như bản gố c. Ngược lại sẽ bị mấ ttin.
83
ChuChuẩ ẩ n hn hóóaa
Bảo toàn phụ thuộc (Dependencypreservation): C ần bảo toàn các phụ thuộc
trong từ ng quan hệ R i Dạng tố t (Good form): Các mảnh R i không
nên bị dư (bảng bị dư nế u có PTH mà vế trái LHS không phải là khóa).
84
Phân rã k Phân rã k ế ế t không mt không mấ ấ t tint tin Phân rã R không mấ t tin thành 2 quan hệ R1 và R2
nế u có thể khôi phục lại quan hệ R từ R1 và R2:
R= R1 R2
SELECT first_name, last_name, address,department, T2.position, salaryFROM T2, T3WHERE T2.position = T3.position
![Page 15: Bai_2_OnCaoHocCNTT&#](https://reader030.vdocuments.mx/reader030/viewer/2022020808/5571fd094979599169985934/html5/thumbnails/15.jpg)
5/10/2018 Bai_2_OnCaoHocCNTT&# - slidepdf.com
http://slidepdf.com/reader/full/bai2oncaohoccntt 15/20
6/14/
85
Phân rã k Phân rã k ế ế t không mt không mấ ấ t tint tin
Phân rã R thành R 1 và R 2 là không mấ t tin(lossless) nế u và chỉ nế u ít nhấ t một trongcác PTH sau có mặt trong F+: R 1 ∩ R 2 → R 1 R 1 ∩ R 2 → R 2
Nói cách khác, tập thuộc tính chung củaR 1 và R 2 phải là khóa dự tuyể n cho R 1hay R 2.
86
V Ví í ddụụ vv ề ề phân rã cphân rã cóó mmấ ấ t tint tin
A B
a
a
b
1
2
1
A
a
b
B
1
2
R1=∏A(R)
∏A(R) ∏B(R)
A B
a
a
b
b
1
2
1
2
R1=∏B(R)
R
87
Phân rã bPhân rã bảảo too toààn phn phụụ thuthuộộcc
Phân rã lược đồ quan hệ R với tập PTHF thành tập các bảng (mảnh) R i với PTHFi
Fi là tập các phụ thuộc trong F+ (baođóng của F) chỉ bao hàm các thuộc tínhcó trong R i.
Phân rã bảo toàn phụ thuộc nế u và chỉ
nế u (∪i Fi)+ = F+88
V Ví í ddụụ vv ề ề phân rã không bphân rã không bảảo too toààn phn phụụ thuthuộộccR = (A, B, C), F = {{A}→{B}, {B}→{C}, {A}→{C}}. Key: A
Có PTH {B}→ {C}, với vế tráikhông phải khóa ( cóthể bị dư trong R.)
Giải: Tách thành 2 bảng R1(A,B), R2(A,C) (chuẩn hóa)
A B C
1 2 3
2 2 3
3 2 3
4 2 4
Phân rã làkhông mất tin vì thuộc tính chung là A ( khóa của R1 vàR2)
Phân rã làkhông bảo toàn phụ thuộc vì F1={{A}→{B}}, F2={{A}→{C}} và (F1∪F2)+≠F+
PTH {B}→{C}. Đã bị mất
A C
1 3
2 3
3 3
4 4
A B
1 2
2 2
3 2
4 2
89
V Ví í ddụụ vv ề ề phân rã bphân rã bảảo too toààn phn phụụ thuthuộộccR = (A, B, C), F = {{A}→{B}, {B}→{C}, {A}→{C}}. Key: A
Tách R thành 2 bảng R1(A,B), R2(B,C)
A B C
1 2 3
2 2 3
3 2 3
4 2 4
A B1 2
2 23 2
4 2
B C
2 3
2 4
Phân rã là không mất tin vì thuộc tính chung làB ( khóa của R2 )
Phân rã bảo toàn phụ thuộc vì F1={{A}→{B}}, F2={{B}→{C}} và (F1∪F2)+=F+
90
Thuật toán kiể m tra phép phânrã không mấ t tin
Vào: Lược đồ quan hệ R={A1, A2, . . . , An}, tập cácpth F và phép tách
ρ( R1,R2, . . . , Rk) Ra: K ế t luận phép tách ρ không mấ t tin. Các buớc của thuật toán: Thiế t lập một bảng với n cột( thuộc tính) và k dòng
(quan hệ), cột thứ j ứ ng với thuộc tính A j, dòng thứ iứ ng với lược đồ R i .
Tại dòng i và cột j , ta đi ền ký hiệu a j nế u thuộc tinh A j ∈ R i. Ngược lại ta đi ền ký hiệu bij.
![Page 16: Bai_2_OnCaoHocCNTT&#](https://reader030.vdocuments.mx/reader030/viewer/2022020808/5571fd094979599169985934/html5/thumbnails/16.jpg)
5/10/2018 Bai_2_OnCaoHocCNTT&# - slidepdf.com
http://slidepdf.com/reader/full/bai2oncaohoccntt 16/20
6/14/
91
Ví dụ: dùng thuật toán kiể m traphép phân rã không mấ t tin
Cho LĐQH r( R) với R={A,B,C,D} Và tập PTH F F={A->B, AC->D} Phép phân rã ρ(AB,ACD) Kiể m tra phép phân rã ρ không mấ t tin
92
Tạo bảng
a4a3b22a1 ACD
b14b13a2a1 AB
DCB A
PTH: A->B , AC->D
93
Làm bằng dùng PTH A->B
a4a3b22/a2a1 ACD
b14b13a2a1 AB
DCB A
Dùng PTH A->B để làm bằng ph ần tử b22 thành a2
Vì bảng có dòng 2 chứ a toàn ai nên phân rã trên là không mấ t tin
94
Kiể m tra phép phân rã mấ t tin
Cho LĐQH r( R) với R={A,B,C,D,E} Và tập PTH F F={A->C, B->C,C->D,DE->C,CE->A} Phép phân rã ρ(AD,AB,BE,CDE) Kiể m tra phép phân rã ρ là mấ t tin
95
Phân rã bảo toàn phụ thuộc
Một phân rã ρ=(R1,R2, . . ., Rk) của lược đồ quanhệ R trên tập PTH F bảo toàn phụ thuộc nế u có thể suy ra được F từ các hình chiế u của F trên Ri.
Hình chiế u của F trên một tập các thuộc tính Z, kýhiệu là ΠZ(F) là tập các phụ thuộc X → Y thuộc F+sao cho XY ⊂ Z ( chú ý X → Y có thể không thuộc Fvà chỉ thuộc F+).
Ta nói phân rã ρ bảo toàn tập PTH F nế u hợp tấ t cảcác PTH trong ΠRi(F) với i=1,2,…,k khẳng định logictấ t cả PTH trong F.
96
Thuật toán kiể m tra bảo toànphụ thuộc
Vào: Phân rã ρ=(R1,R2, . . ., Rk) và tậppth F
Ra: Đúng nế u ρ bảo toàn phụ thuộc và sainế u ngược lại
Gọi G là hợp của tấ t cả ΠRi(F) với i=1,…,k Dùng thuật toán EQUIVALENCE để xem
xét G có tương đương với F hay không. Nế ucó trả v ề đúng, ngược lại trả v ề sai.
![Page 17: Bai_2_OnCaoHocCNTT&#](https://reader030.vdocuments.mx/reader030/viewer/2022020808/5571fd094979599169985934/html5/thumbnails/17.jpg)
5/10/2018 Bai_2_OnCaoHocCNTT&# - slidepdf.com
http://slidepdf.com/reader/full/bai2oncaohoccntt 17/20
6/14/
97
Thuật toán phân rã lược đồ thành DC3không mấ t tin, bảo toàn phụ thuộc
Bước 1: Loại khỏi R tấ t cả các thuộc tính không cómặt trong vế trái và vế phải của tấ t cả các PTH trongF.
Bước 2: Nế u có PTH X->Y mà XY=R thì k ế t quảchính là R
Bước 3: Với từ ng PTH X->A của F, tạo lược đồ XA. Bước 4:Nế u có các PTH X->A1, X->A2,…,X->An thì
tạo lược đồ XA1 A2..An thay cho từ ng lược đồ XAi. Bước 5: Nế u tấ t cả các ph ần tử của khóa K không
xuấ t hiện ở vế trái trong bấ t k ỳ quan hệ nào đượctạo ở bước 4 thì tạo quan hệ mới có thuộc tính làkhóa K
98
Ví dụ
Cho LĐQH r (R) với R=XYZWQ và tập PTH F F={X->Y, XZ->W, YW->Q} Tìm một khóa dự tuyể n: XZ XZ+=XZWYQ Bước 1:Không có thuộc tính nào thỏa nên
không thự c hiên bước 1. Bước 2:Không có PTH nào thỏa nên không
thự c hiện bước 2. Bước 3:Xét PTH X->Y, ta có quan hệ R(XY)
99
Ví dụ Bước 3:Xét PTH XZ->W, ta có quan hệ R(XZW) Bước 3:Xét PTH YW->Q, ta có quan hệ R(YWQ) Bước 4: Không có quan hệ nào có chung vế trái của
các PTH nên không gộp Bước 5: Các thuộc tính khóa XZ xuấ t hiện ở vế trái
của PTH XZ->W, do vậy KHÔNG tạo quan hệ mới K ế t quả: R1(XY), R2(XZW) và R3(YWQ) đạt DC3
không mấ t tin và bảo toàn phụ thuộc.
100
BBàài ti tậập 1p 1 Cho LĐQH r( R) với R={A,B,C,D,E} và tập PTH
F={A→BC}. Một phân rã R1(A,B,C) andR2(A,D,E)
Phân rã này không mấ t tin?Đúng vì thuộc tính chung A là thuộc tính khóacủa R1
Phân rã này có bảo toàn phụ thuộc?Đúng vì PTH:A→BC được duy trì trong R1
Phân rã R1(A,B,C) và R2(C,D,E) không mấ ttin?Không vì C ( thuộc tính chung) không phải làkhóa của bấ t k ỳ bảng nào.
101
Bài tập 2
Cho LĐQH r(R) với R= {A, B, C, D, E} và tậpPTH F = {A->BC, CD->E, B->D, E->A}. Xét
phân rã R 1= (A, B, C) R 2= (A, D, E) Phân rã không mấ t tin?
Đúng vì thuộc tính chung A là khóa của R1. Phân rã bào toàn phụ thuộc?
Không: ta mấ t các PTH CD->E và B->D
102
Bài tập 3:
Cho LĐQH r(R) với R={A, B, C, D} vàtập PTH F={AB->CD, B ->C}.
R ở DC2? Khóa: AB vì AB+ = ABCD=R B →C vi phạm DC2 vì B là tập con của
khóa và C không phải là thuộc tính khóa.
![Page 18: Bai_2_OnCaoHocCNTT&#](https://reader030.vdocuments.mx/reader030/viewer/2022020808/5571fd094979599169985934/html5/thumbnails/18.jpg)
5/10/2018 Bai_2_OnCaoHocCNTT&# - slidepdf.com
http://slidepdf.com/reader/full/bai2oncaohoccntt 18/20
6/14/
103
Bài tập 4
Cho LĐQH r(R) với R={A, B, C, D} andF={AB->CD, C->D}. R ở dạng chuẩ n 2?
Khóa: AB ta có AB+= ABCDTa có C->D, C không phải là tập concủa khóa vậy R ở dạng chuẩ n 2
104
Bài tập 5
Cho LĐQH r(R) với R={A, B, C, D, E} và tậpPTH F={A->B, BC->E, ED->A}Tìm các khóa của R
ACD , BCD , CDEPhân rã R đạt 3NF. R đã ở DC3 vì tấ t cả
các thuộc tính đều là thuộc tính khóa.
105
Bài tập 6 Cho quan hệ Sale (Customer, Store, Product, Price) Và ràng buộc: Khách mua hàng chỉ mua hàng trong 1 cử a hàng duy
nhấ t. Trong một của hàng các sản phẩ m có một đơngiá duy nhấ t ứ ng với từ ng sản phẩ m của cử a hàng.
Mô tả trên ứ ng với các PTH sau: {Customer} → {Store} {Store, Product} → {Price} Khóa dự tuyể n: {Customer, Product}
106
Bài tập 6 (tt)
Quan hệ Sale có ở dạng chuẩ n 3?Không vì cả 2 PTH đều vi phạm định ngh ĩ aDC3.
Phân rã Sale thành DC3R1(Customer,Store), R2(Store,Product,Price)
Phân rã bảo toàn phụ thuộc?Đúng vì từ ng PTH đều nằm trong từ ng quanhệ
107
Bài tập 7Phân rã (Customer,Store), (Store,Product,Price) là mấ t tin vì thuộc tínhchung Store không phải là khóa của bấ t k ỳ bảng con nào
KEY: Customer, Product
K ế t 2 bảng con (trên thuộc tính chung store)không khôi phục trở lại bảng gố c . K ế t quả k ế ttạo ra 4 mẩ u tin trong khi bảng gố c chỉ c ó 3 mẩ utin. Vấ n đề phát sinh vì không có bảng con nàochứ a khóa dự tuyể n Lời giải: thêm bảng con(Customer, Product) trong phân rã. ( thuật toánphân rã đạt DC3)
pr1 p1s1c2
pr2 p2s1c1
pr1 p1s1c1
PriceProduc
t
StoreCustome
r
s1c2
s1c1
StoreCustomer
pr2 p2s1 pr1 p1s1
PriceProductStore
c2
c1
c1
Customer
p1
p2
p1
Product
108
Bài tập 8Cho LĐQH r(R) với R ={A, B, C, D, E, F, G},
F={AB ->CD, C->EF, G->A, G->F, CE->F} Phân rã thành các quan hệ ở DC3 Tính phủ tố i tiể u
FC={AB->CD, C->EF, G->AF} Các khóa dự tuyể n : GB Phân rã đạt DC3
R1={ABCD} , R2={CEF} , R3={GAF} , R4={GB}
![Page 19: Bai_2_OnCaoHocCNTT&#](https://reader030.vdocuments.mx/reader030/viewer/2022020808/5571fd094979599169985934/html5/thumbnails/19.jpg)
5/10/2018 Bai_2_OnCaoHocCNTT&# - slidepdf.com
http://slidepdf.com/reader/full/bai2oncaohoccntt 19/20
6/14/
109
Bài tập 9
Cho LĐQH r(R) với R = {A,B,C,D}. Phân rã R thành các quan hệ ở DC3
theo từ ng PTH sau: {B}→{C} ,{D}→{A}
Khóa dự tuyể n: BD Phân rã: (B,C), (D,A), (B,D)
110
Cho LĐQH r(R) với R = {A,B,C,D}. Phân rã R thànhcác quan hệ ở DC3 theo từ ng PTHsau{A,B,C}→{D} , {D}→{A}Khóa dự tuyể n: ABC, BCDPhân rã R(A,B,C,D) đã ở DC3
Quan hệ r ( R ) có dư thừ a?Có vì vế trái của PTH {D}→{A} có thuộc tính Dkhông phải là khóa
Phân rã R(A,B,C,D) theo cách bảo toànn phụ thuộc vàkhông dư thừ a?Không có {A,B,C}→{D} chứ a 4 thuộc tính. Nế u phânrã R sẽ mấ t PTH này.
111
Bài tập 10Xác định dạng chuẩ n cao nhấ t cỉa các LĐQH sau: R1(A, C, B, D, E), F1={A→B, C→D}
Khóa là ACEDC1 (cả 2 PTH đều vi phạm DC2)
R2(A, B, C, F), F2={AB→C, C→F},Khóa là2NF (C→F vi phạm DC3)
R3(A, B, C), F3={AB→C, C→B}Khóa là AB, AC , Tấ t cả thuộc tính của quan hệ đều là thuộc tính
khóa, nên ở DC3.
112
Cho LĐQH r(R) với R = {A,B,C,D,E}.F = {A→BC, CD →E, B → D, E→ A }.Các phân rã sau là không mấ t tin ?1) R1 = {A,B,C}, R2 ={A,D,E}.2) R1 = {A,B,C}, R2 ={C,D,E}. 1) Vì R1 ∩ R2 = A và A là khóa của R1,
phân rã là không mấ t tin. 2) Do R1 ∩ R2 = C và C không phải là
khóa của R1 R2,nên phân ra này khôngphải là phân rạ không mấ t tin.
Bài tập 11: Phân rã không mất tin (LJD)
113
R = {A,B,C,D,E}.F = {A→BC, CD →E, B → D, E→ A }.R1 = {A,B,C}, R2 = {A,D,E}.
Phân rã trên có bảo toàn phụ thuộc?
Không vì mấ t CD → E và B → D.
Bài tập 12 : Phân rã bảo toàn PTH
114
Cho LĐQH r(R) với R =(A, B, C, D).F = {C→D, C→ A, B→C}.
1) Xác định các khóa dự tuyể n.2) Xác định dạng chuẩ n cao nhấ t.3) Phân rã R thành các quan hệ ở DC3.
Bài tập 13
![Page 20: Bai_2_OnCaoHocCNTT&#](https://reader030.vdocuments.mx/reader030/viewer/2022020808/5571fd094979599169985934/html5/thumbnails/20.jpg)
5/10/2018 Bai_2_OnCaoHocCNTT&# - slidepdf.com
http://slidepdf.com/reader/full/bai2oncaohoccntt 20/20
6/14/
115
R =(A, B, C, D).F = {C→D, C→ A, B→C}.
1) Xác định các khóa dự tuyể n.
B+ = B (B→B)= BC (B→C)= BCD (C→D)= ABCD (C→ A)
Khóa dự tuyể n là B.
B là khóa dự tuyể n DUY NHẤT
Bài tập 13 (1)
116
R =(A, B, C, D).F = {C→D, C→ A, B→C}.
2) Xác định dạng chuẩ n cao nhấ t.Khóa là B
R không ở DC3 vì:PTH C→D vi phạm,
C→D không hiể n nhiên ({D} ⊄ {C}).C không phải là siêu khóa.D không phải là thành ph ần của khóa bấ t k ỳ.
C→ A gây ra vi phạmTương tự ở trên
B→C không gây vi phạm
Bài tập 13 (2)
117
R =(A, B, C, D).F = {C→D, C→ A, B→C}.
3) Phân rã R thành các quan hệ ở DC3.Phủ chính tắ (canonical cover) là
Fc = {C→DA, B→C}.Đố i với từng PTH trong Fc tạo bảngR 1 = {C, D, A}, R 2 = {B, C}.
Bảng R 2 chứa khóa dự tuyể n cho R -k ế t thúc.
Bài tập 13 (3)
118
Bài tập 14
R = (A, B, C, D)F = {AB→C, AB→D, C→ A, D→B}Đúng.Xác định tấ t cả các khóa dự tuyể n : AB, BC, CD, AD
Kiể m tra tấ t cả PTH thỏa DC3
119
Bài tập 15
R = (A, B, C, D)F = {ABC→D, D→ A}
1. Xác định tấ t cả khóa dự tuyể n của R ABC, BCD2. Xác định dạng chuẩ n cao nhấ tDạng chuẩ n 3 vì tấ t cả các thuộc tính
đ ều là thuộc tính khóa.
120
Tài liệu tham khảo David Maier, Theory of Relational Database,
Computer Science Press, 1983 Đỗ Phúc, Nguyễn Đăng Tỵ: Cơ sở dữ liệu , NXB
ĐHQG-HCM, 2004 Lê Tiế n Vượng: Nhập môn cơ sở dữ liệu quan hệ,
NXb Thố ng kê, 2003 Nguyễn Xuân Huy, Lê Hoài Bắc, Bài tập CSDL, NXB
Thố ng Kê, 2003 Nguyễn Văn Tâm, Nguyễn Hữ u Hạnh, Cơ sở dữ liệu
quan hệ: Lý thuyế t và thự c hành. NXB Thố ng kê,2002