You are on page 1of 33

Trang 1/1

QU TN P MN
TRUNG TM PT TRN N N TN TN
------------------------------------

BO O TU O
MN S LU NN O



T


C TUT TON TM KO
TRONG C S LU QUN





Ging vin ph trch: TS. P

Hc vin
- V Th Dn CH0301010
- Trnh Minh Tun CH0301083

Lp Cao hc NTTQM Kha



Thang nm


Trang 2/2

TI LIU THAM KHO


- Chuyn CSDL Nng cao : PGS. Nguyn Xun Huy, TS. Phc
- Gio trnh CSDL Nng Cao TS. Phc
- Thit K Cc H CSDL -Tp 2 Ullman ( Trn c Quang dch)
- Closed sets and Translations of relation schemes 1991 - Nguyn Xun
Huy
- Balanced relation scheme and problem of key representation 1985
J.Demetrovics, H Thun, Nguyn Xun Huy, L Vn Bo.
- Nhp Mn CSDL Quan H - GS. L Tin Vng

Trang 3/3

I. Li ni u
Qua qu trnh hc mn co s d liu truc y, khi nim v
kha v tm kha ca mt luc quan h, chng ti ch tm hiu
mc co bn, chua c iu kin u tu su hon, do vic tm kha rt
tn thi gian v cn gp nhiu kh khn i vi nhiu bi ton trong
thc t vi phc tp ln.
Dui s gi ca Thy Tin s D Phc, chng ti hiu uc
vn cn k hon v c gng tm kim vi thut ton tm kha hu
gii quyt mt s bi ton trong thc t c phc tp tu ong i ln.
Do nhu cu thc t, vi d liu c s thuc tnh ln th vic tm
kha l rt phc tp. Do bi ton Tm Kha lun l vn hp
dn nhiu ngui tm hiu nhm mc ch gim thiu phc tp cng
nhiu cng tt.
gc l hc vin, vi s ham mun tm ti, hc hi v s
hung dn ng vin ca Thy, chng ti tm hiu bi ton Tm
kha vi mong mun l tm uc nhng gii thut c phc tp
thp hon so vi gii thut tm kha chun.
Trong bi thu hoch ny, chng ti knh trnh n Thy kt qu
tm hiu v vic xy dng cc thut ton tm kha sau hon hai thng
hc tp.
Tuy rng rt n lc, nhung vi s hiu bit cn hn ch nn bi
thu hoch khng trnh khi nhiu thiu st. Chng ti rt mong nhn
uc nhng ch bo ca Thy.

Trang 4/4
II. Mt S khi nim c bn
A. Quan H
1. Quan h
Gi R = { A1, A2, , An } l tp hu hn cc thuc tnh, mi thuc tnh Ai
vi i=1,2,..,n c min gi tr tu ong ng l Di, k hiu dom(Ai).
Quan h r trn tp thuc tnh R l tp con ca tch Descarte
D=D1*D2**Dn.
2. Lc quan h
L tp hu hn cc thuc tnh R={A1, A2, , An} vi Ai l thuc tnh
Cho D=D1*D2**Dn. Khi :
- B t uc nh ngha trn R l mt nh x t R vo D sao cho
t(Ai) thuc Di.
- Quan h r l tp cc b {t1, t2, , tp}

B. Ph thuc hm
1. Ph thuc hm
Cho R(U) l mt luc quan h vi U = { A1, A2, , An} l tp thuc
tnh. X,Y l tp con ca U. Ph thuc hm X Y (c l X xc nh Y)
uc nh ngha l:
t, ter, nu t.X = t.X th t.Y = t.Y
ngha: nu 2 b c cng gi tr X th c cng gi tr Y.
2. Bao ng ca tp ph thuc hm
Gi F l tp cc ph thuc hm trn luc quan h R.
Gi XY l mt ph thuc hm. X,Y_ U
Ta ni F khng nh logic XY (vit l F|=XY) nu mi quan h r ca R
tha cc ph thuc trong F th cng tha XY
Bao ng ca F l tp cc ph thuc hm uc khng nh logic t F, ngha
l:
F
+
= { XY | F|=XY }

Trang 5/5

3. H tin rmstrong
D xc nh uc kha v hiu uc cc php suy din logic cho cc ph
thuc hm ni chung, chng ta phi c nhng quy tc suy din cho bit lm
sao c th suy ra mt hay nhiu ph thuc t cc ph thuc c.
Nm 1974, Armstrong ua ra mt tp cc quy tc suy din. Cc quy tc
ny l ng n, ngha l khi s dng chng, ta s suy ra t F mt ph
thuc hm thuc F
+
. Hon na nhng quy tc suy din y theo ngha: t
tp cc ph thuc F bit, nhng quy tc ny cho php suy uc tt c cc
ph thuc hm thuc F
+
. Tp cc quy tc uc gi l H tin
Armstrong, bao gm cc quy tc suy din sau:
Gi R l luc quan h
U l tp thuc tnh ca R. X,Y,Z,W,V _ U
F l tp cc ph thuc hm
A1: Tnh Phn X
Nu Y _ X _ U th X Y
A2: Tnh Tng Trng
Nu X Y v Z _ U th XZ YZ, vi XZ l X Z, YZ l Y Z
A3: Tnh Bc Cu
Nu X Y v YZ th X Z

B : h tin Armstrong l ng n, ngha l nu XY c suy
t F nh h tin ny th X Y ng trong mi quan h m cc ph
thuc ca F ng.
Chng minh:
Xt A1:
R rng l ng n v khng th c mt quan h r vi 2 b ging
nhau cc thnh phn trong X nhung li khc nhau mt tp con
no ca X !
Xt A2:
Gi s quan h r tha XY, v c 2 b t1, t2er ging nhau cc
thuc tnh ca XZ nhung khc nhau cc thuc tnh ca YZ. V t1,
t2 khng th khc nhau cc thuc tnh ca Z nn phi khc nhau
thuc tnh ca Y. Diu ny mu thun vi gi thit v do XY, nn
t1 v t2 phi ging nhau cc thuc tnh ca Y.
Xt A3:
Gi s quan h r tha XY v YZ, v c 2 b t1, t2er ging nhau
cc thuc tnh ca X v khc nhau cc thuc tnh Z.
Do XY, v r1.X = r2.X nn r1.Y = r2.Y

