數據庫關系模型(數據庫邏輯模型)是將數據概念模型轉換為所使用的數據庫管理系統(DBMS)支持的數據庫邏輯結構,即將E-R圖表示成關系數據庫模式。數據庫邏輯設計的結果不是唯壹的,需利用規範化理論對數據庫結構進行優化。
在關系模型中,數據庫的邏輯結構是壹張二維表。在數據庫中,滿足下列條件的二維表稱為關系模型:
1)每列中的分量是類型相同的數據;
2)列的順序可以是任意的;
3)行的順序可以是任意的;
4)表中的分量是不可再分割的最小數據項,即表中不允許有子表;
5)表中的任意兩行不能完全相同。
由此可見,有序的航空物探測量剖面數據不滿足數據庫關系模型條件第3條“行的順序可以是任意的”,因此,不能簡單地直接利用關系數據庫(如Oracle,SQL Server,Sybase等)來管理剖面數據,需將數據在數據庫中的存儲方式改為大字段存儲,確保不因數據庫數據的增加和刪除等操作改變剖面數據有序特性。
壹、大字段存儲
(壹)大字段存儲技術
大字段LOB(Large Object)技術是Oracle專門用於存放處理大對象類型數據(如多媒體材料、影像資料、文檔資料等)的數據管理技術。LOB包括內部的和外部的兩種類型。內部LOB又分CLOB(字符型)、BLOB(二進制型)等3種數據類型,其數據存儲在數據庫中,並且支持事務操作;外部LOB只有BFILE類型,其數據存儲在操作系統中,並且不支持事務操作。LOB存放數據的長度最大可以達到4G字節,並且空值列(沒有存放數據)不占空間(圖2-6)。
圖2-6 大字段存儲示意圖
由於外部LOB存放在操作系統文件中,其安全性比內部LOB差壹些。此外,大字段的存儲支持事務操作(批量提交和回滾等),而外部LOB不支持事務操作。所以,航空物探測量剖面數據采用BLOB來存儲。對於BLOB類型,如果數據量小於4000字節,數據庫通常采用行內存儲,而數據量大於4000字節采用行外存儲。分析航空物探測量剖面數據,每個場值數據占4個字節(單精度),目前航磁數據采樣率為10次/s,4000字節只能存儲100s數據;壹般情況下航空物探測量每條測線飛行時間至少在10min以上,每條測線數據量遠遠大於4000字節。所以,航空物探測量剖面數據采用行外存儲方式,即大字段列指定“Disable Storage In Row”的存儲參數。
由於大字段類型長度可變,最大可到4G。假設測線飛行時間為T,場值采樣率為n次/s,測線場值數據量為4Tn,所以有4Tn≤4G。單條測線飛行時間T不會超過10h(36000s,航空物探測量1架次至少飛行1個往返2條測線),則場值的采樣率n≤4G/4T=4×1024×1024×1024/4×36000次/s=29826次/s。采用大字段來存儲測量數據,不僅能夠減少數據表的記錄數,提高查詢效率,而且使得采樣率的擴展不受限制。
(二)大字段存儲技術應用
由於航空物探數據的數據量較大,現有的航磁測量數據按基準點方式(點存儲)存儲可達幾億個數據記錄。若按磁場數據采樣點存儲方式(簡稱“場值存儲方式”),則記錄條數=(磁場數據采樣率/坐標采樣率)點存儲方式的記錄數,達幾十億條數據記錄,且隨著數據采樣率的擴展、測點的加密,航空物探測量數據量隨著時間的推移呈現快速增長之勢。顯然,如果采用常規的表結構來存儲,勢必造成數據的存儲、管理、檢索、瀏覽和提取都非常困難。另壹方面,從航空物探專業應用需求來說,很少對單個測點的場值數據進行運算、分析等操作,壹般至少是對壹條測線或以上測線,多數時候是需要對整個測區的場值數據進行化極、上延、正反演擬合等。
因此,在航空物探數據庫表結構設計時,改變過去將基準點或場值點數據記錄作為數據庫最小管理對象的理念,采用了大字段存儲技術,將測線作為數據庫最小管理對象,將測線上的測量數據,如坐標數據和磁場、重力場數據分別存儲在相應大字段中。在航空物探數據庫建設中,大量采用數據庫的大字段存儲技術(詳見《航空物探信息系統數據庫結構設計》)。
(三)大字段存儲效率
以航磁測量數據為例分析大字段存儲技術優勢。如果以場值存儲方式存儲測線數據,則每條記錄包含架次號、測線號、基準號、地理坐標、投影坐標、磁場數據等,由於坐標數據采樣率2次/s,磁場數據采樣率10次/s,每5個磁場數據中,只有第1個磁場數據有坐標數據,其他4個坐標數據是內插出來,因此在測線記錄中會產生大量冗余的數據坐標數據。采用點存儲方式存儲的測線數據記錄數等於線上基準點數,若采用大字段存儲方式,壹條測線數據只存儲為1條數據記錄(圖2-7),壹般壹條測線的測點數近萬個,甚至更多,可見采用大字段存儲大大減少測線數據存儲記錄數,提高數據的存取效率。
以某測區的兩條航跡線為例,分別采用3種方式測試數據庫的數據存儲效率。磁場數據的采樣率10次/s,坐標數據采樣率2次/s,兩條測線上***有基準點8801個。以場值方式存儲先內插坐標信息,使得每個場值數據都擁有自己的坐標,然後存入數據庫,***有數據記錄44005條,寫入數據庫時間為57.22s,讀取時間為1.03s。第二種方式是以采樣點的方式進行存儲,***有8801條記錄,寫入數據庫時間為9.47s,讀取需要0.91s。第三種方式是以大字段的形式存儲,只有2條記錄,寫入數據庫1.03s,讀取時間為0.44s(表2-2)。大字段數據存儲記錄數最少,存取效率最高。用整個測區數據測試效果更加明顯。
表2-2 三種數據存儲方法的存取效率比較
圖2-7 大字段存儲方式示意圖
二、聯合主鍵
主外鍵是關系型數據庫建立表間關系的核心。在航空物探空間數據庫建設過程中,要素類與要素類之間、要素類與對象類之間,以及對象類與對象類之間的關系的描述有3種形式,即拓撲關系——描述要素類與要素類之間結點、鄰接和聯通關系;疊加關系——描述要素類與要素類之間的相交、包含與分類關系;隸屬關系——描述對象類與對象類之間的派生關系。前兩種關系是采用空間數據模型建立的關系,而隸屬關系是通過主鍵建立的對象類與對象類之間的關系。在建立壹對壹、壹對多的表間關系時,需要在整個數據庫表中確定具有唯壹性的壹個字段作為主鍵(主關鍵字)。
按照傳統的航空物探數據的檔案管理模式,每個項目分配壹個自然數作為檔案號,項目的所有資料均與此檔案號相聯系。勘查項目和科研項目的檔案號是獨立編號的,且均從001開始。加之人工管理的原因,存在1個項目2個檔案號和2個項目1個檔案號的情況,因此現行的檔案號與項目之間的對應關系不具備唯壹性,不能作為項目的唯壹標識,即不能作為數據庫表的主鍵。項目編號也不能作為數據庫表的主鍵,項目編號也只是近十年的事,以前的項目沒有項目編號。
綜合考慮上述因素和項目具有分級、分類的特點,提出了構造項目唯壹標識碼(簡稱“項目標識”)的方法,並以此碼作為數據庫表的主鍵。
項目標識(主鍵):AGS+項目類別(2位)+項目起始年份(4位)+檔案號(6位)
標識含義:AGS——航空物探的縮位代碼;
項目類別——2位代碼,01代表勘查項目、02代表科研項目;
起始年份—4位代碼,項目開始年號;
檔案號—6位代碼,為了與傳統的項目管理方式相銜接,後面3~4位是
項目檔案管理模式下的檔案號,不足部分補零。
以上15位編碼是壹級項目的項目標識,二級及其以下級別的項目標識是在上壹級項目標識基礎上擴展2位數字代碼,中間用“.”號隔開,數字為該級項目的序號。項目標識定義為30位編碼,適用於六級以內的項目。例如:AGS022004000576.08.04.02,表示該項目為2004年開展的檔案號為576的航空物探科研項目(壹級項目)的第8課題(二級項目)第4子課題(三級項目)的第2專題。由此可見,該項目標識不僅僅是壹個建立表間關系的關鍵字,同時還表達了不同級別項目間的隸屬關系。在系統軟件開發時,利用此關系生成了項目的分級樹形目錄,用戶對項目的層次關系壹目了然,便於項目查詢。
數據庫的主鍵壹經確定,相應地需要確定聯合主鍵的組成及其表達方式。所謂聯合主鍵就是數據資料的唯壹標識,在壹個數據庫表中選擇2個或者2個以上的字段作為主鍵。由於航空物探數據絕大部分與項目標識有關,加之數據的種類較多,分類復雜,單憑主鍵確定數據庫表中記錄的唯壹性,勢必需要構建極其復雜的主鍵,這種方法既不利於主鍵的數據操作,又會造成大量的數據冗余,合理地使用聯合主鍵技術可以很好地解決資料唯壹問題。以項目提交資料為例,提交的資料分為文字類資料、圖件類資料和媒體類資料,我們對資料進行分類和編號,例如100代表文字資料(110——World文檔,120——PDF文檔),200代表圖件資料(210——基礎地理資料、220——基礎地質資料,230——航跡線圖,240——剖面圖,250——等值線圖等),300代表媒體資料(310——PPT文檔,320——照片等),第1位(百位)表示該資料的類型,第2~3位表示該類資料的序號。
在數據庫管理和項目資料查詢時,采用項目標識與資料分類編號作為聯合主鍵(圖2-8),可以高效地實現復雜數據的查詢。在整個數據庫系統中多處(項目查詢、數據提取等模塊)使用聯合主鍵技術。
圖2-8 聯合主鍵實例
三、信息標準化
為了實現數據***享,在航空物探數據庫建模過程中,參考和引用了近百個國家信息化標準,編制了4個中心信息化標準和1個圖件信息化工作指南。
(壹)引用的國家信息化標準
1)地質礦產術語分類代碼:地球物理勘查,地球化學勘查,大地構造學,工程地質學,結晶學及礦物學,礦床學,水文地質學,巖石學,地質學等。
2)國家基礎信息數據分類與代碼,國土基礎信息數據分類與代碼,地球物理勘查技術符號,地面重力測量規範,地面磁勘查技術規程,地面高精度磁測技術規程,大比例尺重力勘查規範,地理信息技術基本術語,地理點位置的緯度、經度和高程的標準表示法,地名分類與類別代碼編制規則。
3)地球空間數據交換格式;數學數字地理底圖數據交換格式;數字化地質圖圖層及屬性文件格式。
(二)本系統建立的信息化標準
編寫了“航空物探空間數據要素類和對象類劃分標準”,“航空物探項目管理和資料管理分類代碼標準”,“航空物探勘查分類代碼標準”,“航空物探信息系統元數據標準”,“航空物探圖件信息化工作指南”,以便與其他應用系統進行信息交換,實現數據庫資料***享。
航空物探空間數據要素類和對象類劃分標準:根據物探方法、數據處理過程以及推斷解釋方法和過程,把與GIS有關的數據劃分為不同類型的要素類-對象類數據,按專業、比例尺、數據內容對要素類和對象類進行統壹命名,使空間數據庫中的每個要素類和對象類的命名具有唯壹性,防止重名出現。規定要素類-對象類數據庫表結構及數據項數值類型。
航空物探項目管理和資料管理分類代碼標準:規定了航空物探項目管理和資料管理的相關內容,包括航空物探勘查項目和科研項目的項目立項、設計、實施、成果、評審、資料匯交等項目管理的全過程中的內容,以及項目成果資料和收集資料的歸檔、發送、銷毀、借閱等資料管理與服務過程中的內容和數據項代碼。
航空物探勘查分類代碼標準:在“地質礦產術語分類代碼地球物理勘查”(國家標準GB/T9649.28—1998)增加了航磁、航重專業方面所涉及的數據采集、物性參數、方法手段、儀器設備、資料數據解釋及成圖圖件等內容和數據項代碼。
航空物探信息系統元數據標準:規定了航空物探空間數據管理與服務的元數據(數據的標識、內容、質量、狀況及其他有關特征)的內容。
四、航跡線數據模型
(壹)航跡線模型的結構
航空物探測量是依據測量比例尺在測區內布置測網(測線和切割線)。當飛機沿著設計的測線飛行測量時,航空物探數據收錄系統按照壹定的采樣率采集采樣點的地理位置、高度和各種地球物理場信息。采用屬性數據分置的方法,將測線地理位置信息從航空物探測量數據中分離出來,形成航跡線要素類表,在此表中只存儲與航跡線要素類有關的數據,如項目標識、測區編號、測線號、測線類型(用於區分測線、切割線、不同高度線、重復線等)、坐標、高度值等;將航跡線的對象類數據(磁場、重力場基礎數據)分別以大字段形式存儲在各自的二維表中,它們***享航跡線,解決了多源有序不同采樣率的航空物探測量數據的數據存儲問題,在滿足要素類空間查詢的同時,統壹數據的存儲方式(圖2-9)。航跡線要素類隸屬於測區要素類,它們之間為空間拓撲(包含)關系。測區從屬於勘查項目,每個勘查項目至少有壹個測區,它們之間為1對多關系。有關項目信息存放在項目概況信息對象類表中,各種表之間通過項目標識進行聯接。
圖2-9 航跡線數據模型結構
(二)航跡線的UML模型
統壹建模語言UML(Unified Modeling Language)是壹種定義良好、易於表達、功能強大且普遍適用的建模語言。它溶入了軟件工程領域的新思想、新方法和新技術。UML是面向對象技術領域內占主導地位的標準建模語言,成為可視化建模語言的工業標準。在UML基礎上,ESRI定義了空間數據庫建模的ArcGIS包、類庫和擴展原則。
圖2-10 與航跡線有關的數據庫表邏輯模型結構圖
在確定航跡線數據模型後,以它為基礎,使用UML完成與航跡的有關的項目概況信息、測區信息、原始數據等數據庫表邏輯模型設計(圖2-10)。
由UML模型生成Geodatabase模式時,模型中的每個類都對應生成壹個要素類或對象類。類的屬性映射為要素類或對象類的字段。基類屬性中包含的字段,在繼承類中不需重復創建。例如,每個類都包括項目標識等字段,可以創建壹個包含公***屬性的基類,其他類從該類繼承公***的屬性,而無需重復建基類中包含的屬性。因為基類沒有對應的要素類或對象類,所以將基類設置為抽象類型。要素類之間的關系采用依賴關系表示。
五、數據庫邏輯模型
關系數據庫的邏輯結構由壹組關系模式組成,因而從概念結構到關系數據庫邏輯結構的轉換就是將概念設計中所得到的概念結構(ER圖)轉換成等價的UML關系模式(圖2-11)。在UML模型圖中,要素數據集用Geodatabase工作空間下的靜態包表示。要素集包不能互相嵌套,為了容易組織,在生成物理模型後,在要素數據集包中自定義嵌套。要素數據集與空間參考有關,但是空間參考不能在UML中表達。要素類和二維表都是以類的形式創建的,區別是要素類繼承Feature Class的屬性,而二維表繼承Object屬性。為了表達每種元素的額外屬性,比如設置字符型屬性字段的字符串長度,設置要素類的幾何類型(點、線或面)需要使用Geodatabase預定義的元素標記值。
圖2-11 邏輯設計關系轉換
基於航空物探數據的內在邏輯關系進行分析,使用統壹建模語言(UML)構建數據實體對象間的關系類,定義了航空物探數據庫的邏輯模型(圖2-12)。