Bổ đề vế trái cực tiểu

Một phần của tài liệu các dạng biểu diễn khóa trong lược đồ quan hệ (Trang 52 - 71)

Cho LĐQH p = (U,F). Nếu L ML(F) thì L Key(p) khi và chỉ khi L+ = U.

F = {AE D, AC, EBC, EHA, ACEH, BDC} Ta có ML(F) = {A, E, BD}

- Trường hợp 1: Xét E trong ML(F). Ta thấy A+ = ABCDEH = U. Vậy A là khóa của p.

- Trường hợp 2: Xét E trong ML(F). Ta thấy E+ = EBCU. Vậy E không phải là khóa của p.

Ta thu gọn p theo E+. Đặt q = p\E+ = (V,G), ta có:

V = ABCDEH\EBC = ADH, F = {AD, AØ , Ø Ø , HA, AH, DØ (loại)} ={ AD, HA, AH } = { ADH, HA}.

Dễ dàng thấy H là một khóa của q. Như vậy EH là khóa của p, trong đó E là một vế trái cực tiểu, H là khóa của p\E+.

- Trường hợp 3: Xét BD trong ML(F).Ta thấy BD = BDCU. Vậy BD

không phải là khóa của p.

Ta thu gọn p theo BD+. Đặt q = p \BD+ = (V,G).Ta có

V = ABCDEH/BCD = AEH,

AØ , EØ , EHA, AEH, Ø Ø } = {EHA, AEH}

Dễ dàng thấy Key(q) = {A, EH}. Ta thấy {A, EH} lại là khóa của p trong 2 trường hợp trên.

Như vậy p2 khóa Key(p) = {A, EH}

Chú ý : Ở ví dụ này, trong trường hợp 2 ta đã tính được LĐQH q = p\E = (V,G), V = ADH, G = {ADH, HA}. Ngoài khóa H, lược đồ q còn có khóa A, tuy nhiên EA không phải là khóa riêng của p vì bản thân A đã là khóa của p.

Ví dụ 2: 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 p = (U,F), với U = ABCDE. F ={BDCE,

AED,

CEABD,

BEACD}.