Trang 6/6
Do YZ, v r1.Y = r2.Y nn r1.Z = r2.Z. Diu ny tri vi gi thit.
4. Cc quy tc suy din b sung
A4: Quy tc Hp
Nu X Y v X Z th XYZ
Chng minh:
Do XY, p dng tnh tng trung i vi X ta c XXY
Do XZ, p dng tnh tng trung i vi X ta c XYYZ
p dng Tnh Bc Cu i vi XXY v XYYZ ta c XYZ
A5: Quy tc Gi Bc Cu
Nu X Y v WY Z th XWZ
Chng minh:
Do XY, p dng tnh tng trung i vi W ta c XWWY
p dng Tnh Bc Cu i vi XY v WYZ ta c XWZ
A6: Quy tc Phn R
Nu X YZ th X Y v X Z
Chng minh:
p dng tnh phn x
H qu: nu XY th XAi, AieY

5. Bao ng ca tp thuc tnh
Cho R(U) trong U l tp cc thuc tnh. Gi F l tp ph thuc hm v X
l mt tp con ca U.
Bao ng ca X ng vi F (k hiu l X
+
) l tp cc thuc tnh A sao cho
XA uc suy t F nh h tin Armstrong
B XY c suy t F nh h tin Armstrong nu v ch nu
Y_ X
+
.
Chng minh:
Dt Y = A1,A2,,An v gi s Y_ X. Theo nh ngha trn, XAi
uc suy ra bng h tin Armstrong vi mi i. Bng quy tc hp, th
XY l ng.
Nguc li, gi s XY uc suy ra t h tin Armstrong. Bng quy
tc phn r ta c XAi ng vi mi i.
Vy Y_ X
+
.

Trang 7/7
Bi ton thnh vin

Procedure MEMBER
Vao: tp ph thuc hm F v ph thuc hm XY
Ra: Dng nu F |= XY v
Sai nu nguc li
MEMBER(F, XY)
Begin
If Y c Closure(X,F) then return (True)
Else return (False)
End
Gii thut tnh bao ng
Nhp: tp thuc tnh hu hn X, tp ph thuc hm F v X_ U
Xut: X
+
, bao ng ca X ng vi F
Phu ong php:
Begin
Olddep=C
Newdep=X
While Newdep <> Olddep do begin
Olddep = Newdep
For each pth WZ e F do
If W c Newdep then
Newdep = Newdep Z
End {if}
End {for}
End {while}
End

H qu X
+
l tp cc thuc tnh A sao cho F|=XA
H qu F
+
l tp cc ph thuc uc suy t F bng h tin
Armstrong.

Trang 8/8

C. Kho ca lc quan h
Cho quan h r(R), tp KcR uc gi l kha ca quan h r nu K
+
=R v
nu bt 1 phn t khi K th K
+
R. Nhu th, tp KcR v (K\A)
+
R, AeK
Nhn xt:
- Mt quan h c nhiu kha
- Kha bao hm (cn gi l siu kha) l mt tp cha kha. Ni cch
khc, kha l mt trung hp c bit ca kha bao hm.

D. Pht biu bi ton
Mc ch chnh yu ca bi thu hoch c tm tt bi bi ton sau y:
Cho lc quan h (R,F), trong R l tp cc thuc tnh, F l tp cc
ph thuc hm xc nh trn R. Cu hi c t ra l Tm tt c cc Kho
ca lc quan h (R,F).

Lucchesi v Osborn chng minh y l bi ton loi NP-Kh ( NP-
complete)
(Lucchesi , Osborn : CandidateKeys for Relations - 1978)

Trang 9/9

III. Cc thut ton tm kho c bn
A. Qui c c php
Ngn ng ta Pascal - Hng i tng.
1. Kiu d liu Set
Kiu Tp Hp trong Di S bao gm cc php ton Di s trn
Tp Hp:
- M t A l Tp Hp : A: Set
- Php gn tp A vo B: B:=A;
- Php Hp : C l hp ca A v B: C:=A B;
- Php Giao: C l giao ca A v B: C:=A B;
- Php Hiu: C l hiu ca A v B: C:=A - B;
- Dnh ngha A l Tp rng: A:=0;
- S phn t ca tp A: A.SizeOf() ( Hoc SizeOf(A) )
- Tp hp ch cha mt phn t th i ca A:
A.BaseOf(i) (Hay BaseOf(i,A))
- Biu thc logic A rng hay khng: A!=0 ( Hoc A<>0)
- Biu thc logic A,B khc nhau: A!=B ( Hoc A<>B)
- Biu thc logic A,B bng nhau: A=B
- Biu thc logic A l tp con ca B: AcB
- Biu thc logic A l tp con ca B hay bng B: A_B
2. Kiu d liu Sets
Kiu dy ( Array ) mi phn t l mt Set.
Th d : L: Array[1..100] of Set; th ta gi L c kiu Sets.
Trn kiu Sets c cc php ton sau:
- Dnh ngha L c zero phn t: L.Reset();
- Thm vo L mt tp hp A : L.Add(A)
- S tp hp c trong L: L.SizeOf()
- Tp hp th i trong L: L.Set(i)
- Hy tp th i trong L: L.Sub(i)
- Kim tra vic tn ti X trong L: L.Exist(X)
3. Kiu d liu
Biu din mt ph thuc hm , l gm 2 tp hp X v Y trong ph thuc
hm c dng XY.
M t f l mt ph thuc hm: f: FD
- Tp hp v tri ca f: f.X ( Hay f.X())
- Tp hp v phi ca f: f.Y ( Hay f.Y())

4. Kiu d liu s
Biu din mt danh sch cc ph thuc hm.
M t F l danh sch ph thuc hm : F : FDs
- S lung cc ph thuc hm trong F: F.SizeOf() ( Hay SizeOf(F) )
- Khi ng F, zero phn t: F.Reset();
- Ph thuc hm th i: F.FD(i)
- Thm mt ph thuc hm f vo F: F.Add(f) ( F:=F + f)
- Thay th ph thuc hm th I bi f: F.Replace(I,f);
- Hu b ph thuc hm th i: F.Sub(i); ( F:=F f)

Trang 10/10

5. Mt s th tc hm c bn
Function Closure(X :Set ; Var F : FDs) : Set;
// Tm bao ng ca X da trn Tp F
// Ti liu tham kho: Gio Trnh CSDL Nng Cao TS. Phc
Var
Old,New:Set;
W,Z: Set;
f: FD;
i: Integer;
Begin
Old:=0; New:=X;
While (Old <> New)
Begin
Old:=New;
For i:=1 to F.SizeOf() do
Begin
f:= F.FD(i); W:=f.X ; Z:=f.Y;
if ( W _ New) then New:=New Z;
End;
End;
Return (New) ;
End;



