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