I. Một số khái niệm cơ bản
¡ Phép tách lược đồ quan hệ R= {A1, A2, . An}
là việc thay thế lược đồ quan hệ R bằng tập
các lược đồ con {R1, R2, ., Rk}, trong đó
Ri Ì R, i = 1,.,k - Ri là các lược đồ con
(Ri gồm một số thuộc tính từ R)
và R = R1 È R2 È . È Rk
Không đòi hỏi các Ri phải là phân biệt
Mục đích: Loại bỏ các dị thường dữ liệu
52 trang |
Chia sẻ: Thục Anh | Ngày: 12/05/2022 | Lượt xem: 639 | Lượt tải: 0
Bạn đang xem trước 20 trang nội dung tài liệu Bài giảng Lý thuyết cơ sở dữ liệu - Chương 5: Chuẩn hóa cơ sở dữ liệu - Trịnh Thị Xuân, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
CHƯƠNG V:
CHUẨN HÓA CSDL
Data normalization
Cơ sở dữ liệu 3
I. Một số khái niệm cơ bản
¡ Phép tách lược đồ quan hệ R= {A1, A2, .. An}
là việc thay thế lược đồ quan hệ R bằng tập
các lược đồ con {R1, R2, .., Rk}, trong đó
Ri Ì R, i = 1,..,k - Ri là các lược đồ con
(Ri gồm một số thuộc tính từ R)
và R = R1 È R2 È ... È Rk
Không đòi hỏi các Ri phải là phân biệt
Mục đích: Loại bỏ các dị thường dữ liệu
Cơ sở dữ liệu 4
Ví dụ
MSKH TÊNKH TP PVC MSMH TÊNMH ĐG SL
S1
S1
S1
S2
S2
S3
S4
An
An
An
Hòa
Hoà
Thanh
Trang
HCM
HCM
HCM
HN
HN
NT
NT
01
01
01
02
02
03
03
P1
P2
P3
P1
P3
P2
P2
Táo
Cam
Chanh
Táo
Chanh
Cam
Cam
650
500
450
650
450
500
500
300
200
400
100
300
200
210
MSKH TÊNKH TP
S1
S2
S3
S4
An
Hoà
Bình
Trang
HCM
HN
NT
NT
TP PVC
HCM
HN
NT
01
02
03MSMH TÊNMH ĐG
P1
P2
P3
Táo
Cam
Chanh
650
500
450
MSKH MSMH SL
S1
S1
S1
S2
S2
S3
S4
P1
P2
P3
P1
P3
P2
P2
300
200
400
100
300
200
210
Phép tách-Kết nối không mất mát thông tin
¡ Nói rằng phép tách R thành các lược đồ con R1,
R2, , Rk là phép tách - kết nối không mất
mát thông tin đối với F nếu với mỗi quan hệ r
trên R thoả F thì
r = PR1(r) * P R2 (r) * ... * P Rk(r)
tức là r được tạo nên từ phép kết nối tự nhiên
của các hình chiếu của nó trên các Ri, i= 1..,k
Cơ sở dữ liệu 5
Phụ thuộc hàm đầy đủ
¡ Cho lược đồ quan hệ (U,F) và tập X, YÍU.
¡ PTH X ® Y được gọi là PTH đầy đủ nếu không tồn tại X’ là
tập con thực sự của X mà X’® Y, tức là:
- X ® Y
- "X’ Ì X thì X’ /® Y, mọi tập con thực sự của X đều
không thể xác định hàm Y
¡ VD: F = { A® BCD; BCD® E; CD® EI }
BCD®E là một phụ thuộc hàm không đầy đủ vì CD® E
A® BCD và CD® EI là phụ thuộc đầy đủ
Cơ sở dữ liệu 6
Phụ thuộc hàm bắc cầu
¡ Cho lược đồ quan hệ a = (U,F), X Í U, A Î U
¡ Thuộc tính A được gọi là phụ thuộc hàm bắc cầu
vào tập thuộc tính X nếu như $ Y Í U để:
- X® Y, Y® A
- Nhưng Y /à X với A Ï XY
¡ VD: R(ABCDE), F = {ABàCD, DàE}, khoá: AB.
- Ta có: ABà E là pth bắc cầu vì: $D Ì R:
ABà D Dà E
D /à AB E Ï ABD
Cơ sở dữ liệu 7
II. Kiểm tra phép tách-kết nối không mất thông tin
¡ Input:
- R = {A1, A2, .., An} – n thuộc tính và tập pth F
- Phép tách p = (R1, R2, .., Rk) – k lược đồ con
¡ Output: Kiểm tra phép tách có mất mát
thông tin hay không ?
Cơ sở dữ liệu 8
Cơ sở dữ liệu 9
Thuật toán
Bước 1: Lập bảng với n+1 cột và k+1 hàng
-Cột thứ j (j = 0® n )ó thuộc tính thứ j của lược đồ (Aj)
-Hàng thứ i ( i = 0® k)ó lược đồ Ri
-Tại ô (i,j) điền kí hiệu aj nếu Aj Î Ri, ngược lại điền kí hiệu bij
Bước 2: thay đổi giá trị cho bảng (Lặp liên tục)
-Lần lượt xét các pth (X®Y) Î F
-Nếu tồn tại hai hàng mà tất cả các cột ứng với thuộc tính X có giá trị bằng nhau
thì thay đổi cho bằng nhau ở thuộc tính Y
Nguyên tắc: nếu có một giá trị aj trong các cột tương ứng với các thuộc tính của
Y thì thay thế hết thành aj, nếu không thay thế hết bằng ký hiệu bij
-Lặp lại bước 2 (kể cả lặp lại các phụ thuộc hàm đã áp dụng) cho tới khi không
làm thay đổi giá trị của bảng
Bước 3: Đánh giá kết quả
-Nếu xuất hiện một hàng gồm toàn kí hiệu a1, a2, .. , an thì phép tách-kết nối là
không mất mát thông tin,
-ngược lại là phép tách-kết nối mất mát thông tin.
BÀI TẬP
¡ Cho lược đồ quan hệ R(ABCDE) và tập phụ
thuộc hàm:
G1= {AB®D, C®B, CB®E, E®DC}
Kiểm tra phép tách lược đồ thành các lược đồ
con có mất thông tin không: R1(ABC),
R2(CBE), R3(DE)
BÀI TẬP
¡ Cho lược đồ quan hệ
HoaDon(MaHD, NgayLap, MaNV, TenNV, MaH, TenH, DG, SL)
và F= { MaHD ® NgayLap; MaNV ® TenNV;
MaH ® TenH; MaHD,MaH ® DG, SL}
Kiểm tra phép tách lược đồ thành các lược đồ con có mất thông tin không:
R1(MaNV, TenNV),
R2(MaH,TenH),
R3(MaHD, NgayLap, MaH, SL, DG)
Cơ sở dữ liệu 24
III. Chuẩn hóa lược đồ quan hệ
¡ Chuẩn hóa là quá trình khảo sát danh sách các
thuộc tính và áp dụng các quy tắc phân tích vào
danh sách đó, biến đổi thành nhiều tập nhỏ hơn
ó Tách bảng thành nhiều bảng nhỏ hơn
¡ Sao cho:
- Tối thiểu việc lặp lại
- Tránh dị thường thông tin
- Xác định và giải quyết được sự không rõ ràng,
nhập nhằng trong suy diễn
Cơ sở dữ liệu 25
¡ Các loại dạng chuẩn gồm:
- Dạng chuẩn 1 (1NF – First Normal Form)
- Dạng chuẩn 2 (2NF – Second Normal Form)
- Dạng chuẩn 3 (3NF)
- Dạng chuẩn Boye Code (BCNF)
BCNF
3NF
2NF
1NF
Cơ sở dữ liệu 26
1. Dạng chuẩn 1NF
¡ Lược đồ quan hệ R được gọi là 1NF nếu và chỉ nếu tất
cả các thuộc tính của R thoả mãn cả 3 điều kiện sau:
- Tất cả các thuộc tính có kiểu xác định (nguyên tố)
- Giá trị của các thuộc tính là đơn trị,
- Không có một thuộc tính nào có giá trị tính toán từ
1 số thuộc tính khác
¡ Chú ý: khi xét dạng chuẩn nếu không nói gì thêm thì
dạng chuẩn đang xét ít nhất là đạt dạng chuẩn một
¡ Biểu diễn sơ đồ dạng 1NF: R(A1,A2,A3, A4, A5)
1
2 3
4
2. Dạng chuẩn 2NF
¡ LĐQH R được gọi là đạt dạng chuẩn 2 nếu R đã ở
dạng chuẩn 1 và tất cả các thuộc tính không khóa
(thuộc tính không tham gia vào khóa) đều phụ thuộc
hàm đầy đủ vào khóa.
¡ Mục đích:
- Giản ước sự dư thừa dữ liệu
- Tránh các dị thường cập nhật gây nên do sự dư thừa
dữ liệu này
¡ Biểu diễn sơ đồ dạng 2NF:
Cơ sở dữ liệu 33
R(A1,A2,A3, A4, A5)
1
4 3
Cơ sở dữ liệu 36
Thuật toán kiểm tra dạng chuẩn 2
¡ Bước 1: Tìm tất cả các khóa của quan hệ
¡ Bước 2: Với mỗi khóa K, tìm bao đóng của tất cả các tập
con thực sự S của K
- Chú ý: nếu khóa có một thuộc tính đơn thì không
cần phải kiểm tra và ở 2NF
¡ Bước 3:
- nếu có bao đóng S+ chứa thuộc tính không khóa thì
quan hệ không đạt chuẩn 2
- ngược lại thì quan hệ đạt chuẩn 2 (không tồn tại S mà
S+ chứa thuộc tính không khóa)
Ví dụ: kiểm tra dạng 2NF của quan hệ
¡ QLSV (MaSV, Ten, NS, DC, TenLop, KhoaHoc,
MaMH, TenMH, Diem)
F = {
f1: MaSVà Ten, NS, DC, TenLop
f2: TenLopà KhoaHoc;
f3: MaMHà TenMH;
f4: MaSV, MaMHà Diem
}
Cơ sở dữ liệu 37
Thuật toán đưa về dạng 2NF
¡ Nhóm các thuộc tính phụ thuộc vào một phần của
khoá và thuộc tính một phần tách thành quan hệ
mới, lấy phần đó làm khoá chính cho quan hệ.
¡ Giữ các thuộc tính phụ thuộc hoàn toàn vào khoá
và giữ lại khoá của quan hệ đó
Cơ sở dữ liệu 41
R(A1,A2,A3, A4, A5)
R1(A2, A4)
R(A1,A2,A3, A5)
¡ Ví dụ 3:
- Cho R2 (SoHD, MaSP, TenSP, SoLuong)
Và F = { MaSPà TenSP }
- Hỏi quan hệ có ở dạng 2NF không? Nếu chưa
tách thành lược đồ ở dạng 2NF
Cơ sở dữ liệu 43
Cơ sở dữ liệu 47
3. Dạng chuẩn 3NF
¡ Lược đồ R ở 3NF nếu:
- Ở dạng 2NF
- Mọi thuộc tính không khóa đều không phụ thuộc
bắc cầu vào bất kỳ khóa chính của quan hệ
¡ Hoặc Xét mọi pth Xà A thì
- Hoặc X là một siêu khóa của R
- Hoặc A là một thuộc tính khóa của R
¡ Sơ đồ:
R(A1,A2,A3, A4, A5)
1
4
Cơ sở dữ liệu 50
Thuật toán kiểm tra dạng chuẩn 3
¡ Output: kết luận Q đạt chuẩn 3 hay không đạt chuẩn 3
¡ Thuật toán:
- Bước 1: tìm tất cả khóa của Q
- Bước 2: từ F tạo tập phụ thuộc hàm tương đương
F’ có vế phải một thuộc tính
- Bước 3: Kiểm tra
Nếu mọi phụ thuộc hàm XàA Î F’ với AÏX đều
có X là khóa hoặc A là thuộc tính khóa thì Q đạt
chuẩn 3
ngược lại Q không đạt chuẩn 3 ($ X → A mà X
không là khóa và A không là thuộc tính khóa)
Cơ sở dữ liệu 52
¡Ví dụ 2: Cho lược đồ quan hệ
Q(A,B,C,D)
và F = { ABàC, DàB, CàABD}.
Hỏi Q có đạt chuẩn 3 không?
Cơ sở dữ liệu
Đưa về dạng 3NF
¡ Tạo quan hệ mới gồm các thuộc tính phụ thuộc
bắc cầu vào thuộc tính khóa, lấy thuộc tính bắc
cầu làm khoá
¡ Giữ lại các thuộc tính phụ thuộc trực tiếp vào khoá
¡ Thuộc tính bắc cầu nằm ở hai quan hệ
R(A1,A2, A3, A4, A5)
R1(A2, A4)
R(A1, A2, A3, A5)
Cơ sở dữ liệu 55
¡ Ví dụ 4: Xét lược đồ quan hệ
¡ NV_DV( HoTenNV, MaSNV, NgaySinh, DiaChi, MaSoDV,
TenDV, MaSNQL)
¡ Với các phụ thuộc hàm:
- MaSNV → HoTenNV, NgaySinh, DiaChi, MaSoDV
- MaSoDV → TenDV, MaSNQL
¡ Lược đồ có ở dạng 3NF không? Tách về 3NF
Cơ sở dữ liệu 59
4. Dạng chuẩn BCNF (Boyce Codd)
¡ Định nghĩa: Lược đồ quan hệ R ở dạng
chuẩn BCNF nếu với mọi pth X®A của R,
AÏX thì X là một siêu khóa nhỏ nhất ó các
thuộc tính đều phụ thuộc trực tiếp vào khóa
¡ Sơ đồ:
R(A1,A2,A3, A4, A5)
1
¡ Ví dụ 2: Cho U = {A,B,C,D,E,I}
và F = { ACDà EBI, CEà AD}
¡ Hỏi có đạt chuẩn BCNF hay không?
Cơ sở dữ liệu 60
Cơ sở dữ liệu 61
Đưa về dạng BCNF
¡ Loại bỏ các thuộc tính khóa phụ thuộc hàm vào
thuộc tính không khóa ra khỏi quan hệ và tạo thành
một quan hệ riêng có khoá chính là thuộc tính
không khóa gây ra phụ thuộc.
R(A1, A2, A3, A4, A5)
R1(A4, A2)
R(A1, A4, A3, A5)
Cơ sở dữ liệu 62
Ví dụ:
Kết quả là gì?
Hoc(MaSV, MaMon, Diem, MaGV)
Cơ sở dữ liệu 63
Thuật toán kiểm tra dạng chuẩn BCNF
¡ Bước 1: Tìm tất cả các khóa của quan hệ Q
¡ Bước 2: Từ tập pth F tạo tập pth tương đương với F
gọi là F’ có vế phải một thuộc tính
¡ Bước 3:
- nếu mọi pth X®A ÎF’ đều có X là khóa thì Q đạt chuẩn
BCNF
- ngược lại Q không đạt chuẩn BCNF ($ X → A mà X không
là khóa)
ómọi pth đều có vế trái là khóa thì đạt chuẩn BCNF
ngược lại thì không
Cơ sở dữ liệu 64
¡Ví dụ 1: Cho R = { C, S, Z} và
F = { CS®Z, Z®C }
¡Xác định dạng chuẩn cao nhất
R(A1,A2,A3, A4, A5)
1
4 3
R(A1,A2,A3, A4, A5)
1
4
R(A1,A2,A3, A4, A5)
1
1NF
2NF
3NF
BCNF
R(A1,A2,A3, A4, A5)
1
2 3
4
Cơ sở dữ liệu 66
* Quá trình chuẩn hóa
IV. Chuẩn hóa quan hệ
¡ Chuẩn hóa quan hệ là việc phân rã một lược đồ
quan hệ thành các lược đồ con ở dạng chuẩn 3
hoặc ở dạng chuẩn BCNF sao cho vẫn bảo toàn
phụ thuộc và không mất mát dữ liệu
Cơ sở dữ liệu 67
*Thuật toán phân rã thành các 3NF
¡ Input: Lược đồ R và tập các phụ thuộc hàm F
¡ Output: Tách thành các lược đồ ở 3NF
¡ Thuật toán:
- Tìm phủ tối thiểu (rút gọn tập phụ thuộc hàm)
- Loại bỏ các thuộc tính của R nếu thuộc tính đó không liên
quan đến PTH của F (không có mặt ở cả hai vế của PTH)
- Nếu có một PTH của F liên quan đến tất cả các thuộc tính
của R thì kết quả chính là R (không tách nữa)
- Xét các PTH XàA vi phạm 3NF thì thực hiện tách
một lược đồ XA
Lược đồ còn lại loại A
Cơ sở dữ liệu 68
Ví dụ: Tách về 3NF
¡ Cho lược đồ R(CTHRSG), trong đó:
- C – Course; T – Teacher; H – Hour: Giờ học
- R – Room; S – Student; G – Group
¡ PTH F = { CàT; HRàC; HTàR; CSàG; HSàR}
¡ Khóa: CHS
Cơ sở dữ liệu 69
R
C – Cource T – Teacher H – Hour R – Room S – Student G – Group
CSDL Tâm 7h 21 N.V Hà CSDL.1
CSDL Tâm 7h 21 T.V Huy CSDL.1
CSDL Tâm 7h 21 Đ.T Lan CSDL.1
CTDL Xuân 9h 22 N.V Hà CTDL.1
CTDL Xuân 9h 22 Đ.T Lan CTDL.1
CTDL Xuân 9h 22 L.T Linh CTDL.1
TRR Linh 7h 23 T.V An TRR.1
TRR Linh 7h 23 Đ.V Hưởng TRR.1
Cơ sở dữ liệu 70
R1
C –
Cource
T –
Teacher
CSDL Tâm
CTDL Xuân
TRR Linh
v Xét CàT vi phạm 3NF
v Tách R thành R1(C,T) và R2(C,H,R,S,G).
R2
C –
Cource
H –
Hour
R –
Room
S – Student G –
Group
CSDL 7h 21 N.V Hà CSDL.1
CSDL 7h 21 T.V Huy CSDL.1
CSDL 7h 21 Đ.T Lan CSDL.1
CTDL 9h 22 N.V Hà CTDL.1
CTDL 9h 22 Đ.T Lan CTDL.1
CTDL 9h 22 L.T Linh CTDL.1
TRR 7h 23 T.V An TRR.1
TRR 7h 23 Đ.V Hưởng TRR.1
Cơ sở dữ liệu 71
vXét CSàG vi phạm 3NF
v tách R2 thành R21(C,S,G) và R22(C,H,R,S).
R21
C –
Cource
S – Student G –
Group
CSDL N.V Hà CSDL.1
CSDL T.V Huy CSDL.1
CSDL Đ.T Lan CSDL.1
CTDL N.V Hà CTDL.1
CTDL Đ.T Lan CTDL.1
CTDL L.T Linh CTDL.1
TRR T.V An TRR.1
TRR Đ.V Hưởng TRR.1
R1
C –
Cource
T –
Teacher
CSDL Tâm
CTDL Xuân
TRR Linh
R22
C –
Cource
H –
Hour
R –
Room
S – Student
CSDL 7h 21 N.V Hà
CSDL 7h 21 T.V Huy
CSDL 7h 21 Đ.T Lan
CTDL 9h 22 N.V Hà
CTDL 9h 22 Đ.T Lan
CTDL 9h 22 L.T Linh
TRR 7h 23 T.V An
TRR 7h 23 Đ.V Hưởng
Cơ sở dữ liệu 72
v Xét HRàC vi phạm 3NF, tách R22 thành
R221(H,R,C) và R222(H,S,R) R1
C –
Cource
T –
Teacher
CSDL Tâm
CTDL Xuân
TRR Linh
R21
C –
Cource
S –
Student
G –
Group
CSDL N.V Hà CSDL.1
CSDL T.V Huy CSDL.1
CSDL Đ.T Lan CSDL.1
CTDL N.V Hà CTDL.1
CTDL Đ.T Lan CTDL.1
CTDL L.T Linh CTDL.1
TRR T.V An TRR.1
TRR Đ.V
Hưởng
TRR.1
R221
C –
Cource
H –
Hour
R –
Room
CSDL 7h 21
CTDL 9h 22
TRR 7h 23
R222
H –
Hour
R –
Room
S –
Student
7h 21 N.V Hà
7h 21 T.V Huy
7h 21 Đ.T Lan
9h 22 N.V Hà
9h 22 Đ.T Lan
9h 22 L.T Linh
7h 23 T.V An
7h 23 Đ.V Hưởng
* Thuật toán phân rã thành các BCNF
¡ Input: Quan hệ R và tập PTH F
¡ Output: tách thành các lược đồ ở BCNF
¡ Các bước:
- Ban đầu phép tách S chỉ là toàn bộ R
- Chọn pth XàA trong đó X không chứa khóa của S và
AÏXó PTH vi phạm BCNF
- Thay thế S bởi S1 và S2. Trong đó:
S1 = XA
S2 = S \ A (loại thuộc tính A khỏi S)
- Quá trình trên tiếp tục cho đến khi tất cả các lược đồ
quan hệ đều ở BCNF
Cơ sở dữ liệu 74
Ví dụ: Tách lược đồ về dạng BCNF
¡ Cho lược đồ R(CTHRSG), trong đó:
- C – Course; T – Teacher; H – Hour: Giờ học
- R – Room; S – Student; G – Group
¡ PTH F = {CSàG; CàT; CHàR; HRàC; HTàR; }
¡ Khóa: HS
C – Cource T – Teacher H – Hour R – Room S – Student G – Group
CSDL Tâm 7h 21 N.V Hà CSDL.1
CSDL Tâm 7h 21 T.V Huy CSDL.1
CSDL Tâm 7h 21 Đ.T Lan CSDL.1
CTDL Xuân 9h 22 N.V Hà CTDL.1
CTDL Xuân 9h 22 Đ.T Lan CTDL.1
CTDL Xuân 9h 22 L.T Linh CTDL.1
TRR Linh 7h 23 T.V An TRR.1
TRR Linh 7h 23 Đ.V Hưởng TRR.2
¡ Xét CSàG
- Tách thành R1(CSG) và R2(CTHRS)
Cơ sở dữ liệu 76
R2(CTHRS)
C –
Cource
T –
Teacher
H –
Hour
R –
Room
S – Student
CSDL Tâm 7h 21 N.V Hà
CSDL Tâm 7h 21 T.V Huy
CSDL Tâm 7h 21 Đ.T Lan
CTDL Xuân 9h 22 N.V Hà
CTDL Xuân 9h 22 Đ.T Lan
CTDL Xuân 9h 22 L.T Linh
TRR Linh 7h 23 T.V An
TRR Linh 7h 23 Đ.V Hưởng
R1(CSG)
C –
Cource
S –
Student
G –
Group
CSDL N.V Hà CSDL.1
CSDL T.V Huy CSDL.1
CSDL Đ.T Lan CSDL.1
CTDL N.V Hà CTDL.1
CTDL Đ.T Lan CTDL.1
CTDL L.T Linh CTDL.1
TRR T.V An TRR.1
TRR Đ.V Hưởng TRR.2
¡ Xét CàT
- Tách thành R21(CT) và R22(CHRS)
Cơ sở dữ liệu 77
R21(CT)
C –
Cource
T –
Teacher
CSDL Tâm
CTDL Xuân
TRR Linh
R1(CSG)
C –
Cource
S – Student G – Group
CSDL N.V Hà CSDL.1
CSDL T.V Huy CSDL.1
CSDL Đ.T Lan CSDL.1
CTDL N.V Hà CTDL.1
CTDL Đ.T Lan CTDL.1
CTDL L.T Linh CTDL.1
TRR T.V An TRR.2
TRR Đ.V Hưởng TRR.2
R22(CHRS)
C –
Cource
H –
Hour
R –
Room
S – Student
CSDL 7h 21 N.V Hà
CSDL 7h 21 T.V Huy
CSDL 7h 21 Đ.T Lan
CTDL 9h 22 N.V Hà
CTDL 9h 22 Đ.T Lan
CTDL 9h 22 L.T Linh
TRR 7h 23 T.V An
TRR 7h 23 Đ.V Hưởng
¡ Xét CHàR
- Tách thành R221(CHR) và R222(CHS)
Cơ sở dữ liệu 78
R21(CT)
C –
Cource
T –
Teacher
CSDL Tâm
CTDL Xuân
TRR Linh
R1(CSG)
C –
Cource
S – Student G – Group
CSDL N.V Hà CSDL.1
CSDL T.V Huy CSDL.1
CSDL Đ.T Lan CSDL.1
CTDL N.V Hà CTDL.1
CTDL Đ.T Lan CTDL.1
CTDL L.T Linh CTDL.1
TRR T.V An TRR.2
TRR Đ.V Hưởng TRR.2
R221(CHR)
C –
Cource
H –
Hour
R –
Room
CSDL 7h 21
CTDL 9h 22
TRR 7h 23
R222(CHS)
C –
Cource
H –
Hour
S – Student
CSDL 7h N.V Hà
CSDL 7h T.V Huy
CSDL 7h Đ.T Lan
CTDL 9h N.V Hà
CTDL 9h Đ.T Lan
CTDL 9h L.T Linh
TRR 7h T.V An
TRR 7h Đ.V Hưởng
80
Ví dụ
¡ Cho lược đồ R với U = {ABCDEFGH} và
F= {ABH à C, AàDE, BGHà F, Fà ADH, BHà GE}
¡ Tìm FD vi phạm BCNF
- (ABH)+ = U , ABH là siêu khóa, ABH à C không vi phạm
BCNF
- A+ ¹ U, AàDE vi phạm BCNF
¡ Chia R thành
- R1 =( {ADE}, {AàDE} )
- R2 = ( {ABCFGH} , {ABHàC, BGHàF, Fà AH, BHàG})
¡ Sau khi phân rã, chú ý đến 2 phụ thuộc hàm gốc Fà
ADH, BHà GE
- Chia FàADH thành {FàAH, FàD}
- Chia BHàGE thành {BHàG, BHàE}
¡ FàD, BHàE không có chỗ trong các phân rã mới (vì
không có ràng buộc nào có đủ thuộc tính cho các FD
này)
¡ Nhưng
- FàD có thể suy diễn từ FàAH Î R2 và AàDE Î R1
- BHà E có thể suy diễn được dựa vào (BH)+ từ R1,R2
è Phân rã R1,R2 bảo toàn phụ thuộc hàm
81
¡ R1 là BCNF
¡ Với R2:
- ABHà C, BGH à F không vi phạm BCNF (ABH, BGH đều là
siêu khóa)
- Fà AH vi phạm BCNF
è Phân rã R2 thành
- R21=(FAH, {FàAH})
- R22= (FBCG, {})
à R21, R22 đều là BCNF nhưng khi đó các FD ABHà C,
BGH à F và BHàG không có mặt nữa và cùng không
thể suy dẫn được từ các FD của R21, R22 và R1
è Phân rã R2 không bảo toàn phụ thuộc hàm
82
83
Nhận xét
¡ Việc phân rã R thành R1, R21, R22 không phải là duy
nhất.
¡ Nếu bắt đầu từ FD Fà ADH thì sẽ có
R1= (FADH; {Fà ADH})
R2 = (FBCEG,{})
R1,R2 cũng ở chuẩn BCNF và 1 số FD gốc cũng bị mất,
không thể suy diễn được
The End!
Cơ sở dữ liệu 88
HẠN NỘP BÁO CÁO BÀI TẬP LỚN
¡ Gửi mail: trinhxuan@hou.edu.vn
¡ Subject: [CSDL] – ST3 – -
tên thành viên
¡ Đính kèm:
- Word: báo cáo theo định dạng và yêu cầu
- Access (hoặc .sql): kết quả cài đặt CSDL
¡ Hạn: Trước 9h – ngày 7/4/2017
Cơ sở dữ liệu 89
Ví dụ: Xây dựng CSDL chuẩn 3NF
¡ Ví dụ:Tập pth F được định nghĩa trên R như sau:
¡ F= { 1. MSKH à TÊNKH,TP 2. MSMH à TÊNMH,ĐG
3. MSKH, MSMH à SL 4. TP à PVC}
¡ Khoá: MSKH, MSMH è đưa về 3NF
Cơ sở dữ liệu 101
MSKH TÊNKH TP PVC MSMH TÊNMH ĐG SL
S1
S1
S1
S2
S2
S3
S4
An
An
An
Hòa
Hoà
Thanh
Trang
HCM
HCM
HCM
HN
HN
NT
NT
01
01
01
02
02
03
03
P1
P2
P3
P1
P3
P2
P2
Táo
Cam
Chanh
Táo
Chanh
Cam
Cam
650
500
450
650
450
500
500
300
200
400
100
300
200
210
Kết quả ở 2NF
Cơ sở dữ liệu 102
MSKH MSMH SL
S1
S1
S1
S2
S2
S3
S4
P1
P2
P3
P1
P3
P2
P2
300
200
400
100
300
200
210
MSKH TÊNKH TP PVC
S1
S2
S3
S4
An
Hoà
Thanh
Trang
HCM
HN
NT
NT
01
02
03
03
MSMH TÊNM
H
ĐG
P1
P2
P3
Táo
Cam
Chanh
650
500
450
FR1 = {MSKH à TÊNKH, TP
TP à PVC}
FĐH = {MSKH, MSMH à SL}
FMH = {MSMHà TÊNMH, ĐG}
Cơ sở dữ liệu 103
MSKH TÊNKH TP
S1
S2
S3
S4
An
Hoà
Bình
Trang
HCM
HN
NT
NT
TP PVC
HCM
HN
NT
01
02
03
FKH = {MSKH à TÊNKH, TP}
FVC = {TP à PVC}
MSMH TÊNM
H
ĐG
P1
P2
P3
Táo
Cam
Chanh
650
500
450
FMH = {MSMHà TÊNMH, ĐG}
MSKH MSMH SL
S1
S1
S1
S2
S2
S3
S4
P1
P2
P3
P1
P3
P2
P2
300
200
400
100
300
200
210
FĐH = {MSKH, MSMH à SL}
Kết quả ở 3NF
Ví dụ: Xây dựng CSDL chuẩn 3NF
¡ Ví dụ:Tập pth F được định nghĩa trên R như sau:
¡ F= { 1. Mã SVà Tên SV, Tỉnh 2. Mã MHà Tên MH, Số TC
3. Mã SV, Mã MHà Điểm 4. Tỉnhà Khu vực}
¡ Khoá: Mã SV, Mã MHè đưa về 3NF
Cơ sở dữ liệu 104
Mã SV Tên SV Tỉnh Khu vực Mã MH Tên MH Số TC Điểm
SV1
SV1
SV2
SV3
An
An
Hòa
Thanh
HN
HN
TB
HP
01
01
02
03
MH1
MH2
MH1
MH1
Cấu trúc dữ liệu
Cơ sở dữ liệu
Cấu trúc dữ liệu
Cấu trúc dữ liệu
4
3
4
4
8
7
3
6
Các file đính kèm theo tài liệu này:
- bai_giang_ly_thuyet_co_so_du_lieu_chuong_5_chuan_hoa_co_so_d.pdf