Nếu có một hàng trong số đó chứa 1 trong các cột ứng với thuộc tính Y thì hãy làm cho các hàng cho các cột tương ứng của các hàng khác cũng chứa 1.. Nếu có một hàng chứa toàn ký hiệu “[r]
(1)Chương
(2)Phép tách bảo toàn phụ thuộc
Một số định nghĩa
- Quan hệ vũ trụ đơn R={A1, …An} chứa tất thuộc tính CSDL
- Tập hợp F phụ thuộc hàm phải thỏa mãn
R
- Thuật toán tách phân chia R thành tập quan hệ
D= {R1, …Rm} gọi lược đồ CSDL quan hệ D gọi phép tách
- Điều kiện bảo tồn thuộc tính ∪Ri=R
- Tính khơng đầy đủ dạng chuẩn: khơng đảm bảo
(3)Nhập môn Cơ sở liệu - Khoa CNTT
Phép tách bảo toàn FD… (tt)
ĐN (đk bảo toàn phụ thuộc) Một phụ thuộc hàm
XY phải xuất F suy diễn
từ DF thông qua phép biến đổi F
(4)Phép tách bảo toàn FD… (tt)
Ta nói phép tách D = {R1, R2, …, Rm} R bảo toàn phụ thuộc F hợp phép chiếu F Ri trong D tương đương với F Điều có nghĩa là:
(5)Nhập môn Cơ sở liệu - Khoa CNTT
Phép tách bảo toàn FD… (tt)
Để kiểm tra xem phụ thuộc hàm X B,
đó X tập thuộc tính thuộc Ri, B thuộc tính thuộc Ri có thỏa mãn Ri hay không ta làm sau:
Tính X+ ,
Với thuộc tính B, kiểm tra
1 B thuộc tính Ri B X+:
3 B không X
(6)Phép tách bảo toàn FD… (tt)
Ví dụ Xét lược đồ quan hệ:
R = { A,B,C,D} với phụ thuộc hàm:
A BCD; BC DA; D B
Lược đồ có hai khóa dự tuyển A BC
Lược đồ vi phạm BCNF Nó tách thành:
- R1 = {D,B}, lược đồ chứa phụ thuộc hàm D B
- R2 = {A,C,D}, lược đồ chứa phụ thuộc hàm A CD
(7)Nhập môn Cơ sở liệu - Khoa CNTT
Phép tách bảo toàn FD… (tt)
Thuật tốn 5.1: Tạo phép tách bảo tồn phụ
thuộc D = {R1, R2, …, Rn} quan hệ vũ trụ R dựa tập phụ thuộc hàm F cho Ri D 3NF
Thuật toán đảm bảo tính chất bảo tồn phụ
(8)Phép tách bảo toàn FD… (tt) Input: Một quan hệ vũ trụ R tập phụ thuộc hàm F
các thuộc tính R
1 Tìm phủ tối thiểu G F
2 Với vế trái X phụ thuộc hàm xuất G,
hãy tạo lược đồ D với thuộc tính {X {A1} {A2} … {Ak}} XA1, XA2,…, XAk phụ thuộc hàm G với X vế trái (X khóa quan hệ này)
3 Đặt thuộc tính cịn lại (những thuộc tính chưa đặt
(9)Nhập môn Cơ sở liệu - Khoa CNTT
Phép tách bảo tồn FD… (tt)
Ví dụ: Xét lược đồ quan hệ:
R = { A,B,C,D} với phụ thuộc hàm:
A BCD; BC DA; D B
Yêu cầu tách lược đồ R thành tập lược đồ
(10)Phép tách bảo toàn FD… (tt)
Ta thực thuật toán sau:
- B1: Tìm G phủ tối thiểu F
Theo thuật tốn tìm phủ tối thiểu, ta làm cho vế phải G chứa thuộc tính, ta có:
G = {A B; A C; A D; BC D; BC A; D B}
Sau ta bỏ phụ thuộc hàm thừa (A B)
G = {A C; A D; BC D; BC A; D B}
- B2: Lược đồ R tách thành:
R1( A,C,D)
R2(B,C,D,A)
(11)Nhập môn Cơ sở liệu - Khoa CNTT 11
Phép tách không mát
(12)Phép tách không mát (tt)
Thuật tốn 5.2: kiểm tra nối khơng mát
Input: Một quan hệ vũ trụ R(A1,A2,…An), phép tách D = {R1, R2, …, Rm} R tập F phụ thuộc hàm
1 Tạo ma trận S có m hàng, n cột Mỗi cột ma trận ứng với
thuộc tính, hàng ứng với quan hệ Ri
2 Đặt S(i,j) = thuộc tính Aj thuộc quan hệ Ri
trường hợp ngược lại
3 Lặp lại vòng lặp sau việc thực vịng lặp khơng
làm thay đổi S: Với phụ thuộc hàm X Y F, xác định hàng S có ký hiệu cột ứng với thuộc tính X Nếu có hàng số chứa cột ứng với thuộc tính Y làm cho hàng cho cột tương ứng hàng khác chứa
4 Nếu có hàng chứa tồn ký hiệu “1” phép tách có tính chất nối
(13)Nhập môn Cơ sở liệu - Khoa CNTT 13
Ví dụ
R = (MaNV, TenNV, MaDA, TenDA, DDiem, Sốgiờ)
F= {MaNV TenNV,
MaDA {TenDA, DDiem},
{MaNV, MaDA} Sốgiờ}
R1= (MaNV, TenNV)
R2 = (MaDA, TenDA, DDiem)
R3 = (MaNV, MaDA, Sốgiờ)
(14)MaNV TenNV MaDA TenDA Ddiem Sốgiờ
R1 1 0 0
R2 0 1
R3 1 0
B1,
MaNV TenNV MaDA TenDA Ddiem Sốgiờ
R1 1 0 0
R2 0 1
R3 1 0
B3
(15)Nhập môn Cơ sở liệu - Khoa CNTT 15
MaNV TenNV MaDA TenDA Ddiem Sốgiờ
R1 1 0 0
R2 0 1
R3 1 0
B1,
MaNV TenNV MaDA TenDA Ddiem Sốgiờ
R1 1 0 0
R2 0 1
R3 1 0
B3
(16)Phép tách không mát (tt)
Thuật toán 5.3: Tách quan hệ thành quan hệ
BCNF với tính chất nối không mát
Đặt Dold := {R} ;
FOR (lược đồ Q D)
- FOR EACH (Q |= X Y vi phạm BCNF )
Dold := Dnew
(17)Nhập môn Cơ sở liệu - Khoa CNTT 17
Phép tách không mát (tt)
Kiểm tra lược đồ Q D vi phạm BCNF
- Cách 1: Với phụ thuộc hàm X Y Q,
Tính X+
Nếu X+ không chứa tất thuộc tính Q X Y vi
phạm BCNF X khơng phải siêu khóa
- Cách 2: dựa quan sát lược đồ quan hệ Q vi phạm BCNF có tồn cặp thuộc tính A,B Q cho {Q – {A,B}} A
Tính bao đóng {Q – {A,B}}+ cho mỗi cặp thuộc tính {A,B}
Q
(18)Phép tách không mát (tt)
Ví dụ: Xét lược đồ quan hệ
- R = { A, B, C, D, E, F)
- A BCDEF, BC ADEF, B F, D E, D B
Có khóa dự tuyển A BC
Ta có B F vi phạm BCNF B khơng phải siêu khóa, R tách thành
- R1(B,F) với phụ thuộc hàm B F
R2(A,B,C,D,E) với phụ thuộc hàm ACDE, BCADE, DE, DB
Do D E vi phạm BCNF (D thuộc tính khơng khóa), R2 tách thành:
- R21(D,E) với phụ thuộc hàm D E
- R22(ABCD) với phụ thuộc hàm A BCD, BC AD, D B
Do D B vi phạm BCNF (D thuộc tính khóa), R22 tách thành:
- R221(D,B)
- R222(A, C, D) với phụ thuộc hàm A CD (phụ thuộc hàm BC AD bị mất) Tóm lại, ta có phép tách D = {R1, R21, R221, R222} Phép tách có tính chất
(19)Nhập môn Cơ sở liệu - Khoa CNTT 19
Phép tách không mát (tt)
Thuật toán 5.4: tổng hợp quan hệ với tính chất
bảo tồn phụ thuộc nối khơng mát
- Tìm phủ tối thiểu G cho F
- Với vế trái X phụ thuộc hàm xuất
trong G tạo lược đồ quan hệ D với thuộc tính {X{A1}{A2}… {Ak}}, X A1, XA2,…, X Ak phụ thuộc hàm G với X vế trái (X khóa quan hệ này)
- Nếu khơng có lược đồ quan hệ D chứa
(20)Dạng chuẩn 4- phụ thuộc đa trị
Ví dụ
NHANVIEN(TENNV, TENDA, TENTHANNHAN)
NHÂNVIÊN TênNV TênDA TênconNV
Nam DA01 Lan
Nam DA02 Hoa
Nam DA01 Hoa
(21)Nhập môn Cơ sở liệu - Khoa CNTT 21
Dạng chuẩn 4-pt đa trị (tt)
Một phụ thuộc đa trị (MVD), ký hiệu X Y , ràng buộc sau trạng thái quan hệ R: Nếu hai t1 t2 tồn R cho t1[X] = t2[X] hai t3 t4 tồn R với tính chất sau:
- t3[X] = t4[X] = t1[X] = t2[X]
- t3[Y] = t1[Y] t4[Y] = t2[Y]
(22)Dạng chuẩn 4-pt đa trị (tt)
Định nghĩa: Một lược đồ quan hệ R dạng chuẩn
4 (4NF) tập hợp phụ thuộc F (gồm
các phụ thuộc hàm phụ thuộc đa trị) với
phụ thuộc đa trị không tầm thường XY F+
(23)Nhập môn Cơ sở liệu - Khoa CNTT 23
Dạng chuẩn 4-pt đa trị (tt)
Thuật toán Tách quan hệ thành quan hệ 4NF
với tính chất nối không mát
- Input: Một quan hệ vũ trụ R tập phụ thuộc hàm phụ thuộc đa trị F
1 Đặt D := {R};
2 Khi có lược đồ quan hệ Q D không 4NF, thực hiện:
Chọn lược đồ quan hệ Q D không 4NF;
Tìm phụ thuộc đa trị khơng tầm thường XY Q vi phạm 4NF;
(24)Dạng chuẩn 5- pt nối
Một phụ thuộc nối (JD), ký hiệu JD(R1, R2, …, Rn) lược đồ quan hệ R ràng buộc trạng thái r R Ràng buộc tuyên bố trạng thái hợp pháp r R phải có phép tách có tính chất nối không mát thành R1, R2, …, Rn Điều nghĩa là:
* (R1(r), R2(r), , Rn(r)) = r
(25)Nhập môn Cơ sở liệu - Khoa CNTT 25
Dạng chuẩn 5- pt nối (tt)
ĐN: Một lược đồ quan hệ R dạng chuẩn
(5NF) (hoặc dạng chuẩn nối chiếu PJNF –
Project-Join normal form) tập F phụ thuộc hàm, phụ thuộc đa trị phụ thuộc nối với phụ thuộc nối không tầm thường JD(R1, R2, …, Rn F+, R
(26)Tài liệu tham khảo
Giáo trình CSDL - Chương
Database management system
- Chapter 15
Fundamentals of Database Systems
(27)