• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    開源空間數據引擎MsSQLSpatial簡介

    發布: 2007-6-11 15:06 | 作者: 何滔 | 來源: | 查看: 74次 | 進入軟件測試論壇討論

    領測軟件測試網

    MsSQLSpatial是一個開源空間數據引擎項目,本文通過介紹這一項目的同時,也對基于MS SQLServer 2005 CLR Integration(公共語言運行時集成,下文簡稱“CLR集成”)技術實現一個空間數據引擎及優缺點做一些簡單分析。

    MsSQLSpatial項目

    這個項目遵從于OGC Simple Features Specification for SQL Revision 1.1,基于兩個著名的.NET平臺下的開源GIS項目NetTopologySuite(NetTopologySuite是JTS Topology Suite的C#/.net版本,簡稱NTS)和SharpMap(一個基于.net 2.0的Map渲染類庫)來構建,所以劃分為NTS、SharpMap和SqlClr三大模塊,SqlClr這部分為CLR集成實現代碼。主要實現了基于SQLServer 2005 CLR集成的空間數據庫相關封裝。當前提供了一個命令行工具來支持shape文件和PostGIS的數據導入。

    開發語言:C Sharp 2.0。

    目前版本:Release 0.1.RC2。

    許可協議:GNU LESSER GENERAL PUBLIC LICENSE Version 2.1。

    官方網址:http://www.codeplex.com/Wiki/View.aspx?ProjectName=MsSQLSpatial。

    MsSQLSpatial官方給的說法是一個MS SQLServer2005空間擴展(Spatial Extensions),確切地說它應該是一個專屬于SQLServer2005的空間數據引擎。所謂的空間數據引擎,其實就是基于關系型數據庫的空間數據庫技術的軟件實現,實質上是個封裝了空間領域知識的中間件,GIS等應用層通過這個中間層與關系型數據庫交互。

    典型的莫過于GIS開發者都比較熟悉的ESRI ArcSDE,Supermap SDX+等等。那么,這個MsSQLSpatial與以前的空間數據引擎差別在哪里?下文我們將討論這個問題。(實際上Oracle 10g也支持CLR集成,但在此不進行相關比較。)

    基于CLR集成的空間數據引擎

    顯而易見,每一次數據庫技術與數據訪問技術的進步發展都會帶動空間數據存儲管理解決方案的進步與發展,就好像關系型數據庫上BLOB數據類型的支持才使得空間數據庫實現了空間特征數據與屬性數據一體化存儲管理。

    關于MS SQLServer 2005有哪些新特性,在這里筆者就不再贅述,相信微軟已做了大量宣傳。

    且不管廣告如何,作為一個與整個.NET平臺緊密集成的全新一代的數據庫產品,我們更關心它的新特性會給GIS最重要的組成部分之一“空間數據庫技術”帶來什么樣的解決方案。這個關鍵,就是它的“CLR集成”。通過宿主Microsoft.net Framework 2.0公共語言運行時 (CLR),可以在SQLServer 2005上利用.net Framework類庫和任何如C#、VB、.net、C++/CLI等CLR語言來開發數據庫應用,擴展用戶自己的類型系統和聚合函數。許多之前在SQLServer 2000上用T-SQL或擴展存儲過程等編程模型難以實現的或無法實現的任務現在可以用托管代碼來完成,譬如幾何計算這樣具有復雜邏輯的計算密集型任務。

    在空間數據庫的設計問題上,沒有CLR集成技術的RDBMS例如SQLServer2000,在涉及查詢腳本的空間表達時就出現了問題,T-SQL語句難以做到空間關系和屬性特征聯合查詢。

    因此,空間索引和以二進制方式存儲的空間特征數據都必須通過數據訪問接口獲取出來映射到空間數據引擎這個中間層還原成空間對象才能完成空間關系的判斷。還有點不妙的就是每次涉及空間分析的操作都會從空間數據庫服務器中取出一部分冗余的結果集,如果在I/O密集的情況下則更糟。

    SQLServer 2005上,非常顯著的一個特點是,這類基于CLR集成的開發的.NET應用程序集是直接部署在數據庫服務器上,SQLServer2005在進程內宿主.net CLR,外部GIS應用層可直接與空間數據庫交互時使用T-SQL語句操作。

    我們來看MsSQLSpatial的解決方案, MsSQLSpatial用CLR表值函數封裝了一組簡單而有效的空間索引實現,在這些CLR表值函數中實習了OGC簡單特征規范定義的用于描述各種對象的空間關系的空間關系謂詞,由NTS類庫提供底層的空間對象和空間關系算子,在數據庫進程內部直接完成空間查詢操作。

    SQL Server 2005數據庫CLR集成技術代碼和數據的緊密結合使我們能夠充分利用服務器的處理能力。而且因為它減少了數據層和中間層之間的流量,CLR 函數也可以利用到SQLServer 2005查詢處理器的并行和優化功能。但如果在空間數據引擎中完全封裝,這無異于把密集計算的任務完全放在空間數據庫服務器上,在空間數據庫的I/O量與計算資源之間如何取舍,這是值得斟酌之處。

    開源空間數據引擎MsSQLSpatial體系架構

    MsSQLSpatial展望

    MsSQLSpatial是開源GIS網站Freegis.org于2006年8月份加入的一個新開源項目,更新比較頻繁。正由于其剛剛開始,可能作者忙于調整架構和實現相關應用,所以相關文檔和介紹相當的少,對其長遠的發展規劃和定位還不得而知。

    這個新生的開源項目目前還比較簡單,沒有提供構建高級空間索引的能力,進行空間查詢時其僅是對最小外包矩形(MBR)比較后獲得粗略子集后就通過一個委托調用NTS中空間對象的操作算子進行精確的匹配計算以獲得目標結果集。

    MsSQLSpatial目前也沒有柵格數據相關部分,要達到海量矢量/柵格管理,拓撲關系支持、長事務、日志、多用戶并發、權限控制等商業層次要求的空間數據引擎還有很長的距離。不過在這個技術體系框架之下,這個的緊密捆綁目前最好的商業關系型數據庫之一與采用先進的數據庫編程模型的開源空間數據庫項目,還是很具發展潛力的,我們期待其后繼版本能夠帶來更多的東西。

    【責任編輯:火鳳凰 TEL:(010)68476606-8007】


    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>