高 紅
廣西自然資源產品質量檢驗中心,廣西 南寧 530023
農村“房地一體”不動產權籍調查成果匯交的材料主要有文檔資料成果、不動產權屬調查成果、不動產權籍測繪成果及數據庫成果。其中數據庫成果作為登記發證前的重要數據,包含基礎地理信息數據和不動產要素數據兩大類型,成果形式表現為矢量數據、屬性數據及元數據等,為確保數據庫成果滿足匯交標準,對匯交前的數據進行質檢尤為重要[1]。
傳統的人工檢查方式存在效率低、易漏錯、檢查結果表達不規范等不足,系統性的質檢軟件可大大提升屬性數據完整性、規范性的檢查效率,同時對矢量數據中肉眼無法辨識的拓撲性錯誤可提供精準定位的矢量意見[2-3]。廣西“房地一體”成果體量巨大,檢驗數據格式各異,包括mdb 屬性庫、shp 圖形文件、宗地圖、分戶圖、證明材料等附件,且檢驗項較多,包括成果完整性、格式正確性、空間參考、屬性質量、圖形質量、邏輯一致性、附件質量等[4-5]。基于此,筆者根據廣西《農房一體不動產登記數據匯交包標準》《廣西農村“房地一體”不動產權籍調查技術細則》《廣西壯族自治區農村“房地一體”不動產權籍調查及數據建庫成果檢查驗收辦法》對數據庫生產及質檢的要求,開發了基于ArcGIS的“房地一體”權籍調查數據庫質檢系統。
(1)標準化與規范化。由于“房地一體”數據庫成果類型多,字段要求各異,數據結構復雜,質檢系統設計遵循標準化、規范化的檢查原則,按照技術規定和數據庫標準編制質檢方案,形成一套標準化、規范化的質量檢查和評價軟件。
(2)創新性與先進性。由于生產作業單位多、使用軟件各異,質檢系統采用與生產數據一致的軟件環境,在其基礎上配置先進、高效實用的系統軟件和應用軟件,使整個平臺能協調一致地運行。同時,充分考慮其他不動產業務質檢的需求,為后續的維護和升級提供了保障。
(3)擴展性與靈活性。考慮到不同系統間數據共享的問題,筆者采用相同的操作系統、數據庫和應用軟件,來規避系統間的兼容問題;在設計系統功能時,將各個功能模塊化、參數化,為用戶提供更多可以自主配置的參數。
(4)易用性與完整性。系統平臺力求界面簡潔明了,便于用戶操作。
(5)整體性與漸進性。按照平臺的主要工作內容,筆者先做好總體規劃和設計,搭建好整體框架,然后有計劃進行分期建設,逐步進行擴展。
質檢系統的總體結構設計采用c/s 模式,遵循軟件體系結構的層次化模型。表現層用于用戶界面顯示,接受數據輸入,校驗數據有效性,向后臺數據庫發請求,接受返回結果;業務層主要負責對項目的管理、系統設置、成果數據的質量檢查和輸出;組件層是系統實現所需要的一些組件信息;數據層用于任務方案配置、模板文件、檢查結果等數據的存儲;基礎層是系統實現的基礎,是基礎的計算資源、存儲資源、網絡資源的硬件保障。
1.3.1 數據庫設計原則
(1)規范化原則。數據庫減少數據冗余,節約存儲空間,減少相應邏輯和物理的I/O 次數,同時加快了增、刪、改的速度。
(2)完整性原則。數據庫中數據在邏輯上實現一致性、正確性、有效性和相容性上的完整性和功能性。
(3)安全性原則。數據庫的一大特點是數據共享,因此數據庫設計需要考慮安全性問題,數據庫的安全性原則可有效防止不合法的使用所造成的數據泄露、更改或破壞。
1.3.2 數據庫表結構
(1)檢查數據對象表。主要用于存儲提交的成果數據對象,保存著待檢查數據的數據名稱、物理路徑、數據格式及正則表達式等信息。
(2)數據字典表。包含項目名稱、項目內容、項目描述、類型、表達式、備注等字段,用于對項目字典信息的存儲管理。
(3)檢查結果表。用于存儲最終成果數據的檢查結果,需要導出的所有檢查結果信息都會存儲在表中。
(4)檢查規則表。用于存儲項目任務的規則名稱、規則參數、檢查項、算子名稱、算子編號等信息,負責規則參數配置信息的管理。
(5)檢查方案表。包含項目名稱、產品名稱、方案名稱、描述信息等字段,負責方案基本信息的存儲管理。
(6)任務信息表。用于在任務創建或修改時存儲任務名稱、檢查方案、檢查數據等信息,主要包含字段任務名稱、數據路徑、方案編號、備注信息。
(7)系統日志。主要負責對系統運行過程中的一些消息輸出,當系統發生異常時便于開發人員查看日志從而對漏洞進行修復。
筆者按照軟件設計先進性等原則,結合項目實際應用需求,設計質檢系統應用的關鍵技術。
“房地一體”項目成果格式多樣,檢查規定也繁多。為了實現檢查方案的可定制性和檢查參數的靈活配置,筆者在質檢系統采用基于“規則”的檢查方式,即通過解析用戶定義的規則參數,利用反射技術調用相關檢查算子對成果執行相應的檢查(見圖1)。

