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

Ung dung phan mem ma nguon mo he quan tri CSDL huong doi tuo

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

Header Page 1 of 126.

TR

NG

I H C KHOA H C T

NHIÊN

KHOA CÔNG NGH THÔNG TIN
MÔN CÔNG NGH PH N M M
e&f

NGUY N TH LÝ - NGUY N SAO K

NG D NG PH N M M MÃ NGU N M H QU N
TR C S D
XÂY D NG

LI U H

NG

NG PERST

NG D NG QU N LÝ H TH NG

THÔNG TIN

A LÝ THÀNH PH HCM



KHÓA LU N C

NHÂN TIN H C

TpHCM, 2005

Footer Page 1 of 126.

IT


Header Page 2 of 126.

TR

NG
I H C KHOA H C T NHIÊN
KHOA CÔNG NGH THÔNG TIN
MÔN CÔNG NGH PH N M M
e&f

NGUY N TH LÝ - 0112187
NGUY N SAO K - 0112186

NG D NG PH N M M MÃ NGU N M H QU N
TR C S D
XÂY D NG

LI U H


NG

IT

NG D NG QU N LÝ H TH NG

THÔNG TIN

A LÝ THÀNH PH HCM

KHÓA LU N C

NHÂN TIN H C

GIÁO VIÊN H NG D N
Th.s NGUY N MINH NAM

NIÊN KHOÁ 2001-2005

Footer Page 2 of 126.

NG PERST

-2-


Header Page 3 of 126.

IC M N

Chúng em chân thành cám n Khoa Công ngh Thông tin, tr
Khoa h c T nhiên t o

u ki n cho chúng em th c hi n

ng

ih c

tài lu n v n t t

nghi p này.
Chúng em chân thành cám n th y Nguy n Minh Nam ã t n tình h
n, ch b o chúng em trong su t th i gian th c hi n

ng

tài.

Chúng em chân thành cám n quý th y cô trong khoa ã t n tình gi ng
y, trang b cho chúng em nh ng ki n th c quý báu trong nh ng n m h c
a qua.
Chúng con xin nói lên lòng bi t n sâu s c
ã ch m sóc, nuôi d y chúng con thành ng

i v i cha m , nh ng ng
i và luôn

i


ng viên tinh th n

cho chúng con.
Và c ng chân thành cám n các anh ch và b n bè ã ng h , giúp
i ki n th c, kinh nghi m và

, trao

ng viên chúng em trong th i gian h c t p và

nghiên c u.
c dù chúng em ã c g ng hoàn thành lu n v n trong ph m vi và kh
ng cho phép nh ng ch c ch n s không tránh kh i nh ng sai sót. Chúng
em kính mong nh n

c s c m thông và t n tình ch b o c a quý th y cô

và các b n.

Tp.H Chí Minh, tháng 7 n m 2005
Nguy n Th Lý – 0112187
Nguy n Sao K - 0112186

Footer Page 3 of 126.

-3-


Header Page 4 of 126.


TÓM T T LU N V N
Lu n v n
Ch

ng 1: Gi i thi u t m quan tr ng, m c tiêu, ph m vi c a

thuy t và h
Ch

c t ch c thành các ph n chính nh sau:
tài, các c s lý

ng ti p c n.

ng 2: Cách t ch c c s d li u h

ng

it

ng PERST và nh ng so

sánh v i các cách t ch c c s d li u quan h và các h c s d li u h
it
Ch
các
Ch

ng


ng khác.
ng 3: Gi i thi u v mô hình Topology: nêu lên nh ng khái ni m c b n,
it

ng trong Topology và các c p Topology.

ng 4: Gi i thi u v GIS: gi i thi u t ng quan v GIS, các gi i pháp và ng

ng v GIS và ng d ng GIS trên PocketPC
Ch

ng 5: Gi i thi u v chu n OpenGIS

Ch

ng 6: T ng quan v PocketPC: Các v n

và gi i pháp trên thi t b . Tình

tr ng b nh , t o c s d li u và ng d ng b n
Ch

ng 7:

Ch

ng 8: K t lu n, ánh giá và h

Ch


ng 9: Nh ng tài li u tham kh o khi th c hi n

Ch

ng 10:Nêu nh ng thu t toán chính trong ch

Footer Page 4 of 126.

ng d ng b n

trên PocketPC.

: mô hình phân tích thi t k .
ng phát tri n

-4-

tài
ng trình


Header Page 5 of 126.

CL C
I C M N ........................................................................................................................ 3
TÓM T T LU N V N......................................................................................................... 4
DANH SÁCH CÁC HÌNH..................................................................................................... 8
DANH SÁCH CÁC B NG...................................................................................................10
T S KHÁI NI M, THU T NG
CH

1.1
1.2
CH
2.1
2.2
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.2.6
2.3
2.3.1
2.3.2
2.4
2.5
2.6
2.7
2.7.1
2.7.2
2.8
CH
3.1
3.2
3.3
3.4

VÀ T

VI T T T ..................................................11


