1. Trang chủ
  2. » Kinh Doanh - Tiếp Thị

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

138 254 0

Đ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,56 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Là m t công ngha trên máy tính xây Thông tin phi không gian thông tin thu c tính... 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 PocketPC...

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 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 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 , 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 2005Nguy n Th Lý – 0112187Nguy n Sao K - 0112186

Header Page 3 of 126.

Trang 4

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

Header Page 4 of 126.

Trang 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

Header Page 5 of 126.

Trang 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

Header Page 6 of 126.

Trang 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

Header Page 7 of 126.

Trang 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

Header Page 8 of 126.

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

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

Header Page 9 of 126.

Trang 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

Header Page 10 of 126.

Trang 12

Information System ) lý Là m t công ngh

a trên máy tính xây

Thông tin phi không gian

( thông tin thu c tính )

Trang 13

a trên nhân c a H

u hành WindowsCE

Trang 14

Region i t ng vùng ây không c p n

Trang 15

CH NG 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 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àiHoà, … ã có m t s s n ph m v GIS nh Street Finder, SmartMap… Các

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

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

Header Page 15 of 126.

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

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

Header Page 16 of 126.

Trang 17

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#

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

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

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 ukhá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

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

Header Page 17 of 126.

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

PocketPC

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

Header Page 18 of 126.

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

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

Header Page 19 of 126.

Trang 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

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)

Header Page 21 of 126.

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

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

Header Page 22 of 126.

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

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

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

Header Page 23 of 126.

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

ng tham chi u (references) trong C# Nh ng trong nhi u tr ng h p chúng

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

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

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

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

Header Page 24 of 126.

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 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à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.createFieldIndex i v i FieldIndex Có th có vài

Header Page 25 of 126.

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

Header Page 26 of 126.

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 i from 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 hay

ki u thamchi u

B+Tree Storage.CreateIndex

Ki u vông,

B+Tree Storage.CreateThinkI

ndex

Header Page 27 of 126.

Trang 28

p có khóa trùng chu i hay

ki u thamchi u

Storage.CreateScalableSet

Header Page 28 of 126.

Trang 29

R-Tree Storage.CreateSpatialI

ndexR2

SortedCollection

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

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

Header Page 29 of 126.

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

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 ng

t 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

Header Page 30 of 126.

Trang 31

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

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

Header Page 31 of 126.

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 c

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

Header Page 32 of 126.

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 t

ch 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 ng

i ú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ù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 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

Header Page 34 of 126.

Trang 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

(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 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 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ó th

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

Header Page 35 of 126.

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

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

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 c

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

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:

Header Page 36 of 126.

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

tr , 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 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)

Header Page 37 of 126.

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 u

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

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

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

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

Header Page 39 of 126.

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

(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

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

cnh

Mô t

dbDefaultInitTindexSize

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

Header Page 40 of 126.

Ngày đăng: 18/05/2017, 15:26

HÌNH ẢNH LIÊN QUAN

Hình 3.4-2 Quan h  Topology c p 1 và 2Header Page 57 of 126. - Ung dung phan mem ma nguon mo he quan tri CSDL huong doi tuo
Hình 3.4 2 Quan h Topology c p 1 và 2Header Page 57 of 126 (Trang 57)
Hình 3.4-3 Quan h  Topology c p 3Header Page 58 of 126. - Ung dung phan mem ma nguon mo he quan tri CSDL huong doi tuo
Hình 3.4 3 Quan h Topology c p 3Header Page 58 of 126 (Trang 58)
Hình 4.5.5-1 R+-Tree - Ung dung phan mem ma nguon mo he quan tri CSDL huong doi tuo
Hình 4.5.5 1 R+-Tree (Trang 71)
Hình 5.1-1 H  phân c p các ki u d  li u hình h c c a OpenGIS. - Ung dung phan mem ma nguon mo he quan tri CSDL huong doi tuo
Hình 5.1 1 H phân c p các ki u d li u hình h c c a OpenGIS (Trang 76)
Hình 7.2.1-1 S  s  d ng t ng quátHeader Page 96 of 126. - Ung dung phan mem ma nguon mo he quan tri CSDL huong doi tuo
Hình 7.2.1 1 S s d ng t ng quátHeader Page 96 of 126 (Trang 96)
Hình 7.2.3.2-1 S  l p d  li u 7.2.3.3  S  l p v : - Ung dung phan mem ma nguon mo he quan tri CSDL huong doi tuo
Hình 7.2.3.2 1 S l p d li u 7.2.3.3 S l p v : (Trang 103)
Hình 7.2.3.4-1 S  s  ki n - Ung dung phan mem ma nguon mo he quan tri CSDL huong doi tuo
Hình 7.2.3.4 1 S s ki n (Trang 104)
Hình 7.2.5-1 Sequense Diagram: Hi n th  b n - Ung dung phan mem ma nguon mo he quan tri CSDL huong doi tuo
Hình 7.2.5 1 Sequense Diagram: Hi n th b n (Trang 112)
Hình 7.2.5-2 Collabration Diagram: Hi n th  b n - Ung dung phan mem ma nguon mo he quan tri CSDL huong doi tuo
Hình 7.2.5 2 Collabration Diagram: Hi n th b n (Trang 113)
Hình 7.2.5-5 Sequence Diagram: Tìm EdgeHeader Page 115 of 126. - Ung dung phan mem ma nguon mo he quan tri CSDL huong doi tuo
Hình 7.2.5 5 Sequence Diagram: Tìm EdgeHeader Page 115 of 126 (Trang 115)
Hình 7.2.5-7 Sequence Diagram: Tìm chu trình t i  uHeader Page 117 of 126. - Ung dung phan mem ma nguon mo he quan tri CSDL huong doi tuo
Hình 7.2.5 7 Sequence Diagram: Tìm chu trình t i uHeader Page 117 of 126 (Trang 117)
Hình 7.2.5-9 Sequence Diagram: D ch chuy n vùng nhìnHeader Page 119 of 126. - Ung dung phan mem ma nguon mo he quan tri CSDL huong doi tuo
Hình 7.2.5 9 Sequence Diagram: D ch chuy n vùng nhìnHeader Page 119 of 126 (Trang 119)
Hình 7.2.5-10 Collabrotion Diagram: Di chuy n vùng nhìn - Ung dung phan mem ma nguon mo he quan tri CSDL huong doi tuo
Hình 7.2.5 10 Collabrotion Diagram: Di chuy n vùng nhìn (Trang 120)
Hình 7.2.5-15 Sequence Diagram: Tìm giao l - Ung dung phan mem ma nguon mo he quan tri CSDL huong doi tuo
Hình 7.2.5 15 Sequence Diagram: Tìm giao l (Trang 123)
Hình 7.3.1-1 Khung nhìn t ng quát v  giao di n - Ung dung phan mem ma nguon mo he quan tri CSDL huong doi tuo
Hình 7.3.1 1 Khung nhìn t ng quát v giao di n (Trang 124)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w