1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tìm hiểu nghiên cứu công nghệ oracletext và xây dựng ứng dụng minh họa

79 1 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tìm hiểu nghiên cứu công nghệ Oracle Text và xây dựng ứng dụng minh họa
Tác giả Lê Huỳnh Lan Anh, Khổng Minh Giang
Trường học Trường Đại học Ngoại Ngữ - Tin Học TP.HCM
Chuyên ngành Công nghệ Thông Tin
Thể loại Luận văn tốt nghiệp
Năm xuất bản 2023
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 79
Dung lượng 36,27 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 1

TIM 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 3

MUCLUC• •

Trang 4

HE THONG TRA ciruHO sa CONG VAN

1.1 Phan tich h~ th6ng tra clm h6 sa cong van 49

Trang 5

2.3.5 Tra clm theo loe;tihe, sa 652.3.6 Tra clm theo trich ySu cua he, sa 66

Trang 6

Trong 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 8

1 GI01 TRIEU ORACLE TEXT

1.2.2 (rng dl}ng phan lo?i tai l~u

Trang 9

Chuang 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 10

Oracle 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 11

Chuang 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 12

2 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 13

Chuang 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 14

2.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 15

Chuang 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 16

M~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 17

Chuong 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 18

2.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 19

Chuang 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 20

Hinh 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 21

Chuong 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 23

Chuang 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 24

Cac 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 25

Chuang 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 26

Tu 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 27

Chuang 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 28

2.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 29

Chuang 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 30

3 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 31

Chuang 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 32

dinh 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 33

Chuong 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 34

3.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 35

Chuang 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 36

partition 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 37

Chuang 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 38

Xac 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 39

Chuang 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':

Ngày đăng: 01/09/2023, 22:03

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w