Dạng biểu diễn thứ hai của khóa

Một phần của tài liệu ứng dụng phép dịch chuyển lược đồ quan hệ trong cơ sở dữ liệu (Trang 50 - 55)

- Phép tách = (X1, X2, ,Xk) Output

PHÉP DỊCH CHUYỂN LƯỢC ĐỒ QUAN HỆ

2.5. Dạng biểu diễn thứ hai của khóa

Đ ị n h l ý

(Dạng biểu diễn thứ hai của khóa)

Cho LĐQH a = (U,F). Khi đó mọi khóa K của a đều biểu diễn được dưới dạng K = LM trong đó L là một vế trái cực tiểu của F và M là khóa của LĐQH a\L+. C h ứ n g m i n h

Giả sử KKey(a). Nếu K=U thì đương nhiên K chứa mọi vế trái của các PTH trong F, khi đó ta chọn một vế trái cực tiểu tùy ý. Giả sử KU. Khi đó, để tính bao đóng K+ ta phải tìm được một PTH f: XYF thỏa tính chất XK. Vì X là vế trái của f nên trong ML(F) phải tồn tại một vế trái cực tiểu L để LX. Ta chọn một

trong số vế trái cực tiểu này. Tóm lại ta đã chứng minh được rằng mọi khóa K đều

chứa một vế trái cực tiểu L nào đó. Đặt M=K\L. Ta có K=LM. Ta chứng minh M là khóa của LĐQH a\L+. Nếu L+ = U thì a\L+ = a\U = (,). Lược đồ này có khóa duy nhất là M=. Khi đó, K=L. Giả sử L+ U. Từ đây suy ra LK vì nếu L=K

thì phải có L+ = K+ = U, trái với giả thiết L+  U. Theo tính bộ phận của khóa

L+  K = L hay K\L=K\L+=M. Từ đây suy ra MU\L+. Theo bổ đề về siêu khóa trong phép dịch chuyển LĐQH, M sẽ là siêu khóa của lược đồ a\L+. Giả sử M chứa siêu khóa P của lược đồ a\L+. Khi đó theo bổ đề về siêu khóa trong phép dịch

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

chuyển LĐQH, L+P sẽ là siêu khóa của a, do đó (L+P)+= U. Vận dụng tính chất C5 của bao đóng ta có (L+P)+ = (LP)+ = U, do đó LP là siêu khóa của a. Vì

PMK = LM nên LPK. Vì K là khóa của a nên LP = K = LM. Để ý rằng

LP = , LM =  và PM ta suy ra P = M. Điều này chứng tỏ M là khóa của

a\L+ ■

T h í d ụ

Với LĐQH a = (U,F), U = ABCDEH, F = {AED, AC, EBC,

EHA, ACEH, BDC}. Ta có ML(F) = {A, E,BD}. Ta thấy,

E+ = EBCU. Vậy E không phải là khóa của a. Ta dịch chuyển a theo E+.

Đặt b = a\E+ = (V,G), ta có V = ABCDEH\EBC = ADH, F = {AD, A (loại),

   (loại), HA, AH, D   (loại)} = {AD, HA, AH} 

 {ADH, HA}. Dễ thấy H là một khóa của b. Như vậy EH là khóa của a, trong đó E là một vế trái cực tiểu, H là khóa của a\E+.

C h ú ý

Xét mệnh đề đảo của mệnh đề về dạng biểu diễn thứ hai của khóa, cụ thể là Với mọi vế trái cực tiểu L của LĐQH a, ta có LKey(a\L+) Key(a)

Mệnh đề trên là không đúng.

T h í d ụ

1. Theo thí dụ trước ta đã tính được LĐQH b = a\E+ = (V,G), V = ADH, G = {ADH, HA}. Ngoài khóa H, lược đồ b còn khóa A, tuy nhiên EA không phải là khóa của a vì riêng A đã là khóa của a.

2. Thí dụ sau đây minh họa sự tồn tại LĐQH có vế trái cực tiểu L không tham gia

vào bất kỳ khóa nào.

Xét LĐQH a = (U,F), U = ABCDE, F = {BDCE, AED, CEABD,

BEACD}.

Ta thấy cả 4 vế trái đều là cực tiểu, như vậy ML(F) = {BD, AE, CE, BE}. Ngoài ra do (BD)+ = (CE)+ = (BE)+ = U nên {BD, CE, BE}  Key(a). Mặt khác,

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

(AE)+ = ADEU nên AE không thể là khóa. Ta chứng tỏ rằng vế trái cực tiểu AE

không có trong bất kỳ khóa nào. Thật vậy, vì (AE)+ = ADE nên để xây dựng một khóa chứa AE ta cần thêm cho AE một vài thuộc tính khác với A, DE, cụ thể là B

hoặc/và C. Nếu thêm cho AE thuộc tính B thì ABE chứa khóa BE; nếu thêm cho AE

