當前位置:編程學習大全網 - 編程語言 - 數據庫物理模型

數據庫物理模型

數據庫物理模型設計的目標是根據選定的Oracle數據庫系統特點和航空物探數據管理與服務的業務處理需求,確定航空物探數據庫最優的物理環境、存取方法和存儲結構。即通過數據庫物理設計,以便達到物理數據庫結構的優化,使得在數據庫上運行的各種事務響應時間少、存儲空間利用率高、事務吞吐率大。

壹、數據庫布局

航空物探信息系統的維護數據(部門、崗位、人員、人員權限、數據入庫檢查規則及數據字典等)相對比較穩定。入庫前數據需經過各種檢查校對,確認數據正確後才能歸檔,存入航空物探資料數據庫,所以存入資料庫前的數據可能經常需要修改和刪除,相對變化較大;而存入資料數據庫中的數據壹般不允許修改和刪除,以免誤操作破壞資料庫數據造成損失。

圖2-12 航空物探數據庫邏輯模型

圖2-13 航空物探數據庫布局與數據采集流程圖

據此,我們采用圖2-13所示的數據庫數據采集流程,並將航空物探數據庫分為資料采集數據庫、資料數據庫、系統維護數據庫分別進行存儲和管理,實現數據的統壹管理和統壹使用,便於數據入庫和易於維護等。

航空物探資料數據庫是航空物探所有數據最終存儲的場所。資料采集數據庫是數據歸檔存入資料數據庫前的臨時“集散地”,在此接收各項檢查,在確認數據無誤後歸檔到資料數據庫,然後刪除資料采集數據庫中已歸檔的數據。此外,資料采集數據庫中還保存數據入庫、維護、檢查日誌及歸檔記錄。

系統維護數據庫,存儲系統維護信息(如系統功能、數據庫表清單等)、安全信息(如信息系統用戶的角色、權限、授權的系統功能等),數據字典、入庫數據檢查規則等。將其與航空物探數據分開,有利於系統維護和管理。

二、數據庫空間設置

數據庫空間設置包括磁盤空間設置、應用系統表空間設置、撤銷表空間、臨時表空間、日誌空間和索引空間設置。

(壹)磁盤空間設置

磁盤空間設置的目標:磁盤性能不能阻礙實現數據庫性能,數據庫磁盤必須專用於數據庫文件,否則非數據庫將會影響到數據庫性能,且磁盤空間必須滿足恢復和性能的要求。

航空物探數據庫服務器為IBM P620小型機,8塊硬盤,每塊硬盤36GB空間,每塊物理磁盤建立壹個文件系統。為了提高磁盤的反應時間和尋道時間,提高I/O的存取效率,除了壹塊硬盤用於UNIX操作系統外,其余7塊磁盤分別存放資料采集數據庫、系統維護數據庫-日誌文件,資料數據庫及資料數據庫的大字段數據、索引、回滾段和數據日誌文件。

(二)應用系統表空間設置

信息系統數據采集過程對數據的事務操作比較頻繁,經常進行數據插入(新數據入庫)、修改(入庫數據有誤)和刪除操作(數據重新導入或歸檔入庫),因此航空物探資料采集數據庫所在的表空間會很活躍。為了不影響其他I/O的競爭,同時也可以提高數據入庫的操作效率(50多年的歷史數據需要集中入庫),分配壹個磁盤空間(36GB)為采集庫的表空間。由於采集數據歸檔入資料庫後被刪除,同時進行數據入庫的項目也不是很多,雖仍保留所有的采集日誌數據,壹個磁盤空間也足夠使用。

航空物探資料數據庫的二維表和Oracle大字段(BLOB)分別存放在不同的物理磁盤(每個磁盤36GB)上,對同時存在有表格數據和大字段數據的數據庫表(如航跡線數據)時,可以提高磁盤I/O效率。隨著數據入庫的項目越來越多,需要增加相應的物理磁盤或磁盤陣列。

系統維護數據庫相對穩定,占用磁盤空間約500 M左右。由於系統磁盤有限,把日誌文件存放該磁盤中。

(三)撤銷表和臨時表空間的設置

在Oracle數據庫中,撤銷的目的是確保事務的回退和恢復。撤銷參數有UNDO_MANAGEMENT、UNDO_TABLESPACE和UNDO_RETENTION。