NG 1 : Hi n tr ng và yêu c u .................................................................................15
Hi n tr ng: .................................................................................................................15
Gi i quy t bài toán: ....................................................................................................16
NG 2 : T ng quan v Perst .....................................................................................17
Gi i thi u: ..................................................................................................................17
c tính:.....................................................................................................................18
Persistency by reachability:....................................................................................18
Semi transparent object loading: ............................................................................21
Automatic scheme evaluation.................................................................................23
Relation: ................................................................................................................24
Index: ....................................................................................................................25
Giao tác (Transaction):...........................................................................................29
Transparent API: ........................................................................................................31
Dùng.NET Remoting API: .....................................................................................31
Dùng các thu c tính o (virtual properties):............................................................32
C ch th c hi n giao tác (Transaction):.....................................................................33
Nh ng tr ng h p nên dùng PERST: .........................................................................37
Các thông s c a PERST:...........................................................................................38
S l c v RTree:.......................................................................................................44
Gi i thi u:..............................................................................................................44
S l c v d li u không gian (spatial data) và các gi i pháp: ................................44
So sánh v i các h qu n tr c s d li u h ng i t ng khác: ................................45
NG 3 : Gi i thi u v mô hình Topology .................................................................50
Gi i thi u: ..................................................................................................................50
Các khái ni m c b n trong Topology: .......................................................................50
Các lo i i t ng trong Topology: ............................................................................51
Các c p c a Topology: ...............................................................................................53

Footer Page 5 of 126.


-5-


Header Page 6 of 126.

3.5
CH
4.1
4.2
4.3
4.4
4.5
4.5.1
4.5.2
4.5.3
4.5.4
4.5.5
4.6
4.6.1
4.6.2
4.7
CH
5.1
5.2
5.2.1
5.2.2
5.2.3
5.2.4
5.2.5

5.3
5.3.1
5.3.2
CH
6.1
6.2
6.3
6.3.1
6.3.2
6.3.3
6.4
6.4.1

MBR – Minimum Bounding Rectangle: .....................................................................59
NG 4 : Gi i thi u v GIS .......................................................................................60
Gi i thi u v các ng d ng và gi i pháp v GIS: ........................................................60
Mô hình d li u c a thông tin a lý: ..........................................................................61
Thu th p d li u: ........................................................................................................64
Các gi i thu t nghiên c u v GIS: ..............................................................................66
Các c u trúc d li u không gian trong GIS: ................................................................67
Cây t phân (Quad Tree):.......................................................................................67
k-d Tree: ................................................................................................................68
R-Tree: ..................................................................................................................69
R*-Tree: ................................................................................................................70
R+-Tree:.................................................................................................................71
ng d ng b n :.......................................................................................................72
Các ki u b n : ....................................................................................................72
Các i t ng c a b n :......................................................................................72
ng d ng GIS trên PocketPC:....................................................................................73
NG 5 : Gi i thi u v chu n OpenGIS .....................................................................75

Các ki u d li u hình h c c a OpenGIS: ....................................................................75
OpenGIS Specification ( c t OpenGIS):..................................................................76
Các khái ni m: .......................................................................................................76
Nh ng d ch v OpenGIS (OpenGIS Services ):......................................................78
M t mô hình nh ng c ng ng thông tin (Information Communities Model ): .......79
c m: ..............................................................................................................79
Phân lo i: ...............................................................................................................81
OpenGIS Abstract Specification: ................................................................................82
Essential Model (mô hình b n ch t ): .....................................................................83
Abstract Model: .....................................................................................................85
NG 6 : T ng quan v PocketPC .............................................................................89
T ng quan v PocketPC: ............................................................................................89
Kh n ng l p trình trên PocketPC:..............................................................................89
M t s v n khi l p trình ng d ng trên PocketPC: .................................................89
T c và các h tr kh n ng hi n th : ..................................................................89
Kh n ng và hình th c l u tr :...............................................................................90
T ng tác gi a ng i s d ng và thi t b : ..............................................................91
Các gi i pháp cho ng d ng b n
trên PocketPC: ....................................................92
Yêu c u chung: ......................................................................................................92

Footer Page 6 of 126.

-6-


Header Page 7 of 126.

6.4.2
V n t i u t c hi n th : .................................................................................93

6.5
T ch c d li u b n trên PocketPC:.......................................................................93
CH NG 7 :
ng d ng b n :.......................................................................................95
7.1
Phân tích và xác nh yêu c u:....................................................................................95
7.2
Phân tích - thi t k :.....................................................................................................96
7.2.1
S
s d ng: .......................................................................................................96
7.2.2
c t Use-Case chính: ..........................................................................................97
7.2.2.1 Tìm ki m
ng i: ...............................................................................................97
7.2.2.2 Tìm ki m Region: ..................................................................................................98
7.2.2.3 Tìm
ng i ng n nh t: ........................................................................................99
7.2.2.4 Tìm chu trình t i u: ............................................................................................101
7.2.3
S
l p Class Diagram:.....................................................................................102
7.2.3.1 S
t ng quát:...................................................................................................102
7.2.3.2 S
l p d li u:.................................................................................................103
7.2.3.3 S
l p v :........................................................................................................103
7.2.3.4 S
s ki n: ......................................................................................................104

