首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 2005 XML 資料類型資料建模最佳實務

     編輯:關於SqlServer

SQL Server 2005 引入原生 XML 資料類型,可在關聯表中直接儲存 XML 文件或片段。本文依據官方文件整理 XML 欄位的資料表設計決策:同表或獨立表、XML 顆粒度、非型別/型別/受約束 XML 的選擇時機,以及 DTD 與 XML Schema 的關係。

XML 欄位放在同表還是獨立表?

  • 同表:應用程式頻繁存取 XML 且不需 XML 索引;或需建立 XML 索引且主表主鍵即為叢集鍵。
  • 獨立表:需建立 XML 索引但主鍵非叢集鍵/無主鍵/為堆疊表;或為避免表掃描因 XML 佔用空間而降速。

XML 顆粒度與鎖定/更新效能

SQL Server 對 XML 採用列級鎖定。顆粒度過大(單一 XML 含大量資料)會導致並發更新封鎖;過度分解則喪失物件封裝優勢並增加重組成本。需在建模需求與鎖定/更新特性間取得平衡。

三種 XML 類型選擇指南

類型適用情境
非型別 XML無 Schema、或不想由伺服器驗證(用戶端已驗證/暫存無效 XML/使用伺服器不支援的 Schema 元件)。
型別 XML擁有 Schema,需伺服器驗證、利用型別資訊優化儲存/查詢、編譯期型別檢查。
受約束 XML業務規則無法用 Schema 表達(如地理距離限制)、或約束涉及其他欄位(如 XML 內 CustomerID 需等於關聯欄位)。

DTD 與 XML Schema

XML 資料類型僅支援 XML Schema 進行型別化。但非型別/型別 XML 均可使用內嵌 DTD 提供實體參考展開。可用第三方工具將 DTD 轉為 XML Schema 再載入資料庫。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved