Professional Documents
Culture Documents
Hệ tiên đề Armstrong
( Functional Dependency and Normal Forms) Bao đóng của tập thuộc tính
Bài toán thành viên
Phủ tối tiểu
Giảng viên: PGS.TS. Đỗ Phúc
Khóa và thuật toán tìm khóa
Khoa Hệ thống thông tin
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 4
5 6
1
6/14/2009
7 8
IR1. (Luật phản xạ) Nếu Y ⊆ X, thì X -> Y Vd: Nếu AB Æ CD và AB Æ EF thì AB Æ CDEF
Vd: ABC Æ BC (Luật tách) Nếu X -> YZ thì X -> Y và X -> Z
IR2. (Luật tăng trưởng) nếu X -> Y thì XZ -> YZ Vd: Nếu AB Æ CDEF thì AB Æ CD và AB Æ EF
Vd: nếu C Æ D thì ABC Æ ABD và AB Æ C và AB Æ D và AB Æ E và AB Æ F
IR3. (Luật bắc cầu) Nếu X -> Y và Y -> Z thì X -> Z (Luật bắc cầu giả) Nếu X -> Y và WY -> Z thì WX->Z
9 10
11 12
2
6/14/2009
14
for each FD Y Æ Z in F do // kiểm tra từng PTH How to compute closure of {A,B}, i.e., {A,B}+?
15 16
Ví dụ tiếp theo
Ví dụ tính bao đóng X+ Cho R = (A, B, C, G, H, I) và F = {A Æ B, A Æ
C, CG Æ H, CG ÆI, B Æ H}, tính(AG)+
Cho quan hệ R = (A, B, C, G, H, I) và tập PTH
X+ = X
F = {A Æ B, A Æ C, CG Æ H, CG Æ I, B Æ H},
repeat
Tính (AG)+ ? oldX+ = X+
Ta muốn kiểm tra AG là siêu khóa của R. for each FD Y Æ Z in F do
Dùng thuật toán tính bao đóng (AG)+. if Y is a subset of X+, then
Nếu (AG)+ chứa tất cả thuộc tính của R thì X+ = X+ U Z
AG là siêu khóa của R. until X+ == oldX+
17 18
3
6/14/2009
4
6/14/2009
25 26
27 28
29 30
5
6/14/2009
31 32
33 34
B+= B ≠ R C+=CBEI ≠ R
Vậy AC là siêu khóa nhỏ nhất
Vậy AB là siêu khóa nhỏ nhất (minimal
35 36
6
6/14/2009
41 42
7
6/14/2009
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 Tương đương giữa các tập PTH
(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
43
Bài toán thành viên Tương đương của tập các PTH
Hai tập PTH F và G là tương đương nếu:
Procedure Member Mọi PTH của F đều có thể suy được từ G và
Vào: F và PTH X → Y
Mọi PTH của G đều có thể suy được từ F
Ra : Đúng nếu F |= X → Y và Sai nếu nguợc lại
Do vậy F và G là tương đương nếu F + = G +
Cách thức:
Member(F, X → Y) Định nghĩa: F phủ G nếu mọi PTH của G đều
Begin suy được từ F ( G + ⊆ F +)
If Y ⊂ Closure(X,F) Then return (True) F và G là tương đương nếu F phủ G và G phủ
Else Return (False) F
End
45 46
Dựa trên hàm DERIVES để xây dựng hàm tương đương của hai tập Return (V)
PTH. End.
47 48
8
6/14/2009
Bài tập kiểm tra tương đương Phủ của tập PTH, tập PTH tương đương
49 50
Tương đương giữa 2 tập PTH Tương đương giữa 2 tập PTH
Bài tập: Cho quan hệ Q(ABCDE) với:
Ta cần CM: F ╞ G⇔F├ G
F = {A BC ,
A D Xét PTH A E ∈ G suy được từ F nhờ vào
CD E các luật dẫn.Trong F,ta có:
}
{A C; A D}├ {A CD; CD ├ E} ├ A
và
G= { E (bắc cầu)
A BCE Kết luận: F ╞ G
A ABD Ta nhận thấy F ⊆ G , do đó hiển nhiên G ╞ F
CD E
} Kết luận: F ≡ G
51 52
53 54
9
6/14/2009
Phủ tối tiểu của PTH Thuật toán tìm phủ tối thiểu của F
MINIMALCOVER(F,G)
Mọi tập PTH đều tương đương với một Vào: tập phụ thuộc hàm F
phủ tối tiểu Ra: G là phủ tối thiểu của F
G := F
Có thể tương đương với nhiều phủ tiểu Thay thế từng PTH X { A, A2, . . . , An} trong G bằng các PTH XA1,
XA2, . . . , XAn
Có thuật toán để tính phủ tối tiểu FOR EACH PTH XA trong G
FOR EACH B ∈ X
IF ( G \ { XA} ) ∪ ( X \ {B}) A ) tương đương với G
Then Thay XA bằng ( X \ {B})A trong G
FOR EACH XA trong G
IF ( G \ { XA} ) tương đương với G then loại XA khỏi G
RETURN (G)
END.
55 56
Ví dụ tìm phủ tối thiểu Các bước của thuật toán (1)
Cho tập thuộc tính R = {PCHART} và Bước 1: G = F.
tập phụ thuộc hàm F như sau: Bước 2: G = { P → C;P → H; P→ A; P→ R;
P→T; CH → P; CH → A; CH → R; CH → T;
F = { P → CHART C → T; A → R } ( 11 PTH)
CH → PART Buớc 3: Kiểm tra PTH đầy đủ. Xóa lần lượt
C→ T cá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;
A→ R CH → A; CH → R; CH → T (Vế trái có 2
} thuộc tính).
57 58
Các bước của thuật toán (2) Các bước của thuật toán (3)
3.a. (Xóa thuộc tính C từ CH → P), chứng tỏ 3.e.(Xóa thuộc tính C từ CH → R)
có thể suy H → P từ G. (sai) chứng tỏ có thể suy H→R từ G. (sai)
3.b. (Xóa thuộc tính H from CH → P) chứng 3.f.(Xóa thuộc tính H từ CH → R)
tỏ có thể suy C→P có thể được suy ra từ G.
(sai) chứng tỏ có thể suy C→R từ G. (sai)
3.c.(Xóa thuộc tính C từ CH → A) chứng tỏ có 3.g(Xóa thuộc tính C từ CH → T)
thể suy H→A từ G. (sai) chứng tỏ có thể suy H→T từ G. (sai)
3.d.(Xóa thuộc tính h từ CH → A) chứng tỏ 3.h. (Xóa thuộc tính H từ CH → T)
có thể suy C→A từ G. (sai) chứng tỏ có thể suy C→T từ G. (đúng)
59 60
10
6/14/2009
Các bước của thuật toán (4) 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 .
Do vậy, vào cuối bước 3, ta có :
Mỗi lần loại bỏ sẽ phát sinh tập các PTH mới G'.
G= { P→C; P→H; P→ A; P→ R; 4.a. Có thể loại P→C ? (không )
4.b. Có thể loại P→ H? (không)
P→ T; CH → P; CH → A; 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)
CH → R; C→ T; A→ R } ( 10 PTH) 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)
Loại CH → T 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)
61 62
Các bước của thuật toán (6) Bài tập tìm phủ tối tiểu
4.i. Có thể loại C→ T ? (không) Cho R = ABCDE và
4.j. Có thể loại A→ R ? (không) F = { A -> C, BD -> E, B -> D, B -> E, C -> AD }.
63 64
66
11
6/14/2009
Dạng chuẩn 1
Các loại PTH (1NF - First Normal Form)
Phụ thuộc hàm riêng phần Định nghĩa
f partial functional dependency
f Quan hệ R ở dạng chuẩn 1 (1NF - First Normal Form)
f 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.
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
Phụ thuộc hàm đầy đủ
giá trị hoặc các giá trị phức hợp (composite value).
f full functional dependency
f X → A được gọi là phụ thuộc hàm đầy đủ nếu không tồn tại Y Các thuộc tính của quan hệ R
⊂ X để cho Y → A. f Không là thuộc tính đa trị (multivalued attribute).
Phụ thuộc bắc cầu
f Không là thuộc tính phức hợp (composite attribute).
f transitive dependency
f 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.
67 68
69 70
Dạng chuẩn 3
Ví dụ về quan hệ ở DC2 Third Normal Form (2)
12
6/14/2009
73 74
75 76
Bài tập 2( Xét DC cao nhất) Bài tập 2( Xét DC cao nhất)
Cho LĐQH r(R) với R=ABCD Các thuộc tính khóa A,C
F= {A->C, D->B, C->ABD}
Xác định dạng chuẩn cao nhất Các thuộc tính không khóa B,D
Giải: PTH D->B có vế trái D không phải là
Xác định khóa: A, C siêu khóa.
A+=ACBD
C+ACBD
Ta có C->D và D->B phụ thuộc bắc
Do tất cả các PTH đều có vế trái chỉ chứa 1 cầu: không ở DC3
thuộc tính nên DC2 Dạng chuẩn cao nhất là DC2
77 78
13
6/14/2009
Dewi
last_name
Srijaya
address
Toys
position
clerk
salary
2000
Winny
Bayer
Lee
55 Cuscaden Rd
10 West Coast Rd
Sports
Sports
trainee
manager
1200
2500
Eric
Tok
Wei
22 East Coast Lane
Toys
manager
assistant manager
2600
2200
Update anomaly
Thiết kế tồi có thể đưa đến sai sót ? ? ? ? security guard 1500
key
Assume the position determines the salary: Potential deletion anomaly
position → salary
Insertion anomaly
79 80
T2
Ví dụ về chuẩn hóa Chuẩn hóa
first_name last_name address department position
Dewi
Izabel
Srijaya
Leong
12a Jln lempeng
10 Outram Park
Toys
Sports
clerk
trainee
Chuẩn hóa là tiến trình phân rã lược đồ
John Smith 107 Clementi Rd Toys clerk quan hệ R thành các into mảnh (vd
bảng nhỏ hơn) R1, R2,.., Rn sao cho:
Axel Bayer 55 Cuscaden Rd Sports trainee
Winny Lee 10 West Coast Rd Sports manager
Sylvia
Eric
Tok
Wei
22 East Coast Lane
100 Jurong drive
Toys
Toys
manager
assistant manager
Phân rã không mất tin (Lossless
decomposition): Các mảnh chứa cùng
T3 thông tin như bản gốc. Ngược lại sẽ bị mất
position salary No Redundant storage tin.
clerk 2000
No Update anomaly
trainee 1200
No Deletion anomaly
manager 2500
assistant manager 2200 No Insertion anomaly
security guard 1500
81 82
83 84
14
6/14/2009
hay R2. 1
2
85 86
Ví dụ về phân rã không bả
bảo toà
toàn phụ
phụ thuộ
thuộc
Phân rã bảo toàn phụ thuộc R = (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)
87 88
Ví dụ về phân rã bả
bảo toà
toàn phụ
phụ thuộ
thuộc Thuật toán kiểm tra phép phân
R = (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)
rã không mất tin
A B C Vào: Lược đồ quan hệ R={A1, A2, . . . , An}, tập các
A B B C
pth F và phép tách
1 2 3 1 2 2 3 ρ( R1,R2, . . . , Rk)
2 2 3 2 2 2 4
3 2 Ra: Kết luận phép tách ρ không mất tin.
3 2 3 Các buớc của thuật toán:
4 2
4 2 4 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 Aj, dòng thứ i
Phân rã là không mất tin vì thuộc tính chung là B ( khóa của R2 ) ứng với lược đồ Ri .
Phân rã bảo toàn phụ thuộc vì F1={{A}→{B}}, F2={{B}→{C}} và (F1∪F2)+=F+ Tại dòng i và cột j , ta điền ký hiệu aj nếu thuộc tinh
Aj ∈ Ri. Ngược lại ta điền ký hiệu bij.
89 90
15
6/14/2009
91 92
Làm bằng dùng PTH A->B Kiểm tra phép phân rã mất tin
A B C D Cho LĐQH r( R) với R={A,B,C,D,E}
Và tập PTH F
AB a1 a2 b13 b14
F={A->C, B->C,C->D,DE->C,CE->A}
Phép phân rã ρ(AD,AB,BE,CDE)
ACD a1 b22/a2 a3 a4
Kiểm tra phép phân rã ρ là mất tin
95 96
16
6/14/2009
Ví dụ Bài tập 1
Cho LĐQH r( R) với R={A,B,C,D,E} và tập PTH
Bước 3:Xét PTH XZ->W, ta có quan hệ R(XZW) F={A→BC}. Một phân rã R1(A,B,C) and
Bước 3:Xét PTH YW->Q, ta có quan hệ R(YWQ) R2(A,D,E)
Bước 4: Không có quan hệ nào có chung vế trái của Phân rã này không mất tin?
các PTH nên không gộp
Đúng vì thuộc tính chung A là thuộc tính khóa
Bước 5: Các thuộc tính khóa XZ xuất hiện ở vế trái
của R1
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 Phân rã này có bảo toàn phụ thuộc?
không mất tin và 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ất
tin?
Không vì C ( thuộc tính chung) không phải là
99
khóa của bất kỳ bảng nào. 100
101 102
17
6/14/2009
103 104
105 106
18
6/14/2009
Bài tập 9
Cho LĐQH r(R) với R = {A,B,C,D}. Phân rã R thành
Cho LĐQH r(R) với R = {A,B,C,D}.
các quan hệ ở DC3 theo từng PTH
sau{A,B,C}→{D} , {D}→{A}
Phân rã R thành các quan hệ ở DC3 Khóa dự tuyển: ABC, BCD
theo từng PTH sau: {B}→{C} , Phân rã R(A,B,C,D) đã ở DC3
{D}→{A} Quan hệ r ( R ) có dư thừa?
109 110
113 114
19
6/14/2009
1) Xác định các khóa dự tuyển. 2) Xác định dạng chuẩn cao nhất.
Khóa là B
B+ = B (B→B)
= BC (B→C) R không ở DC3 vì:
= BCD (C→D) PTH C→D vi phạm,
C→D không hiển nhiên ({D} ⊄ {C}).
= ABCD (C→A) C không phải là siêu khóa.
Khóa dự tuyển là B. D không phải là thành phần của khóa bất kỳ.
C→A gây ra vi phạm
Tương tự ở trên
B là khóa dự tuyển DUY NHẤT B→C không gây vi phạm
115 116
117 118
119 120
20