You are on page 1of 55

CHNG IV: THIET KE C S D LIEU QUAN HE

1. Qua trnh thiet ke c s d lieu


2. Phu thuoc ham
3. Phep tnh tach lc o quan he
4. Chuan hoa lc o quan he
1. PHU THUOC HAM
1.1. Mot so nh ngha
1.2. He tien e Armstrong
1.3. Tnh ong cua tap thuoc tnh X (X
+
F
)
1.4. Phu cua tap phu thuoc ham. Tap phu thuoc ham toi tieu
1.1. Mot so nh ngha
nh ngha 1:
Cho U la mot tap thuoc tnh, R(U) la mot lc o quan he tren U. Gia s
X, Y _ U, Y c goi la phu thuoc ham vao X tren lc o R(U), neu r
e R(U) va t
1
, t
2
e r , t
1
[X]=t
2
[X] keo theo t
1
[Y] = t
2
[Y]. K hieu: X Y.
Mot quan he r tren U c goi la thoa man phu thuoc ham X Y neu va
ch neu t
1
[X] = t
2
[X] => t
1
[Y] = t
2
[Y], t
1
, t
2
e r.

1.1. Mot so nh ngha
nh ngha 1: (tiep theo)
Cho tap F nhng phu thuoc ham (tren lc o quan he R(U)). Ta noi
(XY) c suy dien t F neu
r e R(U), r thoa F keo theo r thoa X Y. K hieu F=(XY).
Bao ong cua tap phu thuoc ham F la tap phu thuoc ham c suy dien
t F va k hieu F
+
.
F
+
= {(XY) | F = (XY)}
Neu F
+
= F th F c goi la ho phu thuoc ham ay u.


1.1. Mot so nh ngha
nh ngha 2:(Khoa)
Gia s U la mot tap thuoc tnh, R=R(U) la mot lc o quan he tren U
va K _ U. K la khoa cua R neu:
(KU) eF
+
. Ngha la ( r e R) (t
1
, t
2
e r) t
1
[K]=t
2
[K] => t
1
=t
2

Khong co tap con thc s nao cua K xac nh ham U.


1.2. He tien e Armstrong
He tien e Armstrong gom ba tnh chat:
A1. Phan xa:
Neu Y _ X => X Y
A2. Tang trng
XY => XZYZ (vi Z _U)
A3. Bac cau
Neu X Y . YZ => XZ
Cac quy tac suy dien bo sung
Quy tac hp: XY.XZ => XYZ
Quy tac bat cau gia: XY.WYZ => WXZ
Quy tac tach: {XY, Z_ Y} => XZ
1.3. Bao ong cua tap thuoc tnh X
Gia s X la tap thuoc tnh, F la tap phu thuoc ham. Bao ong cua X
oi vi tap phu thuoc ham F la tap nhng thuoc tnh A sao cho (XA)
c suy dien t F nh he tien e Armstrong.
Ngha la X
+
F
= {A | F =
Arm
(XA)}
nh ly 1
F =
Arm
(X Y) <=> Y _ X
+
F

Kiem tra mot PTH (X Y) co c suy dien
Ta co the s dung bo e 3.3
F =
Arm
(X Y) <=> Y _ X
+
F


Thuat toan (tm X
+
F
)
Input: Tap hu han thuoc tnh U,
Tap phu thuoc ham F ={L
i
R
i
, i=1..m}
Tap X _ U.
Output: X
+
F

Phng phap:
Bc 1: Gan X
0
= X
Bc 2: Gia s tm c X
k

Neu ton tai mot L
i
R
i
eF va L
i
_ X
k
th tnh X
k+1
= X
k
R
i

Ngc lai, chuyen sang bc 3
Bc 3: Gan X
+
F
= X
k
va ket thuc thuat toan.
V du: Tnh X
+
F

Cho F = {ABC, CA, BCD, ACDB, DEG,
BEC, CGBD, CEAG} va X=BD. Tm X
+
F

