劉興旺
(山西省林業調查規劃院,山西 太原 030012)
?
山西省林業信息平臺建設的邏輯檢查初探
劉興旺
(山西省林業調查規劃院,山西 太原 030012)
筆者闡述了邏輯檢查的概念,從完整性檢查、不填項檢查、正確性檢查、邏輯關系檢查、其它屬性檢查5個方面介紹了邏輯檢查體系,分析了在實際操作中容易出現的幾個問題。最后指出了邏輯檢查體系應及時變化更新,設計出全面合理的邏輯檢查架構,更好地服務于山西省林業信息化建設。關鍵詞: 山西省; 基礎數據; SQL; 邏輯檢查; 林業信息平臺
筆者以山西省森林資源二類數據、林地保護利用規劃成果數據及公益林成果數據邏輯檢查為基礎,結合部分小班的外業實地調查數據,同時考慮山西省地形地貌、氣候、水文、土壤等基礎數據,通過綜合分析,構建出一套相對完整的邏輯關系框架。并以國際標準化語言SQL的形式嵌入到邏輯檢查系統中,對全省數據進行檢查驗證,既完善了數據,又改進了邏輯架構系統,為今后山西省林業信息化建設提供了技術支撐。
邏輯檢查是在數據錄入后匯總前進行的工作,為了保證數據因子的正確性、因子間相關關系的合理性以及數據庫相互關系的有效性等,通過編寫計算機程序的方式對錄入數據進行檢查,最終滿足數據庫原理、林學基本原理及數據邏輯關系等相關要求。在森林資源一類、二類及其它林業專項調查內業統計工作中,邏輯檢查非常重要,它既是對前期調查數據的核查認定,也是后期統計匯總的基礎。通過數據邏輯檢查,消除外業調查及數據錄入過程中產生的各類錯誤,避免了統計中修改錯誤后大量的重復性工作,極大地提高了工作效率和數據的準確性,確保了數據質量和成果的可靠性。
2.1 完整性檢查
整個邏輯檢查系統是建立在一套完整的數據庫基礎上。基于數據庫的完整性、山西省已有的林業信息化成果、國家林業信息化建設標準、數據擴展等多方面的要求,筆者為基礎數據庫設計了77個字段。設計字段包括行政字段,如,省、市、縣、鄉、村、林局、林場、林班、小班;基礎地理信息字段,如,地貌、海拔、坡度、坡向、坡位、土壤、土層厚度;林分因子字段,如,樹高、胸徑、郁閉度(蓋度)、林齡、蓄積、樹種、起源等;管理字段,如,工程類別、土地權屬、事權等級等;以及林地保護利用規劃相關字段、林地更新相關字段及其它相關字段。
在整個數據庫錄入初步完成后,即可對數據的完整性進行檢查。該項檢查并不是對所有數據進行檢查,而是對部分數據進行檢查。每條檢查語句都有條件設置,不設置條件的則為全部檢查。將應該填寫但未填寫的項目全部列出,以便于改正。SQL語言格式基本類似,如,檢查小班號是否漏填的語言為:“XIAO_BAN IS NULL OR XIAO_BAN=”(其中XIAO_BAN為小班字段名稱),此檢查未設任何條件,即對所有小班數據進行檢查。完整性檢查共設計編寫了65條規則進行約束。
2.2 不填項檢查
不填項檢查是有條件的進行檢查,即對符合某些條件的因子進行檢查,看是否在不應該填寫的字段中填寫了數據。如,非有林地、疏林地、未成林地不應該填寫每公頃株數,只要填寫就會報錯。SQL語言格式為:“(MEI_GQ_ZS>0)and (DI_LEI not in ‘111’, ‘1112’, ‘1140’, ‘1200’,‘1410’, ‘1420’)”.再如,工程類別只有林地填寫,非林地填寫了就會報錯,SQL語言格式為:“(G_CHENG_LB< >) and (DI_LEI>=‘1800’)”.不填項檢查共設計編寫了30條規則進行約束。
2.3 正確性檢查
完整性檢查和不填項檢查完成并修改后可進行正確性檢查,即對應該填寫且已經填寫的數據進行檢查,檢查其是否正確。如,檢查海拔正確性的語句為:“(HAI_BA>3050 or HAI_BA<170) and (DI_LEI<‘2300’or DI_LEI>=‘2400’) and (DI_LEI<‘2500’ or DI_LEI=‘2540’)”,本語句會對除水域、其它未利用地、其它建設用地外的建設用地進行檢查,然后把海拔>3 050 m或者<170 m的小班列出。正確性檢查共設計編寫了70條規則進行約束。
2.4 邏輯關系檢查
每個應該填寫的屬性因子都填寫正確了,不該填寫的都空了,并不代表整個邏輯檢查就通過了。因為數據因子之間是有相互關系的,每個因子正確不一定能保證因子間的相互關系正確,這就需要對因子之間的相互關系進行檢查。如,平均年齡和齡組關系,有的小班主要樹種為油松,平均年齡為30 a,齡組填寫3,單純說齡組可以填1~5,單純說年齡可以填30 a,但兩者放到一起就不符合“優勢樹種(組)齡組劃分表”了。又如,地類和林種的關系,地類和起源的關系,樹種和林種、地類的關系以及林種和森林類別的關系等。邏輯關系檢查共設計編寫了40條規則進行約束。
2.5 其它屬性檢查
此部分是對完整性、正確性、必填項、邏輯關系檢查外的其它屬性進行檢查。如,一定范圍內的小班號是否有重復,行政面積、林地面積、公益林面積等是否正確,對不正確的信息給予提示。
在邏輯檢查實際操作過程中,并非完全按照上述順序進行。一般情況下,首先應該進行圖形檢查,如,小班重疊、縫隙、碎小班、多部件、超越邊界(包括村界、鄉界、縣界)等。因為圖形與屬性是相關的,圖形修改后會影響到屬性因子的變化,特別是面積大小的變化。所以,應在圖形檢查修改完成后,再進行屬性檢查修改。
1) 有的地區在建立林業信息化平臺時,為了減少工作量,采用統一賦值的辦法進行屬性因子的填寫,但忽視了因子之間的邏輯關系和因子基本屬性的正確性,致使出現了較多的錯誤。如,海拔因子,部分處于平原的縣在整個區域出現了一個高程值,不符合實際。
2) 輸入時人為失誤。如,海拔應該是“400”,結果輸為“40”;平均胸徑為“19.2”,結果輸為“192”.類似這樣的錯誤很難避免,也很難發現。通過設置條件進行邏輯檢查,就能很容易發現這些問題。
3) 對林業基本知識掌握不準確。如,將混交林的主要樹種成數填寫為“80%”,實際不能超過“65%”;疏林地郁閉度填寫的數值大于“0.2”,實際不能超過0.2.對于不熟悉林業相關知識的人員很難發現這些問題,而邏輯檢查都能給出提示。
4) 對數據庫基本原理不了解。如,按照數據庫設計要求,江河流域的填寫統一采用3位編碼,汾河流域應填寫“075”,如果填寫成“75”,系統就會報錯。其它類似問題都是為了滿足數據庫的基本原理。
在山西省林業信息平臺建設中,邏輯檢查既完善了基礎數據庫,又對邏輯關系架構進行了一次全面梳理,刪除了部分冗余的邏輯條件,修改了個別錯誤,使整個邏輯關系架構更加合理、科學。該平臺的建設不但符合山西省的實際情況,而且能夠滿足國家相關標準要求。但邏輯檢查體系不是一成不變的,隨著相關標準要求、屬性因子域值以及應用系統服務要求的變化,邏輯檢查也要逐步變化更新,只有熟悉數據庫基本原理、深刻理解林業專業知識、了解山西省林業發展狀況,才能設計出全面合理的邏輯檢查架構,才能更好地服務于山西省林業信息化建設。
[1] 謝 中.基于Excel函數應用的森林資源二類調查數據邏輯檢查[J].林業調查規劃,2010(6):59-62.
[2] 馮益明,洪玲霞,王明亮.基于網絡數據庫下的小班數據邏輯檢查[J].林業資源管理,1999(2):64-67.
[3] 丁 勝.縣級森林資源信息管理系統的研制與應用[D].南京:南京林業大學,2006.
[4] 徐映霞.Excel在森林資源二類調查內業統計中的應用[J].林業實用技術,2011(1): 62-64.
[5] 蔣麗秀,溫小榮,陳玉體,等.森林資源二類調查數據的經驗收獲表編制及應用[J]. 森林工程,2014(1):1-4.
2015-01-14
劉興旺(1983— ),男,山西興縣人,2009年畢業于昆明理工大學,助理工程師。
F326.2
C
1007-726X(2015)02-0054-02