天天看點

《ArcGIS Engine 地理資訊系統開發從入門到精通(第二版)》——第6章 空間資料管理 6.1 SDE及空間資料

本節書摘來自異步社群《arcgis engine 地理資訊系統開發從入門到精通(第二版)》一書中的第6章,第6.1節,作者: 邱洪鋼 , 張青蓮 , 熊友誼 更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

arcgis engine 地理資訊系統開發從入門到精通(第二版)

6.1.1 sde介紹

arcsde是資料庫系統中管理地理資料庫的接口,通過該接口可以往關系資料中加入空間資料,提供地理要素的空間位置及形狀等資訊,是arcgis與關系資料庫之間的gis通道。它允許使用者在多種資料管理系統中管理地理資訊,并使所有的arcgis應用程式都能夠使用這些資料。

arcsde是多使用者arcgis系統的一個關鍵部件,它為dbms提供了一個開放的接口,允許arcgis在多種資料庫平台上管理地理資訊,這些平台包括oracle、oracle with spatial/locator、microsoft sql server、ibm db2和informix。通過arcsde,arcgis可以在dbms中輕而易舉地管理一個共享的、多使用者的空間資料庫。arcsde的具體功能如下。

(1)高性能的dbms通道。

arcsde是多種dbms的通道。它本身并非一個關系資料庫或資料存儲模型。它是一個能在多種dbms平台上提供進階的、高性能的gis資料管理的接口。

(2)開放的dbms支援。

arcsde允許在多種dbms中管理地理資訊:oracle、oracle with spatial or locator、microsoft sql server、informix以及ibm db2。

多使用者arcsde為使用者提供了大型空間資料庫支援,并且支援多使用者編輯。

(3)連續、可伸縮的資料庫。

arcsde可以支援海量的空間資料庫和任意數量的使用者,直至dbms的上限。gis工作流和長事務處理gis中的資料管理工作流,例如多使用者編輯、曆史資料管理、check-out/check-in,以及松散耦合的資料複制等,都依賴于長事務處理和版本管理。arcsde為dbms提供了這種支援。

(4)豐富的地理資訊資料模型。

arcsde保證了存儲于dbms中的矢量和栅格幾何資料的高度完整性。這些資料包括:矢量和栅格幾何圖形,支援x、y、z和x、y、z、m的坐标,以及曲線、立體、多行栅格、拓撲、網絡、注記、中繼資料、空間處理模型、地圖、圖層等。

(5)靈活的配置。

arcsde通道可以讓使用者在用戶端應用程式内,或跨網絡、跨計算機地對應用伺服器進行多種多層結構的方案配置。arcsde支援windows、unix、linux等多種作業系統。

arcsde能夠讓同樣的功能在所有的dbms上得到實作。盡管所有的關系資料庫都支援sql,并能使用相似的方法處理簡單的sql,但是不同資料庫的資料庫伺服器在實作細節上卻有着顯著的差别,這些差别包括性能和索引、支援的資料類型、內建管理工具和複雜查詢的執行,還包括在dbms中對空間資料類型的支援。

标準的sql并不支援空間資料。 iso sql/mm spatial和ogc的簡單要素sql規範擴充了sql,并且為不同的矢量資料定義了标準的sql支援。 db2和informix直接支援這些sql類型。oracle使用的是自己的标準,其空間類型系統是核心資料庫系統上的一個獨立的可選擴充。而微軟的sql server不提供空間類型的支援。arcsde不但靈活地支援了每個dbms提供的獨特功能,而且能為底層dbms提供它們所不具備的功能的支援。

arcsde支援高性能的空間資料的管理,它支援的資料庫如下。

① oracle(帶壓縮二進制)。

② oracle(帶locator和spatial)。

③ 微軟sql server(帶壓縮二進制)。

④ ibm db2(帶spatial extender)。

⑤ ibm informix(帶spatial database)。

arcsde是為了解決dbms的多樣性和複雜性而存在的。arcsde的體系結構給使用者提供了巨大的靈活性,它允許使用者自由地選擇dbms來存儲空間資料。arcsde 分攤了 dbms 和 gis 之間對管理空間資料的職責,對空間資料的管理職責是由gis軟體和正常dbms軟體所共同承擔的。某些空間資料的管理功能,例如磁盤存儲、屬性類型定義、查詢處理,以及多使用者事務處理等,是由dbms來完成的。當然一些dbms引擎本身也擴充了對空間資料的支援,它們具備索引和搜尋的功能。gis軟體負責為特定的dbms提供各種地理資料的表達。從實際效用上看,dbms是被作為一個空間資料的實作機制而存在的。

arcsde是基于多層體系結構的(應用和存儲)。資料的存儲和提取由存儲層(dbms)實作,而高端的資料整合和資料處理功能則由應用層(arcgis)提供。arcsde支援arcgis應用層,并提供dbms通道技術,使得空間資料可以存儲于多種dbms中。arcsde用于高效地存儲、索引、通路和維護dbms中的矢量、栅格、中繼資料及其他空間資料。arcsde同時能保證所有的gis功能可用,而無需考慮底層的dbms。使用arcsde,使用者在dbms中即可有效地管理自己的地理資料資源。arcsde使用dbms支援的資料類型,以表格的形式管理底層存儲的空間資料,并可使用sql在dbms中通路這些資料。arcsde同時也提供了開放的用戶端開發接口(c api和java api),通過這些接口,使用者定制的應用程式也可以完全通路底層的空間資料表。

