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.