Dạng chuẩn 3 theo thời gian (T3NF) Định nghĩa 2.28 (T3NF)

Một phần của tài liệu nghiên cứu các phụ thuộc hàm theo thời gian, thông qua hai quan điểm của wang và wijsen (Trang 58 - 64)

- Nếu F├f X →tY thì t là cận dưới lớn nhất (glb) của một số các kiểu thờ

i Y Áp dụng T4, ta có: F├ X →tY Định lý được chứng mnh □

2.4.2. Dạng chuẩn 3 theo thời gian (T3NF) Định nghĩa 2.28 (T3NF)

Định nghĩa 2.28. (T3NF)

Cho lược đồ môđun thời gian (R, t) với tập các phụ thuộc hàm theo thời gian F. Khi đó, (R, t) được gọi là thoả T3NF nếu: với mỗi X →t’A ∈ F+ mà XA ⊆ R; A ∉ X và ít nhất một thời điểm của t chứa trong một thời điểm của t’ thì:

+ Hoặc A là thuộc tính khóa của (R, t)

+ Hoặc X là siêu khóa của R và khơng tồn tại i1, i2 với i1 ≠ i2 sao cho X → Y ∈ πt(i1,i2) (F) trừ khi tồn tại i3 với i3 ≠ i1 sao cho X → Y ∈ πt(i1,i3) (F)

nhưng X → Y ∉ πt(i1,i2,i3) (F)

Ví dụ 2.29. Xét lược đồ môđun thời gian (AB, Ngày), với:

F = {A →NgàyB, B ThángA}.

(AB, Ngày) thoả T3NF không ? + A+

F = {(A, tTop); (B, Ngày)} ⇒ A →NgàyAB

A là siêu khóa của (AB, Ngày). + B+

F = {(B, tTop); (A, Tháng)} ⇒ B →Ngày AB

B là siêu khóa của (AB, Ngày).

Vậy cả A và B đều là thuộc tính khóa của (AB, Ngày). Do đó (AB, Ngày) thoả T3NF. Song, lược đồ mơđun thời gian với tập F được cho trong ví dụ 2.29 là không thoả TBCNF do tồn tại TFD B →ThángA vi phạm điều kiện của TBCNF.

Như đã giới thiệu ở trước, khác với chuẩn TBCNF, các điều kiện của chuẩn T3NF có phần nhẹ hơn, nó cho phép tồn tại dư thừa dữ liệu nhưng đổi lại có thể bảo tồn được các TFD. Để làm rõ vấn đề này, trước hết chúng ta sẽ tìm hiểu định nghĩa sau đây.

Định nghĩa 2.29. (Tách bảo toàn TFD)

Cho một lược đồ môđun (R, t) và tập các phụ thuộc hàm theo thời gian F. Khi đó, phép tách ρ = {(R1, t1), ..., (Rk, tk)} được gọi là bảo toàn phụ thuộc hàm

trong F nếu: với mỗi môđun M trên (R, t) mà Up(πRi(M), ti) thoả πRi(F), i =1,k

thì suy ra M thoả F.

Trước tiên, ta giải quyết trường hợp đơn giản đối với mỗi TFD có vế trái và vế phải giống nhau. Chẳng hạn, cho trước một kiểu thời gian t và tập các TFD F = {X →t1Y, ..., X →tnY}, cho hàm Cop(t, F) trả về một kiểu thời gian mới là λ bắt đầu với λ = t và che lấp theo cách đệ quy mỗi cặp thời điểm kề nhau i1 và i2 sao cho cả hai điều kiện sau được thoả mãn:

1). X → Y ∈ πλ(i1, i2)(F) và

2). Với ∀i3, X → Y ∈πλ(i1, i3)(F) ∪ πλ(i2, i3)(F) suy ra:

X → Y ∈ πλ(i1, i2, i3)(F)

Hàm Cop cho ra một kiểu thời gian lớn nhất của tất cả các kiểu thời gian

t’ sao cho mỗi thời điểm của t’ là một thời điểm của t hoặc là một phân tách của

tập các thời điểm của t chứa trong cùng TFD thuộc ≼ và sao cho {(R, t’)} vẫn bảo tồn tất cả các TFD trong F.

Ví dụ 2. 30. Cho kiểu thời gian Ngày và F = {A TuầnB, A ThángB}. Hình sau

Hình 2.1. Hàm Cop(Ngày, F)