thuộc tính C thì ACE chứa khóa CE. Vậy vế trái cực tiểu AE không thể là bộ phận của bất kỳ khóa nào của a.

Bổ đề sau đây cho ta một dấu hiệu tạo và chọn các khóa từ tập khóa của lược đồ sau dịch chuyển.

B ổ đ ề

(Các khóa sinh từ khóa của lược đồ sau dịch chuyển)

Cho LĐQH a = (U,F) và vế trái cực tiểu L. Khi đó nếu K L Key(a\L+) K không chứa vế trái cực tiểu nào khác ngoài L thì K là khóa của a.

C h ứ n g m i n h

Giả sử ta có phân hoạch K =L M, MKey(a\L+) và K không chứa vế trái

cực tiểu khác L của F. Theo hệ quả về siêu khóa trong phép dịch chuyển LĐQH thì

K là siêu khóa của a. Gọi P là khóa của a chứa trong K. Ta chứng minh P = K. Nếu

P không chứa vế trái cực tiểu nào của F thì U = P+ = PK, do đó P = K = U. Giả sử P chứa một vế trái cực tiểu nào đó của F. Do PKK chỉ chứa vế trái cực tiểu L duy nhất nên đương nhiên LP. Đặt Q = P\L, ta có phân hoạch P = L|Q

do đó

QM. Vì L là bộ phận của khóa P nên theo định lý về đặc trưng của khóa ta có

L+P = L hay P\L+ = P\L = Q. Theo bổ đề về siêu khóa trong phép dịch chuyển LĐQH, Q sẽ là siêu khóa của a\L+. Vì M cũng là khóa của a\L+QM nên

Q = M và do đó P = LQ = LM = K. Vậy K là khóa của a

T h í d ụ

Xét LĐQH a = (U,F), U = ABCDEH, F = {AED, AC, E BC, EHA,

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

E+ = EBCU. Vậy E không phải là khóa của a.

Ta thực hiện phép dịch chuyển lược đồ a theo E+. Ta có b = a\E+ = (V,G), V = = ABCDEH\EBC = ADH, G = F\EBC ={AD, A   (loại),    (loại),

H A, AH, D (loại)} ≡ {ADH, HA}. Dễ dàng tính được Key(b) = = {A, H}, do đó EKey(b)={EA, EH}. Thành phần EH không chứa thêm vế trái cực tiểu nào khác E, do đó EH là khóa của a.

C h ú ý

Tồn tại LĐQH có khóa chứa một vài vế trái cực tiểu.

T h í d ụ

Xét LĐQH a = (U,F) với U = ABCD, F = {AB, CD}. Ta có khóa

K=AC chứa đồng thời hai vế trái cực tiểu AC.

B ổ đ ề

Cho LĐQH a = (U,F) và vế trái cực tiểu L. Khi đó M Key(a\L+), mọi khóa K của a chứa trong LM đều phải chứa M.

C h ứ n g m i n h

Ta đã biết LM là siêu khóa. Giả sử K là khóa của aKLM. Ta xét phân họach

K = P|Q, trong đó P = KL, Q = KM. Vì LM = L+  M =  nên PQ =

. Theo bổ đề về siêu khóa trong phép dịch chuyển LĐQH ta có K\L+=K\L= PQ\L

= Q là siêu khóa của a\L+. Siêu khóa này chứa trong khóa M của a\L+ do đó, theo tính chất tối tiểu của khóa ta phải có Q = M, hay là K M

Bổ đề trên cho phép ta xây dựng thuật toán GetKey nhận một khóa từ tập

LMLKey(a\L+) với L là vế trái cực tiểu của lược đồ nguồn a. Trước hết để ý

rằng LM đã là một siêu khóa của LĐQH a. Như vậy, để tìm một khóa từ LM ta chỉ

cần xét để loại bỏ các phần tử trong vế trái cực tiểu L,M chứa trong mọi khóa của a có trong LM.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Algorithm GetKey

//Tìm một khóa từ LM

Format: GetKey(U,F,L,M)

Input: - Vế trái cực tiểu L của LĐQH a = (U,F)

- M Key(a\X+)

Output: - Khóa K của lược đồ a chứa trong LM Method

K := L M;

for each attribute A in L do

if A Closure(K\A,F) then K:=K\A; endif endfor return K; end GetKey. 2.6. Kết luận

Lý thuyết về phép dịch chuyển lược đồ quan hệ nhằm nâng cao hiệu quả của các thuật toán tìm bao đóng và tìm khóa phục vụ cho các quá trình chuẩn hóa lược đồ quan hệ. Qua đó cũng giúp tìm hiểu sâu hơn về các đối tượng khác trong quản lý về cơ sở dữ liệu .

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

CHƯƠNG 3

Một phần của tài liệu ứng dụng phép dịch chuyển lược đồ quan hệ trong cơ sở dữ liệu (Trang 50 - 55)

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

(65 trang)