我們身處一個數據自由流動、資訊觸手可及的互聯時代。回想過去,若想尋找家附近的零售分店,得翻閱電話黃頁、撥打電話詢問地址,不僅耗時費力,還常因路線不清而令人沮喪。如今,透過地圖 API 與資料庫技術的結合,商店定位器應用程式能即時呈現精準位置、營業時間與聯繫資訊,徹底改變了消費者的尋店體驗。
本教學專為想掌握以下技能的開發人員設計:
閱讀者需具備 .NET Framework 與 C# 基礎,熟悉 HTML/XML 開發,並有 SQL 與資料庫管理系統操作經驗。完成本教學後,您將能建置由 DB2 pureXML 驅動、支援地圖功能的 .NET 應用程式。
IBM DB2 新版本內建的 pureXML 技術,支援將 XML 文件原生儲存於關聯式資料庫中。不同於傳統將 XML 轉為關聯資料或純文字儲存,pureXML 允許在資料庫層級直接對 XML 進行原生查詢與處理(支援 SQL、SQL/XML、XQuery),同時兼容傳統關聯資料(表/欄)與文件導向的 XML 資料(單一 XML 文件自包含),極大提升了異構資料的整合彈性。
XML 作為開放標準,跨平台相容性極高,且結構靈活,模式變更不影響既有資料,非常適合 Web 服務與 API 回傳的 XML 格式資料儲存。
首先建立名為 storeloc 的 UTF-8 編碼資料庫,再建立 store 表:
create table store (
store_id int not null generated by default as identity,
info XML not null,
primary key(store_id)
);
store_id 為自動遞增主鍵,info 欄位為 XML 型別,原生儲存商店完整資訊。範例 XML 結構包含標題、聯絡資訊(地址、電話、傳真、Email)、負責人、營業時間(每日時段)與地理座標(經緯度、縮放層級)。
為方便 Visual Studio 資料元件繫結,建立兩個視圖將 XML 映射為關聯欄位:
XMLTABLE 函數搭配 XPath,將商店基本資訊(除營業時間外)映射為 13 個關聯欄位。<hours> 節點展開,每筆資料對應一天的營業時間,包含 store_id、day、hours 三欄,避免寬表設計的複雜度。使用 .del 檔搭配 IMPORT 指令,一次將多個 XML 檔案載入資料庫:
import from "C:\storeloc\locations.del" of del
XML from "C:\storeloc"
insert into store;
匯入後可透過 select * from store 驗證原生 XML 儲存狀態,並使用 DB2 Command Editor 內建的 XML Document Viewer 檢視樹狀結構。視圖查詢驗證:store_view 應回傳 7 筆資料,store_hours_view 則為 49 筆(7 間店 × 7 天)。
在 Visual Studio 2008 建立 ASP.NET Web Site 專案(語言選 C#),並透過「Add Reference」加入 IBM.Data.DB2 組件。需先執行 DB2 的 Configure DB2 .Net Data Provider 工具啟用提供者。確認 web.config 中 <assemblies> 區段已包含該組件引用。
建立 MasterPage.master 統一版面:設定頁面標題為「Store Locator」,<body> 標籤加入 margin:0; padding:0 樣式以利後續載入 Bing Maps,主容器 <div> 套用 Arial 字體。在 <asp:ContentPlaceHolder> 上方加入標題區塊,奠定應用程式視覺基調。
資料庫與專案架構就緒後,後續將實作:使用 DB2 Data Adapter 連接資料、繫結 GridView 顯示商店清單、整合 Bing Maps API 顯示地標與資訊視窗、建立管理介面支援商店資料的新增/編輯/刪除,並處理 XML 資料的序列化與更新邏輯。