Tải bản đầy đủ (.pdf) (23 trang)

Nghiên cứu ứng dụng cấu trúc dữ liệu trie cho tìm kiếm chuỗi ký tự

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (802.27 KB, 23 trang )

1

B GIÁO D C VÀ ĐÀO T O
Đ I H C ĐÀ N NG

Đ NG TH ÁNH PHƯ NG

NGHIÊN C U NG D NG
C U TRÚC D LI U TRIE
CHO TÌM KI M CHU I KÝ T

Chuyên ngành : KHOA H C MÁY TÍNH
Mã s

: 60.48.01

TĨM T T LU N VĂN TH C SĨ K THU T

Đà N ng - Năm 2012


2

Cơng trình đư c hồn thành t i
Đ I H C ĐÀ N NG

Ngư i hư ng d n khoa h c: PGS.TS. VÕ TRUNG HÙNG

Ph n bi n 1: TS. NGUY N THANH BÌNH

Ph n bi n 2: TS. NGUY N M U HÂN



Lu n văn ñư c b o v t i H i ñ ng ch m Lu n văn
t t nghi p th c sĩ k
thu t h p t i Đ i h c Đà N ng vào ngày 03 tháng 03 năm 2012.

Có th tìm hi u lu n văn t i:
• Trung tâm Thông tin - H c li u, Đ i h c Đà N ng
• Trung tâm H c li u, Đ i h c Đà N ng


1

M

Đ U

1. Lý do ch n ñ tài
G n ñây, h th ng kho d li u ngày càng ñư c m r ng và đóng vai trị quan tr ng
hơn ñ i v i ngư i ra quy t ñ nh; h u h t các truy v n ñ i v i m t kho d li u l n r t
ph c t p và l p ñi l p l i; kh năng tr l i nh ng truy v n hi u qu là m t v n ñ mà
nhi u h th ng ñang hư ng ñ n. Làm th nào ñ tăng t c ñ , c i thi n hi u su t truy v n
luôn là câu h i l n và khơng ng ng tìm ki m l i gi i đáp t i ưu. Hi n nay có r t nhi u
k thu t ñư c áp d ng nh m tăng hi u qu truy v n, m i k thu t đ u có nh ng th
m nh riêng, TRIE là m t c u trúc d li u ñang ñư c tri n khai s d ng trong các h
th ng tìm ki m l n hi n t i b i nhi u tính năng ưu vi t giúp ñ y nhanh t c ñ và hi u
qu c a quá trình truy v n.
Trư c th c tr ng đó, tơi ch n nghiên c u và th c hi n ñ tài “Nghiên c u ng
d ng c u trúc d li u TRIE cho tìm ki m chu i ký t ” dư i s hư ng d n c a PGS. TS
Võ Trung Hùng. Đ tài phát tri n s giúp cho sinh viên nói riêng và nh ng ngư i nghiên
c u v Cơng ngh thơng tin nói chung có thêm tài li u h tr tri n khai c u trúc d li u

này ph c v cho công tác tìm ki m chu i ký t bên c nh các c u trúc d li u ñang s
d ng hi n nay trong m t s h qu n tr cơ s d li u l n, ñ c bi t là các h qu n tr cơ s
d li u mã ngu n m .
2. M c tiêu và nhi m v nghiên c u
M c tiêu c a ñ tài là c u trúc d li u Trie đư c tìm hi u và trình bày c th kèm
theo vi c ng d ng trong MariaDB.
Nhi m v nghiên c u bao g m ph n nghiên c u lý thuy t v các phương pháp t o
ch m c và tìm ki m; tìm hi u các phương pháp Hash index, Bitmap Index, Btree Index
và nghiên c u c u trúc d li u Trie, các bi n th c a Trie, các thao tác cơ b n trên c u
trúc d li u này. D a trên các nghiên c u lý thuy t ñó, ñ tài ñưa ra ñư c tài li u Ti ng
vi t v c u trúc d li u Trie ph c v cho vi c h c t p và nghiên c u.


2