Giai
X
0
= X
Chon DEG, ta co: X
1
= X
0
EG = BDEG
Chon BEC, ta co: X
2
= X
1
C = BCDEG
Chon CA, ta co: X
3
= X
2
A = ABCDEG
Dng X
+
F
= ABCDEG



Cc tnh cht ca bao ng ca tp thuc tnh X+
Nu X,Y l cc tp con ca tp thuc tnh Q th ta c cc tnh
cht sau y:
1. Tnh phn x: X X+
2. Tnh n iu: Nu X Y th X+ Y+
3. Tnh lu ng: X++ = X+
4. (XY)+ X+Y+
5. (X+Y)+ = (XY+)+= (X+Y+)+
6. X Y F+ Y X+
7. X Y Y+ X+
1.4. Phu cua tap cac phu thuoc ham.
Tap phu thuoc ham toi tieu
Cho F va G la hai tap PTH.
Ta noi F phu G neu G
+
_F
+
F va G c goi la tng ng nhau neu F phu G
va ngc lai, k hieu: F ~ G
e kiem tra hai tap PTH tng ng va tap nao
phu tap nao, ta s dung tnh ong cua tap
thuoc tnh.


V du:
Kiem tra xem hai tap PTH sau co tng ng
khong?
F ={AB, BA, AC, CA, BC}.
G
1
= {AB, BC, CA}

Tap PTH ham toi tieu
Tap phu thuoc ham F la toi tieu neu:
Ve phai cua moi PTH co ung mot thuoc tnh.
Khong the bo mot PTH nao trong F ma van
thu c mot tap PTH tng ng vi no.
Khong the bo i bat k mot thuoc tnh nao
ve trai cua mot PTH nao trong F ma van thu
c mot tap phu thuoc ham tng ng vi
no.

Thuat toan tm tap PTH toi tieu F.
1. Tach cac PTH ham cua F ve phai hn mot
thuoc tnh thanh cac PTH ve phai ch co mot
thuoc tnh (c F1)
2. Loai bo nhng PTH cua F1 d tha ta thu c F
2

3. Loai bo nhng thuoc tnh d thatrong ve trai
cua cac PTH trong F
2
ta c F
3
.
(F
3
chnh la tap PTH toi tieu tng ng vi F.)
V du:
Cho F ={AB, BA, AC, CA, BC}. Ta co hai
tap PTH tng ng vi no la:
F
1
= {AB, BC, CA}
F
2
= {AB, BA, AC, CA}
1.5. Tp ph thuc hm rt gn t nhin
Cho tp PTH F={ Fi: Li Ri; Li, Ri _ U; i = 1 m }, F
dng rt gn t nhin nu nh:
Li Ri = |
Li = Lj i = j ( i,j = 1...m)

Thut ton tm tp PTH rt gn t nhin
B1. Loi b cc thuc tnh v phi c mt c 2 v trn
cng mt PTH
B2. Nu: LiRi v Lj Rj (vi Li = Lj) th thay 2 PTH ny
bi PTH mi: Li Ri Rj
V d: Tm tp PTH rt gn t nhin F
F= {AB BC
B D
BE GA
CD E
BE DC }
=>
F= {AB C
B D
BE GADC
CD E }
2. KHA
2.1. Siu kha:
Cho mt lc quan h R= ( U, F), S _ U, S c gi l
siu kha ca o nu S
+
= U.
2.2. Kha:
Cho mt lc quan h R= U, F), K _ U, K c gi
l kha ca R nu K l siu kha nh nht (t thuc tnh nht)
trong cc siu kha S ( Not - X _ K | X+ = U).
2.3. Gii thut tm mt kha:
Input: U, F
Output: K _ U, K+ = U
Actions:
K=U
For each an attrib A in K
If (K-A)+ =U then
K=K-A
Endif
Endfor
Return K
V d:
Cho U={ ABCDEGHI }
F={ A BCDEGHI; B IDGE; G H; I DEGB; BCA}
Tm kha
K= ABCDEGHI
- Xt A: (k A)+ = U => K= BCDEGHI
- Xt B: (k B)+ = (CDEGHI)+ = U => K= CDEGHI
- Xt C: (k C)+ = (DEGHI)+ = DEGHI <> U => K=CDEGHI
- Xt D: (k D)+ = (CEGHI)+ = CEGHIBDA =U => K= CEGHI
- Xt E: (k E)+ = (CGHI)+ = CGHIEDBA = U => K= CGHI
- Xt G: (k G)+ = (CHI)+ = CHIDEGBA = U => K= CHI
- Xt H: (k H)+ = (CI)+ = CIDEGBAH = U => K= CI
- Xt I: (k I)+ = C+ = C <> U => K= CI
Kho ca lc quan h trn l : CI
2.4. Gii thut tm tt c cc kha
Bc 1: a tp ph thuc hm F v dng rt gn t nhin.

