Thuật toỏn tỡm bao đúng

Một phần của tài liệu Tài liệu học tập cơ sở dữ liệu (Trang 125 - 135)

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= {AI, ACD, BC, DE} 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 XY

 Tớnh X+ trờn tập F’ (F’ đó loại bỏ FD XY ) Nếu X+ Y thỡ loại XY 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 XYZ (Loại X hoặc loai Y?) Xột XZ tớnh X+ (trờn tập F) nếu Y X+ Loại Y Xột YZ 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ế phi ca cỏc ph thuc hàm sao cho ch cha duy nht mt thuc tớnh:

F = {X→Z, XY→W, XY →P, XY→Z, XY →W, XY → Q, XZ → R}.

B2. Loi b cỏc ph thuộc dư thừa: xột lần lượt tng ph thuc 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. Loi b cỏc thuc tớnh vếtrỏi dư thừa: xột tt c cỏc ph thuc hàm mà VT cú t 2 thuc 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 = TNKế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 ni khụng mt 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. Kim 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, CD}

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: CD

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ỡ 𝜌

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+.

Một phần của tài liệu Tài liệu học tập cơ sở dữ liệu (Trang 125 - 135)

Tải bản đầy đủ (PDF)

(200 trang)