3. Đ i tư ng và ph m vi nghiên c u
Đ i tư ng nghiên c u c a ñ tài g m: Cơ s lý thuy t v các phương pháp tìm
ki m, truy xu t d li u, ch m c và các k thu t l p ch m c ph c v tìm ki m, các gi i
thu t liên quan ñ n c u trúc d li u TRIE.
Ph m vi nghiên c u v h th ng tìm ki m thơng tin nói chung và các k thu t l p ch
m c ph c v cơng tác tìm ki m thơng tin (Hash Index, Bitmap Index, Btree Index), tr ng
tâm ñi sâu tìm hi u c u trúc d li u TRIE, các bi n th Trie nén và các thao tác căn b n
trên Trie, Trie nén.
4. Phương pháp nghiên c u
Đ tài ñư c tri n khai b ng các phương pháp nghiên c u sau: Phương pháp tài li u
nh m thu th p, phân tích và t ng h p tài li u liên quan ñ n v n đ lý thuy t, phương
pháp mơ hình hóa và phương pháp th c nghi m.
5. Ý nghĩa khoa h c và th c ti n c a ñ tài
K t qu nghiên c u có th làm tài li u tham kh o cho vi c tìm hi u các phương pháp
l p ch m c ph c v tìm ki m và so sánh hi u qu gi a chúng, ñ c bi t là tài li u v c u

trúc d li u Trie ph c v tìm ki m. Ngồi ra, ph n nghiên c u lý thuy t s cung c p m t
cách nhìn t ng quát v h th ng tìm ki m, các phương pháp tìm ki m.
6. B c c lu n văn
Lu n văn đư c trình bày cơ b n bao g m 3 chương chính.
CHƯƠNG 1: T NG QUAN V TÌM KI M THƠNG TIN TRÊN VĂN B N
CHƯƠNG 2: TRIE - C U TRÚC D

LI U TÌM KI M CHU I KÝ T

CHƯƠNG 3: TRIE TÌM KI M TRÊN CƠ S D

LI U MARIADB


3

CHƯƠNG 1: T NG QUAN V TÌM KI M THƠNG TIN TRÊN
VĂN B N
Trong chương này chúng tơi s trình bày khái qt v tìm ki m thơng tin
(Retrieval Information) và c u trúc cũng như phương th c ho t đ ng c a h th ng tìm
ki m. Bên c nh đó chúng tơi s gi i thi u m t s h th ng tìm ki m trên Internet và trên
Desktop ñang ph bi n hi n nay. Cu i chương, chúng tơi s trình bày m t s ñánh giá và
ñ nh hư ng cho vi c ng d ng mã ngu n m .
1.1. TÌM KI M THƠNG TIN
1.1.1. Khái qt v tìm ki m thơng tin [1],[2],[3]
1.1.2. Mơ hình tìm ki m [2]

Hình 1.1. Mơ hình tìm ki m [2]
Hình 1.1 mơ t m t mơ hình tìm ki m thơng tin trong đó “front-end process” là các
bư c x lý liên quan ñ n ph n chương trình tương tác tr c ti p v i ngư i s d ng, ñi u

khi n vi c giao ti p v i ngư i s d ng; “back-end process” là các x lý liên quan đ n
ph n chương trình ph tr phía sau, thư ng ñư c ñ t trên máy ch . Query parser phân
tích cú pháp truy v n và Search engine interface là giao di n c a máy tìm ki m. Hình v
này miêu t nhi m v tương ng v i nhi m v c a B thu th p thông tin, B l p ch m c
và B tìm ki m thơng tin đã đư c nêu phía trên.


4

1.2. M T S
T

PHƯƠNG PHÁP L P CH M C CHO TÌM KI M CHU I KÝ

- VĂN B N

[3], [4]

1.2.1. Hash Index
1.2.2. Btree Index
1.2.3. Bitmap Index
1.3. M T S

H TH NG TÌM KI M HI N CĨ

1.3.1. Cơng c tìm ki m trên m ng internet
1.3.2. Cơng c tìm ki m trên máy tính cá nhân
1.4. K T LU N VÀ ĐÁNH GIÁ
Trong chương này chúng ta đã tìm hi u nh ng ñi m cơ b n c a thơng tin và các
hình th c lưu tr c a chúng trên máy tính. Chương này cũng nghiên c u cơ b n các

phương pháp tìm ki m thơng tin ñã và ñang ñư c ng d ng trong lĩnh v c tài li u ñi n
t . Đ c bi t, nghiên c u các phương pháp l p ch m c ph c v cho tìm ki m chu i ký t
- văn b n, ñi n hình là phương pháp Hash Index, Btree Index và Bitmap Index. Thơng
qua vi c tìm hi u các phương pháp l p ch m c này, đ tìm ra đư c nh ng h n ch khi
thao tác trên các phương pháp đó, và đ xu t tìm hi u phương pháp m i kh c ph c ñư c
các h n ch

y nhưng v n ñ m b o k th a đư c các đ c tính tích c c đã có. C u trúc