UNDO_MANAGEMENT參數用於數據庫中管理撤銷數據的方式,航空物探數據庫設置為自動模式(auto)。

UNDO_TABLESPACE參數用於指定數據庫中保存撤銷數據的撤銷表空間名稱,航空物探數據庫撤銷表空間名稱為UNDO_ARGS_TBSPACE,空間大小設置為20GB,以確保在保留時間內進行恢復。

UNDO_RETENTION參數用於指定已經提交事務的撤銷數據在能夠覆蓋之前應該保留多長時間,本數據庫系統設置為60 min。

臨時表空間是用以存儲大量的排序,與撤銷表空間存放在壹個物理磁盤上,本數據庫系統臨時表空間設置為500 M。

(四)日誌空間設置

日誌的主要功能是記錄對數據庫已做過的全部操作。在系統出現故障時,如果不能將修改數據永久地寫入數據文件,則可利用日誌得到該修改,所以不會丟失已有操作結果。

日誌文件主要是保護數據庫以防止故障。為了防止日誌文件本身的故障,航空物探數據庫系統分別在壹個獨立磁盤和系統維護庫磁盤中存放日誌文件。若系統出現故障,在下次打開數據庫時Oracle數據庫系統自動用日誌文件中的信息來恢復數據庫文件。

根據航空物探數據庫信息系統同時登錄的用戶數及使用的功能,將日誌文件大小設置為10GB。

(五)索引表空間設置

為了提高航空物探信息系統的查詢和統計速度,把所有索引空間與應用表空間完全分開,從而提高I/O存取效率。航空物探索引表空間大小設置為10GB。

聚集是表的壹種存儲方法,壹般每個基本表是單獨組織的,但對邏輯上經常在壹起查詢的表,在物理上也鄰近存放,這樣可減少數據的搜索時間,提高性能。

當幾個關系(表)以聚集方式組織時,是通過公***屬性的值為表聚集的依據。航空物探數據庫系統是以項目標識(PROJ_ID)建立聚集的,所有涉及項目標識的數據庫表直接引用項目標識聚集。航空物探聚集表空間與索引表空間相同。

三、數據庫參數設置

在數據庫創建前需要對如下數據庫參數進行設置,航空物探參數文件名為Initoraargs.ora,各種參數設置如下:

航空物探信息系統建設

四、內存設置

航空物探數據庫服務器物理內存為4GB,除部分用於系統開銷外,其余全部用於數據庫。

Oracle使用***享系統全局區(System Global Area,SGA)內存來管理內存和文件結構,包含DB_block_Buffers、DB_cache_size、Shared_pool_size、Log_Buffer參數。航空物探數據庫系統的全局區內存參數設置如下。

DB_block_Buffers參數為SGA中存儲區高速緩存的緩沖區數目,每個緩沖區的大小等於參數DB_block_size的大小,DB_block_Buffers=19200(約300 MB)。

Shared_pool_size參數為分配給***享SQL區的字節數,是SGA大小的主要影響者,Shared_pool_size=1228800000(1.2GB)。

DB_cache_size參數是SGA大小和數據庫性能的最重要的決定因素。該值較高,可以提高系統的命中率,減少I/O,DB_cache_size=1024000000(1GB)。

Log_Buffer參數為重做日誌高速緩存大小,主要進行插入、刪除和修改回退操作,Log_buffer=5120000(5MB)。

五、優化設置

由於航空物探信息系統的采集軟件和應用軟件是采用MS.NET C#進行開發的,應用程序與數據庫之間的連接有傳統的ODBC和OLE DB兩種方式。為了支持ODBC在OLE DB技術上建立了相應的OLE DB到ODBC的調用轉換,而使用直接的OLE DB方式則不需轉換,從而提高處理速度。

在建立數據庫表時,參數Pctfree和Pctused設置不正確可能會導致數據出現行鏈接和行遷移現象,即同壹行的數據被保存在不同的數據塊中。在進行數據查詢時,為了讀出這些數據,磁頭必須重新定位,這樣勢必會大大降低數據庫的執行速度。因此,在創建表時應充分估計到將來可能出現的數據變化,正確地設置這兩個參數,盡量減少數據庫中出現的行鏈接和行遷移現象。