7.2.4
Mô t các l p: ......................................................................................................104
7.2.5
Các l u
ho t ng: ..........................................................................................111
7.3
Thi t k giao di n: ....................................................................................................124
7.3.1
Giao di n trên Desktop: .......................................................................................124
7.3.2
Giao di n trên PocketPC: .....................................................................................131
7.4
Cài t:.....................................................................................................................131
CH NG 8 : K t Lu n, ánh giá và h ng phát tri n ...................................................132
8.1
K t lu n, ánh giá:....................................................................................................132
8.2
H ng phát tri n: .....................................................................................................132
CH NG 9 : Tài li u tham kh o ....................................................................................133
CH NG 10 :
Ph l c .................................................................................................134
10.1 Bài toán tìm
ng i ng n nh t gi a hai m: ........................................................134
10.1.1 Phát bi u bài toán:................................................................................................134
10.1.2 Gi i quy t bài toán:..............................................................................................134
10.2 Bài toán tìm chu trình t i u .....................................................................................136
10.2.1 Phát bi u bài toán.................................................................................................136
10.2.2 Gi i quy t bài toán:..............................................................................................137

Footer Page 7 of 126.


-7-


Header Page 8 of 126.

DANH SÁCH CÁC HÌNH
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình

Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình

3.2-1 Các i t ng trong mô hình Topology...............................................................51
3.4-1 Quan h Topology c p 0 .....................................................................................56
3.4-2 Quan h Topology c p 1 và 2..............................................................................57
3.4-3 Quan h Topology c p 3 .....................................................................................58
4.2-1 Thông tin c n l u tr ..........................................................................................61
4.2-2 So sánh Raster và Vector ....................................................................................64
4.3-1 Ph ng pháp Scanning .......................................................................................65
4.5.1-1 Cây t phân .....................................................................................................67
4.5.2-1 K-D Tree .........................................................................................................68
4.5.3-1 R-Tree .............................................................................................................69
4.5.5-1 R+-Tree ...........................................................................................................71
4.6.2-1 Các i t ng chính trong b n ....................................................................73
5.1-1 H phân c p các ki u d li u hình h c c a OpenGIS. .........................................76
5.3.1-1 L p khái ni m..................................................................................................85
7.2.1-1 S
s d ng t ng quát...................................................................................96
7.2.2.1-1 Use Case - Tìm ki m Edge............................................................................97
7.2.2.2-1 Use Case: Tìm ki m Region..........................................................................98

7.2.2.3-1 Use Case – Tìm
ng i ng n nh t..............................................................99
7.2.2.4-1 Use-Case - Tim chu trình t i u ..................................................................101
7.2.3.1-1 S
t ng quát ...........................................................................................102
7.2.3.2-1 S l p d li u .............................................................................................103
7.2.3.3-1 S
l p v ................................................................................................103
7.2.3.4-1 S
s ki n ..............................................................................................104
7.2.4-1 L p CNode ....................................................................................................106
7.2.4-2 L p CEdge ....................................................................................................109
7.2.5-1 Sequense Diagram: Hi n th b n ...............................................................112
7.2.5-2 Collabration Diagram: Hi n th b n ...........................................................113
7.2.5-3 Sequence Diagram: Tìm
ng ng n nh t......................................................113
7.2.5-4 Collabration Diagram: Tìm
ng ng n nh t .................................................114
7.2.5-5 Sequence Diagram: Tìm Edge........................................................................115
7.2.5-6 Collabration Diagram: Tìm Edge ...................................................................116
7.2.5-7 Sequence Diagram: Tìm chu trình t i u ........................................................117
7.2.5-8 Collabrotion Diagram: Tìm chu trình t i u ...................................................118
7.2.5-9 Sequence Diagram: D ch chuy n vùng nhìn ...................................................119

Footer Page 8 of 126.

-8-


Header Page 9 of 126.


Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình

7.2.5-10 Collabrotion Diagram: Di chuy n vùng nhìn ................................................120
7.2.5-11 Sequence Diagram: T l l i b n ..............................................................120
7.2.5-12 Collaboration Diagram: T l l i b n .......................................................121
7.2.5-13 Sequence Diagram: Tìm a m ................................................................121
7.2.5-14 Collaboration Diagram: Tìm a m ..........................................................122
7.2.5-15 Sequence Diagram: Tìm giao l ...................................................................123
7.2.5-16 Collaboration Diagram: Tìm giao l .............................................................123
7.3.1-1 Khung nhìn t ng quát v giao di n.................................................................124
7.3.1-2 Toolbar c a ch ng trình ...............................................................................124
7.3.1-3 Các ch c n ng chính trên thanh công c ........................................................127
7.3.1-4 Thanh th c n File .......................................................................................128
7.3.1-5 Thanh th c n View.....................................................................................128
7.3.1-6 Khung nhìn b n

