1. Trang chủ
  2. » Luận Văn - Báo Cáo

Quản lý hệ thống thông tin địa lý thành phố Hồ Chí Minh

138 389 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 138
Dung lượng 1,51 MB

Nội dung

Quản lý hệ thống thông tin địa lý thành phố Hồ Chí Minh

Trang 2

TRNG I H C KHOA H C T NHIÊNKHOA CÔNG NGH THÔNG TIN

MÔN CÔNG NGH PH N M Me&f

Trang 3

I C M N

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 tnghi p này.

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 ngy, 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 ncho 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 , traoi 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à khng cho phép nh ng ch c ch n s không tránh kh i nh ng sai sót Chúngem 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 2005Nguy n Th Lý – 0112187

Nguy n Sao K - 0112186

Trang 4

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à ngng 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ìnhtr 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

Trang 5

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

Trang 6

3.5 MBR – Minimum Bounding Rectangle: 59

CHNG 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.7 ng d ng GIS trên PocketPC: 73

CHNG 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

Trang 7

7.3.1 Giao di n trên Desktop: 124

7.3.2 Giao di n trên PocketPC: 131

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

Trang 8

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.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

Trang 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

Trang 11

T S KHÁI NI M, THU T NG VÀ T VI T T T

OODBMS Oriented DatabaseManagement System)

Trang 12

Information System ) lý Là m t công ngha trên máy tính xâyng b n , phân tích

n t i và các s ki ny ra trên trái t.

m liên quan n hìnhng, v trí, quan h c acác i t ng a lý.

c Ví d nhnh ng vùng nào ki m t vùng xácnh.

Thông tin phi không gian( thông tin thu c tính )

m liên quan n th ngkê, thông tin s , thôngtin c tr ng gán cho

ph , dân s …

Trang 13

u hành WindowsCE

Trang 14

Region i t ng vùng ây không c p nqu n huy n nh ng có thhi u Region là qu n huy n.

tên ng, qu n huy n màch nh c t i ID vì c s dli u không thông tin tên

ng Và khi nh c t i têna i t ng b t k thìhi u là ID.

Trang 15

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

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 vn 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àiHoà, … ã có m t s s n ph m v GIS nh Street Finder, SmartMap… Cácn 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 ntr c s d li u quan h ho c t t o Tuy nhiên v n có v n c t ra:

th ng th y các h c s d li u M c dù n gi n nh v y nh ng PERSTn h tr y tính ACID trong vi c th c hi n giao tác (transaction) và htr 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

các thi t b di ng dùng WinCE hay PocketPC.

Trang 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.

t trong các y u t quan tr ng quy t nh s thành công hay th t b i c at 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íchp, cho phép l u tr và khai thác thông tin m t cách hi u qu Và mô hình

trong lu n v n) Vì d li u Topology trên PERST không có s n nên chúng tan 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.

Trang 17

CHNG 2 :ng quan v PERST

PERST là m t h c s d li u “nhúng” dành cho các ng d ng c n tínhng l u tr PERST c thi t k dành riêng cho l p trình và không có giao

lý c bi t khác Nh v y, PERST có kh n ng cung c p c “tính trongsu 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

th ng th y các h c s d li u M c dù n gi n nh v y nh ng PERSTn h tr y tính ACID trong vi c th c hi n giao tác (transaction) và htr vi c ph c h i (recovery) t ng i nhanh khi h th ng g p s c

Trang 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#.

(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 ngdi n khác, các tính n ng c a hai b n là nh nhau Riêng PERST.NET có htr c vi c phát tri n trên môi tr ng compact.NET framework nên có kh

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à úngngh a

p Persistentu 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 Có ngh a là ta không c n ph i g i tr c ti p, t ng minh ph ng th c

Trang 19

Database có m t i t ng c bi t g i là root i t ng root này là i

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 (containerclass) 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

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):

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àyc 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

Trang 20

ng thành các m ng byte và l u chúng vào database Các l p này sc ánh d u là Serializable và không c ch a các tham chi u n cáci 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 uc nêu trên.

Ki u Link: i di n cho quan h m t-nhi u trong mô hình c s dli 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 u ó ch có cách là ta t so sánh t ng field c a tr ng thái c và m ii nhau Nh ng nh v y chi phí r t cao Vì th nên trong PERST, l p trìnhviê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.

Trang 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 nvào cu i giao tác, t ng hi u su t lên áng k

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

