XML-DB設計覚え書き

xmldb開発を行うことになりそうなので、資料を通読中。
抑えておきたいポイントについて覚え書き。

//////////////////////////////

XMLDBとは?】
…略。

【データ定義のやり方】
xmlスキーマ(文書の型式定義)とxmlインスタンス(実際のデータ)によって構成。

ルール記述
W3C XML Schema

xmlスキーマ設計(xmlスキーマ=xmlの構造(http://www.atmarkit.co.jp/fxml/rensai2/schema01/schema01.html))
・要素の命名
・型の命名(「要素名+Type」がお勧め)

インスタンスにおいて一意となるIDの設定
 xs:unique

インスタンスにおいての一意となるIDが別インスタンスのキーとして使用される場合
 xs:keyref

xmlスキーマ記述パターン
 入れ子構造の検討
 目的に応じて4つのパターンがある。
 長期的にカスタマイズを含めて運用していく?

xmlスキーマxmlインスタンスは1:1で関連付ける
xmlスキーマ内にはコメントを付与し、可読性を高める
  <特に必要な記述>
   ・非依存の関係(外部キーの参照)
   ・バージョン/更新の記録
   ・
xmlスキーマxmlインスタンスは運用の過程で変化していくため、バージョン情報を記載する

RDBXMLDBを連携する場合
 XMLDBは型の制約が緩いため、緊密な連携が必要な場合は型指定をきっちりと指定する

・多言語対応は属性で指定
 日本語でメッセージ

・関連
 「依存」「非依存」「汎化(継承)」

xmlスキーマ/xmlインスタンスのモデル作成
・ツールを利用
 物理データモデルからW3C XML Schemaを生成 … Rational Data Architect(RDA)
 ⇒導入金額が800,000円ほど。…無理だろ(ノ∀`)


■データ型
・型が日付や数値のときは、空要素はエラー扱いに。


XMLスキーマ設計の成果物
XMLスキーマ(xsdファイル)
XMLインスタンスのサンプル(xmlファイル)


XMLDB物理設計
・データ容量、パフォーマンスを検討した上でデータ配置を考える。

・pureXMLのXMLデータ型への格納方法
 1) インライン格納…RDBのデータ構造と同じ領域に格納
 2) XDA(XML Data Area)格納…XDA専用の領域(バッファプール)に格納

 ★お勧めはインライン格納。
 【メリット】
  ・データ格納領域の節減
  ・アクセス効率の向上
  ・行圧縮の使用が可能
 
 【ページサイズの設定】
  ・ページサイズは格納予定の最大データ長で作成する


・索引
 ・リージョンインデックス(自動作成)
 ・パスインデックス(自動作成)
 ・XMLインデックス(ユーザが指定)


・妥当性の検査(クエリのチューニング)
 ・XMLスキーマをXSR(XML Schema Repository)に登録する。
 ・register xmlschema


XMLデータの操作
 ・XQuerySQL/XML


XMLスキーマ変更方法の検討
 ・妥当性検査の方法(変更内容により影響範囲は異なる)

■パフォーマンスチューニング
 ・インスタンス内のノード数
 ・空要素の省略

■実装への詳細検討
 ・データ型の検討
  ・dateTImeはタイムゾーンまで含めて指定する。未指定の場合は世界標準時UTC)として処理
 ・使用文字の制約
  【XML名に使用可能】
   ・最初の文字は、文字または「_」のみ。
   ・半角英数字、全角ひらがな、全角カタカナ、記号「.」「-」「_」
   ・漢字も使えるがとりあえず規約外で。
 ・文字コードの制約
  UTF-8以外の文字コードでデータを格納する場合、内部変換がかかるため実質容量が膨張する。

 
■表スペースの設計
■バッファプールの設計
■統計情報の収集
 ・RUNSTATS, db2cat