PostGIS簡介

空間數據管理問題及解決方案

空間數據特征:空間位置、非結構化、空間關系、分類編碼、海量數據等。
一般的數據庫管理系統難以滿足要求。

為了提高DBMS對空間數據的管理能力,國內外先后出現過:文件與關系數據庫混合管理系統、全關系型空間數據庫管理系統、關系型 數據庫+空間數據引擎擴展對象關系型數據庫管理系統,以及面向對象空間數據庫管理系統等多種解決方案。

目前國內外比較流行的解決方案是這兩種:

  • 關系型數據庫+空間數據引擎
    這是一種中間件解決方案,空間數據引擎負責組織空間數據的存儲和讀取,關系型數據庫僅僅是存放空間數據的容器。
  • 典型代表:ESRI的ArcSDE 和 MapInfo的SpatialWare
  • 優點:訪問速度快,簡單易實現
  • 缺點:空間操作和處理與數據庫內核剝離,數據模型復雜,拓展困難,數據共享困難
  • 擴展對象關系型數據庫
    這是一種新型數據庫解決方案,既然傳統關系型數據庫難以管理非結構化數據,那就開發一種新型數據來實現它,即對象關系型數據庫。
  • 典型代表:Oracle 的 Oracle Spatial, IBM 的 DB2 Spatial Extender, Informix 的 Spatial DataBlade
  • 優點:空間數據的管理與數據庫融為一體,擴展方便,數據共享易實現
  • 缺點:實現難度大,數據壓縮困難,功能和性能與第一種方案尚存在差距

PostgreSQL是目前開源空間信息軟件領域性能最優的數據庫,構建在其上的空間對象擴展模塊PostGIS使其成為一個真正的大型空間數據庫。

從PostgreSQL到PostGIS

PostgreSQL中已經提供了一些空間特性:

  • 定義了一些基本的集合實體類型
  • 定義了一系列的函數和操作符來實現幾何類型的操作和運算
  • 引入空間數據索引

但其提供的空間特性還不能達到要求,主要表現在:

  • 缺乏復雜的空間類型
  • 沒有提供空間分析
  • 沒有提供投影變換功能

這些問題的存在導致費時費力、產品復雜、性能低下,這些原因促成了PostGIS的實施。

在介紹PostgreSQL的部分中我們已經提到過,文件頁(磁盤塊)是物理存儲的最小單位,默認大小是8k,最大可設置為2^15字節。

在PostgreSQL 7.1版本之前,支持的記錄大小最大為8k,空間數據對象往往會超過8k,這一限制導致空間數據的存儲無從談起。

從7.1版本開始,PostgreSQL摒棄了這一限制,PostGIS的實現變為可能。

PostGIS特性與功能

  • PostGIS支持所有的空間數據類型
    這些類型包括:點(POINT)、線(LINESTRING)、多邊形(POLYGON)、多點 (MULTIPOINT)、多線(MULTILINESTRING)、多多邊形(MULTIPOLYGON)和集合對象集 (GEOMETRYCOLLECTION)等。

  • PostGIS支持所有的對象表達方法
    比如WKT和WKB。

  • PostGIS支持所有的數據存取和構造方法
    如GeomFromText()、AsBinary(),以及GeometryN()等。

  • PostGIS提供簡單的空間分析函數
    如Area和Length
    同時也提供其他一些具有復雜分析功能的函數
    比如Distance。

  • PostGIS提供了對于元數據的支持
    如GEOMETRY_COLUMNS和SPATIAL_REF_SYS
    同時,PostGIS也提供了相應的支持函數
    如AddGeometryColumn和DropGeometryColumn。

  • PostGIS提供了一系列的二元謂詞(如Contains、Within、Overlaps和Touches)用于檢測空間對象之間的空間關系,同時返回布爾值來表征對象之間符合這個關系。

  • PostGIS提供了空間操作符(如Union和Difference)用于空間數據操作
    比如,Union操作符融合多邊形之間的邊界。兩個交迭的多邊形通過Union運算就會形成一個新的多邊形,這個新的多邊形的邊界為兩個多邊形中最大邊界。

PostGIS還提供以下功能:

  • 數據庫坐標變換
    數據庫中的幾何類型可以通過Transform函數從一種投影系變換到另一種投影系中。在OpenGIS中的幾何類型都將SRID作為自身結構的一部分,但不知什么原因,在OpenGIS的SFSQL規范中,并沒有引入Transform。

  • 球體長度運算
    存儲在普通地理坐標系中的集合類型如果不進行坐標變換是無法進行程度運算的,OpenGIS所提供的坐標變換使得積累類型的程度計算變成可能。

  • 三維的幾何類型
    SFSQL規范只是針對二維集合類型。OpenGIS提供了對三維集合類型的支持,具體是利用輸入的集合類型維數來決定輸出的表現方式。例如,即便 所有幾何對象內部都以三維形式存儲,純粹的二維交叉點通常還是以二維的形式返回。此外,還提供幾何對象在不同維度間轉換的功能。

  • 空間聚集函數
    在數據庫中,聚集函數是一個執行某一屬性列所有數據操作的函數。比如Sum和Average,Sum是求某一關系屬性列的數據總和,Average 則是求取某一關系屬性列的數據平均值。與此對應,空間聚集函數也是執行相同的操作,不過操作的對象是空間數據。例如聚集函數Extent返回一系列要素中 的最大的包裹矩形框,如“SELECT EXTENT(GEOM) FROM ROADS”這條SQL語句的執行結果是返回ROADS這個數據表中所有的包裹矩形框。

  • 柵格數據類型
    PostGIS通過一種新的數據類型片,提供對于大的柵格數據對象的存儲。片由以下幾個部分組成:包裹矩形框、SRID、類型和一個字節序列。通過 將片的大小控制在數據庫頁值(32×32)以下,使得快速的隨即訪問變成可能。一般大的圖片也是通過將其切成32×32像素的片然后再存儲在數據庫中的。

DBMS管理空間數據問題的發展方向

“關系型數據庫+空間數據引擎”技術方案訪問迅速,與GIS聯系緊密,在應用中占有一定優勢。問題是引擎與數據庫內核獨立,難以利用數據庫系統中已有的成熟的管理、訪問技術,在進一步發展上有致命弱點。

“面向對象空間數據庫系統”技術方案從理論上來看,是最適用于空間數據的表達和管理的。但是由于在訪問速度的問題上尚未有重大突破,在一段時間內都無法替代“對象關系型數據庫系統”。

擴展對象關系型數據庫管理系統技術方案盡管在性能上和“關系型數據庫+空間數據引擎”技術方案仍有一定差距,但隨著技術的發展,將是解決這一問題的發展方向。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,362評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,577評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,486評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,852評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,600評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,944評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,944評論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,108評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,652評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,385評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,616評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,111評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,798評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,205評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,537評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,334評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,570評論 2 379

推薦閱讀更多精彩內容