數據庫數據質量是數據庫的生命,再好的入庫數據質量控制的方法,如果得不能貫徹和執行,也不能保證入庫數據的正確性。所以,基於上述入庫數據質量控制思想,研發了航空物探數據庫數據采集軟件(圖5-3),強制數據入庫工作按規範化的流程執行,保證數據庫數據質量。
數據采集軟件包括數據導入錄入、數據檢查、數據編輯、數據歸檔入庫等功能,為了方便數據采集人員工作,把本系統應用軟件中的數據查詢統計和數據制圖功能也集成到該軟件中。各部分功能分述如下。
圖5-3 數據庫數據采集軟件結構
壹、創建項目樹
航空物探勘查項目工作壹般分為航空物探生產測量、數據處理和地質解釋3個階段,野外生產測量和數據處理完成之後分別編寫航空物探生產報告和數據處理報告,通過評審後須上交測量資料和處理後的數據。此時,地質解釋工作正進行。
航空物探科研項目工作壹般是分課題(二級項目)、課題分子課題(三級項目)等進行的。級別低的項目總是最先完成,然後評審和上交資料;級別較高的項目較後完成,壹級項目最後完成,最後上交資料。
如果把勘查項目的3個階段當成3個課題(事實上的確如此,只是習慣上不這樣叫),勘查項目和科研項目不僅在工作形式上是壹致的,資料上交的次序也是相同的(圖5-5)。這種按項目完成的先後次序進行項目資料歸檔方式,在資料人工管理人工服務時代,人們並沒有覺得有什麽問題。只是,資料管理方式的變革,人們對資料服務提出了更高的要求,希望資料信息化管理不要再忽視不同級別項目間的關系信息。
這種關系與計算機磁盤文件管理的目錄間關系是相似的,目錄等同於項目,子目錄等同於子項目。目錄、子目錄間的關系似樹形結構,稱為目錄樹;項目、子項目間的關系也似樹形結構,稱之為項目樹。有計算機常識的人都知道,按照壹定的方式建立目錄樹,把文件存在相應目錄下,不僅文件管理更有條理,用戶查找文件的速度也成倍提高。因此,本系統采用項目樹方式來管理項目資料。該管理方式符合人們的思維習慣,資料查詢更方便。
圖5-4 數據庫數據采集軟件主界面
圖5-5 不同級別項目資料歸檔次序圖
在新項目數據導入或錄入數據庫之前,須先創建項目樹。建項目樹與在磁盤上創建文件目錄相似,按項目(目錄)、子項目(子目錄)順序創建,不能倒行逆施。然後,按項目導入或錄入數據。圖5-6為創建項目樹界面。用戶在父項目的下拉框中選擇新建項目的父項目(壹級項目為null),再填寫項目的檔案號等信息後,按“確定”創建項目樹的根項目(壹級項目),或項目樹的壹個節點(子項目),並自動為項目分配壹個項目標識號,作為識別項目和項目資料的唯壹標誌。
圖5-6 創建項目樹功能界面
二、數據錄入和導入
項目數據進入數據庫有數據錄入和數據導入兩種方式。數據錄入方式是使用系統的數據錄入界面將數據直接錄入到數據采集庫中。若用戶已按入庫數據接口標準要求整理好入庫數據,可采用導入方式將數據導入到數據采集庫中。其實,這兩種方式沒有本質上的差別。例如,項目概況數據、空間要素類(巖石物性、異常、解釋評價)屬性數據等都必須是人工錄入的,區別是誰來錄入?資料整理人員,還是數據采集人員?這不屬本系統的研究範疇,系統支持這兩種數據入庫方式。
因數據庫的每張表所包含的信息不同,所以每張表都應有獨立的數據錄入界面(錄入、瀏覽、編輯數據)。加之用戶查詢界面、數據統計界面,1張數據庫表需要3個用戶界面。本系統***有地球物理數據庫表31張,按照常規做法需要開發93個用戶界面。隨著航空物探技術發展,可能在數據庫表中增加新的信息,或新增數據庫表,都需要通過修改軟件代碼來滿足新的需求。該方法不僅軟件研發和測試工作量大,後期軟件維護工作量也很大。
為此,本系統研究出根據數據庫表的描述信息動態生成用戶界面的方法,此方法具有很好的通用性,對數據庫的所有表均適用,有效地降低了軟件開發工作量,方便了後期軟件維護。圖5-7是使用該方法動態生成的項目概況數據錄入界面,用於項目概況數據的錄入和編輯。
圖5-7 項目概況數據的錄入定制界面
該方法是將數據庫表的描述信息存儲在資料庫中的庫表屬性清單表中,在運行時系統根據數據庫表名稱從庫表屬性清單表和其相關的數據字典表中提取該表對應的字段信息,然後調用界面定制函數,根據界面類型(錄入、瀏覽、修改、簡單查詢)動態生成相應的界面。
由於數據庫表包含的字段數相差較大(多的近30個字段,少的不到10個字段)、同壹表的字段類型不同(有字符串、數字、時間、大字段)、字段數據類型長度不壹(有的字段長度為200個字符,有的只有1個字符),同時庫表的相關字段在界面上相鄰擺放較合適,針對這些問題在界面定制時采取以下策略:
1)對庫表字段分組,並為每組取壹個合適的名字。在定制界面上,同組的字段擺放在同壹張卡片中,組名作為卡片名。
2)字段值來源於數據字典表的數字型字段,用組合框顯示其值,組合框中內容從數據字典表提取。用文本框顯示其他數字型字段、字符串型字段值。
3)根據定制界面上父控件的尺寸、字段名稱、字段數據類型長度確定其對應控件的位置和大小,控件的布局遵循壹行最多顯示兩字段的原則。
不同類型界面的定制方法大同小異,因此采用了同界面定制代碼,只是在個別地方根據需要相關處理。例如,對於大字段型的字段,如果界面定制類型為“錄入”,則其對應文本框後的命令按鈕為打開文件。如果界面定制類型為“瀏覽”,則其對應文本框後的命令按鈕為瀏覽大字段值。
三、入庫前系統檢查
入庫數據進入采集數據前,系統對其進行唯壹性檢查、缺項檢查和數據類型檢查,即入庫前系統檢查。
唯壹性檢查:航空物探資料庫是航空物探數據的最終目的地,但可能會有部分項目數據因沒有通過質量檢查而滯留在采集庫中。在進行新的項目數據采集過程時,為了避免項目數據2次入庫,在其進入采集庫前需要進行唯壹性檢查。方法是用入庫數據每條記錄主鍵作為查詢條件,查找資料庫和采集庫中相對應的庫表是否存在有相同的記錄。例如,黃海北部海域航空磁測普查(項目標識號AGS011978000251),在項目概況數據導入采集庫時,根據項目概況數據庫表的項目標識號(主鍵)在采集庫和資料庫的相應表中查找是否有相同的項目標識號存在:若資料庫中存在,說明該項目數據已歸檔;若采集庫中存在,該項目數據已被導入采集庫中待檢,不需再次導入。
缺項檢查:入庫數據的字段數必須等於相應數據庫表的字段數,比數據庫表字段數多或少都不能通過缺項檢查。
數據類型檢查:對入庫數據所有字段數據進行類型檢查。若是日期型數據,則檢查數據格式(YYYY-MM-DD),YYYY、MM、DD是否為數字。若數字型數據,檢查整數位和小數位的位數是否超過範圍,整數位和小數位是否為數字。字符型數據,則檢查字符串長度是否超限。
入庫數據通過入庫前系統檢查後被存入采集庫中,否則軟件給出錯誤提示信息(圖5-8)。采集人員根據提示信息糾正數據中存在錯誤,再新導入數據。
圖5-8 入庫前系統檢查的錯誤提示
四、入庫後系統檢查
系統對進入采集庫中的數據進行非空和可空檢查、前後數據檢查、相關數據檢查、值域範圍檢查、選擇範圍檢查,即入庫後系統檢查(圖5-9)。
非空檢查:入庫數據指定字段的值不能為空,如所有數據庫表的項目標識不能為空,項目名稱、項目參加單位名稱、參加人員名稱都不能為空。
可空缺項檢查:入庫數據指定字段的值在有壹定條件下可以為空,例如當勘查項目概況表記錄方式字段的值為打點記錄或紙卷模擬記錄時,航磁數據的采樣率為空。若為數字收錄,航磁數據的采樣率不能為空。
前後數據檢查:檢查入庫數據指定字段與其父表中相同字段數據的壹致性,如項目參加人員表中的項目標識必須與項目概況信息中的項目標識相同。
圖5-9 入庫後系統檢查
相關數據檢查:檢查相關表中相關字段數據對入庫數據指定字段的約束,如項目概況信息中有項目的起始日期和完成日期兩個字段,那麽項目人員參加項目工作的起止日期都必須在項目的起始日期和完成日期之間。
值域範圍檢查:入庫數據指定字段的數值必須是在設定的值域範圍內,如勘查項目概況中的調機小時設定在0和100 h範圍,若超過此範圍,調機小時數據有錯誤。
選擇範圍檢查:入庫數據指定字段的數值必須是壹個已知數據集合的元素之壹,如項目成果評價只能在優秀、良好、通過和不合格4個選項中擇其壹。
根據選定的庫表名提取該庫表各個字段的檢查規則,逐條記錄進行前後數據檢查、相關檢查、值域範圍檢查、選擇範圍檢查。發現錯誤,把錯誤記錄暫存在內存中,繼續進行下條記錄檢查,至所有記錄檢查完。把錯誤寫入檢查日誌表(若有相同檢查日誌記錄,則先備份到檢查日誌備份表後再刪除,以便查看數據入庫不通過的歷史軌跡);否則,寫入壹條系統檢查通過的日誌記錄。再進行另壹張表的系統檢查,所有庫表全部檢查後,若有錯誤,系統給出錯誤提示信息。
五、拓撲檢查
航空物探解釋數據和評價數據為空間要素類數據,入庫時要進行拓撲檢查(表5-6,圖5-10)。檢查各要素類之間相互位置關系的正確性。
以油氣遠景評價數據集為例說明拓撲檢查。檢查規則是局部構造異常位置應位於油氣遠景評價區的某壹分布區內,油氣遠景評價區之間不以有重疊。若發現錯誤,把檢查的錯誤日誌暫存在內存中,繼續進行拓撲檢查;檢查完成後,把錯誤寫入檢查日誌表。沒有發現拓撲錯誤寫入壹條通過拓撲檢查的日誌記錄。
表5-7 解釋數據和評價數據拓撲檢查規則表
圖5-10 拓撲檢查空間數據源列表界面
六、文件比較檢查
通過入庫後系統檢查和拓撲檢查的入庫數據,系統將對其進行與原數據文件比較檢查,保證數據的壹致性。所有的入庫數據均須與原數據文件進行比較檢查。
根據項目標識號和庫表名從采集庫中提取相應的數據,若存在數據字典代碼,則將其替換文字字符,存放在Oracle臨時表中;打開本地路徑下原數據文件,逐條記錄對比。若有不匹配的記錄,顯示提示信息,並在日誌庫中寫壹條檢查日誌。
七、人工檢查與復核
經過系統檢查、空間拓撲檢查,以及文件比較檢查後,還必須進行人工檢查和人工復核檢查。人工檢查是用原表格數據、空間屬性數據、解釋評價數據、圖件、文字報告(含軟件源代碼)與采集庫中相應的各類數據進行人工比對。若有原始紙質圖件,則需從采集庫中提取相應的數據使用相同軟件相同繪圖參數繪圖,並加以比較。若人工檢查發現錯誤,寫明錯誤原因(圖5-11),保存日誌。
圖5-11 填寫人工檢查結果界面
人工復核檢查與人工檢查過程完成壹樣,只是人員不同。
八、系統歸檔檢查
在入庫數據歸檔到資料庫之前,系統對歸檔項目數據的完整性進行檢查,即歸檔檢查。系統根據歸檔項目的類別、工作性質、測量方法及歸檔階段,定義了項目資料歸檔對照表,該表記錄每類項目各個歸檔階段的項目資料清單和資料的歸檔標識。在資料歸檔時,系統檢查項目資料的歸檔標識。若為非空,說明該資料必須歸檔;若為空,說明該資料可歸檔,從而保證了數據庫中的項目資料完整性。
如區域航空磁力勘查項目資料歸檔分為3個階段(圖5-12),第壹階段是生產測量資料歸檔,航空磁力勘查項目概況(項目概況、勘查項目概況、航磁概況)信息、測區信息生產報告必須歸檔。第二階段是數據處理資料歸檔,航跡線數據、航磁數據、數據處理報告必須歸檔。第三階段是地質解釋資料歸檔,項目概況信息、巖石磁性數據、圖件數據、文字數據、斷裂構造和區域構造單元必須歸檔。
科研項目資料歸檔時,根據項目標識號及項目級次,確定該項目是否有子項目,以及子項目資料是否已全部歸檔。在所有子項目資料全部歸檔後,使用項目資料歸檔向導(圖5-13)進行該級次的項目資料歸檔。如果項目屬保密項目,系統同時對歸檔數據進行加密。數據成功歸檔後,系統刪除采集庫中已歸檔數據,並把各種檢查日誌存放到備份日誌表中,以備檢查。
圖5-12 勘查項目資料歸檔示意圖
圖5-13 項目資料歸檔向導