文章詳情頁(yè)
可視化 DB2 中空間數(shù)據(jù)(1)
瀏覽:7日期:2023-11-11 10:51:25
通常,可視化 DB2 數(shù)據(jù)庫(kù)中存儲(chǔ)和治理的空間和幾何數(shù)據(jù)對(duì)于用戶理解數(shù)據(jù)本身非常要害。和 ESRI 一道,IBM® 為此提供了免費(fèi)的 ArcExplorer™。學(xué)習(xí)如何在不同平臺(tái)上設(shè)置和使用 ArcExplorer。要顯示的空間可以存儲(chǔ)在 Linux®、UNIX® 或 Windows® 上一個(gè)空間化 DB2® 數(shù)據(jù)庫(kù)中。另外還學(xué)習(xí)如何使用 Version 9 提供的空間支持特性訪問(wèn)存儲(chǔ)在 DB2 for z/OS 上的空間數(shù)據(jù)。簡(jiǎn)介幾乎每個(gè)數(shù)據(jù)庫(kù)都包含空間信息。地址信息是其中最突出的代表。其他例子還包括街道,在數(shù)據(jù)庫(kù)中,街道不僅可以通過(guò)其名稱來(lái)表示,還可以通過(guò)它在地球上的確切位置來(lái)表示。Linestring 就是建模那些對(duì)象的一種方式。分公司和客戶居住地的位置可以用點(diǎn)描述。類似地,州和國(guó)家邊界可以用多邊形表示。非地理應(yīng)用程序也可以受益于關(guān)系數(shù)據(jù)庫(kù)中的空間數(shù)據(jù)。倉(cāng)庫(kù)和貨架上的產(chǎn)品的位置可以用顯式地建模的地理信息表示。空間距離的計(jì)算可以幫助根據(jù)不同的標(biāo)準(zhǔn)最優(yōu)地安排倉(cāng)庫(kù)中產(chǎn)品的位置。DB2 for Linux, UNIX, and Windows 支持(從 Version 7 開始)使用 DB2 Spatial Extender 產(chǎn)品存儲(chǔ)、治理和檢索數(shù)據(jù)庫(kù)中的空間數(shù)據(jù)。通過(guò)這個(gè)擴(kuò)展器,可以像對(duì)待任何其他關(guān)系數(shù)據(jù)(例如數(shù)字和字符串)一樣,使用專用的數(shù)據(jù)類型為點(diǎn)、線、多邊形等幾何圖原和那些圖原的集合建模。DB2 Spatial Extender 不僅提供數(shù)據(jù)類型,而且還附帶了很多用于執(zhí)行空間操作的空間函數(shù)和方法。例如,可以確定兩個(gè)圖形之間的距離,執(zhí)行空間集合操作,如合并或交叉圖形,獲取一個(gè) linestring 的長(zhǎng)度。DB2 for z/OS 的空間支持提供了幾乎與擴(kuò)展器相同的功能。雖然在內(nèi)部實(shí)現(xiàn)上有所差異,但是空間類型和函數(shù)的使用是類似的。主要不同在于 DB2 for Linux, UNIX, and Windows 中的空間函數(shù)通常可以通過(guò)方法注釋來(lái)調(diào)用(例如 geometry..ST_Buffer(10, 'METER')..ST_AsText())。DB2 for z/OS 還不支持結(jié)構(gòu)化類型和方法(用于實(shí)現(xiàn)擴(kuò)展器),因此那個(gè)平臺(tái)上的空間支持只接受函數(shù)調(diào)用語(yǔ)法(例如 ST_AsText(ST_Buffer(geometry, 10, 'METER')))。 12345678910下一頁(yè) 雖然對(duì)于很多應(yīng)用程序來(lái)說(shuō)空間計(jì)算和比較已經(jīng)足夠,但是有時(shí)候?qū)?shù)據(jù)庫(kù)中的數(shù)據(jù)可視化還是很有幫助的。表格表示法(用于傳統(tǒng)關(guān)系數(shù)據(jù))并不是最適合使空間信息可訪問(wèn)的方法。相反,空間數(shù)據(jù)需要呈現(xiàn)地圖。有很多方法可以提取幾何圖形并生成那樣的地圖。一些商業(yè)工具 -- Geographic Information Systems (GIS) -- 就是專用于顯示和修改空間和非空間數(shù)據(jù)。其他一些系統(tǒng)則通過(guò)根據(jù)集合圖形生成靜態(tài)圖像(例如 JPEG 或 TIFF)來(lái)提供簡(jiǎn)單的界面。之后,這些圖像可以由一個(gè) Web 瀏覽器顯示。ESRI ArcExplorer 可以從 DB2 Spatial Extender Web 站點(diǎn)(見 參考資料 小節(jié))下載,它是用 Java™ 實(shí)現(xiàn)的。因此,它可以在任何含適當(dāng)?shù)?Java Virtual Machine (JVM) 的平臺(tái)上使用。但是,ArcExplorer 附帶了一個(gè)特定于 Windows 的安裝例程。這有礙于在其他平臺(tái),例如 Linux 和 AIX® 上部署和使用 ArcExplorer。下面的小節(jié)描述如何克服這個(gè)問(wèn)題。本文在一個(gè) Linux 系統(tǒng)上設(shè)置一個(gè) ArcExplorer,并訪問(wèn)存儲(chǔ)在同一個(gè)系統(tǒng)上的 DB2 數(shù)據(jù)庫(kù)以及 DB2 for z/OS 上維護(hù)的另一個(gè)數(shù)據(jù)庫(kù)中的空間數(shù)據(jù)。本文首先解釋如何安裝、啟動(dòng)和設(shè)置 ArcExplorer。接著,道出訪問(wèn)存儲(chǔ)在數(shù)據(jù)庫(kù)中的數(shù)據(jù)前需要滿足的需求。最后,本文就如何有效地使用 ArcExplorer 給出一些指南。所有內(nèi)容都基于 Linux 系統(tǒng)上捕捉的屏幕快照進(jìn)行講解。但是,同樣的步驟也適用于其他系統(tǒng)。部署 ArcExplorerArcExplorer 是用于可視化空間數(shù)據(jù)的一款輕量級(jí)工具。它由 5 個(gè) .jar 文件組成,在下載 小節(jié)中的歸檔文件中可以找到這 5 個(gè)文件。您也許會(huì)注重到,與 Windows 上的本地安裝相比,您也許會(huì)注重到,這種 Windows 上的安裝更為復(fù)雜。在 Windows 上,需要安裝一個(gè)完全可以運(yùn)行的產(chǎn)品,其中包括 Java Runtime Environment (JRE)。如今,幾乎可以斷定每個(gè)系統(tǒng)上都已經(jīng)安裝了 Java。因此,可以依靠于已有的 JRE 和 JVM。這樣可以幫助減少安裝鏡像的大小,使之只有 2.5MB -- 而最初的 Windows 安裝大小約為 100MB。與此同時(shí),ArcExplorer 自動(dòng)得益于對(duì)已有 Java 包的更新。 上一頁(yè)1234567下一頁(yè) 與 JVM 類似,ArcExplorer 安裝目錄中不需要有 db2java.zip 文件的副本。該文件實(shí)際上是用于 ArcExplorer 與 DB2 的通信。雖然 README 指示您從 DB2 安裝目錄復(fù)制那個(gè)文件,但是更簡(jiǎn)單、更好的方法是直接從其原始位置(例如 ~/sqllib/java/db2java.zip)使用該文件。通過(guò)在 CLASSPATH 環(huán)境變量中引用該位置,就可以使用那個(gè)文件。總之,運(yùn)行 ESRI ArcExplorer 所需的文件只有 aejava_help.jar、arcims_aej.jar、arcims_sdk.jar、sde_sql3.jar 和 xml.jar。此外,下載小節(jié)還提供了 shell 腳本 arcexplorer,用于設(shè)置 classpath 和同時(shí)啟動(dòng) JVM 和 ArcExplorer。下載小節(jié)中還有其他一些文件。文件 aejava.ico 是一個(gè)圖像,假如想通過(guò)菜單啟動(dòng) ArcExplorer,則可以使用它作為菜單中的一個(gè)圖標(biāo)。文件 LICENSE 包含 ArcExplorer 附帶的許可,用戶必須遵從該許可。腳本 host.sql 包含一些 SQL 語(yǔ)句,這些語(yǔ)句使用聯(lián)邦建立到一個(gè)遠(yuǎn)程 DB2 for z/OS 子系統(tǒng)的連接,并通過(guò)昵稱訪問(wèn)三個(gè)含空間數(shù)據(jù)的遠(yuǎn)程表。最后,文件 import.jcl 是一個(gè) JCL 腳本,可以使用它將空間數(shù)據(jù)從 shapefile 導(dǎo)入到 DB2 for z/OS 子系統(tǒng)。shell 腳本 import.sh 則在 DB2 for Linux, UNIX, and Windows 做同樣的事情。有了前面的那些信息,現(xiàn)在可以下載本文提供的 ZIP 歸檔文件,并將其中的內(nèi)容解壓到您選擇的一個(gè)目錄中。為了啟動(dòng) ArcExplorer,進(jìn)入那個(gè)目錄,調(diào)用 arcexplorer 腳本,如清單 1 所示。您將看到 ArcExplorer 出現(xiàn)(還沒有經(jīng)過(guò)配置),如圖 1 所示。清單 1. 啟動(dòng) ArcExplorer$ cd /usr/local/arcexplorer$ ./arcexplorer圖 1. 啟動(dòng)的 ArcExplorer
上一頁(yè)12345678下一頁(yè) 預(yù)備數(shù)據(jù)庫(kù)中的空間數(shù)據(jù)現(xiàn)在您已經(jīng)確認(rèn)了 Java 應(yīng)用程序的基本功能,本節(jié)將解釋如何設(shè)置數(shù)據(jù)庫(kù),從示例 shapefile 中導(dǎo)入空間數(shù)據(jù),最后可視化數(shù)據(jù)。空間化數(shù)據(jù)庫(kù)為了治理數(shù)據(jù)庫(kù)中的空間數(shù)據(jù),必須啟用數(shù)據(jù)庫(kù)的空間操作功能。可以使用工具 db2se 開始 DB2 for Linux, Unix, and Windows 上的啟用過(guò)程,如清單 2 所示。清單 2. 啟用數(shù)據(jù)庫(kù)$ db2 create database spatialDB20000I The CREATE DATABASE command completed successfully.$ db2se enable_db spatialEnabling database. Please wait ...GSE1036W The operation was successful. But values of certaindatabase manager and database configuration parameters should beincreased.對(duì)于警告 GSE1036W,暫時(shí)可以忽略。該警告是啟用步驟中發(fā)出的,用于確認(rèn)某些數(shù)據(jù)庫(kù)治理器(DBM)配置參數(shù)是否不低于某個(gè)最小值,以確保在較復(fù)雜的場(chǎng)景中可以使用擴(kuò)展器的適當(dāng)功能。但是由于目前只需使用一些簡(jiǎn)單的查詢,因此不必強(qiáng)制調(diào)整這些參數(shù)。空間化一個(gè) DB2 for z/OS 子系統(tǒng)還需執(zhí)行更多的步驟。數(shù)據(jù)庫(kù)治理員必須修改 JCL 腳本,以啟用數(shù)據(jù)庫(kù)。例如,需要使用 DB2 子系統(tǒng)的名稱。調(diào)整腳本之后,執(zhí)行腳本,為 DB2 子系統(tǒng)啟用空間支持特性。這個(gè)過(guò)程的細(xì)節(jié)超出了本文的范圍。情參閱文檔(見參考資料 小節(jié))。導(dǎo)入空間數(shù)據(jù)本文使用 DB2 Spatial Extender 附帶的三個(gè)示例 shapefile -- 即 sjMainStreets、sjZipCodes 和 sjCensusBlocks -- 來(lái)演示如何使用 ArcExplorer。第一步是將那些 shapefile 導(dǎo)入到空間化數(shù)據(jù)庫(kù)中。這里分別針對(duì) DB2 for Linux, UNIX, and Windows 和 DB2 for z/OS 討論這一過(guò)程,因?yàn)閮烧咧g有明顯的不同。 上一頁(yè)123456789下一頁(yè) DB2 for Linux, UNIX, and Windows清單 3 顯示如何使用 db2se 命令行工具導(dǎo)入 shapefile。只有 shapefile sqMainStreets 被導(dǎo)入到數(shù)據(jù)庫(kù) SPATIAL 中。導(dǎo)入其他兩個(gè) shapefile 的命令在 import.sh 文件中,該文件可以在下載小節(jié)中找到。當(dāng)然,DB2 Control Center 中也提供了相同的功能。另外,也可以從您自己的應(yīng)用程序中通過(guò)調(diào)用 db2gse.ST_import_shape 存儲(chǔ)過(guò)程來(lái)開始導(dǎo)入。欲了解更多信息,請(qǐng)參閱 Spatial Extender 文檔。清單 3. 將示例 shapefile 導(dǎo)入到 DB2 for Linux, UNIX, and Windows 中$ db2se import_shape SPATIAL -filename sjMainStreets -srsName NAD83_SRS_1-tableName MAIN_STREETS -createTableFlag 1 -spatialColumn SHAPE-idColumn SE_ROW_ID -commitScope 1000 -client 1GSE0000I The operation was completed successfully.$ db2se register_spatial_column SPATIAL -tableName MAIN_STREETS-columnName SHAPE -srsName NAD83_SRS_1GSE0000I The operation was completed successfully.對(duì)于導(dǎo)入操作,有兩件事情要注重。ArcExplorer 要求表中存在一個(gè)名為 SE_ROW_ID 的列。那個(gè)列的類型必須聲明為 INTEGER。這個(gè)列中的值用于惟一地標(biāo)識(shí)每一行,也就是說(shuō),它必須是一個(gè) ID 列。可以選擇讓 shape import 自動(dòng)添加該列并為之生成惟一值(選項(xiàng) idColumn)。第二件事情是 ArcExplorer 要求所有空間列指定一個(gè)空間引用系統(tǒng)。這可以通過(guò)像清單 3 中最后一步那樣注冊(cè)空間列來(lái)完成。也有其他方法可以提供強(qiáng)制的 SE_ROW_ID 列。例如,可以使用空間表上的一個(gè)視圖,通過(guò)重新命名視圖定義中的 ID 列,從一個(gè)已有的 ID 列中取得 SE_ROW_ID 值。另一種方法是使用不同的編號(hào)技術(shù),例如在線分析處理(OLAP)函數(shù) ROW_NUMBER() 為新的 SE_ROW_ID 列生成值。具體實(shí)現(xiàn)留給有愛好的同學(xué)作為練習(xí)。 上一頁(yè)12345678910下一頁(yè) DB2 for z/OSDB2 for z/OS 的空間支持提供了一個(gè)類似于 db2se 的工具。這個(gè)工具的名稱為 DSN5SCLP,由于在 z/OS 上運(yùn)行,因此必須從一個(gè) JCL 腳本中啟動(dòng)該工具。要導(dǎo)入的 shapefile 必須在 z/OS 上的一個(gè)分層文件系統(tǒng)(HFS)數(shù)據(jù)集中。清單 4 中的腳本假設(shè)掛載點(diǎn)(mount point)名為 /u/stolze/。在您自己的系統(tǒng)中,可以需要相應(yīng)地調(diào)整這個(gè)值。shapefile 被存儲(chǔ)為二進(jìn)制數(shù)據(jù)。因此,.dbf 文件中的所有數(shù)據(jù)(包含非空間屬性信息)仍然以 ASCII 格式編碼。(另一方面,生成的消息文件則以 EBCDIC 格式存儲(chǔ)來(lái)自導(dǎo)入操作的所有消息。)和前面一樣,DB2 for Linux, UNIX, and Windows 上使用相同的 shapefile。清單 4 顯示了如何導(dǎo)入 shapefile sjMainStreets。其他兩個(gè) shapefile 可以按相同方式導(dǎo)入,只是需要調(diào)整一下文件名和表名。在 下載小節(jié)中可以找到用于所有三個(gè)表的完整 JCL 腳本 import.jcl。清單 4. 將示例 shapefile 導(dǎo)入到 DB2 for z/OS 中//IMPORT JOB 'USER=$$USER','',CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1)//JOBLIB DD DSN=DB2A.SDSNEXIT,DISP=SHR//DD DSN=DB2A.SDSNLOAD,DISP=SHR//DD DSN=CEE.SCEERUN,DISP=SHR//DD DSN=CBC.SCLBDLL,DISP=SHR//*//* IMPORT SHAPE FILES//*//IMPORT EXEC PGM=IKJEFT01,REGION=0M,DYNAMNBR=20//SYSPRINT DD SYSOUT=*//SYSTSPRT DD SYSOUT=*//DSNAOINI DD DSN=DB2A.SDSNSAMP(DSNAOINI),DISP=SHR//CEEDUMP DD SYSOUT=*//SYSTSIN DD *DSN5SCLP /import_shape STLEC1 + -fileName /u/stolze/sjMainStreets + -createTableFlag 1 + -srsName NAD83_SRS_1 + -tableName MAIN_STREETS + -tableCreationParameters "IN DATABASE SPATIAL" + -spatialColumn SHAPE -idColumn SE_ROW_ID + -messagesFile /u/stolze/mainStreets.msg//*//* REGISTER SPATIAL COLUMNS//*//REGISTER EXEC PGM=IKJEFT01,REGION=0M,DYNAMNBR=20//SYSPRINT DD SYSOUT=*//SYSTSPRT DD SYSOUT=*//DSNAOINI DD DSN=DB2A.SDSNSAMP(DSNAOINI),DISP=SHR//CEEDUMP DD SYSOUT=*//SYSTSIN DD *DSN5SCLP /register_spatial_column STLEC1 + -tableName MAIN_STREETS -columnName SHAPE -srsName NAD83_SRS_1//* 上一頁(yè)234567891011下一頁(yè) DSN5SCLP 要求為每個(gè)操作指定 DB2 位置名稱(清單中為 STLEC1),其中 db2se 需要一個(gè)數(shù)據(jù)庫(kù)的名稱。為了建立到各個(gè) DB2 子系統(tǒng)的連接,這是必需的。惟一需要注重的其他事項(xiàng)是,可以、也應(yīng)該在 CREATE TABLE 語(yǔ)句后面添加一個(gè)子句,以指定將表放在哪個(gè)數(shù)據(jù)庫(kù)中。選項(xiàng) tableCreationParameters 用于提供用于數(shù)據(jù)庫(kù) SPATIAL 的信息。JCL 腳本不僅導(dǎo)入空間數(shù)據(jù),而且還為那些表中的空間列注冊(cè)一個(gè)專用的 SQL Reporting Service (SRS)。這與之前的小節(jié)是一樣的。這一步實(shí)際上不是必需的,因?yàn)?ArcExplorer 不在本地訪問(wèn) DB2 for z/OS。相反,正如接下來(lái)的小節(jié)中要具體解釋的那樣,這里使用一個(gè)聯(lián)邦層。為訪問(wèn) DB2 for z/OS 上的空間數(shù)據(jù)設(shè)置聯(lián)邦不幸的是,不能讓 ArcExplorer 直接訪問(wèn) DB2 for z/OS 中的空間數(shù)據(jù)。ArcExplorer 依靠于來(lái)自 DB2 for Linux, UNIX, and Windows 的編目視圖,并且(在內(nèi)部)使用特定于 DB2 for Linux, UNIX, and Windows 的語(yǔ)法(即方法調(diào)用)來(lái)處理空間數(shù)據(jù)。雖然可以模擬所需的 DB2 for Linux, UNIX, and Windows 中的編目視圖,但是查詢語(yǔ)法顯得更精妙一些。DB2 的聯(lián)邦功能為我們提供了一個(gè)解決方案。我們將空間和非空間數(shù)據(jù)存儲(chǔ)在 DB2 for z/OS 中,但是使用一個(gè) DB2 for Linux, UNIX, and Windows 實(shí)例作為聯(lián)邦服務(wù)器。這個(gè)聯(lián)邦服務(wù)器透明地通過(guò)昵稱訪問(wèn) DB2 for z/OS 中的數(shù)據(jù),同時(shí)提供所需的編目視圖和接受方法調(diào)用語(yǔ)法。但是,需要通過(guò)迂回的方法傳輸空間數(shù)據(jù),并在 DB2 for z/OS 與 DB2 for Linux, UNIX, and Windows 中不同的內(nèi)部表示之間轉(zhuǎn)換空間數(shù)據(jù)。實(shí)現(xiàn)到 DB2 數(shù)據(jù)源的 DRDA 包裝器還沒有提供這種轉(zhuǎn)換功能。因此,在轉(zhuǎn)換步驟中可以使用視圖,按照其 well-known binary (WKB) 編目傳輸空間數(shù)據(jù)。圖 2 顯示了 ArcExplorer 訪問(wèn) DB2 for z/OS 中的空間數(shù)據(jù)的架構(gòu)。 上一頁(yè)34567891011下一頁(yè) 圖 2. 聯(lián)邦設(shè)置箭頭表明空間和非空間數(shù)據(jù)在系統(tǒng)中的流向。來(lái)自 ArcExplorer 的查詢總是被定向到 DB2 for Linux, UNIX, and Windows。更具體地說(shuō),ArcExplorer 訪問(wèn)具有(已注冊(cè))空間列的視圖。ArcExplorer 完全不知道實(shí)際的數(shù)據(jù)源于何處。視圖本身基于一個(gè)昵稱。那個(gè)昵稱有一個(gè) BLOB 列,其中包含 WKB 格式的幾何圖形。根據(jù)請(qǐng)求,聯(lián)邦服務(wù)器從遠(yuǎn)程數(shù)據(jù)源(即 DB2 for z/OS 子系統(tǒng))獲取 BLOB 值。包裝器并不訪問(wèn)含幾何信息的基本表 MAIN_STREETS,而是訪問(wèn)視圖 MAIN_STREET_VIEW。該視圖用于調(diào)用函數(shù) ST_AsBinary,以便將空間數(shù)據(jù)從基本表轉(zhuǎn)換為 WKB 表示。上述架構(gòu)可以用清單 5 中所示的一系列 SQL 語(yǔ)句實(shí)現(xiàn)。該清單只反映表 MAIN_STREETS 的設(shè)置,并通過(guò)視圖 MAIN_STREETS_HOST 使之可以在 DB2 for Linux, UNIX, and Windows 中被訪問(wèn)。其他表,如 ZIP_CODES 和 CENSUS_BLOCKS,可以以相同方式處理。SQL 腳本 host.sql(可以在下載小節(jié)中找到)包含用于所有三個(gè)表的 SQL 語(yǔ)句。清單 5. 設(shè)置到 DB2 for z/OS 的聯(lián)邦訪問(wèn)CREATE WRAPPER drda;CREATE SERVER host TYPE DB2/ZOS VERSION '9' WRAPPER DRDA AUTHORIZATION sysadm PASSWORD password OPTIONS ( DBNAME 'HOST' );CREATE USER MAPPING FOR USER SERVER host OPTIONS ( REMOTE_AUTHID 'SYSADM', REMOTE_PASSWORD 'PASSWORD' );SET PASSTHRU host;CREATE VIEW main_streets_view AS SELECT census1, census2, cfcc, cfcc1, cfcc2, fedirp, fedirs, fename, fetype, INTEGER(fnode) AS fnode, fraddl, fraddr, length, se_row_id, source, tlid, INTEGER(tnode) AS tnode, toaddl, toaddr, zipl, zipr, db2gse.ST_AsBinary(shape) AS wkb, db2gse.ST_SrId(shape) AS srsId FROM main_streets;SET PASSTHRU RESET;CREATE NICKNAME main_streets_nick FOR host.sysadm.main_streets_view;CREATE VIEW main_streets_host AS SELECT census1, census2, cfcc, cfcc1, cfcc2, fedirp, fedirs, fename, fetype, fnode, fraddl, fraddr, length, se_row_id, source, tlid, tnode, toaddl, toaddr, zipl, zipr, db2gse.ST_MultiLineString(wkb, srsId) AS shape FROM main_streets_nick;! db2se register_spatial_column spatial -tableName MAIN_STREETS_HOST-columnName SHAPE -srsName NAD83_SRS_1; 上一頁(yè)4567891011下一頁(yè) 上述設(shè)置的總體效果是,所有數(shù)據(jù)在物理上只存儲(chǔ)在 DB2 for z/OS 中,而所有訪問(wèn)則被定向到 DB2 for Linux, UNIX, and Windows。在查詢時(shí),DB2 for Linux, UNIX, and Windows 轉(zhuǎn)換查詢,以適應(yīng) DB2 for z/OS,并且用視圖轉(zhuǎn)換空間數(shù)據(jù)。可視化空間數(shù)據(jù)完成之前的所有預(yù)備工作之后,現(xiàn)在可以將注重力放在根據(jù)空間數(shù)據(jù)呈現(xiàn)地圖上來(lái)。首先,需要添加一個(gè)層。一個(gè)層是具有共同類型的空間對(duì)象(及其非空間屬性)的一個(gè)集合。例如,所有街道可以形成一個(gè)街道層。按照關(guān)系 DBMS,一個(gè)層對(duì)應(yīng)于一個(gè)空間表,也就是有一個(gè)幾何列和一些其他非幾何列的表。表中的所有列都是具有那個(gè)表所表示的某種實(shí)體類型的實(shí)體。其他列中的值描述每個(gè)幾何圖形的屬性(例如街道名稱)。可以通過(guò)菜單(Layer > Add Layers)或者單擊工具條中的 Add Layers 圖標(biāo)在 ArcExplorer 中添加一個(gè)層。在新打開的 Catalog 窗口中,第一步是添加一個(gè)數(shù)據(jù)庫(kù)連接。要連接的數(shù)據(jù)庫(kù)必須在本地 DB2 (客戶機(jī))實(shí)例中編目。另外還必須指定一個(gè)用戶名和密碼。圖 3 顯示了這一步。圖 3. 設(shè)置 DB2 連接上一步的結(jié)果是一個(gè)新的連接對(duì)象。對(duì)于要訪問(wèn)的每個(gè)數(shù)據(jù)庫(kù),只需設(shè)置一次連接。假如使用前面提到的聯(lián)邦設(shè)置,那么只需要一個(gè)到聯(lián)邦服務(wù)器,即 DB2 for Linux, UNIX, and Windows 的連接。可以立即為已有數(shù)據(jù)庫(kù)連接添加新層。可以選擇該連接,然后獲得相關(guān)數(shù)據(jù)庫(kù)中所有層(已注冊(cè)的空間列)的列表。對(duì)于本場(chǎng)景,選擇所有三個(gè)層,單擊 Add Layers 圖標(biāo),然后關(guān)閉 Catalog 窗口。圖 4 演示了這一點(diǎn)。注重,DB2 for z/OS 中空間表的昵稱還沒有被添加,因此這里沒有顯示。 上一頁(yè)567891011下一頁(yè) 圖 4. 添加層 layers在主窗口的左面板上,現(xiàn)在可以選擇要呈現(xiàn)的層,為那個(gè)層選擇顏色和其他要使用的屬性,縮小和放大,找到幾何圖形并獲得相關(guān)的屬性,以及根據(jù)當(dāng)前選擇的地圖區(qū)域創(chuàng)建圖像。還可以上下移動(dòng)層(通過(guò)在左側(cè)的概要圖中右鍵單擊層)。這將影響繪制層的順序,以及哪些層顯示在其他層之上。圖 5 演示如何使用 Identify 圖標(biāo)顯示關(guān)于一個(gè)選中的人口普查區(qū)域的信息。在使用 Identify 特性之前,必須在最左測(cè)面板上選中相關(guān)的層。圖 5. 獲得幾何圖形的屬性相同的操作也可以在 DB2 for z/OS 子系統(tǒng)中的空間數(shù)據(jù)上執(zhí)行。聯(lián)邦設(shè)置會(huì)隱藏?cái)?shù)據(jù)本身的來(lái)源。ArcExplorer 只與 DB2 for Linux, UNIX, and Windows 系統(tǒng)打交道。圖 6 演示了選擇并呈現(xiàn)層 ZIP_CODES_HOST 的結(jié)果。在功能上,層與 DB2 for Linux, UNIX, and Windows 數(shù)據(jù)庫(kù)中存儲(chǔ)的基本表沒有區(qū)別。圖 6. 呈現(xiàn) DB2 for z/OS 中的空間數(shù)據(jù)對(duì) ArcExplorer 的性能考慮ArcExplorer 包含 Query Builder 特性。該特性答應(yīng)根據(jù)不同的謂詞過(guò)濾要顯示的幾何圖形。圖 7 展示了該特性,其中涉及所有 17 個(gè)人口普查區(qū)域,列 HOUSHO_29 包含值 6。圖 7. 使用 ArcExplorer 的 Query Builder 過(guò)濾幾何圖形 上一頁(yè)67891011下一頁(yè)

標(biāo)簽:
DB2
數(shù)據(jù)庫(kù)
排行榜