thu nh ............................................................................130
7.3.1-7 Khung Layer..................................................................................................130
7.3.1-8 Khung hi n th thông tin i t ng.................................................................131

Footer Page 9 of 126.

-9-


Header Page 10 of 126.

DANH SÁCH CÁC B NG
ng
ng
ng
ng
ng
ng
ng
ng
ng
ng
ng
ng
ng
ng
ng
ng
ng
ng


2.2.4-1 Các m i quan h gi a 2 l p A va B .................................................................25
2.2.5-1 Các ki u Index
c PERST h tr : ................................................................29
2.6-1 H ng s
c nh ngh a s n trong l p StorageImpl...........................................42
2.8-1 So sánh các c tính c a các h qu n tr .............................................................47
2.8-2 B ng so sánh k t qu c a các h qu n tr c s d li u h ng i t ng.............49
3.4-1 Các c p Topology trong các l p VPF .................................................................55
3.4-2 Các c t
c yêu c u
nh ngh a quan h Topology trong VPF......................56
3.5-1. nh ngh a khung ch nh t nh nh t MBR........................................................59
4.2-1 B ng so sánh ki u d li u Raster va Vector...........................................................64
7.1-1 Các ch c n ng chính ..........................................................................................96
7.2.4-1 L p CDatabase..............................................................................................105
7.2.4-2 L p CMapView.............................................................................................105
7.2.4-3 L p CMapEvent ............................................................................................106
7.2.4-4 Thu c tính l p CNode ...................................................................................107
7.2.4-5 Ph ng th c l p CNode ...............................................................................108
7.2.4-6 Thu c tính l p CEdge...................................................................................110
7.2.4-7 Ph ng th c l p CEdge................................................................................111
7.3.1-1 Các ch c n ng chính trên thanh th c n ......................................................129

Footer Page 10 of 126.

- 10 -


Header Page 11 of 126.


T S KHÁI NI M, THU T NG
Khái ni m
OODBMS
Oriented

VÀ T

VI T T T

nh ngh a

Ghi chú

qu n tr c s d li u

(Object-

ng

Database

it

ng

Management System)
PERST

Là m t h qu n tr c s

li u h

Nhúng - -Embedded

ng

it

ng

Có ngh a là PERST

c

tích h p ch t vào ch

ng

trình, g n nh

kho ng

cách gi a database và
ch

ng trình r t nh ,

PERST tr c ti p l u d
li u trong các


i t

ng

trình



không c n có nh ng

n

a

ch

ng

mã làm công vi c chuy n
li u t c s d li u
thành

it

ng và ng

c

i
Topology


Là c u trúc cho mô hình
ng l

GIS ( Geography

Footer Page 11 of 126.

i giao thông

th ng thông tin

- 11 -

a


Header Page 12 of 126.

Information System )

lý. Là m t công ngh
a trên máy tính
ng b n
và x

xây

, phân tích


lý các

i t

n t i và các s
y ra trên trái
Thông tin không gian

ki n

t.

Thông tin v nh ng
m liên quan

ng

c Bao g m hai d ng:

n hình

ng, v trí, quan h c a
các

it

ng

a lý.


ng hình h c:
mô t các

c

m

hình d ng, v trí. Ví
nh

t a

m,

c a

ng…

D ng Topology:
mô t

quan h gi a

các

i t

ng hình




d

c.

nh

nh ng vùng nào k
i m t vùng xác
nh.
Thông tin phi không gian Thông tin v nh ng
( thông tin thu c tính )

m liên quan

c Ví d

n th ng ph , dân s …

kê, thông tin s , thông
tin

c tr ng gán cho
i thu c tính c a

Footer Page 12 of 126.

- 12 -

nh


i

tên

ng


Header Page 13 of 126.

ng
PDA ( Personal Digital Thi t b
Assistant )

n t

h

cá nhân, giúp ng
ng l u tr

tr
i s

các thông

tin cá nhân, công vi c
n thi t c ng nh

các


ph n m m t i thi u trên
t thi t b nh g n
Pocket PC

Khái ni m này có th
dùng

ch :
+ H

u hành

nhúng Pocket PC do
Microsoft phát tri n
a trên nhân c a H
u hành Windows
CE
+ Các

thi t

PDA s d ng h

b
u

hành Pocket PC
Edge


it

ng c nh trong mô Trong bài, Edge t

hình Topology

ng v i
i Edge, hay

ng. Khi nh c
ng có th

hi u ngh a nh nhau.

Footer Page 13 of 126.

- 13 -

ng


Header Page 14 of 126.

Region

it

ây không

ng vùng


c p

n

qu n huy n nh ng có th
hi u Region là qu n huy n.

ID

nh danh c a

it

ng

Trong bài không nh c t i
tên

ng, qu n huy n mà

ch nh c t i ID vì c s d
li u không

thông tin tên

ng. Và khi nh c t i tên
a

i t


hi u là ID.

Footer Page 14 of 126.

- 14 -

ng b t k

thì


Header Page 15 of 126.