航空物探資料采集數據庫表的插入、修改和刪除的頻率較高,Pctfree設置為20,Pctused設置為40;系統維護數據庫表相對穩定,Pctfree設置為10,Pctused設置為15;資料數據庫表除了增加數據外基本不進行修改和刪除操作,Pctfree設置為10,Pctused設置為5。

六、擴展性設置

多CPU和並行查詢PQO(Parallel Query Option)方式的利用:CPU的快速發展使得Oracle越來越重視對多CPU的並行技術的應用,壹個數據庫的訪問工作可以用多個CPU相互配合來完成。對於多CPU系統盡量采用並行查詢選項方式進行數據庫操作。航空物探數據庫服務器為2個CPU,在程序查詢中采用了並行查詢的方式。

在航空物探工作量統計、飛行小時統計、測量面積統計和巖石物性統計中,為了加快統計效率,在相應的查詢語句中增加了並行查詢語句。

隨著航空物探高精度測量程度的不斷提高,測量數據將越來越大。為了滿足航空物探查詢效率及發展,將航磁測量數據與校正後航磁測量數據按比例尺分1∶20 萬以下、20萬~50萬、1∶50萬以上分別存放3張不同的數據庫表。

七、創建數據庫

在完成數據庫布局、空間設置、內存設置、數據庫參數設置、擴展性設置和優化設置後,進行航空物探數據庫物理模型設計,即航空物探數據庫實體創建。由於航空物探空間數據庫邏輯模型是采用ESRI提供的ArcGIS UML構建的Geodatabase模型,因此,使用ESRI公司提供的CaseTools將航空物探數據UML模型圖轉成空間數據庫(Geodatabase)實體(圖2-14)。

航空物探屬性數據庫表(二維表)是采用Power Designer數據庫設計平臺直接把數據庫關系模型生成數據庫腳本來創建的。

經過數據庫的概念設計、邏輯設計和物理設計,最終生成航空物探數據庫。

圖2-14 航空物探數據庫物理模型實現

八、空間數據的索引機制

對於海量的空間數據庫而言,數據庫的操作效率是關系到數據庫成敗的關鍵問題。為了提高數據的訪問、檢索和顯示速度,數據在加載到數據庫時,要素類數據建立了空間索引,柵格數據構建了金字塔結構,對象類數據采用與數據庫直接聯接的訪問機制。

(壹)空間索引

為了提高要素類數據的查詢性能,在建立航空物探空間數據庫時,創建了空間索引機制。常用的空間索引有格網索引、R樹索引、四叉樹索引等。Geodatabase采用格網索引方式。所謂格網索引是將空間區域劃分成適合大小的正方形格網,記錄每壹個格網內所包含的空間實體(對象)以及每壹個實體的封裝邊界範圍,即包圍空間實體的左下角和右上角坐標。當用戶進行空間查詢時,首先計算出用戶查詢對象所在格網,然後通過格網編號,就可以快速檢索到所需的空間實體。

確定適合的格網級數、單元大小是建立空間格網索引的關鍵。格網太大,在壹個格網內有多個空間實體,查詢檢索的準確度降低。格網太小,則索引數據量成倍增長和冗余,檢索的速度和效率較低。數據庫的每壹數據層采用不同大小、不同級數的空間索引格網單元,但每層最多級數不能超過三級。格網單元的大小不是壹個確定性的值,需要根據對象的大小確定。空間索引格網的大小與檢索準確度之間的關系如圖2-15所示。

選擇格網單元的大小遵循下列基本原則:

1)對於簡單要素的數據層,盡可能選擇單級索引格網。減少RDBMS搜索格網單元索引的級數,縮短空間索引搜索的過程,例如航跡線要素類。

圖2-15 索引格網大小與檢索準確度的關系

2)如果數據層中的要素封裝邊界大小變化比較大,應選擇2或3級索引格網。Geodatabase最多提供三級格網單元。每壹要素封裝邊界在適合的級內,減少了每壹封裝邊界有多個格網的可能性。在空間索引搜索過程中,RDBMS則必須搜索所有3個格網單元級,這將消耗大量的時間。

3)若用戶經常對圖層執行相同的查詢,最佳格網的大小應是平均查尋空間範圍的1.5倍。

4)格網的大小不能小於要素封裝邊界的平均大小,為了減少每個格網單元有多個要素封裝邊界的可能性,格網單元的大小應取平均格網單元的3倍。最佳格網單元的大小可能受圖層平均查詢的影響。

