Ph thuc hàm
Ph thuc hàm
và
Chun hóa c s d liu
Chng 7
Ni dung trình bày
̇ Nguyên tc thit k các lc đ quan h.
̇ Ph thuc hàm.
̇ Các dng chun.
̇ Mt s thut toán chun hóa.
Ph thuc hàm
Nguyên tc thit k
̇ Nhìn li vn đ thit k csdl
•Da trên trc quan ca ngi thit k.
•Thiu mt tiêu chun hình thc đ đánh giá.
̇ ánh giá cht lng thit k
•Ng ngha ca các thuc tính.
•Gim các giá tr tha trong các b.
•Gim các giá tr null trong các b.
• Không đ xut hin các b không có thc.
Ng ngha ca các thuc tính (1)
p.k.
MaPhongDChiNgSinhMaNVTen
f.k.NHANVIEN
p.k.
TrPhongMaPBTen
f.k.PHONGBAN
p.k.
TrusoMaPB
f.k.f.k.
TRUSO_PHONG
p.k.
PhongQlyDiadiemMaDATen
f.k.DUAN
SoGioMaDAMaNV
p.k.
f.k.f.k.
THAMGIA
Ph thuc hàm
Ng ngha ca các thuc tính (2)
̇ Ý ngha ca các thuc tính càng d hiu thì lc đ thit k
càng tt.
̇ Tránh t hp các thuc tính ca nhiu kiu thc th và cùng
mt lc đ.
TenPBMaPB
p.k.
TrPhongDChiNgSinhMaNVTenNV
f.k.NHANVIEN_PHONGBAN
TenDATenNV
p.k.
DiadiemGioMaDAMaNV
f.k.NHANVIEN_DUAN
Thông tin tha trong các b (1)
4…19/01/1968999887777Vuong
5…08/12/1955333445555Nghia
5…09/01/1965123456789Hung
MaPhongDChiNgSinhMaNVTen
NHANVIEN
3334455555Nghien cuu
TrPhongMaPBTen
PHONGBAN
333445555Nghien cuu5…09/10/1965123456789Hung
Nghien cuu
TenPB
5
MaPB
333445555 08/12/1965333445555Nghia
TrPhongDChiNgSinhMaNVTenNV
NHANVIEN_PHONGBAN
D liu b trùng lp
Ph thuc hàm
Thông tin tha trong các b (2)
̇ D thng khi thêm b
̇ D thng khi xóa b
999887777Nghien cuu5…09/10/1965123456789Hung
333445555Nghien cuu5…08/12/1965333445555Nghia
Hanh chinh
TenPB
4
MaPB
987654321nullnullnullnull
TrPhongDChiNgSinhMaNVTenNV
NHANVIEN_PHONGBAN
333445555Nghien cuu5…09/10/1965123456789Hung
333445555Nghien cuu5…08/12/1965333445555Nghia
TenPBMaPB TrPhongDChiNgSinhMaNVTenNV
NHANVIEN_PHONGBAN
Thông tin tha trong các b (3)
̇ D thng khi sa b
̇ Tránh xy ra các d thng cp nht d liu.
̇ Có th vi phm nguyên tc này đ tng hiu qu truy vn
d liu. Khi đócác d thng cn đc ghi chú cn thn.
333445555Nghien cuu5…09/10/1965123456789Hung
333445555Nghien cuu5…08/12/1965333445555Nghia
TenPBMaPB TrPhongDChiNgSinhMaNVTenNV
NHANVIEN_PHONGBAN
123456789
123456789
Ph thuc hàm
Giá tr null trong các b
̇ Nu nhiu thuc tính trong lc đ nhn giá tr null
s
• Lãng phí không gian lu tr.
•Khó khn trong thc hin các phép toán kt.
•Khó khn khi s dng các hàm tp hp.
̇ Tránh lu tr các thuc tính nhn nhiu giá tr null.
Phát sinh các b không có thc (1)
Thu DucSan pham YHung7.52123456789
Tan BinhSan pham XHung32.51123456789
DiadiemTenDATenNVGioMaDAMaNV
San pham YNghia Thu Duc102333445555
NHANVIEN_DUAN
p.k.
DiadiemTenNV
NHANVIEN_DIADIEM
SoGioMaDA
p.k.
MaNV
NHANVIEN_DUAN1
DiadiemTenDA
Ph thuc hàm
Phát sinh các b không có thc (2)
Thu DucHung
Tan BinhHung
DiadiemTenNV
Thu DucNghia
NHANVIEN_DIADIEM
Thu DucSan pham Y7.52123456789
Tan BinhSan pham X32.51123456789
DiadiemTenDASoGioMaDAMaNV
102333445555
NHANVIEN_DUAN1
Thu DucSan pham Y
HungThu DucSan pham Y102333445555
NghiaThu DucSan pham Y7.52123456789
Thu Duc
Thu Duc
Tan Binh
Diadiem
Nghia
Hung
Hung
TenNV
San pham Y7.52123456789
San pham X32.51123456789
TenDAGioMaDAMaNV
San pham Y102333445555
Kt t nhiên
Phát sinh các b không có thc (3)
̇ Xây dng các lc đ quan h sao cho vic thc
hin phép kt bng gia chúng ch áp dng trên
các thuc tính khóa chính hoc khóa ngoi.
Ph thuc hàm
Ph thuc hàm (1)
̇ Xét lc đ quan h gm n thuc tính
• R(U), U={A
1
, A
2
,…, A
n
}
̇ PTH gia hai tp thuc tính X, Y ⊆ U
•Ký hiu: X → Y.
• ∀r ∈ R, ∀ t
1
, t
2
∈ r nu t
1
[X] = t
2
[X] thì t
1
[Y] = t
2
[Y].
•X làv trái và Y là v phi ca PTH.
73
51
41
BAr(R)
r không tha A → B, nhng tha B → A
Ph thuc hàm (2)
̇ r ∈ R tha các ràng buc PTH đc gi là trng thái hp l
ca R.
̇ Nhn xét
•Các PTH xut phát t các ràng buc trong th gii thc.
• ∀r ∈ R, ∀t ∈ r, t [X] là duy nht thì X là mt khóa ca R.
•Nu K là mt khóa ca R thì K xác đnh hàm tt c các tp thuc tính
ca R.
• PTH dùng đ đánh giá mt thit k CSDL.
TrPhongTenPBMaPBDiachiNgSinhMaNVTenNV
NHANVIEN_PHONGBAN
MaNV → MaPB MaPB → {TenPB, TrPhong}MaNV → TenNV
Ph thuc hàm
Bao đóng ca tp PTH
̇ F là tp PTH trên R
• F = {MaNV → TenNV, MaPB → {TenPB, TrPhong},
MaNV → MaPB}.
• ∀r ∈ R tha F và MaNV → {TenPB, TrPhong} cng đúng
vi r thì MaNV → {TenPB, TrPhong} gi là đc suy din
t F.
̇ Bao đóng ca F, ký hiu F
+
, gm
•F và
•Tt c các PTH đc suy din t F.
̇ F gi là đy đ nu F = F
+
.
Lut suy din
̇ Lut suy din dùng đ suy din mt PTH mi t mt tp
PTH cho trc.
̇ H lut suy din Armstrong
•Phn x: Y ⊆ X ⇒ X → Y.
•Tng trng: X → Y ⇒ XZ → YZ, vi XZ = X ∪ Z.
•Bc cu: X → Y, Y → Z ⇒ X → Z.
̇ Các lut khác:
• Phân rã: X → YZ ⇒ X → Y, X → Z.
•Hp: X → Y, X → Z ⇒ X → YZ.
•Bc cu gi: X → Y, WY → Z ⇒ WX → Z.
̇ Nhn xét
•H lut Armstrong là đy đ.
Ph thuc hàm
Bao đóng ca tp thuc tính
̇ Làm th nào đ bit mt PTH X → Y đc suy din
t tp PTH F cho trc?
̇ Bao đóng ca tp thuc tính X đi vi F, ký hiu X
+
,
là
•Tp các thuc tính PTH vào X.
•X
+
= {A ∈ U | X → A ∈ F
+
}
̇ Nhn xét
•X → Y ∈ F
+
⇔ Y ⊆ X
+
.
•Nu K là khóa ca R thì K
+
= U.
Thut toán tìm X
+
̇ Nhp: U, F và X ⊆ U
̇ Xut: X
+
̇ Thut toán 7.1
• B1: X
+
= X;
• B2: Nu tn ti Y → Z ∈ F và Y ⊆ X
+
thì
X
+
:= X
+
∪ Z;
và tip tc B2. Ngc li qua B3.
• B3: xut X
+
.
Ph thuc hàm
Ví d tìm X
+
̇ Cho:
•F = {AB → C, BC → D, D → EG}.
•X = BD.
̇ Tính X
+
:
•X
+
= BD.
•Lp 1:
- Tìm các PTH có v trái là tp con ca X
+
= BD
+D → EG, thêm EG vào X
+
ta đc X
+
= BDEG.
•Lp 2:
- Tìm các PTH có v trái là tp con ca X
+
= BDEG
+ Không có PTH nào.
•Vy X
+
= BDEG.
Kim tra PTH suy din
̇ Cho F = {AB → C, A → D, D → E, AC → B}
̇ Hai PTH AB → E và D → C có đc suy din t F hay
không?
DED
ABCDEAB
X
F
+
X
c suy din t F
Ph thuc hàm
Các tp PTH tng đng
̇ Tp PTH F đc nói là ph tp PTH G nu G ⊂ F
+
.
̇ Hai tp PTH F và G là tng đng nu
•F ph G và
•G ph F.
̇ Nhn xét
• ∀X → Y ∈ G, nu Y ⊆ X
F
+
thì F ph G.
• F và G tng đng nu và ch nu F
+
= G
+
.
Tp PTH ti thiu (1)
̇ Tha PTH
•{A → B, B → C,
A → C}, vì A → C đc suy din t {A → B, B → C}
A → B, B → C ⇒ A → C (lut bc cu).
̇ Tha thuc tính
•{A → B, B → C, A →
CD}, vì A → CD đc suy din t {A → B, B →
C, A → D}
A → B, B → C ⇒ A → C (lut bc cu)
A → C, A → D ⇒ A → CD (lut hp).
•{A → B, B → C, A
C → D}, vì AC → D đc suy din t {A → B, B →
C, A → D}
A → B, A → D ⇒ A → BD (lut hp)
A → BD ⇒ AC → BCD (lut tng trng)
AC → BCD ⇒ AC → D (lut phân rã).
Ph thuc hàm
Tp PTH ti thiu (2)
̇ Tp PTH F là ti thiu nu tha các điu kin sau
•Mi PTH ca F ch có mt thuc tính v phi.
• Không th thay X → A thuc F bng Y → A vi Y ⊂ X mà
tp mi tng đng vi F.
•Nu b đi mt PTH bt k trong F thì tp PTH còn li
không tng đng vi F.
̇ Ph ti thiu ca tp PTH E là tp PTH ti thiu F
tng đng vi E.
̇ Nhn xét
•Mi tp PTH có ít nht mt ph ti thiu.
Thut toán tìm ph ti thiu
̇ Nhp: tp PTH E.
̇ Xut: ph ti thiu F ca E.
̇ Thut toán 7.2
• B1: F := ∅.
• B2: Vi mi X → Y ∈ E, Y = {A
1
, …, A
k
}, A
i
∈ U
F := F ∪ {X → {A
i
}}.
• B3: Vi mi X → {A} ∈ F, X = {B
1
, …, B
l
}, B
i
∈ U
Vi mi B
i
, nu A ∈ (X - {B
i
})
F
+
thì
F := (F - {X → {A}}) ∪ {(X - {B}) → {A}}.
• B4: Vi mi X → {A} ∈ F
G := F - {X → {A}}
Nu A ∈ X
G
+
thì F := F - {X → {A}}.
Ph thuc hàm
Ví d tìm ph ti thiu
̇ Tìm ph ti thiu ca E = {A → BC, A → B, B → C,
AB → C}
• B1: F = ∅.
• B2: F = {A → B, A → C, B → C, AB → C}.
• B3: Xét AB → C
(B)
F
+
= C
F = {A → B, A → C, B → C}.
• B4: A → C tha.
F = {A → B, B → C}.
Siêu khóa và khóa
̇ Cho R(U)
•S ⊆ U là siêu khóa nu ∀r ∈ R, ∀t
1
, t
2
∈ r, t
1
≠ t
2
thì t
1
[S]
≠ t
2
[S].
•K ⊆ U là khóa nu K là siêu khóa nh nht.
-A ∈ K đc gi là thuc tính khóa.
̇ Nhn xét
•S xác đnh hàm tt c các thuc tính ca R.
• R có th có nhiu khóa.
Ph thuc hàm
Xác đnh khóa ca lc đ
̇ Nhp: tp PTH F xác đnh trên lc đ R(U).
̇ Xut: khóa K ca R.
̇ Thut toán 7.3.1
• B1:
K = U = {A
1
, …, A
n
};
i = 1;
• B2:
Nu U ⊆ (K - {A
i
})
F
+
thì K = K - {A
i
}.
i = i + 1;
Nu i > n thì sang B3. Ngc li, tip tc B2.
• B3:
Xut K.
Ví d tìm khóa ca lc đ
̇ Cho R(U), U = {A, B, C, D, E, F, G}.
•F = {B → A, D → C, D → BE, DF → G}.
̇ Tìm khóa ca R
•B1:
K = ABCDEFG.
•B2:
-Lp 1: (BCDEFG)
F
+
= BCDEFGA ⇒ K = BCDEFG.
-Lp 2: (CDEFG)
F
+
= CDEFGBA ⇒ K = CDEFG.
-Lp 3: (DEFG)
F
+
= DEFGCBA ⇒ K = DEFG.
-Lp 4: (EFG)
F
+
= EFG.
-Lp 5: (DFG)
F
+
= DFGCBEA ⇒ K = DFG.
-Lp 6: (DG)
F
+
= DGCBEA.
-Lp 7: (DF)
F
+
= DFCBEAG ⇒ K = DF.
•B3:
Khóa là K = DF.
Ph thuc hàm
Xác đnh tt c khóa ca lc đ
̇ Nhp: tp PTH F xác đnh trên lc đ R(U).
̇ Xut: tt c khóa ca R.
̇ Thut toán 7.3.2
• B1:
Xây dng 2
n
tp con ca U = {A
1
, …, A
n
};
S = {};
• B2:
Vi mi tp con X ⊆ U
Nu U ⊆ X
F
+
thì S = S ∪ {X}.
• B3:
∀X, Y ∈ S, nu X ⊂ Y thì S = S - {X}.
• B4:
S là tp các khóa ca R.
Ví d tìm tt c khóa ca lc đ
̇ Cho R(U), U = {A, B, C, D, E, F}.
• F = {AE → C, CF → A, BD → F, AF → E}.
̇ Tìm tt c khóa ca R
•Tp siêu khóa
S = {ABD, BCD, ABCD, ABDE, BCDE, ABCDE, ABDF, BCDF, ABCDF,
ABDEF, BCDEF, ABCDEF}.
ABD
BCD
ABCD
ABDE
BCDE
ABCDE
ABDF
BCDF
ABCDF
ABDEF
BCDEF
ABCDEF
Ph thuc hàm
Chun hóa lc đ CSDL
̇ Chun hóa là gì?
̇ Các dng chun là gì?
̇ Các dng chun
•Dng 1 (1 Normal Form - 1NF).
•Dng 2 (2 Normal Form - 2NF).
•Dng 3 (3 Normal Form - 3NF).
•Dng Boyce - Codd (Boyce - Codd Normal Form
-BCNF).
Dng chun 1 (1)
̇ Lc đ quan h R đc gi là thuc dng chun 1 nu và
ch nu mi thuc tính ca R là thuc tính đn.
Go Vap9876543214Hanh chinh
Tan Binh,
Thu Duc
3334455555Nghien cuu
CacTrusoTrPhgMaPBTenPB
PHONGBAN
Thu Duc3334455555Nghien cuu
Go Vap9876543214Hanh chinh
Tan Binh3334455555Nghien cuu
TrusoTrPhgMaPBTenPB
PHONGBAN
Không thuc
dng chun 1
Thuc dng chun 1
Ph thuc hàm
Dng chun 1 (2)
̇ Nhn xét
•Mi lc đ quan h đu thuc dng chun 1.
•Dng chun 1 có th dn đn s trùng lp d liu. Do đó
gây ra các d thng v cp nht d liu.
Dng chun 2 theo khóa chính (1)
̇ Lc đ quan h R đc gi là thuc dng chun 2 nu mi thuc tính
không khóa ca R ph thuc đy đ vào khóa chính ca R.
̇ R(U), K ⊆ U là khóa chính ca R
•A ∈ U là thuc tính không khóa nu A ∉ K.
•X → Y là PTH đy đ nu ∀A ∈ X thì (X - {A}) → Y không đúng trên R.
Ngc li X → Y là PTH b phn.
̇ Ví d
FD2
FD1
DiadiemTenDATenNVSoGioMaDAMaNV
FD3
NVIEN_DUAN
Thuc tính không khóa
PTH đy đ
PTH b phn
Ph thuc hàm
Dng chun 2 theo khóa chính (2)
FD2
FD1
DiadiemTenDATenNVSoGioMaDA
MaNV
FD3
NVIEN_DUAN
FD1
SoGioMaDAMaNV
NV_DA1
FD2
TenNVMaNV
NV_DA2
FD3
DiadiemTenDAMaDA
NV_DA3
3 lc đ NV_DA1, NV_DA2, NV_DA3 thuc dng chun 2
Dng chun 2 theo khóa chính (3)
̇ Nhn xét
•Mi lc đ quan h thuc dng chun 2 cng thuc
dng chun 1.
•Nu R ch có mt khóa K và card(K) = 1 thì R thuc dng
chun 2.
•Còn xut hin s trùng lp d liu. Do đó gây ra các d
thng v cp nht d liu.
FD2
FD1
TenPBMaPB TrPhongDChiNgSinhMaNVTenNV
NHANVIEN_PHONGBAN
Thuc dng
chun 2
Ph thuc hàm
Dng chun 3 theo khóa chính (1)
̇ Lc đ quan h R đc gi là thuc dng chun 3 nu
• R thuc dng chun 2.
•Mi thuc tính không khóa ca R không ph thuc bt cu vào khóa chính
ca R.
̇ Cho R(U)
•X → Y là PTH bt cu nu ∃Z ⊆ U, Z không là khóa và cng không là tp
con ca khóa ca R mà X → Z và Z → Y đúng trên R.
̇ Ví d
FD2
FD3
FD1
TenPBMaPB TrPhongDChiNgSinhMaNVTenNV
NHANVIEN_PHONGBAN
PTH bt cu
Dng chun 3 theo khóa chính (2)
̇ Nhn xét
•Mi lc đ quan h thuc dng chun 3 cng thuc
dng chun 2.
•PTH bt cu là nguyên nhân dn đn trùng lp d liu.
•Dng chun 3 là dng chun ti thiu trong thit k
CSDL.
MaPBDiachiNgSinhMaNVTenNV
NV_PB1
TrPhgTenPBMaPB
NV_PB2
Thuc dng
chun 3
Ph thuc hàm
Dng chun 2 tng quát
̇ Lc đ quan h R đc gi là thuc dng chun 2 nu
mi thuc tính không khóa ca R ph thuc đy đ vào các
khóa ca R.
̇ Cho R(ABCDEF) có 2 khóa là A và BC.
FD3
FD2
FD1
FEDCBA
FD4
R
FD5
Lc đ R không thuc dng chun 2
Dng chun 3 tng quát
̇ Lc đ quan h R đc gi là thuc dng chun 3 nu
PTH không hin nhiên X → A đúng trên R thì
• X là siêu khóa ca R, hoc
• A là thuc tính khóa ca R.
̇ R1(ABCDE) có 2 khóa là A và BC.
̇ Nhn xét
• nh ngha tng quát cho phép kim tra dng chun 3 mà không cn
kim tra dng chun 2.
FD2
FD1
EDCBA
FD4
R1
Lc đ bên
thuc dng
chun 2,
nhng không
thuc dng
chun 3
FD5
Ph thuc hàm
Dng chun Boyce - Codd (1)
̇ Lc đ quan h R đc gi là thuc dng chun BC nu
PTH không hin nhiên X → Y đúng trên R thì X là siêu khóa
ca R.
̇ R11(ABCD)
FD2
FD5
FD1
DCBA
R11
Lc đ R11 thuc dng chun 3,nhng không thuc dng chun BC
Dng chun Boyce - Codd (2)
1ba2
2ab3
2bb4
1aa1
DCBA
R11
1b2
2a3
2b4
1a1
DCA
R111
b2
a1
BD
R112
Trùng lp d liu
Ph thuc hàm
Dng chun Boyce - Codd (3)
̇ Nhn xét
•Mi lc đ quan h thuc dng chun BC cng thuc
dng chun 3.
•Dng chun BC đn gin và cht ch hn dng chun 3.
•Mc tiêu ca quá trình chun hóa là đa các lc đ
quan h v dng chun 3 hoc BC.
FD1
DCA
R111
FD5
DB
R112
2 lc đ trên thuc dng chun BC
Thit k Top-Down
̇ Các bc thc hin
•Thit k lc đ mc khái nim vi mô hình d liu cp
cao (EER).
•Chuyn lc đ khái nim thành tp hp các quan h.
•Vi mi quan h xác đnh tp PTH.
•Áp dng các quy tc chun hóa đ loi b các PTH b
phn và bt cu trong các quan h.
Ph thuc hàm
Phân rã lc đ quan h
̇ Lc đ quan h chung R(A
1
, …, A
n
)
•Tp hp tt c các thuc tính ca các thc th.
̇ Xác đnh tp PTH F trên R.
̇ Phân rã
•S dng các thut toán chun hóa đ tách R thành tp
các lc đ D = {R
1
, …, R
m
}.
̇ Yêu cu
•Bo toàn thuc tính.
•Các lc đ R
i
phi dng chun 3 hoc Boyce-Codd.
Phân rã bo toàn PTH (1)
̇ Tính cht bo toàn PTH
•Xét lc đ R và tp PTH F. Gi s R đc phân rã
thành D = {R
1
, …, R
m
}.
- t π
Ri
(F) = {X → Y ∈ F
+
: X ∪ Y ⊂ R
i
}.
-D đc gi là phân rã bo toàn ph thuc hàm đi vi F nu
(π
R1
(F) ∪ … ∪π
Rm
(F))
+
= F
+
.
̇ Ví d
FD2
FD5
FD1
DCBA
R11
FD1
DCA
R111
FD5
DB
R112
Ph thuc hàm
Phân rã bo toàn PTH (2)
2
δα
3
3
γβ
2
2
βα
1
DCBAR11
2
δ
3
4
β
4
3
γ
2
2
β
1
DCAR111
β
3
4
2
D
α
α
BR112
…………
4
βα
4
2
βα
1
DCBA
Thêm b (4,
β
, 4) vào R111
và (4,
α
) vào R112
thì trng thái csdl s không
tha PTH FD2
Phân rã bo toàn PTH (3)
̇ nh lý 7.1
•Tn ti mt phân rã bo toàn PTH D = {R
1
, …, R
m
} ca
lc đ R đi vi tp PTH F sao cho các R
i
dng
chun 3.
̇ Thut toán 7.4
•Nhp: R(U), U = {A
1
, …, A
n
} và tp PTH F.
•Xut: D = {R
1
, …, R
m
}, R
i
dng chun 3.
• B1:
- Tìm ph ti thiu G ca F.
• B2:
-Vi mi X → A
j
∈ G, xây dng lc đ R
i
(U
i
), U
i
= X ∪ {A
j
}. Khóa
chính ca R
i
là X.
Ph thuc hàm
Phân rã bo toàn PTH (4)
• B3:
-Gi s xong B2 ta có các lc đ R
1
, …, R
m
. Nu U
1
∪ … ∪ U
m
≠ U thì xây dng thêm lc đ R
m+1
(U
m+1
), U
m+1
= U - (U
1
∪ … ∪
U
m
). Khóa chính ca R
m+1
là U
m+1
.
• B4:
-Xut các lc đ R
i
.
Ví d phân rã bo toàn PTH (1)
̇ Cho
• R(ABCDEFG)
•F = {B → A, D → C, D → EB, DF → G}
̇ Tách v dng chun 3, bo toàn PTH
• B1:
-Ph ti thiu G = {B → A, D → C, D → B, D → E, DF → G}.
• B2:
• B3:
-Xut D = {R
1
, R
2
, R
3
}.
R(ABCD
EFG)
R
1
(BA) R(DC)
R
3
(DF
G)R(DB) R(DE)
R
2
(D
BCE)