Cho lược đồ quan hệ R và tập phụ thuộc hàm F, R được gọi lag dạng chuẩn Boyce Codd , ký hiệu BCNF nếu X→A đúng trong R và A∉X thì X phải là một khóa của R. Ví dụ: R= CZS như trên
F=(CS→Z, Z→C)
Ta thấy Z→C đúng trong F, C∉Z và Z không phải là một khóa của R( khóa của R là CS hoặc CZ) suy ra R ở 3NF nhưng không phải là chuẩn BCNF
Xử lý thông tin trong CSDL
Trang 8
4.2.3 Tách không mất thông tin thành các dạng chuẩn BCBF
Cho lược đồ quan hệ U, tập phụ thuộc hàm F, R ⊆U. Chiếu của F lên R là tập phụ thuộc hàm Ký hiệu ΠR(F) được xác định như sau:
ΠR(F) = (X→Y sao cho X,Y ⊆R, F suy ra logic X→Y)
Bổ đề:1
Giả sử R là lược đồ quan hệ ,F là tập phụ thuộc hàm trên R, P={R1,R2,..,Rn} là phép tách không mất thông tin đối với R.Nếu Q=(S1,S2) là phép tách không mất thông tin của R1 đối với tập phụ thuộc hàm F1= ΠR1(F)
Thì phép tách P’= {S1,S2,R2,..,Rn} cũng không mất thông tin. Chứng minh:
Lấy 1 quan hệ r thỏa mãn F
do P là phép tách không mất thông tin nên r= ΠR1(r) ∞ ΠR2(r) ∞ ... ∞ ΠRn(r) Đặt r1 = ΠR1(r), do đó r1 thỏa mãn F1= ΠR1(F), mặt khác do phép tách Q=(S1,S2) của R1 là không mất thông tin nên
r1=ΠS1(r1) ∞ ΠS2(r1)
= ΠS1(ΠR1(r)) ∞ ΠS2(ΠR1(r)) = ΠS1(r) ∞ ΠS2(r)
Vậy ta có: r= ΠR1(r) ∞ ΠR2(r) ∞ ... ∞ ΠRn(r)
= ΠS1(r) ∞ ΠS2(r) ∞ ΠR2(r) ∞ ... ∞ ΠRn(r)
điều này chứng tỏ phép tách P’= {S1,S2,R2,..,Rn} cũng không mất thông tin.
Từ bổ đề này ta suy ra phương pháp tách một lược đồ quan hệ thành các lược đồ ở dạng chuẩn BCNF
Cho lược đồ quan hệ R và tập phụ thuộc hàm F.Nếu R không ở dạng chuẩn BCNF thì tìm được ít nhất là một phụ thuộc hàm X→A, A∉X và X không phải là siêu khóa( X không suy ra R). Khi đó tách R thành 2 lược đồ quan hệ sau:
R-A và XA
Khi đó ta có R-A ∩XA = X X→A=(XA-(R-A))
Do đó phép tách là không mất thông tin.
Nếu lược đồ R1 ở dạng chuẩn BCNF đối với ΠR1(F) thì đưa R1 vào phép tách. Ngược lại thì R1 chưa ở dạng chuẩn BCNF đối với ΠR1(F) thì tiếp tục quá trình trên .
Ở đây R1= R-a hoặc R1=XA
Bổ đề:2