国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

土地信息系統數據庫分布式設計與實現

2024-07-21 02:36:30
字體:
來源:轉載
供稿:網友

  摘 要 本文闡述了Oracle分布式設計技術在具有空間分布特征的土地信息系統中的應用,并以深圳市土地治理信息系統為例,具體地說明了基于Oracle的土地信息系統數據庫分布式設計與實現。
  
  要害詞 分布式數據庫,Oracle,土地信息系統
  
  1 關于土地信息
  
  用關系數據庫與空間數據庫協同治理土地數據,是近年來土地信息系統的分布式處理的常用方法之一,其分布式實現主要依靠于關系數據庫(如Oracle)所提供的分布式功能。
  本文將具體闡述土地信息系統中基于Oracle的關系數據庫分布式設計及空間數據分布式處理的實現。
  
  2 Oracle系統的分布式設計技術
  
  2.1 分布式Oracle系統構架
  分布式Oracle系統是由分布式數據庫治理系統(Oracle Rdbms)、支持多種操作系統和通信協議的分布式處理環境軟件SQL*NET、以及與非Oracle Rdbms聯接的軟件SQL*CONNECT組成的一個軟件群[2]。其中,Oracle Rdbms的分布式功能主要包括分布式查詢、單點事務、多個事務中多點更新及結點自治等;SQL*NET提供不同Oracle數據庫間的連接功能;SQL*CONNECT是實現Oracle與其它DBMS轉換的一個接口產品。
  2.2 SQL*NET
  SQL*NET是Oracle分布式處理的基礎,其體系結構如圖1所示。通過SQL*NET,一個應用程序可以并行存取本地或遠程的多個數據庫。當存取遠程數據庫時,在客戶端,SQL*NET將來自用戶程序接口(UPI)層的子程序調用(SQL語句)組裝成信息報文,經過異種機環境所需要的數據轉換后,通過網絡將報文發送給遠程計算機;在服務器端,SQL*NET接受報文,作必要的數據轉換,并將子程序調用參數傳送到適當的Oracle核心入口點,在相反方向上服務器端驅動SQL*NET傳送的是數據和返回碼信息[1]。
   土地信息系統數據庫分布式設計與實現(圖一)
  圖1 SQL*NET體系結構
  
  2.3 各類數據庫對象
  Oracle中與分布式處理有關的數據庫對象主要有:數據庫鏈路、視圖、快照、同義詞等。其中,數據庫鏈路用于連接本地結點和遠程結點之間的數據庫;數據快照是Oracle系統提供的一種對數據表的異步復制,它有以下兩種作用:數據快照是遠程數據表在本地的復制,通過它可以實現對遠程數據的快速查詢;在系統或網絡出現故障時,可以通過數據快照恢復數據。
  同義詞用來簡化一些繁瑣的表名或視圖名等。對于遠程操作,用戶也可以為遠程數據庫的表名或視圖名等建立相應的同義詞,以后訪問這些遠程數據庫的表或視圖就可以直接寫同義詞名,也就是說用戶在訪問數據時無須指明數據所在結點的名字,這就達到了透明訪問。例如,在某一結點訪問另一結點的數據表時需要命令:
  SELECT*FROM SUPDBA.EMPLOYEE@SUP—HQ;
  假如建立如下同義詞:
  CREATE PUBLIC SYNONYM EMPLOYEE FOR SUPDBA.EMPLOYEE@SUP—HQ;
  再訪問該遠程表時就只需要命令:
  SELECT * FROM EMPLOYEE;
  2.4 分布式操作
  在數據庫鏈路定義以后,遠程操作就變得非常簡單和方便。用戶訪問遠程數據庫的表或視圖時,只要在表名或視圖名后面附上數據庫鏈路名即可通過SELECT或INSERT、UPDATE、DELETE等語句對數據進行操作。其形式為:
  SELECT 列表達式[,列表達式,...]
  FROM 表名@數據庫鏈路名[,表名@數據庫鏈路名,...]
  [WHERE 邏輯表達式];
  在訪問數據時,假如要訪問的數據來自同一個數據表,根據需要直接訪問該表或基于該表的視圖或快照;假如所要訪問的數據來自不同的數據表,可通過連接(JOIN)操作或相應的視圖來實現,視圖中各數據項的來源有以下幾種情況:
  來自同一數據庫中的一個表或多個表;
  來自同一結點不同數據庫中的兩個表或多個表;
  來自不同結點上數據庫中的兩個表或多個表。
  假如事先建立了有關視圖,用戶就可以直接訪問這些視圖以實現一些對數據的復雜訪問。
  
  3 數據庫分布式設計的基本步驟
  3.1 確定數據的物理位置
  在分布式數據庫環境中,對每一數據表都要首先確定其最佳的存放位置,從而使整體數據的分布更加合理。在這一過程中,需要考慮的因素主要有以下幾點:每一結點需傳遞的事務量;每一結點使用的數據量;網絡的性能與可靠性;各結點速度、磁盤容量;若結點間連接不通后的訪問規則;表間聯系對數據完整性的影響等。
  3.2 確定數據庫及其對象
  對每一存放數據的獨立結點都要建立至少一個數據庫,對于不同的應用,在同一地點也可以建立多個數據庫。在每一數據庫中還要根據實際需求建立有關的數據庫對象,如Oracle中有關數據庫對象有Table、View、Snapshot、Synonym、DatabaseLink等。

  3.3 確定數據存取機制
  分布式數據庫的一大重要特點是數據訪問的透明性。在應用系統中,不同的功能會需要訪問不同數據庫中的數據。為了達到數據訪問的透明性,在分布式數據庫設計時就需要確定如何存取其它數據庫中的數據,如何實現不同數據庫中數據表的鏈接等規則。
  
  4 土地信息系統數據庫的設計
  
  深圳市土地治理信息系統(以下簡稱SZLIS)是一個面向深圳市規劃國土局土地治理業務的集成化分布式信息系統。由于該局行政上采用市局——分局——治理所三級運作模式,土地治理業務分布在三級治理部門,因此SZLIS系統中的分布式處理至關重要。由于Oracle難以治理空間數據,地理信息系統軟件ARC/INFO不支持分布式處理,故考慮二者結合來治理,即系統中非空間數據用Oracle治理,空間數據用ARC/INFO治理。
  4.1 SZLIS體系結構
  SZLIS運行在由七個局域子網構成的廣域網上。七個局域網分別分布于深圳市規劃國土局市局和六個分局,治理所采用電話撥號上網連接到分局數據庫中。系統在市局和六個分局的服務器中分別建立七個數據庫。
  SZLIS的主要功能包括:治理業務文件的流轉及辦理過程;用地申請的處理和批復;用計算機進行出讓地塊的劃界和對用地空間與文字屬性的治理;進行紅線圖、方案圖以及其它圖件的制作與輸出;制定地價方案,編制土地使用權出讓合同書;對與土地有關的各類、各層次信息的查詢功能等。在SZLIS中,市局、分局和治理所都有以上功能,且市局可以查詢及審批各分局的業務數據,三級部門之間要互相流轉文件。
  4.2 數據說明
  根據系統的功能需求,SZLIS中的數據及其使用情況分為以下幾類:
  類型一:人員、部門、崗位、任職、單位等做參考用的數據,全局統一一份數據,更新量少,市局、分局都能更新;
  類型二:文件內容、辦理過程等與文件流轉相關的數據,市局和分局都會收文,且市局、分局、治理所三級之間要轉文;
  類型三:業務屬性數據,如紅線、宗地屬性、界址點、地價方案、土地出讓合同屬性等,主要業務在分局辦理,部分大型業務在市局辦理,部分小型業務在治理所辦理;
  類型四:圖形數據,包括紅線、宗地等地塊的圖形數據。
  SZLIS中的圖形數據用ARC/INFO治理,ARC/INFO提供接口與Oracle治理的屬性數據相連接。為了實現圖形數據與屬性數據的有效連接,以及利用圖形數據查詢或更新屬性數據,除通過建立ARC/INFO 與Oracle系統之間的連接外,還需利用RELATE關系建立各COVERAGE的INFO屬性表(AAT和PAT)與Oracle數據庫中的屬性表(table)之間的關聯關系,即在ARC/INFO的AAT或PAT表與Oracle表中分別建立公共的標識項,通過這些公共的標識項把AAT或PAT表中的記錄與相應Oracle中的對應記錄掛接起來。
  4.3 分布式設計
  根據系統對分布式的需求,SZLIS中數據庫分布式設計方案如下:
  對于類型一數據,市局數據庫中建立數據表,分局數據庫中建立對市局表的快照和視圖,對這些數據的大部分修改在市局進行,分局通過視圖修改這些數據,通過快照查詢這些數據;對于類型二數據,市局和分局的數據庫中分別建立數據表,數據存放在數據的產生地,假如市局向分局轉文,則有關此文的文件內容、辦理過程等數據都拷到分局的數據庫中,反之亦然;對于類型三數據,數據存放在分局的數據庫中,在市局的數據庫中分別建立對六個分局數據庫的DATABASE LINK,市局通過視圖創建或修改這些數據,通過快照查詢這些數據;分局和治理所系統登錄到對應分局的數據庫,直接對業務數據進行操作。以宗地屬性數據為例,在分局建立表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點開始刷新,天天刷新一次 */
  上述三類數據存貯于SZLIS的Oracle數據庫中,具體的表、視圖、快照間的關系如圖2所示。
   土地信息系統數據庫分布式設計與實現(圖二)
  圖2 SZLIS中各數據庫對象間關系
  
  對于類型四數據,市局、分局、治理所各存放一份ARC/INFO數據,市局系統通過與Oracle數據庫中對分局遠程表做的視圖相連來修改屬性數據,通過快照來查詢屬性數據;分局和治理所系統則直接通過與Oracle數據庫中的表相連來操作屬性數據;天天系統的更新程序要根據Oracle數據庫的屬性數據對市局、分局、治理所的圖形數據進行增量更新,以保證三地的數據一致。
  SZLIS中基于Oracle的分布式數據庫組織結構如圖3所示。
  
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 仙居县| 镶黄旗| 辽源市| 昌黎县| 惠东县| 扶余县| 枣阳市| 高邑县| 吉安县| 铜梁县| 灵寿县| 岑巩县| 措勤县| 凉山| 格尔木市| 开阳县| 温州市| 卓资县| 邛崃市| 莆田市| 五原县| 丹棱县| 正阳县| 建水县| 尚义县| 逊克县| 武陟县| 华蓥市| 重庆市| 泾川县| 吉木乃县| 谢通门县| 洛阳市| 桃园市| 珠海市| 育儿| 新绛县| 余江县| 汝阳县| 枣庄市| 大理市|