❶ 資料庫邏輯模型
資料庫關系模型(資料庫邏輯模型)是將數據概念模型轉換為所使用的資料庫管理系統(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位元組只能存儲100 s數據;一般情況下航空物探測量每條測線飛行時間至少在10 min以上,每條測線數據量遠遠大於4000位元組。所以,航空物探測量剖面數據採用行外存儲方式,即大欄位列指定「Disable Storage In Row」的存儲參數。
由於大欄位類型長度可變,最大可到4G。假設測線飛行時間為T,場值采樣率為n次/s,測線場值數據量為4Tn,所以有4Tn≤4G。單條測線飛行時間T不會超過10 h(36000 s,航空物探測量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.22 s,讀取時間為1.03 s。第二種方式是以采樣點的方式進行存儲,共有8801條記錄,寫入資料庫時間為9.47 s,讀取需要0.91 s。第三種方式是以大欄位的形式存儲,只有2條記錄,寫入資料庫1.03 s,讀取時間為0.44 s(表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/T 9649.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)。
❷ 一般的E-R數據模型和UMLE-R數據模型有什麼不同
數據模型是現實世界中數據特徵的抽象。數據模型應該滿足三個方面的要求:
1)能夠比較真實地模擬現實世界
2)容易為人所理解
3)便於計算機實現
概念數據模型也稱信息模型,它以實體-聯系(Entity-RelationShip,簡稱E-R)理論為基礎,並對這一理論進行了擴充。它從用戶的觀點出發對信息進行建模,主要用於資料庫的概念級設計。
通常人們先將現實世界抽象為概念世界,然後再將概念世界轉為機器世界。換句話說,就是先將現實世界中的客觀對象抽象為實體(Entity)和聯系(Relationship),它並不依賴於具體的計算機系統或某個DBMS系統,這種模型就是我們所說的CDM;然後再將CDM轉換為計算機上某個DBMS所支持的數據模型,這樣的模型就是物理數據模型,即PDM。
CDM是一組嚴格定義的模型元素的集合,這些模型元素精確地描述了系統的靜態特性、動態特性以及完整性約束條件等,其中包括了數據結構、數據操作和完整性約束三部分。
1)數據結構表達為實體和屬性;
2)數據操作表達為實體中的記錄的插入、刪除、修改、查詢等操作;
3)完整性約束表達為數據的自身完整性約束(如數據類型、檢查、規則等)和數據間的參照完整性約束(如聯系、繼承聯系等);
❸ 關於資料庫建模,概念模型,邏輯模型,物理模型的區別和轉化
最近在進行UML學習過程中,突然忘記了大學時關於資料庫理論中概念模型、邏輯模型、物理模型之間的區別。隨機復習上網並復習,並在此記錄一下,資料庫建模是對現實世界進行分析、抽象、並從中找出內在聯系,進而確定資料庫的結構。
1、概念模型:就是從現實世界到信息世界的第一層抽象,確定領域實體屬性關系等,使用E-R圖表示,E-R圖主要是由實體、屬性和聯系三個要素構成的。
2、邏輯模型:是將概念模型轉化為具體的數據模型的過程,即按照概念結構設計階段建立的基本E-R圖,按選定的管理系統軟體支持的數據模型(層次、網狀、關系、面向對象),轉換成相應的邏輯模型。這種轉換要符合關系數據模型的原則。目前最流行就是關系模型(也就是對應的關系資料庫)
E-R圖向關系模型的轉換是要解決如何將實體和實體間的聯系轉換為關系,並確定這些關系的屬性和碼。這種轉換一般按下面的原則進行:
(1)一個實體轉換為一個關系,實體的屬性就是關系的屬性,實體的碼就是關系的碼。
(2)一個聯系也轉換為一個關系,聯系的屬性及聯系所連接的實體的碼都轉換為關系的屬性,但是關系的碼會根據聯系的類型變化,如果是:
1:1聯系,兩端實體的碼都成為關系的候選碼。
1:n聯系,n端實體的碼成為關系的碼。
m:n聯系,兩端實體碼的組合成為關系的碼。
3、物理模型就是根據邏輯模型對應到具體的數據模型的機器實現。物理模型是對真實資料庫的描述。如關系資料庫中的一些對象為表、視圖、欄位、數據類型、長度、主鍵、外鍵、索引、約束、是否可為空、默認值。