Ta thấy cả 4 vế trái 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, (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ó 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 vào AE một vài thuộc tính khác với A, D

nếu một 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 p.

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 đồ thu gọn.

3.2.4. Bổ đề các khóa sinh từ khóa của lƣợc đồ sau khi thu gọn

Cho LĐQH p = (U,F) và vế trái cực tiểu L. Khi đó nếu KLKey(p/L+) và

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

Chứng minh

Giả sử ta có phân hoạch K =LM, MKey (p/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 thu gọn LĐQH thì K là siêu khóa của

p. Gọi P là khóa của p 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í 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 và 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ổ đề siêu khóa trong phép thu gọn LĐQH, Q sẽ là siêu khóa của p/L+

.Vì M cũng là khóa của p/L+ và QM nên Q = M và do đó:

P = LQ = LM = K. Vậy K là khóa của p.

Ví dụ 1: Xét LĐQH a = (U,F). Với U = ABCDEH. F = {AED, AC, EBC, EHA, ACEH, BDC}.

Ta có ML(F) = {A, E, BD}.

Xét vế trái cực tiểu E. Ta thấy, E+ = EBCU. Vậy E không phải là khóa của p. Ta thực hiện phép thu gọn lược đồ p theo E+ .

Ta có q = p\ E+ = (V<G), V = ABCDEH\EBC = ADH,

G = F\EBC = {AD, AØ (loại), ØØ (loại), HA, AH, DØ (loại)} = {ADH,H A}.

Dễ dàng tính được Key(q) = {A,H}, do đó EKey (q) = {EA,EH}.

Thành phần EH không chứa thêm vế trái cực tiểu nào khác, do đó EH là khóa của p.

Ví dụ 2: Xét LĐQH a = (U,F). Với U = ABCD

F = { A B, C D}. Ta có ML(F) = { A, C}

- Trường hợp 1: Xét A trong ML(F). Ta thấy A+ = ABU. Vậy A không phải là khóa của p.

Ta thu gọn p theo A+. Đặt q = p\A+ = (V,G), ta có:

V = ABCD\AB = CD,

F = {Ø Ø ,

CD }

Dễ dàng thấy khóa của q, Kq={C}. Kết hợp với tập vế trái cực tiểu thì Ta có : Key(p)={ CA }

- Trường hợp 2: Xét C trong ML(F). Ta thấy C+ = CDU. Vậy C không phải là khóa của p.

V = ABCD\CD = AB,

F = {AB,

Ø Ø }

Dễ dàng thấy khóa của q, Kq={A}. Kết hợp với tập vế trái cực tiểu thì Ta có : Key(p)={ AC }

Vậy kết hợp 2 trường hợp trên thì p1 khóa Key(p) = {AC} Ta có khóa K = AC chứa đồng thời hai vế cực trái cực tiểu AC.

Ví dụ 3: Cho lược đồ quan hệ p = (U,F). U = ABCDE

F = {DEA,

BC,

EAD} Ta có ML(F) = { B, E}

- Trường hợp 1: Xét B trong ML(F). Ta thấy B+ = BCU. Vậy B không phải là khóa của p.

Ta thu gọn p theo B+. Đặt q = p\B+ = (V,G), ta có: V = ABCDE\BC = ADE, F = {DEA, Ø Ø (loại), EAD }

Dễ dàng thấy khóa của q, Kq={E}. Kết hợp với tập vế trái cực tiểu thì Ta có : Key(p)={ BE }

- Trường hợp 2: Xét E trong ML(F). Ta thấy E+ = ADEU. Vậy E không phải là khóa của p.

Ta thu gọn p theo E+. Đặt q = p\E+ = (V,G), ta có:

V = ABCDE\ADE = ADE,

F = {Ø Ø ,

BC,

Ø Ø }

Dễ dàng thấy khóa của q, Kq={B}. Kết hợp với tập vế trái cực tiểu thì Ta có : Key(p)={ BE }

Vậy kết hợp 2 trường hợp trên thì p1 khóa Key(p) = {BE} Ta có khóa K = BE chứa đồng thời hai vế cực trái cực tiểu BE

Vậy ta thấy rằng tồn taị LQĐH có khóa chứa một vài vế trái cực tiểu.

3.2.5. Bổ đề

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

Chứng minh

Ta đã biết LM là siêu khóa. Giả sử K là khóa của pKLM. Ta xét phân hoạch K= P|Q, trong đó P = KL, Q = KM.

LM = L+ M = Ø. Nên PQ = Ø. Theo bổ đề về siêu khóa trong

phép thu gọn LĐQH ta có K\L+ = K\L = K\L = PQ\L = Q là siêu khóa cuả a\L+. Do đó, theo tính chất tối tiểu của khóa ta phải có Q = M, hay KM.

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(p\L+) với L là vế trái cực tiểu của LĐQH nguồn p.

Trước hết ta để ý rằng LM đã là một siêu khóa cuả LĐQH p. Như vậy, để tìm 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, vì

Thuật toán

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 p = (U,F)

- MKey (p\L+)

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

Method

K : = LM;

For each attribute A in L do

If A Closure (K\A,F) then

K : = K\A; Endif

Endfor Return K; EndGetKey.

Ví dụ : Cho LĐQH p = (U,F). Với U = ABCDEHG. F = {DE G, HC, EA, CGH, DGEA, DB}. Tìm Key (p)?

Ta có vế trái cực tiểu ML(F) = {D, E, H, CG} Tính D+ = DB; E+ = EA; H+ = HC; CG+ = CGH

-Với L = D ta có:

q = p\L+ = p\DB = (ACEHG, {EG, HC, CGH, GEA}). Ta dễ dàng tính được M = Key(b) = {GH, CE, HE}. Suy ra :

Key(p) = LM = {DGH, DCE, DHE} - Với L = E ta có:

q = p\L+ = p\EA = (BCDHG, {DG, HC, Ø Ø (loại), CGH, DG

Ø (loại), DB}) = (BCDHG, DBG, HC, CGH}). Ta dễ dàng tính được M = Key(q) = {CD, DH}. Suy ra :

Key(p) = LM = {ECD, EDH}. - Với L = H ta có:

q = p\L+ = p\HC = (ABDEG, {DEG, Ø Ø (loại), EA, G Ø (loại), DGEA, DB}) = (ABDEG, {DEG, EA, DGEA, DB}).

Ta tìm được M = Key(q) = {DG, DE}. Suy ra :

Key(p) = LM = {HDG, HDE}. -Với L = CG, ta có:

q = p\L+ = p\CGH = (ABDE, {DE Ø (loại), Ø Ø (loại), EA, Ø Ø

(loại), DEA, DB}) = (ABDE, {EA, DEAB}). Ta tìm được M = Key(q) = D. Suy ra :

Key(p) = LM = CGD.

Như vậy ta có: Key(p) = {DGH, DCE, DEH, CGD}.

Trong luận văn này, em tập trung nghiên cứu hai dạng biểu diễn khóa của lược đồ quan hệ. Việc cài đặt chương trình ứng dụng nhằm mục đích mô phỏng các kết quả nghiên cứu của học viên. Chương trình có giao diện đơn giản, dễ hiểu, dễ sử dụng và được viết bằng ngôn ngữ C#, một ngôn ngữ hướng đối tượng khá phổ biến cho phép tạo giao diện nhanh dễ dàng.

Chương trình cho phép nhập mới các thuộc tính và tập các PTH của LĐQH, cũng như cho phép thực hiện cập nhật, thay đổi LĐQH qua thao tác thêm/xóa thuộc tính hay các PTH. Các chức năng chính của chương trình bao gồm: Nhập các thuộc tính và các PTH, đưa ra 2 dạng biểu diễn khóa của LĐQH.

3.4. Một số giao diện của chƣơng trình

Giao diện chính của chương trình

- Giao diện nhập mới các thuộc tính của LĐQH

Hình 3.4.2 Giao diện nhập các thuộc tính - Giao diện nhập mới các PTH của LĐQH

Hình 3.4.3 Giao diện nhập các PTH

Hình 3.4.4 Giao diện tìm biểu diễn dạng 1 của khóa

3.5 Các ví dụ

3.5.1 Ví dụ 1: (Tìm dạng biểu diễn thứ nhất của khóa)

 Cho LĐQH p = (U,F). U = ABCDEFG. F = {ABCDE,

BCDG,

ABFEG

CEFG}

Ta tính được U1 = U\DEFG = ABC.

Ta thu gọn lược đồ a theo ABC ta được: LĐQH q = (V,G)

V = U\ABC = DEFG.

G ={ ØDE,

D G, FEG

EFG}

Ta tính được Key(q) = Ø. Vậy Key(p) = ABCKey(q) = ABC. 2. Với lược đồ trên ta tính được UK = ABCU0 = U\UK =

ABCDEFG\ABC = DEFG.

Đặt c = p\DEFG = (P,W) ta có P = U\DEFG = ABC.

W = F\DEFG = { ABCØ , BCØ,

AB Ø C Ø } . Suy ra Key(c) = ABC

Theo định lý thức nhất về cách biểu diễn khóa

Kết luận Key(p) = Key (c) = ABCKey(q) =ABC.

3.5.2 Ví dụ 2: (Tìm dạng biểu diễn thứ hai của khóa)

 Cho lược đồ quan hệ p = (U, F). U = ABCD

F = {ADBC,

BA,

DC} Ta có ML(F) = {D, B}

- Trường hợp 1: Xét D trong ML(F). Ta thấy D+ = CDU. Vậy D không phải là khóa của p.

Ta thu gọn p theo D+. Đặt q = p\D+ = (V,G), ta có: V = ABCD\CD = AB, F = {AB, BA , Ø Ø (loại), }

Dễ dàng thấy là một khóa của Kq ={A, B}. Kết hợp với vế trái cực tiểu L= D

LĐQH p2 khóa Key(p) = {AD, BD}

Trường hợp 2: Xét B trong ML(F). Ta thấy B+ = ABU. Vậy B không phải là khóa của p.

Ta thu gọn p theo B+. Đặt q = p\B+ = (V,G), ta có:

V = ABCD\AB = CD,

Ø Ø (loại),

DC , }