圖1 面向“規則”的檢驗方法圖
面向“規則”的質量檢查方法的先進性與優點如下。
(1)實現了以算子為接口的檢查功能,包括算子編碼、類別、名稱、參數列表等屬性和執行檢查、意見輸出、日志輸出等。
(2)使用了算子庫結構,每一個算子都是獨立的,即使某一檢查項出現系統問題時,也不影響其他檢查項的進程與結果,系統還可以根據項目需求按照接口規范擴展新的檢查算子。
(3)算子信息的具體化所形成的配置信息是執行檢查的最小單元,同一算子可對應多種檢查規則,可減少算子迭代的次數與時間,有效提升檢查的速度。
(4)通過反射技術實現檢查規則的創建與執行,減少了不同檢查功能模塊之間的耦合性,增強了可擴展的能力。同一算子可定義不同檢查規則,也可應用于不同項目,達到功能復用的目的,節省了開發的時間,提高了開發的效率。
2.2.1 ORM的作用
ORM 是一種程序技術,用于實現面向對象編程語言里不同類型系統的數據之間的轉換。使用ORM 訪問技術承擔業務邏輯層與數據庫層的中間層,通過對象和關系建立映射關系,在應用程序和數據庫之間,建立起一個中間層,僅需直接去操作對象,就可以對數據庫中的記錄進行增加、刪減、修改和查詢,可忽略數據的存放方式。因此,ORM 為業務邏輯層和數據庫建立關系充當橋梁。
2.2.2 ORM的優勢
一是提高開發效率,降低開發成本;二是簡化代碼,減少漏洞數量;三是提高性能;四是隔離數據源,可以很方便地轉換數據庫。
2.2.3 ORM的設計理念
“房地一體”項目涉及的數據較多,對數據庫的寫入、存儲和讀取的操作頻率高。為簡化讀寫操作,提高查詢效率,質檢系統采用ORM技術來實現對數據庫的建設,其本質是將數據從一種形式轉換到另一種形式。在信息共享平臺的設計開發過程中,面向對象程序設計更能接近人的思維活動,利用這種思維進行程序設計,能夠提高編程能力,縮短開發周期,減少維護成本。
組件式GIS 立足于標準的組件式平臺,采用面向對象技術,支持各個組件之間的靈活重組和功能定制,其標準接口由一系列屬性、方法和事件組成,用戶在進行GIS的二次開發時,不需要確切知道空間數據及其關系的詳盡處理算法,便可根據自己的需要輕松進行二次開發,定制自己的GIS 軟件。它成功解決了傳統GIS開發效率低下、系統集成困難和用戶學習耗時長等方面的問題,有效降低了開發成本,節省了人力,并使應用程序具有良好的兼容性和擴展性。
從功能結構上來看,ArcEngine 組件可劃分為基礎服務、數據存儲表達、地圖表達、開發者組件層、擴展功能5 個層次。基礎服務是所有應用程序都需具有的,由 ArcGIS 核心ArcObjects 構成;數據存儲表達各種空間數據的存取過程;地圖表達功能為顯示和創建地圖,包括對地圖的標注、渲染等;開發者組件提供了開發過程中常用的界面控件,如工具條、圖層控件等;擴展功能是在基本地理信息系統的基礎上提供的一些諸如空間分析、空間建模等高級功能。
筆者以廣西某縣數據庫成果檢查為例,按照數據庫質檢要求及匯交標準對數據進行空間拓撲檢查、數據基本檢查、屬性一致性檢查、成果規范性檢查、邏輯性檢查。
對廣西某縣的一個鄉鎮數據進行全自動過機檢查,其數據類型主要包括1 個屬性數據(.MDB 格式)和2 個矢量數據(.SHP 格式),其檢查規則和檢查記錄一一對應,對無問題的檢查項以消息的形式明確此項檢查無錯誤。
完成檢查后,將檢查結果以數據包的形式導出,可在ArcGIS 中看到完整的檢查記錄,其中屬性數據的檢查意見以屬性表的形式表達某一屬性表中某一行數據的某一列出現了錯誤,并提示正確的屬性值,對矢量數據的檢查以點、線、面的矢量形式表達錯誤的位置,并在矢量意見的屬性表中表達檢查意見、檢查規則、檢查數據,對成果的檢查出具最終的質檢報告。
對一個鄉鎮約1 萬宗的數據庫進行過機檢查,耗時10~12 min,之前人工檢查1 萬宗數據庫需2 d 時間,質檢系統節約了時間成本。
筆者設計研發了基于ArcGIS的“房地一體”權籍調查數據質檢系統,以自動化、易操作、高效率、全面性等優勢開展數據質檢,實現了檢查問題的精準定位,避免了作業單位修改不到位、反復上交反復修改的情況,一定程度上推動了“房地一體”數據匯交的進度,并提升了成果質量。