Chinh vi th~ Oracle da dua racong ngh~ Oracle Text giup tai Load dfr li~u ho~c duang dfin cua file VaGcQt cua bang, sau do t:;tochi m\lc Index tren cQt va cu6i cling la truy v~n d@tim ki
Trang 1TIM HIEU NGHIEN CUU CONG NGHE
GIANG VrEN HUONG nAN: TH4C sIno HoANG CU'ONGSINH VIEN THl/C HI:E:N: LE HUYNH LAN ANH
KHONG TH! MINH GIANG
Trang 2•
Truac hSt, em xin gai lai cam an sau s~c dSn thfty D6 Hoang Cuang.Trong su6t qua trinh thvc hi~n, thfty dil d~n d~t t?n tinh dS chung em hoan thanhdugc kh6a lu?n t6t nghi~p nay
Chung em cling xin gai lai cam an dSn quy thfty co khoa Cong Ngh~Thong Tin truang DHDL Ngo~i Ngu - Tin HQc TP.HCM dil d~y d6 va truySn d~tcho chung em nhiSu kiSn thuc quy bau trong su6t b6n nam hQc vua qua
Cu6i cling, chung em xin gai lai cam an dSn gia dinh va toan thS b~n be dilgiup dO'chung em trong qua trinh hQc t?P cling nhu thvc hi~n baa cao kh6a lu?nt6t nghi~p nay
XIN CHAN THANH CAM ON
Le Huynh Lan AnhKh6ng Thi Minh Giang
Trang 3MUCLUC• •
Trang 4HE THONG TRA ciruHO sa CONG VAN
1.1 Phan tich h~ th6ng tra clm h6 sa cong van 49
Trang 52.3.5 Tra clm theo loe;tihe, sa 652.3.6 Tra clm theo trich ySu cua he, sa 66
Trang 6Trong nhung nam g~n day, nganh tin hQc phil! tri@n h~t suc nhanhchong va co anh hUOng Ian d~n dai s6ng kinh t~ xa hQi 0 nhiSu qu6c gia trenth~ giai Nhfrng ung d\lllg cua khoa hQc may tinh da he>trQ'dt nhiSu cho congvi~c trong cac lInh VlJCkinh t~, giao d\lc, giai tri t:;ti cac qu6c gia co nSncong nghi~p phil! tri@ncao, con d6i vai nhfrng qu6c gia dang trong giai do:;tnphat tri@nthi cac ung dVng cua khoa hQc may tinh cling dang duQ'c u'ng d\lngrQng rai
Nuac ta dang trong giai do:;tnti~n hanh cong nghi~p hoa d~tnuac va tinhQc hoa h~ th6ng quan ly, do do tin hQc dang duQ'c xem la mQt trong nhfrngnganh mUi nhQn c~n t?P trung phil! tri@n.Nha co tin hQc rna vi~c quan ly clingnhu luu tru h6 so da tro nen dS dang va thu?n ti~n hon r~t nhiSu, giam rui ro
bi th~t l:;tchay m~t mat h6 so Cac ph~n mSm tin hQc ra dai khong chi ti~tki~m mQt IUQ'ngIan thai gian va cong vi~c cua nguai su dVng rna con giuptang tinh chinh xac va hi~u qua cua cong vi~c Tuy nhien, do IUQ'ngh6 so luutrli' ngay cang Ian nen vi~c tim ki~m sao cho nhanh chong va chinh xac dang
la m6i quan tam cua nhfrng nguai su dVng Chinh vi th~ Oracle da dua racong ngh~ Oracle Text giup tai (Load) dfr li~u ho~c duang dfin cua file VaGcQt cua bang, sau do t:;tochi m\lc (Index) tren cQt va cu6i cling la truy v~n d@tim ki~m duoli~u Dfr li~u 0 day co th@duQ'c tim theo tli' khoa, theo chu dS haytheo nQi dung cua tai li~u, giup cho nguai tim ki~m dli khong bi~t chinh xacmQt thong tin cua tai li~u vfin co th@tim th~y Nhu V?y d6i tUQ'ngva ph:;tm vinghien cu-u cua dS tai nay la tim hi@uvS cong ngh~ Oracle Text cling vai mQtchuang trinh ung d\lllg cua cong ngh~ Oracle Text VaG vi~c tra cuu h6 socong van
Do kinh nghi~m va kha nang con h:;tnch~ nen khong tranh khoi nhfrngh:;tnch~, thi~u sot trong qua trinh nghien cuu cung nhu xay dlJng chuang trinhu-ng dVng Chung em r~t mong duQ'c SlJhuang dfin, chi d:;tythem cua cac th~y
co d@co duQ'cnhfrng kinh nghi~m giup hoan thi~n them dS tai nay
Trang 81 GI01 TRIEU ORACLE TEXT•
1.2.2 (rng dl}ng phan lo?i tai l~u
Trang 9Chuang 1: Gi6i thi~u Oracle Text
4
Oracle Text:
• La thanh vien cua Oracle 9i
• f)ua ra mQt ch~t lm;mg tim ki~m van b~mt6t nh~t
• Chua nhfrng diSm ti~n bQ cho vi~c quan ly van ban, nhfrng dich V\ltai li~u va XML
• Co mQt t~p hQ'P nhfrng d~c trung dugc chuAn hoa cho nhfrng ungd\lng tim ki~m van ban da ngon ngfr
Oracle Text la cong ngh~ truy tim van ban cua Oracle va la mQt ph~n cuachuAn Oracle 9i Oracle Text su d\lng chuAn SQL dS t~o chi m\lc, tim ki~m vatruy v~n van ban va Uti li~u dugc luu trfr trong CSDL cua Oracle, trong filehay tren Web Oracle text co thS thl,fc hi~n truy v~n ngon ngfr tren tai li~u, timki~m van ban dung nhung chi~n lugc khac nhau bao g6m tim theo tu khoa,truy v~n theo ngu' canh, dung nhfrng phep toan lu~n ly dS n6i nhfrng tu khoa,tim nhu'ng ph~n tai li~u HTML hay XML Oracle Text tim r~t t6t d6i v6inhu'ng diu truy v~n h6n hgp
Oracle Text co thS tra k~t qua tim ki~m du6i nhiSu dinh d~ng khac nhaunhu: van ban khong co dinh d~ng, HTML va d~ng van ban thong thucmg.Oracle Text cung h6 trg nhfrng ngon ngfr phuc t~p va su d\lng cong ngh~ dungnhu'ng vi tri co lien quan dugc cai ti~n dS cai thi~n ch~t lugng tim ki~m
Trong su6t th~p ky qua, nhu'ng t6 ch(rc da phai d~u tu nhiSu vao nhfrng h~th6ng dS co thS truy c~p vao dfr li~u co c~u truc dugc lUll trfr trong h~ CSDL.MQt ngu6n dfr li~u l6n t6n t~i du6i d~ng van ban nhu tai li~u, nhfrng trangWeb, sach chi d~n, bao cao, thu di~n tu, fax va nhfrng bai gi6i thi~u thuemgkhong thS truy c~p dugc Nguai dung truy c~p vao thong tin cua t6 chuc, khi
hQ la nhfm vien vao m~ng nQi bQ hay khach hang xem qua bang m\lc l\lc, c~nmQt S\l'h6 trg tinh vi tu nhu'ng bQ ph~n tim ki~m van ban dS tim nhfrng diSu
hQ c~n
Oracle Text da dua ra mQt giai phap tim ki~m van ban hoan hao, cung c~pnhfrng chi m\lc van ban d~c bi~t cho nhfrng ung d\lng truy tim van ban nhu:tim trang Web, nhfrng danh sach thuang m~i di~n tU,nhfrng tai li~u phan 16p
va nhfrng ung d\lng thong thuang, kho van ban, nhfrng thu vi~n tai li~u
Trang 10Oracle Text co th@IQCva trich nQi dung tu han 150 ki@udinh d,;mg tai li~ukhac nhau nhu file Word, file PDF, HTML va XML D6ng thai, nhfrng taili~u cua nhiSu thu tiSng nhu: Anh, Phap, Tay Ban Nha, Nh~t, Han Qu6c,Trung Qu6c, cling duqc he>trq trong vi~c tim kiSm.
Vi~c diSu khi@nchi mvc trong Oracle Text duqc thvc hi~n b~ng cach dung
Oracle Enterprise Manager Nhfrng nguai qUlin tri va phat tri@n co th@xaydVng va bao tri index v6i cu phap SQL chu~n,
Co hai lo?i ung dVng truy v~n trong Oracle Text:
• Vng dVng truy v~n van ban (Text Query Application)
• Vng dVng truy v~n tai li~u (Document Query Application)
1.2.1 UNG DUNG TRUY VAN VAN BAN:
Mvc tieu cua ung dVng nay la cho phep nguai sll' dVng tim kiSm mQt do?nvan ban rna co chu'a cac thu~t ngfr tim kiSm (nghla la tim kiSm dv'a tren cac tukhoa do nguai sll' dVng cung c~p) thong thuang, van ban la mQt t~p hqp cac
tai li~u MQt ung dVng m?nh la co th@chi mvc va tim kiSm cac tai li~u co cac
ki@u dinh d?ng ph6 biSn nhu Microsoft Word, plain text, HTML hay XML
Vi dV co mQt giao di~n viSt du6i d?ng Web, ung dVng nay cho phep nguai SlrdVng truy v~n dSn mQt Website cua mQt cong ty nao do, sau do tra vS cac t~ptin HTML tuong ung v6i cau truy v~n rna nguai dung yeu c~u
f)@ xay dVng ung dVng lo?i nay, chung ta c~n t?O chi mvc CONTEXT
ho?c CTXCAT va truy v~n cac chi mvc nay b~ng cac toan tll' tuong ung la
COT AINS va CA TSEARCH
1.2.2 UNG DUNG TRUY vAN TAl LIEU:
"(rng dVng nay co kha nang phan lo?i tai li~u dva tren nQi dung cua no
Vng dVng nay cling duqc gQi la " dinh tuySn tai li~u" (document routing) hay
"ung dVng IQc" (filtering application) Vi dV mQt co quan bao chi c~n phanlo?i cac bai bao theo tung chung lo?i: chinh tri, tin tuc, th@thao, thi se dungu-ng dVng lo?i nay
D@ su' dVng ung dVng lo?i nay chung ta t?O chi mvc CTXRULE Lo?iindex nay chi mvc cac cau truy v~n duqc ding nghla a me>ilap. Khi tai li~u
Trang 11Chuang 1: Oi6i thi~u Oracle Text 6
Vi~c truy v~n tim kiSm co thS thlJc hi~n tren han 150 kiSu dinh d:;tngvan ban khac nhau va chung ta se th~y ro hi~u qua cua cong ngh~ nay khi cfintim kiSm tren IUQ'ngtai li~u van ban kha Ian
Trong Oracle Text, ling d1,1ngtruy v~n duQ'c chia lam hai lo:;ti la Ungd1,1ngtruy v~n van ban va Ung d1,1ngtruy v~n tai li~u Tuy theo m1,1cdich sudl)ng rna chung ta se quySt dinh dung ling d1,1ngtruy v~n nao cho phu hQ'P
Trang 122 GIro THI¥U SQL* LOADER:
2.1 Cae t?P tin Control
2.2 Cae t?P tin dfr li~u
2.3.Cae tae V\!eua SQL *Loader
2.3.1 Cae t?P tin n?p ph\! tn)' thai gian eh?y
2.3.2 Cae thong s6 hang l~nh eua SQL *Loader
2.4 Cae duang d~n n?p du' li~u eua SQL *Loader
2.5 f)uang d~n qui u6e va duang d~n tn,re ti~p
2.6 Cae rang bUQetoan vtfn, Trigger va n?p dfr li~u
2.7 LUll dfr li~ll
Trang 13Chuang 2: Giai thi~u SQL *LOADER 8
SQL * Loader Ia cong cv dugc su dVng bai DBA va nha phat triSn lingdVng dS n~p vao cac bang Oracle dfr Ii~u tu cac flat file (t~p tin van ban).Nocho phep cac DBA n~p co chQn IQc cac cQt nh~t dinh, hay b6 qua mQt s6 banghi
SQL * Loader co mQt s6 uu diSm so vai mQt s6 ngon ngfr I~p trinh chophep nhung cac I~nh SQL SQL * Loader co uu thS han vS tinh Iinh ho~t, dS
su dVng va hi~u nang No cho phep cac nha phat triSn nghI nhiSu vS vi~c n~p
dfr Ii~u han Ia chi tiSt cua vi~c rna t~p tin, dQc cac hang, thlJc hi~n cac I~nhSQL nhung, kiSm tra d~u end_of_line, va gielm dang kS yeu c~u do 16i
Vi~c su dvng SQL * Loader bao g6m hiSu cac thanh ph~n cua no £)~utien Ia dfi' li~u n~p, dugc Iuu trong mQt t~p tin dfr Ii~u (data file) Ta khong
nen nh~m Iftn t~p tin dfr li~u cua SQL * Loader vai cac t~p tin dfr Ii~u sever
cua Oracle dung dS Iuu cac d6i tugng Co'So'dfr Ii~u KS dSn Ia mQt t~p tin diSukhiSn dS n~p dfr li~u dugc dinh nghla trong mQt t~p tin control Nhfrng diSukhiSn nay bao g6m vi~c chi dinh cach SQL * Loader dQc cac record va phantlch chung thanh cac cQt (cac cQt nay se dugc diSn d~y du bang dfr Ii~ua m6i
vi trf) va cac d?c trung khac
SQL * Loader co thS:
• N~p dfr Ii~u tu nhiSu t~p tin dfr li~u nh~p co cac kiSu khac nhau
• Co thS xu Iy dinh d~ng chiSu dai c6 dinh hay biSn thien
• Xu' Iy cac trucYllgduoIi~u vai cac ham SQL truac khi chen dfr Ii~uvao cac cQt Co'So'dfr li~u
• H6 trg mQt dai rQng cac kiSu dfr Ii~u
• N~p nhiSu bang mQt I~n, n~p co chQn IQccac hang trong m6i bang
• KSt hgp nhiSu record v~t Iy vao mQt record logic dan
• Xu' Iy mQt record v~t Iy dan nhu nhiSu record logic
• T~o ra cac khoa duy nh~t theo sequence
• SUodVng t~p tin cua h~ diSu hanh dS truy xu~t cac t~p tin dfr Ii~u
• N~p dfr Ii~u tu rna hay bang tu
• T~o ra cac report dS dS sua 16i va n~p t~t Celcac record
• SU dVng cach n~p hi~u nang cao, n~p trlJc tiSp khong qua SlJ xu Iycua Oracle
Trang 142.1 cAc TAp TIN CONTROL:
Cac t~p tin control cung c~p cac thong tin cho Oracle vS mt;tc dich n?pdfr li~u : ten t~p tin dfr li~u va dinh d?ng, t~p ky tt;l'su dt;tng trong cac t~p tindfr li~u, kiSu dfr li~u cua cac truCmg trong t~p tin nay, cac truCmg duQ'c phancach nhu thS nao, nhfrng bang va CQtnao c~n n?p B?n c~n cung c~p t~p tincontrol cho SQL * Loader dS cho no biSt mQt s6 diSu vS ca sa dfr li~u no s~pn?p Du' li~u va thong tin cua t~p tin controlla b~t bUQc,nhu cac bang va caccQt c~n n?p va cac truong duQ'cphan cach nhu thS nao
Vi du 1: MQt t~p tin control ch(l'a dfr li~u co chiSu dai biSn thien
Vi dt;t sau la mQt t~p tin control va mQt dfr li~u kSt hQ'p No minh h9acach su dt;tngca ban va cu phap cac t~p tin control va hi~u qua cua nhfrng d~c
ta nay
variable-length, terminated enclosed data formatting
LOAD DATA
INFILE *
APPEND INTO TABLE address
FIELDS TERMINATED BY", ",OPTIONALLY ENCLOSED BY"
global_id,person _lname,person Jname,
M~nh dS load data thuong chi dinh b~t d~u nQi dung cua t~p tin control D6i v6i t~t ca t~p tin control, m~nh dS infile duQ'c yeu c~u No dinh
nghTa nai SQL * Loader co thS tim dfr li~u input dS n?p Su d\mg d~u (*) chidinh r~ng dfr li~u n~m trong t~p tin control
Trang 15Chuang 2: Gi6i thi~u SQL*LOADER 10
Hang kS cua t~p tin control la m~nh d@into table No bao cho SQL*
Loader bang dfr li~u se n1:1pvao va phuang phap se n1:1p.Tu khoa append dinh
nghia r~ng nhfrng record nay se chen vao ngay ca khi bang da:co dfr li~u khac
Tuy chQn khac g6m insert, cho phep dua cac record vao bang chi nSu bang r6ng, va replace v6i truncate, xoa t~t ca cac hang cua bang tru6c khi n1:1pdfr
li~u m6i
M~nh d@fields terminated by dinh nghia cac cQt se dugc ph an cach
nhu thS nao trong cac record dfr li~u co chi@udai biSn thien Cac ky t1,1'tachcac nguyen t6 dfr li~u dugc dong ngo?c kep MQt ky tv dong tuy chQn dugc
dinh nghia v6i m~nh d@optionlly enclosed by.
Hang kS dugc b~t d~u v6i mQt ngo?c dan, va trong do chi dinh cac cQtdugc n1:1ptrong bang NSu mQt cQt trong bang dugc li~t ke a day, no se khongdugc n1:1pv6i du' li~u tu t~p tin dfr li~u Dfr li~u n1:1pvao cac cQt se dugc chQnttl' cac record dfr li~u theo vi tri, v6im\lc d~u tien trong record di vao cQt d~utien, m\lc thu hai di vao cQt thu hai, V.v Vi d\l nay chua mQt truang hgp d?cbi~t v6i mQt ng01:1il~ - mQt cQt dugc dinh nghia bai SEQUENCE(MAX, 1),tuang tmg v6i mQt cQt trong bang se dugc n1:1pv6i mQt s6 sequence khonghi~n di~n trong t~p tin dfr li~u SQL* Loader h6 trg S1,1't1:10cac thong tin d?cbi~t dS n1:1pdu' li~u, nhu cac sequence va chuySn d6i kiSu dfr li~u
Cu6i cung trong bang la nhfrng truang hgp dfr li~u n~m trong t~p tincontrol, m~nh d@BEGINDAT A b~t bUQcphai co dS dinh nghia S1,1'ch~m dutc~a t~p tin control va b~t d~u dfr li~u M~nh d@nay khong c~n nSu dfi' li~unam trong mQt t~p tin rieng
Vi du 2: MQt t~p tin control chua dfr li~u co chi@udai c6 dinh
Tuy nhien, thuang thuang t~p tin control va t~p tin dfr li~u dugc tachrieng.Trong vi d\l sau day, tuy chQn duang d~n tr1,1'ctiSp (direct path) dugc
xac l~p boi m~nh d@option, dung cho vi~c d~t nhi@u thong s6 hang l~nh
(command line) dS n1:1pdfr li~u Trong vi~c n1:1pdirect path, SQL* Loader bo
qua h~u hSt cac ca chS xu ly l~nh SQL cua Oracle, dua cac t~p tin dfr li~u text
tr1,1'CtiSp vao cac kh6i dfr li~u
M~nh d@load data chi dinh nai b~t d~u cua t~p tin control M~nh d@
infile chi dinh mQt t~p tin dfi' li~u la datafile.dat M~nh d@badfile chi dinh
mQt t~p tin dS SQL* Loader co thS d?t cac record dfi' li~u khong thS n1:1pvao
ca sa du' li~u
Trang 16M~nh dS discardfile chi dinh mQt t~p tin chua cac dfr li~u bi b6 qua khi
co mQt m~nh dS when duQ'c chi dinh trong t~p tin control
M~nh dS replace duQ'c chi dinh v6i mQt m~nh dS into table, vi v~y tfrt
ca cac record trong bang duQ'c chi dinh se bi xoa va dfr li~u trong t~p tin duQ'cn?p vao Cac d?c ta cQt trong dfru ngo?c dan chi dinh boi m~nh dS positioncho biSt r&ng cac record trong t~p tin dfr li~u co chiSu dai c6 dinh NhiSum~nh dS into table chi dinh r&nghai bang se duQ'c n?p
people Jname POSITION (17:22) CHAR, area_code POSITION (24:27) INTEGER EXTERNAL, phone_number POSITION (29:36) INTEGER EXTERNAL) INTO TABLE address
Trang 17Chuong 2: Giai thi~u SQL *LOADER 12
Cac til' khoa clla t~p tin control:
Cac chu thich bat ki
Cac thong so command-line co the d?t trong t?P tincontrol nhu cac tuy chQn Format cua m~nh dS nay la(control=X,o tion=Y
Chi dinh co t(;10ra cac m\lc redo log doi vai dfr li~u n(;1phay khong Unrecoverable chi co thS su d\lng trongdirect load
Ho?c load ho?c continue_load can chi dinh trong t?P tin
control
Cun ca de dS dQc
Chi dinh t? k' tv cua t? tin dfr li~u
Gifr l(;1icac khaong trong dau t?P tin dfr li~u trong truemghgp cac phan cach rao khong hi~n di~n
Tu' khoa dinh n hIa nO'ibat dau cac record se dugc load
Tu khoa chi dinh ten cua t?P tin input MQt dau sao (*)theo sau tu khoa nay chi dinh cac record dfr li~u n~mtrong t?P tin control
Til khoa chi dinh ten cua t? tin badTil khoa chi dinh ten cua t?P tin discard
Cho phep X Ian huy bo truac khi rna t? tin dfr li~u keCho he X Ian hu bo truac khi cham dut n(;1
Thao tac bang dugc thgc hi~n Insert d?t cac hang vanmQt bang r6ng.Append them cac hang van mQt bang.Replace va Truncate xoa cac hang hi~n hanh trong bang
va d?t cac record dfr li~u van ban Til khoa chi dinh ten ban , dun truac tablename
Doi vai n(;1pduemg dfin trvc tiep (direct path load), chidinh dng dfr li~u dff dugc s~p thu tvtheo cac index
SU d\lng khi them cac hang hay n(;1pmQt lugng dfr li~unho van mQt ban Ian ti s6 han la 1:20 ha nho hon
Load Continue load Data
Characterset Preserve blanks
Single rows
Unrecoverable Recoverable
Append Replace Truncate
Into table name
•
Trang 182.2 cAe TAp TIN nIT LIEU:
••
Cac t~p tin dfr li~u co thS co hai format Dfr li~u Oracle su d\lng dS n~pvao bang co thS 0 d~ng truemg chiSu dai c6 dinh hay chiSu dai biSn thien dugcphan cach b~ng mQt ky tv d~c bi~t.Ngoai ra, SQL * Loader co thS xu ly ky tv
o d~ng nhi phan hay d~ng ky tV.NSu dfr li~u 0 d~ng nhi phan, t~p tin dfr li~ucfin co chiSu dasi c6 dinh Hinh I cho vi d\l vS cac record co chiSu dai c6dinh
Ngugc v6i truemg dfr li~u co chiSu dai c6 dinh, cac truang dfr li~u cochiSu dai biSn thien chi du dai dS chua dfr li~u Khong nhu hinh 1, mQt record
co chiSu dai biSn thien se chi co b6n ky tv d6i v6i truang thu hai cua recordthll' ba Thong thuong, cac truemg dfr li~u trong cac record co chiSu dai biSnthien dugc ch~m dut b~ng mQt ky tv d~c bi~t hay bao quanh boi cac ky tv d~cbi~t Nhu'ng tu)' ch<;mnay gQi tuang ung la terminated field va enclosed field
Truong 1: cac cQt 1-7 Truong 2: cac cQt 8-15
Hinh 1: Cac record co chiSu dai c6 dinh
Terminated field - han cach (,
co thS xem la mQt record KiSu record nay gQi la record v~t ly MQt record v~t
ly trong mQt t~p tin dfr li~u co thS tuang ung v6i ho~c rnQt hang trong mQtbang hay nhiSu bang M6i hang trong mQt bang cling dugc xem la mQt record,
va kiSu record nay xem nhu la mQt record logic Trong mQt s6 truong hgp,cac record logic hay cac hang cua mQt bang co thS tuang ung v6i mQt vairecord v~t ly cua rnQt t~p tin dfr li~u Trong nhfrng truemg hgp nay,SQL *Loader h6 trg vi~c su d\lng cac truang lien t\lC dS anh x~ hai hay nhiSu record
Trang 19Chuang 2: Gi6i thi~u SQL *LOADER 14
v~t ly vao m(>trecord logic M(>ttruang co thS duQ'c dinh nghia theo cac cach
sau:
• M(>ts6 c6 dinh cac record v~t ly luon duQ'c kSt hQ'pv6i nhau dS t(;10
ra m(>trecord logic khi n(;1pbang
• Cac record v~t ly duQ'c ghep nSu m(>ttruang lien tvc chua m(>tchu6i
d~c bi~t
• Cac record v~t ly duQ'c ghep l(;1inSu m(>tky tV'd~c bi~t xu~t hi~n nhu
ky tv cu6i cung khong r6ng
SQL* Loader ch~p nh~n cac thong s6 d~c bi~t co thS anh hUOng cachn(;1pdl1'li~u, g9i la cac thong s6 hang l~nh (command-line parameters) Nhl1'ngthong s6 nay - bao g6m ID Stl' dVng khi n(;1pdl1'li~u, ten t~p tin dl1'li~u, va tencua t~p tin control - la t~t ca cac mvc SQL * Loader c~n dS di@ukhiSn vi~c n(;1pduoli~u Nhl1'ng thong s6 nay co thS dua vao SQL * Loader tren hang l~nh haytrong m(>tt~p tin thong s6 d~c bi~t g9i la partile
2.3.1 cAc TAp TIN NAP PHU TRO THOI GIAN CHAY (RUNTIME):
NSu trong khi thvc hi~n vi~c n(;1pdl1'li~u, SQL * Loader g~p cac recordkhong thS n(;1p,record bi tu ch6i va dua vao m(>tt~p tin d~c bi~t g9i la m(>tt~p
tin bad Record sau do co thS xem xet dS tim ra v~n d@.Cac di@uki~n co thS
khiSn cho m(>t record bi tu ch6i la xam ph(;1mrang bu(>c toan vyn, ghep saikiSu dl1'li~u, va cac 16i khac trong xu ly truang
Ngoai ra SQL * Loader cho user cac Iva ch9n dS tu ch6i dl1' li~u dVatren m(>ttieu chi d~c bi~t Tieu chi nay duQ'c dinh nghia trong t~p tin control
nhu la m(>tph~n cua m~nh d@when NSu SQL * Loader g~p m(>trecord khong thoa m~nh d@when, record duQ'c d~t vao m(>t t~p tin d~c bi~t g9i la t~p tin
discard Vi dV thu hai trong t~p tin control 0 ph~n tru6c mo ta kiSu n(;1pnay.
Trong ca hai truang hQ'p, SQL * Loader ghi cac record 16i hay bi b6 quavao t~p tin thich hQ'ptheo dung dinh d(;1ngkhi n(;1pvao SQL * Loader tu t~p tinduoli~u D~c trung nay cho phep sua chl1'ad@dang va n(;1pl(;1i,dS su dVng l(;1it~p tin control g6c
Trang 20Hinh 2.1: rno ta qua trinh rnQt record dfr li~u tu hIc xufrt hi~n trong t~p
tin dfi' li~u dSn luc dugc n~p vao Co' So' dfr li~u
T~p
tin bad
OKOracle
T~p tinDiscardLo~ibo
SQL* Loader tinhm~nh dS whenOK
SQL*
Loader xuDQc
Ban ghi t~ptin dfr li~u
Hinh 2.1: Dong diSu khi@nd@lQc record
Viec ghi l~i S\f th\fc thi cua SQL* Loader diSn ra trong t~p tin log NSu
vi bfrt ky rnQt ly do gi rna SQL* Loader khong th@t~o ra rnQt t~p tin log, S\fth\fc thi chfrrn dtrt T~p tin log chua sau thanh ph~n
• Ph~n header chua phien ban (version) SQL* Loader va ngaych~y
• Ph~n thong tin toan Cl)Cchua ten tfrt ca cac t~p tin input vaoutput, ~ac thong sa hang l~nh va rnQt d~c ta ky t\f lien tl)C nSu
• Ph~n thong tin nqp bang li~t ke sa bang dugc n~p va sa record
khong dugc n~p, vi dl) do rang bUQctoan v~n
Trang 21Chuong 2: Giai thi~u SQL*LOADER 16
• Phfin th6ng ke t6ng hQ'Pmo ta khong gian Slr dVng cho manglien kSt, th6ng ke n~p,thai gian chfim dut, thai gian tieu hao vathai gian CPU
2.3.2 cAe THONG s6 HANG LENH (command-line parameter)CUASQL*LOADER:
Cac thong s6 sau duQ'c chfip nh~n boi SQL* Loader tren hang l~nh.Nhfrng tuy ch<;mnay co thS dua cho SQL* Loader nhu cac thong s6 hang l~nhtheo d~ng PARAMETER= value Ngoai ra, cac thong s6 co thS dua choSQL* Loader trong illQt thanh phfin khac gQi la parfile Cac thong s6 co thSchi dinh trong parfile nhu option=value Sau day la cac thong s6 co s~n trongSQL* Loader Chli y r~ng mQt s6 thong s6 co tuy chQn trung l~p co thS xacl~p trong t~p tin control, chi dinh r~ng co nhiSu phuong phap dS dinh nghiacung mQt vi~c n~p dfr li~u Slr dVng SQL * Loader
So Ian hu? bo de cham dut n~ m~c dinh: ALL)
So record 10 ic bo ua (m~c dinh: 0)
So record logic n~ (m~c dinh: all)
So 16i de cham dill n~ (m~c dinh:50)
So hang trong mang lien ket dUOng dfin quy uac
(conventional path bind array) hay gifra cac lfin luu dfrli~u duang dfin trgc tiSp (duang dfin qui uac :64, dUOngdfin trgc tiSp : all)
Kich thuac man lien ket duan dfin ui uac b es
Bo qua cac message gifra cac Ian ch~y (header, feedback,errors, discards
Sl'l'dVng n~p dUOngdfin trgc tiep (m~c dinh : FALSE)Ten t~ tin thon so
Thgc hi~n n~ son son m~c dinh : FALSE)T~p tin dfr li~u de dinh vi extend
Trang 22• SUo dl}ng thong sf, :
Sau day chung ta se tim hiSu cach su d\lilg cac thong s6 Chu y r~ngSQL * Loader la mQt thu t\lC bi~t cua Oracle Khong thS ch?y no tu d~u nh~cl~nh SQL * Plus tru khi dugc dUng tru6c b~ng l~nh thich h9'P dS thoat t?m
thai hay thoat luon SQL * Plus dS tra vS h~ diSu hanh Cac thong s6 dugc li~t
ke a bang tren co mQt thli t\f d~c bi~t - nSu b?n mu6n, b?n co thS chi dinh cacgia tri cua tUng tu)' chQn rna khong cfin gQi ten tu)' chQn, miSn la cac gia trituang ling theo vi tri trong danh sach tren Nhu v~y, hai l~nh th\fc hi~n SQL *Loader sau day la nhu nhau, m~c dfiu cac tu)' chQn thong s6 khong dugc duara
SQLLDR scott/tiger load.etlload.log load bad load.dat
SQLLDR USERID=seott/tiger CONTROL=load.etl LOG=load BAD=load.bad DATA=load.dat
Ngoai ra, s\f pha trQn cac thong s6 ten va vi tri co thS su dlfng MQt diSucfin nh6 la cac thong s6 vi trl chi co thS d~t tren hang l~nh tru6c cac thong s6ten chu' khong thS d~t sau Nhu v~y, l~nh dfiu tien sau day la hgp 1~,con l~nhthu' hai thi khong
SQLLDR scott/tiger load.etl DATA=load.dat SQLLDR DATA=load.dat scott/tiger load.etl
Nhu da noi, mQt tu)' chQn khac dS chi dinh cac thong s6 hang l~nhtrong mQt parfile Parfile sau do co thS dugc tham tro trong hang l~nh
Trang 23Chuang 2: Giai thi~u SQL *LOADER 18
1~nh v~lOt?P tin control, m~nh d@options cAn su d\lng trong t?P tin control.
M~nh d@nay nen d?t a dAu t?P tin, truac m~nh d@load Cac thong s6 hang 1~nh trong m~nh d@options nen la thong s6 gQi ten, va co thS bi b6 qua boi
cac thong s6 dua trong hang I~nh hay trong partile T?p tin control trong vi d\lthu hai cua phAn truac minh hoC;!vi~c su d\lng thong s6 trong t?P tin control
2.4 cAe DUONG DAN NAP DU LIEU SQL* LOADER
SQL* Loader cung c~p hai IoC;!iduang dftn dfr li~u (data path) d6 nC;!pdfrli~u Chung la duang dftn qui uac (conventional path) va duang dftn tn,rc tiSp(direct path).Trong khi duang dftn qui uac su d\lng mQt biSn thS cua SQL
insert vai mQt giao tiSp mang dS cai thi~n hi~u su~t nC;!p,duang dftn tn,rc tiSp
IC;!itranh S\l' d\lng dQ RDBMS b~ng cach chuySn dfr Ii~u cua t?P tin flat vaocac kh6i nay tr\l'c tiSp vao Co'so dfr li~u Vi~c nC;!pdfr Ii~u duang dftn qui uachoan thanh vai vi~c xu Iy SQL, va cung yeu cAu DBWR th\l'c hi~n vi~c ghith\l'CS\l'len Co'so duoli~u
Hinh 3 minh hoC;!S\l' khac nhau giua vi~c nC;!pduang dftn qui uac vaduang dftn tr\l'c tiSp Trong mQt IAnnC;!pduang dftn qui uac, SQL * Loader dQcnhi@u record dfr li~u tu t?P tin input vao mQt mang lien kSt Khi mang dAy,SQL * Loader dua dfr li~u cho Co'chS xu Iy cua Oracle SQL hay bQ t6i uu hoa
dS chen Trong nC;!ptr\l'c tiSp, SQL * Loader dQc cac record tu t?P tin du Ii~u,chuySn tr\l'c tiSp vao cac kh6i du Ii~u cua Oracle va ghi chung len rna, b6 quahAu hSt vi~c xu' Iy dfr li~u cua Oracle Thai gian xu Iy cua tuy chQn naythuang nhanh han nC;!pduang dftn qui uac
Tuy chQn nC;!pduang dftn tr\l'c tiSp duQ'c chi dinh nhu thong s6 hang1~nh, va nhu cac thong s6 khac, no co thS chi dinh theo ba cach - tren hangI~nh nhu thong s6 gQi ten hay thong s6 vi tri, trong mQt t?P tin thong s6, hay
trong rnQt t?P tin control nhu la mQt phAn cua m~nh d@options DAu tien khi
nC;!pduang dftn tr\l'c tiSp, SQL * Loader gQi Oracle dS d?t mQt khoa (lock) trenbang dang duQ'c chen, va gQi Oracle IAnnfra khi ch~m du"tdS b6 khoa Trong
khi nC;!p,SQL * Loader gQi Oracle vai IAndS I~y cac extend mai khi cAn va h6i
ph\lc highwatermark khi vi~c lUll tru du Ii~u yeu cAu MQt IAn luu du Ii~u
trong nC;!pduang dftn tr\l'c tiSp tuO'ng duang vai mQt commit Sau day la cac
hanh dQng cua nC;!pduang dftn tr\l'c tiSp:
Trang 24Cac kh6i rieng phc1nkhong duQ'c su d\lng, vi v~p qua trinh server khong
bao gia duQ'c yeu cc1udS keu dQc Co' So' dfr li~u.
• Khong su dVng l~nh SQL insert
• Mang lien kSt khong duQ'c su dVng - SQL * Loader t~o ra cac kh6i
Co' So' dfr li~u va ghi chung trgc tiSp vao nai luu trfr £)~c trung nay
cho phep ti~n lch tranh dung dQ v6i cac l~nh SQL khac trong kh6icache cua bQ d~m Co' So' dfr li~u
• £)uang dfin trgc tiSp cho phep s~p thu t\1'truac cac tu)' chQn, t~n
dVng cac thu~t toan s~p xSp thu t\1't6c dQ cao cua h~ diSu hanh, nSu
co £)iSu nay tang t6c vi~c t~o index va primary key
• Do SQL * Loader ghi dfr li~u tr\1'ctiSp len rna, trong truang hQ'PthShi~n hong, t~t ca cac thay d6i trong lc1nlUll dfr li~u gc1nnh~t se contren rna, gi6i h~n nhu cc1uphvc h6i
Tru6c khi th\1'chi~n n~p dfr li~u su dVng SQL * Loader, DBA cc1nxacdinh Slr dVng kiSu n~p nao Co hai kiSu duang dfin co s~n dS dung, va bang1i~t ke cac tinh hu6ng su dVng cho mQi lo~i n~p Hai lo~i n~p co s~n la duang
dfin qui u6c va duang dfin tr\1'ctiSp Noi chung, duang dfin qui u6c ch~m han
trgc tiSp do no xu ly t~t ca cac rang bUQcva index trong Co' So' dfr li~u Oraclekhi dfr li~u n~p.Trong khi do, duang dfin tr\1'ctiSp co thS d~t mQt s6 hi~u nangc~nh tranh v6i duang dfin qui u6c trong mQt s6 tinh hu6ng nh~t dinh do giaot~t ca cac nhi~m vv cho Oracle server
Na dU"{rn d~ntrue ti~
Khi n~p mQt l\1'ang dfr li~u 160
tron mQt thai ian n ~n
Can Slr d\lng n~p song song de tang
hi~u nang n~p
Can n~p mQt t~p ky t\1'khong duQ'c
h6 trQ'a session hi~n hanh, hay khi
n~p qui u6c t~p ky t\1't~o ra l6i
Khi n~p dfr li~u vao cac bang Cluster
Khi n~p mQt lUQ'ngnho dfr li~u vao mQtbang index l6n hay mQt bang 160 v6inhiSu rang bUQctoan v~n - do vi~c xoa
va t~o l~i mQt index i60 cc1nt6n nhiSu
thai gian han la chen vai hang vao
bang va index
Khi ap dVng cac tac vv hang dan(single row) hay cac ham SQL dS n~pdfr li~u
Trang 25Chuang 2: Giai thi~u SQL*LOADER 20
vu diSm cua duemg d~n qui uac t~p trung chu ySu a S\f ki~n la no it bipha hong do cac rang bUQccua bang N~p duang d~n qui uac lam vi~c cungnguyen t~c vi~c chen dfr li~u chu~n, nhung nhanh han nhiSu Cac record dugcn~p tren duang d~n qui uac se c~p nh~t cac index kSt hgp vai mQt bang, vathuang tuang tlJ nhu cac qua trinh chuySn tac tr\fc tuySn
Ngugc l~i, n~p duang d~n trlJc tiSp co 19i trong nhfrng tinh hu6ng c~nphai n~p mQt lugng Ian dfr li~u trong mQt thai gian ng~n N~p duang d~n trlJctiSp bo qua "slJ kiSm tra hai quan" cua Co' sa dfr li~u Oracle, la cac rang bUQctoan v~n va cac index bang.Tuy nhien, sau khi hoan thanh n~p duang d~n tn,l'ctiSp, ta c~n ap d~t l~i cac rang bUQcva t~o l~i cac index truac khi user co thStruy xu~t vao dfr li~u Vtl'an~p
Hinh 3: Load duang d~n qui uac va duang d~n tr\fc tiSp
Trang 26Tu khoa disabled _ contraints la tuy chQn va duQ'Ccung c~p dS dS dQc;
khi Sll' dVng m~nh dS exceptions, ten cua bang chi dinh cfin phai co s~n.NSu
m~nh dS nay khong duQ'c su dVng trong n<;lpdli' li~u thi cac rang bUQc toan
v~n cfin duQ'c kich hO<;ltb~ng tay thong qua l~nh alter table Khi rang bUQc
duQ'c kich hO<;ltl<;li,toan bQ bang duQ'c kiSm tra va bftt ky 16i nao xay ra seduQ'c d~t trong mQt bang 16i chi dinh khi n<;lp.Tuong tv nhu cac rang bUQctoan v~n, cac gia tri m~c dinh khong thS ap d~t 0 muc bang trong n<;lpduang
d~n tr\fc tiSp Thay vao do, t?P tin control nen su dVng m~nh dS defaultif dS
chi dinh biSu thu'c m~c dinh Noi cach khac, chi dli' li~u co s~n trong t?P tin dli'1i~u va gia tri default chi dinh tUOng minh duQ'C n<;lpvaobang qua SQL *Loader N Su record dli' li~u cua cQt chua NULL, gia tri chen vao cling laNULL
Cac trigger insert bi va hi~u hoa khi b~t dfiu qua trinh n<;lptr\fc tiSp, co
nghla r~ng trigger khong th\fc hi~n d6i v6i bftt ky dli' li~u duQ'c chen nao trongn<;lpduong d~n tr\fc tiSp Khong nhu cac rang bUQc, cac trigger khong ap d~tl<;licho tftt ca cac hang cua bang khi trigger duQ'c kich hO<;ltl<;li.NSu cfin th\fchi~n mQt hanh dQng trong trigger cua n<;lpduang d~n tr\fc tiSp, ta nen sao chephanh dQng nay theo mQt cach boi ung dVng, ho~c qua mQt rang bUQctoan v~n,mQt trigger update, hay mQt store procedure
Trang 27Chuang 2: Giai thi~u SQL*LOADER
Index va duo-ng d~n true ti~p:
22
MQt trong OOfrngly do khiSn cho auang d~n qui uac bi ch?y ch~m han
n?p auang d~n tn,rc tiSp la vi trong auang d~n qui uac cac index auQ'c c~pnh~t m6i khi co mQt hang auQ'c chen vao NguQ'c l?i, n?p auang d~n trgc tiSp
se t?O l?i index luc cu6i MQt cach ly tuong, dfr li~u se auQ'c s~p thu tg l?i khiat! n?p xong trong auang d~n trgc tiSp, vi~c index aan giim va OOanh NSutinh hu6ng nay xay ra, Oracle se khong yeu c~u bQ nha t?m as s~p thu tg vat?O index
Tuy nhien, nSu dfr li~u chua auQ'c s~p xSp truac, Oracle se yeu c~ukhong gian t?m as s~p thu' tg va t?O index
SLrdt,lllg cong thuc sau as xac ainh kich thuac yeu c~u theo byte chokhong gian t?m:
Trong cong thuc, 1.3 a?i di~n cho s6 byte trung binh c~n thiSt as s~pthu' tg mQt danh sach aiSn hinh dfr li~u chua s~p thu tg Vung gia tri Clla h~ngnay la 1.0 aSn 2.0, trong ao 1.0 a?i di~n cho input at! s~p thu tg va 2.0 a?idi~n cho input at! s~p thu tg nguQ'c
SQL* Loader co thS as index 0 mQt tr?ng thai g9i la tr?ng thai n?p tn,rctiSp (direct load state) trong tiOOhu6ng vi~c n?p trgc tiSp khong thaOO congoDiSu nay co thS index khong thS SLrdt,lllg va c~n xoa va tai t?O l?i d6i vai du'li~u hi~n hanh trong bang MQt query tren INDEX_NAME va tr?ng thai trenview tg aiSn dfr li~u DBA_INDEXES se cho th~y mQt index co n~m trongtr?ng thai n?p tr\l'c tiSp hay khong Cac tinh hu6ng sau co thS khiSn SQL*
Loader as mQt index 0 mQt tr?ng thai n?p trgc tiSp
• SQL* Loader ch?y qua khong gian Clla index
• ThS hi~n hong khi t?O index
• Cac gia tri trung l~p trong mQt khoa duy nh~t hay primary key
• Dli' li~u at! s~p thu tg truac khong n~m trong thu' tg chi ainh boim~nh as sort index Cllat~p tin control
Trang 282.7 LUU nIT LIEU:
SQL * Loader co thS luu dfr li~u trong n?p dUOng dfin tn.rc tiSp b~ngcach su dVng data save Hinh 3 cho thlly r~ng vi~c n?p dUOng dfin tn.rc tiSpthinh thoimg truy xullt Oracle dS yeu c~u cac extend mai va diSu chinh muc
cao nhllt clla d6i tUOng dang n?p Nhfrng ho?t dQng nay duqc yeu c~u nhu la
mQt ph~n Clla data save T~n s6 SQL * Loader th\1c hi~n mQt data save duQ'cchi dinh bai mQt thong s6 hang l~nh ROWS, va gia tri m~c dinh Clla ROWStrong load trvc tiSp la all. M~c d~u vi~c thvc hi~n mQt data save trong n?pduong dfin trvc tiSp giam hi~u nang n?p, thuOng co nhfrng ly do b~t bUQcdSthinh thoang thv'c hi~n chung thay vi dqi cho dSn khi n?p chllm dlit MQt ly dochinh dang dS ch<;mn?p dUOng dfin trvc tiSp la nhu c~u n?p mQt luqng Ian du'li~u, vi V?y ta nen cai d~t dS co thS thvc hi~n vai l~n data save trong khi n?p
Vi dV, vi~c n?p 5 tri~u hang co thS yeu c~u mQt l~n data save m6i tri~u hang
Trong mQt n?p duong dfin trvc tiSp, cac kh6i co sa dfr li~u d~y duqcghi vao co sa dfr li~u truoc khi bang d~y MQt data save chi dan gian di
chuySn mu'c cao nhllt Clla bang M~c dli tuang t\1 khai ni~m commit trong xu
ly cac l~nh SQL thong thuong, mQt data save khong gi6ng nhu mQt commit.
MQt s6 khac bi~t chinh la:
• Cac index khong duqc update bai mQt data save
• Cac tai nguyen ben trong khong duQ'c data save tra l?i
• Cac chuySn tac khong duqc kSt thuc bai mQt data save.
Trang 29Chuang nay cung gi6i thi~u vi~c load dfr li~u va nhu'ng file c~n thiSt
cho qua trinh load dfr li~u T?p tin control cung c~p cac thong tin cho Oracle
vS m\lc dich n~p dfr li~u : ten t?P tin dfr li~u va dinh d~ng, t?P ky tlJ Slr d\lngtrong cac t?P tin dfr li~u, ki~u dfr li~u cua cac truemg trong t?P tin nay, cactruong dugc phan cach nhu thS nao, nhfrng bang va cQt nao c~n n~p va t?P tin
control la c~n thiSt cho vi~c n~p dfr li~u T?p tin data chi ra nhfrng du' li~u nao
se dugc n~p vao T?p tin bad dugc chi dinh chua nhfrng record bi l6i khong th~ load vao cQt, con t?P tin discard dugc chi dinh chua nhfrng record khong
thoa yeu c~u khi co mQt m~nh dS when dugc chi dinh trong t?P tin control
Ngoai ra trong Chuang 2 cung gi6i thi~u hai lo~i duong d~n n~p dfrli~u la Duong d~n quy u6c va Duong d~n trlJc tiSp MQt s6 tham s6 thuemgdugc Slr d\lng trong control file dung cho vi~c load dfr li~u cung dugc gi6ithi~u nh~m giup chung ta hi~u ro han vS t?P tin control va th\lC hi~n vi~c loaddu' li~u dugc chinh xac han
Trang 303 CHi MUC TRONG ORACLE TEXT•
3.1 Chuc nang cua chi fi\lC
3.2 Qua trinh t~o chi fiVC
3.2.1 So' d6 t~o chi fi\lC
3.2.2 Cac d6i tuqng chi fi\lC
3.3 Phan lo~i chi fi\lC
3.3.1 Chi fi\lC CONTEXT3.3.2 Chi fi\lC CTXCAT3.3.3 Chi fi\lC CTXRULE3.3.4 Chi fi\lC CTXXPATH3.4 Bao tri Index
3.5 Xoa Index
3.6 Alter Index
3.6.1 D6i ten chi fi\lC va cac phan vung chi fi\lC
3.6.2 Xay dVng l~i chi fi\lC dung nhUng dQ uu tien khac
Trang 31Chuang 3: Chi mvc trong Oracle Text
3.1 CHUC NANG CVA CHi MUC
Hinh 3.1 HiSn thi bang van ban trong Oracle 9i cung vai chi mvc Clla Oracle
Text t?O tren c9t text Cllabang
Chung ta t?O m9t chi mvc tu m9t bang van ban thong thuong Trongm9t u'ng dl,mg truy v~n, bang phai chua van ban (text) ho~c con tro (pointer)tro dSn nai van ban dugc luu tru' Van ban & day thUCmgla m9t t~p hgp taili~u, nhung cung co thS la nhfrng phan manh van ban nho us t?o va hi~uchinh m9t chi mvc van ban trong Oracle Text, ta dung cau l~nh SQL chu~n
3.2 QUA TRINH TAO CHi MUC :
3.2.1 sa 1>6 TAO CHi MUC :
Qua trinh chi mvc dugc kh&i t?O b~ng cau l~nh CREATE INDEX, mvc
dich la dS t?O m9t chi mvc Oracle Text clla nhfrng token tuy thu9C van nhungtham s6 (parameters) va d9 uu tien rna nguai t?O chi dinh
Hinh 3.2 trinh bay qua trinh t?O index trong Oracle Text Qua trinh nay
la m9t dong du' li~u dugc th\fc hi~n d\fa tren nhung d6i tugng chi mvc khacnhau M6i d6i tugng tuang ung vai m9t kiSu uu tien chi mvc (indexingpreference type) ho~c m9t nhom khu V\fC(section group) nguai t?O co thS chi
Trang 32dinh trong chu6i tham s6 cua cau l~nh CREATE INDEX dS t~o chi m\lc hay
AL TER INDEX dS chinh sua chi m\lc
Trang 33Chuong 3: Chi mvc trong Oracle Text 28
~ D~t dQ uu tien la INSO FILTER dS thvc hi~n vi~c IQc khi taili~u co dinh d~ng(binary) nhu Word
~ Van ban dugc chuySn tu t~p ki t\l' non-database sang t~p ki t\l'database khi d~t uu tien la CHARSET FILTER
• fJ6i tU'ong Sectioner :
Sau khi dugc IQc, cac van ban dugc danh d~u se dugc chuySn sang d6itugng Sectioner rna se chia stream thanh van ban (text) va thong tin khu V\l'C(section information) Thong tin khu V\l'Cnay bao g6m nai khu vvc b~t d~u vakSt thuc trong dong van ban
Thong tin khu V\l'Csau do dugc chuySn trvc tiSp qua Index Engine rna
se dung no sau nay, con text thi dugc chuySn sang d6i tugng Lexer
• fJ6i tU'ong Lexer :
Lexer chia van ban thanh nhfrng Token tuy thuQc vao ngon ngfr cua vanban, nhli'ng token nay thucmg la nhung tu DS rut trich nhung token, Lexer su'dVng tham s6 nhu dugc dinh nghla trong dQU'U tien cua Lexer Nhung thams6 nay bao g6m nhung dinh nghla cho nhfrng ki tv philn chi a token ch~ng h~nnhu ki tv khoang tr~ng(whitespace)
• Indexing Engine:
Indexing Engine t~o chi mvc dao (inverted index) Chi mvc nay se anhx~ cac token thanh cac tai li~u co chua chung Trong giai do~n nay Oracle SlrdVng Stoplist dS lo~i b6 nhung Stopwords va nhfrng Stopthemes tu chi fiVC.Oracle cling dung nhung tham s6 dugc dinh nghla trong Wordlist dS chi choh~ th6ng biSt lam thS nao t~o mQt chi mvc tiSn t6 (prefixed index) ho~c t~ofiQt chi mvc chu6i con (substring index) nSu c~n
Trang 343.3 PHAN LOAI CHi MUC
Oracle Text cho phep t?O 3 lo?i chi m\lc tuy theo tung lo?i ung d\lng
Bang sau se giai thi~u sa lugc tUng lo?i :
Co thS l~p chi m\lc cho tai li~u conhiSu dinh d?ng khac nhau nhu : MSWord, HTML hay plain text
Vai lo?i index nay, chung ta co thSchinh SLl'aindex theo nhiSu cach khacnhau cho phu hqp vai van ban
Dung lo?i index nay de cai tien h~usufrt trong cac cau truy vfrn phuc t?p
Thong thuang lo?i index nay dung dSl~p chi m\lc cho nhfrng tai li~u nhaho~c nhfrng phan manh van ban
Nhfrng cQt khac nhau trong mQt bang
co thS dugc gQP vao index dS caithi~n t6c dQ cua nhfrng cau truy vfrnphuc t?p
Dung chi m\lc CTXRULE de xayd\Xng cac ung d\lng phan lap tai li~u(document classification application)
Lo?i chi m\lc nay dugc t?O tren mQtbang nhu'ng cau truy vfrn rna a donhfrng cau truy vfrn chi ro lap haynhung tieu chufm
Chi m\lc CTXXP ATH he>trg vi~c t?Oindex tren cQt co dinh d?ng XML vatruy tim nhfrng van ban, tai li~u cokiSu dinh d?ng XML
Trang 35Chuang 3: Chi m\lc trong Oracle Text
3.3.1 CHi MUC CONTEXT:
30
Khi t?O lo?i chi m\lc CONTEXT thi phai su d\lng tmln tu CONTAINStrong diu truy v~n Chung ta su d\lng tmln tu nay d@dinh nghTa tieu chuk timkiSm
CU phap:
CREATE INDEX [schema.]index on [schema.]table(column)
INDEXTYPE IS ctxsys.context [ONLINE]
LOCAL [(PARTITION [partition] [PARAMETERS('paramstring')]
[, PARTITION [partition] [PARAMETERS('paramstring')]])]
Ki@uDATE, NUMBER va cac bang 16ng nhau kh6ng th@t?O chi m\lc
Vi d\l v~ t?O chi m\lc CONTEXT v6i cac dQUti tien :
CREATE INDEX myindex ON my tab Ie(docs)
CREATE INDEX hdocsx ON hdocs(text)
filter ctxsys.inso Jilter');
Vi dl,lv~ t?O chi m\lc phan ho?ch C\lCbQ:
RANGE(a)
(partition p_tabl values less than (10), partition p _tab2 values less than (20),
Trang 36partition p_tab3 values less than (30));
CREATE INDEXpart_idx on part_tab(b) INDEXTYPE IS
CTXSYS CONTEXT
LOCAL (partition p _idxl, partition p _idx2, partition p _idx3);
3.3.2 Chi mue CTXCAT :
mQt cach t\f dQng vai DML
• [schema ]table( column)
Xac djnh ten bang va ten cQt dS l~p chi m\lc
• index set index set
Xac djnh t~p chi m\lc-uu tien dS t~o lo~i chi m\lc CTXCAT
Vi du:
US t~o chi m\lc lo~i nay, truac tien ta phai t~o t~p chi m\lc uu tien:
Trang 37Chuang 3: Chi m\lc trong Oracle Text
begin
ctx _ ddl create_index _ set ('auction _iset ');
ctx _ ddl.add _index('auction _iset', 'bid_close');
ctx _ ddl add _index('auction _iset I,'price, bid_close'),' end.,
Sau do mcri chen chi m\lc dugc yeu c~u v~lO:
create index auction_titlex on AUCTION(title) indextype is
CTXSYS CTXCAT
parameters ('index set auction_iset');
3.3.3 CHi MUC CTXRULE :
Cu phap:
CREATE INDEX [schema.]index on [schema.]table(column)
INDEXTYPE IS
ctxsys.ctxrule
[PARAMETERS ('[lexer lexerJ)ref] [storage storageJ)ref]
[section group section J)ret] [wordlist wordlistJ)ref]');
[PARALLEL n];
32
Day la lo;;tichi m\lc tren mQt cQt chua t?P nhung cau truy v~n DS truyv~n lo;;tiindex nay chung ta dung toan tu MATCHES trong m~nh dS WHEREcua cau l~nh SELECT
• {schema.}table(column)
Xac dinh ten bang va ten cQt dS l?p chi m\lc
CQtdugc chi dinh phai co kiSu la VARCHAR2 ho~c CLOB, nhung lo;;tikhackh6ng dugc h6 trg lo;;tichi m\lc nay
• lexer -pref
DQuu tien nay dugc dung cho vi~c xu ly cac cau truy v~n hay tai li~u
dugc phan lo;;tib&ngtoan tu MATCHES, hi~n t;;tichi co kiSu BASIC _LEXER
dugc h6trg.
DS xu ly nhung cau truy v~n, lo;;ti lexer nay h6 trQ nhung toan tu sau:ABOUT, STEM, AND, NEAR, NOT, OR va WITHIN
Trang 38Xac dinh dQ uu tien wordlist.
3.3.4 CHi MUC CTXXPATH:
Ngoai ba lo~i tren, Oracle con h6 trQ'vi~c t~o chi mvc tren cQt co kiSu XML
CU phap:
CREATE INDEX [schema.} index on [schema.}table(XMLType
column) INDEXTYPE IS ctxsys.CTXXPATH
nopopulate) '));
• [schema.]table(column)
Xac dinh ten bang va ten cQt dS t~o index CQt duQ'c xac dinh dS t~o chimvc CTXXP ATH phai co kiSu XML, khong co lo~i van ban nao khac duQ'ch6 trQ'CTXXP ATH
Trang 39Chuang 3: Chi m\lc trong Oracle Text
tham s6 nay v6'i CTX ADM.SET PARAMETER dS Ian han ho~c b~ng-
CREATE INDEX xml_index ON xml_tab(coCxml) INDEXTYPE IS
40M');
SELECT xml id FROM xml tab x WHERE-
3.4 BAG TRI INDEX:
Bao tri index (index maintenance) la cfin thiSt sau khi ling d\lng chen,c~p nh~t ho?c xoa tai li~u trong bang ca sa NSu bang la tinh, nghTa la khonginsert, update, delete tai li~u sau khi t?O index thi khong cfin phai bao triindex Co thS d6ng b(>hoa index b~ng tay v6'i CTX_DDL.SYNC_INDEX
Vi d\l sau d6ng b(>hoa index a_ chimuc v6'i 1M b(>nh6':