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(X∪Y). 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