亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于表驅(qū)動的動態(tài)數(shù)據(jù)上報(bào)管理系統(tǒng)研究

        2018-01-17 08:00:33鄭海寧顧進(jìn)鋒陸書涵張大紅
        關(guān)鍵詞:字段校驗(yàn)構(gòu)件

        李 林 鄭海寧 彭 帆 顧進(jìn)鋒 陸書涵 張大紅

        (1.中國農(nóng)業(yè)大學(xué)信息與電氣工程學(xué)院, 北京 100083; 2.俄亥俄州立大學(xué)計(jì)算機(jī)與信息科學(xué), 哥倫布市 43210;3.北京林業(yè)大學(xué)經(jīng)濟(jì)管理學(xué)院, 北京 100083)

        引言

        隨著計(jì)算機(jī)信息技術(shù)的飛速發(fā)展,信息管理系統(tǒng)廣泛應(yīng)用于各個(gè)領(lǐng)域[1-6],相比于傳統(tǒng)人工管理方式,使用計(jì)算機(jī)進(jìn)行信息管理具有無法比擬的優(yōu)勢:數(shù)據(jù)處理效率高、數(shù)據(jù)查詢快速準(zhǔn)確以及信息便于長期保存等。信息管理系統(tǒng)種類較多,包含辦公自動化系統(tǒng)、通信系統(tǒng)、交易處理系統(tǒng)、決策支持系統(tǒng)和數(shù)據(jù)填報(bào)及統(tǒng)計(jì)系統(tǒng)等,其中數(shù)據(jù)填報(bào)及統(tǒng)計(jì)系統(tǒng)在生態(tài)環(huán)境監(jiān)測和農(nóng)業(yè)生產(chǎn)信息管理中廣泛應(yīng)用[5-9]。

        數(shù)據(jù)填報(bào)及統(tǒng)計(jì)系統(tǒng)的一般業(yè)務(wù)流程為:填報(bào)人員填寫并上報(bào)數(shù)據(jù),在數(shù)據(jù)中心集中進(jìn)行數(shù)據(jù)管理、統(tǒng)計(jì)和計(jì)算工作,統(tǒng)計(jì)與計(jì)算的結(jié)果供各級用戶查詢?yōu)g覽。在傳統(tǒng)的數(shù)據(jù)填報(bào)及統(tǒng)計(jì)系統(tǒng)實(shí)現(xiàn)過程中,存在許多實(shí)際問題需要解決:反復(fù)從零開始,開發(fā)各種不同應(yīng)用目的的數(shù)據(jù)填報(bào)及統(tǒng)計(jì)系統(tǒng),使得單個(gè)系統(tǒng)的開發(fā)速度慢、周期長,開發(fā)效率低下,同時(shí)造成數(shù)據(jù)填報(bào)及統(tǒng)計(jì)類系統(tǒng)領(lǐng)域中代碼冗余量很大;將已完成的系統(tǒng)更換不同數(shù)據(jù)庫類型運(yùn)行,需要大量修改程序,系統(tǒng)本身無法靈活適應(yīng)不同的數(shù)據(jù)庫環(huán)境;當(dāng)系統(tǒng)需求改變時(shí),需要不斷修改代碼和測試程序,系統(tǒng)維護(hù)困難,不易擴(kuò)充。

        表驅(qū)動法是改善系統(tǒng)可維護(hù)性和提高系統(tǒng)可擴(kuò)展性的有效手段之一,研究者多建立在具體需求結(jié)構(gòu)化分析的基礎(chǔ)上,對其研究以簡化復(fù)雜任務(wù),提高工作效率[10-12]。軟件復(fù)用是提高軟件開發(fā)效率的通用思想,也是提高軟件可維護(hù)性的高效手段。可復(fù)用軟件的應(yīng)用可極大降低相關(guān)領(lǐng)域內(nèi)軟件重復(fù)設(shè)計(jì)帶來的資源浪費(fèi),提高同領(lǐng)域內(nèi)軟件的規(guī)范化和標(biāo)準(zhǔn)化[13-17]。

        本文針對傳統(tǒng)的數(shù)據(jù)填報(bào)及統(tǒng)計(jì)系統(tǒng)實(shí)現(xiàn)過程中存在的問題,在表驅(qū)動思想下,進(jìn)行相關(guān)數(shù)據(jù)庫設(shè)計(jì),并在此基礎(chǔ)上設(shè)計(jì)可復(fù)用軟件——?jiǎng)討B(tài)數(shù)據(jù)上報(bào)管理系統(tǒng),完成基于表驅(qū)動的動態(tài)數(shù)據(jù)上報(bào)管理系統(tǒng),并將其應(yīng)用到中國林業(yè)生態(tài)資源環(huán)境承載力:數(shù)據(jù)投放器和中國生態(tài)安全指數(shù)系統(tǒng)中,以測試該可復(fù)用軟件的有效性和實(shí)用性。

        1 數(shù)據(jù)填報(bào)及統(tǒng)計(jì)系統(tǒng)

        在數(shù)據(jù)填報(bào)及統(tǒng)計(jì)系統(tǒng)中,數(shù)據(jù)的輸入、運(yùn)算和輸出是其基本功能。在數(shù)據(jù)輸入時(shí),數(shù)據(jù)校驗(yàn)是重要的基礎(chǔ)性功能;進(jìn)行統(tǒng)計(jì)分析時(shí),填補(bǔ)缺失數(shù)據(jù)是首先要解決的問題;統(tǒng)計(jì)分析后,統(tǒng)計(jì)結(jié)果查詢輸出是必不可少的部分。為此,設(shè)計(jì)基于表驅(qū)動的DDTMS,可以解決信息管理系統(tǒng)中數(shù)據(jù)填報(bào)及統(tǒng)計(jì)類系統(tǒng)的共性問題。

        數(shù)據(jù)填報(bào)及統(tǒng)計(jì)系統(tǒng)中基于表驅(qū)動的DDTMS與應(yīng)用間的關(guān)系如圖1所示。數(shù)據(jù)層的指標(biāo)結(jié)構(gòu)表是數(shù)據(jù)庫的核心,包含系統(tǒng)所需收集的指標(biāo)體系,是指標(biāo)和指標(biāo)基礎(chǔ)數(shù)據(jù)以及指標(biāo)和指標(biāo)填報(bào)數(shù)據(jù)間的橋梁。而統(tǒng)計(jì)項(xiàng)結(jié)構(gòu)表是系統(tǒng)的輔助結(jié)構(gòu)表,包含系統(tǒng)所需統(tǒng)計(jì)的內(nèi)容項(xiàng),是統(tǒng)計(jì)項(xiàng)和統(tǒng)計(jì)數(shù)據(jù)間的橋梁。兩個(gè)結(jié)構(gòu)表共同驅(qū)動上層的DDTMS完成其相應(yīng)功能。DDTMS位于中間層,受數(shù)據(jù)層2個(gè)結(jié)構(gòu)表驅(qū)動服務(wù)于應(yīng)用層中的各應(yīng)用。基于表驅(qū)動的數(shù)據(jù)上報(bào)管理系統(tǒng)動態(tài)提供數(shù)據(jù)訪問、數(shù)據(jù)校驗(yàn)、空缺數(shù)據(jù)填補(bǔ)以及統(tǒng)計(jì)結(jié)果查詢輸出功能,通用于數(shù)據(jù)填報(bào)及統(tǒng)計(jì)系統(tǒng)中。

        圖1 DDTMS與應(yīng)用間的關(guān)系示意圖Fig.1 Sketch of relationship between DDTMS and application

        2 表驅(qū)動及數(shù)據(jù)庫設(shè)計(jì)

        在不同的數(shù)據(jù)填報(bào)及統(tǒng)計(jì)系統(tǒng)中,所需收集的指標(biāo)和指標(biāo)描述參數(shù)不同,并且需提供具體選項(xiàng)以供用戶選擇的描述參數(shù)在不同指標(biāo)間存在差異。將指標(biāo)及其相關(guān)數(shù)據(jù)校驗(yàn)和空缺數(shù)據(jù)填補(bǔ)通過具體的程序?qū)崿F(xiàn),同時(shí)將指標(biāo)、指標(biāo)描述參數(shù)和具體選項(xiàng)內(nèi)容以固定的格式和內(nèi)容在數(shù)據(jù)填報(bào)及查詢界面中顯示,開發(fā)效率低,同時(shí)系統(tǒng)難以靈活適應(yīng)各種條件的變化,在不同的數(shù)據(jù)填報(bào)及統(tǒng)計(jì)系統(tǒng)間更缺乏普適性。

        圖2 數(shù)據(jù)庫表間關(guān)系圖Fig.2 Relationship diagram between database tables

        針對上述問題,基于表驅(qū)動法[10-12]設(shè)計(jì)可擴(kuò)展數(shù)據(jù)庫[18-19],表間關(guān)系圖如圖2所示。其中T_ZBB是指標(biāo)結(jié)構(gòu)表(以下簡稱結(jié)構(gòu)表)。結(jié)構(gòu)表是建立在具體需求結(jié)構(gòu)化分析的基礎(chǔ)上,形成的指標(biāo)與不同功能中具體信息的對應(yīng)關(guān)系表,是系統(tǒng)的驅(qū)動表,也是整個(gè)數(shù)據(jù)庫的核心表。T_ZB0_LY、T_ZB0_DW 和T_ZB0_KQ這3個(gè)表是基礎(chǔ)數(shù)據(jù)表,分別存放供用戶選擇的指標(biāo)數(shù)據(jù)來源單位、數(shù)值單位和數(shù)據(jù)空缺原因3個(gè)指標(biāo)描述參數(shù)的具體選項(xiàng)內(nèi)容。T_ZB0_SJ_LY、T_ZB0_SJ_DW、T_ZB0_SJ_KQ和T_ZB0_SJ_YS這4個(gè)表是填報(bào)數(shù)據(jù)表,分別存放已收集的不同地區(qū)不同年份的來源單位、數(shù)值單位、數(shù)據(jù)空缺原因和數(shù)值數(shù)據(jù)。表T_ZB0_SJ與表T_ZB0_SJ_YS相對應(yīng),存放將表T_ZB0_SJ_YS中數(shù)據(jù)轉(zhuǎn)換為標(biāo)準(zhǔn)單位后的數(shù)據(jù)。T_TJB表是統(tǒng)計(jì)項(xiàng)結(jié)構(gòu)表,是系統(tǒng)的輔助結(jié)構(gòu)表,存放統(tǒng)計(jì)的內(nèi)容項(xiàng)。T_ZB0_SJ_TJ是統(tǒng)計(jì)結(jié)果表,存放填報(bào)后的統(tǒng)計(jì)數(shù)據(jù)。

        數(shù)據(jù)校驗(yàn)分為單指標(biāo)校驗(yàn)和多指標(biāo)校驗(yàn)兩部分。在結(jié)構(gòu)表中,ZBB_JY字段中存放正則表達(dá)式,作為對應(yīng)指標(biāo)的單指標(biāo)校驗(yàn)條件;ZBB_DJY字段中存放指標(biāo)間的關(guān)系表達(dá)式,作為多指標(biāo)校驗(yàn)條件;ZBB_ZB字段用于存放指標(biāo)相對應(yīng)的填補(bǔ)方式。實(shí)現(xiàn)了指標(biāo)與不同功能的具體實(shí)現(xiàn)方式間的相互對應(yīng),邏輯關(guān)系結(jié)構(gòu)清晰,便于后續(xù)調(diào)用。在具體功能實(shí)現(xiàn)時(shí),如圖3所示,將具體業(yè)務(wù)處理程序中變化頻繁的部分從程序中抽離,存放到結(jié)構(gòu)表中,將業(yè)務(wù)處理程序轉(zhuǎn)換為可動態(tài)改變的結(jié)構(gòu)表和抽象控制程序[12]。抽象控制程序通過調(diào)用結(jié)構(gòu)表中的數(shù)據(jù)實(shí)現(xiàn)具體功能,不隨具體需求的改變而變化。當(dāng)需要收集的指標(biāo)發(fā)生變化時(shí),只需要增減結(jié)構(gòu)表中的記錄,并通過ZBB_JY、ZBB_DJY和ZBB_ZB字段調(diào)配具體指標(biāo)對應(yīng)的單指標(biāo)校驗(yàn)條件、多指標(biāo)校驗(yàn)條件和空缺數(shù)據(jù)填補(bǔ)方式即可,無需修改程序,極大地提高了系統(tǒng)的可擴(kuò)展性和易維護(hù)性。

        圖3 在表驅(qū)動思想下實(shí)現(xiàn)相關(guān)功能Fig.3 Realizing function through table-driven methods

        受橋接模式[20]設(shè)計(jì)思想的啟發(fā),將一個(gè)指標(biāo)所對應(yīng)的多個(gè)描述參數(shù)看作多個(gè)實(shí)體,每個(gè)實(shí)體對應(yīng)多個(gè)選項(xiàng)內(nèi)容。每個(gè)實(shí)體對應(yīng)一張數(shù)據(jù)庫表,通過增減表的個(gè)數(shù)實(shí)現(xiàn)描述參數(shù)的有效擴(kuò)展,通過增減實(shí)體所對應(yīng)的選項(xiàng)內(nèi)容實(shí)現(xiàn)相應(yīng)描述參數(shù)下具體選項(xiàng)內(nèi)容的有效擴(kuò)展。對于部分描述參數(shù),提供具體選項(xiàng)以供用戶選擇,在一定程度上保障了數(shù)據(jù)錄入的規(guī)范性。具體設(shè)計(jì)時(shí),在結(jié)構(gòu)表中,通過ZBB_LY、ZBB_DW 和ZBB_KQ 3個(gè)字段實(shí)現(xiàn)指標(biāo)與每個(gè)描述參數(shù)的具體選項(xiàng)內(nèi)容間的關(guān)聯(lián)。當(dāng)指標(biāo)的描述參數(shù)發(fā)生變化時(shí),可增減基礎(chǔ)數(shù)據(jù)表和結(jié)構(gòu)表中相應(yīng)字段;當(dāng)指標(biāo)描述參數(shù)中的具體選項(xiàng)內(nèi)容發(fā)生變化時(shí),可直接修改相應(yīng)基礎(chǔ)數(shù)據(jù)表中的具體內(nèi)容。與數(shù)據(jù)校驗(yàn)和空缺數(shù)據(jù)填補(bǔ)類似,數(shù)據(jù)填報(bào)及查詢界面中的指標(biāo)、指標(biāo)描述參數(shù)和具體選項(xiàng)內(nèi)容均通過抽象控制程序從數(shù)據(jù)庫中動態(tài)獲取并顯示。通過這種可靈活擴(kuò)展的設(shè)計(jì)方式,系統(tǒng)可很好地適應(yīng)指標(biāo)、指標(biāo)描述參數(shù)和具體選項(xiàng)內(nèi)容的變化。

        在結(jié)構(gòu)表中,ZBB_YX字段中的內(nèi)容用于控制指標(biāo)的有效性。ZBB_ZD字段的內(nèi)容建立了指標(biāo)與具體填報(bào)數(shù)據(jù)表和統(tǒng)計(jì)結(jié)果表中ZB0_SJ_001、ZB0_SJ_002,…,ZB0_SJ_160字段的對應(yīng)關(guān)系,節(jié)省了大量指標(biāo)名稱的存儲開銷;同時(shí)代表相應(yīng)指標(biāo)的變量表示,構(gòu)建了ZBB_DJY字段中指標(biāo)間的關(guān)系表達(dá)式。同樣,統(tǒng)計(jì)項(xiàng)結(jié)構(gòu)表中TJB_ZD字段內(nèi)容建立統(tǒng)計(jì)項(xiàng)與統(tǒng)計(jì)結(jié)果表中字段的對應(yīng)關(guān)系。通過基礎(chǔ)數(shù)據(jù)表將指標(biāo)描述參數(shù)的具體選項(xiàng)內(nèi)容編碼,在存儲指標(biāo)數(shù)據(jù)時(shí),以數(shù)字編碼代替冗長的選項(xiàng)內(nèi)容存儲于填報(bào)數(shù)據(jù)表,實(shí)現(xiàn)數(shù)據(jù)壓縮,從而節(jié)省傳輸與存儲開銷?;诒眚?qū)動法的可擴(kuò)展數(shù)據(jù)庫極大改善了系統(tǒng)的靈活性與普適性,為后續(xù)設(shè)計(jì)和實(shí)現(xiàn)DDTMS奠定基礎(chǔ)。

        3 動態(tài)數(shù)據(jù)上報(bào)管理系統(tǒng)

        3.1 系統(tǒng)設(shè)計(jì)

        本文所設(shè)計(jì)的DDTMS位于操作系統(tǒng)之上,通過網(wǎng)絡(luò)為上層分布式應(yīng)用軟件——數(shù)據(jù)填報(bào)及統(tǒng)計(jì)系統(tǒng)提供數(shù)據(jù)訪問、數(shù)據(jù)校驗(yàn)、空缺數(shù)據(jù)填補(bǔ)以及統(tǒng)計(jì)結(jié)果查詢輸出服務(wù)。

        3.1.1系統(tǒng)框架體系結(jié)構(gòu)

        分析數(shù)據(jù)填報(bào)及統(tǒng)計(jì)系統(tǒng)業(yè)務(wù)模式,同時(shí)考慮客戶端操作方便、簡單,本文設(shè)計(jì)的DDTMS采用B/S3層體系結(jié)構(gòu)即Browser/Web Server/DataBase Server。DDTMS整個(gè)系統(tǒng)框架如圖4所示。其中數(shù)據(jù)訪問構(gòu)件、多指標(biāo)校驗(yàn)構(gòu)件、空缺數(shù)據(jù)填補(bǔ)構(gòu)件和統(tǒng)計(jì)結(jié)果查詢輸出構(gòu)件通過C#語言實(shí)現(xiàn),運(yùn)行于Web服務(wù)器的操作系統(tǒng)上;而單指標(biāo)校驗(yàn)構(gòu)件基于jQuery框架研發(fā),運(yùn)行于客戶端操作系統(tǒng)上,提供單指標(biāo)即時(shí)校驗(yàn)服務(wù)[21]。DDTMS通過數(shù)據(jù)訪問構(gòu)件與數(shù)據(jù)庫交互,利用HTTP協(xié)議借助Internet與客戶端瀏覽器進(jìn)行信息通信,數(shù)據(jù)以JSON形式傳輸。

        圖4 DDTMS框架體系結(jié)構(gòu)圖Fig.4 DDTMS framework architecture

        3.1.2系統(tǒng)功能設(shè)計(jì)

        圖5 DDTMS功能模塊組織結(jié)構(gòu)圖Fig.5 Structure diagram of DDTMS functional modules

        圖5是DDTMS功能模塊組織結(jié)構(gòu),DDTMS主要?jiǎng)澐譃閿?shù)據(jù)庫接口管理模塊、數(shù)據(jù)庫訪問模塊、單指標(biāo)數(shù)據(jù)校驗(yàn)?zāi)K、多指標(biāo)數(shù)據(jù)校驗(yàn)?zāi)K、空缺數(shù)據(jù)填補(bǔ)模塊、統(tǒng)計(jì)結(jié)果查詢模塊和統(tǒng)計(jì)結(jié)果輸出模塊。數(shù)據(jù)庫接口管理負(fù)責(zé)對DDTMS中與不同數(shù)據(jù)庫交互的接口進(jìn)行管理及調(diào)用;數(shù)據(jù)庫訪問實(shí)現(xiàn)對數(shù)據(jù)庫中具體表及字段的操作;單指標(biāo)數(shù)據(jù)校驗(yàn)和多指標(biāo)數(shù)據(jù)校驗(yàn)負(fù)責(zé)對填報(bào)的指標(biāo)數(shù)據(jù)進(jìn)行指標(biāo)及指標(biāo)間的校驗(yàn);空缺數(shù)據(jù)填補(bǔ)根據(jù)具體指標(biāo)的性質(zhì)對具有可填補(bǔ)性質(zhì)的指標(biāo)進(jìn)行空缺數(shù)據(jù)填補(bǔ);統(tǒng)計(jì)結(jié)果查詢和統(tǒng)計(jì)結(jié)果輸出是針對于統(tǒng)計(jì)完成后的結(jié)果數(shù)據(jù),實(shí)現(xiàn)根據(jù)用戶的查詢條件,從數(shù)據(jù)庫中查詢并輸出到查詢顯示界面。

        3.2 主要構(gòu)件設(shè)計(jì)

        3.2.1數(shù)據(jù)訪問構(gòu)件

        圖6 數(shù)據(jù)訪問構(gòu)件設(shè)計(jì)模型Fig.6 Design model of data access component

        數(shù)據(jù)訪問構(gòu)件支持DDTMS對不同數(shù)據(jù)庫訪問,支撐上層業(yè)務(wù)邏輯的實(shí)現(xiàn)。分析其內(nèi)部具體的業(yè)務(wù)實(shí)現(xiàn),筆者將數(shù)據(jù)訪問構(gòu)件分為訪問層、工廠層和DAL應(yīng)用層。數(shù)據(jù)訪問構(gòu)件的設(shè)計(jì)模型如圖6所示。

        訪問層將不同數(shù)據(jù)庫中連接關(guān)閉數(shù)據(jù)庫、執(zhí)行SQL語句和執(zhí)行存儲過程等操作方法分別進(jìn)行封裝,形成一系列對不同數(shù)據(jù)庫的訪問類。支持SQL Server、MySQL、Oracle、Access等基本數(shù)據(jù)庫。為使數(shù)據(jù)訪問構(gòu)件可以自動靈活地與不同數(shù)據(jù)庫交互,在工廠層采用工廠模式[22-23]與反射相結(jié)合的方式。采用工廠模式的工廠層類圖如圖7所示。SQLServerDbHelper、OracleDbHelper和AccessDbHelper等為不同數(shù)據(jù)庫的訪問類。接口IDbHelper中包含一系列抽象方法以定義所需要的訪問功能:連接和關(guān)閉數(shù)據(jù)庫,執(zhí)行一條或多條SQL語句、執(zhí)行存儲過程等等,由于包含的方法很多,在類圖中以省略號表示。每個(gè)訪問類都實(shí)現(xiàn)接口IDbHelper,提供各自具體的數(shù)據(jù)庫訪問方法。根據(jù)配置文件中選擇的數(shù)據(jù)庫,工廠類DbFactory的構(gòu)造方法通過反射機(jī)制將相應(yīng)數(shù)據(jù)庫對應(yīng)的訪問類實(shí)例化,生成數(shù)據(jù)庫訪問對象,實(shí)現(xiàn)對其它數(shù)據(jù)庫訪問類的屏蔽。在DAL應(yīng)用層中,為了將業(yè)務(wù)邏輯與數(shù)據(jù)庫之間解耦合,以使數(shù)據(jù)庫層對于業(yè)務(wù)邏輯透明,實(shí)現(xiàn)真正的完全面向?qū)ο?,本文?shù)據(jù)訪問構(gòu)件將數(shù)據(jù)庫中的表映射為實(shí)體對象Model。在對象-關(guān)系映射引擎中[24],通過工廠類調(diào)用GetDbHelper方法直接獲取當(dāng)前數(shù)據(jù)庫所對應(yīng)的數(shù)據(jù)庫訪問對象,實(shí)現(xiàn)對相應(yīng)實(shí)體對象Model的持久化。

        圖7 工廠層類圖Fig.7 Class diagram of factory layer

        3.2.2數(shù)據(jù)校驗(yàn)構(gòu)件

        數(shù)據(jù)校驗(yàn)[25-26]是指標(biāo)數(shù)據(jù)填報(bào)的關(guān)鍵環(huán)節(jié)之一。數(shù)據(jù)填報(bào)時(shí),多出現(xiàn)數(shù)值格式錯(cuò)誤、數(shù)值空缺、數(shù)值精度不統(tǒng)一、數(shù)值大小不符合邏輯和指標(biāo)數(shù)值間的關(guān)系不滿足業(yè)務(wù)規(guī)則等情況。為了保障所收集數(shù)據(jù)的可用性,在數(shù)據(jù)錄入時(shí),對數(shù)據(jù)進(jìn)行了嚴(yán)格的“過濾”,保障數(shù)據(jù)庫中數(shù)據(jù)的準(zhǔn)確性、可用性和完整性。為此,在DDTMS中設(shè)計(jì)數(shù)據(jù)校驗(yàn)構(gòu)件,數(shù)據(jù)校驗(yàn)構(gòu)件的架構(gòu)如圖8所示。按照檢驗(yàn)實(shí)現(xiàn)的邏輯復(fù)雜度,將幾種數(shù)值出現(xiàn)錯(cuò)誤的情況進(jìn)行劃分,分別設(shè)計(jì)單指標(biāo)校驗(yàn)構(gòu)件和多指標(biāo)校驗(yàn)構(gòu)件,單指標(biāo)校驗(yàn)構(gòu)件負(fù)責(zé)處理邏輯復(fù)雜度低的檢驗(yàn),而多指標(biāo)校驗(yàn)構(gòu)件負(fù)責(zé)檢驗(yàn)較為復(fù)雜的指標(biāo)間的業(yè)務(wù)邏輯??紤]到網(wǎng)絡(luò)傳輸開銷,單指標(biāo)校驗(yàn)構(gòu)件在客戶端通過輕量級的jQuery方式實(shí)現(xiàn),以加快檢驗(yàn)的速度,提高系統(tǒng)交互性[21]。

        圖8 數(shù)據(jù)校驗(yàn)構(gòu)件架構(gòu)Fig.8 Architecture of data verification component

        圖10 多指標(biāo)檢驗(yàn)?zāi)J紽ig.10 Multi-index logic test

        圖9 單指標(biāo)檢驗(yàn)?zāi)J紽ig.9 Single index test

        單指標(biāo)校驗(yàn)構(gòu)件中的單指標(biāo)檢驗(yàn)用于檢驗(yàn)數(shù)據(jù)格式、空缺和精度,并將問題數(shù)據(jù)及錯(cuò)誤提示返回給用戶,通過用戶核對修改完成校驗(yàn)。單指標(biāo)檢驗(yàn)?zāi)J绞疽鈭D如圖9所示。需要用戶錄入的指標(biāo)來自于結(jié)構(gòu)表。結(jié)構(gòu)表ZBB_JY字段中存放相應(yīng)指標(biāo)數(shù)值檢驗(yàn)的正則表達(dá)式,與用戶輸入的指標(biāo)數(shù)值形成一一對應(yīng)的關(guān)系。以此為基礎(chǔ),通過jQuery抽象控制程序?qū)崿F(xiàn)客戶端單指標(biāo)檢驗(yàn)。當(dāng)指標(biāo)或者具體指標(biāo)的檢驗(yàn)條件發(fā)生變化時(shí),通過增減結(jié)構(gòu)表中的記錄或更改ZBB_JY字段中相應(yīng)正則表達(dá)式式進(jìn)行維護(hù),無需更改jQuery抽象控制程序,方便維護(hù)的同時(shí),可實(shí)現(xiàn)指標(biāo)的快速擴(kuò)展。針對無法嚴(yán)格限定其數(shù)值具體值域范圍的指標(biāo),設(shè)計(jì)波動檢驗(yàn)。通過分析數(shù)據(jù)庫中的歷史數(shù)據(jù),給出預(yù)期的指標(biāo)數(shù)值。將其與用戶輸入的指標(biāo)數(shù)值比較,若相差過大,則僅僅給予用戶提醒,并不對指標(biāo)數(shù)值進(jìn)行“過濾”操作。通過波動檢驗(yàn),一方面規(guī)避了極端因素影響的問題,另一方面也有效解決了因用戶失誤導(dǎo)致的指標(biāo)數(shù)值過大或過小問題。多指標(biāo)檢驗(yàn)時(shí),以表達(dá)式的形式描述指標(biāo)間的業(yè)務(wù)規(guī)則,其中表達(dá)式以字符串的形式存儲于結(jié)構(gòu)表中的ZBB_DJY字段。考慮多指標(biāo)檢驗(yàn)的具體實(shí)現(xiàn),多指標(biāo)校驗(yàn)構(gòu)件需要在Web服務(wù)器完成。多指標(biāo)檢驗(yàn)設(shè)計(jì)如圖10所示,其中DBcheck類中的ZD、ZBName和GS屬性分別與結(jié)構(gòu)表中ZBB_ZD、ZBB_MC和ZBB_DJY字段對應(yīng)。圖10中的抽象控制程序內(nèi)包含了多指標(biāo)檢驗(yàn)實(shí)現(xiàn)的過程及方法。為了執(zhí)行字符串類型的關(guān)系表達(dá)式同時(shí)判斷并給出相應(yīng)指標(biāo)的錯(cuò)誤信息提示,動態(tài)創(chuàng)建多指標(biāo)檢驗(yàn)代碼,經(jīng)過代碼的動態(tài)編譯并執(zhí)行[27],實(shí)現(xiàn)多指標(biāo)檢驗(yàn)功能。與單指標(biāo)校驗(yàn)構(gòu)件類似,當(dāng)指標(biāo)體系或其內(nèi)部關(guān)系發(fā)生改變時(shí),只需要更改結(jié)構(gòu)表內(nèi)容,無需改動抽象控制程序便可實(shí)現(xiàn)相應(yīng)內(nèi)容及多指標(biāo)檢驗(yàn)功能的動態(tài)改變。數(shù)據(jù)校驗(yàn)構(gòu)件為可復(fù)用構(gòu)件,將校驗(yàn)的具體需求內(nèi)容與功能實(shí)現(xiàn)解耦合,為DDTMS提供數(shù)據(jù)校驗(yàn)功能。

        3.2.3空缺數(shù)據(jù)填補(bǔ)構(gòu)件

        由于數(shù)據(jù)采集能力有限或數(shù)據(jù)丟失等各種原因,使得用戶填報(bào)時(shí)有空缺數(shù)據(jù)存在,造成系統(tǒng)收集的數(shù)據(jù)不全。為此,根據(jù)指標(biāo)性質(zhì)和具體的特性,采取合理的方式填補(bǔ)[28-29]。

        分析所需收集的指標(biāo)性質(zhì),將可填補(bǔ)的指標(biāo)抽象為類——可填補(bǔ)指標(biāo),將其中可通過相同方法填補(bǔ)的指標(biāo)抽象為一類??筛鶕?jù)不同類指標(biāo)實(shí)際填補(bǔ)需求,創(chuàng)建并擴(kuò)展可填補(bǔ)指標(biāo)的子類。類圖如圖11所示,人口型空間類指標(biāo)、面積型空間類指標(biāo)等均繼承自可填補(bǔ)指標(biāo),作為可填補(bǔ)指標(biāo)的子類,它們根據(jù)各自的填補(bǔ)算法實(shí)現(xiàn)了可填補(bǔ)指標(biāo)的抽象方法:空缺數(shù)據(jù)填補(bǔ)方法。在明確類及類間關(guān)系的基礎(chǔ)上,設(shè)計(jì)并完成空缺數(shù)據(jù)填補(bǔ)構(gòu)件。其內(nèi)部工作模式如圖12所示。結(jié)構(gòu)表中的ZBB_ZB字段給出了具體指標(biāo)的填補(bǔ)方式,填補(bǔ)方式與可填補(bǔ)指標(biāo)子類之間為一一對應(yīng)關(guān)系。在空缺數(shù)據(jù)填補(bǔ)時(shí),通過抽象控制程序確定具體指標(biāo)的所屬類,并調(diào)用相應(yīng)類的空缺數(shù)據(jù)填補(bǔ)方法實(shí)現(xiàn)具體的數(shù)據(jù)填補(bǔ)。當(dāng)指標(biāo)發(fā)生變化時(shí),只需更改結(jié)構(gòu)表;當(dāng)需要增添新的填補(bǔ)方式時(shí),可通過創(chuàng)建可填補(bǔ)指標(biāo)子類,并在子類中實(shí)現(xiàn)其空缺數(shù)據(jù)填補(bǔ)方法。將不同指標(biāo)及其填補(bǔ)方法與填補(bǔ)功能的具體實(shí)現(xiàn)解耦合,提高了空缺數(shù)據(jù)填補(bǔ)構(gòu)件的可擴(kuò)展性,良好的可擴(kuò)展性支撐其可進(jìn)行指標(biāo)及空缺數(shù)據(jù)填補(bǔ)方法的快速擴(kuò)充,進(jìn)而提高DDTMS的普適性。

        圖11 可填補(bǔ)指標(biāo)類圖Fig.11 Class diagram of index

        圖12 空缺數(shù)據(jù)填補(bǔ)構(gòu)件內(nèi)部工作模式Fig.12 Internal working model of vacancy data filling component

        3.2.4統(tǒng)計(jì)結(jié)果查詢輸出構(gòu)件

        在數(shù)據(jù)填報(bào)及統(tǒng)計(jì)類系統(tǒng)中,查詢并查看指標(biāo)統(tǒng)計(jì)結(jié)果是必不可少的部分。本文總結(jié)其實(shí)現(xiàn)的一般過程,提取出統(tǒng)計(jì)結(jié)果查詢輸出部分,設(shè)計(jì)統(tǒng)計(jì)結(jié)果查詢輸出構(gòu)件,作為解決查詢查看統(tǒng)計(jì)結(jié)果問題的通用構(gòu)件。

        在統(tǒng)計(jì)結(jié)果查詢輸出構(gòu)件中,將用戶選擇的查詢條件作為輸入?yún)?shù),根據(jù)輸入?yún)?shù)查詢統(tǒng)計(jì)結(jié)果數(shù)據(jù)庫,將查詢出的數(shù)據(jù)封裝于業(yè)務(wù)實(shí)體對象中并輸出。如圖13所示。分析用戶查詢條件,將輸入?yún)?shù)分為3類,第1類為一個(gè)地區(qū)一個(gè)年份統(tǒng)計(jì)項(xiàng)查詢,參數(shù)包括用戶查詢的地區(qū)、查詢的年份和查詢的統(tǒng)計(jì)項(xiàng)信息;第2類為多個(gè)地區(qū)一個(gè)年份統(tǒng)計(jì)項(xiàng)查詢,參數(shù)包括用戶查詢的地區(qū)數(shù)組、查詢的年份和查詢的統(tǒng)計(jì)項(xiàng)信息;第3類為一個(gè)地區(qū)多個(gè)年份統(tǒng)計(jì)項(xiàng)查詢,參數(shù)包括用戶查詢的年份數(shù)組、查詢的地區(qū)和查詢的統(tǒng)計(jì)項(xiàng)信息。抽象控制程序接收客戶端傳來的查詢參數(shù),根據(jù)用戶查詢的統(tǒng)計(jì)項(xiàng)參數(shù),查詢統(tǒng)計(jì)項(xiàng)結(jié)構(gòu)表返回相應(yīng)統(tǒng)計(jì)項(xiàng)及其在統(tǒng)計(jì)結(jié)果表中的對應(yīng)字段,并將此字段作為統(tǒng)計(jì)項(xiàng)查詢字段,將返回的信息裝載于統(tǒng)計(jì)項(xiàng)對象集合。根據(jù)輸入?yún)?shù)中的地區(qū)信息、年份信息以及統(tǒng)計(jì)項(xiàng)對象集合,查詢統(tǒng)計(jì)結(jié)果表返回查詢結(jié)果數(shù)據(jù)集。為接收并傳輸查詢的結(jié)果數(shù)據(jù),構(gòu)建ZBValue類作為業(yè)務(wù)實(shí)體類,ZBValue類承擔(dān)數(shù)據(jù)載體的任務(wù),用于封裝并傳輸查詢的結(jié)果數(shù)據(jù)。根據(jù)查詢結(jié)果數(shù)據(jù)集的具體條數(shù),多次實(shí)例化ZBValue類,生成ZBValue對象集合。將查詢的數(shù)據(jù)封裝于對象集合中,并將其輸出。

        圖13 統(tǒng)計(jì)結(jié)果查詢輸出構(gòu)件工作模式Fig.13 Working model of statistical result query component

        4 動態(tài)數(shù)據(jù)上報(bào)管理系統(tǒng)的實(shí)現(xiàn)與測試

        4.1 動態(tài)數(shù)據(jù)上報(bào)管理系統(tǒng)的實(shí)現(xiàn)

        DDTMS基于Visual Studio 2013平臺開發(fā),分別使用SQL Server 2008、Oracle和Access數(shù)據(jù)庫實(shí)現(xiàn)表驅(qū)動及相關(guān)數(shù)據(jù)庫設(shè)計(jì),DDTMS中不同構(gòu)件分別采用了不同的技術(shù)和插件進(jìn)行開發(fā)。

        4.1.1數(shù)據(jù)訪問構(gòu)件的實(shí)現(xiàn)

        數(shù)據(jù)訪問構(gòu)件中,為了獲取更好的數(shù)據(jù)庫訪問性能,本文根據(jù)不同數(shù)據(jù)庫采用有針對性的數(shù)據(jù)庫接口,對于SQL Server數(shù)據(jù)庫,用SqlConnection類連接數(shù)據(jù)庫;用SqlCommand類執(zhí)行Transact-SQL語句或存儲過程;使用SqlDataAdapter類作為DataSet和 SQL Server之間的橋接器。而對于Oracle數(shù)據(jù)庫,分別采用OracleConnection、OracleCommand和OracleDataAdapter,對于Access數(shù)據(jù)庫分別采用OleDblConnection、OleDbCommand和OleDbDataAdapter。除了數(shù)據(jù)庫連接接口不同,不同數(shù)據(jù)庫在SQL語法上有很多差別。為此,采用面向接口的方式解決。在接口IDbHelper中,定義所需要的訪問功能,包括一系列重載的方法:執(zhí)行SQL語句的方法ExecuteSql、GetDataTable等,執(zhí)行存儲過程的方法GetDataTableByProcedure、GetDataReaderByProcedure等,以及執(zhí)行多條SQL語句實(shí)現(xiàn)事務(wù)處理的方法ExecuteSqlTran。針對于不同數(shù)據(jù)庫,分別在SQLServerDbHelper、OracleDbHelper和AccessDbHelper等類中,給出IDbHelper接口中方法的具體實(shí)現(xiàn)。在數(shù)據(jù)訪問構(gòu)件DAL應(yīng)用層中,由于數(shù)據(jù)庫表及字段數(shù)目眾多,對數(shù)據(jù)庫表進(jìn)行映射時(shí),通過開發(fā)的代碼生成器進(jìn)行批量生產(chǎn),生成與數(shù)據(jù)庫表及表中字段具有對應(yīng)關(guān)系的Model類:T_ZBB、T_ZBO_LY和T_ZB0_SJ_LY等,以及完成相應(yīng)類到數(shù)據(jù)庫映射的對象-關(guān)系映射引擎:T_ZBBDAL.cs、T_ZBO_LYDAL.cs和T_ZB0_SJ_LYDAL.cs等。

        4.1.2數(shù)據(jù)校驗(yàn)構(gòu)件的實(shí)現(xiàn)

        數(shù)據(jù)校驗(yàn)構(gòu)件中,為改善校驗(yàn)時(shí)用戶的體驗(yàn),提高校驗(yàn)速度,單指標(biāo)檢驗(yàn)和波動檢驗(yàn)均通過jQuery抽象控制程序?qū)崿F(xiàn),并分別封裝于singlecheck.js和fluctuationcheck.js中。用戶每輸入一項(xiàng)數(shù)據(jù),系統(tǒng)立刻校驗(yàn)并給出錯(cuò)誤提示。多指標(biāo)檢驗(yàn)在服務(wù)器端實(shí)現(xiàn),由于校驗(yàn)針對結(jié)構(gòu)表中多指標(biāo)校驗(yàn)條件進(jìn)行,因此將其從數(shù)據(jù)庫中取出并封裝于業(yè)務(wù)實(shí)體類中,方便后續(xù)校驗(yàn)操作。具體實(shí)現(xiàn)時(shí),創(chuàng)建業(yè)務(wù)實(shí)體類DBcheck,通過對象-關(guān)系映射引擎T_ZBBDAL.cs操作結(jié)構(gòu)表,獲取結(jié)構(gòu)表中記錄依次裝載于業(yè)務(wù)實(shí)體類T_ZBB,選取ZBB_DJY字段值非空的記錄,依次將數(shù)據(jù)裝載于DBcheck;同時(shí)接收客戶端傳來的指標(biāo)及其在瀏覽器頁面中的位置信息,依次裝載于相應(yīng)的DBcheck對象中,最終生成DBcheck對象集合。DBcheck對象中GS屬性與Message屬性內(nèi)容相同,均為使用結(jié)構(gòu)表ZBB_ZD字段值表示的指標(biāo)間的關(guān)系表達(dá)式。遍歷T_ZBB對象集合,將DBcheck對象Message屬性中內(nèi)容替換為指標(biāo)名稱表示的關(guān)系表達(dá)式。將用戶前臺輸入的指標(biāo)數(shù)據(jù)裝載于業(yè)務(wù)實(shí)體類T_ZB0_SJ_YS。通過反射機(jī)制,獲取對象T_ZB0_SJ_YS中與DBcheck對象GS屬性中變量對應(yīng)的屬性值,并進(jìn)行替換。之后進(jìn)行一系列過程:將對象GS屬性中的關(guān)系表達(dá)式創(chuàng)建為動態(tài)代碼,動態(tài)編譯并執(zhí)行,返回關(guān)系表達(dá)式運(yùn)行結(jié)果。數(shù)據(jù)校驗(yàn)構(gòu)件把上述過程的實(shí)現(xiàn)封裝于DynCompilation類的靜態(tài)方法Calc(string expression)中。遍歷DBcheck對象集合,取對象GS屬性值作為方法Calc(string expression)的參數(shù),通過DynCompilation類直接調(diào)用靜態(tài)方法Calc(string expression),返回關(guān)系表達(dá)式運(yùn)行結(jié)果。當(dāng)運(yùn)行結(jié)果錯(cuò)誤時(shí),記錄DBcheck對象中Row屬性值(Row屬性給出指標(biāo)在瀏覽器頁面所處位置)與Message屬性值(Message屬性給出具體錯(cuò)誤信息提示),從而將錯(cuò)誤信息準(zhǔn)確地返回到瀏覽器頁面相應(yīng)位置。

        4.1.3空缺數(shù)據(jù)填補(bǔ)構(gòu)件的實(shí)現(xiàn)

        空缺數(shù)據(jù)填補(bǔ)構(gòu)件中,由于用戶填報(bào)的數(shù)據(jù)單位不一致,在填補(bǔ)空缺數(shù)據(jù)前,首先要將所有數(shù)據(jù)轉(zhuǎn)換為標(biāo)準(zhǔn)單位數(shù)據(jù)。數(shù)據(jù)庫T_ZB0_DW表的ZB0_DW_GS字段給出當(dāng)前單位的數(shù)據(jù)轉(zhuǎn)化為標(biāo)準(zhǔn)單位的數(shù)據(jù)所需要乘以的系數(shù)。遍歷用戶填報(bào)的數(shù)據(jù),確定數(shù)據(jù)單位在T_ZB0_DW表中的ZB0_DW_GS值,將其與填報(bào)數(shù)據(jù)相乘得到標(biāo)準(zhǔn)單位數(shù)據(jù)。將標(biāo)準(zhǔn)單位的數(shù)據(jù)存放于T_ZB0_SJ表中。為保證填補(bǔ)數(shù)據(jù)的有效性,填補(bǔ)的指標(biāo)數(shù)據(jù)不作為填補(bǔ)其他指標(biāo)的依據(jù)。在填補(bǔ)空缺數(shù)據(jù)前,將所依據(jù)的指標(biāo)數(shù)據(jù)為空的指標(biāo)數(shù)據(jù)統(tǒng)一去除,不進(jìn)行填補(bǔ)。根據(jù)不同類指標(biāo)的性質(zhì),確定各類指標(biāo)的填補(bǔ)算法,人口型空間類指標(biāo)和面積型空間類指標(biāo)均采取加權(quán)空間插值[29]的方法。具體算法如下:

        對于數(shù)據(jù)缺失年份,假設(shè)縣b指標(biāo)數(shù)據(jù)缺失且缺失數(shù)據(jù)為Wb,縣b的年末總?cè)丝跀?shù)為Nb;與縣b同市的不同區(qū)縣為縣1,縣2,…,縣k,與縣b同省不同市的區(qū)縣為縣k+1,縣k+2,…,縣k+h,Wi為縣i的指標(biāo)數(shù)據(jù),Ni為縣i的年末總?cè)丝跀?shù),q為同市臨近縣指標(biāo)數(shù)據(jù)與人口數(shù)比所占的權(quán)重(權(quán)重q的具體值在配置文件中配置)。人口型空間類指標(biāo)填補(bǔ)算法公式為

        (1)

        對于數(shù)據(jù)缺失年份,假設(shè)縣a指標(biāo)數(shù)據(jù)缺失且缺失數(shù)據(jù)為Va,縣a的縣域國土面積為Sa;與縣a同市的不同區(qū)縣為縣1,縣2,…,縣k,與縣a同省不同市的區(qū)縣為縣k+1,縣k+2,…,縣k+h,Vi為縣i的指標(biāo)數(shù)據(jù),Si為縣i的縣域國土面積,p為同市臨近縣指標(biāo)數(shù)據(jù)與面積比所占的權(quán)重(權(quán)重p的具體值在配置文件中配置)。面積型空間類指標(biāo)填補(bǔ)算法公式為

        (2)

        4.1.4統(tǒng)計(jì)結(jié)果查詢輸出構(gòu)件的實(shí)現(xiàn)

        在統(tǒng)計(jì)結(jié)果查詢輸出構(gòu)件的抽象控制程序中,通過方法重載解決因用戶查詢條件不同所產(chǎn)生的不同類參數(shù)接收問題。查詢統(tǒng)計(jì)結(jié)果表時(shí),也使用方法重載,重載的方法分別為List〈ZBValue〉 GetZBValues(List〈T_TJB〉 tjbs, string cAreaID, int searchdate),List〈ZBValue〉 GetZBValues(List〈T_TJB〉 tjbs, List〈string〉 cAreaIDs, int searchdate)和List〈ZBValue〉 GetZBValues(List〈T_TJB〉 tjbs, string cAreaID, int[] searchdates),方法返回ZBValue對象集合。以JSON形式將最終的對象集合向客戶端瀏覽器輸出。

        4.2 動態(tài)數(shù)據(jù)上報(bào)管理系統(tǒng)的測試

        為了驗(yàn)證DDTMS的普適性和實(shí)用性,將已通過.NET實(shí)現(xiàn)的DDTMS分別應(yīng)用在兩個(gè)不同的實(shí)際項(xiàng)目中,即中國林業(yè)生態(tài)資源環(huán)境承載力:數(shù)據(jù)投放器和中國生態(tài)安全指數(shù)系統(tǒng)。

        4.2.1中國林業(yè)生態(tài)資源環(huán)境承載力:數(shù)據(jù)投放器

        系統(tǒng)開發(fā)時(shí),在初期需求分析階段,未得到確定的填報(bào)指標(biāo)項(xiàng),同時(shí)在有限的人力物力條件下,需要在較短的開發(fā)周期內(nèi)設(shè)計(jì)并實(shí)現(xiàn)中國林業(yè)生態(tài)資源環(huán)境承載力:數(shù)據(jù)投放器。系統(tǒng)每五年進(jìn)行一次指標(biāo)收集工作,需要滿足的基本要求:對用戶填報(bào)的指標(biāo)數(shù)據(jù)進(jìn)行嚴(yán)格的校驗(yàn),以保障所收集數(shù)據(jù)的準(zhǔn)確性、可用性和完整性;為充分利用數(shù)據(jù)資源進(jìn)行數(shù)據(jù)分析,對具有可填補(bǔ)性質(zhì)的指標(biāo),采取合理的填補(bǔ)方式填補(bǔ)缺失數(shù)據(jù);將經(jīng)過統(tǒng)計(jì)與計(jì)算的最終評價(jià)結(jié)果供用戶查詢?yōu)g覽。

        針對上述問題,DDTMS給出了很好的解決方案。將DDTMS應(yīng)用到系統(tǒng)開發(fā)時(shí),使用SQL Server 2008數(shù)據(jù)庫。由于系統(tǒng)收集周期為5年,需增加描述指標(biāo)數(shù)據(jù)采集時(shí)間的參數(shù):數(shù)據(jù)年度。為此擴(kuò)展數(shù)據(jù)庫,增加基礎(chǔ)數(shù)據(jù)表T_ZB0_ND(ZB0_ND_ID,ZB0_ND_MC),同時(shí)新增T_ZBB表字段ZBB_ND,作為外鍵以實(shí)現(xiàn)指標(biāo)結(jié)構(gòu)表與基礎(chǔ)數(shù)據(jù)表T_ZB0_ND的關(guān)聯(lián)。此外,只需做如下工作:配置指標(biāo)結(jié)構(gòu)表、基礎(chǔ)數(shù)據(jù)表及統(tǒng)計(jì)項(xiàng)結(jié)構(gòu)表,完成簡單的相關(guān)前端頁面開發(fā)。配置指標(biāo)結(jié)構(gòu)表時(shí),在ZBB_JY字段中填寫用于相應(yīng)指標(biāo)檢驗(yàn)的正則表達(dá)式;在ZBB_DJY字段中填寫多指標(biāo)檢驗(yàn)的關(guān)系表達(dá)式,由于多指標(biāo)檢驗(yàn)條件涉及多個(gè)指標(biāo),只需在任一指標(biāo)對應(yīng)的字段中配置即可;在ZBB_ZB字段中填寫可填補(bǔ)指標(biāo)的填補(bǔ)方式。配置統(tǒng)計(jì)項(xiàng)結(jié)構(gòu)表時(shí),在TJB_MC字段中填寫統(tǒng)計(jì)項(xiàng)名稱,在TJB_ZD字段中,填寫統(tǒng)計(jì)結(jié)果表中存儲統(tǒng)計(jì)項(xiàng)值的字段名稱。通過簡單的配置,同時(shí)配合開發(fā)簡單的相關(guān)前端頁面,便可實(shí)現(xiàn)系統(tǒng)的基本要求,完成中國林業(yè)生態(tài)資源環(huán)境承載力:數(shù)據(jù)投放器。表驅(qū)動法及相關(guān)數(shù)據(jù)庫設(shè)計(jì)支持指標(biāo)及其相關(guān)功能配置的快速擴(kuò)展與修改,當(dāng)有新增指標(biāo)或者指標(biāo)體系發(fā)生變化時(shí),只需要簡單修改指標(biāo)結(jié)構(gòu)表和統(tǒng)計(jì)項(xiàng)結(jié)構(gòu)表的內(nèi)容。DDTMS的使用極大提高了系統(tǒng)開發(fā)的效率和可維護(hù)性,實(shí)現(xiàn)了中國林業(yè)生態(tài)資源環(huán)境承載力:數(shù)據(jù)投放器的快速開發(fā)。

        在實(shí)際的指標(biāo)收集工作中,DDTMS應(yīng)用到中國林業(yè)生態(tài)資源環(huán)境承載力:數(shù)據(jù)投放器后,所收集數(shù)據(jù)的質(zhì)量得到了保障,同時(shí)針對不同可填補(bǔ)指標(biāo)的特性,分別使用合理的填補(bǔ)方法對缺失數(shù)據(jù)進(jìn)行了有效的填補(bǔ)。單指標(biāo)校驗(yàn)構(gòu)件校驗(yàn)效果如圖14所示,用戶每輸入一項(xiàng)指標(biāo)數(shù)據(jù),系統(tǒng)進(jìn)行單指標(biāo)檢驗(yàn)和波動檢驗(yàn),給予用戶即時(shí)信息提醒;用戶填報(bào)完成所有數(shù)據(jù)時(shí),系統(tǒng)集中進(jìn)行多指標(biāo)檢驗(yàn),如圖15所示;填報(bào)工作結(jié)束后,由管理員統(tǒng)一進(jìn)行空缺數(shù)據(jù)填補(bǔ)工作,填補(bǔ)時(shí)給予用戶友好提示:“正在填補(bǔ)空缺數(shù)據(jù),請耐心等待…”,效果如圖16所示;對填補(bǔ)后的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)與計(jì)算,計(jì)算結(jié)果供用戶查詢?yōu)g覽,效果如圖17所示。

        圖14 單指標(biāo)校驗(yàn)構(gòu)件效果界面Fig.14 Effect drawing of single index verification component

        圖15 多指標(biāo)檢驗(yàn)效果界面Fig.15 Effect drawing of multi-index test

        圖16 空缺數(shù)據(jù)填補(bǔ)效果界面Fig.16 Effect drawing of filling vacancy data

        圖17 用戶查詢?yōu)g覽統(tǒng)計(jì)與計(jì)算結(jié)果界面Fig.17 Results drawing of querying and browsing

        4.2.2中國生態(tài)安全指數(shù)系統(tǒng)

        中國生態(tài)安全指數(shù)系統(tǒng)所需收集的指標(biāo)包含土壤有機(jī)質(zhì)含量、年降水量、年平均氣溫和日照時(shí)數(shù)等98個(gè)指標(biāo),指標(biāo)數(shù)目眾多;同時(shí),指標(biāo)體系中出現(xiàn)需要通過新算法填補(bǔ)空缺數(shù)據(jù)的可填補(bǔ)指標(biāo);系統(tǒng)每年進(jìn)行一次指標(biāo)收集工作,由于不同指標(biāo)全國統(tǒng)一采集的周期存在差異,因此不同年份需要收集的指標(biāo)變化較大。系統(tǒng)需要滿足的3個(gè)基本要求:①嚴(yán)格校驗(yàn)用戶填報(bào)的指標(biāo)數(shù)據(jù)。②對不同類別的可填補(bǔ)指標(biāo)采取不同的填補(bǔ)方式進(jìn)行缺失數(shù)據(jù)填補(bǔ)。③提供用戶查詢?yōu)g覽統(tǒng)計(jì)與計(jì)算的中間結(jié)果和最終評價(jià)結(jié)果。

        對于上述問題,DDTMS也給出了很好的解決方案。將DDTMS應(yīng)用到系統(tǒng)開發(fā)時(shí),選用Oracle數(shù)據(jù)庫。由于出現(xiàn)新一類可填補(bǔ)指標(biāo),故需要增添新的填補(bǔ)方式。創(chuàng)建可填補(bǔ)指標(biāo)的子類:時(shí)序類指標(biāo),在填補(bǔ)空缺數(shù)據(jù)時(shí),使用回歸[28-29]的方法。其具體算法如下:

        假設(shè)m年數(shù)據(jù)空缺且缺失數(shù)據(jù)為tm,取距離m年最近的5年,設(shè)最后有數(shù)據(jù)兩年為n1年、n2年,數(shù)據(jù)分別為tn1、tn2,且n1

        (3)

        創(chuàng)建時(shí)序類指標(biāo)并實(shí)現(xiàn)父類的抽象方法空缺數(shù)據(jù)填補(bǔ)方法后,只需通過配置結(jié)構(gòu)表中指標(biāo)的ZBB_ZB字段值即可實(shí)現(xiàn)填補(bǔ)功能的有效擴(kuò)展。由于中國生態(tài)安全指數(shù)系統(tǒng)的總體指標(biāo)體系是確定的,供用戶查詢?yōu)g覽的統(tǒng)計(jì)結(jié)果也是確定的,因此可快速配置完成指標(biāo)結(jié)構(gòu)表、基礎(chǔ)數(shù)據(jù)表及統(tǒng)計(jì)項(xiàng)結(jié)構(gòu)表。配置指標(biāo)結(jié)構(gòu)表時(shí),將所有指標(biāo)的ZBB_YX字段值設(shè)為0(0代表指標(biāo)為無效指標(biāo),1代表指標(biāo)有效指標(biāo)),進(jìn)行指標(biāo)收集工作時(shí),通過改動指標(biāo)的ZBB_YX字段值,來設(shè)定當(dāng)前年度要收集的指標(biāo),從而解決了每年大批量轉(zhuǎn)換指標(biāo)所帶來的一系列問題。配置統(tǒng)計(jì)項(xiàng)結(jié)構(gòu)表時(shí),將統(tǒng)計(jì)與計(jì)算過程中產(chǎn)生的統(tǒng)計(jì)項(xiàng)和最終產(chǎn)生的統(tǒng)計(jì)項(xiàng)均配置于統(tǒng)計(jì)項(xiàng)結(jié)構(gòu)表中。之后完成簡單的相關(guān)前端頁面開發(fā)。在實(shí)際的項(xiàng)目中,DDTMS應(yīng)用到中國生態(tài)安全指數(shù)系統(tǒng)后,保障了所收集數(shù)據(jù)的質(zhì)量,同時(shí)針對不同類別的可填補(bǔ)指標(biāo),采取不同的填補(bǔ)方法,有效填補(bǔ)了缺失的指標(biāo)數(shù)據(jù)。用戶查詢?yōu)g覽中間結(jié)果和最終評價(jià)結(jié)果效果如圖18所示。

        DDTMS的使用使得系統(tǒng)擴(kuò)展空缺數(shù)據(jù)填補(bǔ)功能變得簡單易行,極大地提高了系統(tǒng)的可擴(kuò)展性;對于大批量指標(biāo)的變化,也只通過簡單修改結(jié)構(gòu)表中ZBB_YX字段內(nèi)容即可,極大地提高了系統(tǒng)的可維護(hù)性;另外,DDTMS的使用使得系統(tǒng)可以適應(yīng)不同的數(shù)據(jù)庫環(huán)境,極大提高了系統(tǒng)的靈活性與健壯性。

        圖18 用戶查詢?yōu)g覽效果界面Fig.18 Effect drawing of querying and browsing

        5 結(jié)束語

        闡述了數(shù)據(jù)填報(bào)及統(tǒng)計(jì)類信息管理系統(tǒng)的一般業(yè)務(wù)流程,提取此類應(yīng)用的共性業(yè)務(wù)需求,設(shè)計(jì)并實(shí)現(xiàn)基于表驅(qū)動的動態(tài)數(shù)據(jù)上報(bào)管理系統(tǒng)(DDTMS)。將DDTMS應(yīng)用到中國林業(yè)生態(tài)資源環(huán)境承載力:數(shù)據(jù)投放器和中國生態(tài)安全指數(shù)系統(tǒng),以充分測試該可復(fù)用軟件的實(shí)用性、穩(wěn)定性和普適性。測試表明:DDTMS縮短了應(yīng)用的開發(fā)周期,極大地提高了系統(tǒng)開發(fā)效率;DDTMS的使用使系統(tǒng)通用于不同類型的數(shù)據(jù)庫,同時(shí)有效改善了系統(tǒng)在指標(biāo)、指標(biāo)描述參數(shù)等內(nèi)容上以及在數(shù)據(jù)校驗(yàn)、空缺數(shù)據(jù)填補(bǔ)和統(tǒng)計(jì)結(jié)果查詢輸出等功能上的易擴(kuò)展性。DDTMS具有良好的通用性,減少了數(shù)據(jù)填報(bào)及統(tǒng)計(jì)類系統(tǒng)領(lǐng)域中代碼冗余,并且使得此類系統(tǒng)的開發(fā)變得更加標(biāo)準(zhǔn)化。

        1 黃湫堯.一個(gè)通用信息管理系統(tǒng)模板的設(shè)計(jì)與實(shí)例化應(yīng)用[D].北京:北京郵電大學(xué),2013.

        HUANG Qiuyao.Design of universal information management model system and the application of instantiation[D].Beijing:Beijing University of Posts and Telecommunications,2013.(in Chinese)

        2 王玲,鄒小昱,劉思瑤,等.基于RFID與ZigBee的羊場養(yǎng)殖信息管理系統(tǒng)[J/OL].農(nóng)業(yè)機(jī)械學(xué)報(bào),2014,45(9):247-253.http:∥www.j-csam.org/jcsam/ch/reader/view_abstract.aspx?flag=1&file_no=20140940&journal_id=jcsam.DOI:10.6041/j.issn.1000-1298.2014.09.040.

        WANG Ling,ZOU Xiaoyu,LIU Siyao, et al.Development of handheld terminal for sheep breeding information management based on RFID and ZigBee[J/OL].Transactions of the Chinese Society for Agricultural Machinery,2014,45(9):247-253. (in Chinese)

        3 趙國安,王曉軍,劉興淼,等.管理信息系統(tǒng)通用模塊的設(shè)計(jì)[J].計(jì)算機(jī)工程,2008,34(14):49-51.

        ZHAO Guoan, WANG Xiaojun, LIU Xingmiao, et al. General module design of management information systems[J].Computer Engineering,2008,34(14):49-51. (in Chinese)

        4 童小華,程效軍,劉世杰,等.基于J2EE高速公路網(wǎng)絡(luò)地理信息系統(tǒng)平臺研究[J].同濟(jì)大學(xué)學(xué)報(bào):自然科學(xué)版,2006,34(12):1627-1631.

        TONG Xiaohua,CHENG Xiaojun,LIU Shijie, et al.Development of J2EE and WebGIS based highway management system[J].Journal of Tongji University:Natural Science,2006,34(12):1627-1631.(in Chinese)

        5 戴建國,王克如,李少昆,等.基于國營農(nóng)場的作物生產(chǎn)信息管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].中國農(nóng)業(yè)科學(xué),2012,45(11):2159-2167.

        DAI Jianguo,WANG Keru,LI Shaokun, et al.Designing and implementation of crop production management information system based on state-operated farm[J].Scientia Agricultura Sinica,2012,45(11):2159-2167. (in Chinese)

        6 何勇,余心杰.基于Web GIS的農(nóng)機(jī)化信息管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].農(nóng)業(yè)機(jī)械學(xué)報(bào),2005,36(10):88-90.

        HE Yong,YU Xinjie.Design and implementation of agricultural mechanization information management system based on Web GIS[J].Transactions of the Chinese Society for Agricultural Machinery,2005,36(10):88-90. (in Chinese)

        7 吳才聰,蔡亞平,羅夢佳,等.基于時(shí)間窗的農(nóng)機(jī)資源時(shí)空調(diào)度模型[J/OL].農(nóng)業(yè)機(jī)械學(xué)報(bào),2013,44(5):237-241. http:∥www.j-csam.org/jcsam/ch/reader/view_abstract.aspx?flag=1&file_no=20130541&journal_id=jcsam.DOI:10.6041/j.issn.1000-1298.2013.05.041.

        WU Caicong,CAI Yaping,LUO Mengjia,et al.Time-windows based temporal and spatial scheduling model for agricultural machinery resources[J/OL].Transactions of the Chinese Society for Agricultural Machinery, 2013,44(5):237-241. (in Chinese)

        8 陳智芳,宋妮,王景雷.節(jié)水灌溉管理與決策支持系統(tǒng)[J].農(nóng)業(yè)工程學(xué)報(bào), 2009,25(增刊2):1-6.

        CHEN Zhifang,SONG Ni,WANG Jinglei. Water-saving irrigation management and decision support system[J].Transactions of the CSAE, 2009,25(Supp.2):1-6. (in Chinese)

        9 趙玉杰,高懷友,師榮光.全國基本農(nóng)田環(huán)境質(zhì)量監(jiān)測信息填報(bào)及統(tǒng)計(jì)系統(tǒng)功能與設(shè)計(jì)[J].農(nóng)業(yè)環(huán)境科學(xué)學(xué)報(bào),2004,23(6):1241-1243.

        ZHAO Yujie,GAO Huaiyou,SHI Rongguang.Design and realization of agro-environmental monitoring information collection and statistic system for basic farmland[J]. Journal of Agro-Environment Science,2004,23(6):1241-1243. (in Chinese)

        10 ZHANG J, YONG Q, DI H, et al. A table-driven programming paradigm for context-aware application development[C]∥Annual International Symposium on Applications & the Internet, 2009:121-124.

        11 YANG H C, JR D S P. Table-driven programming in SQL for enterprise information systems[C]∥ICEIS 2005,Proceedings of the Seventh International Conference on Enterprise Information Systems, 2005:424-427.

        12 李訂芳.管理軟件設(shè)計(jì)中的表驅(qū)動思想與軟件重用[J].微型機(jī)與應(yīng)用,1997(3):20-28.

        LI Dingfang. The table driving idea and software reusing in the course of management software design[J]. Microcomputer & Its Applications,1997(3):20-28. (in Chinese)

        13 李林,王竹,呼延正勇,等.田間數(shù)據(jù)傳輸同步策略與中間件研究[J].農(nóng)業(yè)機(jī)械學(xué)報(bào), 2016,47(1):279-288. http:∥www.j-csam.org/jcsam/ch/reader/view_abstract.aspx?flag=1&file_no=20160138&journal_id=jcsam.DOI:10.6041/j.issn.1000-1298.2016.01.038.

        LI Lin,WANG Zhu,HUYAN Zhengyong,et al.Research on field data transmission synchronization strategy and middleware [J]. Transactions of the Chinese Society for Agricultural Machinery, 2016,47(1):279-288. (in Chinese)

        14 王孝明,胡健,陸坤,等.基于.NET平臺可復(fù)用軟件框架的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程, 2004, 30(22):76-78.

        WANG Xiaoming,HU Jian,LU Kun,et al. Design and implementation of reusable software framework based on .NET[J]. Computer Engineering, 2004, 30(22):76-78. (in Chinese)

        15 YAO H, ETZKORN L H, VIRANI S. Automated classification and retrieval of reusable software components[J]. Journal of the Association for Information Science and Technology, 2008, 59(4):613-627.

        16 SCHMIDT D C, BUSCHMANN F. Patterns, frameworks, and middleware: their synergistic relationships[C]∥2003 International Conference on Software Engineering, 2003:694-704.

        17 吳泉源. 網(wǎng)絡(luò)計(jì)算中間件[J]. 軟件學(xué)報(bào), 2013, 24(1):67-76.

        WU Quanyuan.Network computing middleware[J]. Journal of Software, 2013,24(1):67-76.(in Chinese)

        18 王珊,薩師煊.?dāng)?shù)據(jù)庫系統(tǒng)概論[M].北京:高等教育出版社,2006:172-182.

        19 劉洋,高連生,王斌.一種面向應(yīng)用擴(kuò)展的樹狀數(shù)據(jù)庫設(shè)計(jì)模型[J].計(jì)算機(jī)工程與設(shè)計(jì),2006, 27(21):4074-4077.

        LIU Yang, GAO Liansheng, WANG Bin. Tree-like database design model for expansible application[J].Computer Engineering and Design,2006, 27(21):4074-4077. (in Chinese)

        20 QIU W, ZOU W, SUN Y. Design patterns applied in power system analysis software package[C]∥2012 International Conference on Industrial Control and Electronics Engineering, 2012:836-840.

        21 DHAND R. Reducing web page post backs through jQuery ajax call in a trust based framework[C]∥2012 International Conference on Computing Sciences, 2012:217-219.

        22 柴晟,李明富,羅莉娟,等.基于設(shè)計(jì)模式構(gòu)建數(shù)據(jù)訪問中間件[J].計(jì)算機(jī)工程與設(shè)計(jì),2007, 28(17):4102-4104.

        CHAI Sheng, LI Mingfu, LUO Lijuan, et al. Building data access middleware based on design pattern[J]. Computer Engineering and Design,2007, 28(17):4102-4104. (in Chinese)

        23 王彬,靳大尉,郝文寧,等.設(shè)計(jì)模式在數(shù)據(jù)庫訪問權(quán)限系統(tǒng)中的應(yīng)用[J].計(jì)算機(jī)應(yīng)用,2012,32(增刊2):113-115.

        WANG Bin,JIN Dawei,HAO Wenning,et al. Application of design patterns in database access permission system[J]. Journal of Computer Applications,2012,32(Supp.2):113-115. (in Chinese)

        24 周源. 對象關(guān)系映射引擎的設(shè)計(jì)與實(shí)現(xiàn)[D].南京:東南大學(xué),2005.

        ZHOU Yuan.Object relational mapping engine design and implementation[D].Nanjing: Southeast University,2005. (in Chinese)

        25 LING Y, AN Y, LIU M, et al. An error detecting and tagging framework for reducing data entry errors in electronic medical records (EMR) system[C]∥IEEE International Conference on Bioinformatics and Biomedicine, 2013:249-254.

        26 劉成,張凱,陳建勛.混合方式數(shù)據(jù)驗(yàn)證方案的研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2013,34(1):366-371.

        LIU Cheng,ZHANG Kai,CHEN Jianxun.Mixed-mode data validation program research[J]. Computer Engineering and Design,2013,34(1):366-371. (in Chinese)

        27 廖柯.基于動態(tài)編譯的泵業(yè)電子商務(wù)平臺設(shè)計(jì)與實(shí)現(xiàn)[D].上海:復(fù)旦大學(xué),2011.

        LIAO Ke.Design and implementation of pump e-commerce platform based on dynamic compilation[D].Shanghai: Fudan University,2011. (in Chinese)

        28 武森,馮小東,單志廣.基于不完備數(shù)據(jù)聚類的缺失數(shù)據(jù)填補(bǔ)方法[J].計(jì)算機(jī)學(xué)報(bào),2012,35(8):1726-1738.

        WU Sen, FENG Xiaodong,SHAN Zhiguang.Missing data imputation approach based on incomplete data clustering[J]. Chinese Journal of Computers,2012,35(8):1726-1738. (in Chinese)

        29 劉愛利,王培法,丁園圓.地統(tǒng)計(jì)學(xué)概論[M].北京:科學(xué)出版社,2012.

        猜你喜歡
        字段校驗(yàn)構(gòu)件
        圖書館中文圖書編目外包數(shù)據(jù)質(zhì)量控制分析
        爐溫均勻性校驗(yàn)在鑄鍛企業(yè)的應(yīng)用
        建筑構(gòu)件
        建筑構(gòu)件
        建筑構(gòu)件
        建筑構(gòu)件
        大型電動機(jī)高阻抗差動保護(hù)穩(wěn)定校驗(yàn)研究
        電測與儀表(2015年1期)2015-04-09 12:03:02
        基于加窗插值FFT的PMU校驗(yàn)方法
        鍋爐安全閥在線校驗(yàn)不確定度評定
        CNMARC304字段和314字段責(zé)任附注方式解析
        午夜精品久久久久久| 在线国产丝袜自拍观看| 国产视频自拍一区在线观看 | 国产精品国产三级国产an不卡| 极品少妇被黑人白浆直流| 狠狠色噜噜狠狠狠狠7777米奇 | 十八18禁国产精品www| 国产精品毛片无遮挡高清| 在线一区二区三区视频观看 | 国产成人无码a区在线观看导航 | 色窝窝亚洲av网在线观看| 99re8这里有精品热视频免费| 久久99国产精品尤物| 精品视频一区二区杨幂| 日本区一区二区三视频| 亚洲熟妇av日韩熟妇在线| 亚洲视频天堂| 日韩亚洲午夜精品一区二区三区| 熟女中文字幕一区二区三区| 久久无码av中文出轨人妻 | 婷婷激情五月综合在线观看| 日本精品一级二区三级| 一二区成人影院电影网| 熟女俱乐部五十路二区av| 亚洲粉嫩av一区二区黑人| 噜噜中文字幕一区二区| 免费无码又黄又爽又刺激| 五月婷婷激情综合| 中文字幕一区二区在线| 美女露出粉嫩小奶头在视频18禁| 婷婷色中文字幕综合在线| 欧美成人精品福利在线视频| 日本美女中文字幕第一区| 18禁成人黄网站免费观看| 亚洲精品成人专区在线观看| 日本黑人人妻一区二区水多多| 妃光莉中文字幕一区二区| 国产性生交xxxxx免费| 日本中文字幕一区二区高清在线 | 琪琪色原网站在线观看 | 性一交一乱一伦一色一情孩交 |