NG 1 : Hi n tr ng và yêu c u

CH

Hi n tr ng:

1.1

Trên th gi i hi n nay ã có nhi u ph n m m gi i quy t các bài toán v
n

giao thông nh : RouteSmart, BusStops, Arclogistics, Routronic 2000,

DynaRoute… Vi t Nam nói riêng c ng có m t s công ty nh DolSoft, Hài
Hoà, … ã có m t s s n ph m v GIS nh Street Finder, SmartMap…. Các
n ph m trên a ph n s d ng c s d li u


c t ch c trên các h qu n

tr c s d li u quan h ho c t t o. Tuy nhiên v n có v n
1.Chi phí c a càc h qu n tr c s d li u th

c

t ra:

ng m i n u có dùng.

2.S khó kh n và có khi là “r c r i” trong cách l p trình giao ti p v i các
s d li u ph c t p có nhi u b ng, quan h …
Th t ra, hai v n

trên có th

ng h qu n tr c s d li u h

c gi i quy t t
ng

PERST là m t h c s d li u t

it
ng

ng


i t t b ng cách s

ng PERST (mã ngu n m ).
i nh (so v i các h c s d li u

khác) v i ph n lõi ch g m kho ng 5000 dòng mã. Yêu c u c u hình c a
PERST t
th

ng

ng th y
n h tr

i th p. H n n a, PERST c ng không c n
các h c s d li u. M c dù

y

n gi n nh v y nh ng PERST

tính ACID trong vi c th c hi n giao tác (transaction) và h

tr vi c ph c h i (recovery) t
Không ch d ng l i
tr

n “s qu n tr ”

ng


i nhanh khi h th ng g p s c .

ó mà PERST có h tr c vi c phát tri n trên môi

ng compact.NET framework nên có kh n ng phát tri n ng d ng trên

các thi t b di

Footer Page 15 of 126.

ng dùng WinCE hay PocketPC.

- 15 -


Header Page 16 of 126.

Vì v y, ta có th th y vi c dùng PERST
th ng thông tin

gi i quy t bài toán v qu n lý

a lý (GIS) là hoàn toàn kh thi.

Gi i quy t bài toán:

1.2

t trong các y u t quan tr ng quy t

t h th ng thông tin

nh s thành công hay th t b i c a

a lí là vi c l a ch n mô hình c u trúc d li u thích

p, cho phép l u tr và khai thác thông tin m t cách hi u qu . Và mô hình
Topology th hi n t t nh ng òi h i trên (Mô hình này s

c

c p sau

trong lu n v n). Vì d li u Topology trên PERST không có s n nên chúng ta
n xây d ng l i d li u theo mô hình Topology. D li u thô (d li u ngu n)
c dùng trong ng d ng này là các t p tin text.
Bài toán s
GIS,PERST và

Footer Page 16 of 126.

c gi i quy t ch y u b ng s ph i h p các ki n th c v
ho .

- 16 -


Header Page 17 of 126.

CH


ng quan v PERST

NG 2 :

Gi i thi u:

2.1

PERST là m t h c s d li u “nhúng” dành cho các ng d ng c n tính
ng l u tr . PERST
di n

h a

ng t

c thi t k dành riêng cho l p trình và không có giao

qu n tr . Vi c s d ng PERST khá

ng

i cao.

c

n gi n và

t


c hi u

m chính d th y nh t c a PERST là s tích h p

ch t ch c a PERST v i m t ngôn ng l p trình xác

nh. Hi n t i PERST

ch h tr cho 2 ngôn ng l p trình là Java và C#.
Không gi ng v i các h qu n tr c s d li u h
(OODBMSes), PERST không c n dùng


ng

ng và có t c
li u h

ng

m c

ng khác

n các b biên d ch hay các b ti n

c bi t khác. Nh v y, PERST có kh n ng cung c p

su t” trong l p trình


i t

c “tính trong

cao. Các hàm API c a PERST ti n l i, d s

cao. Có th l y ví d khi so sánh v i Ozone (m t h c s
i t

ng khác vi t b ng Java). V i gi i h n (benchmark)

007, PERST t o database nhanh g p 100 l n và th c hi n phép duy t qua các
it

ng trong c s d li u nhanh g p 10 l n so v i Ozone. Và khi so v i

t h c s d li u h

ng

it

ng th

ng m i khác là ObjectStore PSE

ng

i nh (so v i các h c s d li u


Pro, PERST nhanh h n g p 4 l n.
PERST là m t h c s d li u t

khác) v i ph n lõi ch g m kho ng 5000 dòng mã. Yêu c u c u hình c a
PERST t
th

ng

ng th y
n h tr

i th p. H n n a, PERST c ng không c n
các h c s d li u. M c dù

y

n gi n nh v y nh ng PERST

tính ACID trong vi c th c hi n giao tác (transaction) và h

tr vi c ph c h i (recovery) t

Footer Page 17 of 126.

n “s qu n tr ”

ng


- 17 -

i nhanh khi h th ng g p s c .


Header Page 18 of 126.

