1986年,加州大學伯克利分校的Michael Stonebraker教授領導了Postgres的項目,它是PostgreSQL的前身。隨后出現了PostGIS,PostGIS是對象-關系型數據庫系統PostgreSQL的一個擴展,它的出現讓人們開始重視基于數據庫管理系統的空間擴展方式,而且使PostGIS有望成為今后管理空間數據的主流技術。
由于空間數據具有空間位置、非結構化、空間關系、分類編碼、海量數據等特征,一般的商用數據庫管理系統難以滿足要求。
為了提高數據庫管理系統(DBMS)對空間數據的管理能力,國內外先后出現過:文件與關系數據庫混合管理系統、全關系型空間數據庫管理系統、關系型數據庫+空間數據引擎、擴展對象關系型數據庫管理系統,以及面向對象空間數據庫管理系統等多種解決方案。目前,國內外較為流行的主要集中在“關系型數據庫+空間數據引擎”、“擴展對象關系型數據庫”兩方面。
“關系型數據庫+空間數據引擎”通常是近年來由GIS廠商研發的一種中間件解決方案。用戶將自己的空間數據交給獨立與數據庫之外的空間數據引擎,有空間數據引擎來組織空間數據在關系型數據庫種的存儲;當用戶需要訪問數據的時候,再通知空間數據引擎,有引擎從關系型數據庫中取出數據,并轉化為客戶可以使用的方式。
因此,關系型數據庫僅僅是存放空間數據的容器,而空間數據引擎則是空間數據進出該容器的轉換通道。這類系統的典型代表有ESRI的ArcSDE和MapInfo的SpatialWare。其優點是,訪問速度快,支持通用的關系數據庫管理系統,空間數據按BLOB存取,可跨數據庫平臺,與特定GIS平臺結合緊密,應用靈活。其缺點主要表現為,空間操作和處理無法在數據庫內核中實現,數據模型較為復雜,擴展SQL比較困難,不易實現數據共享與互操作。
擴展對象關系型數據庫管理系統是由數據庫廠商研發的管理空間數據一種解決方案。由于關系型數據庫難以管理非結構化數據(也包括空間數據),數據庫廠商借鑒面向對象技術,發展了對象關系型數據庫管理系統。
此系統支持抽象的數據類型(ADT)及其相關操作的定義;用戶利用這種能力可以增加空間數據類型及相關函數,從而將空間數據類型與函數就從中間件(空間數據引擎)轉移到了數據庫管理系統中,客戶也不必采用空間數據引擎的專用接口進行編程,而是使用增加了的空間數據類型和函數的標準擴展型SQL語言來操作空間數據。
這類支持空間擴展的產品有Oracle的Oracle Spatial, IBM的DB2 Spatial Extender, Informix 的Spatial DataBlade。其優點是,空間數據的管理與通用數據庫系統融為一體,空間數據按對象存取,可在數據庫內核中實現空間操作和處理,擴展SQL比較方便,較易實現數據共享與互操作。其缺點主要表現為,實現難度大,壓縮數據比較困難,目前的功能和性能與第一類系統尚存在差距。
目前開源空間信息軟件領域最性能優秀的數據庫軟件當屬PostgreSQL數據庫,而構建在其上的空間對象擴展模塊PostGIS則使得其成為一個真正的大型空間數據庫。
緣起PostgrSQL
1986年,加州大學伯克利分校的Michael Stonebraker教授領導了Postgres的項目,它是PostgreSQL的前身。這個項目的成果非常顯著,在現代數據庫的許多方面都作出了大量的貢獻,如在面向對象的數據庫、部分索引技術、規則、過程和數據庫擴展方面都取得了顯著的成果。同時,Stonebraker將PostgreSQL納入到BSD版權體系中,使得PostgreSQL在各種科研機構和一些公共服務組織得到了廣泛的應用。
在PostgreSQL中已經定義了一些基本的集合實體類型,這些類型包括:點(POINT)、線(LINE)、線段(LSEG)、方形(BOX)、多邊形(POLYGON)和圓(CIRCLE)等;另外,PostgreSQL定義了一系列的函數和操作符來實現幾何類型的操作和運算;同時,PostgreSQL引入空間數據索引R-tree。
盡管在PostgreSQL提供了上述幾項支持空間數據的特性,但其提供的空間特性很難達到GIS的要求,主要表現在:缺乏復雜的空間類型;沒有提供空間分析;沒有提供投影變換功能。為了使得PostgreSQL更好的提供空間信息服務,PostGIS應運而生。
PostGIS簡介
PostGIS是對象關系型數據庫系統PostgreSQL的一個擴展,PostGIS提供如下空間信息服務功能:空間對象、空間索引、空間操作函數和空間操作符。同時,PostGIS遵循OpenGIS的規范。
PostGIS的版權被納入到GNU的GPL中,也就是說任何人可以自由得到PostGIS的源碼并對其做研究和改進。正是由于這一點,PostGIS得到了迅速的發展,越來越多的愛好者和研究機構參與到PostGIS的應用開發和完善當中。
PostGIS發展歷程
PostGIS是由Refractions Research Inc開發的,Refractions是一家GIS和數據庫咨詢公司,Refraction公司最初是在PostgreSQL的基礎上研究空間數據庫的實現,由于PostgreSQL所提供的空間數據類型和功能遠遠不能滿足GIS的需求,研究工作經常陷入到進退維谷的境地,最終的結果往往是耗費了大量的人力物力,而產品卻極其復雜并且性能低下。這些原因直接或間接促成PostGIS項目的實施。
PostGIS的實施也不是一帆風順,直到PostgreSQL 7.1發布之后,PostGIS的實現才變為可能,主要原因是7.1版本之前PostgreSQL支持的記錄大小最大為8Kb,從7.1之后,PostgreSQL將這一限制擯棄。即使采用二進制方式存儲,空間數據對象也往往會經常超過8Kb,如果這個限制存在的話,空間數據的存儲就無從談起。
伴隨著這一限制的消除,PostGIS的研究和開發也隨即在2001年的4月展開,并于2001年的5月發布了PostGIS的第一版(PostGIS V0.1)。在PostGIS的第一版中,主要包括空間數據庫、采用標準表示方式的空間數據對象、支持快速查詢的空間索引和一些簡單的分析函數(如area和length等)。PostGIS V0.1中支持的空間數據對象類型包括:點、線、多邊形、幾何對象類型,以及多點、多線、多多邊形的幾何對象類型。
2001年5月發布的PostGIS V0.2增加了對于Windows平臺下二進制表示的支持,同時為新用戶提供幫助文檔。不過,用戶反饋PostGIS的函數命名沒有遵循OpenGIS規范。
2001年7月PostGIS V0.5發布,PostGIS增加了OpenGIS現有的所有功能性函數并在函數的命名上與其保持一致。增加了24個OpenGIS存取函數,同時刪除了與這些函數功能等價的不標準的原有函數。
伴隨著來自不列顛哥倫比亞省政府的資金支持,對于在球體表面的長度運算支持也加入到0.5版中。同期,Refractions公司將British Columbia省的數字道路地圖集移植到PostGIS中,同時使用數據庫的模式和數據轉換功能為地圖集客戶提供支持(急救車派遣、緊急事物響應,以及其他市政事物等)。
PostGIS V0.5之所以重要,還有一個原因就是Minnesota大學的Mapserver的發布。Minnesota大學的Mapserver是一個開源的互聯網地圖發布引擎,就像ESRI公司的ArcIMS系統,Mapserver同時增加了對于PostGIS的支持。
【文章相關內容】
第一頁:PostGIS發展歷程
第二頁:PostGIS特性與發展展望
共2頁: 1 [2] 下一頁 |