Việc bảo toàn các TFD là mâu thuẫn với việc tránh dư thừa. Trở lại với ví dụ trước, cho λ = Cop(Ngày, F) với F = {A →TuầnB, A →ThángB}. Cho d1 là ngày

31/3/2006 và d2 là ngày 1/4/2006. Giả sử rằng bộ τ = (a, b) thuộc cả φ(d1) và φ(d2). Điều này là dư thừa. Song, d1 và d2 thuộc cùng một tuần nhưng khác tháng. Do đó, ở hình 2.1, d1 và d2 không được nối với nhau trong việc tính λ. Do vậy, hai bộ này vẫn cịn nhưng bị tách rời trong môđun mới Up(M, λ). Nếu d1 và d2 thuộc cùng một thời điểm của λ thì phân tách {(A, Ngày), (AB, λ)} của (AB, λ) sẽ khơng bảo tồn TFD.

Tiếp theo, chúng ta sẽ trình bày giải thuật cho phép tách một lược đồ môđun thời gian thành các lược đồ con thoả T3NF bảo toàn được các TFD.

Thuật toán 2.5. (Thuật toán tách một lược đồ môđun thời gian thành các lược

đồ con thoả T3NF bảo tồn thơng tin và bảo tồn các TFD) • Vào: + Lược đồ môđun thời gian (R, t).

+ Tập các phụ thuộc hàm theo thời gian F.

Ra: ρ = {(R1, t1), ..., (Rk, tk)} bảo tồn thơng tin và bảo toàn TFD, với (Ri, ti) ∈ T3NF, i=1,k

Tháng Ngày Tuần Cop Thời gian tuyệt đối

Phương pháp:

Bước 1. Tìm Flà một phủ cực tiểu theo thời gian của F. Từ tập tất cả các kiểu {t'

1,…, t'l} xuất hiện trong các TFD của F, ta tính một phân chia P = {t1,…, tm} của t như sau:

Bắt đầu với P(0) = {t}, với mỗi t'

i trong các TFD bắt đầu từ i = 1 đến i = l, có P(i) bằng cách thay thế mỗi t k trong P(i–1) bằng t k1, t k2 với t k1 có được từ t k bằng cách bỏ đi tất cả các thời điểm khác rỗng chứa trong t'

i, và t k2 là kiểu bổ sung; nghĩa là kiểu chỉ có những thời điểm chứa trong t'

i. P = P(l)sẽ là một phân chia mong muốn. Với mỗi thời điểm j≠ ∅ của t , chỉ một và một kiểu tk ∈ P(l) với một thời điểm s chứa nó. Ngồi ra, t(j) = t k(s). Với mỗi t k trong P ta định nghĩa tập:

Ftk= {X →t’ A | X →t’ A ∈ F và ∃j, i : t k(j) ≠ ∅ ∧ t k(j) ⊆ t’(i)}. Bước 2. Cho ρ = ∅. Với mỗi X → A ∈ π∅(F), được cho trước

• {t r,…, t s} = {t k ∈ P | ∃t'

i sao cho X →ti'A ∈ Ftk} và • FX → A = {X →t'iA | ∃t k ∈ P sao cho X →t'iA ∈ Ftk}, thì ta thêm (XA, Raise(t r ∪ … ∪ t s, FX → A)) vào ρ.

Bước 3. Với mỗi tk trong P thêm (Z, tk) vào ρ với Z là khóa thời gian của (R, tk), nếu khơng có (V, t r) ∈ ρ, với Z ⊆ V và tk là một kiểu con của t r.

Bước 4. Nếu (X, t’) và (Y, t’) với X ⊆ Y đều thuộc ρ, thì bỏ (X, t’) từ ρ. Ngoài ra, nếu (X, t'

1) và (X, t'

2) đều thuộc ρ, và t' 1 và t'

2 là các kiểu con của một kiểu thời gian, thì bỏ (X, t'

1) và (X, t'

2) nhưng thêm (X, t' 1 ∪ t'

2) vào. Bước cuối cùng này được lặp lại cho đến khi nào khơng cịn thay đổi nào nữa.

Ví dụ 2. 31. Trở lại ví dụ 2.28, với:

Lược đồ mơđun thời gian (KHỐHỌC, Ngày), trong đó:

KHỐHỌC = (Mã KH, Số ĐVHT, Họ tên GVGD, Lương, Số HV) và F = { Mã KH →tTopSố ĐVHT

Họ tên GVGD →ThángLương

Mã KH →NgàySố HV }

Để thuận lợi cho việc theo dõi, giả sử ta ký hiệu A: Mã KH, B: Số ĐVHT; C: Họ tên GVGD; D: Lương và E: Số HV. Khi đó ta có:

+ Lược đồ mơđun thời gian (KHỐHỌC, Ngày) với: KHỐHỌC = ABCDE và

F = {A →tTopB; A →TuầnC; C →ThángD; A →NgàyE}

Với ví dụ này, kết quả phân tách thu được bằng việc áp dụng thuật toán 2.4 cũng bảo tồn TFD. Vì vậy, để phân biệt thuật tốn 2.4 và thuật toán 2.5 ta sẽ bổ sung vào tập các ràng buộc trên một ràng buộc mới. Chẳng hạn, với ràng buộc: lương của giáo viên giảng dạy khơng được thay đổi trong một tháng, điều này có nghĩa là C →ThángD. Song, người quản lý trung tâm lại quyết định trả lương cho giáo viên theo hàng tuần, do đó trong F có thêm TFD C →TuầnD. Sự

tồn tại TFD C →TuầnD trong F sẽ không làm thay đổi kết quả phân tách thu được

từ việc sử dụng thuật tốn 2.4, vì với hai TFD C →ThángD và C →TuầnD, rõ ràng

TFD C →ThángD được chọn. Khi đó, tất cả các lược đồ được tách đều thuộc

TBCNF. Song, nó lại khơng bảo tồn các TFD. Vì vậy, để bảo tồn các TFD, ta sử dụng thuật toán 2.5 để phân tách thành T3NF.

Bước 1. Tính F . Ta có:

F = {A →tTopB; A →TuầnC; C →ThángD; C →TuầnD; A →NgàyE}

Vì kiểu thời gian của mơđun này là Ngày, là kiểu thời gian bé hơn bất kỳ kiểu nào có trong Fnên khơng có phân chia nào được thực hiện trong bước này. Khi đó, ta có P = {Ngày} và

Bước 2. Ta có:

π∅(F ) = {A →B; A →C; C →D; A →E}

+ Với các FD {A →B; A →C; A →E}∈ π∅(F), vì hàm Cop(Ngày, F’) với F’ = {A →tTopB; A →TuầnC; A →NgàyE} luôn trả về một kiểu thời gian lớn hơn

nên ta có phân tách:

ρ = {(AB, tTop); (AC, Tuần); (AE, Ngày)}

+ Với FD C → D ∈ π∅(F), nó xác định thêm trong ρ một lược đồ với kiểu thời gian mới (CD, Cop(Ngày, F’’)) trong đó F’’ = {C →ThángD; C →TuầnD},

kiểu thời gian mới ở đây là kiểu lớn nhất của hai kiểu Tuần và Tháng. Điều này đã được chỉ ra trong hình 2.1.

Vì bước 3 và bước 4 của thuật tốn 2.5 khơng đưa ra bất kỳ một thay đổi nào, do đó kết quả của phép tách thành T3NF ở ví dụ này là:

ρ = {(AB, tTop); (AC, Tuần); (AE, Ngày); (CD, Cop(Ngày, F’’))} với F’’ = {C →ThángD; C TuầnD}

Như vậy, với tập gồm 5 TFD được cho trong ví dụ 2.31, rõ ràng nếu ta áp dụng thuật toán 2.4 để tách (ABCDE, Ngày) thành các lược đồ mơđun con thoả TBCNF thì chỉ bảo tồn thơng tin. Song, nếu ta áp dụng thuật toán 2.5 để tách (ABCDE, Ngày) thành các lược đồ mơđun con thoả T3NF thì kết quả thu được là những lược đồ con bảo tồn thơng tin và bảo tồn phụ thuộc hàm.

Nhận xét:

Nếu kiểu thời gian của lược đồ môđun thời gian và các kiểu thời gian có trong các phụ thuộc hàm của lược đồ mơđun là như nhau thì thuật tốn 2.5 thực chất là thuật toán tách một lược đồ quan hệ thành 3NF truyền thống.

Một phần của tài liệu nghiên cứu các phụ thuộc hàm theo thời gian, thông qua hai quan điểm của wang và wijsen (Trang 58 - 64)

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

(112 trang)
w