Thuật toán kiểm tra một sơ đồ quan hệ có là BCNF haykhông

Một phần của tài liệu Một số vấn đề liên quan đến dạng chuẩn trong hệ cơ sở dữ liệu tính bao đóng của một tập các thuộc tính trên tập các phụ thuộc hàm đối với sơ đồ quan hệ (Trang 65 - 66)

Input: s = < R, F >, R= {a1, a2,..., an} và

A1→ B1

F = . . . . At→ Bt

Với Bi ⊆ Ai (i = 1,2,...t)

Output: s có là BCNF hay không

Bước 1: Nếu A1+ = R thì chuyển sang bước 2.

Ngược lại s không là BCNF Bước i: (2 ≤ i ≤ t) :

Nếu Ai+ = R thì chuyển sang bước i+1 Ngược lại s không là BCNF

Bước i+1: s là BCNF.

4.2 Phân tích thông tin đầu vào

Thông tin đầu vào là tập tất cả các thuộc tính R bao gồm các kí tự hoặc biến do người lập trình tự quy định. Trên cơ sở các tập thuộc tính ta sẽ xây dựng tập các phụ thuộc hàm.

Dựa trên tập thuộc tính đã có, người ta xây dựng lên tập các phụ thuộc hàm

F có dạng A→ B. Chương trình sẽ kiểm tra các phần tử của vế trái và vế

tính không. Nếu không thuộc, chương trình sẽ báo lỗi và yêu cầu nhập lại.

4.3 Phân tích thông tin đầu ra

Thông tin đầu ra gồm 2 phần:

(1) - Tính bao đóng (A+) của tập thuộc tính A bất kỳ với điều kiện A phải

thuộc tập thuộc tính R ( A ⊆ R).

Từ những thông tin đầu vào và nhập một tập thuộc tính A bất kỳ. áp dụng

thuật toán tính bao đóng ta tính được A+.

A+ = { a: { A → {a} ∈ F+}

Ở đây F+ là tập tất cả các phụ thuộc hàm được dẫn xuất từ F bằng việc áp

dụng các quy tắc của hệ tiên đề Armstrong.

(2) - Với thông tin đầu vào như trên, chương trình kiểm tra xem sơ đồ quan hệ có phải là BCNF hay không theo thuật toán tính BCNF.

Một phần của tài liệu Một số vấn đề liên quan đến dạng chuẩn trong hệ cơ sở dữ liệu tính bao đóng của một tập các thuộc tính trên tập các phụ thuộc hàm đối với sơ đồ quan hệ (Trang 65 - 66)

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

(77 trang)
w