SlideShare ist ein Scribd-Unternehmen logo
1 von 138
Downloaden Sie, um offline zu lesen
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
(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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
+ 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 -
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 -
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 -
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 -
+ 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 -
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 -
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 -
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 -
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
- 57 -
Hình 3.4-2 Quan h Topology c p 1 và 2
- 58 -
Hình 3.4-3 Quan h Topology c p 3
- 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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
- 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 -
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 -
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 -
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
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly
Quan ly he_thong_thong_tin_dia_ly

Weitere ähnliche Inhalte

Was ist angesagt?

Luận án: Hoàn thiện cơ chế tự chủ tài chính các trường đại học công lập ở Việ...
Luận án: Hoàn thiện cơ chế tự chủ tài chính các trường đại học công lập ở Việ...Luận án: Hoàn thiện cơ chế tự chủ tài chính các trường đại học công lập ở Việ...
Luận án: Hoàn thiện cơ chế tự chủ tài chính các trường đại học công lập ở Việ...Viết thuê trọn gói ZALO 0934573149
 
Luận văn: Định hướng phát triển của Ngân hàng Thương mại Cổ phần Á Châu
Luận văn: Định hướng phát triển của Ngân hàng Thương mại Cổ phần Á ChâuLuận văn: Định hướng phát triển của Ngân hàng Thương mại Cổ phần Á Châu
Luận văn: Định hướng phát triển của Ngân hàng Thương mại Cổ phần Á ChâuViết thuê trọn gói ZALO 0934573149
 
Báo cáo thực tập kỹ thuật - UTC2
Báo cáo thực tập kỹ thuật - UTC2Báo cáo thực tập kỹ thuật - UTC2
Báo cáo thực tập kỹ thuật - UTC2Đức Hoàng
 
Phân tích các nhân tố tác động đến hệ số giá trên thu nhập của các công ty cổ...
Phân tích các nhân tố tác động đến hệ số giá trên thu nhập của các công ty cổ...Phân tích các nhân tố tác động đến hệ số giá trên thu nhập của các công ty cổ...
Phân tích các nhân tố tác động đến hệ số giá trên thu nhập của các công ty cổ...https://www.facebook.com/garmentspace
 
Luận án: Hoàn thiện công tác quản lý tiền lương trong ngành điện lực Việt Nam
Luận án: Hoàn thiện công tác quản lý tiền lương trong ngành điện lực Việt NamLuận án: Hoàn thiện công tác quản lý tiền lương trong ngành điện lực Việt Nam
Luận án: Hoàn thiện công tác quản lý tiền lương trong ngành điện lực Việt NamViết thuê trọn gói ZALO 0934573149
 
Krishnamitri1
Krishnamitri1Krishnamitri1
Krishnamitri1unnimet
 
Luận án: Các nhân tố ảnh hưởng đến sự trung thành của các công ty niêm yết đố...
Luận án: Các nhân tố ảnh hưởng đến sự trung thành của các công ty niêm yết đố...Luận án: Các nhân tố ảnh hưởng đến sự trung thành của các công ty niêm yết đố...
Luận án: Các nhân tố ảnh hưởng đến sự trung thành của các công ty niêm yết đố...Dịch vụ viết thuê Khóa Luận - ZALO 0932091562
 

Was ist angesagt? (15)

Luận án: Hoàn thiện cơ chế tự chủ tài chính các trường đại học công lập ở Việ...
Luận án: Hoàn thiện cơ chế tự chủ tài chính các trường đại học công lập ở Việ...Luận án: Hoàn thiện cơ chế tự chủ tài chính các trường đại học công lập ở Việ...
Luận án: Hoàn thiện cơ chế tự chủ tài chính các trường đại học công lập ở Việ...
 
Ứng dụng mô hình xích Markov và chuỗi thời gian mờ trong dự báo
Ứng dụng mô hình xích Markov và chuỗi thời gian mờ trong dự báoỨng dụng mô hình xích Markov và chuỗi thời gian mờ trong dự báo
Ứng dụng mô hình xích Markov và chuỗi thời gian mờ trong dự báo
 
Luận văn: Đẩy mạnh hoạt động cho thuê tài chính ở Việt Nam, HAY
Luận văn: Đẩy mạnh hoạt động cho thuê tài chính ở Việt Nam, HAYLuận văn: Đẩy mạnh hoạt động cho thuê tài chính ở Việt Nam, HAY
Luận văn: Đẩy mạnh hoạt động cho thuê tài chính ở Việt Nam, HAY
 
Luận văn: Ứng dụng công nghệ nhân dạng ảnh trong thu thập thông tin về dòng g...
Luận văn: Ứng dụng công nghệ nhân dạng ảnh trong thu thập thông tin về dòng g...Luận văn: Ứng dụng công nghệ nhân dạng ảnh trong thu thập thông tin về dòng g...
Luận văn: Ứng dụng công nghệ nhân dạng ảnh trong thu thập thông tin về dòng g...
 
Luận văn: Định hướng phát triển của Ngân hàng Thương mại Cổ phần Á Châu
Luận văn: Định hướng phát triển của Ngân hàng Thương mại Cổ phần Á ChâuLuận văn: Định hướng phát triển của Ngân hàng Thương mại Cổ phần Á Châu
Luận văn: Định hướng phát triển của Ngân hàng Thương mại Cổ phần Á Châu
 
Báo cáo thực tập kỹ thuật - UTC2
Báo cáo thực tập kỹ thuật - UTC2Báo cáo thực tập kỹ thuật - UTC2
Báo cáo thực tập kỹ thuật - UTC2
 
Phân tích các nhân tố tác động đến hệ số giá trên thu nhập của các công ty cổ...
Phân tích các nhân tố tác động đến hệ số giá trên thu nhập của các công ty cổ...Phân tích các nhân tố tác động đến hệ số giá trên thu nhập của các công ty cổ...
Phân tích các nhân tố tác động đến hệ số giá trên thu nhập của các công ty cổ...
 
Luận án: Hoàn thiện công tác quản lý tiền lương trong ngành điện lực Việt Nam
Luận án: Hoàn thiện công tác quản lý tiền lương trong ngành điện lực Việt NamLuận án: Hoàn thiện công tác quản lý tiền lương trong ngành điện lực Việt Nam
Luận án: Hoàn thiện công tác quản lý tiền lương trong ngành điện lực Việt Nam
 
Krishnamitri1
Krishnamitri1Krishnamitri1
Krishnamitri1
 
La0214
La0214La0214
La0214
 
Luận án: Những vấn đề lý luận và thực tiễn sau cổ phần hóa các doanh nghiệp n...
Luận án: Những vấn đề lý luận và thực tiễn sau cổ phần hóa các doanh nghiệp n...Luận án: Những vấn đề lý luận và thực tiễn sau cổ phần hóa các doanh nghiệp n...
Luận án: Những vấn đề lý luận và thực tiễn sau cổ phần hóa các doanh nghiệp n...
 
Luận văn: Phát triển đội ngũ giáo viên tiểu học theo chuẩn nghề nghiệp
Luận văn: Phát triển đội ngũ giáo viên tiểu học theo chuẩn nghề nghiệpLuận văn: Phát triển đội ngũ giáo viên tiểu học theo chuẩn nghề nghiệp
Luận văn: Phát triển đội ngũ giáo viên tiểu học theo chuẩn nghề nghiệp
 
Luận văn: Xây dựng chiến lược phát triển Công ty TNHH một thành viên Thuốc Th...
Luận văn: Xây dựng chiến lược phát triển Công ty TNHH một thành viên Thuốc Th...Luận văn: Xây dựng chiến lược phát triển Công ty TNHH một thành viên Thuốc Th...
Luận văn: Xây dựng chiến lược phát triển Công ty TNHH một thành viên Thuốc Th...
 
Luận án: Các nhân tố ảnh hưởng đến sự trung thành của các công ty niêm yết đố...
Luận án: Các nhân tố ảnh hưởng đến sự trung thành của các công ty niêm yết đố...Luận án: Các nhân tố ảnh hưởng đến sự trung thành của các công ty niêm yết đố...
Luận án: Các nhân tố ảnh hưởng đến sự trung thành của các công ty niêm yết đố...
 
Luận văn: Cải thiện môi trường đầu tư nhằm thu hút đầu tư vào các khu công ng...
Luận văn: Cải thiện môi trường đầu tư nhằm thu hút đầu tư vào các khu công ng...Luận văn: Cải thiện môi trường đầu tư nhằm thu hút đầu tư vào các khu công ng...
Luận văn: Cải thiện môi trường đầu tư nhằm thu hút đầu tư vào các khu công ng...
 

Ähnlich wie Quan ly he_thong_thong_tin_dia_ly

Ung dung email_client
Ung dung email_clientUng dung email_client
Ung dung email_clientViet Nam
 
Ung dung email_client
Ung dung email_clientUng dung email_client
Ung dung email_clientDuy Vọng
 
Tai lieu Khai pha du lieu
Tai lieu Khai pha du lieuTai lieu Khai pha du lieu
Tai lieu Khai pha du lieuduyen tran
 
Chiết lọc thông tin pháp luật trong dữ liệu văn bản.pdf
Chiết lọc thông tin pháp luật trong dữ liệu văn bản.pdfChiết lọc thông tin pháp luật trong dữ liệu văn bản.pdf
Chiết lọc thông tin pháp luật trong dữ liệu văn bản.pdfTieuNgocLy
 
Luận văn: Nghiên cứu các nhân tố tác động đến ý định sử dụng ví điện tử tại V...
Luận văn: Nghiên cứu các nhân tố tác động đến ý định sử dụng ví điện tử tại V...Luận văn: Nghiên cứu các nhân tố tác động đến ý định sử dụng ví điện tử tại V...
Luận văn: Nghiên cứu các nhân tố tác động đến ý định sử dụng ví điện tử tại V...Dịch vụ viết thuê Khóa Luận - ZALO 0932091562
 
Luan van tien si kinh te quoc dan neu (11)
Luan van tien si kinh te quoc dan neu (11)Luan van tien si kinh te quoc dan neu (11)
Luan van tien si kinh te quoc dan neu (11)Nguyễn Công Huy
 
Luận án: Các yếu tố ảnh hưởng đến mức độ chấp nhận mô hình thẻ điểm cân bằng ...
Luận án: Các yếu tố ảnh hưởng đến mức độ chấp nhận mô hình thẻ điểm cân bằng ...Luận án: Các yếu tố ảnh hưởng đến mức độ chấp nhận mô hình thẻ điểm cân bằng ...
Luận án: Các yếu tố ảnh hưởng đến mức độ chấp nhận mô hình thẻ điểm cân bằng ...Viết thuê trọn gói ZALO 0934573149
 
Bat goi tin_tren_mang
Bat goi tin_tren_mangBat goi tin_tren_mang
Bat goi tin_tren_mangDuy Vọng
 
Bat goi tin_tren_mang
Bat goi tin_tren_mangBat goi tin_tren_mang
Bat goi tin_tren_mangViet Nam
 
Xd ung dung bat goi tin cho mang quan ly
Xd ung dung bat goi tin cho mang quan lyXd ung dung bat goi tin cho mang quan ly
Xd ung dung bat goi tin cho mang quan lyVcoi Vit
 
Phân tích, đánh giá hiện tượng cộng hưởng tần số thấp trong hệ thống điện.pdf
Phân tích, đánh giá hiện tượng cộng hưởng tần số thấp trong hệ thống điện.pdfPhân tích, đánh giá hiện tượng cộng hưởng tần số thấp trong hệ thống điện.pdf
Phân tích, đánh giá hiện tượng cộng hưởng tần số thấp trong hệ thống điện.pdfMan_Ebook
 
Bai giang mo phong va mo hinh hoa duong thuy huong
Bai giang   mo phong va mo hinh hoa  duong thuy huongBai giang   mo phong va mo hinh hoa  duong thuy huong
Bai giang mo phong va mo hinh hoa duong thuy huongVu Tai
 
Bai giang mo phong va mo hinh hoa duong thuy huong
Bai giang   mo phong va mo hinh hoa  duong thuy huongBai giang   mo phong va mo hinh hoa  duong thuy huong
Bai giang mo phong va mo hinh hoa duong thuy huongVu Tai
 
Khoá Luận Tốt Nghiệp Thông Tin Về Hiệp Định Đối Tác Toàn Diện Và Tiến Bộ Xuyê...
Khoá Luận Tốt Nghiệp Thông Tin Về Hiệp Định Đối Tác Toàn Diện Và Tiến Bộ Xuyê...Khoá Luận Tốt Nghiệp Thông Tin Về Hiệp Định Đối Tác Toàn Diện Và Tiến Bộ Xuyê...
Khoá Luận Tốt Nghiệp Thông Tin Về Hiệp Định Đối Tác Toàn Diện Và Tiến Bộ Xuyê...Dịch vụ viết bài trọn gói ZALO: 0936 885 877
 
Thử nghiệm trạm biến áp cách điện khí SF6.pdf
Thử nghiệm trạm biến áp cách điện khí SF6.pdfThử nghiệm trạm biến áp cách điện khí SF6.pdf
Thử nghiệm trạm biến áp cách điện khí SF6.pdfMan_Ebook
 

Ähnlich wie Quan ly he_thong_thong_tin_dia_ly (20)

Đề tài: Mô phỏng bộ lọc nhiễu tín hiệu điện tim dùng Matlab, 9đ
Đề tài: Mô phỏng bộ lọc nhiễu tín hiệu điện tim dùng Matlab, 9đĐề tài: Mô phỏng bộ lọc nhiễu tín hiệu điện tim dùng Matlab, 9đ
Đề tài: Mô phỏng bộ lọc nhiễu tín hiệu điện tim dùng Matlab, 9đ
 
Ung dung email_client
Ung dung email_clientUng dung email_client
Ung dung email_client
 
Ung dung email_client
Ung dung email_clientUng dung email_client
Ung dung email_client
 
Tai lieu Khai pha du lieu
Tai lieu Khai pha du lieuTai lieu Khai pha du lieu
Tai lieu Khai pha du lieu
 
Chiết lọc thông tin pháp luật trong dữ liệu văn bản.pdf
Chiết lọc thông tin pháp luật trong dữ liệu văn bản.pdfChiết lọc thông tin pháp luật trong dữ liệu văn bản.pdf
Chiết lọc thông tin pháp luật trong dữ liệu văn bản.pdf
 
Luận văn: Nghiên cứu các nhân tố tác động đến ý định sử dụng ví điện tử tại V...
Luận văn: Nghiên cứu các nhân tố tác động đến ý định sử dụng ví điện tử tại V...Luận văn: Nghiên cứu các nhân tố tác động đến ý định sử dụng ví điện tử tại V...
Luận văn: Nghiên cứu các nhân tố tác động đến ý định sử dụng ví điện tử tại V...
 
Khảo sát quy trình chế biến tôm sú đông lạnh tại công ty cổ phần chế biến thủ...
Khảo sát quy trình chế biến tôm sú đông lạnh tại công ty cổ phần chế biến thủ...Khảo sát quy trình chế biến tôm sú đông lạnh tại công ty cổ phần chế biến thủ...
Khảo sát quy trình chế biến tôm sú đông lạnh tại công ty cổ phần chế biến thủ...
 
Yếu tố tác động đến xuất khẩu hàng nông sản việt nam vào thị trường EU - cách...
Yếu tố tác động đến xuất khẩu hàng nông sản việt nam vào thị trường EU - cách...Yếu tố tác động đến xuất khẩu hàng nông sản việt nam vào thị trường EU - cách...
Yếu tố tác động đến xuất khẩu hàng nông sản việt nam vào thị trường EU - cách...
 
Luan van tien si kinh te quoc dan neu (11)
Luan van tien si kinh te quoc dan neu (11)Luan van tien si kinh te quoc dan neu (11)
Luan van tien si kinh te quoc dan neu (11)
 
Luận án: Các yếu tố ảnh hưởng đến mức độ chấp nhận mô hình thẻ điểm cân bằng ...
Luận án: Các yếu tố ảnh hưởng đến mức độ chấp nhận mô hình thẻ điểm cân bằng ...Luận án: Các yếu tố ảnh hưởng đến mức độ chấp nhận mô hình thẻ điểm cân bằng ...
Luận án: Các yếu tố ảnh hưởng đến mức độ chấp nhận mô hình thẻ điểm cân bằng ...
 
Bat goi tin_tren_mang
Bat goi tin_tren_mangBat goi tin_tren_mang
Bat goi tin_tren_mang
 
Bat goi tin_tren_mang
Bat goi tin_tren_mangBat goi tin_tren_mang
Bat goi tin_tren_mang
 
Bat goi tin_tren_mang
Bat goi tin_tren_mangBat goi tin_tren_mang
Bat goi tin_tren_mang
 
Xd ung dung bat goi tin cho mang quan ly
Xd ung dung bat goi tin cho mang quan lyXd ung dung bat goi tin cho mang quan ly
Xd ung dung bat goi tin cho mang quan ly
 
Sự Hài Lòng Của Khách Hàng Về Chất Lượng Dịch Vụ Thiết Kế Website.doc
Sự Hài Lòng Của Khách Hàng Về Chất Lượng Dịch Vụ Thiết Kế Website.docSự Hài Lòng Của Khách Hàng Về Chất Lượng Dịch Vụ Thiết Kế Website.doc
Sự Hài Lòng Của Khách Hàng Về Chất Lượng Dịch Vụ Thiết Kế Website.doc
 
Phân tích, đánh giá hiện tượng cộng hưởng tần số thấp trong hệ thống điện.pdf
Phân tích, đánh giá hiện tượng cộng hưởng tần số thấp trong hệ thống điện.pdfPhân tích, đánh giá hiện tượng cộng hưởng tần số thấp trong hệ thống điện.pdf
Phân tích, đánh giá hiện tượng cộng hưởng tần số thấp trong hệ thống điện.pdf
 
Bai giang mo phong va mo hinh hoa duong thuy huong
Bai giang   mo phong va mo hinh hoa  duong thuy huongBai giang   mo phong va mo hinh hoa  duong thuy huong
Bai giang mo phong va mo hinh hoa duong thuy huong
 
Bai giang mo phong va mo hinh hoa duong thuy huong
Bai giang   mo phong va mo hinh hoa  duong thuy huongBai giang   mo phong va mo hinh hoa  duong thuy huong
Bai giang mo phong va mo hinh hoa duong thuy huong
 
Khoá Luận Tốt Nghiệp Thông Tin Về Hiệp Định Đối Tác Toàn Diện Và Tiến Bộ Xuyê...
Khoá Luận Tốt Nghiệp Thông Tin Về Hiệp Định Đối Tác Toàn Diện Và Tiến Bộ Xuyê...Khoá Luận Tốt Nghiệp Thông Tin Về Hiệp Định Đối Tác Toàn Diện Và Tiến Bộ Xuyê...
Khoá Luận Tốt Nghiệp Thông Tin Về Hiệp Định Đối Tác Toàn Diện Và Tiến Bộ Xuyê...
 
Thử nghiệm trạm biến áp cách điện khí SF6.pdf
Thử nghiệm trạm biến áp cách điện khí SF6.pdfThử nghiệm trạm biến áp cách điện khí SF6.pdf
Thử nghiệm trạm biến áp cách điện khí SF6.pdf
 

Mehr von Viet Nam

Nnt gt lich_sunb_quyen149
Nnt gt lich_sunb_quyen149Nnt gt lich_sunb_quyen149
Nnt gt lich_sunb_quyen149Viet Nam
 
Nnt gt lich_sunb_quyen145
Nnt gt lich_sunb_quyen145Nnt gt lich_sunb_quyen145
Nnt gt lich_sunb_quyen145Viet Nam
 
Nnt gt lich_sunb_quyen144
Nnt gt lich_sunb_quyen144Nnt gt lich_sunb_quyen144
Nnt gt lich_sunb_quyen144Viet Nam
 
Nnt gt lich_sunb_quyen143
Nnt gt lich_sunb_quyen143Nnt gt lich_sunb_quyen143
Nnt gt lich_sunb_quyen143Viet Nam
 
Nnt gt lich_sunb_quyen142
Nnt gt lich_sunb_quyen142Nnt gt lich_sunb_quyen142
Nnt gt lich_sunb_quyen142Viet Nam
 
Nnt gt lich_sunb_quyen139
Nnt gt lich_sunb_quyen139Nnt gt lich_sunb_quyen139
Nnt gt lich_sunb_quyen139Viet Nam
 
Nnt gt lich_sunb_quyen138
Nnt gt lich_sunb_quyen138Nnt gt lich_sunb_quyen138
Nnt gt lich_sunb_quyen138Viet Nam
 
Nnt gt lich_sunb_quyen137
Nnt gt lich_sunb_quyen137Nnt gt lich_sunb_quyen137
Nnt gt lich_sunb_quyen137Viet Nam
 
Nnt gt lich_sunb_quyen135
Nnt gt lich_sunb_quyen135Nnt gt lich_sunb_quyen135
Nnt gt lich_sunb_quyen135Viet Nam
 
Nnt gt lich_sunb_quyen132
Nnt gt lich_sunb_quyen132Nnt gt lich_sunb_quyen132
Nnt gt lich_sunb_quyen132Viet Nam
 
Nnt gt lich_sunb_quyen127
Nnt gt lich_sunb_quyen127Nnt gt lich_sunb_quyen127
Nnt gt lich_sunb_quyen127Viet Nam
 
Nnt gt lich_sunb_quyen126
Nnt gt lich_sunb_quyen126Nnt gt lich_sunb_quyen126
Nnt gt lich_sunb_quyen126Viet Nam
 
Nnt gt lich_sunb_quyen124
Nnt gt lich_sunb_quyen124Nnt gt lich_sunb_quyen124
Nnt gt lich_sunb_quyen124Viet Nam
 
Nnt gt lich_sunb_quyen122
Nnt gt lich_sunb_quyen122Nnt gt lich_sunb_quyen122
Nnt gt lich_sunb_quyen122Viet Nam
 
Nnt gt lich_sunb_quyen121
Nnt gt lich_sunb_quyen121Nnt gt lich_sunb_quyen121
Nnt gt lich_sunb_quyen121Viet Nam
 
Nnt gt lich_sunb_quyen120
Nnt gt lich_sunb_quyen120Nnt gt lich_sunb_quyen120
Nnt gt lich_sunb_quyen120Viet Nam
 
Nnt gt lich_sunb_quyen119
Nnt gt lich_sunb_quyen119Nnt gt lich_sunb_quyen119
Nnt gt lich_sunb_quyen119Viet Nam
 
Nnt gt lich_sunb_quyen118
Nnt gt lich_sunb_quyen118Nnt gt lich_sunb_quyen118
Nnt gt lich_sunb_quyen118Viet Nam
 
Nnt gt lich_sunb_quyen117
Nnt gt lich_sunb_quyen117Nnt gt lich_sunb_quyen117
Nnt gt lich_sunb_quyen117Viet Nam
 
Nnt gt lich_sunb_quyen116
Nnt gt lich_sunb_quyen116Nnt gt lich_sunb_quyen116
Nnt gt lich_sunb_quyen116Viet Nam
 

Mehr von Viet Nam (20)

Nnt gt lich_sunb_quyen149
Nnt gt lich_sunb_quyen149Nnt gt lich_sunb_quyen149
Nnt gt lich_sunb_quyen149
 
Nnt gt lich_sunb_quyen145
Nnt gt lich_sunb_quyen145Nnt gt lich_sunb_quyen145
Nnt gt lich_sunb_quyen145
 
Nnt gt lich_sunb_quyen144
Nnt gt lich_sunb_quyen144Nnt gt lich_sunb_quyen144
Nnt gt lich_sunb_quyen144
 
Nnt gt lich_sunb_quyen143
Nnt gt lich_sunb_quyen143Nnt gt lich_sunb_quyen143
Nnt gt lich_sunb_quyen143
 
Nnt gt lich_sunb_quyen142
Nnt gt lich_sunb_quyen142Nnt gt lich_sunb_quyen142
Nnt gt lich_sunb_quyen142
 
Nnt gt lich_sunb_quyen139
Nnt gt lich_sunb_quyen139Nnt gt lich_sunb_quyen139
Nnt gt lich_sunb_quyen139
 
Nnt gt lich_sunb_quyen138
Nnt gt lich_sunb_quyen138Nnt gt lich_sunb_quyen138
Nnt gt lich_sunb_quyen138
 
Nnt gt lich_sunb_quyen137
Nnt gt lich_sunb_quyen137Nnt gt lich_sunb_quyen137
Nnt gt lich_sunb_quyen137
 
Nnt gt lich_sunb_quyen135
Nnt gt lich_sunb_quyen135Nnt gt lich_sunb_quyen135
Nnt gt lich_sunb_quyen135
 
Nnt gt lich_sunb_quyen132
Nnt gt lich_sunb_quyen132Nnt gt lich_sunb_quyen132
Nnt gt lich_sunb_quyen132
 
Nnt gt lich_sunb_quyen127
Nnt gt lich_sunb_quyen127Nnt gt lich_sunb_quyen127
Nnt gt lich_sunb_quyen127
 
Nnt gt lich_sunb_quyen126
Nnt gt lich_sunb_quyen126Nnt gt lich_sunb_quyen126
Nnt gt lich_sunb_quyen126
 
Nnt gt lich_sunb_quyen124
Nnt gt lich_sunb_quyen124Nnt gt lich_sunb_quyen124
Nnt gt lich_sunb_quyen124
 
Nnt gt lich_sunb_quyen122
Nnt gt lich_sunb_quyen122Nnt gt lich_sunb_quyen122
Nnt gt lich_sunb_quyen122
 
Nnt gt lich_sunb_quyen121
Nnt gt lich_sunb_quyen121Nnt gt lich_sunb_quyen121
Nnt gt lich_sunb_quyen121
 
Nnt gt lich_sunb_quyen120
Nnt gt lich_sunb_quyen120Nnt gt lich_sunb_quyen120
Nnt gt lich_sunb_quyen120
 
Nnt gt lich_sunb_quyen119
Nnt gt lich_sunb_quyen119Nnt gt lich_sunb_quyen119
Nnt gt lich_sunb_quyen119
 
Nnt gt lich_sunb_quyen118
Nnt gt lich_sunb_quyen118Nnt gt lich_sunb_quyen118
Nnt gt lich_sunb_quyen118
 
Nnt gt lich_sunb_quyen117
Nnt gt lich_sunb_quyen117Nnt gt lich_sunb_quyen117
Nnt gt lich_sunb_quyen117
 
Nnt gt lich_sunb_quyen116
Nnt gt lich_sunb_quyen116Nnt gt lich_sunb_quyen116
Nnt gt lich_sunb_quyen116
 

Quan ly he_thong_thong_tin_dia_ly

  • 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
  • 57. - 57 - Hình 3.4-2 Quan h Topology c p 1 và 2
  • 58. - 58 - Hình 3.4-3 Quan h Topology c p 3
  • 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