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インスタンスは運用の過程で変化していくため、バージョン情報を記載する
・RDBとXMLDBを連携する場合
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スキーマ変更方法の検討
・妥当性検査の方法(変更内容により影響範囲は異なる)
■パフォーマンスチューニング
・インスタンス内のノード数
・空要素の省略
■実装への詳細検討
・データ型の検討
・dateTImeはタイムゾーンまで含めて指定する。未指定の場合は世界標準時(UTC)として処理
・使用文字の制約
【XML名に使用可能】
・最初の文字は、文字または「_」のみ。
・半角英数字、全角ひらがな、全角カタカナ、記号「.」「-」「_」
・漢字も使えるがとりあえず規約外で。
・文字コードの制約
UTF-8以外の文字コードでデータを格納する場合、内部変換がかかるため実質容量が膨張する。
■表スペースの設計
■バッファプールの設計
■統計情報の収集
・RUNSTATS, db2cat