(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

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

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.

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

ngu n này c load Có ngh a là c ch này s gây ra vi c load ng m nhtoà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

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

Trang 22

load m t cách t ng minh b ng ph ng th c Persistent.Load V y ta th y

load các i t ng t b nh ph vào b nh chính.

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

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 mtruy xu t có th c (public, private,protected … ).

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

nh chính.

Trang 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 otrong 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áci t ng trong khi v n cho phép vi c này, nói cách khác là PERST h trp 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

PERST h tr “lazy automatic scheme evaluation” Khi nh ngh a c at l p b thay i (thay i v s l ng bi n thành viên, thay i v ki u

ki u thay i nh d ng sau:

ng (thay i mà không c t b t d li u) Ví d nh thay i t ki u intsang 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ànhph 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ácgiá 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

Trang 24

ch thay i c u trúc d li u t ng c a PERST Trong các tr ng h p nàyta có th dùng c ch xu t nh p b ng XML c a PERST C s d li u có th

giao di n (interface) Link dùng cho các tr ng h p này Giao di n này a ra

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

Trang 25

Ki u quan h Object A Object B

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

chi u hay b ng Link nh trên Tuy nhiên, chúng ta c ng c n truy xu t các ing 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 ing theo khóa d nhiên là t ng i ph c t p Và vi c cài t trong PERSTn 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àmcho 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 nhtìm theo m t khóa chính xác hay trong m t kho ng giá tr nào ó TrongPERST vi c này c th c hi n b ng cách cài t các giao di n (interface)

tr t ng ng c a khóa ó Còn giao di n FieldIndex thì dùng l p indexcho các i t ng v i khóa chính là m t thành ph n c a i t ng.

i Index hay Storage.createFieldIndexi v i FieldIndex Có th có vài

Trang 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

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:

này nên là khóa duy nh t c a i t ng.

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 theochi u t ng c a khóa.

Trang 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 ifrom và till Ta có th duy t qua IEnumerator này v i chi u khóa t ng hay

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

(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

u trúc RTree c a Guttman v i thu t toán “quadratic split” khá hi u qu

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 :

Ki u vông,chu i hayki u thamchi u.

B+Tree Storage.CreateIndex

Ki u vông,

B+Tree Storage.CreateThinkIndex

Trang 28

p có khóa trùng chu i hayki u thamhi u.

FieldIndex Index v i khóa làt trong các

p Index.

Ki u vông,chu i hayki u thamchi u.

B+Tree Storage.CreateFieldIndex

khóa cógiá tr nhphân.

ng cókh n ng

u tr

B+Tree Storage.CreaateBitIndex

ng có kh n ngu tr

B+Tree Storage.CreateSet

ng có kh n ng

p này có kh n ngco giãn, có th qu n

u tr

Linkho cB+Tree

Storage.CreateScalableSet

Trang 29

Index dành cho dli u không gian.

Index dành cho dli u không giannh ng có t a th c.

R-Tree Storage.CreateSpatialIndexR2

Index v i phép Toán

dùng nh ngh a.

i ki u T-Tree Storage.CreateStorageCollection

ng 2.2.5-1 Các ki u Index c PERST h tr :

ây ta không nh ngh a l i chính xác giao tác là gì mà ch n gi nhì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 chi n toàn b các l nh ó ho c là không l nh nào c th c hi n c PERSTcung c p tính n ng b o v s nh t quán c a d li u trong tr ng h p hth 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

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 trongquá trình th c hi n giao tác c ghi vào b nh ph ng b (Asynchronous

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

Trang 30

i v i các a hi n i là kho ng 10ms, ngh a là ch kho ng 100 thao tácnh v trong 1 giây Thêm vào ó các giao tác th ng ch a các thao tácupdate kho ng vài trang c s d li u nên trung bình ch còn kho ng 10 giaotá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 nnhi 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

trong giao tác ó thì c ng ch có m t b n copy c a i t ng c t o ra.

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 ctrà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

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 ngt i nhi u s thay i ã th c hi n c trong giao tác n u giao tác h nghay h th ng g p s c Trong các tr ng h p nh v y, d li u v n m b otính nh t quán (consistency) nh ng các thao tác thay i c s d li u tronggiao tác ó u m t.

Trang 31

2.3Transparent 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

mà còn cho các h th ng d a trên giao th c metaobject (metaobject

cài t giao di n “trong su t” (transparent) cho c s d li u h ng ing này, ngh a là vi c thao tác trên các i t ng persistent hoàn toàn bình

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 truyxu t public c a i t ng.

Trang 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.

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ácthu 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 cnh nh t nh không ph i lo n chuy n quá t i hàm recursiveLoading, hay

a riêng nó:

(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 ctính, nên vi c l p trình s n ng n h n.

bình th ng Ta ph i dùng ph ng th c IStorage.CreateClass dùng t op 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àmkh 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 nhnà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

load t b nh ph ).

Trang 33

3.Ta c ng không th có thành ph n c a i t ng là m ng các tham

4.S phát sinh l p bao b c nh v y có chi phí cao, làm gi m hi u su tch ng trình n u có nhi u l p.

th i gian th c thi (runtime).

ch s trong m ng các a ch (offset) c a các i t ng trong database.

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à

hai m ng này và có m t bi n ch nh (indicator) âu là m ng “hi n hành”

Trang 34

nguyên tr ng PERST s ánh d u trong trang Bitmap c a m ng ch m c i

Lúc giao tác (transaction) c hoàn t t và l nh commit c th c hi n,

ng hay không N u có, PERST c ng s t ng kích th c cho m ng ch m c

khi giao tác commit vì nh v y có th PERST s c p phát cho các i t ngi úng các vùng nh ó, trong khi chúng ta mu n các i t ng g c ch a

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

trang Bitmap này c ng òi h i vùng nh , và ta có th c ng dùng các vùngnh 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 mtí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 utrên chính là lý do t i sao vi c gi i phóng vùng nh trong PERST c chia

u v c p phát b nh nào c phép phát sinh.

Trang 35

Sau khi gi i phóng các vùng nh thu c v các i t ng g c, PERST sng lo t ghi các trang b thay i lên a ng b thông tin trên b nh

(indicator) ch ra m ng ch m c i t ng hi n t i trong database thành giá

“bóng” s tr thành m ng hi n t i Ti p theo m t l n n a PERST s ghi trangch a header b thay i c a database lên a, chuy n database sang tr ng tháinh t quán m i Cu i cùng PERST s copy t t c các m c qu n i t ng bthay i t m ng ch m c i t ng “bóng” (tr c ây là hi n t i) sang m ng

i dung c a c hai m ng ch m c i t ng ã ng nh t và PERST có tht 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 commitgiao tác Không ph i t t c m ng ch m c c copy mà ch có các trang b

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

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ó

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 giaotác.

freehandle list Header c a list c ng c copy và c hai b n c a header này

Trang 36

cùng c l u trên header c a database S chuy n qua l i gi a hai b n nàyc th c hi n t ng t nh vi c chuy n qua l i gi a hai m ng ch m c i

c c p phát thêm M ng ch m c i t ng là th duy nh t trong c s dli 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”).

i t ng ã b xóa Các giá tr OID b t u t 1 c dùng cho các trangBitmap 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 cn v vùng nh c p phát (allocation quantum) 64 byte và 32K trang Bitmap

riêng cho các trang Bitmap trong m ng ch m c i t ng Các trang Bitmapc c p phát khi c n thi t khi mà kích th c database t ng lên Theo các sli 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

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:

Trang 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 ncó 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 nhnê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.

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 ngthao 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 utr , truy xu t, nh v các i t ng trong c s d li u thông qua tham chi uhay qua khóa thì PERST r t thích h p Trong các tr ng h p này PERST scó 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

có th c c u hình l i sao cho có th dùng ít b nh chính và ph khilàm vi c).

Trang 38

5.Hi u n ng cao (không có các chi phí cho vi c truy n thông, khóa, phântích cú pháp các câu SQL và th c hi n các câu truy v n).

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 umu n chúng ta ph i t thi t k m t server riêng, server này s nh n cácyêu c u t client r i tu n t truy xu t database r i m i g i k t qu v choclient).

Trang 39

c xác nh trong ph ng th c Storage.Open khi m database (giá tr m cnh c a thông s này là 4Mb) Thông th ng t ng kích th c page pool sng 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.

ng file buffer V y d li u th t s c cache hai l n Tuy nhiên vi ctruy xu t d li u t page pool s nhanh h n do không ph i có các l nh g ihà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 (giaovi c cache data toàn b cho h u hành) c ng không th vì s gây ra l i.

page pool Có ngh a là page pool ph i c thi t l p cho l n có thch a c các trang này Vì v y, không nên t o page pool có kích th cbé 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

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.

Trang 40

Có ngh a là l n l t m i trang s c cache và hi n di n trong b nh

u ý r ng kích th c database trong b nh chính s l n h n trên b nhph vì các i t ng s t n t i trong b nh chính d i c hai d ng: 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), khng l u tr là không c n thi t nh ng các l p bao ch a (container class) c a

Trong tr ng h p này ta s dùng cài t NullFile c a interface IFile cùng v i

nh chính Data trong tr ng h p này s không ph i ghi vào b nh ph

mu n thay i các thông s này, ta s ph i biên d ch l i PERST.

Mô t

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

Ngày đăng: 14/11/2012, 10:35

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w