m i đư c ñ xu t là Trie, ñư c trình bày c th trong chương sau.
Bên c nh đó cịn tìm hi u c u trúc c a h th ng tìm ki m và tìm hi u m t s cơng
c tìm ki m trên Internet và trên Desktop đang phát tri n ng d ng hi n nay. Qua nh ng
ki n th c đó, chúng ta cơ b n ñã n m ñư c nh ng lý thuy t v lĩnh v c tra c u tìm ki m
thơng tin, n m ñư c m t s ñ c ñi m c a các ng d ng tìm ki m mà các hãng s n xu t
l n ñã phát tri n. T đó, t ng h p đư c nh ng lý thuy t c n thi t nh t cho vi c xây d ng
m t ng d ng tương t hay k th a thư vi n mã ngu n m ñ phát tri n theo ñúng quy
chu n.


5

CHƯƠNG 2: TRIE - C U TRÚC D

LI U TÌM KI M

CHU I KÝ T
Trong chương 1, chúng ta ñã tìm hi u nh ng ki n th c t ng qt liên quan đ n tìm
ki m thơng tin trên văn b n và các phương pháp l p ch m c ñã ñư c s d ng, m i
phương pháp có m t s ưu đi m và h n ch nh t ñ nh; Trong chương này, chúng ta s
tìm hi u v m t c u trúc d li u m i: Trie. C u trúc này ñư c s d ng k t h p v i các

c u trúc ñã ñư c l p ch m c trư c ñây nh m kh c ph c nh ng h n ch ñã nêu.
2.1. C U TRÚC D

LI U TRIE [5], [6]

TRIE, phát âm là “try”, là t xu t phát t ch retrieval, ngư i phát minh ra nó là
Edward Fredkin; là m t c u trúc d li u s d ng ký s trong khóa đ t ch c và tìm
ki m. M c dù trong th c t chúng ta có th s d ng r t nhi u h cơ s đ phân tích các
khóa bên trong các ký s , ví d chúng ta có th ch n các s t nhiên (0, 1, 2, 3, 4, 5, 6, 7,
8, 9) ho c các ký t trong b ng ch cái Ti ng Anh (a – z, A – Z).
Gi s các ph n t trong t ñi n c n tìm ki m là h sơ Sinh viên có ch a các trư ng
như: Tên SV, chuyên ngành h c, ngày sinh, Mã s . Trong đó, trư ng khóa là “Mã s ”,
đư c bi u di n b ng chín ký s th p phân t 1 đ n 9. Đ th hi n ví d này, gi s r ng
t đi n ch có năm ph n t . Trư ng Tên và Mã s c a m i năm ph n t ñư c hi n th
như hình bên dư i:


6

TÊN

MÃ S

Hoa

951-94-1654

Thanh

562-44-2169


Anh

271-16-3624

Vy

278-49-1515

Phong

951-23-7625
Hình 2.1. Năm ph n t trong t đi n [6]

Chúng ta phân chia thành 3 nhóm, nh ng ph n t có Mã s b t đ u b ng ký s
“2”; nh ng ph n t b t đ u b ng ký s “5” và nhóm cu i cùng g m các ph n t b t đ u
b ng ký s 9. Nh ng nhóm nào có nhi u hơn m t ph n t thì s đư c phân chia s d ng
ký s ti p theo trong khóa đ phân bi t. Vi c phân chia này s ñư c ti p t c cho đ n khi
m i nhóm ch cịn duy nh t m t ph n t . K t qu q trình phân chia trên đư c mơ t
trong m t Tree có 10 đư ng nhánh như hình dư i.

Hình 2.2: Trie cho các ph n t

hình 2.1 [7]


7

2.2. TÌM KI M TRONG TRIE
2.2.1. Khóa có chi u dài gi ng nhau