6.1.2 空間資料

空間資料(spatial data)是指用來表示空間實體的位置、形狀、大小及其分布特征諸多方面資訊的資料。它可以用來描述來自現實世界的目标,它具有定位、定性、時間和空間關系等特性。定位是指在一個已知的坐标系裡,空間目标都具有唯一的空間位置;定性是指有關空間目标的自然屬性,它伴随着目标的地理位置;時間是指空間目标是随時間的變化而變化;空間關系通常又稱拓撲關系。

空間資料适用于描述所有呈二維、三維甚至多元分布的關于區域的現象。空間資料不僅能夠表示實體本身的空間位置及形态資訊,而且還有表示實體屬性和空間關系(如拓撲關系)的資訊。在空間資料中不可再分最小單元現象稱為空間實體,空間實體是對存在于這個自然世界中地理實體的抽象,主要包括點、線、面以及實體等基本類型。如把一根電線杆抽象成為一個點,該點可以包含電線杆所處的位置資訊、電線杆的高度資訊和其他一些相關資訊;可以把一條道路抽象為一條線,該線可以包含這條道路的長度、寬度、起點、終點,以及道路等級等相關資訊;可以把一個湖泊抽象為一個面,該面可以包含湖泊的周長、面積和湖水的品質資訊等。在空間對象建立後,還可以進一步定義其互相之間的關系,這種互相關系被稱為“空間關系”,又稱為“拓撲關系”,如可以定義點-線關系、線-線關系、點-面關系等。是以可以說空間資料是一種可以用點、線、面以及實體等基本空間資料結構來表示人們賴以生存的自然世界的資料。

歸納起來它具有以下5個基本特征。

(1)空間特征。

每個空間對象都具有空間坐标,即空間對象隐含了空間分布特征。這意味着在空間資料組織方面,要考慮它的空間分布特征。除了通用性資料庫管理系統或檔案系統關鍵字的索引和輔關鍵字索引以外,一般需要建立空間索引。

(2)非結構化特征。

在目前通用的關系資料庫管理系統中,資料記錄一般是結構化的。即它滿足關系資料模型的第一範式要求,每一條記錄是定長的,資料項表達的隻能是原子資料,不允許嵌套記錄。而空間資料則不能滿足這種結構化要求。若将一條記錄表達一個空間對象,它的資料項可能是變長的。例如,其一,1條弧段的坐标,其長度是不可限定的,它可能是 2對坐标,也可能是10萬對坐标。其二,1個對象可能包含另外的 1個或多個對象,例如1個多邊形,它可能含有多條弧段。若1條記錄表示1條弧段,在這種情況下,1條多邊形的記錄就可能嵌套多條弧段的記錄,是以它不滿足關系資料模型的範式要求,這也就是為什麼空間圖形資料難以直接采用通用的關系資料管理系統的主要原因。

(3)空間關系特征。

空間資料除了前面所說的空間坐标隐含了空間分布關系外,空間資料中記錄的拓撲資訊則表達了多種空間關系。這種拓撲資料結構一方面友善了空間資料的查詢和空間分析,另一方面也給空間資料的一緻性和完整性維護增加了複雜性。特别是有些幾何對象,沒有直接記錄空間坐标的資訊。如拓撲的面狀目标,僅記錄了組成它的弧段的辨別,因而進行查找、顯示和分析操作時都要操縱和檢索多個資料檔案方能得以實作。

(4)分類編碼特征。

一般而言,每一個空間對象都有一個分類編碼,而這種分類編碼往往屬于國家标準、行業标準或地區标準,每一種地物的類型在某個gis中的屬性項個數是相同的。因而在許多情況下,一種地物類型對應于一個屬性資料表檔案。當然,如果幾種地物類型的屬性項相同,多種地物類型也可以共用一個屬性資料表檔案。

(5)海量資料特征。

空間資料量是巨大的,通常稱為海量資料。之是以稱為海量資料,是指它的資料量比一般的通用資料庫要大得多。一個城市地理資訊系統的資料量可能達幾十gb,如果考慮影像資料的存儲,可能達幾百個gb。這樣的資料量在城市管理的其他資料庫中是很少見的。正因為空間資料量大,是以需要在二維空間上劃分塊或者圖幅,在垂直方向上劃分層來進行組織。

空間資料庫系統是一個存儲空間和非空間資料的資料庫系統,其資料模型和查詢語言能支援空間資料類型和空間索引,并且提供進行空間查詢和其他空間分析的方法。空間資料庫中存儲的資訊包含兩部分:一部分是和空間有關的資訊,如點、線、矩形、多邊形、多面體等占有空間的對象,稱之為空間資料;另一部分是與空間資料有關的各個屬性,如點所表示的城市的面積、人口等,稱之為非空間資料(屬性資料)。