c s d li ệu - fit.mta.edu.vnfit.mta.edu.vn/files/danhsach/ch04_phu thuoc ham va... · chuẩn...
TRANSCRIPT
CC ởở dữdữ liệliệCơCơ sởsở dữdữ liệuliệu
ễVăn-Giang Nguyễn
ốBộ môn Hệ thống thông tin, Khoa Công nghệ thông tin,Học viện Kỹ thuật quân sựE il i @ t dEmail: [email protected]
Slides courtesy of : Đỗ Thị Mai Hường, HTTT, CNTT, HVKTQS
Nội dung môn học
Chương 1: Tổng quan về cơ sở dữ liệu (5)
Chương 2: Mô hình liên kết thực thể (5)
Chương 3: Mô hình dữ liệu quan hệ (10) Chương 3: Mô hình dữ liệu quan hệ (10)
Chương 4: Phụ thuộc hàm và các dạng chuẩn CSDL (15 Ch 5 Hệ ả t ị SQL S (10) Chương 5: Hệ quản trị SQL Server (10)
Chương 6: Ngôn ngữ truy vấn CSDL (15)
Chương 7: Lập trình T-SQL (15)
- 2 -
Nội dung
Giới hạn của ER
Sự dư thừa Sự dư thừa
Phụ thuộc hàm
Hệ suy diễn Amstrong
Thuật toán tìm bao đóngậ g
Thuật toán tìm khóa
Các dạng chuẩnCác dạng chuẩn
Chuẩn hóa quan hệ
Tách kết nối không mất thông tin- 3 -
Giới hạn của lược đồ ER
Cung cấp một tập các hướng dẫn không đưatới một lược đồ CSDL duy nhất
Không đưa ra cách đánh giá giữa các lược đồkhác nhau
Lý thuyết về chuẩn hóa CSDL quan hệ cung cấpkỹ thuật để phân tích và chuyển hóa từ lược đồkỹ thuật để phân tích và chuyển hóa từ lược đồER sang lược đồ quan hệ
- 4 -
Sự dư thừa
Sự phụ thuộc giữa các thuộc tính gây ra sự dư thừa
Ví dụ: Điểm các môn học Điểm TB Xếp loại
TENPHG MAPHG TRPHG NG_NHAMCHUC MANV TENNV HONV
Nghiên cứu 5 123456789 01/02/2012 123456789 Tùng Nguyễn
Điều hành 4 333444555 01/01/2010 333444555 Hưng Nguyễn
Quản lý 1 999888777 01/06/2012 999888777 Vĩnh Phạm
- 5 -
Sự dư thừa
Thuộc tính đa trị trong lược đồ ER Nhiều bộ sốliệu trong lược đồ quan hệ
Ví dụNHANVIEN(TENNV, HONV, NS, DCHI, GT,(
LUONG, BANGCAP)TENNV HONV NS DIACHI GT LUONG BANGCAP
Tùng Nguyễn 12/08/1955 638 HQV CG Nam 6000 Trung cấpTùng Nguyễn 12/08/1955 638 HQV CG Nam 6000 Trung cấp
Chuyên Bùi 07/04/1970 255 XT CG Nữ 5500 Đại học
Dũng Hoàng 09/05/1965 51 NTH BĐ Nam 6000 Cao đẳng
Dũng Hoàng 09/05/1965 51 NTH BĐ Nam 6000 Đại học
- 6 -
Sự dư thừa
Dư thừa Dị thường- Thao tác sửa đổi: cập nhật tất cả các giá trị
liêliên quan- Thao tác xóa: người cuối cùng của đơn vị
mất thông tin về đơn vịmất thông tin về đơn vị- Thao tác chèn
TENPHG MAPHG TRPHG NG_NHAMCHUC MANV TENNV HONV
Nghiên cứu 5 123456789 01/02/2012 123456789 Tùng Nguyễn
Điều hành 4 333444555 01/01/2010 333444555 Hưng Nguyễn
Quản lý 1 999888777 01/06/2012 999888777 Vĩnh Phạm
- 7 -
Sự dư thừa
Các giá trị không xác định- Đặt thuộc tính trưởng phòng vào quan hệ
NHANVIEN th ì à hệ PHONGBANNHANVIEN thay vì vào quan hệ PHONGBANCác bộ giả
Sử dụng các phép nối- Sử dụng các phép nối
- 8 -
Sự dư thừa – Một số nguyên tắc(Lý do cần có phụ thuộc hàm)
NT1: Rõ ràng về mặt ngữ nghĩa, tránh các phụthuộc giữa các thuộc tính với nhauNT2 T á h t ù lặ ề ội d đả bảNT2: Tránh sự trùng lặp về nội dung đảm bảo
tránh được các dị thường khi thao tác cập nhậtdữ liệudữ liệu
- Phải có một số thao tác khi thêm mới và cập nhật vàolược đồ quan hệ, cũng như có thể gây sai hỏng trongtrường hợp xóa bỏ các bộtrường hợp xóa bỏ các bộ
NT3: Tránh đặt các thuộc tính có nhiều giá trị nullNT4: Thiết kế các lược đồ quan hệ sao cho
ể ố ề ằchúng có thể được nối với điều kiện bằng trêncác thuộc tính là khóa chính hoặc khóa ngoàitheo cách đảm bảo không sinh ra các bộ giảtheo cách đảm bảo không sinh ra các bộ giả.
- Gây lỗi khi thực hiện các phép kết nối- 9 -
Phụ thuộc hàm
Lý thuyết về chuẩn hóa- Các phân tích để đưa ra lược đồ thực thể liên
kết ầ hải đ ử hữ ở á b ớ tiếkết cần phải được sửa chữa ở các bước tiếptheo
- Vấn đề nêu ở slide trên sẽ được giải quyếtVấn đề nêu ở slide trên sẽ được giải quyếtnếu có một phương pháp phân tích tích hợp
Lý thuyết chuẩn hóa (dựa trên phụ thuộchà ) ẽ là ề tả ở để th hiệ iệhàm) sẽ là nền tảng cơ sở để thực hiện việcphân tích và chuẩn hóa lược đồ ER.
- 10 -
Phụ thuộc hàm (định nghĩa không chính thức)
Phụ thuộc hàm trong quan hệ rCho l ợc đồ q an hệ R à X Y là các tập conCho lược đồ quan hệ R và X, Y là các tập con
của R. r là một quan hệ trên R.Ta nói X xác định phụ thuộc hàm Y, ký hiệu XYị p ụ ộ , ý ệ
trong r nếu với mọi t và t’ của r mà t,t’ bằng nhautrên tập X thì chúng cũng bằng nhau trên tập Y,tứ làtức là
, 't t r∀ ∈ . '. . '.t X t X t Y t Y= =
- 12 -
Ph th ộc hàm trên r là tr ờng hợp riêng củaPhụ thuộc hàm trong quan hệ rPhụ thuộc hàm trên r là trường hợp riêng của
phụ thuộc hàm trên RPhụ thuộc hàm trên r là một khái niệm hẹp, nónó chỉchỉụ ộ ộ ệ ẹp,đúngđúng chocho mộtmột quanquan hệhệ,Trong một số trường hợp chỉ cần thay đổi một vài
iá t ị ủ á th ộ tí h t hệ hgiá trị của các thuộc tính trong quan hệ, phụthuộc hàm không còn đúng.
Ví dụ phụ thuộc hàm
Phụ thuộc hàm trong quan hệ r
Ví dụ:Trong lược đồ quan hệ sau, nếu chúng tagiả thiết rằng trong lớp các tên nhập vào là không
iố h thì lú đó th ộ tí h H t ké thgiống nhau thì lúc đó thuộc tính Hoten kéo theotất cả các thuộc tính khác nhưng nếu có sự thayđổi thì thuộc tính đó có thể không còn đúng.đổi thì thuộc tính đó có thể không còn đúng.
Hoten Ngaysinh LopHùng 01/05/1993 TH10AHùng 01/05/1993 TH10AMinh 04/02/1993 TH10ATrang 20/09/1993 TH10B
Trang 21/01/1993 TH10A
- 15 -
Phụ thuộc hàm trên lược đồ QH R
Cho lược đồ quan hệ R và X,Y là các tập con củaR. Ta nói X xác định phụ thuộc hàm Y, ký hiệuX Y t ê l đồ hệ R Nế ới i t êX Y trên lược đồ quan hệ R. Nếu với mọi r trênR xác định XY
- 16 -
Các tính chất của phụ thuộc hàm
A1-Tính phản xạXX, hay tổng quát hơn nếu thì XY
A2 Tí h ở ô h i ếY X⊂
A2- Tính mở rông hai vếXY thì XZYZ (mở rộng hai vế Z)
A3-Tính bắc cầuA3 Tính bắc cầuXY và Y Z thì XZ
A4-Tính tựa bắc cầuXY à YZW thì XZWXY và YZW thì XZW
A5- Tính mở rộng trái, thu hẹp phảiXY thì XZY-WXY thì XZY W
A6 – Tính cộng đầy đủXY và ZW thì XZYW
A7 – Tính tính lũyXY và YZW thì XYZW - 17 -
Các tính chất của phụ thuộc hàm (CM)
A1-Tính phản xạXX, hay tổng quát hơn nếu thì XYY X⊂
Giả sử , 't t r∈
1. Tính phản xạHiển nhiên vì t và t’ bằng nhau trong tập X thì
hú hải bằ h t tậ ủ Xchúng phải bằng nhau trong tập con của X,nói cách khác t.X=t’.X t.X=t’.X & t.Y=t’.Yvới Vì vậy XYY X⊂với . Vì vậy XYY X⊂
- 18 -
Các tính chất của phụ thuộc hàm (CM)A2 Tí h ở ô h i ếA2- Tính mở rông hai vế
XY thì XZYZ (mở rộng hai vế Z)
Giả sử , 't t r∈
2. Tính mở rộng 2 vếGiả sử t.XZ=t’.XZ, ta phải chứng minh, p g
t.YZ=t’.YZ
Từ t XZ t’ XZ t ó t X t’ X à t Z t’ Z Th iảTừ t.XZ=t’.XZ, ta có t.X=t’.X và t.Z=t’.Z. Theo giảthiết ta có t.X=t’.X thì t.Y=t’.Y.Như vậy ta có, t.Y=t’.Y và t.Z=t’.Z thì t.YZ=t’.YZ.
- 19 -
Như vậy ta có, t.Y t .Y và t.Z t .Z thì t.YZ t .YZ.Suy ra XZYZ
Các tính chất của phụ thuộc hàm (CM)A3-Tính bắc cầu
XY và Y Z thì XZ
Giả sử , 't t r∈
3. Tính bắc cầut.X=t’.X t.Y = t’.Yt Y t’ Y t Z t’ Zt.Y=t’.Y t.Z = t’.Z t.X=t’.X thì t.Z=t’.Z <=> XZ
- 20 -
Hệ tiên đề Armstrong
• Hệ A bao gồm các tính chất {A1,A2,A3} của phụthuộc hàm được gọi là hệ tiên đề Armstrong củalớ á h th ộ hàlớp các phụ thuộc hàm.
• Các tính chất còn lại ({A4,A5,A6,A7}) đều đượcsuy ra từ hệ tiên đề Armstrongsuy ra từ hệ tiên đề Armstrong
Chứng minh: A4-Tính tựa bắc cầuXY và YZW thì XZWXY và YZW thì XZW
Bởi XY, theo tính mở rộng 2 về ta có XZYZVà YZW.Theo tính chất bắc cầu: XZW
- 21 -
Hệ tiên đề Armstrong
Ngoài ra có tính chất sau hay được dùng
Tí h hất hiế XYZ thì XY à XZTính chất chiếu: XYZ thì XY và XZ
Chứng minh:Chứng minh: XYZ (cho trước) YZY (Sử dụng A1 và tính chất XY ( ử d A3)
YZ Y⊃ XY (sử dụng A3)
- 22 -
Hệ tiên đề Armstrong
Phép suy dẫn theo hệ tiên đề ArmstrongPhụ thuộc hàm f được suy dẫn theo hệ tiênđề A t là f ó thể hậ đ từ Fđề Armstrong là f có thể nhận được từ F saumột số hữu hạn bước áp dụng các luật củatiên đề Armstrong. Ký hiệu F|=ftiên đề Armstrong. Ký hiệu F| f
Phép suy dẫn theo quan hệPhụ thuộc hàm f suy dẫn được từ tập PTH FPhụ thuộc hàm f suy dẫn được từ tập PTH Ftheo quan hệ (hoặc PTH f được suy dẫn theoquan hệ từ tập PTH F) ký hiệu F|-f nếu với mọi
hệ ê l đồ R à F hỏ hì fquan hệ r trên lược đồ R mà F thỏa mãn thì fcũng thỏa mãn.
- 23 -
Hệ tiên đề Armstrong
Bổ đề 2.1Giả sử , nếu gọi X+ là tập các thuộctí h A ủ R à thì ới i tậ
X R⊆|F X A→tính A của R mà , thì với mọi tập
ề
|F X A= →, |Y R F X Y Y X +⊆ = → ⇔ ⊆
Chứng minh chiều thuậnTa có . Giả sử theo tính mở rộng trái thu hẹp phải:
|F X Y= → { , , ,...}Y A B C=theo tính mở rộng trái thu hẹp phải:
|F X A= → nên theo định nghĩa X+ ta có A X +∈|F X B→ ê th đị h hĩ X+ t ó B X +∈|F X B= → nên theo định nghĩa X+ ta có B X∈|F X C= → nên theo định nghĩa X+ ta có C X +∈
Vậ { }A C +
- 24 -
Vậy { , , ,...}A B C Y X += ⊂
Hệ tiên đề Armstrong
Bổ đề 2.1Giả sử , nếu gọi X+ là tập các thuộctí h A ủ R à thì ới i tậ
X R⊆|F X A→tính A của R mà , thì với mọi tập
ề
|F X A= →, |Y R F X Y Y X +⊆ = → ⇔ ⊆
Chứng minh chiều ngịch. Theo định nghĩa tập X+ thì mọi
ta cóY X +⊂ A Y∈
|F X A= →ta có Vậy theo tính chất cộng đầy đủ ta có
|F X A= →
|F X Y= →|F X Y→
- 25 -
Hệ tiên đề Armstrong
Định lý 2.1: Cho tập PTH F và một PTH f trên R,khi đó ta có
| if and only if |F f F f− =
Chứng minhGiả sử có , ta cần chứng minh|F X Y= → |F X Y− →Giả sử có , ta cần chứng minhTheo bổ đề ta có . Để chứng minh ta lấy một quan hệ R tùy ý thỏa mãn tất cả các PTH ủ F à hải hứ i h R hỏ
|F X Y→ |F X Y→Y X +⊆ |F X Y− →
X Ycủa F và ta phải chứng minh R thỏa mãnTa lấy thực thể bất kỳ t, t’ của R mà t[X]=t’[X], ta phảichứng tỏ t[Y]=t’[Y] do nên t[Y]=t’[Y] (đpcm)
X Y→
Y X +⊆
- 26 -
chứng tỏ t[Y] t [Y], do nên t[Y] t [Y] (đpcm)Y X⊆
Hệ tiên đề Armstrong
Giả sử có , chứng minh , hay chỉ cần chứng minh
|F X Y− → |F X Y= →Y X +⊆
Nhận xét: Nếu thì'X X +⊆ ( ')X X+ +⊆
- 27 -
Hệ tiên đề Armstrong
Ta thấy R thỏa mãn tất cả các phụ thuộc hàm củaF. Vì lấy một fd PQ của F thì R phải thỏa PQ.
T ờ h 1 P khô là tậ ủ X R+- Trường hợp 1: P không là tập con củathỏa PQ vì t[P] = t’[P] thì
- Trường hợp 2:
X R+ ' & [ ] '[ ]t t t Q t Q≡ =
P X P X+ + +⊆ ⊆Trường hợp 2: • Nếu• Nếu , ta có giả thiết t=t1 và t’=t2. Do PQ
thuộc F nên hay t[Q]=t’[Q]
P X P X⊆ ⊆' [ ] '[ ]t t t Q t Q≡ → ='t t≠
Q P+⊆thuộc F nên hay t[Q] t [Q]• Vậy, trong mọi trường hợp R thỏa các phụ thuộc
hàm của F.• Do giả thiết mà R thỏa tất cả các fds
Q P⊆
|F X Y→• Do giả thiết , mà R thỏa tất cả các fdscủa F, R cũng thỏa fd XY\
• Do t1[X]=t2[X] nên t1[Y]=t2[Y] suy ra
|F X Y− →
'Y X⊆
- 28 -
Kết luận: Hai phương pháp suy dẫn là tươngđương nhau.
Bao đóng F+ của tập PTH F
Tập PTH f được suy dẫn từ F được gọi là baođóng của tập PTH F, ký hiệu F+Ví dVí dụ
R={A,B,C,D}F={AB, BC, AD, BD}F {AB, BC, AD, BD}F+={AB, BC, AC, AD, BD. ABD,ABCD, ABC, ACD, BCD}
Các tính chất của F+- Tính phản xạ F F⊆ +Tính phản xạ- Tính đơn điệu- Tính lũy đẳng
F F⊆ +F G F G⊆ + ⊆ +F F+ + = +
- 29 -
Thuật toán tím bao đóng của tập PTH
“Áp dụng hệ tiên đề Armstrong cho đến khi khôngtìm ra thêm phụ thuộc hàm mới”p
- 30 -
A1-Tính phản xạXX, hay tổng quát hơn nếu thì XY
A2 Tí h ở ô h i ếY X⊂
A2- Tính mở rông hai vếXY thì XZYZ (mở rộng hai vế Z)
A3-Tính bắc cầuA3 Tính bắc cầuXY và Y Z thì XZ
A4-Tính tựa bắc cầuXY à YZW thì XZWXY và YZW thì XZW
A5- Tính mở rộng trái, thu hẹp phảiXY thì XZY-WXY thì XZY W
A6 – Tính cộng đầy đủXY và ZW thì XZYW
A7 – Tính tính lũyXY và YZW thì XYZW
Ví dụ
and…?
- 32 -
Bao đóng X+ của tập thuộc tính
Định nghĩa:Cho lược đồ quan hệ R={A1,…,An}. Giả sử F làtậ PTH t ê R X là tậ ủ tậ th ộ tí h Rtập PTH trên R. X là tập con của tập thuộc tính R.Bao đóng X đối với F, ký hiệu X+(X+
F để chỉ baođóng lấy theo tập F) là tập thuộc tính A của R màđóng lấy theo tập F) là tập thuộc tính A của R màXA được suy dẫn từ tập F.
{A:A R và }X X A F+ += ∈ → ∈
Ví dụ:
{ }
{ }R A B C D E G=Ví dụ: { , , , , , }R A B C D E G={ , , , }F A C A EG B D G E= → → → →{ }X A B= { }Y C D G=
- 33 -
{ , }X A B= { , , }Y C D G={ , , , , , }X A B C D E G+ = { , , , }Y C D E G+ =
Bao đóng X+ của tập thuộc tính
Định nghĩa khác:Cho lược đồ quan hệ R={A1,…,An}. Giả sử F làtậ PTH t ê R X là tậ ủ tậ th ộ tí h Rtập PTH trên R. X là tập con của tập thuộc tính R.Bao đóng X đối với F, ký hiệu X+(X+
F để chỉ baođóng lấy theo tập F) làđóng lấy theo tập F) là- Tập thuộc tính {B1, B2, …, Bm} mà ở đó với1<=i<=m phụ thuộc hàm A1….AnBi được suydẫ từ Fdẫn từ F.- Tập phụ thuộc hàm đôi khi còn được định nghĩalà {A1 A }+là {A1,…,An}
Ví dụ bao đóng của tập thuộc tính
{ , , , , , }R A B C D E F=
{ , , , }FDs AB C BC AD D E CF B= → → → →
{ , }X A B= { , }
{ , , , , }X A B C D E+ =
Tính chất của bao đóng X+
1. Tính phản xạ
2 Tính đơn điệu
X X +⊆
X Y X Y+ +⊆ ⊆2. Tính đơn điệu
3. Tính lũy đẳng
X Y X Y⊆ ⊆
X X++ +=
4. Bao đóng tổng chứa tổng các bao đón
5.
( )X Y XY+ + +∈
( ) ( ) ( ) ( )X Y XY X Y XY+ + + + + + + += = =
6.
7
( ) ( ) ( ) ( )
X Y Y X +→ ⊆
X Y Y X+ +7.
8.
X Y Y X+ +→ ⊆
&X X X X+ +→ →9.
- 36 -
&X X X Y Y X+ += ⇔ → →
Thuật toán tìm bao đóng X+
Bài toán thành viên:Vấn đề được đưa ra ở đây là: Cho trước một tậpPTH F ó h khô ột khẳ đị h f F +PTH F có hay không một khẳng địnhĐể giải quyết bài toán này người ta sử dụng tínhchất 6 của tập bao đóng hay bổ đề 2.1:
f F +∈
chất 6 của tập bao đóng hay bổ đề 2.1:
Do vậy, chỉ cần tìm được X+ ta sẽ giải quyết đượcbài t á XY ó th ộ F+
X Y F Y X+ +→ ∈ ⇔ ⊂
bài toán XY có thuộc F+
- 37 -
Thuật toán tìm bao đóng X+
Thuật toán tìm bao đóng X+Thuật toán của Beeri và BernsteinCh R {A1 A } F là tậ PTH t ê R X là tậCho R={A1,…,An}. F là tập PTH trên R. X là tậpthuộc tính.Ta xây dựng tập X0,…,Xk như sau:Ta xây dựng tập X ,…,X như sau:
0
( 1) : {A:A và A F }i i i i i i
X XX X Z Z X X+ +
=∉ → ∈
Tập X0,…,Xk là tập tăng dần và tập R là hữu hạnnên sau một số hữu hạn bước thuật toán phải kết
( ) : {A:A và A F }X X Z Z X X= = ∉ → ∈
nên sau một số hữu hạn bước thuật toán phải kếtthúc và tồn tại k mà ở đóKết quả:
1 ...k kX X += =kX X+ =
- 38 -
Thuật toán tìm bao đóng X+
Input: Lược đồ quan hệ RTập PTH F, tập thuộc tính X
O t t Tậ X+Output: Tập X+
BeginBeginY:=X;Repeat
For each A in R doIf then
Z = Ο
( & )A Y Y A F +∉ → ∈ Z Z A= ∪If then
Until+
Z = Ο:Y Y Z= ∪
( & )A Y Y A F∉ → ∈ Z Z A= ∪
End - 39 -
X Y+ =
Ví dụ
R={A,B,C,D,E,G}Cho tập PTH
F {ABC CA BCD ACDB DEGF={ABC, CA, BCD, ACDB, DEG,BEC, CGDB, CEAG}
0 0
{ , }{ , }, { , }( )
X B DX B D Z E G D EG
== = →
1 1
2 2
{ , }, { , }( ){ , , , }, { }( ){ } { }( )
X B D E G Z C BE CX B C D E G Z A C A
= = →= = →
3 3
3
{ , , , , }, { }( ){ , , , , , },
X B C D E G Z A C AX A B C D E G Z
= = →= = Ο
- 40 -
3X X+ =
Chứng minh tính đúng đắn của t. toán
Chứng minh &k kX X X X+ +⊂ ⊂
. ka X X+ ⊂Thật vậy, lấy . Như trên ta thấy
vớiA X +∈ X XZ+ =
{ : and }Z A A X X A F += ∉ → ∈
Nếu thì vì
{ }
A X∈ kA X∈ kX X⊂
ế ồiZNếu thì theo định nghĩa các tập , tồn tạimột chỉ số i để , vậy
A Z∈ iZiA Z∈ k kA X X X+∈ ⊂
k. kb X X +⊂0 1 ... k k kX X X X X X X +→ → → → ⊂
- 41 -
Tại sao tìm bao đóng
Chứng minh sự đúng đắn của các quy tắc sửdụng trong suy diễn phụ thuộc hàmKiể t ột PTH hà ới đ diễKiểm tra xem một PTH hàm mới được suy diễn
từ một tập của PTH S.Tìm khóa.Tìm khóa.
Bao đóng PTH VS. bao đóng thuộc tính
Bài tập về phụ thuộc hàm và bao đóng
1. Cho lược đồ quan hệ <R,F>R= {A, B, C, D, E, I} vàF {BCDE BEC BIA CEI}F = {BCDE, BEC, BIA, CEI}a. Chứng minh F|-BCIb. Chứng minh F|=BCIb. Chứng minh F| BCIc. Tìm bao đóng của BC, BE, BI, CEd. Chứng minh BC A F +→ ∈
2. Cho F={ABE, AGI, EG, GIH}Chứng minh rằng AB GH F +→ ∈Chứng minh rằng AB GH F→ ∈
- 44 -X Y F Y X+ +→ ∈ ⇔ ⊂Gợi ý: Sử dụng tính chất sau
Bài tập về phụ thuộc hàm và bao đóng
3. Cho F={ABC, BD, CDE, CEGH, GA}a. Chứng minhb Chứ i h
AB E F +→ ∈A G +b. Chứng minh AB G F +→ ∈
4. Cho F={XYW, YZ, WZP, WPQR, QX}Chứng minh rằng XY P F +→ ∈Chứng minh rằng XY P F→ ∈
- 45 -X Y F Y X+ +→ ∈ ⇔ ⊂Gợi ý: Sử dụng tính chất sau
Bài tập
5. Cho bảng quan hệ r như sau
A B C DA B C Dx u x yy x z xy x z xz y y yy z w z
T á PTH PTH à khô thỏ ãTrong các PTH sau, PTH nào không thỏa mãn rAB, AC, BA, CD, DC, DA
- 46 -
Do đâu có phụ thuộc hàm?
“Tính khóa (duy nhất)” của các thuộc tính.
Các ràng buộc trên miền giá trị và ràng buộc ứngCác ràng buộc trên miền giá trị và ràng buộc ứngdụng.
ếCác ràng buộc của thế giới thực
Phụ thuộc hàm giúp chúng ta định nghĩa “khóa”
- 48 -
Khóa của sơ đồ quan hệ
Trong lược đồ quan hệ, một số thuộc tính đóngvai trò quan trọng, và từ các thuộc tính này có thểá đị h á th ộ tí h kháxác định các thuộc tính khác.
Khái niệm sơ đồ quan hệệ q ệCho lược đồ quan hệ R={A1,A2,…,An}, F là tậpcác phụ thuộc hàm trên R. Sơ đồ quan hệ là cặpR F h t ê ký hiệ SĐQH là W <R F>R, F như trên, ký hiệu SĐQH là W=<R,F>
Sơ đồ quan hệ là một lược đồ quan hệ và tậpq ệ ộ ợ q ệ ậpphụ thuộc hàm trên nó.
- 49 -
Định nghĩa khóa SĐQH
được gọi là khóa tối thiểu của SĐQH trên W nếu k là tập tối thiểu kéo theo R, tức là k là khóa tốithiể ế à ế bớt khỏi k dù ột
k R⊂
( )k R k R+thiểu nếu: và nếu bớt khỏi k dù mộtphần tử thì bao đóng của tập còn lại khác R.
i là khó tối thiể ế thỏ ã
( )k R k R+ = →
k R gọi là khóa tối thiểu nếu thỏa mãnk R⊂
1.k R+ =
Những thuộc tính thuộc khóa gọi là thuộc tính2.( ) for k A R A k+− ≠ ∀ ∈
g gkhóa, những thuộc tính không thuộc khóa gọi làthuộc tính không khóa (thuộc tính thứ cấp)
- 50 -
X là siêu khóa nếu X thỏa mãn điều kiện 1.
Định lý 2.4
a. Nếu k là khóa của sơ đồ quan hệ W = <R,F>, r làquan hệ trên R thì với mọi cặp phần tử khác nhaut1 t2 ủ t l ô ó t k t k≠t1, t2 của r ta luôn có
b. Ngược lại nếu k là tập tối thiểu và với mọi quan hệ r
1 2. .t k t k≠
b. Ngược lại nếu k là tập tối thiểu và với mọi quan hệ r trên R mà mọi cặp t1, t2 của r mà thì k làkhóa của sơ đồ quan hệ W=<R,F>
1 2. .t k t k≠
- 51 -
Thuật toán tìm khóa
Do bao đóng của k là R nên ban đầu ta coi k=R.
Ta loại trừ dần các phần tử và kiểm tra xem k+=RTa loại trừ dần các phần tử và kiểm tra xem k+=R
Input: W = <R,F>
Output: k – khóa của W
ậ áThuật toán Bước 1: Đặt k=R Bước 2: Lặp quá trình loại khỏi k phần tử A Bước 2: Lặp quá trình loại khỏi k phần tử A
mà (k-A)+=R
- 52 -
Thuật toán tìm khóa
Mô tả thuật toán bằng ngôn ngữ tựa Pascal
BeginBegink=Rfor each A in k do
if (k-A)+=R then k=k-AEnd
Thuật toán sẽ tìm được một khóa k cho R
Nếu muốn tìm được khóa khác, ta có thể thay
đổi thứ tự loại trừ các phần tử A ra khỏi k.
- 53 -
đổi thứ tự loại trừ các phần tử A ra khỏi k.
Các tính chất của khóa
1. Các thuộc tính không xuất hiện trong cả hai vếtrái hoặc phải của tập F phải có trong mọi khóa k.
2 Cá th ộ tí h hỉ ất hiệ bê t ái ủ á PTH2. Các thuộc tính chỉ xuất hiện bên trái của các PTHtrong F cũng phải thuộc mọi khóa k.
3. Những thuộc tính xuất hiện, và chỉ xuất hiện bên3. Những thuộc tính xuất hiện, và chỉ xuất hiện bênvế phải của tập PTH sẽ không thuộc bất kỳ khóanào.
4 Th ật t á khẳ đị h i SĐQH W đề ó4. Thuật toán khẳng định mọi SĐQH W đều cókhóa, tuy nhiên thuật toán không khẳng định cóbao nhiêu khóa và số lược các phần tử trongbao nhiêu khóa và số lược các phần tử trongkhóa có như nhau hay không.
5. Họ tất cả các khóa của một SĐQH W là hệSperner (tức là không có hai khóa bao nhau).
- 54 -
Thuật toán tìm mọi khóa
Ý tưởng
Cho W=<R F>Cho W=<R,F>
1. Tìm tất cả các tập con khác rỗng của R
2. Loại tập con có bao đóng khác R.
3. Tạo tập con bao tập con khácạ ập ập
4. Những tập còn lại là khóa của W.
- 55 -
Thuật toán tìm mọi khóa
Cho W=<R,F>R={A,B,C}, F={AB, AC, BA, BC, ACB}
Bao đóng Tập con cóbao đóngbằng R
Khóa
bằng RA ABC A AB ABC B BC CAB ABC ABAC ABC ACBC ABC BCABC ABC ABC
- 56 -
Thuật toán tìm mọi khóa
Một số cải tiến*Theo tính chất của khóa, chúng ta sẽ có một số
thuộc tính luôn thuộc khóa. Trong thuật toán
tìm khóa sẽ không xét nó và thêm vào khóatìm khóa sẽ không xét nó và thêm vào khóa
* Một số thuộc tính không thuộc khóa nào cả. Ta
loại bỏ nó trong quá trình tìm kiếm khóa.
- 57 -
Thuật toán tìm mọi khóa
Cho W = <R,F>, R={A,B,C,D,E,H}F = {AB, AC, BA, BC, ACB, EC,CH BH}CH, BH}• Chắc chắn D, E tham gia mọi khóa• H sẽ không tham gia vào khóa nàoH sẽ không tham gia vào khóa nào
Thuật toán tìm khóa: sẽ không cố gắng loại trừ D,E ra khỏi tập. Tập khởi tạo ban đầu có thể làE ra khỏi tập. Tập khởi tạo ban đầu có thể làK=R\{H}
Th ật t á tì i khó Thê ột ột ới l ôThuật toán tìm mọi khóa: Thêm một cột mới luônchứa D, E. Trong các tập con của thuộc tính cònlại không xem xét đến H.
- 58 -
ạ ô g e ét đế
Thuật toán
Bao đóng Siêu khóa KhóaDE DEHCDE A DEHABC DEA DEADE A DEHABC DEA DEADE B DEHABC DEB DEBDE C DEHCDE AB DEHABC DEABDE AB DEHABC DEABDE AC DEHABC DEACDE BC DEHABC DEBCDE ABC DEHABC DEABC
- 59 -
Tìm khóa từ mô hình ER
Tìm khóa từ mô hình ER
Tìm khóa từ mô hình ER
Bài tập
Các bài tập trong chương 2
- 63 -
Các dạng chuẩn
Mỗi dạng chuẩn là một tập các điều kiện trênlược đồ nhằm đảm bảo các tính chất của nó (liên
tới d thừ à bất th ờ t ậ hật)quan tới dư thừa và bất thường trong cập nhật)
Chuẩn hóa dữ liệu: quá trình phân tích lược đồChuẩn hóa dữ liệu: quá trình phân tích lược đồquan hệ dựa trên FD và các khóa chính để đạtđược:
ể• Cực tiểu sự dư thừa• Cực tiểu các phép cập nhật bất thường
- 64 -
Các dạng chuẩn
Thủ tục chuẩn hóa cung cấp:• Một cơ cấu hình thức để phân tích các lược
đồ hệ d t ê á khó ủ ó à áđồ quan hệ dựa trên các khóa của nó và cácphụ thuộc hàm giữa các thuộc tính của nó
• Một loạt các kiểm tra dạng chuẩn có thểMột loạt các kiểm tra dạng chuẩn có thểthực hiện trên các lược đồ quan hệ riêng rẽsao cho CSDL có thể được chuẩn hóa đếnột ứ ầ thiếtmột mức cần thiết.
Tính chất• Nối không mất mát (hoặc nối không phụNối không mất mát (hoặc nối không phụ
thêm)• Bảo toàn sự phụ thuộc: Nó bảo đảm rằng
ể- 65 -
từng phụ thuộc hàm sẽ được biểu hiện trongcác quan hệ riêng rẽ nhận được sau khi tách.
Phân loại các dạng chuẩn
Codd đề nghị 3 dạng• 1NF (first normal form): tương đương với định
hĩ ủ l đồ hệ ( hệ à bộ)nghĩa của lược đồ quan hệ (quan hệ và bộ)• 2NF: không có giá trị trong thực tiễn• 3NFBCNF: thường được sử dụng nhiều3NFBCNF: thường được sử dụng nhiều
nhất (BCNF do Boyce và Codd đề xuất)
4NF, 5NF do tính đa trị và phụ thuộc hàm nối
- 66 -
Dạng chuẩn 1
Định nghĩa: 1NF nếu miền giá trị của một thuộctính chỉ chứa giá trị nguyên tử (đơn, không phânhi đ ) à iá t ị ủ ỗi th ộ tí h ũ làchia được) và giá trị của mỗi thuộc tính cũng là
một giá trị đơn lấy từ miền giá trị của nó.
Trong 1NF• Không có thuộc tính lặp lại
Không có th ộc tính đa trị• Không có thuộc tính đa trị
Ví dụ: PHONGBAN(MaPHG, TenPHG, DDIEM) Không phải 1NF
PHONGBAN(M PHG T PHD) DDIEM PHG(M PHG DDIEM)
- 67 -
PHONGBAN(MaPHG, TenPHD) DDIEM_PHG(MaPHG, DDIEM)
Là 1NF
Dạng chuẩn 1
Vẫn còn vấn đề tồn tại trong 1NF
Xét lược đồ: DDIEM_PHG(MaPHG, DDIEM)
MAPHG DIADIEM1 TPHCMVẫn bị lặp lại
4 HANOI5 VUNGTAU5 NHATRANG
Ẩn chứa các phụ thuộchàm bộ phận
5 TP HCM
- 68 -
Ví dụ 1NF
Không phải 1NF
Là 1NFLà 1NF
Vẫn còn vấn đề tồn tại trong 1NFVẫn còn vấn đề tồn tại trong 1NF
Dạng chuẩn 2
Phụ thuộc hàm đầy đủ: Một phụ thuộc hàm XYlà một phụ thuộc hàm đầy đủ nếu loại bỏ bất kỳth ộ tí h A à đó khỏi X thì h th ộ hàthuộc tính A nào đó ra khỏi X thì phụ thuộc hàmđó không còn đúng nữa.
( { } )A A X X A Y∀
Phụ thuộc hàm bộ phận: Một phụ thuộc hàmế ể ỏ
, , ( { } )A A X X A Y∀ ∈ − → là sai
XY là phụ thuộc hàm bộ phận nếu có thể bỏmột thuộc tính ra khỏi X phụ thuộc hàmvẫn đúng điều đó có nghĩa là
A X∈vẫn đúng, điều đó có nghĩa là
, ( { })A X X A Y∃ ∈ − →
- 70 -
Dạng chuẩn 2
2NF• Thỏa mãn 1NF
Ph th ộ hà đầ đủ à khó hí h• Phụ thuộc hàm đầy đủ vào khóa chính
Với các quan hệ có thuộc tính khóa đơn thìkhô hải étkhông phải xét
Chỉ kiểm tra các lược đồ có chứa phụ thuộc hàmbộ phận
- 71 -
Ví dụ Dạng chuẩn 2Phụ thuộc vào cả 2 MaNV, MaDA
NV_DA (MaNV, MaDA, Sogio, TenDA, DDiemDA)
Chỉ phụ thuộc vào MaDA
- 72 -
Ví dụ Dạng chuẩn 2Phụ thuộc vào cả 2 MaNV, MaDA
NV_DA (MaNV, MaDA, Sogio, TenDA, DDiemDA)
Chỉ phụ thuộc vào MaDA
NV_DA (MaNV, MaDA, Sogio)
- 73 -
DUAN (MaDA, TenDA, DDiemDA)
Dạng chuẩn 3
3NF dựa trên khái niệm phụ thuộc bắc cầu.
Định nghĩa: Một lược đồ quan hệ R là ở dạng3NF nếu nó thỏa mãn (theo Codd)( )• Thỏa mãn 2NF• Không có thuộc tính không khóa nào của R là
phụ thuộc bắc cầu vào khóa chínhphụ thuộc bắc cầu vào khóa chính.
- 75 -
Dạng chuẩn 3Ph th ộ à M NVPhụ thuộc vào MaNV
NV_DV (MaNV, TenNV, NS, DCHI, MaDV, TenDV, TruongPHG)
Phụ thuộc vào MaDV
Tất cả các thuộc tính phải phụ thuộc vào thuộctính khóa
Một ài th ộ tí h h th ộ à th ộ tí h• Một vài thuộc tính phụ thuộc vào thuộc tínhkhông phải là khóa
• Để chuẩn hóa Tách nhóm các thuộc tính
- 76 -
Để chuẩn hóa Tách nhóm các thuộc tínhđó thành quan hệ mới
Dạng chuẩn 3Ph th ộ à M NVPhụ thuộc vào MaNV
NV_DV (MaNV, TenNV, NS, DCHI, MaDV, TenDV, TruongPHG)
Phụ thuộc vào MaDV
NHANVIEN (MaNV, TenNV, NS, DCHI, MaDV)
DONVI (MaDV, TenDV, TruongPHG)
- 77 -
Tóm tắt dạng chuẩn 1-3NF Nhậ biết Cá h h ẩ hóNF Nhận biết Cách chuẩn hóa1 Quan hệ có
thuộc tính đa trịhoặc quan hệ
Loại bỏ các thuộc tính vi phạm dạng chuẩn 1 và đặt chúngvào một bảng riêng cùng với khóa chính của quan hệ ban đầu Khóa chính của bảng này là một tổ hợp của khóa chínhhoặc quan hệ
lặpđầu. Khóa chính của bảng này là một tổ hợp của khóa chínhcủa quan hệ ban đầu và thuộc tính đa trị hoặc khóa bộ phậncủa nhóm lặp. Các thuộc tính còn lại lập thành một quan hệvới khóa chính là khóa chính ban đầu
2 Phụ thuộc 1 phần vào thuộctính khóa
Loại bỏ các thuộc tính không khóa phụ thuộc vào một bộphận khóa chính và tách rành ra một bảng riêng, khóa chínhcủa bảng này là bộ phận khóa mà chúng phụ thuộc vào. Cácth ộ tí h ò l i lậ thà h ột hệ khó hí h ủ óthuộc tính còn lại lập thành một quan hệ, khóa chính của nólà khóa chính ban đầu
3 Phụ thuộc ẩn, Loại bỏ các thuộc tính phụ thuộc bắc cầu ra khỏi quan hệ vàtồn tại phụthuộc hàm giữacác thuộc tínhkhông phải là
tách chúng thành một quan hệ riêng có khóa chính là thuộctính bắc cầu. Các thuộc tính còn lại lập thành một quan hệ cókhóa chính là quan hệ ban đầu.
- 78 -
không phải làkhóa
Các bước chuẩn hóa – Đưa về dạng 1
Tách các thuộc tính lặp
Nhóm các thuộc tính đơn còn lại thành một quanNhóm các thuộc tính đơn còn lại thành một quan
hệ. Chọn khóa cho nó.
Nhóm các thuộc tính lặp tách ra, tăng thêm khóa
của quan hệ trên tạo thành một quan hệ (hay mộtq ệ ạ ộ q ệ ( y ộ
số quan hệ theo chủ đề). Chọn khóa cho quan hệ
này thường là khóa bội trong đó khóa của quannày, thường là khóa bội, trong đó khóa của quan
hệ trên là một thành phần.
Các quan hệ lập được đều là 1NF- 79 -
Các bước chuẩn hóa – Đưa về dạng 2
Tách các nhóm thuộc tính phụ thuộc hàm một
phần của khóaphần của khóa
Nhóm còn lại tạo thành quan hệ với khóa là khóa
của quan hệ ban đầu
Mỗi nhóm tách ra (gồm các thuộc tính cùng phụ(g ộ g p ụ
thuộc hàm vào bộ phận của khóa) tăng thêm các
thuộc tính mà chúng phụ thuộc tạo thành mộtthuộc tính mà chúng phụ thuộc tạo thành một
quan hệ. Khóa là các thuộc tính tăng thêm này.
Các quan hệ lập được đều là 2NF- 80 -
Các bước chuẩn hóa – Đưa về dạng 3
Tách các nhóm thuộc tính phụ thuộc vào một haymột số thuộc tính ngoài khóa.Nhó ò l i t thà h hệ ới khó là khóNhóm còn lại tạo thành quan hệ với khóa là khóa
của quan hệ ban đầuMỗi nhóm tách ra (gồm các thuộc tính cùng phụMỗi nhóm tách ra (gồm các thuộc tính cùng phụ
thuộc vào một hay một số thuộc tính ngoài khóa)tăng thêm các thuộc tính mà chúng phụ thuộc tạothà h ột hệ Khó là á th ộ tí h tăthành một quan hệ. Khóa là các thuộc tính tăngthêm này. Các quan hệ lập được đều là 3NF Các quan hệ lập được đều là 3NF
- 81 -
Ví dụ kiểm tra dạng chuẩn
Ví dụ 1: Cho sơ đồ quan hệ W như sau:W = <U=CTRHSG; F={CT, HRC, HTR,CSG HSR}CSG, HSR}>
C – giáo trình (curriculumn)C giáo trình (curriculumn)T – Giáo viên (Teacher)R – phòng học (Room)H Giờ (H )H – Giờ (Hour)S – Sinh viên (Student)G – Lớp (Grade)G Lớp (Grade)
- 82 -
Các ràng buộc PTH
CT: Mỗi giáo trình chỉ có một thầy dạy HR C: chỉ một môn học ở một phòng học tại
ột thời điểmột thời điểm. HTR: Tại mỗi thời điểm, mỗi giáo viên chỉ có
thể dạy ở một phòng họcthể dạy ở một phòng họcCS G: Mỗi sinh viên chỉ ở một lớp học theo mỗi
giáo trìnhHSR Mỗi i h iê hỉ ó thể ở ột hò hHSR: Mỗi sinh viên chỉ có thể ở một phòng học
tại một thời điểm. Yêu cầu: Kiểm tra W có ở dạng chuẩn 3NF hay Yêu cầu: Kiểm tra W có ở dạng chuẩn 3NF hay
không? Nếu không W ở dạng chuẩn nào?
- 83 -
Ví dụ kiểm tra dạng chuẩn
Xác định tập K các khóa của W và tập N cácthuộc tính không khóa.
Nhận xét: Thuộc tính HS tham gia khóa vì chúngkhông xuất hiện ở vế phải. Kiểm tra HS có phải làgkhóa không
HS+=HSRCTG=U
Ta có khóa K={HS} là duy nhất, N={RCTG} là cácthuộc tính không khóathuộc tính không khóa- R là thuộc tính không khóa: HSHTR- Như vậy R phụ thuộc bắc cầu vào khóa HS
ầ- 84 -
thông qua cầu HT. Suy ra W không ở dạngchuẩn 3NF.
Ví dụ kiểm tra dạng chuẩn
Kiểm tra N=RCTG có phụ thuộc đầy đủ vào HShay không?
::
H C H H C HS C S S C S
+ +
+ +
→ = ⊄
→ = ⊄
Vậy C phụ thuộc đầy đủ vào HS.Tương tự với RTG
Kết luận: W ở dạng chuẩn 2NF.
g ự
- 85 -
Ví dụ khác
Ví dụ 2: Cho lược đồ W =<R={MaSV, TenSV, MaMT, DiemThi};
F {M SVT SV M SV M MTDi thi}F={MaSVTenSV; MaSV,MaMTDiemthi}>Kiểm tra W có ở dạng chuẩn 3NF không?Kiểm tra W có ở dạng chuẩn 3NF không?
Ví dụ 3: Cho lược đồ quan hệC { C C }W = <R=ABC; F={ABC; BCA}>
Hỏi W có ở dạng chuẩn 3NF hay không?
- 86 -
Dạng chuẩn Boyce-Codd
Một lược đồ quan hệ R được gọi là ở dạng chuẩnBoyce-Codd (BCNF) nếu nó
Thỏ ã d h ẩ 3NF- Thỏa mãn dạng chuẩn 3NF- Không có các thuộc tính khóa phục thuộc
hàm vào thuộc tính không khóahàm vào thuộc tính không khóa
Ví dụ
- 87 -
Dạng chuẩn Boyce-Codd
Ví dụ:R (A1, A2, A3, A4, A5)Với á h th ộ hàVới các phụ thuộc hàm
- A1, A2 A3, A4, A5- A4 A2A4 A2
- 88 -
Dạng chuẩn Boyce-Codd
Nếu một lược đồ quan hệ không thỏa mãn điềukiện BCNF, thủ tục chuẩn hóa bao gồm
L i bỏ á th ộ tí h khó h th ộ hà- Loại bỏ các thuộc tính khóa phụ thuộc hàmvào thuộc tính không khóa ra khỏi quan hệ.
- Tách chúng thành một quan hệ riêng có khóaTách chúng thành một quan hệ riêng có khóachính là thuộc tính không khóa gây ra phụthuộc.
Ví dụ:R (A1, A2, A3, A4, A5)Với á h th ộ hàVới các phụ thuộc hàm
- A1, A2 A3, A4, A5- A4 A2
- 89 -
A4 A2Lược đồ được tách ra như sau:
- R1(A4, A2) - R2 (A1, A4, A3, A5)
Ví dụ về chuẩn hóa quan hệ
Cho lược đồ quan hệ ở dạng chuẩn 1,R = {A, B, C, D, E, F, G,H, I, J} có khóa chính là A, BVới tậ á PTHVới tập các PTH
A, B C, D, E, F, G, H, I, JA, B C, D, E, F, G, H, I, JA E, F, G, H, I, JF I, JD BD B
Do có phụ thuộc hàm A E, F, G, H, I, J mà A là mộtbộ phận của khóa chính nên quan hệ R vi phạmbộ phận của khóa chính nên quan hệ R vi phạm2NF.
- 90 -
Ví dụ về chuẩn hóa quan hệ
Ta tách R thành R1 (A, E, F, G, H, I, J) vàR2(A, B, C, D)T R1 d ó h th ộ hà FI J ê t óTrong R1, do có phụ thuộc hàm FI, J nên ta cóI, J phụ thuộc hàm bắc cầu vào khóa chính.R1 là quan hệ vi phạm 3NFR1 là quan hệ vi phạm 3NFTrong R2 ta có PTH DB trong đó B là một thuộctính khóa, R2 vi phạm BCNF
Tách R1 và R2 ta cóR11 (F I J)R11 (F, I, J)R12 (A, E, F, G, H)R21 (D, B)
- 91 -
R22 (A, D, C)
Tách kết nối không mất thông tin
Định nghĩa: Cho lược đồ quan hệ R = {A1, A2,A3,…,An}, R1, R2,…,Rn là các tập con của R vàhú là ột hé tá h ủ R tứ làchúng là một phép tách của R, tức là
, F là PTH trên R.1 2 ... kR R R R= ∪ ∪
Ta nói phép tách R thành các lược đồ conp=(R1,R2,…,Rk) không mất thông tin đối với F nếuới i hệ t ê R à F thỏ ã thìvới mọi quan hệ r trên R mà F thỏa mãn thì:
1 2. . ... . kr r R r R r R=
- 92 -
Ví dụ về tách kết nối ko mất t.tin
Cho lược đồ
α=<U={MaSV, TenSV, MaMT, TenMon, Diemthi};{ , , , , };F={MaSVTenSV; MaMTTenMon;
MaSV,MaMTDiemthi}>
Tách lược đồ α thành các lược đồ sau α1 =<U1={MaSV, TenSV}; F1={MaSVTenSV}> α1 U1 {MaSV, TenSV}; F1 {MaSVTenSV} α2 =<U2={MaMT, Tenmon}; F2={MaMTTenmon}> α3 =<U3={MaSV, MaMT, Diemthi};
F {M SV M MTDi hi}F3={MaSV, MaMTDiemthi}>
- 93 -
Ví dụ (cont.)
Lấy quan hệ R là quan hệ KETQUA (MaSV, TenSV,MaMT, Tenmon, Diemthi), khi đó ta có R KETQUA[M SV T SV] SINHVIEN R1=KETQUA[MaSV, TenSV] = SINHVIEN α1 R2=KETQUA[MaMT, Tenmon] = MONTHI α2 R3=KETQUA[MaSV, MaMT, Diemthi]=KQUA α3
∈∈
∈ R3 KETQUA[MaSV, MaMT, Diemthi] KQUA α3
Khi cần ta khôi phục lại thông tin
KETQUA SINHVIEN MONTHI KQUA=
- 94 -
Ví dụ tách (không) tổn thất thông tin
Cho R={X,Y,Z} tập các thuộc tính và Giả sử quan hệ gốc R và các quan hệ tách như
sau
Ta thấy
1 2R R R⊆
- 95 -
Ví dụ tách (không) tổn thất thông tinCho R {X Y Z} tập các th ộc tính àCho R={X,Y,Z} tập các thuộc tính và Giả sử quan hệ gốc R và các quan hệ tách như
sau
Ta thấy 1 2R R R=
Nếu một phép tách không có tính chất nối không mất mátNếu một phép tách không có tính chất nối không mất mátthông tin thì chúng ta có thể nhận được các bộ phụ thêm(các bộ giả) sau khi áp dụng các phép chiếu và nối tựnhiên Nghĩa của từ mất mát ở đây là mất mát thông tin chứ
- 96 -
nhiên. Nghĩa của từ mất mát ở đây là mất mát thông tin chứkhông phải mất các bộ giá trị. Vì vậy với tính chất này tanên gọi chính xác hơn là tính chất nối không phụ thêm.
Kiểm tra tính tách kết nối
Thuật toán Chase Input: Sơ đồ quan hệ R = {A1,A2,…,Ak} là
l đồ hệ F là tậ á PTH hé tá hlược đồ quan hệ. F là tập các PTH; phép táchp={R1,R2,…,Rk}
Output: Khẳng định phép tách kết nối không Output: Khẳng định phép tách kết nối khôngmất thông tin không?
Thuật toán:ảXây dựng bảng
Xây dựng một bảng gồm n cột và m hàng, cộtj tương ứng với thuộc tính Aj hàng i tươngj tương ứng với thuộc tính Aj, hàng i tươngứng với Ri
Ở vị trí hàng i cột j, ta ký hiệu là aj nếu Aj
- 97 -
thuộc Ri, ngược lại ta ký hiệu là bij. Ta có bảng T như sau:
Kiểm tra tính tách kết nối
- 98 -
Kiểm tra tính tách kết nối
Bước lặp: Áp dụng các PTH trong F cho bảng vừaxây dựng Xét hiề lầ ỗi PTH XY th ộ F h đế khi Xét nhiều lần mỗi PTH XY thuộc F cho đến khi
không xét được nữa. Với mỗi PTH XY màtrong bảng có giá trị giống nhau trên tập X thì tatrong bảng có giá trị giống nhau trên tập X thì tacho chúng bằng nhau trên tập Y với lưu ý là nếumột trong 2 ký hiệu là aj thì chọn aj, ngược lạilà bằ hú bằ ột t á ký hiê blàm bằng chúng bằng một trong các ký hiêu bij
Thuật toán dừng khi trong bảng có một dòngtoán là ký tự a hoặc cho đến khi không xét đượctoán là ký tự a hoặc cho đến khi không xét đượcnữa.
Kết luận: Nếu có một dòng toàn a thì phép tách
- 99 -
Kết luận: Nếu có một dòng toàn a thì phép táchkết nối đó không mất thông tin. Ngược lại phéptách có mất thông tin.
Ví dụ
R= {A,B,C,D,E,F}; R1={A,B,D,E}; R2={A,C,D,F};R3={B,C,E,F}; F={AB,FE}
Bước 1: Lập bảng
B ớc 2 Áp d ng AB s ra b aBước 2: Áp dụng AB, suy ra b22=a2
- 100 -
Ví dụ
Bước 3: Áp dụng FE, suy ra b25=a5
ấ Phép tách không làm mất thông tin.
- 101 -
Ví dụ
F= {AB, CD, DEG}R1={A,B,C,D}, R2={D,E,G}
DEG: b15=a5, b16=a6; dòng đầu chứa toàn ai Phép tách không mất thông tin
- 102 -
Ví dụ
Cho lược đồ quan hệ R = {A,B,C,D,E}
Tá h R thà h á l đồTách R thành các lược đồ sau R1 = AD R2 = AB R2 AB R3 = BE R4 = CDE R5 AE R5 = AE
Tập PTH F = {AC, BC, CD, DEC, CEA}Xác định phép tách trên có mất thông tin hayXác định phép tách trên có mất thông tin hay
không?
- 103 -
Lập bảng
F = {AC, BC, CD, DEC, CEA}
A B C D EA B C D E
AD a1 b12 b13 a4 b15
AB a1 a2 b23(b13) b24(a4) b25
BE b31(a1) a2 b33(b13)(a3)
b34(a4) a5
CDE b41 b42 a3 a4 a5CDE b41 b42 a3 a4 a5
AE a1 b52 b53(b13)(a3)
b54(a4) a5
- 104 -
)
dòng 3 chứa toàn ai Phép tách không mất thông tin
Tách quan hệ thành các quan hệ BCNF với tính chất nối không mất thông tintính chất nối không mất thông tin
Input: Lược đồ quan hệ R và tập các PTH F trêncác thuộc tính R
1. Đặt D = {R}2 Khi có một LĐQH Q trong D không phải ở BCNF thực
các thuộc tính R
2. Khi có một LĐQH Q trong D không phải ở BCNF, thựchiện vòng lặp: Với mỗi LDQH Q trong D không ở BCNF hãy tìm
ột PTH XY t Q i h BCNF à th thế Qmột PTH XY trong Q vi phạm BCNF và thay thế Qtrong D bằng hai lược đồ quan hệ (Q-Y) và (XUY).Quá trình lặp dừng khi không còn quan hệ nào trongQuá trình lặp dừng khi không còn quan hệ nào trongD vi phạm BCNF.
Mỗi lần đi vào vòng lặp trong thuật toán trên, chúngta tách một quan hệ Q không phải BCNF thành hai
- 105 -
ta tách một quan hệ Q không phải BCNF thành hailược đồ quan hệ. Kết thúc thuật toán, tất cả cácquan hệ trong D sẽ ở BCNF.
Tách quan hệ thành các quan hệ BCNF với tính chất nối không mất thông tin
Trong bước 2 của thuật toán trên, cần xác định
tính chất nối không mất thông tin
xem một LĐQH Q có ở BCNF hay không. Mộtphương pháp để làm điều đó là kiểm tra. Với mỗiPTH XY trong Q ta tính X+PTH XY trong Q, ta tính X .Nếu X+không chứa tất cả các thuộc tính trong Qthì XY vi phạm BCNF bởi vì X không phải làgmột siêu khóa.
- 106 -
Ví dụXét LĐQH R = {A, B, C, D, E, F}. Với các PTH
ABCDEF, BCADEF, BF, DE, DBL đồ hệ à ó 2 khó là A à BCLược đồ quan hệ này có 2 khóa là A và BC Ta có BF vi phạm BCNF vì B+><R nên B không phải
là siêu khóa.R được tách thành: R1(B,F) với PTH BF,R2(A,B,C,D,E) với các PTH ABCDE, BCADE,DE DBDE, DB.
Xét R2: Do DE vi phạm BCNF (D là thuộc tính khôngkhóa), R2 được tách thành: R21(D,E) với PTH DE,R (ABCD) ới á PTH ABCD BCAD DBR22(ABCD) với các PTH ABCD, BCAD, DB.
Xét R22: Do DB vi phạm BCNF (D không phải làthuộc tính khóa), R22 được tách thành: R221(D,B),
- 107 -
) 22 221( )R222(A,C,D) với PTH ACD (PTH BCAD bị mất)
Tóm lại ta có phép tách D={R1,R2,R221,R222}
Kết luận…Nội dung chính của chương
Phụ thuộc hàm
Hệ diễ A tHệ suy diễn Armstrong
Thuật toán tìm bao đóng
Thuật toán tìm khóa
Các dạng chuẩnCác dạng chuẩn
Kiểm tra tách kết nối có làm mất thông tin?
- 108 -
-------
-- --
-- --
-- --
-- --
- 109 -