b. Cỏc hàm thư viện
3.1.4.3. Thuật toỏn tỡm bao đúng
Input: U, F; X, Y, Z U Output: X+
Phương phỏp: Tớnh liờn tiếp tập cỏc thuộc tớnh X0, X1, … theo quy tắc:
B1: X0 = X
Bi: Xi+1 = Xi A
Nếu tồn tại phụ thuộc hàm Y Z thuộc F+ mà A Z, Y Xi
Do X U mà U hữu hạn nờn i hữu hạn, khi đú X+ = Xi+1
Vớ dụ: Cho quan hệ R xỏc định trờn U, với U = { A, B, C, D, E, I}; F= {AI, ACD, BC, DE} Tỡm (AC)+ Giải: 1. X0 = AC 2. X1= ACDI (vỡ A I, AC D) 3. X2= ACDIE (vỡ D E)
KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP 3.1.5. Phủ tối thiểu
Phủ của tập cỏc phụ thuộc hàm :
Gọi F và G là cỏc tập của cỏc phụ thuộc hàm. Núi rằng F, G là tương đương nếu F+ = G+. Nếu F, G là tương đương đụi khi cũn núi F phủ G (và G phủ F). Dễ dàng kiểm tra liệu F và G cú tương đương với nhau hay khụng. Phương phỏp kiểm tra:
Lấy mỗi phụ thuộc hàm Y→Z thuộc F, kiểm tra xem liệu Y→Z cú thuộc G+
khụng ? Dựng thuật toỏn 3.1 để tớnh Y+và kiểm tra liệu Z⊆ Y+ hay khụng ?
Nếu tồn tại một phụ thuộc hàm Y→Z thuộc F mà khụng phụ thuộc G+thỡ chắc chắn F+ ≠ G+. Nếu mỗi phụ thuộc hàm thuộc F cũng thuộc G+thỡ mỗi phụ thuộc hàm V→W thuộc F+cũng thuộc G+.
Để kiểm tra mỗi phụ thuộc G là thuộc F+quỏ trỡnh làm hoàn toàn tương tự. Do đú F và G là tương đương khi và chỉ khi mỗi phụ thuộc hàm thuộc F là thuộc G+ và mỗi phụ thuộc hàm thuộc G thuộc F+.
Định lý :
Mỗi tập cỏc phụ thuộc hàm F đều được phủ bằng tập cỏc phụ thuộc hàm G mà
vế phải cỏcphụ thuộc hàm đú bao gồm khụng quỏ một thuộc tớnh.
Chứng minh :
Gọi G là tập cỏc phụ thuộc hàm X→A sao cho với X→Y thuộc F thỡ A∈Y. TừX→Y suy ra X→A.
Do vậy G⊆ F+
Ngược lại, cú F⊆ G+vỡ nếu Y= A1…An thỡ X→Y được suy ra từ : X→A1, ….., X→An nhờ luật hợp.
Để cú thể phục vụ quỏ trỡnh thiết kế lược đồ cơ sở dữ liờu, sau đõy sẽ đưa ra một số khỏi niệm:
Gọi tập cỏc phụ thuộc hàm F là tối thiểu nếu:
a. Mỗi vế phải của một phụ thuộc hàm thuộc F chỉ cú một thuộc tớnh. b. Khụng tồn tại một phụ thuộc hàm X→A thuộc F mà
KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP
c. Khụng tồn tại một phụ thuộc hàm X→A thuộc F và một tập hợp con Z của X mà F+= (F- {X→A}∪{Z→A}) +
Thực vậy, điều kiện b đảm bảo cho tập F khụng cú một phụ thuộc hàm nào mà dư thừa, điều kiện C đảm bảo khụng cú thuộc tớnh nao tham gia phớa trỏi của phụ thuộc hàm là dư thừa. Vế phải của phụ thuộc hàm ở điều kiện a chỉ cú một thuộc tớnh đảm bảo chắc chắn khụng cú một thuộc tớnh nào trờn vế phải là dư thừa.
Định lý
Mỗi tập phụ thuộc hàm F đều tương đương với một tập F’ tối thiểu. Chứng minh:
Giả sử rằng khụng vế phải nào của cỏc phụ thuộc hàm của F cú nhiều hơn một thuộc tớnh. Để kiểm tra điều kiện b, xột (X→Y) ∈F.
Nếu (F- {X→Y}) + =F+thỡ loại bỏ X→Y khỏi F.
Chỳ ý rằng cỏc phụ thuộc hàm được sắp theo một thứ tự khỏc nhau thỡ sẽ cho ra kết quả khỏc nhau.
Vớ dụ:
Cho tập F gồm:
A→B, A→C, B→C, B→A, C→A
Cú thể loại bỏ F: B→A và A→C hoặc loại bỏ B→C nhưng khụng thể đồng thời loại bỏ cả ba phụ thuộc hàm.
Như vậy điều kiện b được thỏa. Cần kiểm tra điều kiện c cho tập cỏc phụ thuộc cũn lại của F. Ở đõy cũng cần lưu ý tới thứ tự cỏc thuộc tớnh xuất hiện bờn vế trỏi của cỏc phụ thuộc hàm.
Loại bỏ cỏc thuộc tớnh vế trỏi của cỏc phụ thuộc hàm sao cho tập cỏc thuộc tớnh vẫn là tương đương. Quỏ trỡnh tiếp tục cho đến khi khụng thể loại bỏphụ thuộc hàm nào được nữa. Như vậy tập cỏc phụ thuộc hàm cũn lại của F sẽ tạo nờn F’ và thỏa ba điều kiện của một tập tối thiểu.
KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP
Tỡm phủ tối thiểu
B1: Tỏch cỏc thuộc tớnh ở vế phải của mỗi phụ thuộc hàm thành nguyờn tử (Vế phải của mỗi phụ thuộc hàm chỉcú 1 thuộc tớnh)
B2: Loại bỏ phụ thuộc hàm dư thừa Giả sử: Xột phụ thuộc hàm XY
Tớnh X+ trờn tập F’ (F’ đó loại bỏ FD XY ) Nếu X+ Y thỡ loại XY khỏi tập F
B3: Loại bỏ cỏc thuộc tớnh dư thừa ở vế trỏi
Giả sử: Xột phụ thuộc hàm XYZ (Loại X hoặc loai Y?) Xột XZ tớnh X+ (trờn tập F) nếu Y X+ Loại Y Xột YZ tớnh Y+ (trờn tập F) nếu X Y+ Loại X
Vậy, tập cỏc phụ thuộc hàm cũn lại là phủ tối thiểu cần tỡm.
Vớ dụ: Cho F = {X → Z, XY → WP, XY → ZWQ, XZ → R}. Xỏc định tập phủ tối thiểu từ tập F?
Giải:
B1. Tỏch cỏc vế phải của cỏc phụ thuộc hàm sao cho chỉ chứa duy nhất một thuộc tớnh:
F = {X→Z, XY→W, XY →P, XY→Z, XY →W, XY → Q, XZ → R}.
B2. Loại bỏ cỏc phụ thuộc dư thừa: xột lần lượt từng phụ thuộc hàm
+ Xột X→Z. Tớnh X+ trờn F-{X→Z} Cú X+ =X ko chứa Z.
+ Xột XY →W (vỡ trong tập phụ thuộc hàm F cú 2 phụ thuộc hàm này nờn loại đi)
KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP
F={X→Z, XY→W, XY →P, XY→Z, XY → Q, XZ → R} + Xột XY→Z vỡ (XY)+=XYZWPQ (Tớnh (XY)+ trờn F-{ XY→Z})
Ta thấy Z ⊂ (XY)+ vỡ vậy loại XY→Z
F: = {X→Z, XY →W, XY →P, XY → Q, XZ → R}
B3. Loại bỏ cỏc thuộc tớnh vếtrỏi dư thừa: xột tất cả cỏc phụ thuộc hàm mà VT cú từ 2 thuộc tớnh trở lờn:
+ Xột XY→W:
X→W cú X+=XZR khụng chứa Y nờn Y ko dư thừa Y→W cú Y+=Y khụng chứa X nờn X ko dư thừa Tương tựxột: XZ → R
Cú X+=XZR chứa Z nờn Z dư thừa. Ta cú phủ tối thiểu:
G: = {X→Z, XY →W, XY →P, XY → Q, X → R}.
3.1.6. Khúa
Thuật toỏn tỡm tất cả cỏc khúa
Tỡm tập thuộc tớnh nguồn (TN): Chứa tất cả cỏc thuộc tớnh xuất hiện ở vế trỏi (VT) và khụng xuất hiện ở vế phải (VP) của cỏc phụ thuộc hàm và những thuộc tớnh khụng xuất hiện ở VT lẫn VP của cỏc phụ thuộc hàm.
Tập thuộc tớnh trung gian (TG): Chứa tất cả những thuộc tớnh xuất hiện ở cả VT lẫn VP của cỏc phụ thuộc hàm.
Thuật toỏn:
B1: Tạo tập TN và TG
B2: Nếu TG = thỡ lược đồ quan hệ chỉ cú một khúa K = TNKết thỳc,
KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP
Ngược lại, chuyển sang B3
B3: Tỡm tất cả cỏc tập con Xicủa tập trung gian TG
B4: Tỡm tất cả cỏc siờu khoỏ Si bằng cỏch với Xi : Nếu (TN Xi )+ = Tập thuộc tớnh của R
Thỡ Si = TN Xi
B5: Tỡm khúa bằng cỏch loại bỏ cỏc siờu khúa khụng tối thiểu
Si, Sj S, nếu Si Sj thỡ Loại Sj ra khỏi tập siờu khoỏ S; Si cũn lại chớnh là tập khúacần tỡm.
Vớ dụ: Cho lược đồ quan hệ R(C,S,Z) và tập phụ thuộc hàm như sau:
F = {CS → Z, Z → C} Tỡm tất cả cỏc khúa của R?
Ta cú: TN={S}, TG={C,Z}
Xi (Xi TN) (Xi TN)+ Siờu khúa Khúa
S S C CS CSZ CS CS Z SZ CSZ SZ SZ CZ CSZ CSZ CSZ 3.2. Phộp tỏch - kết nối 3.2.1 Khỏi niệm
Phộp tỏch một lược đồ quan hệ R = {𝐴1… … , 𝐴𝑛} là việc thay thếlược đồ quan hệ R bằng cỏc cặp lược đồ{𝑅1……,𝑅𝑘}trong đú 𝑅𝑖 ⊆R, i = l, …., k và
KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP
Ởđõykhụng đũi hỏi cỏc lược đồ 𝑅𝑖 phải là phõn biệt. Mục tiờu của phộp tỏch chủ yếu là loại bỏ cỏc dịthường dữ liệu.
3.2.2. Phộp tỏch-kết nối tự nhiờn
Cho lược đồ quan hệngười cung cấp: S(SNAME, ADD, PRO, PRICE) và giả sử cú cỏc phụ thuộc hàm :
SNAME → ADD SNAME → PRO, SNAME → PRICE
Lược đồ S cú thể thay thế bằng hai lược đồ khỏc là S1(SNAME, ADD) và S2 (SNAME, PRO, PRICE)
Như vậy rừ ràng ở S1 mỗi nhà cung cấp chỉ cần một lần lưu địa chỉ tương ứng của họ chứ khụng phải lặp đi lặp lại như ởlược đồ S.
Vấn đềđặt ra là liệu một cơ sở dữ liệu r thỏa món trờn S, khi tỏch ra S1 và S2 cú phự hợp khụng?
Hai hỡnh chiếu r[𝑆1] và r[𝑆2] cú cũn phự hợp k? Hai hỡnh chiếu r[𝑆1] và cú cũn giữ được cựng thụng tin với r? Núi cỏch khỏc, nếu kết nối 2 hỡnh chiếu r[𝑆1] và r[𝑆2] thành 1 quan hệ mới, vớ dụ s = r[𝑆1] * r[𝑆2] liệu r # s hay r=s? để nghiờn cứu cỏc điều kiện cho kết quả phộp kết nối tự nhiờn nờu trờn là duy nhất và bằng quan hệ ban đầu, cần thiết phải nghiờn cứu 3.2.3 Phộp tỏch - kết nối khụng mất mỏt thụng tin.
3.2.3 Phộp tỏch - kết nối khụng mất mỏt thụng tin.
a. Kết nối khụng mất thụng tin
Nếu R là một lược đồ quan hệđược tỏch thành cỏc lược đồ con 𝑅1,𝑅2…𝑅𝑘 và D là tập cỏc phụ thuộc dữ liệu, núi rằng phộp tỏch là tỏch - kết nối khụng mất mỏt thụng tin (lossless Join decomposition) đối với D nếu mối quan hệ r trờn R thỏa D:
r = Π𝑅1(𝑟) ∗ Π𝑅2(𝑟) ∗ … .∗ Π𝑅𝑘(𝑟)
tức là r được tạo nờn từ phộp nối tự nhiờn của cỏc hỡnh chiếu của nú trờn cỏc 𝑅𝑖, i= 1…,k.
KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP
Tập cỏc lược đồ𝜌 = (R1, …., Rk) được thay thếcho lược đồ R. Gọi m𝜌 là ỏnh xạxỏc định nhờ m𝜌(𝑟) = Π𝑅𝑖(𝑟)cú nghĩa là m𝜌(𝑟)là kết núi của phộp chiếu của r trờn cỏc lược đồ con trong 𝜌. Điều kiện để kết núi khụng mất mỏt thụng tin đối với D được biểu diễn như sau:
Với mọi r thỏa D, r= m𝜌(𝑟)
Định lý:
Gọi R là lược đồ quan hệ𝜌 = (R1, …., R2) là phộp tỏch của R, r là quan hệ trờn R và ri = Π𝑅𝑖(𝑟) thỡ:
a. r⊆ m𝜌(𝑟)
b. Nếu s= m𝜌(𝑟) thỡ Π𝑅𝑖(𝑟) = 𝑟𝑖
c. m𝜌(m𝜌(𝑟)) = m𝜌(𝑟)
b. Kiểm tra phộp kết nối khụng làm mất mỏt thụng tin
Liệu một phộp tỏch cú phộp kết nối khụng mất mỏt thụng tin hay khụng đối với tập cỏc phụ thuộc hàm được kiểm tra qua thuật toỏn sau đõy:
Thuật toỏn: Kiểm tra kết nối khụng mất mỏt thụng tin
Input : Lược đồ quan hệ R, tập cỏc phụ thuộc hàm F và phộp tỏch.
Output : Kết luận phộp tỏch cú phải là khụng mất mỏt thụng tin ?
Phương phỏp :
Thiết lập một bảng với n cột và k hàng, cột thứ j ứng với thuộc tớnh Aj, hàng thứ i ứng với lược đồ Ri. Tại hàng j và cột j điền ký hiờu ajnếu Aj∈Ri, nếu khụng điền ký hiệu bij.
Bõy giờ xem xột đến cỏc phụ thuộc hàm từ F ỏp dụng cho bảng vừa thiết lập được. Giả sử xem xột (X→Y) ∈F. Xột cỏc hàng nếu cú giỏ trị bằng nhau trờn thuộc tớnh X thỡ làm bằng cỏc giỏ trị của chỳng trờn Y. Chỳ ý khi làm bằng giỏ trị trờn Y, nếu một trong hai giỏ trị là ajthỡ ưu tiờn làm bằng ký hiệu là aj. Ngoài ra làm bằng chỳng bằng một trong cỏc ký hiệu bij.
KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP
Tiếp tục ỏp dụng thuật toỏn cho cỏc phụ thuộc hàm, kể cả cỏc phụ thuộc hàm đó ỏp dụng cho tới khi khụng cũn ỏp dụng được nữa.
Xem xột lại bảng kết quả: Nếu xuất hiện một hàng gồm cỏc ký hiệu a1…an thỡ phộp kết nối khụng làm mất thụng tin. Trường hợp ngược lại là kết nối mất mỏt thụng tin (lossy join).
Vớ dụ: Cho R(U) , U = {A, B, C, D}.
F = {A C, B C, CD B, CD}
Phộp tỏch = {R1(AB), R2(BD), R3(ABC), R4(BCD)} Kiểm tra phộp tỏch cú mất mỏt thụng tin?
Giải:
Lập một bảng gồm: - 4 cột (A, B, C, D)
- 4 hàng (R1, R2, R3, R4)
KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP
Áp dụngphụ thuộc hàm : A C
KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP
Áp dụngphụ thuộc hàm: CD
Kết luận:Dũng (hàng) thứ 3 xuất hiện toàn giỏ trị a (a1,a2,a3,a4) nờn phộp tỏch khụng
bị mất mỏt thụng tin.
Định lý
Nếu 𝜌= (R1, R2) là một phộp tỏch của R và F là tập hợp phụ thuộc hàm thỡ 𝜌 là
phộp tỏch khụng mất mỏt thụng tin đối với F khi và chỉ khi :
R1∩ R2 -→ R1- R2hoặc R1∩ R2 -→ R2 – R1
Chỳ ý rằng cỏc phụ thuộc hàm nờu trờn khụng nhất thiết phải thuộc tập F ban đầu nhưng là đủ để thuộc F+.