Bc 2:

Bc 3: Xc nh lc quan h R = R U
0
I; U=U U
0
I
F: l tp PTH ca F xc nh trn tp thuc tnh U
( F : F/ U)
Bc 5: xc nh kha K
R

Bc 6: a v kha K
R
= U
0
K
R

m
i
i
R U U
1
0
=
=

m
i
i
m
i
i
L R I
1 1 = =
=
V d:
Cho U={ ABCDEGHIJL }
F={AI IECD, ADJ GH, CDL ABD,
CDLEHL }
Tm kha ca o
- Bc 1: F={AIECD, ADJ GH; CDL ABEH }
- Bc 2: U
0
= ABCDEGHIJL - ABCDEGH = IJL
- Bc 3: I= ABCDEGH ACDIJL = BEGH
- Bc 4: U = ABCDEGHIJL BEGHIJL = ACD
=> F={ A CD, CD A}
- Bc 5: Xc nh kha K
R
= {A, CD}
- Bc 6: xc nh kha K
R
= IJL {A, CD} = {AIJ L, CDIJ L}
3. CHUN HA C S D LIU
3. 1. Chun ha lc quan h ca CSDL
Chun ha CSDL l qu trnh p dng cc qui tc chuyn cc lc
quan h thnh cc dng chun cao hn nhm hn ch nhng bt thng
khi thao tc trn CSDL.

1NF 2NF 3NF BCNF
3.2. Dng chun 1 (1NF)
nh ngha: Mt lc quan h R(A1, A2, , An) c gi l t
dng chun 1 nu mi thuc tnh A1, A2, , An ca n u c gi tr
n.
V d: Cho lc quan h VATTU(MAVT, TENVT,
SOLG_DONGIA).
Xt quan h trn lc quan h VATTU.
MAVT TENVT SOLG_DONGIA
LT01 St 100; 500
LT2 Xi mng 50;50000
Do thuc tnh SOLG_DONGIA ca lc VATTU c gi tr l danh
sch nn n khng phi lc 1NF. n 1NF, ta tch thuc tnh
SOLG_DONGIA thnh cc thuc tnh n sau:
VATTU(MAVT, TENVT, SOLG_DONGIA) VATTU(MAVT, TENVT,
SOLG, DONGIA).
MAVT TENVT SOLG DONGIA
LT01 St 100 500
LT2 Xi mng 50 50000
3.3. Dng chun 2 (2NF)
a .Ph hm y : Mt lc quan h R(A1, A2, , An) X,
Y l cc tp con ca R. PTH X Y trn R gi l PTH y
nu khng tn ti tp con X ca X (XcX) m XY.
V d 1:
Cho lc qh CTHD(SOHD, MAMH, SOLG, DONGIA)
SOHD,MAMH SOLG l PTH y . V
SODH SOLG
MAMH SOLG

V d 2:
Cho lc qh CTHD(SOHD, MAMH, TENMH, SOLG,
DONGIA)
SODH, MAMH TENMH khng l PTH y . V
MAMH TENMH

3.3. Dng chun 2 (2NF)
b. nh ngha: Mt lc quan h c gi l t dng
chun 2 nu n t dng chun 1 v mi thuc tnh khng phi
l thnh phn ca kha u ph thuc hm y vo kha.