Dễ dàng thấy là một khóa của Kq ={D}. Kết hợp với vế trái cực tiểu L= B

LĐQH p có khóa Key(p) = {BD}

KẾT LUẬN VÀ KIẾN NGHỊ 1. Kết luận:

Những nội dung chính đã được giải quyết trong luận văn + Lý thuyết:

- Phân tích thuật toán tìm khóa - Tìm hiểu kỹ thuật thu gọn LĐQH

- Phát biểu và chứng minh kết quả về dạng thứ nhất về biểu diễn khóa - Phát biểu và chứng minh kết quả về dạng thứ hai về biểu diễn khóa + Thực nghiệm:

- Nạp và cập nhật dữ liệu, thuộc tính và các PTH - Dạng biểu diễn thứ nhất của khóa

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

2. Kiến nghị

- Vận dụng các dạng biểu diễn khóa trong LĐQH trên có thể thiết kế một cơ sở dữ liệu có tính thực tiễn cao

- Tiếp tục xây dựng và hoàn thiện phần mềm hỗ trợ thiết kế trên kỹ thuật thu gọn LĐQH để tìm ra cách biểu diễn khóa có hiệu quả nhất.

TÀI LIỆU THAM KHẢO Tiếng Việt

[1] Nguyễn Xuân Huy, Đoàn Văn Ban, Đàm Gia Mạnh, Nguyễn Thế Dũng (2001), Về mối liên hệ giữa suy diễn phụ thuộc hàm và suy diễn logic, Tạp chí Tin học và điều khiển học.

[2] Nguyễn Xuân Huy (2006), Các phụ thuộc logic trong cơ sở dữ liệu, Viện KH&CN VN, NXB Thống kê.

[3] Vũ Đức Thi (1997), Cơ sở dữ liệu: Kiến thức và thực hành, NXB Thống kê.

[4] Lê Tiến Vương (1999), Nhập môn cơ sở dữ liệu quan hệ, NXB Thống kê.

Một phần của tài liệu các dạng biểu diễn khóa trong lược đồ quan hệ (Trang 52 - 71)

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

(71 trang)