Có hai b n cài
n cài

t c a PERST, m t b ng ngôn ng Java và m t b ng C#.

t trên C#

c chuy n t Java dùng b chuy n

(m c dù ph i có nhi u thay
c dù b n cài

i c n th c hi n m i có

i Java sang C#

c b n hoàn ch nh).

t dùng C# h tr nhi u ki u “nguyên th y” h n (g m có

ki u s nguyên không d u và ki u li t kê (enum)) nh ng trong các ph

ng


di n khác, các tính n ng c a hai b n là nh nhau. Riêng PERST.NET có h
tr c vi c phát tri n trên môi tr
ng phát tri n

ng compact.NET framework nên có kh

ng d ng trên các thi t b di

ng dùng WinCE hay

PocketPC.

c tính:

2.2

Trong ph n này chúng ta s

i vào các tính ch t quan tr ng nh t c a

PERST. C th chúng ta s tìm hi u phiên b n cài
(g i t t là PERST.NET).

t trên môi tr

ng.NET

ây các tính ch t có t nguyên g c ti ng Anh s


c gi nguyên do không có t ti ng Vi t thay th ng n g n mà úng
ngh a..

2.2.1 Persistency by reachability:
Trong ng d ng dùng PERST, m i
p Persistent

it

ng c a các l p

u có kh n ng l u tr (persistent hay còn d ch là b n v ng).

t bây gi , ta s g i t t các
it

ng này

it

ng persistent khác và ph

ct

it

ng này là các

ng l u vào database khi nó
ng th c store c a


i. Có ngh a là ta không c n ph i g i tr c ti p, t
store c a m t

Footer Page 18 of 126.

c d n xu t t

it

ng khi mu n l u

- 18 -

it

ng ó.

it

ng persistent. Các
c tham chi u t m t

it

ng khác ó

ng minh ph

c


ng th c


Header Page 19 of 126.

Database có m t
ng duy nh t

it

ng

c truy xu t m t cách

Storage.getRoot). Còn các
cách bình th

c bi t g i là root.

i t

it

ng root này là

c bi t (dùng ph

ng persistent khác


ng: ho c truy xu t b ng tham chi u t các

nh trên ho c truy xu t b ng cách dùng các

it

i

ng th c

c truy xu t theo
it

ng persistent

ng bao ch a (container

class) nh Index,Link hay Relation. Không gi ng nh các h c s d li u
ng

it

ng khác, ch có th có duy nh t m t

it

ng root trong c s

li u.
PERST yêu c u m i l p persistent


u ph i d n xu t t l p Persistent. Có

ngh a là các l p “ngo i lai” (không d n xu t t l p Persistent) không th
c l u trong database.
không dùng

ây chính là cái giá ph i tr c a s

n các b biên d ch hay ti n x lý

n gi n và

c bi t. Và các thành ph n

a các l p persistent c ng b gi i h n trong các ki u sau:
Ki u vô h

ng (scalar type):

Bool, int, short, double, enum …
Ki u chu i: Ki u System.String.
Ki u ngày tháng: Ki u System.DateTime.
Ki u tham chi u

n các

it

ng persistent: các l p k th a t l p


Persistent hay các giao di n (interface) k th a t giao di n IPersistent.
Ki u giá tr (value type): Các ki u giá tr c a C#. Các giá tr này
c l u tr c ti p trong

it

ng ch a chúng.

Ki u d li u nh phân thô: Các l p c a C# k th a t giao di n
IPersistent hay t giao di n IValue và
ch Serialization chu n s

Footer Page 19 of 126.

c dùng

- 19 -

c ánh d u là Serializable. C
óng gói d li u c a các

i


Header Page 20 of 126.

ng thành các m ng byte và l u chúng vào database. Các l p này s
c ánh d u là Serializable và không
it


c ch a các tham chi u

n các

ng persistent khác.
Ki u m ng: Các m ng m t chi u v i thành ph n là các ki u d li u

c nêu trên.
Ki u Link:

i di n cho quan h m t-nhi u trong mô hình c s d

li u. Hay nhìn theo góc
it

l p trình ây chính là ki u m ng

ng persistent.

Có m t v n

là PERST không t bi t

persistent nào ó ã có thay
c

ng ch a các

c r ng li u m t


it

ng

i gì ch a trong quá trình làm vi c. Mu n bi t

u ó ch có cách là ta t so sánh t ng field c a tr ng thái c và m i

i nhau. Nh ng nh v y chi phí r t cao. Vì th nên trong PERST, l p trình
viên hoàn toàn ch u trách nhi m v vi c l u
Có hai cách trong PERST

it

ng nào vào c s d li u.

ta có th l u m t

it

ng vào c s d

li u:
Cách th nh t là dùng ph
cg ib i

it

ng th c Persistent.Store. Ph


ng nào s l u b n thân

it

ng

c tham chi u t nó m t cách tr c ti p hay không tr c ti p mà ch a

c

u. Có ngh a là n u ta g i ph
t cây thì l n l

t t t c các

it

ng th c này khi

ng th c Store này
it

ng ó và các

iv i

ng c a cây này s

it


ng g c c a

c l u xu ng b

nh ph .
Cách th hai là dùng ph
ánh d u các

it

ng r ng chúng ã b thay

vào database. Cách này

Footer Page 20 of 126.

ng th c Persistent.Modify: Ph

c bi t h u d ng khi

- 20 -

ng th c này ch

i ch không l u ngay l p t c
it

ng


c thay

i nhi u


Header Page 21 of 126.

n trong m t giao tác. Lúc ó, thao tác ghi

a ch ph i th c hi n m t l n

vào cu i giao tác, t ng hi u su t lên áng k .

2.2.2
Nh


ã

Semi transparent object loading:
c p

trên, PERST không dùng b t c b biên d ch hay ti n x

c bi t nào. Và vì C# không cung c p thông tin v các tr ng thái

(behavior) hay s thay

i tr ng thái các


(runtime) nên không th cài
su t” (transparent)

ng trong th i gian th c thi

t c c u l u tr c a PERST hoàn toàn “trong

c (ngh a là không th truy xu t các

u tr và không
phân bi t

it

c l u tr ). Thay cho s cài

it

ng

di n

c

IPersistent

recursiveLoading. Ph

cung


c l u tr hay

t “trong su t” hoàn toàn, PERST ã

g ng cung c p s “trong su t” trong a ph n các tr
Giao

ng

c l u tr m t cách hoàn toàn gi ng nhau vì ta không th

c khi nào ta ang truy xu t vào

không

it

ng h p.

c p

cho

chúng

ng th c này m c

nh

c cài


ta

ph

ng

th c

t b ng cách tr v

(return) giá tr true. Có ngh a là PERST s load (vào b nh chính) m t cách
quy các

it

ng

c tham chi u t m t

it

ng ngu n khi

it

ng

ngu n này


c load. Có ngh a là c ch này s gây ra vi c load ng m

nh

toàn b các

it

ng vào b nh chính. C ch này t

ng t cách làm vi c

a c ch “chu i hóa” (serialization).
tránh v n
(do c
ph

tràn b nh x y ra khi load

ng lên b nh chính

ch recursiveLoading gây ra), chúng ta ph i quá t i (overload)

ng th c recursiveLoading trong m t vài l p b ng cách tr v (return)

giá tr false trong hàm. Các

it

thu c các l p ã nói trên s không


Footer Page 21 of 126.

it

- 21 -

ng

c tham chi u t các

c load ng m

i t

ng

nh n a mà ph i

c


Header Page 22 of 126.

load m t cách t
ng ph

ng minh b ng ph

ng th c Persistent.Load. V y ta th y


ng th c recursiveLoading có th dùng

load các

it

u khi n cách th c

ng t b nh ph vào b nh chính.

u ý r ng các

it

ng dùng

”ch a” các

class) nh Link,Relation,Index… ch load các

