Header Page 1 of 126.
TR
NG
I H C KHOA H C T
NHIÊN
KHOA CÔNG NGH THÔNG TIN
MÔN CÔNG NGH PH N M M
e&f
NGUY N TH LÝ - NGUY N SAO K
NG D NG PH N M M MÃ NGU N M H QU N
TR C S D
XÂY D NG
LI U H
NG
NG PERST
NG D NG QU N LÝ H TH NG
THÔNG TIN
A LÝ THÀNH PH HCM
KHÓA LU N C
NHÂN TIN H C
TpHCM, 2005
Footer Page 1 of 126.
IT
Header Page 2 of 126.
TR
NG
I H C KHOA H C T NHIÊN
KHOA CÔNG NGH THÔNG TIN
MÔN CÔNG NGH PH N M M
e&f
NGUY N TH LÝ - 0112187
NGUY N SAO K - 0112186
NG D NG PH N M M MÃ NGU N M H QU N
TR C S D
XÂY D NG
LI U H
NG
IT
NG D NG QU N LÝ H TH NG
THÔNG TIN
A LÝ THÀNH PH HCM
KHÓA LU N C
NHÂN TIN H C
GIÁO VIÊN H NG D N
Th.s NGUY N MINH NAM
NIÊN KHOÁ 2001-2005
Footer Page 2 of 126.
NG PERST
-2-
Header Page 3 of 126.
IC M N
Chúng em chân thành cám n Khoa Công ngh Thông tin, tr
Khoa h c T nhiên t o
u ki n cho chúng em th c hi n
ng
ih c
tài lu n v n t t
nghi p này.
Chúng em chân thành cám n th y Nguy n Minh Nam ã t n tình h
n, ch b o chúng em trong su t th i gian th c hi n
ng
tài.
Chúng em chân thành cám n quý th y cô trong khoa ã t n tình gi ng
y, trang b cho chúng em nh ng ki n th c quý báu trong nh ng n m h c
a qua.
Chúng con xin nói lên lòng bi t n sâu s c
ã ch m sóc, nuôi d y chúng con thành ng
i v i cha m , nh ng ng
i và luôn
i
ng viên tinh th n
cho chúng con.
Và c ng chân thành cám n các anh ch và b n bè ã ng h , giúp
i ki n th c, kinh nghi m và
, trao
ng viên chúng em trong th i gian h c t p và
nghiên c u.
c dù chúng em ã c g ng hoàn thành lu n v n trong ph m vi và kh
ng cho phép nh ng ch c ch n s không tránh kh i nh ng sai sót. Chúng
em kính mong nh n
c s c m thông và t n tình ch b o c a quý th y cô
và các b n.
Tp.H Chí Minh, tháng 7 n m 2005
Nguy n Th Lý – 0112187
Nguy n Sao K - 0112186
Footer Page 3 of 126.
-3-
Header Page 4 of 126.
TÓM T T LU N V N
Lu n v n
Ch
ng 1: Gi i thi u t m quan tr ng, m c tiêu, ph m vi c a
thuy t và h
Ch
c t ch c thành các ph n chính nh sau:
tài, các c s lý
ng ti p c n.
ng 2: Cách t ch c c s d li u h
ng
it
ng PERST và nh ng so
sánh v i các cách t ch c c s d li u quan h và các h c s d li u h
it
Ch
các
Ch
ng
ng khác.
ng 3: Gi i thi u v mô hình Topology: nêu lên nh ng khái ni m c b n,
it
ng trong Topology và các c p Topology.
ng 4: Gi i thi u v GIS: gi i thi u t ng quan v GIS, các gi i pháp và ng
ng v GIS và ng d ng GIS trên PocketPC
Ch
ng 5: Gi i thi u v chu n OpenGIS
Ch
ng 6: T ng quan v PocketPC: Các v n
và gi i pháp trên thi t b . Tình
tr ng b nh , t o c s d li u và ng d ng b n
Ch
ng 7:
Ch
ng 8: K t lu n, ánh giá và h
Ch
ng 9: Nh ng tài li u tham kh o khi th c hi n
Ch
ng 10:Nêu nh ng thu t toán chính trong ch
Footer Page 4 of 126.
ng d ng b n
trên PocketPC.
: mô hình phân tích thi t k .
ng phát tri n
-4-
tài
ng trình
Header Page 5 of 126.
CL C
I C M N ........................................................................................................................ 3
TÓM T T LU N V N......................................................................................................... 4
DANH SÁCH CÁC HÌNH..................................................................................................... 8
DANH SÁCH CÁC B NG...................................................................................................10
T S KHÁI NI M, THU T NG
CH
1.1
1.2
CH
2.1
2.2
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.2.6
2.3
2.3.1
2.3.2
2.4
2.5
2.6
2.7
2.7.1
2.7.2
2.8
CH
3.1
3.2
3.3
3.4
VÀ T
VI T T T ..................................................11
NG 1 : Hi n tr ng và yêu c u .................................................................................15
Hi n tr ng: .................................................................................................................15
Gi i quy t bài toán: ....................................................................................................16
NG 2 : T ng quan v Perst .....................................................................................17
Gi i thi u: ..................................................................................................................17
c tính:.....................................................................................................................18
Persistency by reachability:....................................................................................18
Semi transparent object loading: ............................................................................21
Automatic scheme evaluation.................................................................................23
Relation: ................................................................................................................24
Index: ....................................................................................................................25
Giao tác (Transaction):...........................................................................................29
Transparent API: ........................................................................................................31
Dùng.NET Remoting API: .....................................................................................31
Dùng các thu c tính o (virtual properties):............................................................32
C ch th c hi n giao tác (Transaction):.....................................................................33
Nh ng tr ng h p nên dùng PERST: .........................................................................37
Các thông s c a PERST:...........................................................................................38
S l c v RTree:.......................................................................................................44
Gi i thi u:..............................................................................................................44
S l c v d li u không gian (spatial data) và các gi i pháp: ................................44
So sánh v i các h qu n tr c s d li u h ng i t ng khác: ................................45
NG 3 : Gi i thi u v mô hình Topology .................................................................50
Gi i thi u: ..................................................................................................................50
Các khái ni m c b n trong Topology: .......................................................................50
Các lo i i t ng trong Topology: ............................................................................51
Các c p c a Topology: ...............................................................................................53
Footer Page 5 of 126.
-5-
Header Page 6 of 126.
3.5
CH
4.1
4.2
4.3
4.4
4.5
4.5.1
4.5.2
4.5.3
4.5.4
4.5.5
4.6
4.6.1
4.6.2
4.7
CH
5.1
5.2
5.2.1
5.2.2
5.2.3
5.2.4
5.2.5
5.3
5.3.1
5.3.2
CH
6.1
6.2
6.3
6.3.1
6.3.2
6.3.3
6.4
6.4.1
MBR – Minimum Bounding Rectangle: .....................................................................59
NG 4 : Gi i thi u v GIS .......................................................................................60
Gi i thi u v các ng d ng và gi i pháp v GIS: ........................................................60
Mô hình d li u c a thông tin a lý: ..........................................................................61
Thu th p d li u: ........................................................................................................64
Các gi i thu t nghiên c u v GIS: ..............................................................................66
Các c u trúc d li u không gian trong GIS: ................................................................67
Cây t phân (Quad Tree):.......................................................................................67
k-d Tree: ................................................................................................................68
R-Tree: ..................................................................................................................69
R*-Tree: ................................................................................................................70
R+-Tree:.................................................................................................................71
ng d ng b n :.......................................................................................................72
Các ki u b n : ....................................................................................................72
Các i t ng c a b n :......................................................................................72
ng d ng GIS trên PocketPC:....................................................................................73
NG 5 : Gi i thi u v chu n OpenGIS .....................................................................75
Các ki u d li u hình h c c a OpenGIS: ....................................................................75
OpenGIS Specification ( c t OpenGIS):..................................................................76
Các khái ni m: .......................................................................................................76
Nh ng d ch v OpenGIS (OpenGIS Services ):......................................................78
M t mô hình nh ng c ng ng thông tin (Information Communities Model ): .......79
c m: ..............................................................................................................79
Phân lo i: ...............................................................................................................81
OpenGIS Abstract Specification: ................................................................................82
Essential Model (mô hình b n ch t ): .....................................................................83
Abstract Model: .....................................................................................................85
NG 6 : T ng quan v PocketPC .............................................................................89
T ng quan v PocketPC: ............................................................................................89
Kh n ng l p trình trên PocketPC:..............................................................................89
M t s v n khi l p trình ng d ng trên PocketPC: .................................................89
T c và các h tr kh n ng hi n th : ..................................................................89
Kh n ng và hình th c l u tr :...............................................................................90
T ng tác gi a ng i s d ng và thi t b : ..............................................................91
Các gi i pháp cho ng d ng b n
trên PocketPC: ....................................................92
Yêu c u chung: ......................................................................................................92
Footer Page 6 of 126.
-6-
Header Page 7 of 126.
6.4.2
V n t i u t c hi n th : .................................................................................93
6.5
T ch c d li u b n trên PocketPC:.......................................................................93
CH NG 7 :
ng d ng b n :.......................................................................................95
7.1
Phân tích và xác nh yêu c u:....................................................................................95
7.2
Phân tích - thi t k :.....................................................................................................96
7.2.1
S
s d ng: .......................................................................................................96
7.2.2
c t Use-Case chính: ..........................................................................................97
7.2.2.1 Tìm ki m
ng i: ...............................................................................................97
7.2.2.2 Tìm ki m Region: ..................................................................................................98
7.2.2.3 Tìm
ng i ng n nh t: ........................................................................................99
7.2.2.4 Tìm chu trình t i u: ............................................................................................101
7.2.3
S
l p Class Diagram:.....................................................................................102
7.2.3.1 S
t ng quát:...................................................................................................102
7.2.3.2 S
l p d li u:.................................................................................................103
7.2.3.3 S
l p v :........................................................................................................103
7.2.3.4 S
s ki n: ......................................................................................................104
7.2.4
Mô t các l p: ......................................................................................................104
7.2.5
Các l u
ho t ng: ..........................................................................................111
7.3
Thi t k giao di n: ....................................................................................................124
7.3.1
Giao di n trên Desktop: .......................................................................................124
7.3.2
Giao di n trên PocketPC: .....................................................................................131
7.4
Cài t:.....................................................................................................................131
CH NG 8 : K t Lu n, ánh giá và h ng phát tri n ...................................................132
8.1
K t lu n, ánh giá:....................................................................................................132
8.2
H ng phát tri n: .....................................................................................................132
CH NG 9 : Tài li u tham kh o ....................................................................................133
CH NG 10 :
Ph l c .................................................................................................134
10.1 Bài toán tìm
ng i ng n nh t gi a hai m: ........................................................134
10.1.1 Phát bi u bài toán:................................................................................................134
10.1.2 Gi i quy t bài toán:..............................................................................................134
10.2 Bài toán tìm chu trình t i u .....................................................................................136
10.2.1 Phát bi u bài toán.................................................................................................136
10.2.2 Gi i quy t bài toán:..............................................................................................137
Footer Page 7 of 126.
-7-
Header Page 8 of 126.
DANH SÁCH CÁC HÌNH
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
3.2-1 Các i t ng trong mô hình Topology...............................................................51
3.4-1 Quan h Topology c p 0 .....................................................................................56
3.4-2 Quan h Topology c p 1 và 2..............................................................................57
3.4-3 Quan h Topology c p 3 .....................................................................................58
4.2-1 Thông tin c n l u tr ..........................................................................................61
4.2-2 So sánh Raster và Vector ....................................................................................64
4.3-1 Ph ng pháp Scanning .......................................................................................65
4.5.1-1 Cây t phân .....................................................................................................67
4.5.2-1 K-D Tree .........................................................................................................68
4.5.3-1 R-Tree .............................................................................................................69
4.5.5-1 R+-Tree ...........................................................................................................71
4.6.2-1 Các i t ng chính trong b n ....................................................................73
5.1-1 H phân c p các ki u d li u hình h c c a OpenGIS. .........................................76
5.3.1-1 L p khái ni m..................................................................................................85
7.2.1-1 S
s d ng t ng quát...................................................................................96
7.2.2.1-1 Use Case - Tìm ki m Edge............................................................................97
7.2.2.2-1 Use Case: Tìm ki m Region..........................................................................98
7.2.2.3-1 Use Case – Tìm
ng i ng n nh t..............................................................99
7.2.2.4-1 Use-Case - Tim chu trình t i u ..................................................................101
7.2.3.1-1 S
t ng quát ...........................................................................................102
7.2.3.2-1 S l p d li u .............................................................................................103
7.2.3.3-1 S
l p v ................................................................................................103
7.2.3.4-1 S
s ki n ..............................................................................................104
7.2.4-1 L p CNode ....................................................................................................106
7.2.4-2 L p CEdge ....................................................................................................109
7.2.5-1 Sequense Diagram: Hi n th b n ...............................................................112
7.2.5-2 Collabration Diagram: Hi n th b n ...........................................................113
7.2.5-3 Sequence Diagram: Tìm
ng ng n nh t......................................................113
7.2.5-4 Collabration Diagram: Tìm
ng ng n nh t .................................................114
7.2.5-5 Sequence Diagram: Tìm Edge........................................................................115
7.2.5-6 Collabration Diagram: Tìm Edge ...................................................................116
7.2.5-7 Sequence Diagram: Tìm chu trình t i u ........................................................117
7.2.5-8 Collabrotion Diagram: Tìm chu trình t i u ...................................................118
7.2.5-9 Sequence Diagram: D ch chuy n vùng nhìn ...................................................119
Footer Page 8 of 126.
-8-
Header Page 9 of 126.
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
7.2.5-10 Collabrotion Diagram: Di chuy n vùng nhìn ................................................120
7.2.5-11 Sequence Diagram: T l l i b n ..............................................................120
7.2.5-12 Collaboration Diagram: T l l i b n .......................................................121
7.2.5-13 Sequence Diagram: Tìm a m ................................................................121
7.2.5-14 Collaboration Diagram: Tìm a m ..........................................................122
7.2.5-15 Sequence Diagram: Tìm giao l ...................................................................123
7.2.5-16 Collaboration Diagram: Tìm giao l .............................................................123
7.3.1-1 Khung nhìn t ng quát v giao di n.................................................................124
7.3.1-2 Toolbar c a ch ng trình ...............................................................................124
7.3.1-3 Các ch c n ng chính trên thanh công c ........................................................127
7.3.1-4 Thanh th c n File .......................................................................................128
7.3.1-5 Thanh th c n View.....................................................................................128
7.3.1-6 Khung nhìn b n
thu nh ............................................................................130
7.3.1-7 Khung Layer..................................................................................................130
7.3.1-8 Khung hi n th thông tin i t ng.................................................................131
Footer Page 9 of 126.
-9-
Header Page 10 of 126.
DANH SÁCH CÁC B NG
ng
ng
ng
ng
ng
ng
ng
ng
ng
ng
ng
ng
ng
ng
ng
ng
ng
ng
2.2.4-1 Các m i quan h gi a 2 l p A va B .................................................................25
2.2.5-1 Các ki u Index
c PERST h tr : ................................................................29
2.6-1 H ng s
c nh ngh a s n trong l p StorageImpl...........................................42
2.8-1 So sánh các c tính c a các h qu n tr .............................................................47
2.8-2 B ng so sánh k t qu c a các h qu n tr c s d li u h ng i t ng.............49
3.4-1 Các c p Topology trong các l p VPF .................................................................55
3.4-2 Các c t
c yêu c u
nh ngh a quan h Topology trong VPF......................56
3.5-1. nh ngh a khung ch nh t nh nh t MBR........................................................59
4.2-1 B ng so sánh ki u d li u Raster va Vector...........................................................64
7.1-1 Các ch c n ng chính ..........................................................................................96
7.2.4-1 L p CDatabase..............................................................................................105
7.2.4-2 L p CMapView.............................................................................................105
7.2.4-3 L p CMapEvent ............................................................................................106
7.2.4-4 Thu c tính l p CNode ...................................................................................107
7.2.4-5 Ph ng th c l p CNode ...............................................................................108
7.2.4-6 Thu c tính l p CEdge...................................................................................110
7.2.4-7 Ph ng th c l p CEdge................................................................................111
7.3.1-1 Các ch c n ng chính trên thanh th c n ......................................................129
Footer Page 10 of 126.
- 10 -
Header Page 11 of 126.
T S KHÁI NI M, THU T NG
Khái ni m
OODBMS
Oriented
VÀ T
VI T T T
nh ngh a
Ghi chú
qu n tr c s d li u
(Object-
ng
Database
it
ng
Management System)
PERST
Là m t h qu n tr c s
li u h
Nhúng - -Embedded
ng
it
ng
Có ngh a là PERST
c
tích h p ch t vào ch
ng
trình, g n nh
kho ng
cách gi a database và
ch
ng trình r t nh ,
PERST tr c ti p l u d
li u trong các
i t
ng
trình
và
không c n có nh ng
n
a
ch
ng
mã làm công vi c chuy n
li u t c s d li u
thành
it
ng và ng
c
i
Topology
Là c u trúc cho mô hình
ng l
GIS ( Geography
Footer Page 11 of 126.
i giao thông
th ng thông tin
- 11 -
a
Header Page 12 of 126.
Information System )
lý. Là m t công ngh
a trên máy tính
ng b n
và x
xây
, phân tích
lý các
i t
n t i và các s
y ra trên trái
Thông tin không gian
ki n
t.
Thông tin v nh ng
m liên quan
ng
c Bao g m hai d ng:
n hình
ng, v trí, quan h c a
các
it
ng
a lý.
ng hình h c:
mô t các
c
m
hình d ng, v trí. Ví
nh
t a
m,
c a
ng…
D ng Topology:
mô t
quan h gi a
các
i t
ng hình
Ví
d
c.
nh
nh ng vùng nào k
i m t vùng xác
nh.
Thông tin phi không gian Thông tin v nh ng
( thông tin thu c tính )
m liên quan
c Ví d
n th ng ph , dân s …
kê, thông tin s , thông
tin
c tr ng gán cho
i thu c tính c a
Footer Page 12 of 126.
- 12 -
nh
i
tên
ng
Header Page 13 of 126.
ng
PDA ( Personal Digital Thi t b
Assistant )
n t
h
cá nhân, giúp ng
ng l u tr
tr
i s
các thông
tin cá nhân, công vi c
n thi t c ng nh
các
ph n m m t i thi u trên
t thi t b nh g n
Pocket PC
Khái ni m này có th
dùng
ch :
+ H
u hành
nhúng Pocket PC do
Microsoft phát tri n
a trên nhân c a H
u hành Windows
CE
+ Các
thi t
PDA s d ng h
b
u
hành Pocket PC
Edge
it
ng c nh trong mô Trong bài, Edge t
hình Topology
ng v i
i Edge, hay
ng. Khi nh c
ng có th
hi u ngh a nh nhau.
Footer Page 13 of 126.
- 13 -
ng
Header Page 14 of 126.
Region
it
ây không
ng vùng
c p
n
qu n huy n nh ng có th
hi u Region là qu n huy n.
ID
nh danh c a
it
ng
Trong bài không nh c t i
tên
ng, qu n huy n mà
ch nh c t i ID vì c s d
li u không
thông tin tên
ng. Và khi nh c t i tên
a
i t
hi u là ID.
Footer Page 14 of 126.
- 14 -
ng b t k
thì
Header Page 15 of 126.
NG 1 : Hi n tr ng và yêu c u
CH
Hi n tr ng:
1.1
Trên th gi i hi n nay ã có nhi u ph n m m gi i quy t các bài toán v
n
giao thông nh : RouteSmart, BusStops, Arclogistics, Routronic 2000,
DynaRoute… Vi t Nam nói riêng c ng có m t s công ty nh DolSoft, Hài
Hoà, … ã có m t s s n ph m v GIS nh Street Finder, SmartMap…. Các
n ph m trên a ph n s d ng c s d li u
c t ch c trên các h qu n
tr c s d li u quan h ho c t t o. Tuy nhiên v n có v n
1.Chi phí c a càc h qu n tr c s d li u th
c
t ra:
ng m i n u có dùng.
2.S khó kh n và có khi là “r c r i” trong cách l p trình giao ti p v i các
s d li u ph c t p có nhi u b ng, quan h …
Th t ra, hai v n
trên có th
ng h qu n tr c s d li u h
c gi i quy t t
ng
PERST là m t h c s d li u t
it
ng
ng
i t t b ng cách s
ng PERST (mã ngu n m ).
i nh (so v i các h c s d li u
khác) v i ph n lõi ch g m kho ng 5000 dòng mã. Yêu c u c u hình c a
PERST t
th
ng
ng th y
n h tr
i th p. H n n a, PERST c ng không c n
các h c s d li u. M c dù
y
n gi n nh v y nh ng PERST
tính ACID trong vi c th c hi n giao tác (transaction) và h
tr vi c ph c h i (recovery) t
Không ch d ng l i
tr
n “s qu n tr ”
ng
i nhanh khi h th ng g p s c .
ó mà PERST có h tr c vi c phát tri n trên môi
ng compact.NET framework nên có kh n ng phát tri n ng d ng trên
các thi t b di
Footer Page 15 of 126.
ng dùng WinCE hay PocketPC.
- 15 -
Header Page 16 of 126.
Vì v y, ta có th th y vi c dùng PERST
th ng thông tin
gi i quy t bài toán v qu n lý
a lý (GIS) là hoàn toàn kh thi.
Gi i quy t bài toán:
1.2
t trong các y u t quan tr ng quy t
t h th ng thông tin
nh s thành công hay th t b i c a
a lí là vi c l a ch n mô hình c u trúc d li u thích
p, cho phép l u tr và khai thác thông tin m t cách hi u qu . Và mô hình
Topology th hi n t t nh ng òi h i trên (Mô hình này s
c
c p sau
trong lu n v n). Vì d li u Topology trên PERST không có s n nên chúng ta
n xây d ng l i d li u theo mô hình Topology. D li u thô (d li u ngu n)
c dùng trong ng d ng này là các t p tin text.
Bài toán s
GIS,PERST và
Footer Page 16 of 126.
c gi i quy t ch y u b ng s ph i h p các ki n th c v
ho .
- 16 -
Header Page 17 of 126.
CH
ng quan v PERST
NG 2 :
Gi i thi u:
2.1
PERST là m t h c s d li u “nhúng” dành cho các ng d ng c n tính
ng l u tr . PERST
di n
h a
ng t
c thi t k dành riêng cho l p trình và không có giao
qu n tr . Vi c s d ng PERST khá
ng
i cao.
c
n gi n và
t
c hi u
m chính d th y nh t c a PERST là s tích h p
ch t ch c a PERST v i m t ngôn ng l p trình xác
nh. Hi n t i PERST
ch h tr cho 2 ngôn ng l p trình là Java và C#.
Không gi ng v i các h qu n tr c s d li u h
(OODBMSes), PERST không c n dùng
lý
ng
ng và có t c
li u h
ng
m c
ng khác
n các b biên d ch hay các b ti n
c bi t khác. Nh v y, PERST có kh n ng cung c p
su t” trong l p trình
i t
c “tính trong
cao. Các hàm API c a PERST ti n l i, d s
cao. Có th l y ví d khi so sánh v i Ozone (m t h c s
i t
ng khác vi t b ng Java). V i gi i h n (benchmark)
007, PERST t o database nhanh g p 100 l n và th c hi n phép duy t qua các
it
ng trong c s d li u nhanh g p 10 l n so v i Ozone. Và khi so v i
t h c s d li u h
ng
it
ng th
ng m i khác là ObjectStore PSE
ng
i nh (so v i các h c s d li u
Pro, PERST nhanh h n g p 4 l n.
PERST là m t h c s d li u t
khác) v i ph n lõi ch g m kho ng 5000 dòng mã. Yêu c u c u hình c a
PERST t
th
ng
ng th y
n h tr
i th p. H n n a, PERST c ng không c n
các h c s d li u. M c dù
y
n gi n nh v y nh ng PERST
tính ACID trong vi c th c hi n giao tác (transaction) và h
tr vi c ph c h i (recovery) t
Footer Page 17 of 126.
n “s qu n tr ”
ng
- 17 -
i nhanh khi h th ng g p s c .
Header Page 18 of 126.
Có hai b n cài
n cài
t c a PERST, m t b ng ngôn ng Java và m t b ng C#.
t trên C#
c chuy n t Java dùng b chuy n
(m c dù ph i có nhi u thay
c dù b n cài
i c n th c hi n m i có
i Java sang C#
c b n hoàn ch nh).
t dùng C# h tr nhi u ki u “nguyên th y” h n (g m có
ki u s nguyên không d u và ki u li t kê (enum)) nh ng trong các ph
ng
di n khác, các tính n ng c a hai b n là nh nhau. Riêng PERST.NET có h
tr c vi c phát tri n trên môi tr
ng phát tri n
ng compact.NET framework nên có kh
ng d ng trên các thi t b di
ng dùng WinCE hay
PocketPC.
c tính:
2.2
Trong ph n này chúng ta s
i vào các tính ch t quan tr ng nh t c a
PERST. C th chúng ta s tìm hi u phiên b n cài
(g i t t là PERST.NET).
t trên môi tr
ng.NET
ây các tính ch t có t nguyên g c ti ng Anh s
c gi nguyên do không có t ti ng Vi t thay th ng n g n mà úng
ngh a..
2.2.1 Persistency by reachability:
Trong ng d ng dùng PERST, m i
p Persistent
it
ng c a các l p
u có kh n ng l u tr (persistent hay còn d ch là b n v ng).
t bây gi , ta s g i t t các
it
ng này
it
ng persistent khác và ph
ct
it
ng này là các
ng l u vào database khi nó
ng th c store c a
i. Có ngh a là ta không c n ph i g i tr c ti p, t
store c a m t
Footer Page 18 of 126.
c d n xu t t
it
ng khi mu n l u
- 18 -
it
ng ó.
it
ng persistent. Các
c tham chi u t m t
it
ng khác ó
ng minh ph
c
ng th c
Header Page 19 of 126.
Database có m t
ng duy nh t
it
ng
c truy xu t m t cách
Storage.getRoot). Còn các
cách bình th
c bi t g i là root.
i t
it
ng root này là
c bi t (dùng ph
ng persistent khác
ng: ho c truy xu t b ng tham chi u t các
nh trên ho c truy xu t b ng cách dùng các
it
i
ng th c
c truy xu t theo
it
ng persistent
ng bao ch a (container
class) nh Index,Link hay Relation. Không gi ng nh các h c s d li u
ng
it
ng khác, ch có th có duy nh t m t
it
ng root trong c s
li u.
PERST yêu c u m i l p persistent
u ph i d n xu t t l p Persistent. Có
ngh a là các l p “ngo i lai” (không d n xu t t l p Persistent) không th
c l u trong database.
không dùng
ây chính là cái giá ph i tr c a s
n các b biên d ch hay ti n x lý
n gi n và
c bi t. Và các thành ph n
a các l p persistent c ng b gi i h n trong các ki u sau:
Ki u vô h
ng (scalar type):
Bool, int, short, double, enum …
Ki u chu i: Ki u System.String.
Ki u ngày tháng: Ki u System.DateTime.
Ki u tham chi u
n các
it
ng persistent: các l p k th a t l p
Persistent hay các giao di n (interface) k th a t giao di n IPersistent.
Ki u giá tr (value type): Các ki u giá tr c a C#. Các giá tr này
c l u tr c ti p trong
it
ng ch a chúng.
Ki u d li u nh phân thô: Các l p c a C# k th a t giao di n
IPersistent hay t giao di n IValue và
ch Serialization chu n s
Footer Page 19 of 126.
c dùng
- 19 -
c ánh d u là Serializable. C
óng gói d li u c a các
i
Header Page 20 of 126.
ng thành các m ng byte và l u chúng vào database. Các l p này s
c ánh d u là Serializable và không
it
c ch a các tham chi u
n các
ng persistent khác.
Ki u m ng: Các m ng m t chi u v i thành ph n là các ki u d li u
c nêu trên.
Ki u Link:
i di n cho quan h m t-nhi u trong mô hình c s d
li u. Hay nhìn theo góc
it
l p trình ây chính là ki u m ng
ng persistent.
Có m t v n
là PERST không t bi t
persistent nào ó ã có thay
c
ng ch a các
c r ng li u m t
it
ng
i gì ch a trong quá trình làm vi c. Mu n bi t
u ó ch có cách là ta t so sánh t ng field c a tr ng thái c và m i
i nhau. Nh ng nh v y chi phí r t cao. Vì th nên trong PERST, l p trình
viên hoàn toàn ch u trách nhi m v vi c l u
Có hai cách trong PERST
it
ng nào vào c s d li u.
ta có th l u m t
it
ng vào c s d
li u:
Cách th nh t là dùng ph
cg ib i
it
ng th c Persistent.Store. Ph
ng nào s l u b n thân
it
ng
c tham chi u t nó m t cách tr c ti p hay không tr c ti p mà ch a
c
u. Có ngh a là n u ta g i ph
t cây thì l n l
t t t c các
it
ng th c này khi
ng th c Store này
it
ng ó và các
iv i
ng c a cây này s
it
ng g c c a
c l u xu ng b
nh ph .
Cách th hai là dùng ph
ánh d u các
it
ng r ng chúng ã b thay
vào database. Cách này
Footer Page 20 of 126.
ng th c Persistent.Modify: Ph
c bi t h u d ng khi
- 20 -
ng th c này ch
i ch không l u ngay l p t c
it
ng
c thay
i nhi u
Header Page 21 of 126.
n trong m t giao tác. Lúc ó, thao tác ghi
a ch ph i th c hi n m t l n
vào cu i giao tác, t ng hi u su t lên áng k .
2.2.2
Nh
lý
ã
Semi transparent object loading:
c p
trên, PERST không dùng b t c b biên d ch hay ti n x
c bi t nào. Và vì C# không cung c p thông tin v các tr ng thái
(behavior) hay s thay
i tr ng thái các
(runtime) nên không th cài
su t” (transparent)
ng trong th i gian th c thi
t c c u l u tr c a PERST hoàn toàn “trong
c (ngh a là không th truy xu t các
u tr và không
phân bi t
it
c l u tr ). Thay cho s cài
it
ng
di n
c
IPersistent
recursiveLoading. Ph
cung
c l u tr hay
t “trong su t” hoàn toàn, PERST ã
g ng cung c p s “trong su t” trong a ph n các tr
Giao
ng
c l u tr m t cách hoàn toàn gi ng nhau vì ta không th
c khi nào ta ang truy xu t vào
không
it
ng h p.
c p
cho
chúng
ng th c này m c
nh
c cài
ta
ph
ng
th c
t b ng cách tr v
(return) giá tr true. Có ngh a là PERST s load (vào b nh chính) m t cách
quy các
it
ng
c tham chi u t m t
it
ng ngu n khi
it
ng
ngu n này
c load. Có ngh a là c ch này s gây ra vi c load ng m
nh
toàn b các
it
ng vào b nh chính. C ch này t
ng t cách làm vi c
a c ch “chu i hóa” (serialization).
tránh v n
(do c
ph
tràn b nh x y ra khi load
ng lên b nh chính
ch recursiveLoading gây ra), chúng ta ph i quá t i (overload)
ng th c recursiveLoading trong m t vài l p b ng cách tr v (return)
giá tr false trong hàm. Các
it
thu c các l p ã nói trên s không
Footer Page 21 of 126.
it
- 21 -
ng
c tham chi u t các
c load ng m
i t
ng
nh n a mà ph i
c
Header Page 22 of 126.
load m t cách t
ng ph
ng minh b ng ph
ng th c Persistent.Load. V y ta th y
ng th c recursiveLoading có th dùng
load các
it
u khi n cách th c
ng t b nh ph vào b nh chính.
u ý r ng các
it
ng dùng
”ch a” các
class) nh Link,Relation,Index… ch load các
it
it
ng khác (container
ng mà nó ch a khi c n
thi t, không load t t c theo c ch recusiveLoading. Ngoài ra, vi c truy xu t
các
i t
ph
ng thành ph n c a m t l p ki u container
u thông qua các
ng th c c a nó.
PERST dùng ph
ob
c ban
ng th c kh i t o m c
u các
it
ng
nh (không có tham s )
c load t b nh ph .
kh i
u này có ngh a
là:
1.M i l p có kh n ng l u tr
ph
ng th c kh i t o m c
c (persistent capable class)
nh (ho c là không có ph
khi ó trình biên d ch s t t o ra cho ta). Ph
truy xu t có th
2.Ph
ng
ng th c kh i t o nào,
ng th c này có th có m i t m
c (public, private,protected … ).
ng th c kh i t o ch kh i t o nh ng thành ph n không b n v ng,
không c n l u tr (transient) c a
3.Ph
u nên có
ng th c kh i t o m c
it
ng.
nh dùng
t o nh ng th hi n c a các
c load t b nh ph . V y t i th i
nh ho t
ng các thành ph n c a
it
m ph
ng ch a
i
ng th c kh i t o m c
c gán các giá tr
u tr trong b nh ph . N u ta mu n các thành ph n này c ng
c
c kh i
o nh các thành ph n transient nói trên, ta c n kh i t o chúng trong hàm
OnLoad,
c g i ngay khi các giá tr trong b nh ph
nh chính.
Footer Page 22 of 126.
- 22 -
c load lên b
Header Page 23 of 126.
Tóm l i, các c ch trên cho chúng ta s thu n ti n, d dàng và m m d o
trong l p trình, vì nó không yêu c u l p trình viên ph i load t
it
ng minh các
ng trong khi v n cho phép vi c này, nói cách khác là PERST h tr
p trình viên trong vi c ki m soát vi c load các
“ch a” các
it
ng khác là ph i load t
ch a (vì các l p này
recursiveLoading
2.2.3
ã m c
it
ng. Ch có các l p
ng minh các
nh
it
c overload ph
ng th c
có giá tr tr v (return) false).
Automatic scheme evaluation
PERST h tr “lazy automatic scheme evaluation”. Khi
t l p b thay
i (thay
iv s l
nh d ng m i. N u
it
n ph i l u, nó s
cl ud
i
nh ngh a c a
ng bi n thành viên, thay
a bi n thành viên…), PERST s chuy n các
ki u thay
ng mà nó
it
ng ã
ng ó trong quá trình ho t
i v ki u
c load sang
ng có thay
i và
i d ng m i. PERST có kh n ng h tr các
nh d ng sau:
1.Các thay
ng (thay
i “t
ng thích” l n nhau gi a các ki u d
i mà không c t b t d li u). Ví d nh thay
sang float hay int sang long,… nh ng ng
2.Thay
c l i thì không
li u vô
i t ki u int
c.
i th t các thành ph n trong l p hay thêm, b t các thành
ph n trong l p này vào l p cha hay l p d n x t c a nó.
3.Thêm vào hay b l p kh i cây th a k c a l p.
4.Thay
i
nh d ng c a l p b ng cách thay
i ý ngh a c a các
giá tr .
i thay
không t
Footer Page 23 of 126.
i khác trong c u trúc l p (
ng thích
i tên cho thành ph n, chuy n ki u
i v i các thành ph n…)
- 23 -
u không
c qu n lý b i c
Header Page 24 of 126.
ch thay
i c u trúc d li u t
ng c a PERST. Trong các tr
ng h p này
ta có th dùng c ch xu t nh p b ng XML c a PERST. C s d li u có th
c xu t ra d ng XML b ng cách dùng ph
o l i c s d li u theo
ng th c Storage.exportXML,
nh d ng m i r i nh p d li u vào b ng ph
ng
th c Storage.importXML c a PERST.
2.2.4
Relation:
i quan h m t-m t gi a các
it
ng trong c s d li u
ng tham chi u (references) trong C#. Nh ng trong nhi u tr
ta c n
ng h p này. Giao di n này
a ra
ng th c thêm, xóa, tìm ki m… các thành ph n c a m t “b ”
(relation) các
có th
ng
ng h p chúng
n quan h m t-nhi u hay quan h nhi u-nhi u. PERST cung c p
giao di n (interface) Link dùng cho các tr
các ph
c th hi n
it
ng persistent. Các thành ph n c a “b ” (relation) này
c truy xu t b ng index hay ta có th chuy n chúng thành m t
it
ng r i m i truy xu t.
T p h p (relation) có 2 d ng:
1. D ng “nhúng” (embedded relation): Các tham chi u
ng t m t
2. D ng
n các
i
c l p (standalone relation): Khi ó relation là m t
i
it
ng
c ch a trong chính
ng riêng bi t, ch a các tham chi u
C hai d ng trên
relation
u cài
it
ng ó.
ng.
t giao di n Link. C th Embedded
c t o b ng cách dùng ph
Standalone relation thì dùng ph
n các
it
ng th c Storage.createLink, còn
ng th c Storage.createRelation.
B ng sau ây minh h a các m i quan h gi a 2 l p A và B:
Footer Page 24 of 126.
- 24 -
Header Page 25 of 126.
Ki u quan h
Object A
Object B
t-m t
B bref;
A aref;
t-nhi u
Link bref;
A aref;
Nhi u-m t
B bref;
Link aref;
Nhi u-nhi u
Link bref;
Link aref;
ng 2.2.4-1 Các m i quan h gi a 2 l p A va B
2.2.5
Index:
Thông th
ng
it
ng
c truy xu t t m t
it
ng khác b ng tham
chi u hay b ng Link nh trên. Tuy nhiên, chúng ta c ng c n truy xu t các
ng thông qua khóa. Trong môi tr
cho vi c truy xu t theo khóa này.
ng theo khóa d nhiên là t
ng
i
ng.NET, l p Hashtable là m t ví d
i v i c s d li u, vi c truy xu t
i ph c t p. Và vi c cài
i
t trong PERST
n m t ch c n ng d ch các câu truy v n SQL là không kh thi vì nó s làm
cho PERST phình to ra và ch m i. Tuy nhiên trong ph n l n tr
các ng d ng ch th c hi n các l nh truy v n d li u t
ng
i
ng h p,
n gi n nh
tìm theo m t khóa chính xác hay trong m t kho ng giá tr nào ó. Trong
PERST vi c này
c th c hi n b ng cách cài
t các giao di n (interface)
Index và FieldIndex. Giao di n Index dùng cho các khóa
tr t
ng ng c a khóa ó. Còn giao di n FieldIndex thì dùng
cho các
Index
it
ng v i khóa chính là m t thành ph n c a
c t o trong PERST b ng ph
i Index hay Storage.createFieldIndex
cách cài
Footer Page 25 of 126.
c l p và các giá
it
ng.
ng th c Storage.createIndex
i
i v i FieldIndex. Có th có vài
t Index nh ng hi n t i PERST ch dùng B+Tree
- 25 -
l p index
cài
t