Thuật toán thu gọn LĐQH

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 32 - 35)

Algorithm Translation Format : Translation (p, M) Input: - LĐQH p = (U,F) - Tập thuộc tính MU Output: - LĐQH q =(U, G) = p\M, V = U\M, G =F\M. Method V := U\M; G := Ø For each FD LR in F do G : = G{L\MR\M}; Endfor;

G := Natural_Reduced(G);

Return (V, G);

End Translation.

Thủ tục Natural_Reduced(G) đưa tập PTH G về dạng thu gọn tự nhiên bằng cách loại khỏi G những PTH tầm thường (có vế trái chứa vế phải), chuyển đổi mỗi PTH có hai vế trái phải rời nhau và gộp các PTH có cùng vế trái.

2.3. Các ví dụVí dụ 1: Ví dụ 1: Chho LĐQH p = (U, F), U = ABCDEH F = {AED, ADH, BCE, EBC}

Với M = ADH, hãy xác định q = (V,G) = p\M? Ta có: V = U\ADH = ABCDEH\ADH = BCE,

G = {EØ (loại), ØØ (loại), BCE,

EBC} = {BCE, EBC}

Ta nhận phép thu gọn thỏa tính hợp thành và giao hoán, cụ thể nếu p là LĐQH trên tập thuộc tính UX, Y là hai tập con rời nhau của U thì

p\XY = (p\X)\Y = (p\Y)\X

Ví dụ 2 : Cho LĐQH p = (U, F), U = ABCDEH F = {AED,

EBC}

DỂ TÌM TẬP KHÓA Key (p) của lược đồ p chúng ta xây dựng một lược đồ

q bằng cách xóa khỏi lược đồ p các thuộc tính A, D, H. Ta thu gọn lược đồ q = (V,G) trong đó :

V = U\ADH = ABCDEH \ ADH = BCE,

G = {EØ (loại), BCE, EBC} = {BCE, EBC}

Ta dễ dàng tìm được Key (q) = {BC, E}. Để thu được Key (p) ta chỉ việc thêm thuộc tính AH (không thêm D) vào mỗi khóa của lược đồ q.

Vậy Key (p) = {AHBC, AHE}. Dù F là tập PTH tối ưu theo nghĩa chứa ít ký hiệu nhất, nhưng G còn chứa ít ký hiệu hơn F.

Ví dụ 3: Cho LĐQH p = (U,F), Với tập thuộc tính U = ABCDEIH. Tập thuộc tính F = {AD,

ABDE,

CEI,

EH} Tính Key(p)?

Để tìm tập khóa của p bằng cách thu gọn LĐQH p theo M = ABC. Ta thu được LĐQH q = p\M = (V,G).

V = U\M = ABCDEIH \ ABC = DEIH.

G = F\ M = { Ø D Ø DE, EI,

EH,

Ta dễ dàng suy ra Key(q) = Ø.

Để thu được Key (p), ta chỉ cần thêm vào Key (q) các thuộc tính vừa thu gọn ABC. Ta được Key (p) = ABC.

Ví dụ 4: Cho LĐQH p = (U,F), Với tập thuộc tính U = ABCDEH.

Tập PTH F = {ABC, CA, BCD, ACDB, DEH, BEC,

CHBD, CECH} Tìm Key(p)?

Ta thu gọn lược đồ quan hệ p theo thuộc tính C. Thu được LĐQH:

q = p\C = (V,G). V = ABDEH.

G = {AB Ø (loại), Ø A, BD, ADB, DEH, BE Ø (loại), HBD, EH} = {ØA, BD, ADB, DEH, HBD, EH}.

Ta tìm được khóa của lược đồ q: Key(q) = {B,D,E,H}. Để thu được Key (p), ta thêm thuộc tính C vào khóa của q.

Ta được Key (p) = {BC, DC, EC, HC}.

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 32 - 35)

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

(71 trang)