it

it

ng khác (container

ng mà nó ch a khi c n

thi t, không load t t c theo c ch recusiveLoading. Ngoài ra, vi c truy xu t

các

i t

ph

ng thành ph n c a m t l p ki u container

u thông qua các

ng th c c a nó.
PERST dùng ph

ob

c ban

ng th c kh i t o m c

u các

it

ng

nh (không có tham s )

c load t b nh ph .

kh i


u này có ngh a

là:
1.M i l p có kh n ng l u tr
ph

ng th c kh i t o m c

c (persistent capable class)

nh (ho c là không có ph

khi ó trình biên d ch s t t o ra cho ta). Ph
truy xu t có th
2.Ph

ng

ng th c kh i t o nào,

ng th c này có th có m i t m

c (public, private,protected … ).

ng th c kh i t o ch kh i t o nh ng thành ph n không b n v ng,

không c n l u tr (transient) c a
3.Ph


u nên có

ng th c kh i t o m c

it

ng.

nh dùng

t o nh ng th hi n c a các

c load t b nh ph . V y t i th i

nh ho t

ng các thành ph n c a

it

m ph

ng ch a

i

ng th c kh i t o m c
c gán các giá tr

u tr trong b nh ph . N u ta mu n các thành ph n này c ng


c
c kh i

o nh các thành ph n transient nói trên, ta c n kh i t o chúng trong hàm
OnLoad,

c g i ngay khi các giá tr trong b nh ph

nh chính.

Footer Page 22 of 126.

- 22 -

c load lên b


Header Page 23 of 126.

Tóm l i, các c ch trên cho chúng ta s thu n ti n, d dàng và m m d o
trong l p trình, vì nó không yêu c u l p trình viên ph i load t
it

ng minh các

ng trong khi v n cho phép vi c này, nói cách khác là PERST h tr

p trình viên trong vi c ki m soát vi c load các
“ch a” các


it

ng khác là ph i load t

ch a (vì các l p này
recursiveLoading

2.2.3

ã m c

it

ng. Ch có các l p

ng minh các

nh

it

c overload ph

ng th c

có giá tr tr v (return) false).

Automatic scheme evaluation


PERST h tr “lazy automatic scheme evaluation”. Khi
t l p b thay

i (thay

iv s l

nh d ng m i. N u

it

n ph i l u, nó s

cl ud

i

nh ngh a c a

ng bi n thành viên, thay

a bi n thành viên…), PERST s chuy n các

ki u thay

ng mà nó

it

ng ã


ng ó trong quá trình ho t

i v ki u
c load sang

ng có thay

i và

i d ng m i. PERST có kh n ng h tr các

nh d ng sau:

1.Các thay
ng (thay

i “t

ng thích” l n nhau gi a các ki u d

i mà không c t b t d li u). Ví d nh thay

sang float hay int sang long,… nh ng ng
2.Thay

c l i thì không

li u vô


i t ki u int
c.

i th t các thành ph n trong l p hay thêm, b t các thành

ph n trong l p này vào l p cha hay l p d n x t c a nó.
3.Thêm vào hay b l p kh i cây th a k c a l p.
4.Thay

i

nh d ng c a l p b ng cách thay

i ý ngh a c a các

giá tr .
i thay
không t

Footer Page 23 of 126.

i khác trong c u trúc l p (

ng thích

i tên cho thành ph n, chuy n ki u

i v i các thành ph n…)

- 23 -


u không

c qu n lý b i c


Header Page 24 of 126.

ch thay

i c u trúc d li u t

ng c a PERST. Trong các tr

ng h p này

ta có th dùng c ch xu t nh p b ng XML c a PERST. C s d li u có th
c xu t ra d ng XML b ng cách dùng ph
o l i c s d li u theo

ng th c Storage.exportXML,

nh d ng m i r i nh p d li u vào b ng ph

ng

th c Storage.importXML c a PERST.

2.2.4


Relation:

i quan h m t-m t gi a các

it

ng trong c s d li u

ng tham chi u (references) trong C#. Nh ng trong nhi u tr
ta c n

ng h p này. Giao di n này

a ra

ng th c thêm, xóa, tìm ki m… các thành ph n c a m t “b ”

(relation) các
có th
ng

ng h p chúng

n quan h m t-nhi u hay quan h nhi u-nhi u. PERST cung c p

giao di n (interface) Link dùng cho các tr
các ph

c th hi n


it

ng persistent. Các thành ph n c a “b ” (relation) này

c truy xu t b ng index hay ta có th chuy n chúng thành m t
it

ng r i m i truy xu t.

T p h p (relation) có 2 d ng:
1. D ng “nhúng” (embedded relation): Các tham chi u
ng t m t
2. D ng

n các

i

c l p (standalone relation): Khi ó relation là m t

i

it

ng

c ch a trong chính

ng riêng bi t, ch a các tham chi u
C hai d ng trên

relation

u cài

it

ng ó.

ng.

t giao di n Link. C th Embedded

c t o b ng cách dùng ph

Standalone relation thì dùng ph

n các

it

ng th c Storage.createLink, còn

ng th c Storage.createRelation.

B ng sau ây minh h a các m i quan h gi a 2 l p A và B:

Footer Page 24 of 126.

- 24 -



Header Page 25 of 126.

Ki u quan h

Object A

Object B

t-m t

B bref;

A aref;

t-nhi u

Link bref;

A aref;

Nhi u-m t

B bref;

Link aref;

Nhi u-nhi u

Link bref;


Link aref;

ng 2.2.4-1 Các m i quan h gi a 2 l p A va B

2.2.5

Index:

Thông th

ng

it

ng

c truy xu t t m t

it

ng khác b ng tham

chi u hay b ng Link nh trên. Tuy nhiên, chúng ta c ng c n truy xu t các
ng thông qua khóa. Trong môi tr
cho vi c truy xu t theo khóa này.
ng theo khóa d nhiên là t

ng


i

ng.NET, l p Hashtable là m t ví d
i v i c s d li u, vi c truy xu t

i ph c t p. Và vi c cài

i

t trong PERST

n m t ch c n ng d ch các câu truy v n SQL là không kh thi vì nó s làm
cho PERST phình to ra và ch m i. Tuy nhiên trong ph n l n tr
các ng d ng ch th c hi n các l nh truy v n d li u t

ng

i

ng h p,

n gi n nh

tìm theo m t khóa chính xác hay trong m t kho ng giá tr nào ó. Trong
PERST vi c này

c th c hi n b ng cách cài

t các giao di n (interface)


Index và FieldIndex. Giao di n Index dùng cho các khóa
tr t

ng ng c a khóa ó. Còn giao di n FieldIndex thì dùng

cho các
Index

it

ng v i khóa chính là m t thành ph n c a
c t o trong PERST b ng ph

i Index hay Storage.createFieldIndex
cách cài

Footer Page 25 of 126.

c l p và các giá

it

ng.

ng th c Storage.createIndex

i

i v i FieldIndex. Có th có vài


t Index nh ng hi n t i PERST ch dùng B+Tree

- 25 -

l p index

cài

t


×