Phân rã bảo toàn phụ thuộc

Một phần của tài liệu bài giảng cơ sở dữ liệu (Trang 68 - 70)

4.6.3.1 Định nghĩa phụ thuộc hàm đ−ợc bao trong một l−ợc đồ quan hệ

• Một phụ thuộc hàm f: X->Y d−ợc gọi là phụ thuộc hàm đ−ợc bao trong l−ợc đồ quan hệ R nếu XY ⊂ R+

• Một phụ thuộc hàm f: X->Y d−ợc gọi là phụ thuộc hàm đ−ợc bao trong l−ợc đồ cơ sở dữ liệu D = { R1, R2,..., Rp} nếu f đ−ợc bao trong Rj, i∈

[1..p].

4.6.3.2 Định nghĩa phụ thuộc hàm bị ép thoả trong l−ợc đồ cơ sở dữ liệu

• Gọi G là tập tất cả các phụ thuộc hàm đ−ợc bao trong D thì

∀f ∈ G+, f đ−ợc gọi là bị ép thoả trong l−ợc đồ cơ sở dữ liệu D.

∀f ∈ (F+ - G+), f đ−ợc gọi là không bị ép thoả trong l−ợc đồ cơ sở dữ liệu D.

• Gọi G là tập tất cả các phụ thuộc hàm đ−ợc bao trong D ta nói tập phụ thuộc hàm F đ−ợc gọi là bị ép thoả trong D nếu F≡G.

Ví dụ: Cho D= { R1, R2, R3 } với R1(A,B,C), R2(B,C,D), R3(D,E) Xét F ={ A -> BC, C -> A, A -> D, D -> E, A -> E}

Ta nhận thấy phụ thuộc hàm A->D và A->E không đ−ợc bao trong D nh−ng F bị ép thoả trong D vì ta tìm đ−ợc tập G={ A-> BC, C ->A, D->E, C -> D} gồm các phụ thuộc hàm đ−ợc bao trong D và G ≡ F.

4.6.3.3 Điều kiện phân rã bảo toàn phụ thuộc

Một phân rã ρ là bảo toàn phụ thuộc F nếu F bị ép thoả trong ρ với t− cách là một l−ợc đồ cơ sở dữ liệu.

4.6.3.4 Giải thuật kiểm tra phân rã ρ có bảo toàn phụ thuộc

Cho l−ợc đồ quan hệ R, tập phụ thuộc hàm F định nghĩa trên R và phân rã

ρ= {Rj} j =1.. n.

Giải thuật Eclosure(X,F, ρ)

Vào: tập thuộc tính X, Tập phụ thuộc hàm F, phân rã ρ

Ra : X+ F

1. Y := ỉ 2. While Y <> X do Begin Y:=X; for ∀Rj∈ ρ do X := X U ((X ∩ Ri)+ F ∩ Ri); End; 3. Return X; Giải thuật Enforce(F, ρ)

Vào : Tâp phụ thuộc hàm F, phân rã ρ

Ra : đúng, Sai Ph−ơng pháp:

1. For ∀f∈F, f không đ−ợc bao trong ρ, f: X->Y do if Not Y ⊂ Eclosure(X,F, ρ) then return False; 2. Return true;

Ví dụ Cho F = { A->B, B ->C, C -> D, D -> A } và phân rã ρ

={(AB),(BC),(CD)}. Kiểm tra phân rã ρ có bảo toàn phụ thuộc F không?

Ta nhận thấy chỉ có phụ thuộc hàm D -> A không đ−ợc bao trong ρ. áp dụng giải thuật Enforce(F, ρ) ta kiểm tra Y có chứa trong Eclosure(D)?

Tính toán ta đ−ợc Eclosure(D)=ABCD tức A ⊂ Eclosure (D). Suy ra phân rã

ρ bảo toàn phụ thuộc trong F.

Một phần của tài liệu bài giảng cơ sở dữ liệu (Trang 68 - 70)