V d 1:
Cho lc qh CTDH(SOHD, MAMH, TENMH, SOLG,
DONGIA)
SODH,MAMH TENMH khng l PTH y . V
MAMH TENMH
Nn ta tch CTHD thnh 2 lc con:
CTHD(SOHD, MAMH, SOLG, DONGIA)
MATHANG(MAMH, TENMH)

3.4. Dng chun 3 (3NF)
a. PTH bc cu: Cho lc quan h R(A1, A2, , An) X l mt
tp con ca R. Thuc tnh Ai(i:1..n) c gi l PTH bc cu vo X
nu tn ti tp Y sao cho:
i. X Y v YA
i

ii. Y X
iii. A
i
eX v A
i
eY
X Y A
i

V d:
Cho lc quan h:
HV(MAHV, HOTEN, MALOP, TENLOP)
Ph thuc hm MAHV TENLOP l PTH bc cu v:

MAHV MALOP TENLOP
3.4. Dng chun 3 (3NF)
b. nh ngha: Mt lc quan h c gi l t dng
chun 3 nu:
N t dng chun 2
Mi thuc tnh khng phi l thnh phn ca kha u
khng ph thuc bc cu vo kha.


V d:
Cho lc quan h:
HV(MAHV, HOTEN, MALOP, TENLOP)
Ph thuc hm MAHV TENLOP l PTH bc cu v:


Nn HV vi pham dng chun 3. HV t 3NF ta tch n thnh hai lc
sau:
LOP(MALOP, TENLOP)
HV(MAHV, HOTEN, MALOP)

MAHV MALOP TENLOP
3.5. Dang chuan BCNF (Boye Codd)
nh ngha: Mot lc o quan he R(A
1
, A
2
, , A
n
) goi
la at dang chuan BCNF ma moi thuoc tnh A
i
X ma
X A
i
th X phai la khoa cua R.
e
V du:
Cho lc o quan he R(A, B,C ) vi tap phu
thuoc ham
AB C, C A)
Lc o quan he tren khong at chuan BCNF v
co phu thuoc ham C A ma C khong phai la
khoa cua lc o.
Tnh chat
Mot lc o quan he at dang chuan BCNF th
no at dang chuan 3NF.
4. PHEP TACH CAC LC O QUAN HE
4.1. Khai niem ve phep tach
4.2. Phep tach vi ket noi khong that thoat
4.3. Kiem tra tnh ket noi khong that thoat cua
mot phep tach.
4.4. Phep tach bao toan phu thuoc ham
4.1. Khai niem ve phep tach

,
Cho U
1
, U
2
, , U
k
sao cho U = U
1
U
2
, , U
k
va
khong nhat thiet cac U
1
, U
2
, , U
k
ri nhau.
Viec thay the lc o R=(U, F) bi R
1
= (U
1
, F
1
),
, R
k
=(U
k
, F
k
) c goi la phep tach lc o
quan he a cho (U, F). K hieu la =(R
1
, R
2
, ,
R
k
) hay =(U
1
,, U
k
)
Vi: F
i
la chieu cua F len tap thuoc tnh U
i
(t
Z
(F) = {(X Y)eF
+
,

XY _ Z} la chieu cua F len Z.)


4.2. Phep tach vi ket noi khong that
thoat
Goi r
i
= t
Ui
(r) la chieu cua quan he r len tap thuoc
tnh U
i
.
m

(r) = r
1
* r
2
* * r
k
la ket qua cua phep ket noi t
nhien cac chieu cua r len cac tap con thuoc tnh cua
phep tach .
Phep tach U thanh {U
1
, U
2
, , U
k
} c goi la ket noi
khong that thoat (LJ), neu vi moi quan he r cua
lc o nay, ta eu co r = m

(r).
nh ly
Cho mot lc o quan he R, = (R
1
, R
2
, , R
k
) la
mot phep tach tren R, r la quan he cua lc
o R. Khi o:
a. r _ m

(r)
b. neu s = m

(r) th s
i
= r
i
vi s
i
= t
Ui
(s)
c. m