空間域是按照要素數據集定義的,空間索引格網是按照要素類設置的。它們都是在創建Geodatabase數據庫時設置,並壹經設置,中間不許改變;所以壹定要在充分分析數據的情況下確定它們的值。航空物探數據主要是簡單要素類,空間跨度為70°。根據上述原則,航空物探數據選擇單級索引格網,格網大小為20°。

(二)金字塔結構

金字塔結構的核心是將柵格數據逐級進行抽稀,形成多級分辨率的重采樣數據,並將其分割成塊,按壹定的文件格式(金字塔文件格式)存儲成磁盤文件;在以後進行圖像顯示處理時,只需將要顯示的部分所覆蓋的塊從磁盤文件直接讀進內存緩沖區顯示即可。從金字塔的所有層中尋找與所要求顯示的比例相近或匹配的壹層,並將該層的從某壹點起的壹定範圍的圖像所覆蓋的所有塊加載到內存緩沖區,提取所需部分並形成圖像。

金字塔算法(圖2-16)是通過獲取顯示時所需要的壹定分辨率的數據來提高顯示速度。使用金字塔數據格式後,在顯示全圖時僅需要顯示壹個較低分辨率的數據,這樣既能加快顯示速度,又不會影響顯示效果。放大圖像,盡管顯示圖像分辨率提高,由於顯示區域減小,所以顯示速度不會下降。如果沒有為柵格數據建立金字塔數據,則每次顯示都會讀取整個數據,然後進行重采樣得到顯示所需要的分辨率,明顯地降低了顯示速度。

圖2-16 金字塔壓縮示意圖

金字塔數據重采樣方式有:最近鄰法、雙線性內插和立方卷積。其中最近鄰法適用於離散數據,而雙線性內插法和立方卷積法適合於連續數據。

在ArcGIS Engine中提供了IRasterPyramid和IRasterPyramid2接口來實現金字塔數據的建立,而建立的數據保存在*.rrd格式的文件中。

(三)空間域定義

空間域是指數據的有效空間範圍,即Geodatabase數據庫的最大等效坐標的值域範圍,其定義主要是指比例系數和Min X、Min Y的計算。

因為使用整數比浮點數有更高的壓縮率,並且對整數進行二進制搜索比較快,所以多用戶Geodatabase以4字節正整數存儲坐標,其最大值為32位正整數所能表示的範圍是21.4億(2147483647),整數的範圍稱為空間域。在創建Geodatabase數據庫時需要定義合適的比例系數。大的整數值將消耗大量的計算機物理內存,所以選定的比例系數最好不要大於必須的比例系數。空間域隨坐標系的單位變化而變化。

比例系數和空間域之間成反比例關系,比例系數越大(存儲單位越小),表達的空間域也越小。為了使目標數據都存儲在系統中,需要謹慎地設置比例系數。將目標數據的寬度和高度較適中的數值乘以比例系數,如果結果小於21.4億,則比例系數是合適的。

航空物探數據模型是為我國的航空物探行業數據建庫設計的,它支持的空間數據的坐標範圍為我國領土覆蓋的海陸空間,最低緯度為赤道。根據概念設計的分析,航空物探數據模型采用的是地理坐標系,坐標系單位是度,基準是Beijing_1954,要求存儲的坐標數據精度達到0.01 m。在赤道處,赤道圓周長為40075694.6 m,則每度弧長=40075694.6×100/360 cm=11132137.389 cm,即1 cm對應8.983000883E-8°。所以,航空物探數據模型的比例系數取為8.98E-8,即存儲單位為8.98E-8°,可滿足1 cm精度要求。

將空間域移動到目標數據範圍之前,首先找到空間域在存儲單位的中心位置,目的是在必要時向各個方向擴展。4字節正整數可表示的坐標範圍:2147483647×8.98E-8=192.84°。我國的領土範圍是東經70°~140°,北緯0°~60°。所以,選取的比例系數是合適的。把空間域坐標系中心定為90°,然後,計算空間域的Min X、Min Y。

航空物探信息系統建設

航空物探信息系統建設

所以坐標的存儲數據是:

航空物探信息系統建設

航空物探信息系統建設

  • 上一篇:急求C語言復習題庫加答案
  • 下一篇:為什麽編程只服雷軍雷軍編程多厲害雷軍學的什麽編程
  • copyright 2024編程學習大全網