1 關(guān)于土地信息

            用關(guān)系數(shù)據(jù)庫與空間數(shù)據(jù)庫協(xié)同管理土地數(shù)據(jù),是近年來土地信息系統(tǒng)的分布式處理的常用方法之一,其分布式實現(xiàn)主要依賴于關(guān)系數(shù)據(jù)庫(如Oracle)所提供的分布式功能。

            本文將詳細(xì)闡述土地信息系統(tǒng)中基于Oracle的關(guān)系數(shù)據(jù)庫分布式設(shè)計及空間數(shù)據(jù)分布式處理的實現(xiàn)。

            2 Oracle系統(tǒng)的分布式設(shè)計技術(shù)

            2.1 分布式Oracle系統(tǒng)構(gòu)架

            分布式Oracle系統(tǒng)是由分布式數(shù)據(jù)庫管理系統(tǒng)(Oracle Rdbms)、支持多種操作系統(tǒng)和通信協(xié)議的分布式處理環(huán)境軟件SQL*NET、以及與非Oracle Rdbms聯(lián)接的軟件SQL*CONNECT組成的一個軟件群[2]。其中,Oracle Rdbms的分布式功能主要包括分布式查詢、單點事務(wù)、多個事務(wù)中多點更新及結(jié)點自治等;SQL*NET提供不同Oracle數(shù)據(jù)庫間的連接功能;SQL*CONNECT是實現(xiàn)Oracle與其它DBMS轉(zhuǎn)換的一個接口產(chǎn)品。

            2.2 SQL*NET

            SQL*NET是Oracle分布式處理的基礎(chǔ),其體系結(jié)構(gòu)如圖1所示。通過SQL*NET,一個應(yīng)用程序可以并行存取本地或遠(yuǎn)程的多個數(shù)據(jù)庫。當(dāng)存取遠(yuǎn)程數(shù)據(jù)庫時,在客戶端,SQL*NET將來自用戶程序接口(UPI)層的子程序調(diào)用(SQL語句)組裝成信息報文,經(jīng)過異種機(jī)環(huán)境所需要的數(shù)據(jù)轉(zhuǎn)換后,通過網(wǎng)絡(luò)將報文發(fā)送給遠(yuǎn)程計算機(jī);在服務(wù)器端,SQL*NET接受報文,作必要的數(shù)據(jù)轉(zhuǎn)換,并將子程序調(diào)用參數(shù)傳送到適當(dāng)?shù)腛racle核心入口點,在相反方向上服務(wù)器端驅(qū)動SQL*NET傳送的是數(shù)據(jù)和返回碼信息[1]。

           
          圖1 SQL*NET體系結(jié)構(gòu)

            2.3 各類數(shù)據(jù)庫對象

            Oracle中與分布式處理有關(guān)的數(shù)據(jù)庫對象主要有:數(shù)據(jù)庫鏈路、視圖、快照、同義詞等。其中,數(shù)據(jù)庫鏈路用于連接本地結(jié)點和遠(yuǎn)程結(jié)點之間的數(shù)據(jù)庫;數(shù)據(jù)快照是Oracle系統(tǒng)提供的一種對數(shù)據(jù)表的異步復(fù)制,它有以下兩種作用:數(shù)據(jù)快照是遠(yuǎn)程數(shù)據(jù)表在本地的復(fù)制,通過它可以實現(xiàn)對遠(yuǎn)程數(shù)據(jù)的快速查詢;在系統(tǒng)或網(wǎng)絡(luò)出現(xiàn)故障時,可以通過數(shù)據(jù)快照恢復(fù)數(shù)據(jù)。

            同義詞用來簡化一些繁瑣的表名或視圖名等。對于遠(yuǎn)程操作,用戶也可以為遠(yuǎn)程數(shù)據(jù)庫的表名或視圖名等建立相應(yīng)的同義詞,以后訪問這些遠(yuǎn)程數(shù)據(jù)庫的表或視圖就可以直接寫同義詞名,也就是說用戶在訪問數(shù)據(jù)時無須指明數(shù)據(jù)所在結(jié)點的名字,這就達(dá)到了透明訪問。例如,在某一結(jié)點訪問另一結(jié)點的數(shù)據(jù)表時需要命令:

            SELECT*FROM SUPDBA.EMPLOYEE@SUP—HQ;

            如果建立如下同義詞:

            CREATE PUBLIC SYNONYM EMPLOYEE FOR SUPDBA.EMPLOYEE@SUP—HQ;

            再訪問該遠(yuǎn)程表時就只需要命令:

            SELECT * FROM EMPLOYEE;

            2.4 分布式操作


            在數(shù)據(jù)庫鏈路定義以后,遠(yuǎn)程操作就變得非常簡單和方便。用戶訪問遠(yuǎn)程數(shù)據(jù)庫的表或視圖時,只要在表名或視圖名后面附上數(shù)據(jù)庫鏈路名即可通過SELECT或INSERT、UPDATE、DELETE等語句對數(shù)據(jù)進(jìn)行操作。其形式為:

            SELECT 列表達(dá)式[,列表達(dá)式,...]

            FROM 表名@數(shù)據(jù)庫鏈路名[,表名@數(shù)據(jù)庫鏈路名,...]

           ?。踂HERE 邏輯表達(dá)式];

            在訪問數(shù)據(jù)時,如果要訪問的數(shù)據(jù)來自同一個數(shù)據(jù)表,根據(jù)需要直接訪問該表或基于該表的視圖或快照;如果所要訪問的數(shù)據(jù)來自不同的數(shù)據(jù)表,可通過連接(JOIN)操作或相應(yīng)的視圖來實現(xiàn),視圖中各數(shù)據(jù)項的來源有以下幾種情況:

            來自同一數(shù)據(jù)庫中的一個表或多個表;

            來自同一結(jié)點不同數(shù)據(jù)庫中的兩個表或多個表;

            來自不同結(jié)點上數(shù)據(jù)庫中的兩個表或多個表。

            如果事先建立了有關(guān)視圖,用戶就可以直接訪問這些視圖以實現(xiàn)一些對數(shù)據(jù)的復(fù)雜訪問。

            3 數(shù)據(jù)庫分布式設(shè)計的基本步驟

            3.1 確定數(shù)據(jù)的物理位置


            在分布式數(shù)據(jù)庫環(huán)境中,對每一數(shù)據(jù)表都要首先確定其最佳的存放位置,從而使整體數(shù)據(jù)的分布更加合理。在這一過程中,需要考慮的因素主要有以下幾點:每一結(jié)點需傳遞的事務(wù)量;每一結(jié)點使用的數(shù)據(jù)量;網(wǎng)絡(luò)的性能與可靠性;各結(jié)點速度、磁盤容量;若結(jié)點間連接不通后的訪問規(guī)則;表間聯(lián)系對數(shù)據(jù)完整性的影響等。

            3.2 確定數(shù)據(jù)庫及其對象

            對每一存放數(shù)據(jù)的獨立結(jié)點都要建立至少一個數(shù)據(jù)庫,對于不同的應(yīng)用,在同一地點也可以建立多個數(shù)據(jù)庫。在每一數(shù)據(jù)庫中還要根據(jù)實際需求建立有關(guān)的數(shù)據(jù)庫對象,如Oracle中有關(guān)數(shù)據(jù)庫對象有Table、View、Snapshot、Synonym、DatabaseLink等。

            3.3 確定數(shù)據(jù)存取機(jī)制

            分布式數(shù)據(jù)庫的一大重要特點是數(shù)據(jù)訪問的透明性。在應(yīng)用系統(tǒng)中,不同的功能會需要訪問不同數(shù)據(jù)庫中的數(shù)據(jù)。為了達(dá)到數(shù)據(jù)訪問的透明性,在分布式數(shù)據(jù)庫設(shè)計時就需要確定如何存取其它數(shù)據(jù)庫中的數(shù)據(jù),如何實現(xiàn)不同數(shù)據(jù)庫中數(shù)據(jù)表的鏈接等規(guī)則。

            4 土地信息系統(tǒng)數(shù)據(jù)庫的設(shè)計

            深圳市土地管理信息系統(tǒng)(以下簡稱SZLIS)是一個面向深圳市規(guī)劃國土局土地管理業(yè)務(wù)的集成化分布式信息系統(tǒng)。由于該局行政上采用市局——分局——管理所三級運(yùn)作模式,土地管理業(yè)務(wù)分布在三級管理部門,因此SZLIS系統(tǒng)中的分布式處理至關(guān)重要。由于Oracle難以管理空間數(shù)據(jù),地理信息系統(tǒng)軟件ARC/INFO不支持分布式處理,故考慮二者結(jié)合來管理,即系統(tǒng)中非空間數(shù)據(jù)用Oracle管理,空間數(shù)據(jù)用ARC/INFO管理。

            4.1 SZLIS體系結(jié)構(gòu)


            SZLIS運(yùn)行在由七個局域子網(wǎng)構(gòu)成的廣域網(wǎng)上。七個局域網(wǎng)分別分布于深圳市規(guī)劃國土局市局和六個分局,管理所采用電話撥號上網(wǎng)連接到分局?jǐn)?shù)據(jù)庫中。系統(tǒng)在市局和六個分局的服務(wù)器中分別建立七個數(shù)據(jù)庫。

            SZLIS的主要功能包括:管理業(yè)務(wù)文件的流轉(zhuǎn)及辦理過程;用地申請的處理和批復(fù);用計算機(jī)進(jìn)行出讓地塊的劃界和對用地空間與文字屬性的管理;進(jìn)行紅線圖、方案圖以及其它圖件的制作與輸出;制定地價方案,編制土地使用權(quán)出讓合同書;對與土地有關(guān)的各類、各層次信息的查詢功能等。在SZLIS中,市局、分局和管理所都有以上功能,且市局可以查詢及審批各分局的業(yè)務(wù)數(shù)據(jù),三級部門之間要互相流轉(zhuǎn)文件。

            4.2 數(shù)據(jù)說明

            根據(jù)系統(tǒng)的功能需求,SZLIS中的數(shù)據(jù)及其使用情況分為以下幾類:

            類型一:人員、部門、崗位、任職、單位等做參考用的數(shù)據(jù),全局統(tǒng)一一份數(shù)據(jù),更新量少,市局、分局都能更新;

            類型二:文件內(nèi)容、辦理過程等與文件流轉(zhuǎn)相關(guān)的數(shù)據(jù),市局和分局都會收文,且市局、分局、管理所三級之間要轉(zhuǎn)文;

            類型三:業(yè)務(wù)屬性數(shù)據(jù),如紅線、宗地屬性、界址點、地價方案、土地出讓合同屬性等,主要業(yè)務(wù)在分局辦理,部分大型業(yè)務(wù)在市局辦理,部分小型業(yè)務(wù)在管理所辦理;

            類型四:圖形數(shù)據(jù),包括紅線、宗地等地塊的圖形數(shù)據(jù)。

            SZLIS中的圖形數(shù)據(jù)用ARC/INFO管理,ARC/INFO提供接口與Oracle管理的屬性數(shù)據(jù)相連接。為了實現(xiàn)圖形數(shù)據(jù)與屬性數(shù)據(jù)的有效連接,以及利用圖形數(shù)據(jù)查詢或更新屬性數(shù)據(jù),除通過建立ARC/INFO 與Oracle系統(tǒng)之間的連接外,還需利用RELATE關(guān)系建立各COVERAGE的INFO屬性表(AAT和PAT)與Oracle數(shù)據(jù)庫中的屬性表(table)之間的關(guān)聯(lián)關(guān)系,即在ARC/INFO的AAT或PAT表與Oracle表中分別建立公共的標(biāo)識項,通過這些公共的標(biāo)識項把AAT或PAT表中的記錄與相應(yīng)Oracle中的對應(yīng)記錄掛接起來。

            4.3 分布式設(shè)計

            根據(jù)系統(tǒng)對分布式的需求,SZLIS中數(shù)據(jù)庫分布式設(shè)計方案如下:

            對于類型一數(shù)據(jù),市局?jǐn)?shù)據(jù)庫中建立數(shù)據(jù)表,分局?jǐn)?shù)據(jù)庫中建立對市局表的快照和視圖,對這些數(shù)據(jù)的大部分修改在市局進(jìn)行,分局通過視圖修改這些數(shù)據(jù),通過快照查詢這些數(shù)據(jù);對于類型二數(shù)據(jù),市局和分局的數(shù)據(jù)庫中分別建立數(shù)據(jù)表,數(shù)據(jù)存放在數(shù)據(jù)的產(chǎn)生地,如果市局向分局轉(zhuǎn)文,則有關(guān)此文的文件內(nèi)容、辦理過程等數(shù)據(jù)都拷到分局的數(shù)據(jù)庫中,反之亦然;對于類型三數(shù)據(jù),數(shù)據(jù)存放在分局的數(shù)據(jù)庫中,在市局的數(shù)據(jù)庫中分別建立對六個分局?jǐn)?shù)據(jù)庫的DATABASE LINK,市局通過視圖創(chuàng)建或修改這些數(shù)據(jù),通過快照查詢這些數(shù)據(jù);分局和管理所系統(tǒng)登錄到對應(yīng)分局的數(shù)據(jù)庫,直接對業(yè)務(wù)數(shù)據(jù)進(jìn)行操作。以宗地屬性數(shù)據(jù)為例,在分局建立表PARCEL,分局操作此表,在市局建立視圖和快照如下:

            CREATE VIEW V$PARCEL—LH AS SELECT * FROM SUPDBA.PARCEL@SUP—LH;

            CREATE SNAPSHOT S$PARCEL—LH

            PCTFREE 5 PCTUSED 60

            TABLESPACE users

            STORAGE INITIAL 50K NEXT 50K

            USING INDEX STORAGE (INITIAL 25K NEXT 25K)

            REFRESH START WITH ROUND(SYSDATE + 1) + 18/24

            NEXT SYSDATE + 1

            AS SELECT * FROM SUPDBA.PARCEL@SUP—LH;

            /* 快照從第二天18點開始刷新,每天刷新一次 */

            上述三類數(shù)據(jù)存貯于SZLIS的Oracle數(shù)據(jù)庫中,具體的表、視圖、快照間的關(guān)系如圖2所示。





          圖2 SZLIS中各數(shù)據(jù)庫對象間關(guān)系

            對于類型四數(shù)據(jù),市局、分局、管理所各存放一份ARC/INFO數(shù)據(jù),市局系統(tǒng)通過與Oracle數(shù)據(jù)庫中對分局遠(yuǎn)程表做的視圖相連來修改屬性數(shù)據(jù),通過快照來查詢屬性數(shù)據(jù);分局和管理所系統(tǒng)則直接通過與Oracle數(shù)據(jù)庫中的表相連來操作屬性數(shù)據(jù);每天系統(tǒng)的更新程序要根據(jù)Oracle數(shù)據(jù)庫的屬性數(shù)據(jù)對市局、分局、管理所的圖形數(shù)據(jù)進(jìn)行增量更新,以保證三地的數(shù)據(jù)一致。

            SZLIS中基于Oracle的分布式數(shù)據(jù)庫組織結(jié)構(gòu)如圖3所示。



                     

          圖3 SZLIS分布式數(shù)據(jù)庫組織結(jié)構(gòu)

            4.4 空間數(shù)據(jù)同步處理

            ARC/INFO本身并不支持分布式存儲和管理,為了實現(xiàn)市局、分局及管理所的空間數(shù)據(jù)同步,系統(tǒng)采用如下方法處理:

            . 在分局的Oracle數(shù)據(jù)庫中建立圖形修改記錄表,數(shù)據(jù)項包括數(shù)據(jù)類型、數(shù)據(jù)序號、創(chuàng)建地點、更新日期、更新類型、更新用戶、讀取標(biāo)志等,市局建立它們的視圖,并通過視圖讀取圖形修改記錄表。

            . 市局或各分局系統(tǒng)運(yùn)行時對圖形的每個變動,如創(chuàng)建、更新、刪除等操作,往圖形修改記錄表中加入記錄。

            . 在進(jìn)行空間數(shù)據(jù)交換時,調(diào)用圖形修改記錄表,提取信息,進(jìn)行圖形數(shù)據(jù)更新。

            . 處于第三級的管理所,數(shù)據(jù)的處理類似市局,屬性數(shù)據(jù)訪問的是分局的表,圖形數(shù)據(jù)在其本地建數(shù)據(jù)庫,與分局的表相關(guān)聯(lián)。

            5 展望

            關(guān)系數(shù)據(jù)庫經(jīng)過多年的發(fā)展,其分布式處理技術(shù)已經(jīng)越來越成熟。對于土地信息系統(tǒng)這種既有非空間數(shù)據(jù)又有空間數(shù)據(jù)的大型系統(tǒng)來說,其非空間數(shù)據(jù)可借助于相對成熟的分布式關(guān)系數(shù)據(jù)庫來實現(xiàn)分布式處理,而目前空間數(shù)據(jù)的分布式處理需要寄生于關(guān)系數(shù)據(jù)庫的分布式技術(shù)。要真正解決空間數(shù)據(jù)的分布式處理問題,還有待于深入的研究。

            榮 芳 工程師。主要研究方向:地理信息系統(tǒng),數(shù)據(jù)庫設(shè)計等。

          posts - 57, comments - 3, trackbacks - 0, articles - 1

          Copyright © 黎民

          主站蜘蛛池模板: 腾冲县| 桦南县| 抚州市| 北碚区| 浏阳市| 晋中市| 莆田市| 南华县| 青海省| 新巴尔虎右旗| 沈丘县| 镇宁| 青川县| 黄石市| 常宁市| 白朗县| 苍梧县| 鄄城县| 奈曼旗| 贵州省| 建湖县| 丹寨县| 白城市| 碌曲县| 凤台县| 曲松县| 浦江县| 合山市| 麻阳| 虎林市| 安阳县| 惠来县| 巧家县| 柯坪县| 喀喇| 永仁县| 罗江县| 林州市| 五河县| 正定县| 山丹县|