Procedure AddSuperKey(K: Set; Var Keys: Sets);
// Thm mt Super Key vo danh sch Keys
// Keys Ch cha cc SuperKey c kch thc nh
Var i: Integer;
X: Set;
Begin
For i:=1 to Keys.SizeOf() do
Begin
X:=Keys.Set(i);
If ( K _ X) Then
Begin
Keys.Sub(i) ; i:= i - 1;
End;
End;
Keys.Add(K);
End;

Trang 11/11

Function CheckKey( X , R : Set; Var F: FDs) : Boolean;
// Kim tra mt SuperKey c phi l Key hay khng
Var
I: integer;
Begin
If Closure (X,F)<> R then Return (False) ;
Else
For i:=1 to X.SizeOf() do
If (Closure(X X.BaseOf(i), F) = R ) then
Return (False);

Return (True);
End;




B. Thut ton t trn xung

Input ban u : X=R ; Keys.Reset();
OutPut : Keys l Tp cc Kho trn ( R,F )
Procedure FindKeys(X , R: Set; Var F: FDs; Var Keys: Sets)
Var
T: Set;
I: Integer;
Begin
If ( Keys.Exist(X) ) Then return;
AddSuperKey(X, Keys); // X l SuperKey
If ( X.Sizeof() = 1) return;
For i:=1 to X.SizeOf() do
Begin
T:=X.BaseOf(i) ;
If ( Closure(X T) = R) Then
FindKeys( X-T, R, F, Keys);
End;
End;
phc tp: Tnh trn s ln thc hin Hm Closure

Trang 12/12

C. Thut ton t di ln

Input X:=0; T:= R; Keys.Reset()
Output: Keys l Tp cc Kho

Procedure FindKeys( X, T, R: Set; Var F: FDs; Var Keys: Sets)
Var
A: Set;
Begin
If ( Closure(X,F)=R) Then
Begin
AddSuperKey(X,Keys); Return ;
End;
For i:=1 To T.SizeOf() do
Begin
A:= T.BaseOf(i); T=T-A;
FindKeys(XA,T,R,F,Keys);
End;

End;



D. Thut ton th
y l thut ton ci bin t thut ton t di ln

Input G l Tp nt gc, T: Tp cc nt trung gian
Tp nt gc uc tnh trn thut ton sau:
G:= (R ( _XX _YY)) ( _XX - _YY);
Tp T cc nt trung gian uc xc nh sau:
T:= ( R ( _YY - _XX) ) G;

Trong _XX, _YY uc tnh nhu sau:
Procedure SumXY( Var _XX, _YY : Set ; Var F: FDs)
Begin
_XX:=0; _YY:=0;
For i:=1 to F.SizeOf() do
Begin
_XX:= _XX F.FD(i).X;
_YY:= _YY F.FD(i).Y;
End;
End;



Trang 13/13
Procedure FindKeys( G, T, R: Set; Var F: FDs; Var Keys: Sets)
Var
A,C : Set;
Begin
C:= Closure(G,F);
If ( C=R) Then Begin
AddSuperKey(G,Keys); Return ;
End;
For i:=1 To T.SizeOf() do
Begin
A:= T.BaseOf(i); T=T-A;
FindKeys(G A,T,R,F,Keys);
End;

End;


IV. Xy dng mt s thut ton mi
A. Mt s qui c :
Cho (R,F) l 1 luc quan h, trong R l tp cc thuc tnh v F l
tp cc ph thuc hm. Gi s F uc rt gn nhu sau :
o Ch tn ti cc ph thuc hm dng XA trong A l 1 thuc tnh
ca R
o Ch tn ti cc ph thuc hm khng tm thung ngha l XA thuc
F th A khng thuc X
Php Chiu:
Cho (R,F), Cho R1 l tp con ca R.
Ta gi (R1,F1) l kt qu ca php chiu (R,F) trn tp R1 nu v ch
nu
F1={ XY thuc F ; trong XY thuc R1 }

Ta gi (R1,F1) l kt qu ca php chiu m rng (R,F) trn tp R1
nu v ch nu
F1={ f : XY trong f tho cc iu kin (a), (b) }
(a): Nu f:XY thuc F , trong XY thuc R1 th f thuc F1
(b): Nu f:XY thuc F, trong Y thuc R1, X khng thuc
R1, XR1<>C
Th Ph thuc hm XR1 Y thuc F1

Ph thuc hm d tha i vi vic tm kho:
Ph thuc hm f c gi l d tha trong vic tnh ton xc nh
Kho ca (R,F)
tc l Nu K l kho ca (R,F) th K cng l Kho ca (R,F f)

Danh sch Tp hp chn trn: Cho K,L l Danh sch cc Tp hp.
Tc K,L l kiu Sets.

Trang 14/14
L c gi l Tp Chn Trn ca K nu nh mi phn t ca K u
l phn t ca L.

B. Thut ton loi Tp L
1. Khi nim Tp c L v Trung gian
Cho (R,F) l 1 luc quan h, trong R l tp cc thuc tnh v F l
tp cc ph thuc hm. Trn R ta xy dng cc tp thuc tnh sau :
- Nt gc
Cho G l 1 thuc tnh thuc R, G uc gi l nt gc nu :
vi mi XA thuc F th A <> G
- Nt l
Cho L l 1 thuc tnh thuc R, L uc gi l nt l nu :
vi mi XA thuc F th L khng thuc X
tn ti 1 XG thuc F
- Nt trung gian
Cho T l 1 thuc tnh thuc R, T uc gi l nt trung gian nu :
T khng l nt gc
T khng l nt l
- K hiu
Tp gc : Goc = {A thuc R/ A l nt gc}
Tp l : La = {A thuc R/ A l nt l}
Tp trung gian : Tg = {A thuc R/ A l nt trung gian}
- Nhn xt
R = Goc Tg La
Cc tp Goc, Tg, La l tch bit (c giao bng rng)

2. Cc b
2.1 B
Gi G l tp cc nt gc ca (R,F).
Nu K l mt kho ca (R,F) th G _ K. ( G l tp con ca K)
Tc l Nt gc phi tham gia vo cc kha.

Chng minh :
Cho G l 1 thuc tnh thuc tp Goc
V K l kha nn c ph thuc hm KG thuc Closure(F)
Nu G khng thuc K mu thun vi nh ngha G l thuc tnh
gc.
Vy G phi thuc K