Đ tìm ki m m t Trie cho m t ph n t v i khóa c a nó, chúng ta b t đ u t g c và
duy t d n xu ng phía dư i cho ñ n khi h t Trie ho c cho ñ n khi nút ñang duy t là m t
nút lá.
2.2.2. Khóa có chi u dài khác nhau
Trong ví d trên, t t c các phím có cùng s ký s , là 9 ký s . Trong các ng d ng
th c t , có th s g p m t s trư ng h p mà các khóa khác nhau có s ký s khác nhau,
thơng thư ng, chúng ta s thêm ký s ñ c bi t (thư ng là #) vào cu i m i khóa.
2.3. CHI U CAO C A TRIE [6], [7]
Trong trư ng h p x u nh t, t nút g c ñ n nút lá, m i ký s trong khóa ph i duy t
qua m t nút nhánh. Khi đó chi u cao c a Trie là t i ña, và là s ký s c a khóa c ng 1.
Trong trư ng h p này, Trie mã s ñư c minh h a

ví d trên có chi u cao là 10.

2.4. YÊU C U KHÔNG GIAN VÀ C U TRÚC NÚT [6]
2.5. CHÈN M T PH N T

VÀO TRIE

Đ chèn m t ph n t A v i khóa là K vào trong m t Trie thì vi c ñ u tiên ta ph i ti n
hành tìm ki m trên Trie xem đã có t n t i ph n t v i khóa K này chưa. N u trie đã ch a
ph n t v i khóa ñó, ta ti n hành thay th ph n t hi n hành v i ph n t A. N u Trie
không ch a ph n t A v i khóa K, thì ph n t A s đư c ñưa vào Trie b ng cách s
d ng các th t c sau:
Trư ng h p 1, th t c chèn n u k t qu tìm ki m cho khóa K k t thúc t i m t nút lá X
b t kỳ, thì sau đó, khóa c a ph n t t i X và khóa K s ñư c s d ng ñ xây d ng m t
nhánh con m i thay th cho ph n t X.


8


Trong trư ng h p 2, th t c chèn khi k t qu tìm ki m ph n t A v i khóa K trong
Trie k t thúc b i vi c duy t h t trie t i m t nút nhánh X b t kỳ nào đó và khơng tìm th y
k t qu . Lúc này chúng ta ch th c hi n m t thao tác ñơn gi n là thêm vào m t nút con
(là m t nút lá) t i v trí nút X. Nút lá đư c thêm vào chính là ph n t A v i khóa K.
2.6. LO I B

M T PH N T

KH I TRIE

Đ lo i b m t ph n t A v i khóa K, vi c đ u tiên chúng ta ph i tìm ki m ph n t
v i khóa K này trong Trie. N u khơng có ph n t v i khóa K trong Trie thì m i vi c
khơng có gì ñ th c hi n. Vì th , ta gi ñ nh r ng Trie chúng ta ñang thao tác có ch a
ph n t A v i khóa K. Các nút lá X đư c tìm th y ch a ph n t A s b lo i b và chúng
ta xét duy t l i các nút nhánh trên ñư ng d n t nút lá X quay v nút g c c a Trie. S có
m t s nút nhánh b lo i b n u chúng ch ch a duy nh t m t ph n t trong đó. Vi c này
đư c l p l i cho ñ n khi chúng ta g p m t nút nhánh không b lo i b ho c cho ñ n khi
chúng ta ñã ti n hành lo i b c nút g c c a Trie. Chúng ta hãy xem ví d minh h a t i
hình 2.4
2.7. TRIE NÉN VÀ CÁC BI N TH
Chúng ta quan sát trie c a hình 2.2. Trong Trie này, có m t vài nút nhánh (đó là
B, D, F), các nút này ch có m t nhánh duy nh t. Chúng ta có th c i thi n th i gian và
không gian lưu tr c a Trie b ng cách lo i b t t c các nút nhánh mà ch có duy nh t
m t nhánh con này. Trie k t qu thu ñư c t thao tác này ñư c g i là Trie nén.
Khi các nút nhánh ch có m t con thì chúng s đư c di chuy n kh i Trie. Ta c n
lưu tr l i t t c nh ng thông tin này ñ ñ m b o vi c t ch c t đi n đư c chính xác.
Các thơng tin này ñư c lưu tr trong ba lo i c u trúc trie nén đư c mơ t dư i ñây.



9

2.7.1. Trie nén ki u s
2.7.2. Trie nén lư t b
2.7.3. Trie nén v i thông tin c nh
2.7.4. Yêu c u khơng gian c a Trie nén
2.8. TÌM KI M TI N T

VÀ M T S

NG D NG

2.9. K T LU N
Trong chương này, tơi đã nghiên c u và tìm hi u các v n đ lý thuy t liên quan ñ n
c u trúc d li u Trie khá c th bao g m nh ng ki n th c chung t ng quát v c u trúc
Trie và nh ng thao tác cơ b n trên c u trúc d li u này. Qua vi c ñánh giá và so sánh v i
các c u trúc d li u trư c, các phương pháp l p ch m c ñã ñư c s d ng, lu n văn tìm
ra đư c m t s đi m h n ch c a c u trúc này và ñ xu t các bi n th nén c a trie.
Qua chương này, ngư i đ c có th có ñư c ki n th c cơ b n nh t v Trie, hư ng d n
t ng bư c vi c th c hi n các thao tác khi s d ng c u trúc này, ñánh giá hi u su t c a
c u trúc nói chung và các thao tác nói riêng.


10

CHƯƠNG 3:

NG D NG TRIE TÌM KI M TRONG
MARIADB


Trong n i dung chương 2, chúng ta đã tìm hi u sơ lư c v c u trúc Trie và nh ng thao
tác cơ b n trên Trie. C u trúc này hi n ñang ñư c ng d ng ngày càng nhi u trên tồn
th gi i, đ c bi t trong vi c lưu tr và x lý v i các kho d li u l n. H qu n tr cơ s d
li u mã ngu n m ngày càng ñư c nhi u ngư i l a ch n do nh “tính m ” cho ngư i
dùng. Trong s đó, khơng th khơng k đ n MySQL v i c ng ñ ng ngư i s d ng r ng
kh p và nh ng tính năng h tr ưu vi t. T khi ngư i sáng l p ra MySQL r i b Sun,
c ng ñ ng ngư i s d ng MySQL trên toàn th gi i b t ñ u ti p c n v i MariaDB, m t
nhánh r c a MySQL v i nh ng tính năng k th a hồn tồn c a MySQL và đư c tích
h p thêm nhi u tính năng m i nh m kh c ph c nh ng h n ch c a các phiên b n
MySQL trư c đó.
MariaDB cũng là m t h cơ s d li u mã ngu n m hoàn toàn mi n phí cho ngư i
dùng, ngồi nh ng c u trúc d li u đư c b trí như v i MySQL, MariaDB còn k t h p
thêm nhi u c u trúc m i nh m t i ưu hóa q trình truy v n d li u ñ phù h p v i
nh ng kho d li u l n. M t trong các c u trúc ñư c s d ng là Trie (ñã trình bày
chương 2).
3.1. MÔ T

NG D NG

Đ làm rõ hơn cho nh ng n i dung liên quan ñ n Trie ñã ñư c trình bày trong
chương trư c, trong chương này, chúng ta s ti n hành nghiên c u ng d ng c u trúc
khá m i này(c u trúc Trie) trong các truy v n c a h cơ s d li u MariaDB. Ch n
MariaDB cho vi c ng d ng Trie vì đây là m t h cơ s d li u mã ngu n m hoàn tồn
mi n phí, đang đư c s d ng r ng rãi và d n thay cho MySQL v n ñã chi m ñư c r t
nhi u tình c m c a c ng ñ ng ngư i s d ng trên tồn th gi i. Ngồi ra, đ kh c ph c
m t s l i h n ch trong q trình s d ng MySQL. MariaDB đã có r t nhi u c i ti n


11


m i trong tính năng h tr , t c ñ và kh năng truy v n d li u mà m t trong nh ng phát
tri n ghi nh n là s d ng tích h p c u trúc d li u Trie h tr full-text-search.
Theo đó, n i dung sau đây s trình bày nh ng ki n th c cơ b n v h cơ s d li u
MariaDB, cách cài ñ t và l y mã ngu n t MariaDB trên môi trư ng Ubuntu. Đ làm rõ
hơn cho c u trúc Trie ñã minh h a trong chương 2, sau khi cài ñ t thành công, d a trên
vi c nghiên c u mã ngu n c a MariaDB, chúng ta s xác ñ nh c u trúc Trie ñư c ng
d ng trong MariaDB như th nào và cài ñ t ra sao ñ ti n hành t i ưu hóa các thao tác
truy v n ngay trên h cơ s d li u này. Qua đó, chúng ta s bi t đư c c u trúc Trie ñư c
cài ñ t như th nào trong th c ti n.
3.2. MARIADB [7]
3.2.1. Gi i thi u chung [7]
MariaDB, m t nhánh r c a MySQL, là m t máy ch cơ s d li u cung c p các ch c
năng thay th cho MySQL. MariaDB ñư c xây d ng b i m t s các tác gi ban ñ u c a
MySQL v i s h tr t c ng ñ ng các nhà phát tri n ph n m m mi n phí và mã ngu n
m . Ngồi các ch c năng c t lõi c a MySQL, MariaDB cung c p m t t p h p phong
phú các tính năng c i ti n bao g m công c lưu tr thay th , t i ưu hóa máy ch và các
b n vá l i.
Phiên b n MariaDB ñư c tung ra h i tháng 11/2008 b i Monty Widenius, ngư i
ñ ng sáng l p ra MySQL. Widenius đã cơng b s phát tri n c a r nhánh MariaDB
ngay sau khi r i b ch c v là ngư i duy trì cho MySQL c a Sun. Cùng lúc nhà l p trình
này đã sáng l p ra Monty Program AB, m t công ty m i ñ ñưa r nhánh này ra th
trư ng.


12

Hình 3.1. Trang ch MariaDB
MariaDB là m t nhánh c a MySQL, m t trong nh ng h qu n tr cơ s d li u ph
bi n nh t trên th gi i. T các d án nh phát tri n trên Web cho m t s trang Web n i
ti ng và uy tín, MySQL đã t ch ng minh b n thân m t cách v ng ch c, đang tin c y,

nhanh chóng và th t s là m t gi i pháp h u hi u cho vi c s p x p và lưu tr d li u.
3.2.2. Các phiên b n phát tri n
3.3. TRIE TÌM KI M TRONG MARIADB
3.4. CÀI Đ T TH

NGHI M

3.4.1. Cài ñ t
3.4.1.1. Thu th p mã ngu n
Như ñã gi i thi u, MariaDB là m t phiên b n ñư c r nhánh t MySQL, ñư c sáng
l p b i nh ng ngư i m t th i là tác gi c a MySQL. Ngư i sáng l p hàng ñ u là Monty
Widenius_ngư i ñã sáng l p ra MySQL và Monty Program AB
Ngư i dùng

kh p m i nơi trên th

gi i có th

truy c p vào đ a ch

đ tìm hi u, h c h i và t i v b cài ñ t cũng như mã ngu n c a
MariaDB cùng v i t t c các phiên b n ñư c phát hành.


13

Ngồi ch c năng h tr download cái gói cài ñ t khác nhau trên các môi trư ng khác
nhau, cịn có nhi u h tr khác cho ngư i dùng trong q trình cài đ t
và ti p c n v i vi c s d ng, khai thác mã ngu n trên MariaDB.


Hình 3.7. Trang download mariadb
đây, ngư i dùng có th l a ch n các phiên b n phát tri n phù h p v i yêu c u c a
h , các h ñi u hành h tr Generic Linux, Linux Package, Solaris, Source code,
Windows. Các gói h tr g m source tar.gz file, gzipped tar file, MSI Package, Zip file
và RPM Package; CPU 64-bit ho c 32-bit.
Khi đã l a ch n gói download v i h ñi u hành phù h p, chúng ta ti n hành cài đ t
MariaDB, có th tham kh o mã ngu n ñ phát tri n. Các phiên b n t ñư c phát tri n t
5.1 đ n 5.3 cũng có s h tr tương ng như nhau. Cách cài ñ t tương t như khi s
d ng MySQL, ngư i dùng có th tham kh o t i file Install-source ho c install-winsource trong gói đư c l a ch n t i v

Hình 3.8. File Install-Source và Install-Win-Source


14

3.4.1.2. Cài ñ t th c thi
Phiên b n MariaDB m i nh t là 5.3 hi n đã có b n beta phát hành vào tháng 7/2011,
tuy nhiên ch y n đ nh và nhi u tính năng ưu vi t, ngư i dùng có th t i b n m i nh t
này t i ho c t i các phiên b n cũ là
MariaDB 5.2 t i hay phiên b n ñ u tiên 5.1
t i />
Hình 3.9. Các gói cài đ t c a phiên b n MariaDB 5.2
Trong m i phiên b n ñ u có nhi u gói ñ cài ñ t, b n c n ch n l a gói cài ñ t nào
phù h p v i yêu c u c a mình
.MariaDB ch y u đư c khai thác trên các h ñi u hành mã ngu n m , b n thân nó
cũng là mã ngu n m nên khơng đư c cài đ t theo ki u Wizard. Cài Mariadb trên
Ubuntu có th dùng nhóm l nh sau:
shell> groupadd mysql
shell> useradd -g mysql mysql
shell> cd /usr/local

shell> gunzip < /path/to/mysql-VERSION-OS.tar.gz | tar xvf shell> ln -s full-path-to-mysql-VERSION-OS mysql
shell> cd mysql


15

shell> chown -R mysql .
shell> chgrp -R mysql .
shell> scripts/mysql_install_db --user=mysql
shell> chown -R root .
shell> chown -R mysql data
shell> bin/mysqld_safe --user=mysql &

Và ti n hành thay th phiên b n Mariadb b n ñang s d ng trong câu l nh cho phù h p.
Sau khi hoàn t t vi c cài đ t, chúng ta có th can thi p vào mã ngu n đê nghiên c u,
trích l c và phát tri n chương trình riêng. V i các c u trúc d li u ñư c t ch c s d ng,
ngư i dùng s ñ c và trích l c đ l a ch n nh ng đo n mã c n cho q trình làm vi c
c a mình.
Chúng ta s ti n hành vi c download và cài ñ t th ngi m ñ i v i phiên b n
MariaDB 5.2. S d ng máy o ch y h ñi u hành Ubuntu phiên b n 10.10 ñ download
và cài ñ t như sau:
- Dùng l nh ch y l y khóa c n thi t (apt –key)
- Thêm l nh yêu c u c a h th ng vào file Source.list
- C p nh p các gói
- Ti n hành cài đ t MariaDB trên ubuntu
- Cài các gói h tr và khai thác


16


Hình 3.10. Mã ngu n đư c m b ng Dev-C
3.4.2. Th nghi m
Đ th ngh m, chúng ta ti n hành cài ñ t trên h ñi u hành Ubuntu 10.10, mariaDB
5.2. C u trúc d li u Trie ñây ñư c s d ng như m t Trie index và tích h p trong ch c
năng Full-Text-Search. Sau khi cài ñ t, kh i ñ ng: sudo /etc/init.d/mysql restart, Màn hình
thành cơng n u có l nh báo

Hình 3.11. Kh i ñ ng MariaDB
Trong ph m vi lu n văn, ch d ng l i

th nghi m tìm ki m m t chu i trong Trie

trong MariaDB, c u trúc Trie ñư c xây d ng lưu tr

b ng m t danh sách các nút liên

k t v i nhau, chúng ta ti n hành tìm ki m m t chu i trong danh sách các nút này.


17

Hình 3.12. Mã ngu n MariaDB đư c s d ng sau khi cài đ t thành cơng
Sau khi cài ñ t thành công và can thi p vào mã ngu n c a MariaDB, ta ti n hành tìm
hi u vi c ng d ng c u trúc d li u Trie trong MariaDB. Trong h qu n tr cơ s d li u
MariaDB, c u trúc d li u Trie đư c s d ng tích h p trong ch c năng full-text-search.
Vi c ng d ng Trie cơ b n mô t như sau:
C u trúc c a node

Kh i t o Trie


Phân b m t m ng con tr s s d ng


18

Phân b 1 nút m i và ñánh d u ñó là nút g c c a Trie

So sánh, ñ i chi u chu i ñang truy v n và chu i t i nút, tr v 1 n u tìm th y, ngư c
l i tr v 0.

V i c u trúc ñư c xây d ng cơ b n như trình bày trên, Trie h tr ch c năng fulltext-search trong MariaDB, phát huy tên tu i MySQL ñư c ñông ñ o ngư i s d ng trên
th gi i s d ng.
K t qu th nghi m trên MariaDB, v i d li u c th . T o cơ s d li u “vidu” v i
b ng “staff”. Staff bao g m các trư ng: pk_id, firstname, lastname, age, details.

Hình 3.13. T o cơ s d li u và b ng d li u


19

Đánh ch m c, nh p d li u cho b ng. D li u này s ñư c dùng làm m u tìm ki m.

Hình 3.14. Nh p d li u cho b ng
Sau khi hoàn t t vi c nh p d li u ta ti n hành thao tác truy v n trên b ng d li u v a
nh p.

Hình 3.15. K t qu truy v n
3.5. ĐÁNH GIÁ
3.5.1. K t qu ñ t ñư c
MariaDB là m t h qu n tr cơ s d li u mã ngu n m có nhi u phiên b n, h tr

nhi u h ñi u hành v i nhi u gói cài đ t khác nhau nên phù h p cho nhi u ñ i tư ng s
d ng.


20

MariaDB có hi u su t khá cao khi s d ng, v n ñ này ngư i ñ c có th tham kh o ý
ki n c a c ng đ ng MySQL và MariaDB trên tồn th gi i. Chương này ñã hư ng d n
sơ lư c cách t i và cài ñ t MariaDB ñ nghiên c u ng d ng c a c u trúc d li u Trie
trong h qu n tr cơ s d li u này. Ngư i đ c có th d a vào các thơng tin t i đây đ l y
môi trư ng, công c phát tri n làm n n nghiên c u cho ng d ng th c t c a c u trúc d
li u Trie.
3.5.2. Ưu ñi m và h n ch
MariaDB là m t h qu n tr mã ngu n m nên t t c các phiên b n cài ñ t và mã c a
nó đ u mi n phí, cùng v i MySQL, MariaDB đang có nh hư ng l n trên th gi i. Vi c
MariaDB ñưa vào s d ng k t h p c u trúc d li u Trie cùng v i các c u trúc d li u
khác và dùng các phương pháp l p ch m c cũ và m i k t h p là m t d u hi u ñánh d u
vi c kh ng ñ nh c u trúc d li u này trong th i gian s p t i trên th trư ng cơng ngh .
Tuy nhiên, cũng chính vì s m i l này mà c MariaDB và c u trúc d li u Trie đ u
có nh ng h n ch nh t ñ nh. MariaDb và Trie h u như còn khá xa l và khá ít tài li u h
tr như nh ng công c , c u trúc khác. Trong MariaDB ch m i ñưa Trie vào s d ng khá
ít và s d ng k t h p v i các c u trúc khác nên ngư i dùng mu n nghiên c u c u trúc
Trie d a trên MariaDB ph i trích l c và xây d ng l i h u như ph n l n.
3.5.3. K t lu n
N i dung chương ñã cài ñ t ñư c MariaDB cùng đo n chương trình đư c rút trích và
hồn thi n đ mơ t c th cho c u trúc Trie ñư c s d ng trong MariaDB. M t c u trúc
d li u còn khá m i và chưa ñư c s d ng ñ i trà hi n nay; Ngồi ra vi c ch n MariaDB
đ minh h a cho vi c s d ng câu trúc này cũng khá m i vì MariaDB là m t l a ch n
ti p theo cho MySQL và còn khá tr tu i (phiên b n beta m i nh t v a ñư c phát hành
vào tháng 7/2011). V i s m i m này cùng th i gian và ph m vi h n ch , hy v ng trong

th i gian t i tác gi s phát tri n nghiên c u sâu hơn v c u trúc Trie và phát tri n ng
d ng th c t cho c u trúc này.


21

K T LU N VÀ KI N NGH
Trong lu n văn, tơi đã tìm hi u và nghiên c u ñư c c u trúc d li u Trie, m t s
thao tác cơ b n trên Trie và ñ c bi t là cách nén Trie nh m tăng hi u qu s d ng c u
trúc này cùng v i các thao tác trên Trie ñã ñư c nén như: tìm ki m, chèn, xóa,
s a,…Bên c nh đó, lu n văn cịn tìm hi u v các ki n th c liên quan đ n tìm ki m thông
tin trên văn b n, các phương pháp l p ch m c và các c u trúc d li u ñã t ng ñư c s
d ng trư c ñây, so sánh các c u trúc v i nhau, tìm ra nh ng m t tích c c và nh ng h n
ch .
Trong quá trình th c hi n, tơi đã hi u cơ b n v c u trúc d li u này; hi n nay, c u
trúc này chưa ñư c ph bi n Vi t nam nhưng nó có m t s tính năng th t s hi u qu
không th ph nh n, vì th , lu n văn s là tài li u khá b ích cho các b n sinh viên nói
riêng và nh ng ngư i nghiên c u v cơng ngh thơng tin nói chung có thêm tài li u ñ
tham kh o bư c ban ñ u khi ti n hành nghiên c u, h c t p và tri n khai xây d ng ng
d ng th c t trong trư ng h p mu n ti p c n và ñi sâu khai thác Trie.
Do th i gian, ph m vi c a lu n văn và ki n th c cá nhân còn gi i h n c ng thêm
c u trúc d li u này còn khá m i và tu i c a MariaDB còn quá tr nên lu n văn ch d ng
l i m c tìm hi u k v m t lý thuy t liên quan ñ n c u trúc TRIE và các thao tác trên
Trie; Tìm hi u cách s d ng TRIE trong h qu n tr cơ s d li u mã ngu n m
MariaDB ñ ch ng minh r ng c u trúc này hi n ñang ñư c s d ng và ngày càng ph
bi n nhi u qu c gia trên th gi i. Tuy nhiên, lu n văn chưa th th c nghi m tr c ti p
ñ so sánh Trie v i các câu trúc khác trên MariaDB, ñây là m t ñi m h n ch và là
hư ng phát tri n trong th i gian s p ñ n v i mong mu n có đư c m t tài li u hồn ch nh
v Trie đ cung c p cho ngư i s d ng.
T nh ng h n ch và thi u sót trên, đ lu n văn ñư c ti p t c phát tri n theo ñ nh

hư ng r t mong nh n ñư c s đóng góp c a các nhà phát tri n trong lĩnh v c tìm ki m
thơng tin, s tr giúp v ngu n thơng tin đ hồn thi n ph n ng d ng h th ng vào th c
t s d ng ph c v cho nhu c u hàng tri u ngư i s d ng trong nư c.



×