Phép tách lược đồ quan hệ thành các lược đồ 3NF

Một phần của tài liệu Cơ sở dữ liệu (Trang 91 - 95)

Thuật toán tách lược đồ thành tập các lược đồ 3NF với phép tách không mất mát thông tin:

+ Vào: Lược đồ quan hệ R(U). Tập phụ thuộc hàm F.

+ Ra: ρ={R1(U1), ...,Rm(Um) | Ri(Ui), i=1, ..., m là 3NF} với phép tách không mất mát thông tin.

+ Phương pháp:

Bước 1: Tìm phủ tối thiểu F' của F.

Bước 2:

i) Đặt U0= X với X là tập các thuộc tính không xuất hiện trong bất kỳ một phụ thuộc hàm nào (cả vế trái lẫn vế phải) của F'.

Nếu U0 ≠∅ thì lập một lược đồ R0(U0).

ii) Nếu tồn tại phụ thuộc hàm dạng L → A ∈F' mà LA = U\U0

thì ta lập một lược đồ R1(U\U0) và khi đó ρ (R0(U0), R1(U\U0)) là phép tách R thành các lược đồ 3NF.

iii) Nếu ∃Li→Ai1, ..., Li →Aik , k≥1 thì lập lược đồ Ri(LiAi1 . . . Aik). Khi đó ρ (R0(U0), Ri(Ui)) là phép tách R thành các lược đồ 3NF.

Bước 3:

i) Tìm một khóa K của R(U).

ii) Nếu tồn tại Ui mà K ⊆ Ui thì ρ(R0(U0), Ri(Ui)) là phép tách R thành các lược đồ 3NF, không mất mát thông tin (Giữ nguyên kết quả bước 2).

iii) Nếu không tồn tại Ui thoả ii) nhưng tồn tại Ui mà K⊆ U0 ∪ Ui

thì ρ(Ri(Ui), R0(K)) (thay U0 =K) là phép tách R thành các lược đồ 3NF, không mất mát thông tin.

iv) Nếu không tồn tại Ui thoả iii) thì ρ(Ri(Ui), R0(U0), R(K)) là phép tách R thành các lược đồ 3NF, không mất mát thông tin (Thêm vào lược đồ R(K)).

Ví dụ 1: Cho lược đồ quan hệ R(U), với U={A, B, C, D, E, G } và tập phụ thuộc hàm F={A→G, CG→D, CD→A, AE→B, CE→D}.

Hãy tách lược đồ R thành dạng 3NF với phép tách không mất mát thông tin.

Phủ tối thiểu của F là F' = F

* Không tồn tại thuộc tính không xuất hiện trong mọi PTH của F' (U0=∅)

* Không tồn tại PTH dạng L → A mà LA = U\U0

* Không tồn tại các PTH có vế trái giống nhau Vậy ta có phép tách là

ρ(R1(AG), R2(CGD), R3(CDA), R4(AEB), R5(CED)).

Ta tìm được một khóa của R là K=EC. Do K ⊆ U5=CED nên ρ(R1(AG), R2(CGD), R3(CDA), R4(AEB), R5(CED)).

là lược đồ chuẩn hoá không mất mát thông tin.

Ví dụ 2: Cho lược đồ quan hệ R(U) với U= {A, B, C, D, E, F, G} và tập phụ thuộc hàm F={A→BC, D→E, AD→F}. Hãy tách lược đồ quan hệ trên thành tập các lược đồ dạng 3NF với phép tách không mất mát thông tin.

1. Tìm phủ tối thiểu F' của F

Ta có F' = {A→B, A →C, D→E, AD →F}. 2. Tách

i) Do G có mặt trong bất kỳ PTH nào của F' nên đặt U0 = G và xác định lược đồ R0(G).

ii) Không tồn tại phụ thuộc hàm dạng L → A mà LA = U - U0.

iii) Từ A →B, A → C ta xác định lược đồ : R1(ABC) Từ D →E xác định R2(DE)

Từ AD →F xác định R3(ADF)

Vậy phép tách là: ρ (R0(G),R1(ABC), R2(DE), R3(ADF)). 3. Đưa ra kết quả:

+ Không tồn tại Ui mà K ⊆ Ui,

+ Tồn tại U3= ADF để K = ADG ⊆U3∪G = ADGF nên ta có phép tách thành các lược đồ 3NF không mất mát thông tin của R là: ρ (R0(ADG), R1(ABC), R2(DE), R3(ADF)).

CÂU HỎI VÀ BÀI TẬP

1. Cho lược đồ quan hệ R(U), quan hệ r xác định trên R và tập phụ thuộc hàm

F = {AB → E, AG → D, BE → I, E → G, GI → H}

Chứng minh rằng nếu quan hệ r xác định trên R thoả F thì r cũng thoả AB→GH.

2. Cho lược đồ quan hệ R, quan hệ r xác định trên R và tập phụ thuộc hàm

F = {AB → C, B → D, CD → E, CE → GH, G → A}

Chứng minh rằng nếu quan hệ r thoả F thì r cũng thoả AB→E, AB→G.

3. Cho lược đồ quan hệ R trên tập thuộc tính U={A, B, C, D, E, F, G, H} và tập phụ thuộc hàm F = {A → D, AB → DE, CE → G, E → H}

a. Tính (AB)+.

b. Tìm các khóa của R.

4. Cho lược đồ quan hệ R(U) với U = {A, B, C, D, E, F, G, H, I, K, L} và tập phụ thuộc hàm

F = {BK → FG, G → F, A → CDL, ABEK → H} Hãy tìm một khóa của R.

5. Cho lược đồ quan hệ R(U), U={A, B, C, D, E, F, G, H} và tập phụ thuộc hàm F={A → CD, C →D, EG → F, B → H} trên U.

Hãy tách lược đồ trên thành tập các lược đồ 3NF với phép tách không mất mát thông tin.

6. Cho lược đồ quan hệ R trên tập thuộc tính U={A, B, C, D, E, F, G, H} và tập phụ thuộc hàm

F = {AEF → CD, A → GH, EF → B, G → H}

Hãy tách lược đồ R thành tập các lược đồ ở dạng chuẩn 3 với phép tách không mất mát thông tin.

7. Cho lược đồ quan hệ R(U) với U = {A, B, C, D, E} và tập phụ thuộc hàm

F = {A → BC, B → C, AD → E}

Hãy tách lược đồ R thành tập các lược đồ 3NF với phép tách không mất mát thông tin.

8. Cho lược đồ quan hệ R(U) với U={A, B, C, D, E, G, H} và tập phụ thuộc hàm F xác định trên U như sau: F={A→BH, B→H, C→D, DE→G, D→E}.

Tính (AD)+ . AD có phải là một khóa của R không? Tại sao? Tìm một khóa của R.

Tách lược đồ R thành các lược đồ 3NF với phép tách không mất mát thông tin.

Chương 5

AN TOµN Vµ TOµN VÑN D÷ LIÖU

Một phần của tài liệu Cơ sở dữ liệu (Trang 91 - 95)

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

(121 trang)