2.2 B
Gi L l tp cc nt L ca R
Nu K l Kho ca R th LK=C ; ( L giao vi K bng
rng
Tc l L khng tham gia thuc tnh kho ca R

Chng minh :
Cho L l 1 thuc tnh thuc tp La
Xt Closure(K-L,F) :

Trang 15/15
Nu Closure(K-L,F) = R th L khng thuc K v nu nguc li s
tri vi gi thit K l kho.
Nu Closure(K-L,F) <> R
Xt Closure(K-L,F) :
Nu X thuc Closure(K-L,F) xong
Nu X khng thuc Closure(K-L,F) xong

2.3 B
Cho lc quan h R trong R l tp cc thuc tnh
v l tp cc ph thuc hm K l tp gm cc kha ca
(R.F).
Gi L l nt l _L l tp cc ph thuc hm trong m c
v phi l L
Ta xy dng lc quan h R-{L},F-F_L), trong R-{L}
l tp cc thuc tnh v -F_L l tp cc ph thuc hm i
K l tp cc kha ca R-{L},F-F_L). Ta c K l tp con ca
K

Chng minh :
Nhn xt : nu XY thuc F-F_La th XY thuc R-La
Cho Ki thuc K, tc Ki l 1 kha ca (R,F)
Ta c Ki l con ca R-La do nt l khng tham gia vo kha (b
2)
Vi XL thuc F_La ta c Closure(R,F-{XL}) = R-{L}

3. T tng thut ton
a. T vic xc nh cc nt l ta loi b chng v cc ph thuc
hm lin quan n chng. Nhu vy t (R,F) uc thu hp thnh
(R1,F1)
b. Sau khi thc hin buc a. c th trn (R1,F1) li xut hin 1 tp
cc nt l mi khi ta tip tc lp li buc a.
c. Khi khng cn pht sinh nt l mi, ta s tm kho trn (R1,F1)
sau duyt trn tp cc kho va tm uc cho ra cc kha
ca (R,F)

4. Xy dng thut ton

Procedure Projection(Var R1: Set; Var F1, F: FDs)
Begin
F1.Reset();
For each f:WZ thuc do
If (Z_R1) and ( W_R1) Then
Begin
F1:=F1 + f;
End;
End;

Trang 16/16
Procedure RemoveLeaf(Var R: Set; Var F: FDs)
Var XX,YY:Set;
F1: FDs;
Begin
L:=R;
While ( L <> 0) do
Begin
SumXY(XX,YY,F);
L:=YY XX; // L l tp nt L
If ( L<>0) Then
Begin
R:=R L; // Loi b cc nt L
Projection(R, F1,F);
F:=F1;
End;
End;
End;


C. Thut ton loi Tp Suy din
1. Khi nim
Cho (R,F), R l tp cc thuc tnh, F l tp cc ph thuc hm.
Cho K l tp con ca R , t E:= Closure(K,F) - K
E gi l Tp Suy din t K.
2. Cc b
2.1 B
Cho K l mt kho trong (R,F);
Gi K _ K;
E l Tp Suy din t K;
Th KE=C; ( K giao vi E bng rng )

Chng Minh:
Gi s KE<>C tc tn ti thuc tnh A e KE.
V A e E v E= Closure(K,F) K nn A e Closure(K,F).
Do tn ti pth X A vi X _ K
Vy K-{A} l siu kho nn mu thun vi gi thit K l kho.

2.2 B
Nu K l Tp cc thuc tnh Gc;
E l Tp Suy din t K;
Th Vi mi kho K ca (R,F) : K E = C;

Chng Minh:
V mi kha phi cha gc nn K _ K. Nh b C.1 nn ta c
th kt lun
K E = C
2.3 B
Nu K l Tp con ca mt Kho .

Trang 17/17
E l thuc tnh suy din t K.
Nu f: XE , trong X khng l tp con ca Closure(K,F)
Th f l d tha trong vic tm kho c cha K.

