PHÉP CHIẾU TẬP PHỤ THUỘC HÀM

Một phần của tài liệu Co so du lieu Chuong 6 ThS Nguyen Vuong Thinh (Trang 28 - 33)

Phép chiếu tập phụ thuộc hàm F trên tập thuộc tính Ωi (ký hiệu là (F))cho kết quả là một tập các phụ thuộc hàm X → Y F∈ + sao cho X, Y

i.

B. PHÉP TÁCH BẢO TOÀN TẬP PHỤ THUỘC HÀM

Cho lược đồ quan hệ R(Ω) và tập phụ thuộc hàm F. Phép tách lược đồ quan hệ R(Ω) thành m lược đồ con R1(Ω1), R2(Ω2),..., Rm(Ωm) được gọi là bảo toàn tập phụ thuộc hàm nếu hợp kết quả các phép chiếu của F trên các Ωi vẫn tương đương với F. Tức là

6.4. PHÉP TÁCH VỀ DẠNG CHUẨN BOYCE CODD BẢO TOÀN THÔNG TIN BẢO TOÀN THÔNG TIN

Thuật toán tách

Input: Lược đồ quan hệ gốc R(Ω) và tập phụ thuộc hàm F.

Output:Tập D gồm các lược đồ quan hệ con R1(Ω1), R2(Ω2), ... , Rm(Ωm) thỏa mãn BCNF và bảo toàn thông tin

Bước 1: Khởi tạo D = {R(Ω)}

Bước 2: Lặp lại thao tác sau đây: Với mỗi lược đồ quan hệ Ri(Ωi) trong D không ở BCNF, tìm một phụ thuộc hàm X → Y vi ph m đ nh nghĩa BCNF và

thay th ế Ri(Ωi) bằng 02 lược đồ quan hệ Si(Ωi\Y) và Ti(XY). Quá trình lặp dừng khi không còn lược đồ quan hệ nào trong D không thỏa mãn BCNF.

30

Ví dụ 6.10: Xét lược đồ quan hệ R(A,B,C,D,E,F) và tập phụ thuộc hàm: F = {A → BCDEF, BC → ADEF, B → F, D → E, D → B}

Hãy tách lược đồ trên thành các lược đồ con thỏa mãn BCNF và bảo toàn thông tin. Giải R(A,B,C,D,E,F) F = {A → BCDEF, BC → ADEF, B → F, D → E, D → B} K1 = A, K2 = BC R1(B,F) F1 = {B → F} K= B R2(A,B,C,D,E) F2 = {A → BCDE, BC → ADE, D → E, D → B} K1 = A, K2 = BC R21(D,E) F21 = {D → E} K= D R22(A,B,C,D) F22 = {A → BCD, BC → AD, D → B} K1 = A, K2 = BC R222(A,C,D) F222 = {A → CD} K= A R221(D,B) F221 = {D → B} K= D D = {R1(B,F), R21(D,E), R221(D,B), R222(A,C,D)}

31

Ví dụ 6.11: Xét lược đồ quan hệ

PhanCong(MaNV, TenNV, ChuyenMon, MaDA, TenDA, DiaDiem, NgayBD, NgayKT)

và tập phụ thuộc hàm:

F = { MaNV → TenNV, ChuyenMon;MaDA → TenDA, DiaDiem; MaDA → TenDA, DiaDiem;

MaNV, MaDA → NgayBD, NgayKT }

Hãy tách lược đồ trên thành các lược đồ con thỏa mãn BCNF và bảo toàn thông tin. Giải

PhanCong(MaNV, TenNV, ChuyenMon, MaDA, TenDA, DiaDiem, NgayBD, NgayKT)

F = {MaNV → TenNV, ChuyenMon; MaDA → TenDA, DiaDiem; MaNV, MaDA → NgayBD, NgayKT}K= {MaNV, MaDA} K= {MaNV, MaDA}

NhanVien(MaNV,TenNV, ChuyenMon)

F1 = {MaNV → TenNV, ChuyenMon} K= MaNV

PhanCong1(MaNV, MaDA, TenDA, DiaDiem, NgayBD, NgayKT)

F2 = {MaDA → TenDA, DiaDiem; MaNV, MaDA → NgayBD, NgayKT}

K= {MaNV, MaDA}

DuAn(MaDA, TenDA, DiaDiem)

F3 = {MaDA → TenDA} K= MaDA

PhanCongNV(MaNV, MaDA, NgayBD, NgayKT)

F4 = {MaNV, MaDA → NgayBD, NgayKT} K = {MaNV, MaDA}

32

6.5. PHÉP TÁCH VỀ DẠNG CHUẨN 3 BẢO TOÀN THÔNG TIN VÀ BẢO TOÀN PHỤ THUỘC HÀM THÔNG TIN VÀ BẢO TOÀN PHỤ THUỘC HÀM

Thuật toán tách

Input: Lược đồ quan hệ gốc R(Ω) và tập phụ thuộc hàm F.

Output:Tập D gồm các lược đồ quan hệ con R1(Ω1), R2(Ω2), ... , Rm(Ωm) thỏa mãn chuẩn 3, bảo toàn thông tin và bảo toàn phụ thuộc hàm.

Bước 1: Tìm phủ tối thiểu G của F (nếu F chưa phải là tập PTH tối thiểu). Bước 2: Với mỗi phụ thuộc hàm X → A trong G ta tạo ra một lược đồ quan hệ con S(X {A}) trong D. Nếu có nhiều phụ thuộc hàm có chung vế trái:

X→A1, X→A2,..., X→Ak thì thay vì phải tạo lược đồ quan hệ con ứng với từng phụ thuộc hàm riêng lẻ, ta tạo ra một lược đồ quan hệ con chung S(X {A 1} {A 2} ... {A∪ ∪ k})

Lưu ý: X là khóa chính của các lược đồ quan hệ con này.

Bước 3: Nếu không có lược đồ quan hệ con nào trong D chứa một khóa của R thì tạo thêm một lược đồ quan hệ con trong D có các thuộc tính là thuộc tính khóa cấu thành một khóa nào đó của R.

Ví dụ 6.12: Xét lược đồ quan hệ

PhanCong(MaGV, TenGV, MaPhong, DiaDiem, MaMon, TenMon)

và tập phụ thuộc hàm:

F = {MaGV → TenGV; MaPhong → DiaDiem; MaMon → TenMon }

Hãy tách lược đồ trên thành các lược đồ con thỏa mãn 3NF, bảo toàn thông tin và bảo toàn tập phụ thuộc hàm.

Giải

Một phần của tài liệu Co so du lieu Chuong 6 ThS Nguyen Vuong Thinh (Trang 28 - 33)

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

(35 trang)