(m

(r)) = m

(r)




4.3. Kiem tra tnh ket noi khong that thoat
cua mot phep tnh
Input: Tap U ={A
1
, A
2
, , A
n
}, Tap PTH F, phep tach
=(U
1
, U
2
, , U
k
).
Output: co phai la phep tach ket noi that thoat
khong?

Phng phap
Lap bang k x n. k dong ai dien cho U
1
, , U
k
; va n cot ai dien
cho A
1
, A
2
, , A
n
.
Tai dong i, cot j ghi la a
j
neu A
j
eU
i
, ngc lai ghi b
ij

Vi moi PTH (XY), xet tng cap dong co gia tr bang nhau
tren X ta oi cac ky hieu tren cac dong nay bang nhau tren
Y, theo quy tac:
Neu mot trong hai ky hieu la a
j
th ky hieu kia se c oi
thanh a
i
.
Neu ca hai ky hieu la b
ij
th lay ky hieu tuy y gan cho ca
hai.
Qua trnh lap tren se ket thuc neu khong thay oi c bang
na.
Neu co mot dong toan la ky hieu a
i
th phep tach la khong
that thoat.

V du
A B C D E
U1 a1 b12 b13 a4 b15
U2 a1 a2 b23 b24 b25
U3 b31 a2 b33 b34 a5
U4 b41 b42 a3 a4 a5
U5 a1 b52 b53 b54 a5
Cho U = ABCDE, U1=AD, U2=AB, U3=BE, U4=CDE, U5=AE
Tap phu thuoc ham la: A C, BC, CD, DEC, CEA
V du
A B C D E
U1 a1 b12 b13 a4 b15
U2 a1 a2 b13 b24 b25
U3 b31 a2 b33 b34 a5
U4 b41 b42 a3 a4 a5
U5 a1 b52 b13 b54 a5
Xet PTH: A C
V du
A B C D E
U1 a1 b12 b13 a4 b15
U2 a1 a2 b13 b24 b25
U3 b31 a2 b13 b34 a5
U4 b41 b42 a3 a4 a5
U5 a1 b52 b13 b54 a5
Xet PTH: B C
V du
A B C D E
U1 a1 b12 b13 a4 b15
U2 a1 a2 b13 b24 b25
U3 b31 a2 b13 b34 a5
U4 b41 b42 a3 a4 a5
U5 a1 b52 b13 b54 a5
Xet PTH: B C
V du
A B C D E
U1 a1 b12 b13 a4 b15
U2 a1 a2 b13 a4 b25
U3 b31 a2 b13 a4 a5
U4 b41 b42 a3 a4 a5
U5 a1 b52 b13 a4 a5
Xet PTH: C D
V du
A B C D E
U1 a1 b12 b13 a4 b15
U2 a1 a2 b13 a4 b25
U3 b31 a2 a3 a4 a5
U4 b41 b42 a3 a4 a5
U5 a1 b52 a3 a4 a5
Xet PTH: DE C
V du
A B C D E
U1 a1 b12 b13 a4 b15
U2 a1 a2 b13 a4 b25
U3 a1 a2 a3 a4 a5
U4 b41 b42 a3 a4 a5
U5 a1 b52 a3 a4 a5
Xet PTH: CE A
3.4. Phep tach bao toan phu thuoc ham
t
Z
(F) = {(X Y)eF
+
,

XY _ Z}
K hieu la =(R
1
, R
2
, , R
k
) vi R
i
=(U
i
, F
i
) la mot phep tach cua lc o
R=(U, F).
Mot phep tach c goi la bao toan tap phu thuoc ham F neu:
phu F

k
i
k
i
Ui i
F F
1 1
) (
= =
= t
V du:
Moi thanh pho (City) co nhieu ng (Street), cac ng co the trung
ten hai thanh pho khac nhau. Moi ng cua moi thanh pho c co
mot ma (Zip code).
Nh vay ta co lc o quan he CSZ vi:
U=CSZ
F= {CSZ, ZC}

You might also like