Chng Minh:
Ta s chng minh rng: Closure (K,F) = (Closure(K,F f).
Hay f: XE khng xut hin trong qu trnh tm Closure(K,F).
Thc vy, Thut ton tm Bao ng ch duyt tm cc f : WZ
tho iu kin
L W_Closure(K,F) v X khng l Tp con ca Closure(K,F) nn
f khng c chn trong qu trnh tm Closure(K,F).

Ta gi s rng K l mt kho, tc closure(K,F)=R;
Ta s chng minh rng Closure(K,F f)=R.
Thc vy, Gi s rng: Closure(K,F f)<>R, tc l E khng c
trong Closure(K,F f). V theo nhchng minh trn E phi thuc
Closure(K,F f)
Vy gi s Closure(K, F f)<>R l v l. K l mt siu kho trn
(R,F f)
Ta cng d dng thy rng K cng l kho ca (R,F f).

T B C.3 ta c mnh sau:

Mnh C.4:
Cho K l tp gc trong (R,F)
E l tp suy din t K.
Nu f: XEi trong Ei thuc tp E, X khng l tp con ca
Closure(K,F).
Th kho ca (R,F) cng l kho ca (R,F f)

Chng Minh:
V mi kha phi cha gc nn K _ K, K l kho. Nh b C.3
nn ta c th
kt lun C.4

Mnh C.5:
Cho K l tp gc trong (R,F)
E l tp suy din t K.
Gi s rng khng tn ti trong F cc ph thuc hm c dng
f: XEi trong Ei thuc tp E, X khng l tp con ca
Closure(K,F).
Ta thay i F nh sau:
(i) Vi mi f: XY thuc F, Y_E th thu gn F:=F f.
(ii) Vi mi f:XY thuc F, XE<>C th thay f bng
(X-E) KY
F sau khi thay i ta gi l F1.
Th kho ca (R,F) cng l kho ca (R E,F1).


Trang 18/18
Chng Minh:
Do mnh C.4 nn ta c th p dng vo (i)
(ii) Ta c X=(X-E) (XE). Hn na trong qu trnh tm kha
ta c th xut pht t tp gc K m XE _ Closure(K,F) nn ta
c th thay th XE bi K

3. T tng thut ton
a. T (R,F) ta bin dng thnh (R1,F1) , trong R1 < R
S cc ph thuc hm F1 nh hon F. Do phc tp tnh
ton gim i.
b. Ta tm tp kho chn trn ca (R,F) bng cch tm tp kho
trn (R1,F1).
c. Ta ch cn duyt tuyn tnh trn danh sch Kho chn trn
ch ra danh sch kho ca (R,F).
d. Vic loi b cc ph thuc hm du tha trong vic xc nh
kho, c th tm ra cc nt L mi v ta c th thu hp R1
uc nh hon na.
e. Sau mi buc tm mt kho, Tp Trung Gian T uc thu hp
nhanh.
Tc l nu G d kin l Tp thuc tnh tham gia kho, th :
T:= T Closure(G,F); l tp trung gian mi.

4. Xy dng thut ton chun

Procedure FindKeys( G, T, R: Set; Var F: FDs; Var Keys: Sets)
Var
A,C : Set;
Begin
C:= Closure(G,F);
If ( C=R) Then Begin
AddSuperKey(G,Keys); Return ;
End;
T:= T C; // Loi Tp Suy Din B C.1
For i:=1 To T.SizeOf() do
Begin
A:= T.BaseOf(i); T=T-A;
FindKeys(G A,T,R,F,Keys);
End;
End;


Trang 19/19

D. Thut ton phn r
1. Khi nim
Cho 3 danh sch kiu Sets : L1, L2 v L.
Ta nh ngha php ton X trn Sets nh sau: L:= L1 L2
- Vi mi Tp A thuc L1 th L:= L A. Tc l L.Add(A).
- Vi mi Tp B thuc L2 th L:= L B. Tc l L.Add(B).
- Vi mi Tp A thuc L1, Tp B thuc L2 th : L:= L (AB ).
Tc l L.Add(AB)
Th d 1:
L1={ A,BD } ; L2={ AC, E }
Th L={ A,E,BD,AC, AE, ABCD, BDE }
Th d 2:
Cho (R,F) trong R=ABCDE v F={ AB; BA; CD;
DE; EC }
Ta thy rng tp kho K ca (R,F) l:
K={ AC, AD,AE, BC,BD,BE }
Nu ta t R1=AB v F1= { AB; BA }
V R2=CDE v F2= { CD; DE; EC }
Gi L1 l tp kho ca (R1,F1). L1={A,B}
Gi L2 l tp kho ca (R2,F2). L2={ C,D,E }
Dt L:= L1 L2.
Th L= { A,B,C,D,E, AC,AD,AE,BC,BD,BE }
Nhn xt l K_L tc L l tp chn trn ca K.

Cc thut ton tm tt c cc Kho ca (R,F) c phc tp l s ln
thc hin hm tnh Bao Dng ca cc tp X no : Closure(X,F).
Vi th d 2 ni trn , c 6 kho , Gi s D phc tp l 6.
Vi (R1,F1) c phc tp l 2.
Vi (R2,F2) c phc tp l 3.
D tm L , ta c phc tp l 2 + 3 = 5 (nh hon 6, ch l: 6 = 2*3).

Vn uc t ra l : Nu c mt php phn r (R,F) thnh (R1,F1) v
(R2,F2) sau cho K1 K2 l tp chn trn ca K th phc tp tnh
ton cho vic tm tt c cc kho trn (R,F) uc gim thiu nhiu ln.
Ghi ch : K l tp cc kho ca (R,F), K1 l tp cc kho ca (R1,F1) ,
K2 l tp cc kho ca (R2,F2).


Trang 20/20

2. Cc b
1.1 B D.1:
Cho (R,F), cho php phn r p=(R1,R2) nh sau:
- (i) R=R1R2
- (ii) R1 R2 = C
- (iii) F= F1 F2
Trong F1 l chiu ca F trn R1, F2 l chiu ca F trn R2

Gi K1,K2 ln lt l tp cc kho ca (R1,F1),(R2,F2).
Gi K l tp kho ca (R,F).
Th K _ K1 K2 ( K1 K2 l tp chn trn ca K )

Chng minh:
Cho K l kha ca (R,F).
Gi K1=KR1 v K2=KR2
Thut ton tnh bao ng ca 1 tp cc thuc tnh c chng
minh l ng. Ta vit li thut ton sao cho vn tng ngvi
thut ton c nhsau:
Nhp
tp thuc tnh K, tp ph thuc hm F v K_R
tp thuc tnh K1, tp ph thuc hm F1 v K1_R1
tp thuc tnh K2, tp ph thuc hm F2 v K2_R2
Xut
K
+
= Newdep, bao ng ca K ng vi (F,R)
K1
+
= Newdep1, bao ng ca K1 ng vi (F1,R1)
K2
+
= Newdep2, bao ng ca K2 ng vi (F2,R2)
Phng php
Begin
Olddep=C
Olddep1=C
Olddep2=C
Newdep=K
Newdep1=K1
Newdep2=K2
(1*)While Newdep <> Olddep do
begin
(2*)While Newdep1<>Olddep1 or Newdep2<>Olddep2 do
begin
Olddep = Newdep
Olddep1 = Newdep1
Olddep2 = Newdep2
(3*)For each pth WZ e F do
If W c Newdep then
Newdep = Newdep Z

Trang 21/21

(4*)For each pth WZ e F1 do
If W c Newdep1 then
Begin
Newdep = Newdep Z
Newdep1 = Newdep1
Z
End

For each pth WZ e F2 do
If W c Newdep2 then
Begin
Newdep = Newdep Z
Newdep2 = Newdep2 Z
End
End
End

Ta thy :
do (i) v (ii) nn ta thay th (1*) bi (2*) l tng ng
do (iii) v (ii) nn ta c th sp li tp F sao cho f e F1 xut hin
trc ri n f e F2 nn ta thay th (3*) bi (4*) l tng ng

Vy y chnh l thut ton tnh :
(1) Closure(K,R,F)
(2) Closure(K1,R1,F1)
(3) Closure(K2,R2,F2

Do K l kho ca (R,F) nn Closure(K,R,F)=R tc l Newdep=R.
V do Newdep=Newdep1 Newdep2 v Newdep1 Newdep2=0
v Newdep1 _ R1 v Newdep2 _ R2 nn Newdep1= R1 v
Newdep2= R2
Ngha l K1 l siu kha trn (R1,F1) v K2 l siu kha trn
(R2,F2)
Hn na K1 cng l kha trn (R1,F1) v K2 l kha trn
(R2,F2) v gi s ngc li th K cng khng l kha trn (R,F)
iu ny mu thun vi gi thit.

Trang 22/22

1.2 B D.2:
Cho (R,F), cho php phn r p=(R1,R2) nh sau:
- (i) R=R1R2
- (ii) R1 R2 = C
- (iii) Closure(R1,F)=R1
- (iv) Closure(R2,F)=R2
t F1=Chiu m rng ca F trn R1
t F2=Chiu m rng ca F trn R2
Gi K1,K2 ln lt l tp cc kho ca (R1,F1),(R2,F2).
Gi K l tp kho ca (R,F).
Th K _ K1 K2 ( ngha l K1 K2 l tp chn trn ca K )

Chng minh:
Cho K l kha ca (R,F).
Gi K1=KR1 v K2=KR2
Gi F1= chiu ca F trn R1 v F1=F1-F1
Ta c F1=F1 F1
Gi F2= chiu ca F trn R2 v F2=F2-F2
Ta c F2=F2 F2
Do (iii) nn trong F khng tn ti pth XY sao cho X _ R1 v Y
e R2
Do (iv) nn trong F khng tn ti pth XY sao cho X _ R2 v Y
e R1
Nn ta c th phn hoch F v v thay th bi tp F ( tng
ng vi F ) nh sau :
F = F1 F1 F2 F2 trong :
- cc thnh phn l tch bit
- pth XY sao cho Y e R1 v XR2<>C c thay th
bi fe F1
- pth XY sao cho Y e R2 v XR1<>C c thay th
bi fe F2

Thut ton tnh bao ng ca 1 tp cc thuc tnh c chng
minh l ng. Ta vit li thut ton sao cho vn tng ngvi
thut ton c nhsau:
Nhp
tp thuc tnh K, tp ph thuc hm F v K_R
tp thuc tnh K1, tp ph thuc hm F1 v K1_R1, F1 uc sp
F1 ri F1
tp thuc tnh K2, tp ph thuc hm F2 v K2_R2, F2 uc sp
F2 ri F2
Xut
K
+
= Newdep, bao ng ca K ng vi (F,R)
K1
+
= Newdep1, bao ng ca K1 ng vi (F1,R1)
K2
+
= Newdep2, bao ng ca K2 ng vi (F2,R2)

Trang 23/23
Phng php
Begin
Olddep=C
Olddep1=C
Olddep2=C
Newdep=K
Newdep1=K1
Newdep2=K2
(1*)While Newdep <> Olddep do
begin
(2*)While Newdep1<>Olddep1 or Newdep2<>Olddep2 do
begin
Olddep = Newdep
Olddep1 = Newdep1
Olddep2 = Newdep2
(3*)For each pth WZ e F do
If W c Newdep then
Newdep = Newdep Z

(4*)For each pth WZ e F1 do
If W c Newdep1 then
Begin
Newdep = Newdep Z
Newdep1 = Newdep1 Z
End
For each pth WZ e F1 do
If W c Newdep1 then
Begin
Newdep = Newdep Z
Newdep1 = Newdep1 Z
End
For each pth WZ e F2 do
If W c Newdep2 then
Begin
Newdep = Newdep Z
Newdep2 = Newdep2 Z
End
For each pth WZ e F2 do
If W c Newdep2 then
Begin
Newdep = Newdep Z
Newdep2 = Newdep2 Z
End

End
End


Trang 24/24
Ta thy :
do (i) v (ii) nn ta thay th (1*) bi (2*) l tng ng
do nhn xt trn nn ta sp li tp F nn ta thay th (3*) bi
(4*) l tng ng.

Vy y chnh l thut ton tnh :
(1) Closure(K,R,F)
(2) Closure(K1,R1,F1)
(3) Closure(K2,R2,F2)

Do K l kho ca (R,F) nn Closure(K,R,F)=R tc l Newdep=R.
V do Newdep=Newdep1 Newdep2 v Newdep1 Newdep2=0
v Newdep1 _ R1 v Newdep2 _ R2 nn Newdep1= R1 v
Newdep2= R2
Ngha l K1 l siu kha trn (R1,F1) v K2 l siu kha trn
(R2,F2)
Hn na K1 cng l kha trn (R1,F1) v K2 l kha trn
(R2,F2) v gi s ngc li th K cng khng l kha trn (R,F)
iu ny mu thun vi gi thit.

1.3 Mnh D.3
Cho (R,F) , cho php phn r p=(R1,R2) sao cho:
- R= R1 R2
- R1 R2 = C
- Khng tn ti cc ph thuc hm trong F c dng
f:XY, m Y_R1 v X R2 <> C

Ta t E=Closure(R1,F) R1
Ta thu hp R2=R2-E

F1=Chiu m rng ca F trn R1
F2=Chiu m rng ca F trn R2
K l tp kho ca (R,F)
K1 l tp kho ca (R1,F1)
K2 l tp kho ca (R2,F2)
Th ta c kt lun sau: K _ K1 K2
( Trng hp c bit , Nu R2=C th (R,F) thu hp thnh
(R1,F1) )

T mnh D.3 ta suy ra mnh D.4 nh sau:

1.4 Mnh D.4
Cho (R,F), gi R1 l cc thuc tnh gc, R2=R R1.
Th ta phn r (R,F) tho mnh D.3




Trang 25/25

3. T tng thut ton
Xt (R,F) l luc quan h. Ta c th cn c vo mt s yu t ca cc
ph thuc hm trong F , t c th phn r (R,F) thnh cc (R1,F1),
(R2,F2),..(Rn,Fn) tho mnh D.3. Vic tm kho trn tng thnh phn
(Ri,Fi) c phc tp thp hon nhiu so vi (R,F).
D xc nh tp kho K ca (R,F), chng ta tnh:
T=K1 K2 K3 Kn.
Nhu vy K gm cc phn t thuc T , tho iu kin kho trn (R,F).

4. Xy dng thut ton
4.1 Thut ton tm Tch ca 2 Sets.
// Tm L=L1 x L2
Function MulSets(Var L1, L2 : Sets) : Sets;
Var X,Y: Set;
L : Sets;
Begin
L.Reset();
For i:=1 to L1.SizeOf() do L.Add(L1.Set(i));
For i:=1 to L2.SizeOf() do L.Add(L2.Set(i));
For i:=1 to L1.SizeOf() do
For j:=1 to L2.SizeOf() do
Begin
X:=L1.Set(i);
Y:=L2.Set(j);
L.Add(X Y);
End;

Return L;
End;


4.2 Thut ton chn lc cc Key t Tp chn trn.
Procedure SelectKeys( R: Set; F: FDs; Var Keys: Sets)
Var Temp: Sets;
K: Set;
Begin
Temp.Reset( );
For i:=1 to Keys.SizeOf () do
Begin
K:=Keys.Set(i);
If (CheckKey(K,R,F)) Then Temp.Add(K);
End;
Keys:=Temp;
End;




Trang 26/26


4.3 Thut ton phn r D.1

Procedure Decompose_D1( Var R, R1: Set; Var F, F1: FDs)
Var ok: Boolean;
Begin
Ok:=True; R1:=0; F1.Reset();
While ( Ok ) do
Begin
Ok:=False;
For each f: WZ thuc do
If ( R1=0) or ( W_R1) or ( Z_R1) then
Begin
R1:=R1 W Z;
F1:=F1 + f; F:= F f;
Ok:=True;
End;
End;
R:=R R1;
// R1 lun l Tp c kch thc nh nht
If (F1.SizeOf( ) =0) Then return;
If (R.SizeOf() < R1.SizeOf()) then
Begin
Swap(F1,F); Swap(R1,R);
End;
End;

4.4 Thut ton phn r D.2

Function Check_D2(Var R1,R2: Set; Var F : FDs): Boolean;
Begin
If (R1=0) Then return False;
If (R2=0) Then return False;
If ( Closure(R1,F)!=R1) Then return False;
If ( Closure(R2,F)!=R2) Then return False;
If ( R1 R2 <>0 ) Then return False;
Else Return True;
End;


Procedure Projection_Ext(Var R1: Set; Var F1, F: FDs)
Begin
F1.Reset();
For each f:WZ thuc do
If (Z_R1) and ( W*R1<>0) Then
Begin
W:=W*R1;

Trang 27/27
f.Y:=W; F1:=F1 + f;
End;
End;

// Minh ho mt cch phn r kiu D2
// V chuyn (R,F) v dng D1

Function Decompose_D2( Var R: Set; Var F: FDs): Boolean;
Var F1,F2:FDs;
R1,R2: Set;
Begin
For each f: WZ thuc do
If ( W.SizeOf( ) > 1) Then
Begin
R2:=W - Closure(R-(WZ), F);
R2:=Closure(R2 Z,F);
R1:=R R2;
If ( Check_D2(R1,R2,F)) Then
Begin
Projection_Ext(R1,F1,F);
Projection_Ext(R2,F2,F);
F:=F1 + F2;
Return True;
End;
End;
Return False;
End;


4.5 Thut ton phn r D.3

Function Check_D3(Var R1,R2: Set; Var F : FDs): Boolean;
Begin
If (R1=0) Then return False;
If (R2=0) Then return False;
If ( R1 R2 <>0 ) Then return False;
If ( Closure(R2,F)!=R2) Then return False;
For each f:WZ thuc do
If ( Z_R1) and (WR2 <>0) then return False;

Return True;
End;







Trang 28/28




Function Decompose_D3( Var R: Set; Var F: FDs): Boolean;
Var F1,F2:FDs;
R1,R2: Set;

Begin
For each f: WZ thuc do
If ( W.SizeOf( ) > 1) Then
Begin
R2:=W - Closure(R-(WZ), F);
R2:=Closure(R2 Z,F);
R1:=R R2;
If ( Check_D3(R1,R2,F)) Then
Begin
R2=R2 Closure(R1,F);
Projection_Ext(R1,F1,F);
Projection_Ext(R2,F2,F);
F:=F1 + F2;
R:=R1 + R2;
Return True;
End;
End;
Return False;
End;

Trang 29/29

V. Nhn xt - Kt lun
Theo nhu chng ta bit , bi ton tm tt c cc kho ca luc quan h
(R,F) l bi ton loi NP- Kh. tung chnh trong bi thu hoch ny , chng
ti c gng phn hoch (R,F) thnh cc luc quan h con sao cho tho mt
s tnh cht tm kho. V thi gian c hn chng ti chua c iu kin chi
tit, h thng li ni dung. Hon nu a cac thut toan xut phat tu Cam tinh, con
vai vn chua ch t che.
Chu ong trnh minh ho cho cc thut ton nu trn, chng ti trnh by bng
ngn ng C++ trn MS-Windows. Cc v d km theo chu ong trnh cng ch
nhm minh ho , khng phi l s liu thc t .
Du o i y la vai net v chu ong trinh minh hoa cho cac thut toan a nu o phn
trn.

Chuong Trnh Minh hoa Tim Khoa




Trang 30/30
A. Chu ong trnh gm 3 Box chnh:
1. Box nhp cc thuc tnh.
Tn thuc tinh cho phep dai ti a 16 ky tu , cac thuc tinh cach nhau du phy.
Thi du: BROKER,DIVIDEND,INVESTER,OFFICE,QUANTITY,STOCK
2. Box nhp danh sch ph thuc hm
Biu din phu thuc ham thi du:
STOCKDIVIDEND
INVESTER,STOCKQUANTITY
3. Box xut kt qu.
Chu ong trinh minh hoa 3 kiu kt qua:
- Tim khoa chun
- Tim khoa du a theo thut toan Loai bo cac thuc tinh La
- Tim khoa du a theo thut toan Phn Ra.

B. Mt s kt qu
1. Thi du 1:
Phng php chun:
Cho R=[BROKER,DIVIDEND,INVESTER,OFFICE,QUANTITY,STOCK]
Cho F={[STOCK]->[DIVIDEND];
[INVESTER]->[BROKER];
[INVESTER,STOCK]->[QUANTITY];
[BROKER]->[QUANTITY] }
Kt qu:
[BROKER,DIVIDEND,INVESTER,OFFICE,QUANTITY,STOCK];
Keys: 1 . ( S lung kho l 1 )
Keys={ [INVESTER,OFFICE,STOCK] }
App_Closure= 1 . ( S ln tnh Bao Dng )
App_FindKeys= 1 . ( S ln thc hin D Qui tm kho )
App_L= 0 . ( S thuc tnh L b hu l 0 )
App_D= 0 . ( S thuc tnh Suy Din b hu l 0)
App_Timer= 0 Secs . ( Thi gian tnh ton )
Phng php thut ton loi L:
Cho R=[BROKER,DIVIDEND,INVESTER,OFFICE,QUANTITY,STOCK]
Cho F={[STOCK]->[DIVIDEND];
[INVESTER]->[BROKER];
[INVESTER,STOCK]->[QUANTITY];
[BROKER]->[QUANTITY] }
Kt qu:
R=[BROKER,DIVIDEND,INVESTER,OFFICE,QUANTITY,STOCK];
Keys: 1 . ( S lung kho l 1 )
Keys={ [INVESTER,OFFICE,STOCK] }
App_Closure= 1 . ( S ln tnh Bao Dng )
App_FindKeys= 1 . ( S ln thc hin D Qui tm kho )
App_L= 3 . ( S thuc tnh L b hu l
App_D= 0 . ( S thuc tnh Suy Din b hu l 0)
App_Timer= 0 Secs . ( Thi gian tnh ton )

Trang 31/31


2. Thi du 2:
Cho R=[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z]
Cho F={[A,C]->[B]; [B]->[A]; [B,E]->[D]; [D,E]->[F]; [V]->[W]
[W]->[V]; [F]->[D]; [F,W]->[G]; [G,H]->[I]; [I]->[G]
[I,K]->[J]; [J,K]->[L]; [L]->[J]; [U,Z]->[K]; [X,Y]->[Z]
[Z]->[X]; [S,T]->[U]; [U]->[S]; [T,Y]->[Q]; [P,Q]->[R]
[R]->[P]; [M,N]->[O]; [O]->[M]; [L,O]->[R]; [S]->[Y] }
Phng php chun:
Kt qu:
R=[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z];
Keys: 32 .
Keys={[A,C,E,H,M,N,S,T,V,X]; [A,C,E,H,M,N,S,T,V,Z];
[A,C,E,H,M,N,S,T,W,X]; [A,C,E,H,M,N,S,T,W,Z];
[A,C,E,H,M,N,T,U,V,X];[A,C,E,H,M,N,T,U,V,Z];
[A,C,E,H,M,N,T,U,W,X]; [A,C,E,H,M,N,T,U,W,Z];
[A,C,E,H,N,O,S,T,V,X]; [A,C,E,H,N,O,S,T,V,Z];
[A,C,E,H,N,O,S,T,W,X]; [A,C,E,H,N,O,S,T,W,Z];
[A,C,E,H,N,O,T,U,V,X]; [A,C,E,H,N,O,T,U,V,Z];
[A,C,E,H,N,O,T,U,W,X];[A,C,E,H,N,O,T,U,W,Z];
[B,C,E,H,M,N,S,T,V,X]; [B,C,E,H,M,N,S,T,V,Z];
[B,C,E,H,M,N,S,T,W,X]; [B,C,E,H,M,N,S,T,W,Z]
[B,C,E,H,M,N,T,U,V,X]; [B,C,E,H,M,N,T,U,V,Z];
[B,C,E,H,M,N,T,U,W,X]; [B,C,E,H,M,N,T,U,W,Z];
[B,C,E,H,N,O,S,T,V,X]; [B,C,E,H,N,O,S,T,V,Z];

Trang 32/32
[B,C,E,H,N,O,S,T,W,X]; [B,C,E,H,N,O,S,T,W,Z];
[B,C,E,H,N,O,T,U,V,X]; [B,C,E,H,N,O,T,U,V,Z]
[B,C,E,H,N,O,T,U,W,X]; [B,C,E,H,N,O,T,U,W,Z]

App_Closure= 174398 . App_FindKeys= 10982 . App_L= 0
App_D= 0 . App_Timer= 34 Secs .

Phng php phn r:
1 . [A,B] : [A]->[B]; [B]->[A]
Keys = 2 : [A]; [B]
2 . [S,U] : [S]->[U]; [U]->[S]
Keys = 2 : [S]; [U]
3 . [X,Z] : [X]->[Z]; [Z]->[X]
Keys = 2 : [X]; [Z]
4 . [V,W] : [W]->[V]; [V]->[W]
Keys = 2 : [V]; [W]
5 . [M,O] : [M]->[O]; [O]->[M]
Keys = 2 : [M]; [O]
6 . [C,E,H,N,T] :
Keys = 1 : [C,E,H,N,T]
Kt qu:
R=[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z];
Keys: 32 .
Keys={[A,C,E,H,M,N,S,T,V,X]; [A,C,E,H,M,N,S,T,V,Z];
[A,C,E,H,M,N,S,T,W,X]; [A,C,E,H,M,N,S,T,W,Z];
[A,C,E,H,M,N,T,U,V,X];[A,C,E,H,M,N,T,U,V,Z];
[A,C,E,H,M,N,T,U,W,X]; [A,C,E,H,M,N,T,U,W,Z];
[A,C,E,H,N,O,S,T,V,X]; [A,C,E,H,N,O,S,T,V,Z];
[A,C,E,H,N,O,S,T,W,X]; [A,C,E,H,N,O,S,T,W,Z];
[A,C,E,H,N,O,T,U,V,X]; [A,C,E,H,N,O,T,U,V,Z];
[A,C,E,H,N,O,T,U,W,X];[A,C,E,H,N,O,T,U,W,Z];
[B,C,E,H,M,N,S,T,V,X]; [B,C,E,H,M,N,S,T,V,Z];
[B,C,E,H,M,N,S,T,W,X]; [B,C,E,H,M,N,S,T,W,Z]
[B,C,E,H,M,N,T,U,V,X]; [B,C,E,H,M,N,T,U,V,Z];
[B,C,E,H,M,N,T,U,W,X]; [B,C,E,H,M,N,T,U,W,Z];
[B,C,E,H,N,O,S,T,V,X]; [B,C,E,H,N,O,S,T,V,Z];
[B,C,E,H,N,O,S,T,W,X]; [B,C,E,H,N,O,S,T,W,Z];
[B,C,E,H,N,O,T,U,V,X]; [B,C,E,H,N,O,T,U,V,Z]
[B,C,E,H,N,O,T,U,W,X]; [B,C,E,H,N,O,T,U,W,Z]

App_Closure= 231 . App_FindKeys= 16 . App_L= 0
App_D= 11 . App_Timer= 1 Secs .

Ta c th so snh vi kt qu:
T l App_Closure = 174398 / 231
T l App_FindKeys= 10982 / 16.
T l App_Timer= 34 / 1


Trang 33/33
M L

Trang
Ti liu tham kho 2
Li ni u 3
Mt s khi nim co bn 4
Cc thut tan tm kha co bn 9
Quy uc v c php 9
Thut tan t trn xung 11
Thut tan t dui ln 12
Thut tan th 12
Xy dng mt s thut tan mi 13
Mt s quy uc 13
Thut tan lai tp l 14
Thut tan loi tp suy din 16
Thut tan phn r 19
Nhn xt v kt lun 29

You might also like