Mỗi lớp có tên lớp phân biệt và thuộc một khóa học KhoaHoc.. Mỗi môn học có một mã sốphân biệt MaMH, có tên môn học TenMH cũng phân biệt.. Mỗi sinh viên học nhiều môn, mỗi môn có ñiểm th
Trang 1CHU Ẩ N HÓA CSDL
Giáo viên: T ạ Thúc Nhu Khoa CNTT tr ườ ng Đ H L ạ c H ồ ng
ÔN THI
C Ơ S Ở D Ữ Li Ệ U
I- Ph ụ thu ộ c hàm:
I- Ph ụ thu ộ c hàm:
Trang 2CSDL@Khoa CNTT 3
1 Khái ni ệ m ph ụ thu ộ c hàm:
1 Khái ni ệ m ph ụ thu ộ c hàm:
• Cho một lượcñồquan hệQ
• X ⊆Q+, Y ⊆Q+, X ≠ ∅, Y ≠ ∅
Y phụthuộc hàm vào X, ký hiệu X Y, nếu
∀u, v ∈Q: u.X = v.X thì u.Y = v.Y
Quy ước ký hiệu:
• Nếu Y không phụthuộc hàm vào X ta ký hiệu: X Y
• f : phụthuộc hàm
• F : tập các phụthuộc hàm
Ví d ụ : Tìm các ph ụ thu ộ c hàm trên quan h ệ
Xét l ượ c ñồ quan h ệ qu ả n lý k ế t qu ả h ọ c t ậ p c ủ a sinh viên
KQHT(MaSV, Ten, NS, TenLop, KhoaHoc, MaMH,TenMH,Diem)
• Tân t ừ : Mỗi sinh viên có một mã sốphân biệt với các sinh viên
khác (MaSV); có tên (Ten), ngày sinh (NS) và học một lớp
(TenLop) Mỗi lớp có tên lớp phân biệt và thuộc một khóa học
(KhoaHoc) Mỗi môn học có một mã sốphân biệt (MaMH), có
tên môn học (TenMH) cũng phân biệt Mỗi sinh viên học nhiều
môn, mỗi môn có ñiểm thi (Diem) của môn học ñó
Trang 3CSDL@Khoa CNTT 5
2- Các Ph ụ thu ộ c hàm ñặ c bi ệ t:
1 Ph ụ thu ộ c hàm hi ể n nhiên: X →X
2 Ph ụ thu ộ c hàmñ y ñ (fully functional dependence):
X −−> Y là ph ụ thu ộ c hàm ñầ y ñủ
Khi và ch ỉ khi ∀ X' ⊂ X, X' −/−> Y
Ví d ụ : Ph ụ thu ộ c hàm MaSV, MaMH−−>DiemMH là ph ụ thu ộ c
hàm ñầ y ñủ vì :
MaSV −/−> DiemMH và MsMH −/−> DiemMH
3- Bao ñ óng c ủ a t ậ p thu ộ c tính:
3- Bao ñ óng c ủ a t ậ p thu ộ c tính:
Cho LĐQH <Q, F Q > và X ⊆ Q +
Bao ñ óng c ủ a t ậ p thu ộ c tính X d ự a trên F Q , ký hi ệ u X +
FQ , là t ậ p các thu ộ c tính ph ụ thu ộ c hàm vào X d ự a trên F Q
Ký hi ệ u: X +
FQ = { Y ∈ Q + : X −−> Y ∈ F +
Q }
Nh ậ n xét:
1 X ∈ X +
FQ
2 W −−> Z và W ⊆ X +
FQ thì Z ⊆ X +
FQ
Trang 4CSDL@Khoa CNTT 7
Ví d ụ : Tìm bao ñ óng c ủ a t ậ p thu ộ c tính
Ví d ụ : Tìm bao ñ óng c ủ a t ậ p thu ộ c tính
cho Q(ABCDEGH) và t ậ p ph ụ thu ộ c hàm
F Q ={f 1 :B −−>A; f 2 :DA−−>CE; f 3 :D −−>H; f 4 :GH−−>C; f 5 :AC−−>D}
1 Tìm bao ñ óng c ủ a t ậ p thu ộ c tính X1 = {BD}
2 Tìm bao ñ óng c ủ a t ậ p thu ộ c tính X2 = {BCG}
4- Khóa c ủ a quan h ệ :
Đị nh nghiã:
Cho l ượ c ñồ quan h ệ < Q, F Q >
1 S ⊆ Q + , S là siêu khóa c ủ a Q n ế u S −−> Q +∈F Q
2 K ⊆ Q + , K là khóa ch ỉ ñị nh n ế u
a) K là siêu khóa
b) K−−>Q+là ph ụ thu ộ c hàm ñầ y ñủ
Trang 5CSDL@Khoa CNTT 9
II- D ạ ng Chu ẩ n Trên Quan H ệ :
II- D ạ ng Chu ẩ n Trên Quan H ệ :
• Dạng chuẩn 1
• Dạng chuẩn 2
• Dạng chuẩn 3
• Dạng chuẩn BCK
1- D ạ ng chu ẩ n 1:
1- D ạ ng chu ẩ n 1:
1.1 Định nghĩa DC1:
Một lược ñồ quan hệ Q ñạt dạng chuẩn 1 nếu mọi thuộc tính của
Q ñều là thuộc tính ñơn.
1.2 Khái niệm Thuộc tính ñơn:
Một thuộc tínhñược gọi là thuộc tínhñơn nếu giá trịthuộc tính
hoặc chỉmang một thông tin duy nhất; nếuñược ghép bởi
nhiều thông tin thì hệ thống thường truy xuất trên toàn bộgiá trị
của nó
Ví dụ:
– Thuộc tínhĐịa_Chỉ
– Thuộc tính Ngày_Sinh
Trang 6CSDL@Khoa CNTT 11
2- D ạ ng chu ẩ n 2:
2- D ạ ng chu ẩ n 2:
M ộ t l ượ c ñồ quan h ệ Q ñạ t d ạ ng chu ẩ n 2 n ế u:
a Q có DC1
b M ọ i thu ộ c tính không là thu ộ c tính khóa ñề u ph ụ thu ộ c hàm
ñầ y ñủ vào các khóa c ủ a Q.
Nh ận xét: N u m i khóa c a quan h Q ch có 1 thu c tính thì
Q ñ t d ng chu n 2.
DC1
DC2
Ví d ụ ki ể m tra d ạ ng chu ẩ n 2 c ủ a quan h ệ :
Ví d ụ ki ể m tra d ạ ng chu ẩ n 2 c ủ a quan h ệ :
1- QLSV(MaSV, Ten, NS, DC, TenLop, KhoaHoc, MaMH, TenMH, Diem)
F = {f1:MaSV Ten, NS, DC, TenLop
f2: TenLop KhoaHoc;
f3: MaMH TenMH; f4 : TenMH MaMH;
f5: MaSV, MaMH Diem }
2- KQHT(MaSV, MaMH, TenMH, Diem)
FKQHT={ f1: MaMH TenMH; f2 : TenMH MaMH;
f3: MaSV, MaMH Diem}
3- SV(MaSV, Ten, NS, DC, TenLop, KhoaHoc)
FSV = { f1:MaSV Ten, NS, DC, TenLop;
f2: TenLop KhoaHoc}
Trang 7CSDL@Khoa CNTT 13
3- D ạ ng chu ẩ n 3:
3- D ạ ng chu ẩ n 3:
3.1 Khái niệm Phụ thuộc bắc cầu:
• Cho l ượ c ñồ quan h ệ <Q, F Q >;
• A ⊂ Q + , X ⊂ Q + và t ồ n t ạ i X A
X A là ph ụ thu ộ c hàm b ắ c c ầ u nếu tồn tại nhóm thuộc tính
Y ⊂Q+thỏa mản 4 ñiều kiện sau:
1 X Y ∈F+
Q
2 Y A ∈F+
Q
3 Y −/−>X
4 A ⊄{X ∪Y}
Ví d ụ :
SV(MaSV, Ten, NS, DC, TenLop, KhoaHoc)
FSV = { f1:MaSV Ten, NS, DC, TenLop;
f2: TenLop KhoaHoc}
a) Ki ể m tra t ồ n t ạ i : MaSVKhoaHoc
b) Ch ứ ng minh {KhoaHoc} ph ụ thu ộ c b ắ c c ầ u vào {MaSV}
Trang 8CSDL@Khoa CNTT 15
3.2 Định nghiã DC3:
L ượ c ñồ quan h ệ Q ñạ t d ạ ng chu ẩ n 3 n ế u:
1 Q ñạ t d ạ ng chu ẩ n 2
2 M ọ i thu ộ c tính không là thu ộ c tính khóa ñề u không ph ụ
thu ộ c b ắ c c ầ u vào m ộ t khóa nào c ủ a Q.
DC1
DC2 DC3
Ví d ụ ki ể m tra d ạ ng chu ẩ n 3 c ủ a quan h ệ :
Ví d ụ ki ể m tra d ạ ng chu ẩ n 3 c ủ a quan h ệ :
1- KQMH(MaSV, MaMH, TenMH, Diem)
FKQHT={ f1: MaMH TenMH; f2 : TenMH MaMH;
f3: MaSV, MaMH Diem}
2- SV(MaSV, Ten, NS, DC, TenLop, KhoaHoc)
FSV = { f1:MaSV Ten, NS, DC, TenLop;
f2: TenLop KhoaHoc}
Trang 9CSDL@Khoa CNTT 17
4 D ạ ng chu ẩ n BCK (Boyee-Codd-Kent):
4 D ạ ng chu ẩ n BCK (Boyee-Codd-Kent):
L ượ c ñồ quan h ệ Q ở d ạ ng chu ẩ n BCK n ế u
1 Q ñạ t d ạ ng chu ẩ n 3
2 M ọ i ph ụ thu ộ c hàm không hi ể n nhiên ñề u ch ứ a 1 khóa c ủ a
Q ở v ế trái.
∀X A ∈ F +
Q : A ∉ X và X ch ứ a 1 khóa c ủ a Q
DC1
DC2 DC3
DC BCK
Ví d ụ ki ể m tra d ạ ng chu ẩ n BCK c ủ a quan h ệ :
1- KQMH(MaSV, MaMH, TenMH, Diem)
FKQHT ={ f1: MaMH TenMH; f2 : TenMH MaMH;
f3: MaSV, MaMH Diem}
2- SV(MaSV, Ten, NS, DC, TenLop)
FSV = { f: MaSV Ten, NS, DC, TenLop}
3- LOP(TenLop, KhoaHoc)
FLOP = { f: TenLop KhoaHoc}
Trang 10CSDL@Khoa CNTT 19
III- D ạ ng chu ẩ n c ủ a CSDL:
III- D ạ ng chu ẩ n c ủ a CSDL:
Là d ạ ng chu ẩ n th ấ p nh ấ t trong các l ượ c ñồ quan h ệ có trên
CSDL.
Ví d ụ : Xét d ạ ng chu ẩ n c ủ a CSDL g ồ m 2 quan h ệ sau:
1- KQMH(MaSV, MaMH, TenMH, Diem)
FKQHT ={ f1: MaMH TenMH; f2 : TenMH MaMH;
f3: MaSV, MaMH Diem}
2- SV(MaSV, Ten, NS, DC, TenLop, KhoaHoc)
FSV = { f1:MaSV Ten, NS, DC, TenLop;
f2: TenLop KhoaHoc}
Ví d ụ :
Ví d ụ :
Xét d ạ ng chu ẩ n c ủ a CSDL g ồ m 3 quan h ệ sau:
1- SV(MaSV, Ten, NS, DC, TenLop)
FSV = { f: MaSV Ten, NS, DC, TenLop}
2- LOP(TenLop, KhoaHoc)
FLOP = { f: TenLop KhoaHoc}
3- KQMH(MaSV, MaMH, TenMH, Diem)
FKQHT={ f1: MaMH TenMH; f2 : TenMH MaMH;
f3: MaSV, MaMH Diem}
Trang 11CSDL@Khoa CNTT 21
Ví d ụ :
Ví d ụ :
Xét d ạ ng chu ẩ n c ủ a CSDL g ồ m 4 quan h ệ sau:
1- SV(MaSV, Ten, NS, DC, TenLop)
FSV = { f: MaSV Ten, NS, DC, TenLop}
2- LOP(TenLop, KhoaHoc)
FLOP = { f: TenLop KhoaHoc}
3- MONHOC(MaMH, TenMH)
FKQHT={ f1: MaMH TenMH; f2 : TenMH MaMH}
4- KQHT(MaSV, MaMH, Diem)
FKQHT={ f1: MaSV, MaMH Diem}
IV- Chu ẩ n hóa L ượ c Đồ Quan H ệ :
IV- Chu ẩ n hóa L ượ c Đồ Quan H ệ :
Trang 12CSDL@Khoa CNTT 23
1- M ụ c tiêu chu ẩ n hóa:
• Biến ñổi lược ñồquan hệ có dạng chuẩn thấp trong CSDL
thành các lược ñồquan hệ ñạt dạng chuẩn cao nhất
Ví d ụ : Xét CSDL g ồ m 2 quan h ệ sau:
1- KQMH(MaSV, MaMH, TenMH, Diem)
FKQHT={ f1: MaMH TenMH; f2 : TenMH MaMH;
f3: MaSV, MaMH Diem}
2- SV(MaSV, Ten, NS, DC, TenLop, KhoaHoc)
FSV = { f1:MaSV Ten, NS, DC, TenLop;
f2: TenLop KhoaHoc}
2- Đị nh lý Delobel: (1973)
• Xét quan h ệ Q(X, Y, Z) có t ậ p ph ụ thu ộ c hàm F Q
• X, Y, Z là các t ậ p con thu ộ c tính khác r ỗ ng.
N ế u t ồ n t ạ i XY thì phép phân rã Q thành 2 quan h ệ con
Q1(X, Y) và Q2(X, Z) là b ả o toàn thông tin.
Ngh ĩ a là: - Q + = Q1 +∪Q2 +
- Q = Q1 Q2
Ý tưởng: Chuẩn hóa quan hệ Q
1 Phân rã Q thành 2 quan h ệ Q1 và Q2 b ằ ng 1 m ộ t ph ụ thu ộ c hàm f có
VT(f) ∪ VP(f) ⊂ Q +
2 L ặ p l ạ i ph ươ ng pháp phân rã cho Q1 và Q2 cho ñế n khi không còn ph ụ
thu ộ c hàm nh ư v ậ y n ữ a.
Trang 13CSDL@Khoa CNTT 25
3- Thu ậ t toán phân rã:
Thu ậ t toán: Phân rã <Q, F Q >
Input: <Q, F Q >
Output: C = { Q I } n I=1 {t ậ p các l ñ qh ñượ c phân rã}
Begin
b1 F* = FQ\ { f ∈ FQ: [VT(f)] + = Q + }
b2 N ế u F* = ∅ thì C = {QI} là nghi ệ m c ủ a bài toán (k ế t thuc)
Ng ượ c l ạ i thì chuy ể n sang b ướ c b3
b3 Ch ọ n ph ụ thu ộ c hàm f: X Y ∈ F*
b4 Phân rã l ượ c ñồ quan h ệ Q thành 2 l ượ c ñồ quan h ệ con:
< Q1(X, Y), F1={f ∈ FQ: VT(f) ∪ VP(f) ⊂ Q1} >
< Q2(Q + \ Y), F2={ f ∈ FQ: VT(f) ∪ VP(f) ⊂ Q2 } >
b5 N ế u F1 ∪ F2 <> FQ thì quay l ạ i b3 ch ọ n m ộ t ph ụ thu ộ c hàm khác.
ng ượ c l ạ i thì sang b6
b6 Phân rã(Q1, F1);
b7 Phân rã (Q2, F2);
end;
Ví d ụ :
Ví d ụ :
1- KQMH(MaSV, MaMH, TenMH, Diem)
FKQHT={ f1: MaMH TenMH; f2 : TenMH MaMH;
f3: MaSV, MaMH Diem}
2- SV(MaSV, Ten, NS, DC, TenLop, KhoaHoc)
FSV = { f1:MaSV Ten, NS, DC, TenLop;
f2: TenLop KhoaHoc}
Trang 14CSDL@Khoa CNTT 27
Ví d ụ :
Ví d ụ :
VanChuyen(MsKH, TP, CTyVC, MsHH, SL)
F = { f1: MsKHTP; f2: TP CtyVC;
f3: MsKH, MsHH SL }
– MsKH: Mã sốKhách hàng
– TP: Thành phốkháchở
– CtyVC: công ty vận chuyển hàng
– MsHH: mã hàng hóa
– SL: sốlượng
1 Xét d ạ ng chu ẩ n
2 Phân rã thành các quan h ệ có d ạ ng chu ẩ n cao nh ấ t
Nh ậ n xét:
1 T ấ t c ả các quan h ệ k ế t qu ả ñề u ñạ t d ạ ng chu ẩ n BCK
2 B ả o toàn thông tin
3 Tùy theo th ứ t ự các pth ñượ c xét mà kết quả và số lượng
quan hệ con có thể khác nhau
4 Nên ư u tiên ch ọ n ph ụ thu ộ c hàm gây ch ấ t l ượ ng x ấ u cho
quan h ệ