1. 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 LI U H NG I T NG PERST
XÂY D NG 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
2. - 2 -
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 LI U H NG I T NG PERST
XÂY D NG 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
3. - 3 -
I C M N
Chúng em chân thành cám n Khoa Công ngh Thông tin, tr ng i h c
Khoa h c T nhiên t o u ki n cho chúng em th c hi n 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 ng
n, ch b o chúng em trong su t th i gian th c hi n 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 i v i cha m , nh ng ng i
ã ch m sóc, nuôi d y chúng con thành ng i và luôn 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 , trao
i ki n th c, kinh nghi m và 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
4. - 4 -
TÓM T T LU N V N
Lu n v n c t ch c thành các ph n chính nh sau:
Ch ng 1: Gi i thi u t m quan tr ng, m c tiêu, ph m vi c a tài, các c s lý
thuy t và h ng ti p c n.
Ch ng 2: Cách t ch c c s d li u h ng i t 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 ng
i t ng khác.
Ch ng 3: Gi i thi u v mô hình Topology: nêu lên nh ng khái ni m c b n,
các i t ng trong Topology và các c p Topology.
Ch 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 trên PocketPC.
Ch ng 7: ng d ng b n : mô hình phân tích thi t k .
Ch ng 8: K t lu n, ánh giá và h ng phát tri n
Ch ng 9: Nh ng tài li u tham kh o khi th c hi n tài
Ch ng 10:Nêu nh ng thu t toán chính trong ch ng trình
5. - 5 -
C L 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 VÀ T VI T T T ..................................................11
CH NG 1 : Hi n tr ng và yêu c u.................................................................................15
1.1 Hi n tr ng: .................................................................................................................15
1.2 Gi i quy t bài toán: ....................................................................................................16
CH NG 2 : T ng quan v Perst.....................................................................................17
2.1 Gi i thi u: ..................................................................................................................17
2.2 c tính:.....................................................................................................................18
2.2.1 Persistency by reachability:....................................................................................18
2.2.2 Semi transparent object loading: ............................................................................21
2.2.3 Automatic scheme evaluation.................................................................................23
2.2.4 Relation: ................................................................................................................24
2.2.5 Index: ....................................................................................................................25
2.2.6 Giao tác (Transaction):...........................................................................................29
2.3 Transparent API: ........................................................................................................31
2.3.1 Dùng.NET Remoting API:.....................................................................................31
2.3.2 Dùng các thu c tính o (virtual properties):............................................................32
2.4 C ch th c hi n giao tác (Transaction):.....................................................................33
2.5 Nh ng tr ng h p nên dùng PERST: .........................................................................37
2.6 Các thông s c a PERST:...........................................................................................38
2.7 S l c v RTree:.......................................................................................................44
2.7.1 Gi i thi u:..............................................................................................................44
2.7.2 S l c v d li u không gian (spatial data) và các gi i pháp:................................44
2.8 So sánh v i các h qu n tr c s d li u h ng i t ng khác: ................................45
CH NG 3 : Gi i thi u v mô hình Topology.................................................................50
3.1 Gi i thi u: ..................................................................................................................50
3.2 Các khái ni m c b n trong Topology: .......................................................................50
3.3 Các lo i i t ng trong Topology: ............................................................................51
3.4 Các c p c a Topology: ...............................................................................................53
6. - 6 -
3.5 MBR – Minimum Bounding Rectangle: .....................................................................59
CH NG 4 : Gi i thi u v GIS .......................................................................................60
4.1 Gi i thi u v các ng d ng và gi i pháp v GIS: ........................................................60
4.2 Mô hình d li u c a thông tin a lý: ..........................................................................61
4.3 Thu th p d li u: ........................................................................................................64
4.4 Các gi i thu t nghiên c u v GIS: ..............................................................................66
4.5 Các c u trúc d li u không gian trong GIS: ................................................................67
4.5.1 Cây t phân (Quad Tree):.......................................................................................67
4.5.2 k-d Tree:................................................................................................................68
4.5.3 R-Tree: ..................................................................................................................69
4.5.4 R*-Tree: ................................................................................................................70
4.5.5 R+
-Tree:.................................................................................................................71
4.6 ng d ng b n :.......................................................................................................72
4.6.1 Các ki u b n : ....................................................................................................72
4.6.2 Các i t ng c a b n :......................................................................................72
4.7 ng d ng GIS trên PocketPC:....................................................................................73
CH NG 5 : Gi i thi u v chu n OpenGIS.....................................................................75
5.1 Các ki u d li u hình h c c a OpenGIS: ....................................................................75
5.2 OpenGIS Specification ( c t OpenGIS):..................................................................76
5.2.1 Các khái ni m:.......................................................................................................76
5.2.2 Nh ng d ch v OpenGIS (OpenGIS Services ):......................................................78
5.2.3 M t mô hình nh ng c ng ng thông tin (Information Communities Model ):.......79
5.2.4 c m: ..............................................................................................................79
5.2.5 Phân lo i:...............................................................................................................81
5.3 OpenGIS Abstract Specification:................................................................................82
5.3.1 Essential Model (mô hình b n ch t ): .....................................................................83
5.3.2 Abstract Model: .....................................................................................................85
CH NG 6 : T ng quan v PocketPC .............................................................................89
6.1 T ng quan v PocketPC: ............................................................................................89
6.2 Kh n ng l p trình trên PocketPC:..............................................................................89
6.3 M t s v n khi l p trình ng d ng trên PocketPC: .................................................89
6.3.1 T c và các h tr kh n ng hi n th : ..................................................................89
6.3.2 Kh n ng và hình th c l u tr :...............................................................................90
6.3.3 T ng tác gi a ng i s d ng và thi t b : ..............................................................91
6.4 Các gi i pháp cho ng d ng b n trên PocketPC:....................................................92
6.4.1 Yêu c u chung: ......................................................................................................92
7. - 7 -
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
8. - 8 -
DANH SÁCH CÁC HÌNH
Hình 3.2-1 Các i t ng trong mô hình Topology...............................................................51
Hình 3.4-1 Quan h Topology c p 0 .....................................................................................56
Hình 3.4-2 Quan h Topology c p 1 và 2..............................................................................57
Hình 3.4-3 Quan h Topology c p 3 .....................................................................................58
Hình 4.2-1 Thông tin c n l u tr ..........................................................................................61
Hình 4.2-2 So sánh Raster và Vector ....................................................................................64
Hình 4.3-1 Ph ng pháp Scanning .......................................................................................65
Hình 4.5.1-1 Cây t phân .....................................................................................................67
Hình 4.5.2-1 K-D Tree .........................................................................................................68
Hình 4.5.3-1 R-Tree .............................................................................................................69
Hình 4.5.5-1 R+-Tree...........................................................................................................71
Hình 4.6.2-1 Các i t ng chính trong b n ....................................................................73
Hình 5.1-1 H phân c p các ki u d li u hình h c c a OpenGIS. .........................................76
Hình 5.3.1-1 L p khái ni m..................................................................................................85
Hình 7.2.1-1 S s d ng t ng quát...................................................................................96
Hình 7.2.2.1-1 Use Case - Tìm ki m Edge............................................................................97
Hình 7.2.2.2-1 Use Case: Tìm ki m Region..........................................................................98
Hình 7.2.2.3-1 Use Case – Tìm ng i ng n nh t..............................................................99
Hình 7.2.2.4-1 Use-Case - Tim chu trình t i u ..................................................................101
Hình 7.2.3.1-1 S t ng quát...........................................................................................102
Hình 7.2.3.2-1 S l p d li u .............................................................................................103
Hình 7.2.3.3-1 S l p v ................................................................................................103
Hình 7.2.3.4-1 S s ki n ..............................................................................................104
Hình 7.2.4-1 L p CNode....................................................................................................106
Hình 7.2.4-2 L p CEdge ....................................................................................................109
Hình 7.2.5-1 Sequense Diagram: Hi n th b n ...............................................................112
Hình 7.2.5-2 Collabration Diagram: Hi n th b n ...........................................................113
Hình 7.2.5-3 Sequence Diagram: Tìm ng ng n nh t......................................................113
Hình 7.2.5-4 Collabration Diagram: Tìm ng ng n nh t .................................................114
Hình 7.2.5-5 Sequence Diagram: Tìm Edge........................................................................115
Hình 7.2.5-6 Collabration Diagram: Tìm Edge ...................................................................116
Hình 7.2.5-7 Sequence Diagram: Tìm chu trình t i u........................................................117
Hình 7.2.5-8 Collabrotion Diagram: Tìm chu trình t i u ...................................................118
Hình 7.2.5-9 Sequence Diagram: D ch chuy n vùng nhìn ...................................................119
9. - 9 -
Hình 7.2.5-10 Collabrotion Diagram: Di chuy n vùng nhìn ................................................120
Hình 7.2.5-11 Sequence Diagram: T l l i b n ..............................................................120
Hình 7.2.5-12 Collaboration Diagram: T l l i b n .......................................................121
Hình 7.2.5-13 Sequence Diagram: Tìm a m ................................................................121
Hình 7.2.5-14 Collaboration Diagram: Tìm a m..........................................................122
Hình 7.2.5-15 Sequence Diagram: Tìm giao l ...................................................................123
Hình 7.2.5-16 Collaboration Diagram: Tìm giao l .............................................................123
Hình 7.3.1-1 Khung nhìn t ng quát v giao di n.................................................................124
Hình 7.3.1-2 Toolbar c a ch ng trình...............................................................................124
Hình 7.3.1-3 Các ch c n ng chính trên thanh công c ........................................................127
Hình 7.3.1-4 Thanh th c n File.......................................................................................128
Hình 7.3.1-5 Thanh th c n View.....................................................................................128
Hình 7.3.1-6 Khung nhìn b n thu nh ............................................................................130
Hình 7.3.1-7 Khung Layer..................................................................................................130
Hình 7.3.1-8 Khung hi n th thông tin i t ng.................................................................131
10. - 10 -
DANH SÁCH CÁC B NG
ng 2.2.4-1 Các m i quan h gi a 2 l p A va B .................................................................25
ng 2.2.5-1 Các ki u Index c PERST h tr :................................................................29
ng 2.6-1 H ng s c nh ngh a s n trong l p StorageImpl...........................................42
ng 2.8-1 So sánh các c tính c a các h qu n tr .............................................................47
ng 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
ng 3.4-1 Các c p Topology trong các l p VPF .................................................................55
ng 3.4-2 Các c t c yêu c u nh ngh a quan h Topology trong VPF......................56
ng 3.5-1. nh ngh a khung ch nh t nh nh t MBR........................................................59
ng 4.2-1 B ng so sánh ki u d li u Raster va Vector...........................................................64
ng 7.1-1 Các ch c n ng chính ..........................................................................................96
ng 7.2.4-1 L p CDatabase..............................................................................................105
ng 7.2.4-2 L p CMapView.............................................................................................105
ng 7.2.4-3 L p CMapEvent............................................................................................106
ng 7.2.4-4 Thu c tính l p CNode ...................................................................................107
ng 7.2.4-5 Ph ng th c l p CNode ...............................................................................108
ng 7.2.4-6 Thu c tính l p CEdge...................................................................................110
ng 7.2.4-7 Ph ng th c l p CEdge................................................................................111
ng 7.3.1-1 Các ch c n ng chính trên thanh th c n ......................................................129
11. - 11 -
T S KHÁI NI M, THU T NG VÀ T VI T T T
Khái ni m nh ngh a Ghi chú
OODBMS (Object-
Oriented Database
Management System)
qu n tr c s d li u
ng i t ng
PERST Là m t h qu n tr c s
li u h ng i t ng
Nhúng - -Embedded 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
a ch ng trình và
không c n có nh ng n
mã làm công vi c chuy n
li u t c s d li u
thành i t ng và ng c
i
Topology Là c u trúc cho mô hình
ng l i giao thông
GIS ( Geography th ng thông tin a
12. - 12 -
Information System ) lý. Là m t công ngh
a trên máy tính xây
ng b n , phân tích
và x lý các i t ng
n t i và các s ki n
y ra trên trái t.
Thông tin không gian Thông tin v nh ng c
m liên quan n hình
ng, v trí, quan h c a
các i t ng a lý.
Bao g m hai d ng:
ng hình h c:
mô t các c m
hình d ng, v trí. Ví
nh t a c a
m, ng…
D ng Topology:
mô t quan h gi a
các i t ng hình
c. Ví d 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 thu c tính )
Thông tin v nh ng c
m liên quan n th ng
kê, thông tin s , thông
tin c tr ng gán cho
i thu c tính c a i
Ví d nh tên ng
ph , dân s …
13. - 13 -
ng
PDA ( Personal Digital
Assistant )
Thi t b n t h tr
cá nhân, giúp ng i s
ng l u tr 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 b
PDA s d ng h u
hành Pocket PC
Edge i t ng c nh trong mô
hình Topology
Trong bài, Edge t ng
ng v i ng. Khi nh c
i Edge, hay ng có th
hi u ngh a nh nhau.
14. - 14 -
Region i t ng vùng ây khô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 i t 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 ng b t k thì
hi u là ID.
15. - 15 -
CH NG 1 : Hi n tr ng và yêu c u
1.1 Hi n tr ng:
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 c t ra:
1.Chi phí c a càc h qu n tr c s d li u th 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 c gi i quy t t ng i t t b ng cách s
ng h qu n tr c s d li u h ng i t ng PERST (mã ngu n m ).
PERST là m t h c s d li u t ng 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 ng i th p. H n n a, PERST c ng không c n n “s qu n tr ”
th ng th y các h c s d li u. M c dù n gi n nh v y nh ng PERST
n h tr y 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 ng i nhanh khi h th ng g p s c .
Không ch d ng l i ó mà PERST có h tr c vi c phát tri n trên môi
tr 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 ng dùng WinCE hay PocketPC.
16. - 16 -
Vì v y, ta có th th y vi c dùng PERST gi i quy t bài toán v qu n lý
th ng thông tin a lý (GIS) là hoàn toàn kh thi.
1.2 Gi i quy t bài toán:
t trong các y u t quan tr ng quy t nh s thành công hay th t b i c a
t h th ng thông tin 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 c gi i quy t ch y u b ng s ph i h p các ki n th c v
GIS,PERST và ho .
17. - 17 -
CH NG 2 : ng quan v PERST
2.1 Gi i thi u:
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 c thi t k dành riêng cho l p trình và không có giao
di n h a qu n tr . Vi c s d ng PERST khá n gi n và t c hi u
ng t ng i cao. c 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 ng i t ng khác
(OODBMSes), PERST không c n dùng n các b biên d ch hay các b ti n
lý c bi t khác. Nh v y, PERST có kh n ng cung c p c “tính trong
su t” trong l p trình m c cao. Các hàm API c a PERST ti n l i, d s
ng và có t c cao. Có th l y ví d khi so sánh v i Ozone (m t h c s
li u h ng 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
i t 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 i t ng th ng m i khác là ObjectStore PSE
Pro, PERST nhanh h n g p 4 l n.
PERST là m t h c s d li u t ng 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 ng i th p. H n n a, PERST c ng không c n n “s qu n tr ”
th ng th y các h c s d li u. M c dù n gi n nh v y nh ng PERST
n h tr y 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 ng i nhanh khi h th ng g p s c .
18. - 18 -
Có hai b n cài t c a PERST, m t b ng ngôn ng Java và m t b ng C#.
n cài t trên C# c chuy n t Java dùng b chuy n i Java sang C#
(m c dù ph i có nhi u thay i c n th c hi n m i có c b n hoàn ch nh).
c dù b n cài 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 compact.NET framework nên có kh
ng phát tri n ng d ng trên các thi t b di ng dùng WinCE hay
PocketPC.
2.2 c tính:
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 t trên môi tr ng.NET
(g i t t là PERST.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 i t ng c a các l p c d n xu t t
p Persistent 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 i t ng này là các i t ng persistent. Các
i t ng này c t ng l u vào database khi nó c tham chi u t m t
i t ng persistent khác và ph ng th c store c a i t ng khác ó c
i. Có ngh a là ta không c n ph i g i tr c ti p, t ng minh ph ng th c
store c a m t i t ng khi mu n l u i t ng ó.
19. - 19 -
Database có m t i t ng c bi t g i là root. i t ng root này là i
ng duy nh t c truy xu t m t cách c bi t (dùng ph ng th c
Storage.getRoot). Còn các i t ng persistent khác c truy xu t theo
cách bình th ng: ho c truy xu t b ng tham chi u t các i t ng persistent
nh trên ho c truy xu t b ng cách dùng các i t 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 i t ng khác, ch có th có duy nh t m t i t 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. ây chính là cái giá ph i tr c a s n gi n và
không dùng n các b biên d ch hay ti n x lý 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 i t 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 i t 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à c ánh d u là Serializable. C
ch Serialization chu n s c dùng óng gói d li u c a các i
20. - 20 -
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 c ch a các tham chi u n các
i t 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 l p trình ây chính là ki u m ng ng ch a các
i t ng persistent.
Có m t v n là PERST không t bi t c r ng li u m t i t ng
persistent nào ó ã có thay i gì ch a trong quá trình làm vi c. Mu n bi t
c 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 i t ng nào vào c s d li u.
Có hai cách trong PERST ta có th l u m t i t ng vào c s d
li u:
Cách th nh t là dùng ph ng th c Persistent.Store. Ph ng th c này khi
c g i b i i t ng nào s l u b n thân i t ng ó và các i t 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 ng th c Store này i v i i t ng g c c a
t cây thì l n l t t t c các i t ng c a cây này s c l u xu ng b
nh ph .
Cách th hai là dùng ph ng th c Persistent.Modify: Ph ng th c này ch
ánh d u các i t ng r ng chúng ã b thay i ch không l u ngay l p t c
vào database. Cách này c bi t h u d ng khi i t ng c thay i nhi u
21. - 21 -
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 Semi transparent object loading:
Nh ã c p trên, PERST không dùng b t c b biên d ch hay ti n x
lý 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 i t ng trong th i gian th c thi
(runtime) nên không th cài t c c u l u tr c a PERST hoàn toàn “trong
su t” (transparent) c (ngh a là không th truy xu t các i t ng c
u tr và không c l u tr m t cách hoàn toàn gi ng nhau vì ta không th
phân bi t c khi nào ta ang truy xu t vào i t ng c l u tr hay
không c l u tr ). Thay cho s cài 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 ng h p.
Giao di n IPersistent cung c p cho chúng ta ph ng th c
recursiveLoading. Ph ng th c này m c nh c cài 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 i t ng c tham chi u t m t i t ng ngu n khi i t 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 i t 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 tràn b nh x y ra khi load i t ng lên b nh chính
(do c ch recursiveLoading gây ra), chúng ta ph i quá t i (overload)
ph 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 i t ng c tham chi u t các i t ng
thu c các l p ã nói trên s không c load ng m nh n a mà ph i c
22. - 22 -
load m t cách t ng minh b ng ph ng th c Persistent.Load. V y ta th y
ng ph ng th c recursiveLoading có th dùng u khi n cách th c
load các i t ng t b nh ph vào b nh chính.
u ý r ng các i t ng dùng ”ch a” các i t ng khác (container
class) nh Link,Relation,Index… ch load các i t 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 ng thành ph n c a m t l p ki u container u thông qua các
ph ng th c c a nó.
PERST dùng ph ng th c kh i t o m c nh (không có tham s ) kh i
o b c ban u các i t ng c load t b nh ph . u này có ngh a
là:
1.M i l p có kh n ng l u tr c (persistent capable class) u nên có
ph ng th c kh i t o m c nh (ho c là không có ph ng th c kh i t o nào,
khi ó trình biên d ch s t t o ra cho ta). Ph ng th c này có th có m i t m
truy xu t có th c (public, private,protected … ).
2.Ph 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 i t ng.
3.Ph ng th c kh i t o m c nh dùng t o nh ng th hi n c a các i
ng c load t b nh ph . V y t i th i m ph ng th c kh i t o m c
nh ho t ng các thành ph n c a i t ng ch a c gán các giá tr c
u tr trong b nh ph . N u ta mu n các thành ph n này c ng 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 c load lên b
nh chính.
23. - 23 -
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 ng minh các
i t 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 i t ng. Ch có các l p
“ch a” các i t ng khác là ph i load t ng minh các i t ng mà nó
ch a (vì các l p này ã m c nh c overload ph ng th c
recursiveLoading có giá tr tr v (return) false).
2.2.3 Automatic scheme evaluation
PERST h tr “lazy automatic scheme evaluation”. Khi nh ngh a c a
t l p b thay i (thay i v s l ng bi n thành viên, thay i v ki u
a bi n thành viên…), PERST s chuy n các i t ng ã c load sang
nh d ng m i. N u i t ng ó trong quá trình ho t ng có thay i và
n ph i l u, nó s c l u d i d ng m i. PERST có kh n ng h tr các
ki u thay i nh d ng sau:
1.Các thay i “t ng thích” l n nhau gi a các ki u d li u vô
ng (thay i mà không c t b t d li u). Ví d nh thay i t ki u int
sang float hay int sang long,… nh ng ng c l i thì không c.
2.Thay 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 i khác trong c u trúc l p ( i tên cho thành ph n, chuy n ki u
không t ng thích i v i các thành ph n…) u không c qu n lý b i c
24. - 24 -
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 ng th c Storage.exportXML,
o l i c s d li u theo 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 i t ng trong c s d li u c th hi n
ng tham chi u (references) trong C#. Nh ng trong nhi u tr ng h p chúng
ta c n 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 ng h p này. Giao di n này a ra
các ph 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 i t ng persistent. Các thành ph n c a “b ” (relation) này
có th c truy xu t b ng index hay ta có th chuy n chúng thành m t
ng i t 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 n các i
ng t m t i t ng c ch a trong chính i t ng ó.
2. D ng c l p (standalone relation): Khi ó relation là m t i
ng riêng bi t, ch a các tham chi u n các i t ng.
C hai d ng trên u cài t giao di n Link. C th Embedded
relation c t o b ng cách dùng ph ng th c Storage.createLink, còn
Standalone relation thì dùng ph 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:
25. - 25 -
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 i t ng c truy xu t t m t i t 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 i
ng thông qua khóa. Trong môi tr ng.NET, l p Hashtable là m t ví d
cho vi c truy xu t theo khóa này. i v i c s d li u, vi c truy xu t i
ng theo khóa d nhiên là t ng i ph c t p. Và vi c cà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 ng h p,
các ng d ng ch th c hi n các l nh truy v n d li u t ng i 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 c l p và các giá
tr t ng ng c a khóa ó. Còn giao di n FieldIndex thì dùng l p index
cho các i t ng v i khóa chính là m t thành ph n c a i t ng.
Index c t o trong PERST b ng ph ng th c Storage.createIndex i
i Index hay Storage.createFieldIndex i v i FieldIndex. Có th có vài
cách cài t Index nh ng hi n t i PERST ch dùng B+Tree cài t
26. - 26 -
(B+Tree là c u trúc d li u hi u qu nh t cho database trên b nh ph ). Các
ph ng th c c a giao di n Index và FieldIndex cho phép thêm, xóa, tìm
ki m i t ng theo khóa b ng giá tr chính xác ho c trong m t kho ng giá
tr nào ó. Vì v y các tr ng h p tìm ki m sau ây là th c hi n c:
1. Khóa b ng giá tr VAL.
2. Khóa thu c kho ng [MIN_VAL,MAX_VAL].
3. Khóa thu c kho ng [MIN_VAL,MAX_VAL).
4. Khóa thu c kho ng (MIN_VAL,MAX_VAL].
5. Khóa thu c kho ng (MIN_VAL,MAX_VAL).
6. Khóa l n h n giá tr MIN_VAL.
7. Khóa l n h n hay b ng giá tr MIN_VAL.
8. Khóa bé h n giá tr MAX_VAL.
9. Khóa bé h n hay b ng giá tr MAX_VAL.
Có m t s cách ch n i t ng theo khóa khác nhau nh sau:
a.IPersistent get(Key key): Ch n i t ng b ng khóa chính xác v i khóa
này nên là khóa duy nh t c a i t ng.
b.IPersistent[] get(Key from,Key till): L y ra m t m ng i t ng có khóa
m trong m t kho ng giá tr cho tr c gi i h n b i giá tr from và till.
Trong ó from và till có th mang giá tr tùy ý k c null.
c.IEnumerator GetEnumerator(): L y ra m t IEnumerator, có th dùng
câu l nh foreach duy t qua toàn b các i t ng trong index này theo
chi u t ng c a khóa.
27. - 27 -
d.IEnumerator GetEnumerator(Key from, Key till, IterationOrder order):
y ra m t IEnumerator v i khóa n m trong kho ng giá tr xác nh b i
from và till. Ta có th duy t qua IEnumerator này v i chi u khóa t ng hay
gi m u c.
u c n m t t p h p các i t ng, chúng ta có th s d ng ph ng th c
Storage.createSet. T p h p (set) c cài t b ng B+Tree v i object ID
(OID) là khóa.
Ngoài ra, PERST còn h tr r t m nh cho d li u “không gian” (spatial
data) b ng cách cung c p c u trúc SpatialIndex h tr vi c thêm, xóa, tìm
ki m các i t ng “không gian” d dàng. SpatialIndex c cài t b ng
u trúc RTree c a Guttman v i thu t toán “quadratic split” khá hi u qu
trong vi c tìm ki m các i t ng R2 (tìm ki m các i t ng không gian
i khóa tìm ki m là các giá tr liên quan n t a ).
B ng d i ây tóm t t các ki u Index c PERST h tr :
Interface Mô t Ki u c a
khóa
Cài t Ph ng th c t o
Index Index dùng tìm ki m
li u b ng khóa
chính xác ho c n m
trong m t kho ng
xác nh.
Ki u vô
ng,
chu i hay
ki u tham
chi u.
B+Tree Storage.CreateIndex
Index Nh trên nh ng áp
ng cho tr ng
Ki u vô
ng,
B+Tree Storage.CreateThinkI
ndex
28. - 28 -
p có khóa trùng. chu i hay
ki u tham
hi u.
FieldIndex Index v i khóa là
t trong các
tr ng c a l p c
p Index.
Ki u vô
ng,
chu i hay
ki u tham
chi u.
B+Tree Storage.CreateFieldIn
dex
BitIndex BitIndex dùng
tìm i t ng v i
khóa cógiá tr nh
phân.
Ki u i
ng có
kh n ng
u tr .
B+Tree Storage.CreaateBitInd
ex
ISet p h p các i
ng có kh n ng
u tr .
B+Tree Storage.CreateSet
IPersisten
tSet
p h p các i
ng có kh n ng
u tr c và t p
p này có kh n ng
co giãn, có th qu n
lý c c s l ng
ít l n s l ng
nhi u.
Ki u i
ng có
kh n ng
u tr .
Link
ho c
B+Tree
Storage.CreateScalabl
eSet
29. - 29 -
SpatialInd
ex
Index dành cho d
li u không gian.
Rectangle R-Tree Storage.CreateSpatialI
ndex
SpatialInd
exR2
Index dành cho d
li u không gian
nh ng có t a
th c.
Rectangle
R2
R-Tree Storage.CreateSpatialI
ndexR2
SortedCol
lection
Index v i phép Toán
so sánh do ng i
dùng nh ngh a.
i ki u T-Tree Storage.CreateStorage
Collection
ng 2.2.5-1 Các ki u Index c PERST h tr :
2.2.6 Giao tác (Transaction):
ây ta không nh ngh a l i chính xác giao tác là gì mà ch n gi n
hình dung giao tác là m t t p các l nh ph i th c hi n và ph i ho c là th c
hi n toàn b các l nh ó ho c là không l nh nào c th c hi n c . PERST
cung c p tính n ng b o v s nh t quán c a d li u trong tr ng h p h
th ng hay ng d ng có l i hay m t n ph i t t t ng t. C ch cài t giao
tác s giúp ta m b o u này. i v i PERST, m t giao tác c ng m
nh kh i t o khi b t c m t l nh update c s d li u nào c th c hi n và
ch m d t t ng minh b ng l nh commit, rollback hay close.
Vi c commit m t giao tác s làm cho các trang (page) b thay i trong
quá trình th c hi n giao tác c ghi vào b nh ph ng b (Asynchronous
write: ch ng trình s ch cho vi c ghi vào a xong m i làm ti p vi c
khác). Công vi c này là công vi c có chi phí r t cao. Trung bình vi c nh v
30. - 30 -
i v i các a hi n i là kho ng 10ms, ngh a là ch kho ng 100 thao tác
nh v trong 1 giây. Thêm vào ó các giao tác th ng ch a các thao tác
update kho ng vài trang c s d li u nên trung bình ch còn kho ng 10 giao
tác m i giây.
c dù v y, hi u su t th c thi s c nâng cao áng k khi ta h n ch s
n th c hi n l nh commit, có ngh a là m t giao tác s l n h n, th c hi n
nhi u l nh h n. PERST dùng c ch t o bóng (shadow mechanism) trong
vi c th c hi n giao tác. Khi m t i t ng c thay i l n u tiên trong
t giao tác, m t b n copy (shadow) c a i t ng ó c t o ra và i
ng g c không thay i. Cho dù i t ng có c thay i nhi u l n
trong giao tác ó thì c ng ch có m t b n copy c a i t ng c t o ra.
Nh v y c ch này giúp PERST hoàn toàn không c n n các t p tin log
trong c s d li u thông th ng và các giao tác dài không th gây ra vi c
tràn log giao tác nh các h c s d li u khác. L u ý r ng n u ta không g i
nh commit m t cách t ng minh thì PERST s ch ho t ng m t cách
thông th ng theo c ch không h tr giao tác.
Khuy t m duy nh t c a vi c giao tác dài h n bình th ng là kh n ng
t i nhi u s thay i ã th c hi n c trong giao tác n u giao tác h ng
hay h th ng g p s c . Trong các tr ng h p nh v y, d li u v n m b o
tính nh t quán (consistency) nh ng các thao tác thay i c s d li u trong
giao tác ó u m t.
31. - 31 -
2.3 Transparent API:
2.3.1 Dùng.NET Remoting API:
.NET framework cung c p gói System.Runtime.Remoting nh m h tr vi c
cài t các ng d ng phân tán. Ng i l p trình ch c n d n xu t các l p c a
t l p ContextBoundObject và dùng ContextAttribute t o message
sink: c ch dùng u khi n vi c g i hàm và truy xu t các thành ph n c a
i t ng. Dùng API này không nh ng áp d ng cho các h th ng phân tán
mà còn cho các h th ng d a trên giao th c metaobject (metaobject
protocol): giao th c u khi n i t ng. Ví d ta có th ng d ng chúng
cài t giao di n “trong su t” (transparent) cho c s d li u h ng i
ng này, ngh a là vi c thao tác trên các i t ng persistent hoàn toàn bình
th ng nh các i t ng khác.
PERST.NET ch a 2 l p PersistentContext và
TransparentPersistentAttribute dùng t o tính “b n v ng” m t cách “trong
su t” cho các i t ng b ng cách dùng.NET Remoting API. N u các l p c a
ng d ng chúng ta c d n xu t t l p PersistentContext và c ánh d u
ng tính ch t (attribute) TransparentPersistentAttribute, các thành ph n c a
nó s c load t ng hay l u t ng khi c n thi t (tr c ây ta u ph i
làm các thao tác này). Vì hàm recursiveLoading trong l p
PersistentContext tr v false nên các i t ng s c load ch khi nào ta
truy xu t nó.
Tuy nhiên có 2 gi i h n khi ta dùng remoting API:
1.Remoting API ch có th áp d ng i v i các thành ph n có t m truy
xu t public c a i t ng.
32. - 32 -
2.Chi phí c a vi c g i hàm thông qua remoting API cao g p kho ng 100
n so v i g i hàm thông th ng.
2.3.2 Dùng các thu c tính o (virtual properties):
Có m t ý t ng khác t o nên s “trong su t” cho PERST d a trên vi c
dùng các thu c tính o (virtual properties). Không gi ng nh Java, C# cung
p c ch cho phép óng gói các thu c tính, thành ph n c a m t l p. Ý
ng ban u r t n gi n: T o ra l p bao b c (wrapper class) s cài t các
thu c tính này. Nh v y l p trình viên s c gi i phóng kh i nhi u vi c
nh nh t nh không ph i lo n chuy n quá t i hàm recursiveLoading, hay
i t ng minh hàm Load load i t ng c ng nh ánh d u i t ng b
thay i b i hàm Modify n a…. Tuy nhiên cách này v n có nh ng h n ch
a riêng nó:
1. i t ng c a chúng ta không c có các tr ng l u tr c
(persistent fields). Thay vì th , ta ph i nh ngh a các thu c tính tr u
ng. C# cung c p c ch cho phép ta d dàng làm vi c v i các thu c
tính, nên vi c l p trình s n ng n h n.
2.Ta c ng không th t o ra các i t ng này b ng toán t new nh
bình th ng. Ta ph i dùng ph ng th c IStorage.CreateClass dùng t o
p bao b c và t o ra i t ng c a l p này. L p này c ng không có hàm
kh i t o nào khác ngoài hàm kh i t o m c nh, và hàm kh i t o m c nh
này c ng không làm gì khác ngoài vi c kh i t o các thành ph n không
c l u tr (vì hàm kh i t o này s c g i m i khi i t ng c
load t b nh ph ).
33. - 33 -
3.Ta c ng không th có thành ph n c a i t ng là m ng các tham
chi u n các i t ng khác. Ta ph i dùng PERST.PArray thay th .
4.S phát sinh l p bao b c nh v y có chi phí cao, làm gi m hi u su t
ch ng trình n u có nhi u l p.
5.Cu i cùng, c ch này không c h tr trong môi tr ng .NET
Compact framework do môi tr ng này không h tr vi c t o mã trong
th i gian th c thi (runtime).
2.4 ch th c hi n giao tác (Transaction):
i record hay i t ng trong PERST có duy nh t m t s nh danh g i
là OID. OID c dùng tham chi u gi a các i t ng v i nhau. nh
chính xác m t i t ng b ng tham chi u, OID c a chúng c dùng nh
ch s trong m ng các a ch (offset) c a các i t ng trong database.
ng này c g i là m ng ch m c i t ng (object index) và m i thành
ph n c a m ng này c g i là m t m c qu n i t ng (object handle), gi
a ch trong database c a i t ng. Có 2 b n c a m ng ch m c i t ng
trong PERST, m t là m ng “hi n hành” (current) và m ng còn l i g i là
ng “bóng” (shadow) c a m ng này. Header c a database gi con tr n
hai m ng này và có m t bi n ch nh (indicator) âu là m ng “hi n hành”
vào th i m hi n t i.
Khi m t i t ng b thay i l n u tiên, i t ng ó s c copy ra
t b n khác và m c qu n c a i t ng trong m ng ch m c i t ng
“hi n hành” s chuy n sang tr vào b n copy c a i t ng này còn m c
qu n i t ng trong m ng ch m c i t ng “bóng” v n tr vào i t ng
c. T t c các thay i u c làm trên b n copy và b n g c c gi
34. - 34 -
nguyên tr ng. PERST s ánh d u trong trang Bitmap c a m ng ch m c i
ng ch a con tr n i t ng b thay i.
Lúc giao tác (transaction) c hoàn t t và l nh commit c th c hi n,
u tiên PERST s ki m tra xem kích th c c a m ng ch m c i t ng có
ng hay không. N u có, PERST c ng s t ng kích th c cho m ng ch m c
i t ng “bóng”. K n PERST s gi i phóng các vùng nh c dùng b i
các i t ng g c, chính là các i t ng g c mà tr c ây ã dùng chúng
t o ra các b n copy. Các vùng nh này không th c gi i phóng tr c
khi giao tác commit vì nh v y có th PERST s c p phát cho các i t ng
i úng các vùng nh ó, trong khi chúng ta mu n các i t ng g c ch a
trong vùng nh này không i. u này nh h ng n tính nh t quán c a
s d li u. Vì vi c gi i phóng vùng nh trong PERST c ng c th c
hi n thông qua Bitmap nên khi gi i phóng c n ph i làm tr ng m t s bit
trong trang Bitmap t ng ng v i các vùng nh c n xóa. Mà các trang
Bitmap này c ng c copy tr c khi s thay i x y ra. Vi c copy các
trang Bitmap này c ng òi h i vùng nh , và ta có th c ng dùng các vùng
nh c a các i t ng b gi i phóng nh trên. Rõ ràng u này l i vi ph m
tính nh t quán c a c s d li u theo nh lý do v a nêu. T t c nh ng u
trên chính là lý do t i sao vi c gi i phóng vùng nh trong PERST c chia
thành hai b c. u tiên, khi i t ng c copy, t t c các trang Bitmap
ng ng v i vùng nh c a i t ng c ng c copy theo (n u tr c ó
ch a c copy). Khi giao tác commit, PERST ch vi c làm tr ng các bit
trong các trang Bitmap t ng ng và t i th i m này, không có m t yêu
u v c p phát b nh nào c phép phát sinh.
35. - 35 -
Sau khi gi i phóng các vùng nh thu c v các i t ng g c, PERST s
ng lo t ghi các trang b thay i lên a ng b thông tin trên b nh
chính và trên a. Sau ó PERST s chuy n i giá tr bi n ch nh
(indicator) ch ra m ng ch m c i t ng hi n t i trong database thành giá
tr ch n m ng “bóng” chuy n i vai trò gi a hai m ng. Bây gi m ng
ch m c i t ng hi n t i chuy n thành “bóng” và m ng ch m c i t ng
“bóng” s tr thành m ng hi n t i. Ti p theo m t l n n a PERST s ghi trang
ch a header b thay i c a database lên a, chuy n database sang tr ng thái
nh t quán m i. Cu i cùng PERST s copy t t c các m c qu n i t ng b
thay i t m ng ch m c i t ng “bóng” (tr c ây là hi n t i) sang m ng
ch m c i t ng hi n t i (tr c kia là m ng “bóng”). Vào th i m này,
i dung c a c hai m ng ch m c i t ng ã ng nh t và PERST có th
t u m t giao tác m i.
Bitmap c a các i t ng b thay i có tác d ng gi m th i gian commit
giao tác. Không ph i t t c m ng ch m c c copy mà ch có các trang b
thay i m i c copy, Sau khi giao tác commit, Bitmap c làm tr ng
nh ã nói trên.
Khi giao tác c b , không cho th c hi n n a b ng l nh Storage.rollback
t cách t ng minh, m ng ch m c i t ng “bóng” s c copy ng c
i vào m ng ch m c i t ng hi n t i, có ngh a là các thay i n u có
tr c ó u không có hi u l c. Sau khi copy, hai m ng ch m c l i ng
nh t và c s d li u l i tr v tr ng thái nh t quán tr c khi th c hi n giao
tác.
c p phát vùng nh cho các m c qu n i t ng c th c hi n b ng
freehandle list. Header c a list c ng c copy và c hai b n c a header này
36. - 36 -
cùng c l u trên header c a database. S chuy n qua l i gi a hai b n này
c th c hi n t ng t nh vi c chuy n qua l i gi a hai m ng ch m c i
ng. Khi không còn ch tr ng trong m ng ch m c i t ng, m ng s
c c p phát thêm. M ng ch m c i t ng là th duy nh t trong c s d
li u không c copy trong quá trình thay i. Thay vì th , PERST luôn luôn
d ng hai b n c a m ng này (m t b n hi n t i và m t b n “bóng”).
Có m t vài giá tr OID c dành riêng cho các i t ng c bi t trong
PERST. Giá tr OID 0 dùng cho các i t ng không h p l ví d nh các
i t ng ã b xóa. Các giá tr OID b t u t 1 c dùng cho các trang
Bitmap. S trang Bitmap l i tùy thu c vào l ng b nh o t i a c a c s
li u. Ví d v i 1tetrabyte b nh o thì kích th c trang 8Kb, kích th c
n v vùng nh c p phát (allocation quantum) 64 byte và 32K trang Bitmap
là các s li u t ng ng. Có ngh a là 32K m c qu n i t ng c dành
riêng cho các trang Bitmap trong m ng ch m c i t ng. Các trang Bitmap
c c p phát khi c n thi t khi mà kích th c database t ng lên. Theo các s
li u trên thì rõ ràng i t ng c a ng i dùng u tiên s mang giá tr OID
ng 0x8002 (t c là 32K + 2).
Quá trình ph c h i c s d li u trong PERST c ng n gi n. Khi ta m
s d li u, PERST s ki m tra xem c s d li u tr c ó có c óng
úng cách không. N u không (c dirty c b t lên trong header c a
database), PERST s th c hi n vi c ph c h i (t ng t nh c ch rollbachk
ã c p phía trên). PERST s làm nh sau:
Bi n ch nh ch ra m ng ch m c i t ng hi n t i s c PERST dùng
quy t nh xem m ng nào là m ng t ng ng v i tr ng thái nh t quán.
Khi ó, PERST s copy các m c qu n i t ng trong m ng này sang m ng
37. - 37 -
còn l i, các thay i th c hi n tr c ó n u có u không cón hi u l c,
PERST l i tr v v tr ng thái nh t quán.
Th t s quá trình recovery ch làm chuy n copy trên (ch nh ng m c qu n
có giá tr khác nhau trên hai m ng ch m c i t ng m i c copy gi m
trang c n ghi lên a) và kích th c c a m ng ch m c i t ng c ng nh
nên vi c ph c h i di n ra r t nhanh. u này giúp gi m th i gian “out-of-
service” c a ng d ng.
2.5 Nh ng tr ng h p nên dùng PERST:
PERST là c s d li u dành cho l p trình t ng i n gi n và nhanh.
u ng d ng c a chúng ta c n có c s d li u n, không th c hi n nh ng
thao tác truy xu t d li u quá “l t léo” và cái chúng ta c n là kh n ng l u
tr , truy xu t, nh v các i t ng trong c s d li u thông qua tham chi u
hay qua khóa thì PERST r t thích h p. Trong các tr ng h p này PERST s
có hi u n ng làm vi c t t h n so v i các c s d li u quan h hay các c s
li u h ng i t ng ph c t p h n khác.
Ta s m qua l i các tính n ng n i b t c a PERST:
1.K t h p ch t ch , t nhiên v i m t s ngôn ng l p trình thông d ng
nh t nh (Hi n t i ch m i h tr Java và C#).
2.Mô hình d li u trong ng d ng và database g n nh t ng t nhau.
3.D dàng s d ng.
4.Yêu c u không cao (PERST package ch có dung l ng 51Kb và PERST
có th c c u hình l i sao cho có th dùng ít b nh chính và ph khi
làm vi c).
38. - 38 -
5.Hi u n ng cao (không có các chi phí cho vi c truy n thông, khóa, phân
tích cú pháp các câu SQL và th c hi n các câu truy v n).
6.Kh n ng ch u l i t t (c ch th c hi n giao tác).
7.Kh n ng ph c h i nhanh chóng khi g p s c .
8.Không c n ph i qu n lý database nhi u vì database ch bao g m m t file
duy nh t, vi c các file log c a database quá l n s không còn n a, hi u
ng làm vi c s t ng cao.
nhiên, PERST c ng có các khuy t m t ng ng:
1. Không h tr ngôn ng truy v n.
2. Không thích h p cho vi c h tr a ng i dùng truy c p database (N u
mu n chúng ta ph i t thi t k m t server riêng, server này s nh n các
yêu c u t client r i tu n t truy xu t database r i m i g i k t qu v cho
client).
3. Không h tr vi c phân tán d li u.
4. Không tuân theo m t chu n nào c (Ví d không tuân theo chu n
ODMG).
2.6 Các thông s c a PERST:
Ph n này chúng ta s xem xét sâu h n v các thông s c a database và các
cách s d ng chúng t ng hi u n ng.
c truy xu t a là r t ch m so v i t c truy xu t b nh chính. Vì
y l u gi các d li u c truy xu t th ng xuyên (data caching) là chìa
khóa chính t ng hi u n ng làm vi c c a c s d li u. PERST dùng “ pool
of pages” t i u hóa vi c truy c p a. Kích th c c a page pool có th
39. - 39 -
c xác nh trong ph ng th c Storage.Open khi m database (giá tr m c
nh c a thông s này là 4Mb). Thông th ng t ng kích th c page pool s
ng hi u n ng làm vi c c a ch ng trình. Nh ng chúng ta ph i l u ý nh ng
m sau tr c khi quy t nh có t ng kích th c page pool hay không.
1. Có th ng d ng ch c c p m t l ng nh t nh memory nào ó khi
làm vi c thôi.
2. N u chúng ta t o ra page pool có kích th c quá l n, không l i
ch cho h u hành và các ng d ng khác làm vi c thì toàn b h th ng
b nh h ng chung, s gi m hi u n ng do h th ng ph i swap b nh
liên t c.
3. B n thân h u hành c ng có c ch cache d li u c a riêng mình
ng file buffer. V y d li u th t s c cache hai l n. Tuy nhiên vi c
truy xu t d li u t page pool s nhanh h n do không ph i có các l nh g i
hàm h th ng c ng nh chuy n ng c nh (switch context) khi g i hàm.
4. Vi c t o page pool có kích th c quá nh ho c th m chí b ng 0 (giao
vi c cache data toàn b cho h u hành) c ng không th vì s gây ra l i.
Khi d li u c truy c p t b nh ph , nó s c a lên ch a trong
page pool. Có ngh a là page pool ph i c thi t l p cho l n có th
ch a c các trang này. Vì v y, không nên t o page pool có kích th c
bé h n 64kb.
u chúng ta ngh r ng m i d li u nên h t trong b nh chính, chúng
ta có th dùng h ng s Storage.INFINITE_PAGE_POOL trong ph ng th c
Storage.Open c a database. Trong tr ng h p này, page pool s t ng
c t ng kích th c m i khi có m t trang m i c n a vào b nh chính.
40. - 40 -
Có ngh a là l n l t m i trang s c cache và hi n di n trong b nh
chính, chúng ch c c t b nh ph l n u tiên thôi. Trong tr ng h p
này “strong object cache” s c dùng thay vì “weak object cache”. Có
ngh a là i t ng c l y ra t c s d li u s c l u trong b nh
chính và i t ng ch c c n c c m t l n thôi. Chúng ta c ng c n
u ý r ng kích th c database trong b nh chính s l n h n trên b nh
ph vì các i t ng s t n t i trong b nh chính d i c hai d ng: D ng
“g c”(packed: trong trang ch a i t ng) và d ng “ ã có hình dáng”
(unpacked: tham chi u t b cach i t ng).
Trong m t vài ng d ng (nh các ng d ng trên các thi t b di ng), kh
ng l u tr là không c n thi t nh ng các l p bao ch a (container class) c a
PERST nh Link, Index, FieldIndex, SpatialIndex… v n có th c dùng.
Trong tr ng h p này ta s dùng cài t NullFile c a interface IFile cùng v i
thông s Storage.INFINITE_PAGE_POOL t o ra “database” trong b
nh chính. Data trong tr ng h p này s không ph i ghi vào b nh ph .
Có m t vài h ng s c nh ngh a s n trong l p StorageImpl có nh
ng n kích th c kh i u và kích th c t i a c a database. N u ta
mu n thay i các thông s này, ta s ph i biên d ch l i PERST.
Thông s Giá tr
c
nh
Mô t
dbDefaultInitTi
ndexSize
1024 Kích th c kh i u c a m ng ch m c i t ng.
ng này s c t ng kích th c khi c n thi t.
Vi c c p phát l i vùng nh cho m ng này có chi
41. - 41 -
phí cao nên h n ch tác v này, kích th c c a
ng ch m c i t ng luôn c c p phát d
tr g p ôi. V y vi c c p phát vùng nh cho
ng ch m c i t ng l n h n s giúp t ng hi u
ng ch ng trình m t ít nh ng bù l i s làm t ng
kích th c kh i u c a database. V i giá tr m c
nh c a thông s này, kích th c ban u c a
database m i t o là kho ng 50Kb
dbDefaultExten
sionQuantum
4Mb ây chính là kích th c c p phát vùng nh thêm
trong PERST. B nh c c p phát b ng cách
quét Bitmap. N u không có ch tr ng liên ti p
cho i t ng, database s c t ng kích th c
ng giá tr dbDefaultExtensionQuantum. T ng
giá tr c a tông s này d n n vi c PERST ít ph i
scan l i Bitmap t u, t c c a m i l n c p
phát b nh s t ng và các i t ng c c p
phát s có nhi u c h i n m liên ti p nhau h n.
Nh v y s d t ng hi u n ng ch ng trình nh ng
ng c l i ây có th là m t s s d ng b nh
không hi u qu . Và vi c gi m giá tr này s gây
tác d ng ng c l i i v i nh ng tác d ng khi
ng nó.
dbObjectCacheI
nitSize
1319 Kích th c c a vùng cache i t ng. PERST
dùng vùng này ki m tra xem li u i t ng v i
OID nào ó ã hi n di n trên b nh chính hay
42. - 42 -
ch a. Vùng cache này dùng “weak reference”
d n rác có th làm nhi m v . M i khi cache b
y, cache s c c p phát l i v i kích th c
kho ng g p ôi l n tr c. M t l n n a, n u ta
ng thông s này thì s làm gi m s l n ph i c p
phát l i vùng nh cache.
ng 2.6-1 H ng s c nh ngh a s n trong l p StorageImpl
i ây là các cách t ng hi u n ng và gi m l ng b nh chính ph i
d ng. N u ch ng trình c a chúng ta th c hi n nhi u thao tác update các
i t ng trên c s d li u thì gi i h n chính là th i gian ghi a. N u
chúng ta th c hi n l nh commit database m i khi có s thay i thì trung
bình ta th c hi n c 10 l n commit nh v y trong m t giây (Gi i h n này
gi thi t r ng m i thao tác truy c p a m t 10ms và m i giao tác khi commit
n ghi xu ng a kho ng 10 trang b t k trong c s d li u). Nh ng ta có
th t ng hi u n ng c a thao tác update m t cách áng k n u ta nhóm các
thao tác update l i v i nhau trong cùng m t giao tác. PERST t o i t ng
copy c a các i t ng c n update khi l n u tiên nó b thay i trong giao
tác. N u i t ng b update trong N giao tác m i giao tác m t l n thì N b n
copy s c t o nh ng n u i t ng b update N l n trong m t giao tác thì
ch m t b n copy c t o ra. ây chính là l i ích d th y nh t c a vi c th c
hi n các giao tác l n, dài.
Nh ng n u ta th c hi n vi c update cho nhi u i t ng trong cùng m t
giao tác thì rõ ràng s d n n vi c t ng kích th c database vì các b n copy
các i t ng c t o ra nhi u mà vi c gi i phóng vùng nh c ch c
th c hi n khi commit giao tác. Vì v y, cách t t nh t (m t cách t ng i) là
43. - 43 -
th c hi n l nh commit sau kho ng 100 n 1000 l n update, làm nh v y s
gi m c chi phí c a m i l n commit mà v n không làm t ng kích th c
database áng k .
u các i t ng c a ch ng trình c t ch c d i d ng cây hay danh
sách liên k t thì m t khi ta ã load lên b nh chính i t ng g c c a cây
hay danh sách liên k t và i t ng ó c tham chi u t m t bi n c a
ch ng trình thì b d n rác s không th nào thu d n c b t c i t ng
nào c load lên t i t ng g c (vì i t ng ó có th c tham chi u
i t ng g c b t c lúc nào). C nh v y khi ta truy xu t l n l t cho
n h t các i t ng trong cây hay danh sách liên k t ó thì toàn b các i
ng s n m trong b nh chính. u này có th d n n s tràn b nh . Vì
y ta nên c n th n, không nên m t bi n nào ó tham chi u n i t ng
c c a cây mà không qu n lý ch t. Tuy nhiên, v i các l p bao ch a c a
PERST, truy xu t các i t ng b ng khóa nh Index, SpatialIndex,
FieldIndex… thì lo l ng này là không c n thi t vì các i t ng thành ph n
a các i t ng này s b b don rác thu gom bình th ng.
ôi u ghi chú thêm:
Khi nào thì nên dùng c u trúc nào cho vi c l u tr :
1. Link: Dùng cho các t p h p nh (s i t ng trong t p h p kho ng
100 tr xu ng).
2. FieldIndex: Dùng cho các t p h p có s ph n t l n (kho ng h n 100).
Ch m c c t o trên m t tr ng c a i t ng hay nhi u tr ng (trong
tr ng h p này c g i là khóa ph c) c a i t ng. FieldIndex c cài
44. - 44 -
t b ng B+Tree. Kích th c trang BTree là 4kb, vì v y kích th c nh
nh t c dùng b i index là 4kb.
3. Index: C ng dùng cho các t p h p có s ph n t l n. Vi c ánh ch m c
cho Index c th c hi n ngay lúc thêm i t ng vào Index.
4. BitIndex: dùng cho t p h p các i t ng v i khóa là các tr ng có giá
tr nh phân.
5. SpatialIndex: dùng cho d li u không gian v i khóa là t a c a các
i t ng. SpatialIndex c cài t b ng cây RTree c a Guttman.
2.7 l c v RTree:
2.7.1 Gi i thi u:
Hi n nay, trong các l nh v c ng d ng máy tính nh CAD (Computer
Aided Design) hay Geo-data Application, vi c x lý d li u không gian
(spatial data – g n li n v i t a , v trí c a m t i t ng) r t c n n m t
u trúc d li u hi u qu trong vi c thao tác trên d li u liên quan n t a ,
trí c a các i t ng. Tuy nhiên, các c u trúc d li u c n không thích
p cho công vi c này. Vì v y, chúng ta s tìm hi u m t lo i c u trúc d li u
i: RTree, có kh n ng áp ng các yêu c u trên.
2.7.2 l c v d li u không gian (spatial data) và
các gi i pháp:
Các i t ng c a d li u không gian (qu n, huy n, khu v c, i núi, sông
ngòi…) th ng bao ph m t vùng trong không gian n chi u nào ó
(n=2,3…) ch th ng không th hi n b ng m t m n thu n. d hình
45. - 45 -
dung, các ví d c nêu s t p trung vào không gian m t ph ng 2 chi u, các
không gian nhi u chi u khác s áp d ng t ng t .
Ví d : 1 qu n s bao ph m t vùng không gian xác nh trong không gian
2 chi u.
t trong nh ng thao tác th ng xuyên nh t trong nh ng ng d ng có
liên quan n d li u không gian nh CAD, CAM, GIS là tìm xem có t t c
bao nhiêu i t ng n m trong m t vùng nào ó. Vì v y kh n ng xác nh
i t ng d a vào t a , v trí c a i t ng m t cách nhanh và chính xác là
n r t quan tr ng.
Rõ ràng, các c u trúc c n không thích h p v i vi c tìm ki m trong
không gian nhi u chi u. C th : Các c u trúc d a trên giá tr chính xác nh
HashTable không thích h p vì yêu c u th ng là tìm trong kho ng còn các
u trúc h tr tìm trong kho ng nh BTree hay ISAM index thì không thích
p cho không gian nhi u chi u.
Th c t ã có nhi u công trình nghiên c u nh m tìm ra gi i pháp cho v n
này, trong ó RTree là m t gi i pháp t t. Các gi i pháp khác nh Cell,
QuadTree, k-d Tree, K-D-B Tree, Corner stiching, Grid file, … u có
nh c m riêng.
2.8 So sánh v i các h qu n tr c s d li u h ng i
ng khác:
Trên th tr ng hi n có không nhi u h qu n tr c s d li u nhúng cho
Java và C# nh ng b n b n kho n không bi t ch n h qu n tr nào cho phù
p.B i không có cái gì là hoàn h o. ây xin a ra 6 h qu n tr khác
nhau ó là ObjectStore PSE Pro c a Progress Software, FastObject c a
46. - 46 -
Versant, Berkelay DB JE c a Sleepycat, JISP c a CoyoteGulch, db4o c a
db4oObjects, và PERST.c a Knizhnik. Sau ây là b ng so sánh các c tính
b n c a 6 h qu n tr :
OODBMS Ngôn ng
tr
p phát
vùng nh
tr
giao
tác
Scheme
Evaluation
Ngôn
ng truy
n
Ti n
lý
ObjectStore
PSE Pro
C++
Java
Khai báo
ng minh
hay ng m
nh (nh
Gabage
Collection)
Log
file
Dùng c ch
Serialization.
Truy v n
theo
thu c
tính
tìm ki m
i
ng
trong t p
p
t bu c
Db4o Java
C#
(Standard,
Compact
và nh ng
Framwork
n)
Khai báo
ng minh
Không
tr
ph c
i khi
th ng
có s
.
Có th thêm,
xoá, s a các
tr ng và c p
nh t qua l i
gi a các phiên
n. C ng có
th thay i
tên và tr ng
a các l p.
Không
có ngôn
ng truy
n
nh ng
cung c p
API cho
vi c t o
i
ng
truy v n.
Không b t
bu c
Berkeley Java Khai báo Tùy Không Không Không b t
47. - 47 -
DB JE ng minh ch n bu c
JISP Java Khai báo
ng minh
Không Không Không Không b t
bu c
FastObject Java
C#
J#
VB
Khai báo
ng minh
Có Có JDOQL B t bu c
PERST Java (bao
m c
JDK 1.5),
C#
(Standard,
Compact
và
Framwork
n)
Khai báo
ng minh
hay ng m
(nh
Background
Gabage
Collection)
i
ng
úp
hay i
ng
bóng
Lazy scheme
evaluation
Không
tr
ngôn
ng truy
n
Không b t
bu c, Và có
th tích h p
i ASpectJ
và JAssist
cung c p
tính trong
su t trong
p trình
(tranparent
persistent)
ng 2.8-1 So sánh các c tính c a các h qu n tr
so sánh t c c a các h qu n tr c s d li u, ta cài t m t ví d
th c hi n các ch c n ng n gi n nh l u tr d li u (Storing), l y d li u
(Fetching), nh v i t ng (Locating) b ng ph ng pháp ch m c trên hai
ngôn ng là C# và Java v i các h qu n tr c s d li u t ng ng..
Ví d này c th c hi n theo ba b c c b n nh sau:
+ u tiên là t o ng u nhiên i t ng có khoá ki u long và khoá
ki u string, trong ó ch m c là ki u string. Sau ó l u vào c s d li u.
48. - 48 -
+ Sau ó tìm ki m các i t ng dùng khoá long và string.
+ Cu i cùng là tìm và xóa t ng i t ng và c p nh t ( ánh d u)
vào c s d li u.
n v th i gian m i b c th c thi c tính b ng giây. S l ng các i
ng trong m i tr ng h p là gi ng nhau và b ng 100000. T t c c
ki m tra th nghi m trên cùng m t máy và c u hình máy là AMD Athlon 64
(3200+), 1.5Gb RAM, windowsXP. Ngôn ng dùng l p trình ây là Csharp
và Java ( Sun Java JDK 1.4.2_04).
Sau ây là b ng k t qu , b ng s p t ng d n theo th i gian th c hi n:
qu n tr Ngôn
ng
c T o d
li u
c tìm
ki m
c xóa d
li u
PERST Java 3 775 1 683 3 275
PERST CSharp 4 446 2 403 3975
ObjectStore PSE
Pro
Java
8 272 9 413 3 104
FastObjects J2 Java 13 399 10 856 38 435
FastObjects.Net CSharp 43 012 2 714 7 461
Db4o – 4.0 Java 18 457 6 279 38 886
DB4o – 4.0 CSharp 31 725 41 099 88 517
Berkeley DB JE Java(*) 15 513 10 755 12 758
JISP Java 350 674 343 063 527 248
49. - 49 -
ng 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
(*) – JE dùng Xmxl128M tránh tràn b nh , và u này làm cho th i
gian ch sai s x p x 64 giây nên chúng ta không c n ph i quan tâm.
a vào b ng so sánh k t qu trên thì chúng ta nh n ra r ng PERST nhanh
nh t, gi thì không ph i b n kho n ch n l a gi a các h qu n tr n a. Chúng
ta hãy ch n PERST cho ra m t ng d ng t i u v t c .
50. - 50 -
CH NG 3 : Gi i thi u v mô hình Topology
3.1 Gi i thi u:
li u Topology c xây d ng t các i t ng hình h c c b n và
chúng có quan h v i nhau. M c quan h tu thu c vào c p Topology.
t v n khó kh n khi xây d ng các ng d ng d a trên d li u Topology
là ngu n d li u Topology không có s n. Mu n có d li u Topology chúng
ta ph i chuy n t d li u hình h c c b n thành d li u Topology. Và các
ph ng pháp hay công c chuy n i còn ít c h tr . Trong n i dung
tài, chúng ta s xây d ng công c chuy n i d li u t d ng Text thành
li u Topology nh mong mu n.
3.2 Các khái ni m c b n trong Topology:
Start Node: Nút b t u c a c nh.
End Node: Nút k t thúc c a c nh.
Right Edge: C nh u tiên g p khi di chuy n ng c chi u kim ng h
quanh nút k t thúc c a c nh hi n t i.
Left Edge: C nh u tiên g p khi di chuy n ng c chi u kim ng h
quanh nút b t u c a c nh hi n t i.
First Edge: C nh c ch n ng u nhiên, c xem nh là c nh u tiên
cho vi c tìm ki m các c nh k c a nút.
51. - 51 -
Hình 3.2-1 Các i t ng trong mô hình Topology
t s khái ni m c b n trong mô hình Topology.
Left Face: M t bên trái c a c nh khi di chuy n t nút b t u n nút k t
thúc.
Right Face: M t bên ph i c a c nh khi di chuy n t nút b t u n nút
t thúc.
Minimum Bounding Rectangle (MBR): Khung ch nh t nh nh t ch a
toàn b i t ng.
Inner Ring: Biên trong c a m t. M i i t ng vùng có th không có, có
t ho c nhi u biên trong.
Outer Ring: Biên bao ngoài c a m t. M i i t ng vùng có duy nh t m t
biên ngoài.
c tr ng: mô hình c a i t ng a lí th gi i th c. Các i t ng này
có th là i t ng vô h ng, m t chi u, hai chi u và ba chi u.
3.3 Các lo i i t ng trong Topology:
Có 4 lo i i t ng hình h c c s là:
52. - 52 -
+ Node (nút): EntityNode (nút th c th ), Connected node (nút n i
t)
+Edge (c nh)
+Face (m t)
+ Text (v n b n): ch làm rõ i t ng ch không th c liên k t
i nhau b i m i quan h Topology
Nodes: Là các i t ng vô h ng dùng l u tr các v trí có ý ngh a.
+ Entity node: là các node không n m trên c nh, nó ch c liên
t v m t Topology v i m t ch a nó (ví d nh th ô). Nó dùng th
hi n nh ng c tr ng riêng bi t ho c các m kh o sát, hay các i t ng
th hi n m t t l nào ó.
+ Connected node: Là các node n m u mút c a c nh, nó có th là
m u hay di m cu i c a c nh. Và c liên k t v m t Topology v i các
nh khác. M i node còn có FirstEdge và có m t khung bao nh nh t (MBR
– Minimum Boundary Rectangle) ch a nó.Các node k t n i c s d ng
theo 2 h ng:
nh ngh a các c nh v m t Topology: lúc này các node c xem nh là
m u và m cu i
Th hi n các c tr ng m c tìm th y t i u và cu i c nh c a các
c tr ng tuy n tính: ch ng h n nh các cây c u, các c a c ng c a m t con
kênh, các m truy c p ti n ích trong lòng t, v i cách này thì các thu c
tính s c k t h p v i các c tr ng m c liên h v i các node k t
i. T t c các node k t n i c ch a trong b ng node k t n i. N u nhi u
nh giao nhau t i m t node, ch m t c nh s c duy trì cho m i node
53. - 53 -
trong b ng node k t n i; các c nh khác c liên k t b ng cách s d ng
thu t toán tìm c nh k suy ra.
Edge: là i t ng c s dùng th hi n các v trí c a các c tr ng tuy n
tính nh con ng và các biên c a m t. C nh c c u thành t 2 hay nhi u
p to 2 chi u (x,y) hay 3 chi u (x,y,z) phân bi t. H ng c a c nh có th
c xác nh b i tr t t các c p to . C nh c nh ngh a t các node
u cu i. Bên c nh các node u cu i thì c nh còn ch a các thông tin nh
RightEdge, LeftEdge, RightFace, LeftFace d dàng truy tìm thông tin và
y các c tr ng. M i c nh có m t khung bao nh nh t (MBR – Minimum
Boundary Rectangle) ch a nó.
Face: c nh ngh a t c nh dùng th hi n c tr ng vùng nh các qu c
gia, thành ph . T p các c nh có quan h Topology hình thanh nên biên c a
t. M t có th có biên trong ho c biên ngoài và có th ch a m t nh h n
trong nó. Quan h này g m m t tham chi u n m kh i u c a m t biên
khép kín c a các c nh, r i theo chi u kim ng h khép kín biên. M t có
th có nhi u biên (rings); có th có m t biên ngoài và không có ho c có m t
ho c nhi u biên trong. Các m t không c ch ng l p nhau, và các m t trong
t l p s d ng toàn b vùng m t ph ng. M i b ng m t có m t khung ch
nh t bao m t k t h p (FBR) ch a hình ch nh t nh nh t bao m i m t.
3.4 Các c p c a Topology:
Có 4 c p Topology: 0, 1, 2, 3.
c p 3, các k t n i v m t Topology hi n di n m t cách t ng minh.
54. - 54 -
c p 0, không có thông tin Topology c th hi n m t cách t ng
minh. B ng t ng k t sau t ng k t các c tính c a 3 c p này và cho m t ví d
m i c p.
p Tên
Các i t ng
s
Mô t Ví d
3 Quan h
Topology
y
Node k t n i,
node th c th ,
nh và m t
m t c
phân chia b i
p các m t
c ch n
và ph n chung
duy nh t. Các
nh ch g p
nhau t i các
node.
2 th
ph ng
Node th c th ,
node k t n i
và c nh
t t p các
nh và các
node ó khi
chi u vào b
t ph ng, các
nh ch g p
nhau t i các
node
1 th
không
Node th c th ,
node k t n i
p các node
th c th và các
55. - 55 -
ph ng và c nh c nh có th
p nhau t i
các node
0 Th hi n
hình bao
Node th c th
và c nh
p các node
th c th và các
nh. Các c nh
ch ch a các
a , không
ph i là node
t u và
node k t thúc.
ng 3.4-1 Các c p Topology trong các l p VPF
Các c t trong các b ng c nh và b ng node xác nh tính k t n i và tính k
cho quan h Topology, tùy thu c vào c p Topology.
ng sau ch ra các c t b t bu c trong m i b ng c s cho c p Topology
c yêu c u. Các c tính c a các c t này c ch nh trong các nh
ngh a.
p
Topolog
y
ng c s Các c t b t bu c
3 M t RING_PTR
3 B ng vòng (Ring table) FACE_ID, START_EDGE,
START_NODE, END_NODE,
56. - 56 -
RIGHT_FACE, LEFT_FACE,
RIGHT_EDGE, LEFT_EDGE
3 Node th c th CONTAINING_FACE
3-1 Node k t n i FIRST_EDGE
2-1 nh START_NODE, END_NODE
RIGHT_EDGE, LEFT_EDGE
2-0 Node th c th (Không có)
0 C nh (Không có)
ng 3.4-2 Các c t c yêu c u nh ngh a quan h Topology trong
VPF
Ba hình sau s d ng bi u m i quan h th c th (ER) miêu t các i
ng c s và các m i quan h c a chúng m i c p Topology.
Hình 3.4-1 Quan h Topology c p 0
59. - 59 -
3.5 MBR – Minimum Bounding Rectangle:
t khung bao nh nh t c yêu c u trong b ng c nh ho c b ng m t. Vì
vòng bên ngoài c a m t t ng th không có th hi n hình h c nào nên b ng
ghi FBR cho m t 1 luôn có giá tr null cho các XMIN, YMIN, XMAX,
YMAX.
Tên c t Mô t
Lo i
t
Lo i
khóa
Op/Man
ID
XMIN
YMIN
XMAX
YMAX
Id
a X nh nh t
a Y nh nh t
To X l n nh t
a Y l n nh t
I
F/R
F/R
F/R
F/R
P
N
N
N
N
M
M
M
M
M
ng 3.5-1. nh ngh a khung ch nh t nh nh t MBR
60. - 60 -
CH NG 4 : Gi i thi u v GIS
4.1 Gi i thi u v các ng d ng và gi i pháp v GIS:
GIS (Geography Information System ) là công ngh ra i vào nh ng
m 60 c a th k 20. Công ngh GIS cho phép áp ng các nhu c u liên
quan t i qu n lý c ng nh khai thác và s d ng các thông tin, d li u a
lý. T giai n u c s d ng trên các h th ng máy tính l n M và
Canada, n nay, công ngh GIS ã c áp d ng và tri n khai h t s c r ng
rãi trên ph m vi toàn th gi i, trên nh ng h th ng máy PC và th i gian g n
ây là trên c các thi t b PDA.
t s ng d ng GIS n i ti ng trên th gi i hi n nay ang c ng
ng r ng rãi nh MapInfo, Arc/Info, Spatial Database Engine (SDE),
ArcView GIS...: c s d ng v i m c ích qu n lý, tích h p, quy ho ch
và khai thác các d li u b n .
i Vi t Nam, công ngh GIS c ng ã c nghiên c u và có c m t
s n ph m có k t qu áng khích l . Th i gian g n ây, vi c nghiên c u
công ngh GIS ã cho ra hàng lo t ng d ng áp d ng trong th c t t i
Tp.H Chí Minh, nh StreetFinder c a DolSoft, h th ng GIS trên website
Ngân hàng b n tr c tuy n c a VDC, DMC, Dolsoft
(www.basao.com.vn), h th ng ch d n giao thông c a nhóm AMI Group -
i h c Khoa h c T nhiên Tp.H Chí Minh.
Các gi i pháp v GIS th ng c chia làm hai nhóm chính:
• Gi i quy t các bài toán ph c t p liên quan n m ng giao thông nh :
Các bài toán nh tìm ki m ng i t i u, u ph i l trình giao
61. - 61 -
thông… th ng c áp d ng trên các h th ng máy tính l n, có c u hình
nh.
• Hi n th và tìm ki m các thông tin b n . ây là d ng ng d ng b n
n t , cung c p các kh n ng cho phép ng i s d ng xem b n và
tìm ki m m t s thông tin c n thi t, th ng c áp d ng trên các máy tính
thông th ng và nh .
4.2 Mô hình d li u c a thông tin a lý:
Câu h i t ra là làm sao chuy n i thông tin b n vào máy tính và
ng c l i? làm c u ó thì GIS ph i l u tr thông tin v Geometry
(hình d ng và v trí i t ng ) và Attribute (các thu c tính c a i t ng)
Hình 4.2-1 Thông tin c n l u tr
th ng thông tin a lý là m t h th ng thu th p, l u tr và x lý các
thông tin d i d ng gi y, nh, s v các hi n t ng t nhiên trong th gi i
th c. Trong c s d li u c c u thành t thông tin, các thông tin th ng
không s d ng c tr c ti p mà ph i thông qua m t h th ng các công c
truy xu t, tái t o l i i t ng th gi i th c mà ng i dùng quan tâm. M t
i t ng c l u tr trong c s d li u d i d ng các th c th hình h c,
ng i dùng s dùng ph i tái t o l i i t ng y thông qua các d li u hình
62. - 62 -
c này. Nh v y d li u là r t a d ng, chúng có mang tính không gian, th i
gian, c g i là d li u a lý. Tóm l i d li u a lý là các d li u s mô t
các i t ng trong th gi i th c.
li u lý c t ch c thành hai nhóm thông tin chính, ó là:
1/ Nhóm thông tin v phân b không gian.
2/ Nhóm thông tin v thu c tính c a i t ng.
Không gi ng nh các d ng d li u thông d ng khác, d li u lý ph c
p h n, nó bao g m các thông tin v lý, các quan h Topology và các
thu c tính phi không gian. M i d li u lý có th c mô hình v i ba
thành ph n khác nhau theo quan ni m topology – m, ng, vùng.B t kì
t i t ng t nhiên nào u có th c bi u di n b ng m t trong bao
i t ng này kèm theo chúng là nh ng thông tin c thù riêng.
Mô hình d li u lý bao g m b n thành ph n sau:
+ Thành ph n khoá: là mã s duy nh t cho th c th phân bi t th c th
này v i th c th khác.
+ nh v : Ch ra v trí c a th c th .
+ Thành ph n phi không gian: Là nh ng thu c tính riêng cho t ng th c
th nh t l , kho ng, nh danh ….
+ Thành ph n không gian: Các i t ng t nhiên bên ngoài c chuy n
vào máy tính qu n lý theo hai cách sau: Raster và Vector
Mô hình vect : t ng c bi u di n du i d ng m, ng và vùng. V
trí không gian c a m t th c th c xác nh b i m t h to th ng nh t
toàn c u. M t th c th c xác nh b i c p to (X,Y) và các thu c tính
khác nh : ki u m, màu, hình d ng.
63. - 63 -
Hình 4.2-2 D li u Vector
Hình 4.2-3 Các th c th c th hi n trên b n
Mô hình Raster: D li u Raster c phân bi t b ng n v pixel, ó là
hình nh n v nh nh t ph n ánh i t ng trong không gian.
u trúc d li u ratser 2-D c xem nh là m t ma tr n các ô l i c
tr ng cho m t ô vuông b m t t. phân gi i c a d li u raster ph thu c
vào kích th c c a nh ng ô l i này.
Hình 4.2-4 D li u raster
64. - 64 -
khác bi t gi a hai ki u d li u: C hai ki u d li u này u r t h u ích
nh nhau, nh ng chúng c ng có s khác bi t quan tr ng. Sau ây là b ng so
sánh gi a hai ki u d li u này.
Vector Raster
li u hi n th ít h n, nhanh h n, ch
ch y u hi n th các i t ng mà
không hi n th c tính c a i t ng
li u nhi u h n, hi n th ch m h n,
không nh ng hi n th i t ng mà
còn hi n th c c tính c a i t ng
ng 4.2-1 B ng so sánh ki u d li u Raster va Vector
Hình 4.2-5 So sánh Raster và Vector
4.3 Thu th p d li u:
Có nhi u k thu t thu th p thông tin t các ngu n d li u. Nó th ng
c thu th p t vi c o c tr c ti p trên th gi i th c. Tuy nhiên, m t
l n d li u li u có th c chuy n i t b n gi y sang hình th c
u tr c a b n n t . Có ba ph ng pháp th ng c s d ng ó là
Scanning(ph ng pháp quét), Digistsing (ph ng pháp s hoá), Vectorisation
(ph ng pháp vecto hoá).
65. - 65 -
Ph ng pháp quét: ây là k thu t thông d ng mà l i ít t n kém, có th
c th c hi n trên các máy tính cá nhân hay c a công ty. Máy quét s l u
tr l i các hình nh c a b n gi y d i hình th c s và hi n th chúng tr
i màn hình. Vi c quét hình nh t b n gi y t ng i n gi n và nhanh
chóng, tuy nhiên ph ng pháp này l i không th cung c p thu c tính c a các
i t ng t nhiên nh ch c a m t toà nhà hay ngày thành l p cu m t
sân v n ng nào ó. D li u có c t nh ng ph ng pháp này th ng
i d ng raster cho kích th c r t l n.
Hình 4.3-1 Ph ng pháp Scanning
Ph ng pháp s hoá: K thu t này òi h i ph i cung c p các thi t b
chuyên ngành. B n ngu n s c trãi b m t ngang, m t con tr s xác
nh t a các m t o nên hình d ng b n , sau quá trình s hoá, thu c
tính c a các i t ng m i c thêm vào. Ph ng pháp này òi h i nhi u
th i gian và ngu n d li u có c t k thu t này d i hình th c Vect .
66. - 66 -
Hình 4.3-2 Ph ng pháp s hoá
Ph ng pháp Vector hoá: M t vài h th ng máy tính chuyên nghi p có th
chuy n i d li u Raster sang d ng d li u Vect . Ph ng pháp này cho t c
nhanh do tính t ng nh ng l i kém chính xác h n so v i vi c s hoá th
công.
Các k thu t trên u d a vào ngu n d li u b n gi y có s n. Trên
th c t , ng i ta còn d a vào các ngành l nh v c khác nh : vi n thám, GPS,
phân tích nh… thu th p ngu n d li u cho GIS.
4.4 Các gi i thu t nghiên c u v GIS:
Công ngh GIS liên quan tr c ti p t i lý thuy t th c ng nh trí tu
nhân t o trong vi c a ra các gi i thu t gi i quy t các bài toán liên
quan. ây là nh ng l nh v c nghiên c u c u t r t nhi u v i các c i
ti n c ng nh ã a ra c nhi u gi i thu t t t ho c t i u (ch ng h n nh
các gi i thu t clipping, ki m tra m trong/ngoài a giác hay các gi i thu t
tìm ki m trên c u trúc d li u ho c tìm ki m l trình t i u...)
Các bài toán v GIS hi n nay v n ang c nghiên c u và có nh ng c i
ti n r t t t, k c trong các bài toán ph c t p.Công ngh GIS v i nh ng l i
th c a nó ã mang l i ph ng pháp qu n lý hi u qu h n, m i s v t, i
67. - 67 -
ng, t nh ng thông tin không gian n nh ng thông tin phi không gian t t
u c qu n lý m t cách th ng nh t trên cùng h th ng. M i truy xu t
u th hi n tr c quan h n trên b n s thay cho nh ng dòng v n b n n
thu n. Chính vì th GIS ngày m t tr nên quen thu c h n cho ng i dùng,
nó c ng d ng trong nhi u l nh vi c t n gi n n ph c t p và chi phí
òi h i u t ngày m t th p h n. Có th nói r ng GIS ngày m t t kh nh
m quan tr ng, c các n c phát tri n xem nh m t m i nh n trong l nh
công ngh thông tin.
4.5 Các c u trúc d li u không gian trong GIS:
4.5.1 Cây t phân (Quad Tree):
Quad Tree c s d ng l p ch s không gian 2D. M i nút trong c a
cây chia không gian thành 4 vùng không gian con tách bi t ( c g i là NW,
NE, SW, SE) t ng ng v i các tr c t a . M i vùng không gian con này
c tách m t cách quy cho n khi có nhi u nh t m t i t ng bên
trong m i vùng.
Hình 4.5.1-1 Cây t phân
68. - 68 -
Quad Tree không c cân b ng và s cân b ng c a nó ph thu c vào s
phân b c a d li u và tr t t chèn d li u vào cây.
4.5.2 K-d Tree:
Ph ng pháp này s d ng m t cây nh phân chia không gian k chi u.
Cây này tách không gian thành hai không gian con t ng ng v i m t trong
các t a c a m ang tách.
Hình 4.5.2-1 K-D Tree
i level(nod) là chi u dài c a ng i t nút g c n nút nod và gi s
các tr c t a c ánh s t 0 n k – 1. T i b c level(nod) m i nút
không gian c tách t ng ng v i s t a (level(nod) mod k).
Thao tác thêm và tìm ki m t ng t nh i v i cây nh phân. Chúng ta
ch ph i so sánh các nút t ng ng v i s t a (level(nod) mode k). C u
trúc này có m t b t l i là nh y c m v i tr t t mà các i t ng c thêm
vào.
69. - 69 -
4.5.3 R-Tree:
R-Tree là s bi n c i c a B-Tree cho d li u không gian. R-Tree là cây
cân b ng và chia không gian thành các khung ch nh t có th ch ng l p(ph )
nhau. M i nút ngo i tr nút g c ch a t m n M con ( 2/2 Mm ≤≤ ). Nút g c
có t i thi u 2 con ngo i tr nút lá.
Hình 4.5.3-1 R-Tree
Nút c th hi n b i m t khung bao nh nh t - MBR(minimum
bounding rectangle) ch a t t c các i t ng c a cây con c a nó. M i con
a nút c tách quy. Các con tr tr n các i t ng d li u c l u
các nút lá.
Vì các MBR có th ch ng l p nên có th c n ph i tìm ki m trên nhi u
nhánh c a cây. Do ó, các khung ch nh t càng tách bi t càng t t. V n
này ph i c gi i quy t thao tác INSERT (chèn) có s d ng m t s
70. - 70 -
heuristic. Thao tác này tìm m t nút lá sao cho khi chèn i t ng m i vào nó
gây nh ng thay i nh nh có th .
Thao tác tách c ng quan tr ng. M c tiêu là làm gi m xác su t s ph i tìm
hai nút m i. Vi c ki m tra t t c các kh n ng có ph c t p s m , vì
th nh ng thu t toán cho l i gi i x p x th ng c s d ng.
R-Tree là m t trong nh ng c u trúc d li u không gian c c p n
nhi u nh t và nó r t th ng c s d ng so sánh v i nh ng c u trúc m i.
Trong các ng d ng GIS, R-Tree óng vai trò quan tr ng trong vi c ch n
a i t ng hi n th c ng nh kích ho t nhanh các i t ng h a.
4.5.4 R*-Tree:
R*-Tree là m t bi n c i c a R-Tree s d ng heuristic khác cho thao tác
INSERT. R-Tree c g ng t i thi u vùng c a t t c các nút c a cây. R*-Tree
t h p nhi u tiêu chu n: vùng b ph b i khung ch nh t bao, biên c a
khung ch nh t và s ch ng l p gi a các khung ch nh t.
c tiêu làm gi m vùng b ph b i khung ch nh t bao là làm gi m
không gian ch t, có ngh a là không gian b ph b i khung ch nh t bao ch
không ph i b i các khung ch nh t b ch a. u ó làm gi m s nhánh tìm
ki m vô ích. T i thi u hóa biên (t ng chi u dài các c nh) c a khung ch nh t
bao t t h n là dùng nh ng khung vuông. T i thi u hóa s ch ng l p gi a các
khung ch nh t làm gi m s ng ph i tìm ki m.
Cài t ph ng pháp này thì khó h n, nh ng R*-Tree hi u qu h n R-
Tree nhi u.
71. - 71 -
4.5.5 R+
-Tree:
R+
-Tree là s m r ng c a R-Tree. Khác v i R-Tree, các khung bao c a
các nút t i m t m c không ch ng l p trong c u trúc này. c tính này làm
gi m s l ng nhánh ph i tìm ki m c a cây và làm gi m phí t n th i gian.
Hình 4.5.5-1 R+-Tree
R+
-Tree c phép tách các i t ng d li u cho nh ng ph n khác
nhau c a m t i t ng có th c l u nhi u nút c a m t m c. N u m t
khung ch nh t ch ng l p m t khung ch nh t khác, nó s b phân rã thành
t nhóm các khung ch nh t không ch ng l p nhau. u này làm gia t ng
không gian l u tr nh ng cho phép lo i b s ch ng l p gi a các nút và do
ó làm gi m phí t n th i gian tìm ki m.
72. - 72 -
4.6 ng d ng b n :
4.6.1 Các ki u b n :
Hình 4.6.1-1 Các ki u b n
Toppographic là b n ch bao g m các c tính v t lý ví d nh ng,
sông, nhà.
Contour ( ng vi n): là b n bao g m các ng n i các v trí m có
cùng giá tr ví d nh : sâu c a bi n, ng ng áp.
Choropleth: là b n a chí.
4.6.2 Các i t ng c a b n :
Công ngh GIS c ng cho phép l u tr thông tin b n trong máy tính
theo cách máy tính hoá, ngh a là l u tr d i d ng t p tin v i các c u trúc
khác nhau. Và t ó b n có th c l u tr , thêm, xoá, s a m t cách d
dàng. Nhìn vào vào m t b n ta c ng nh n th y c các i t ng chính
a b n , nó bao g m: Line( ng), Area (vùng), Point ( m), và Text
(v n b n).
73. - 73 -
Hình 4.6.2-1 Các i t ng chính trong b n
4.7 ng d ng GIS trên PocketPC:
phát tri n m nh m c a Internet, c ng nh kh n ng c a công ngh
ph n c ng, ã d n n s ra i c a các thi t b ng d ng Internet. Theo các
nhà nghiên c u th tr ng, m c dù PC v n gi vai trò ch y u trong vi c x
lý và h tr công vi c, nh ng các thi t b Internet hay thi t b h tr cá nhân
ngày càng kh ng nh c vai trò c a nó trên th tr ng.
Ra i vào nh ng n m 90 c a th k 20, Pocket PC là m t d ng thi t b
m tay PDA (Personal Digital Assistant) s d ng h u hành Pocket PC,
t bi n th c a Windows CE, m t h u hành nhúng c Microsoft
phát tri n cho các thi t b không là PC (non-PC).
Do c tr ng nh g n, c thi t k v i m c ích giúp ng i s d ng
u tr các thông tin cá nhân, công vi c c n thi t c ng nh các ph n m m t i
thi u trên m t thi t b nh g n, và s d ng m t h u hành h hàng
Windows, Pocket PC ã c khá nhi u nhà s n xu t ph n m m quan tâm
trong l nh v c phát tri n ng d ng, trong ó có các ng d ng GIS.
Tuy nhiên, Pocket PC ch y trên n n h u hành nhúng Windows CE,
u hành ch cung c p b nh m t cách gi i h n cho các ng d ng phát
74. - 74 -
tri n trên nó. Vì v y, các ng d ng liên quan t i h th ng GIS phát tri n trên
Pocket PC và h u hành Windows CE g p ph i các v n v t i u hoá
nh c ng nh t c và th ng có t c ch m h n nhi u so v i các
ng d ng trên PC thông th ng. Ngoài ra, do kh n ng l u tr có gi i h n,
vi c ng d ng GIS trên môi tr ng này c ng g p không ít khó kh n.
Trên th tr ng, m t s s n ph m GIS trên Pocket PC ã c ph bi n
ng rãi nh Pocket Street c a Microsoft, MapInPocket c a Information
Technologies India Ltd...
75. - 75 -
CH NG 5 : Gi i thi u v chu n OpenGIS
5.1 Các ki u d li u hình h c c a OpenGIS:
Các c u trúc ch m c không gian, ví d R-Tree, c s d ng trong các h
qu n tr c s d li u không gian (SDBMS) t ng t c quá trình x lý các
truy v n ch ng h n nh các truy v n vùng ho c các truy v n các i t ng
lân c n g n nh t. Do ó, ph n cài t các thao tác tìm ki m lân c n th ng s
ng R-Tree. Tuy nhiên, n u các i t ng không gian khá ph c t p, vi c
y các lân c n c a vài i t ng theo cách này v n tiêu t n r t nhi u th i
gian vì s ph c t p c a ánh giá các quan h lân c n trên các i t ng ó.
Thêm vào ó, khi t o ra t t c các ng lân c n v i m t i t ng ngu n
c cho, m t s l ng r t l n các thao tác tìm ki m lân c n ph i c th c
hi n. Nhi u h th ng qu n tr c s d li u không gian là khá t nh vì không
có nhi u c p nh t trên các i t ng ch ng h n nh các b n a lý. Cho
nên các ki u d li u hình h c cùng v i nhi u thao tác trên các i t ng
c các h qu n tr c s d li u sau này h tr .
76. - 76 -
Hình 5.1-1 H phân c p các ki u d li u hình h c c a OpenGIS.
5.2 OpenGIS Specification ( c t OpenGIS):
5.2.1 Các khái ni m:
c t OpenGIS (OpenGIS Specification), m t c t toàn di n c a m t
khung ph n m m cho các truy c p phân tán n geodata và nh ng tài
nguyên geoprocessing. c t này cung c p cho các nhà phát tri n ph n m m
trên th gi i m t khuôn m u giao di n chung c n k vi t các ph n m m
ho t ng chung v i các ph m m m d ng OpenGIS khác.B khung
OpenGIS (OpenGIS framework) g m:
- M t cách th c chung d ng s th hi n Trái t và các hi n t ng c a nó
trên c s toán h c và khái ni m.
- M t mô hình chung th c hi n nh ng truy nh p, qu n lý, thao tác,
trình bày, và chia s geodata gi a nh ng c ng ng thông tin.
77. - 77 -
- M t b khung s d ng mô hình Open Geodata và mô hình dich v
Open GIS gi i quy t v n kh n ng không ho t ông k t h p không ch
m t k thu t mà c v m t t ch c.
Các nhà phát tri n xây d ng nh ng h th ng có giao di n thích ng
OpenGIS Specification s t o ra nh ng ph n m m trung (middleware), ph n
m b ph n (componentware) và nh ng ng d ng có th ki m soát m t
ph m vi r ng các ki u geodata và các hàm geoprocessing. Ng i s d ng
các h th ng này có th chia s m t không gian d li u ti m n ng r ng l n
qua m ng, dù d li u c s n sinh vào các th i m khác nhau b i các
nhóm không liên quan s d ng các h th ng s n xu t khác nhau cho nh ng
c ích khác nhau và th t s có th ang hi n h u d i s u khi n chính
a h th ng c s d ng cho vi c s n xu t c a h . Geodata k th a
(Legacy geodata) c t ch c trong các h th ng có giao di n thích ng
OpenGIS Specification s có th c truy xu t b i các ph n m m có giao
di n thích ng OpenGIS Specification khác. OpenGIS Specification cung
p m t b khung cho nh ng ng i phát tri n ph n m m t o ra ph n m m
cho phép nh ng ng i dùng c a h truy nh p và x lý d li u a lý t
nh ng ngu n a d ng qua m t giao di n tính toán chung bên trong m t n n
ng công ngh thông tin m .
u m:
i v i ng i phát tri n ng d ng có th d dàng và linh ho t h n : Vi t
ph n m m truy c p geodata.Vi t ph n m m truy c p nh ng tài nguyên
geoprocessing.S a i nh ng ng d ng theo nhu c u ng i dùng c th , tích
p phi không gian và không gian. Và có th ch n m t môi tr ng phát tri n
78. - 78 -
hay cung c p nh ng ng d ng trên nh ng n n t ng a d ng và c ng có th s
ng l i mã geoprocessing
i v i nhà qu n lý thông tin linh ho t h n trong vi c Truy c p và / ho c
phân ph i geodata, cung c p nh ng kh n ng geoprocessing t i nh ng khách
hàng, tích h p D li u a lý và s x lý vào m t ki n trúc tính toán liên h p
và có th ch n nh ng n n thích h p - ki u máy tính cá nhân, ki u máy ch ,
và ki u n n tính toán phân tán ( CORBA, OLE / COM, DCE, ….) cho nên
t phù h p v i ng i dùng v i nh ng công c geoprocessing úng (và c
nh c úng)
i v i nh ng ng i dùng cu i là nh ng ng i h ng l i t i u, nh n
c: S truy nh p th i gian th c t i m t h th ng v tr thông tin a lý l n
ng h n so v i h th ng v tr thông tin a lý có th truy c p ngày nay,
nhi u ng d ng h n ( v i nh ng middleware và tài li u h n h p) khai thác
thông tin a lý, nh ng kh n ng làm vi c v i nh ng ki u geodata và nh
ng khác nhau bên trong m t môi tr ng ng d ng n và dòng công vi c (
workflow ) liên t c, mà không quan tâm n chi ti t c a nh ng ki u và
nh ng nh d ng này.
5.2.2 Nh ng d ch v OpenGIS (OpenGIS Services ):
p h p nh ng d ch v c c n :
- Truy nh p và x lý nh ng ki u nh ngh a h a a lý trong Mô hình
Geodata M .
- Cung c p nh ng kh n ng chia s geodata bên trong nh ng c ng ng
ng i dùng mà s d ng m t t p h p chung nh ng nh ngh a c tính a lý
79. - 79 -
và biên d ch gi a nh ng c ng ng khác nhau nh ng ng i s d ng nh ng
p h p nh ngh a c tính a lý khác nhau.
5.2.3 t mô hình nh ng c ng ng thông tin
(Information Communities Model ):
- M t cách th c cho m t c ng ng nh ng nhà s n xu t geodata và nh ng
ng i dùng ã chia s m t t p h p chung nh ng nh ngh a c tính a lý
nh m b o trì th c s có hi u qu nh nh ngh a này và l p danh m c, chia
nh ng t p d li u thích ng nh ng nh ngh a ó.
- M t cách chính xác t i u và hi u qu cho nh ng c ng ng khác nhau
nh ng ng i dùng và nh ng nhà s n xu t geodata chia s geodata m c
nh ng t p h p nh ngh a c tính a lý khác nhau c a h . Cho ví d , nh ng
s , nh ng nhà a ch t, nhà nông h c có th tìm ki m chia s d li u
t dù h mô t c m các ki u t khác nhau theo nh ng m c tiêu ngh
nghi p khác nhau. Nh ng mô hình c ng ng thông tin nh ngh a m t s
nh m t ng biên d ch gi a nh ng t n c tính a lý khác nhau.
5.2.4 c m:
OpenGIS Specification có nh ng c m chính nh sau:
Interoperable - OpenGIS Specification cung c p nh ng giao di n chu n
i v i geodata và nh ng d ch v geoprocessing. Nh ng giao di n này h tr
trong nh ng h th ng c l p và các m ng): s truy c p geodata, nh ng thao
tác geoprocessing khách/ch phân tán, thao tác geoprocessing ngang hàng
phân tán.
80. - 80 -
Supportive of Information Communities - OpenGIS Specification t i u
hóa vi c chia s d li u bên trong m t c ng ng nh ng ng i dùng và
nh ng nhà s n xu t chia s m t t n c tính a lý chung và gi a nh ng
p h p nh ng ng i dùng và nh ng nhà s n xu t mà nh ng t n c tính
a lý c a h không trùng.
Ubiquitous - OpenGIS Specification cung c p nh ng ph ng ti n cho t t
các ng d ng công ngh thông tin s n sàng khai thác nh ng d ch v
OpenGIS qua nh ng giao di n và nh ng giao th c chu n.
Reliable - Geoprocessing phân tán yêu c u m t m c cao kh n ng u
khi n và s toàn v n. OpenGIS Specification cung c p m t khung công ngh
tr OpenGIS g n nhãn nh ng s a n cho nh ng ng i mua
ph n m m trên n n OpenGIS nh ng s b o m nh t nh c a tính ho t ng
liên h p (interoperability).
Easy to use - Ph n m m trên n n OpenGIS Specification s s d ng
nh ng quy t c và nh ng th t c ch c ch n và logic cho vi c s d ng geodata
và các d ch v geoprocessing. Geodata không c n thi t và s ph c t p
geoprocessing c d u b i ng i phát tri n ng d ng.
Portable - OpenGIS Specification là s c l p c a môi tr ng ph n
m, n n t ng ph n c ng và m ng.
Cooperative - OpenGIS Specification h tr tính toán dùng chung và
nh ng tài nguyên d li u dùng chung. Công ngh OpenGIS có th d dàng
c k t h p v i công ngh thông tin khác.
Scalable - Ph n m m trên n n OpenGIS Specification th ng g m có
nh ng thành ph n ph n m m geoprocessing "c m và ch y" mà có th c