正在看的ORACLE教程是:Oracle資料倉儲的分層管理器解決方案開發人員網路Oracle。
摘要 本文描述分層管理器的原理、步驟、限制,並和Oracle資料倉儲相結合實現了地學資料的有效儲存、管理以及大範圍資料的快速探索。
關鍵字 分層管理器 中繼資料 快速探索
前言
21世紀是資訊的世紀,綜合國力的競爭在很大程度上是資訊的競爭,更是資訊利用率的競爭。近年來,隨著“數字地球”和“數字國土”戰略的提出和實施,地學領域的海量資料飛速增長,資料的儲存、分析、管理和處理變得日益複雜。隨著Oracle技術的成熟,尤其是8.15本版後Oracle Spatial的出現,資料倉儲在海量資料存放區、分析和表達方面有著無可比擬的優勢。同時,由於資訊量的巨大,傳統的資料存放區和顯示方式在大範圍資料快速探索方面顯得力不從心,這樣有必要改變空間資料的儲存方式,載入需要的空間資料部分,避免不必要資料的反覆載入和卸載。
分層管理器
1、
分層管理器架構
分層管理器是實現大範圍資料的快速探索的關鍵區段,它控制了逐層細化表的結構和中繼資料的定義和賦值,定義了組件表中的關鍵資訊,給出了空間資料的來源、資料採礦規則、圖層載入範圍和圖形編輯、輸出和儲存。分層管理器有兩部分組成,分別為:
a) 一組儲存於Oracle資料倉儲中的空間資料表,用於逐層細化圖層中的每個詳細資料層,這些表稱為組件表;
b) 一個空表,包含該表的結構定義和描述組件表的特殊中繼資料,該表稱為逐層細化表。任何逐層細化應用程式均需要逐層細化表,從中可以瞭解逐層細化圖層中各層的層次關鍵字描述,以及它們之間的層次關聯方式。進行分層時,分層管理器作為程式的一部分,確定需要添加的子圖元所在的圖層及其關鍵字,以便確定在逐層細化圖層中需要添加和刪除的圖元資訊。
逐層細化圖層是一種特殊的地圖圖層,它是有自己表結構的空白圖層,並用中繼資料規定了所有載入圖層的一些規則和限制,所顯示出來的地圖資訊是按照中繼資料規定的規則從其它表或資料庫中提取出來的。在地圖中顯示逐層細化圖層時,分層管理器會建立一個暫存資料表,然後將組件表中的圖元複製到該暫存資料表中。逐層細化圖層中顯示的圖元實際上是組件表中圖元的副本。這樣就可以靈活的在圖層上面載入需要的資訊。在應用程式終止時,將丟棄該暫存資料表,為了儲存有用的專題圖資訊,可以對提取出來的圖層進行儲存。此時,如果使用者查看圖層資訊時,逐層細化圖層仍將是單個圖層。
逐層細化表的要求作為分層管理器的組織核心部分,它定義了中繼資料關鍵字和三個標準列:關鍵字、層和標籤。並有著自己的一套文法:
(1) 關鍵字 begin_metadata 標記逐層細化表中中繼資料部分的開頭。
(2) 每行中繼資料套件含兩個元素:關鍵字和值。所有關鍵字和值均使用雙引號引起來。
(3) 逐層細化表必須包含 \IsDrilldown 關鍵字,該關鍵字的值必須為 True。
(4) 每個關鍵字以“\”(反斜線)開頭。
(5) 中繼資料關鍵字可以在階層中嵌套。階層中的每一層以反斜線 (\) 標記。
(6) 中繼資料套件括 \DDMap\ComponentMaps\ 關鍵字階層。在該階層中為每個組件表指定四個中繼資料關鍵字。
分層管理器的分層原理圖如圖1所示,從圖中可以看出,分層管理器有兩部分組成:組件表和逐層細化表組成,分層管理器根據系統的要求以資料採礦的方式從Oracle資料倉儲中提取資料,形成組件表中的某個圖層,然後確定需要載入圖層的名稱和圖層中的部分,並載入到逐層細化表中。如果是第一次載入,此時的逐層細化表是空白圖層,在載入過程中,逐層細化表不斷的進行圖元資訊的增加和刪除,這樣會出現每個組件表中的部分資訊顯示在逐層細化表所示的圖層中。這樣輸出所需要的圖層,並對它進行編輯,由於逐層細化表中資料是個組件表中的副本,需要對編輯後的圖層進行另存,形成專題圖。
分層管理器首先形成空白圖層,通過分層管理器用資料採礦工具從Oracle資料倉儲中提取資料,根據分層管理器的中繼資料規則形成一級的圖層,在該圖層中,通過響應事件,以確定載入二級圖層的圖層名稱和該圖層中的載入部分,相應的載入三級、四級圖層資料,在載入的同時,就形成了各種專題圖。當然,分層管理器功能的實現是通過GIS組件(MapX、MO、AO等)和程式設計語言(VB、VC、Delphi等)來實現的。
[NextPage]
2、分層管理器開發步驟
分層管理器應用程式需要進行許多設定和準備。主要步驟匯總如下:
(1)擷取多層逐層細化圖層時要使用的各個表的資料。
(2)建立一個包含特殊列和特殊中繼資料的新的空逐層細化表(.tab 檔案)。中繼資料為每個組件表指定一個層名,同時標識組件表中的重要列識別欄位和標題列。
(3)將逐層細化表加入地圖。例如,將逐層細化表加入您使用的Geoset,或通過編碼方法將逐層細化表加入地圖。
(4)在應用程式中添加使用者介面元素,響應逐層細化事件。
(5)添加代碼,響應使用者對逐層細化工具的使用(也就是說編寫分層管理器)。
(6)該代碼需要檢測使用者已選擇的圖元;確定需要添加的子圖元和需要刪除的圖元;調用應用程式來實現分層或匯總地圖圖元。
執行個體分析
由於遙感影響資料量特別巨大,對於資料的儲存、管理、分析和有用圖形部分顯示就顯得非常困難,這需要用關係——對象資料庫對資料進行儲存。在圖形顯示時,為了使取得有用圖層資訊,減少載入時間和提高編輯效率,需要對圖形進行分層顯示,即用到了前面介紹的分層管理器技術。本文用VB作為程式設計語言,MapX作為GIS組件進行二次開發來實現分層管理技術。
1、構建分層管理器
構建逐層細化表,其表結構為:
Definition Table
Type Native Charset "WindowsLatin1"
Fields 3
Key Char (32);
Level Char (32);
Label Char (32) ;
中繼資料關鍵字和對應值為:
begin_metadata
"\IsDrilldown" = "TRUE"
"\DDMap\ComponentMaps\One\File" = " Tab_YNP.TAB"
"\DDMap\ComponentMaps\One\LevelID" = " Tab_YNP "
"\DDMap\ComponentMaps\One\FeatureIDCol" = "3"
"\DDMap\ComponentMaps\One\FeatureCaptionCol" = "1"
…(其他各組件層的關鍵字和值與此相同)
"\DDMap\HierarchyManager\IsDLL" = "TRUE"
"\DDMap\HierarchyManager\ID" = "SomeDLL.dll"
"\DDMap\HierarchyManager\InitialLevel" = " Tab_YNP "
end_metadata
2、分層管理器的實現
使用 CreateCustomTool 方法實現逐層細化工具,定義為:Map1.CreateCustomTool customDrilldownExpandTool, miToolTypePoint, miDrilldownExpandCursor, miDrilldownContractCursor, miDrilldownContractCursor
每次使用自訂逐層細化工具均會觸發 ToolUsed 事件。在 ToolUsed 事件程序中,您將需要
[1] [2] 下一頁
正在看的ORACLE教程是:Oracle資料倉儲的分層管理器解決方案開發人員網路Oracle。執行產生逐層細化行為的代碼。該過程主要分為四個步驟:
(1)使用 SelectByPoint 或 SearchAtPoint 之類的方法確定使用者單擊的地圖圖元。
(2)確定應取代使用者單擊的圖元的子圖元集。例如,可以使用一個或多個嵌套的 Case 語句確定哪些子圖元取代所選的父圖元。
(3)提取空間資料。根據前述條件,用SQL語言從資料倉儲中提取資訊,如:select goloc form YN. Tab_HQ_KC where Prix=68
(4)調用 DrilldownAddFeatures 方法將子圖元加入地圖。
(5)調用 DrilldownRemoveFeatures 方法從地圖中刪除父圖元(使用者單擊的圖元)。
(6)對顯示圖層進行編輯,並把編輯結果儲存。
3、結果分析
從執行個體的結果可以看出,Oracle資料倉儲能夠方便的對空間資料進行儲存、分析、管理和輸出,資料採礦技術的應用能夠靈活存取資料,而不需要載入整個資料表中的所有資料,分層管理器的應用實現了空間資料大範圍快速探索和不同主題圖層的部分疊加,實際應用中有著非常方便的應用。
結論
高效地利用現有的海量資料是目前面臨的難題之一。Oracle資料倉儲技術是專門針對海量資料的管理和應用的技術,它在對象-關係型資料庫、功能強大的DBMS和支援可視化檢索方面有著非常明顯的優勢。地學資料倉儲的理論在今年的時間應用中不斷完善,本文在資料倉儲的儲存、分析和表達層方面把理論和實際應用相結合,結合分層管理GIS二次開發,開發出基於Oracle資料倉儲的分層管理系統,它結合了資料倉儲和分層管理的優點,在地學空間資料應用方面進行了有益的嘗試。
上一頁
上一頁 [1] [2]