RDB との比較で学ぶ XMLデータベース入門
0
はじめに
近年、RDBでは取り扱いが難しいドキュメント型のデータや非
定型処理用のデータのデータベース化ニーズが増大しつつあ
り、このようなデータを得意とする「XMLデータベース」が注目を
集めています。
これからのデータベースエンジニアは、RDBとXMLデータベー
スの適材適所を理解し、使い分けていく能力が要求されていく
ことでしょう。
そこで本書では、RDBとの違いをXMLデータベースの初心者に
も理解いただけるよう、技術的な側面と適用事例の両面から
XMLデータベースとRDBを比較、解説しています。
ぜひ本書で、RDBとXMLデータベースの違いや特徴を学習い
ただき、それぞれの用途にあったデータベースを構築いただけ
れば幸いです。
1
目次
1.XMLデータベースとは?
第1話 「XMLデータベースってなに?」・・・・・・・・・・・・・・・・・・・・・ 5
◇XMLデータベースとは・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 8
◇XMLとは・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 9
2.XMLデータベースの特徴
第2話 「XMLデータベースってなにかメリットあるの?」・・・・・・15
◇RDBとXMLデータベースの特徴の比較・・・・・・・・・・・・・・・19
3.XMLデータベースの利用用途
第3話 「RDBとXMLデータベースの適材適所を整理してみよう」 21
◇RDBとXMLデータベースの利用用途の比較・・・・・・・・・・・24
4.XMLデータベースの事例
・事例1:日本経済新聞社 イベント出展管理システム・・・・・・・・26
・事例2:福岡銀行 銀行内の事務手続き文書、リファレンス・・・29
・事例3:設備機器メーカー 仕様と文書をXMLで紐付けた
製品情報管理・・32
第4話 エピローグ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・35
2
登場人物
原田 表太郎
RDBエンジニア。RDBの運用・管理からSQL
を使ったシステム開発までをこなし、RDBに
ついてはちょっと自信を持っている
木村 美樹
システム企画担当。最近XMLデータベース
の調査を行い、XMLデータベースの魅力に
とりつかれている
3
1.XMLデータベースとは?
この章ではXMLデータベースとはなにかを
RDBと比較しながら学習していきます。
第1話 「XMLデータベースってなに?」
さて、データベースからA社の
情報を検索っと!
Select * from Company_table ~
表太郎君、まだRDBを使って
いるの?これからは
XMLデータベースの時代よ!
え? XMLデータベースってなに?
RDBは表形式のテーブルを
使ってデータを保管するでしょ、
5
もちろん、僕が今検索していた
テーブルはこんなテーブルさ
Company_table
会社
コード
会社名
J058638
株式会社A
J058639
J058640
郵便番
号
従業
員数
住所
代表者名
2120054
川崎市
佐々木昇
500
B株式会社
1400014
品川区
小林裕子
300
CC株式会社
1500001
渋谷区
今野進
Null
備考
従業員数
不明
・
・
XMLデータベース
は表形式でなく、
XML形式でDBに
保管するのよ
XMLデータ
<企業一覧>
<企業>
<会社コード> J058638</会社コード>
<会社名>株式会社A</会社名>
<郵便番号>2120054</郵便番号>
<住所>川崎市</住所>
<代表者名>佐々木昇</代表者名>
<従業員数>500</従業員数>
</企業>
<企業>
<会社コード> J058639</会社コード>
<会社名>B株式会社</会社名>
<郵便番号>1400014</郵便番号>
<住所>品川区</住所>
<代表者名>小林裕子</代表者名>
<従業員数>300</従業員数>
</企業>
</企業一覧>
XMLってなに?
6
XMLはデータにタグを
付けてデータの意味を表わすの
たとえばこのテーブルのデータは・・・
会社コード
会社名
J058638
株式会社A
J058639
B株式会社
郵便番号
従業
員数
住所
代表者名
2120054
川崎市
佐々木昇
500
1400014
品川区
小林裕子
300
備考
こんな感じのXMLデータとして
表現できる・・・
XMLではテーブル
でいうカラム名の
代わりにタグ名を
使うんだね
7
<企業一覧>
<企業>
<会社コード> J058638</会社コード>
<会社名>株式会社A</会社名>
<郵便番号>2120054</郵便番号>
<住所>川崎市</住所>
<代表者名>佐々木昇</代表者名>
<従業員数>500</従業員数>
</企業>
<企業>
<会社コード> J058639</会社コード>
<会社名>B株式会社</会社名>
<郵便番号>1400014</郵便番号>
<住所>品川区</住所>
<代表者名>小林裕子</代表者名>
<従業員数>300</従業員数>
</企業>
</企業一覧>
◇XMLデータベースとは
XMLデータベースとは、XMLデータ形式で格納、管理、操作が
行えるデータベースです。
XMLデータ
<企業一覧>
<企業>
<会社コード> J058638</会社コード>
<会社名>株式会社A</会社名>
<郵便番号>2120054</郵便番号>
<住所>川崎市</住所>
<代表者名>佐々木昇</代表者名>
<従業員数>500</従業員数>
</企業>
<企業>
<会社コード> J058639</会社コード>
<会社名>B株式会社</会社名>
<郵便番号>1400014</郵便番号>
<住所>品川区</住所>
<代表者名>小林裕子</代表者名>
<従業員数>300</従業員数>
</企業>
</企業一覧>
XMLデータベースを利用することにより、XMLの特性を活かした
データ操作、管理を行うことができます。では、XMLにはどのよう
な特性があるのかをみてみましょう。
8
◇XMLとは
XML(Extensible Markup Language )は、データに「タグ」と
呼ばれる“データがなにを意味するのか”を示すマークを付け加え
て記述する言語です。次の例では、「山田 太郎」というデータに
氏名というタグをつけて表現しています。
<氏名>山田 太郎</氏名>
↑
↑
開始タグ
終了タグ
タグをつけることにより「山田 太郎」が氏名であることがわかりま
す。開始タグから終了タグまでの単位を要素と言います。
XMLは要素を階層構造(木構造)にすることができます。前頁の
XMLデータの例では「企業一覧」要素の子要素として「企業」要素
があり、「企業」要素のさらに子要素として「会社コード」「会社名」
「郵便番号」「住所」「代表社名」「従業員数」要素が記載されてい
ます。
企業一覧
企業
企業
会社コード
会社名
郵便番号
会社コード
代表社名
従業員数
住所
会社名
住所
郵便番号
9
従業員数
代表社名
XMLはその構造上の特性から、次のような特徴を持ちます。
【特徴1】
各要素の長さに制限がないため、文書データのようにデータ長
が一定でないデータの管理に優れています。
長
い
ご
案
内
短
い
ご
案
内
<カリキュラム一覧>
<授業>
<名前>XML基礎</名前>
<ご案内>
XMLの特徴、利用分野などを正しく理解し、XML技術
をどのように利用すればよいかが判断できるようにな
ることを目標とした授業です。簡単なXML文書、DTD
の作成方法についても学習します。
(先生から一言)この授業の内容を理解しないと後続
授業が理解できませんので、当授業は必ず予習、復
習を行ってください。
</ご案内>
</授業>
<授業>
<名前>XMLデータベース入門</名前>
<ご案内>
詳細は別途案内します
</ご案内>
</授業>
</カリキュラム一覧>
10
【特徴2】
階層構造であるため、特定の要素にだけ子要素を持たせたり、
子要素の繰り返し回数を自由に変更することもできます。
<カリキュラム一覧>
<授業>
<名前>XML基礎</名前>
<ご案内>
XMLの特徴、利用分野などを正しく理解し、XML技術
をどのように利用すればよいかが判断できるようにな
ることを目標とした授業です。簡単なXML文書、DTD
の作成方法についても学習します。
(先生から一言)この授業の内容を理解しないと後続
授業が理解できませんので、当授業は必ず予習、復
習を行ってください。
</ご案内>
</授業>
<授業>
<名前>XMLデータベース入門</名前>
</授業>
<授業>
<名前>XMLデータベース入門</名前>
</授業>
</カリキュラム一覧>
「授業」要素は何回出現してもよい
11
詳細が決定するまで、
「ご案内」要素を省略
することもできる
【特徴3】
XMLデータはスタイルシートによってHTML形式に簡単に変換
できるため、Web表示が容易です。
<カリキュラム一覧>
<授業>
<名前>XML基礎</名前>
<ご案内>
XMLの特徴、利用分野などを正しく理解し、XML技術
をどのように利用すればよいかが判断できるようにな
ることを目標とした授業です。
</ご案内>
</授業>
</カリキュラム一覧>
スタイルシートを適用
<html>
:
<body>
<font color=”red” size=”5” >XML基礎</font>
<br />
<font size=”3”>XMLの特徴、利用分野などを正しく理解し、
XML技術をどのように利用すればよいかが判断できるように
なることを目標とした授業です。</font>
</body>
</html>
12
【特徴4】
冗長性が高いため、データ量が多くなるとパフォーマンスが
悪くなる可能性があります。
例)
顧客情報
会社名
氏名
XYZ
山田太郎
「XYZ」「山田太郎」の7文字(11バイト)のデータ
ですが、XML文書にすると・・・
<顧客情報>
<会社名>XYZ</会社名>
<氏名>山田太郎</氏名>
</顧客情報>
上記の例でも40文字(62バイト)のデータとなります。
会社名、氏名が繰り返し表れる場合に各データごとに
「会社名」タグ「氏名」タグが付加されていきますので、
冗長性が高くなり、パフォーマンスに悪影響を及ぼす
場合があります。
〔豆知識〕冗長性とは
本来は無駄な重複という意味。信頼性を高めるために二重化して
おく場合などは「冗長性が高い」ことが良い意味で使われます。
13
2.XMLデータベースの
特徴
ここではXMLデータベースの
構造から生じる特徴(利点、欠点)に
ついてRDBと比較しながら学習して
いきます。
第2話 XMLデータベースってなにかメリットあるの?
XML形式でデータベースに
保管するとなにかメリットが
あるの?
もちろん!
例えば、XMLデータは
木構造なので、こんな
風にA社の情報にだけ
旧社名の情報を付け
たり、コメントをつけ
たりできるのよ
企業一覧
企業
企業
<企業一覧>
<企業>
<会社コード> J058638</会社コード>
<会社名>株式会社A</会社名>
<旧社名>株式会社Z</旧社名>
<郵便番号>2120054</郵便番号>
<住所>川崎市</住所>
<代表者名>佐々木昇</代表者名>
<従業員数>500</従業員数>
<コメント>2006年に社名変更してから急成長し
ている</コメント>
</企業>
<企業>
<会社コード> J058639</会社コード>
<会社名>B株式会社</会社名>
<郵便番号>1400014</郵便番号>
<住所>品川区</住所>
<代表者名>小林裕子</代表者名>
<従業員数>300</従業員数>
</企業>
</企業一覧>
従業員数
コメント
会社コード
代表社名
会社コード
会社名
郵便番号
旧社名
会社名
代表者名
住所
郵便番号
住所
従業員数
15
そんなことはRDBだって、あらかじ
め予備列を定義しておけばできるさ
会社
コード
会社名
郵便番
号
住所
代表者名
従業
員数
J058638
株式会社A
2120054
川崎市
佐々木昇
500
J058639
B株式会社
1400014
品川区
小林裕子
300
予備1
予備2
旧社名:
株式会
社Z
2006年に社名
変更してから
急成長してい
る
でもたった1社に長いコメント
をつけるために大きな予備列を
あらかじめ定義しておかなけれ
ばならないでしょ?
XMLデータベースはあらかじめ
利用するすべての要素を定義し
なくていいの?
16
RDBのテーブルのようにあらか
じめすべてのフィールドを用意
していなくとも特定の企業にだ
け長いコメントをあとから追加
したり簡単にできるのよ
企業一覧
企業
企業
会社コード
会社名
会社コード
従業員数 会社名
郵便番号
代表者名
郵便番号
代表者名
住所
コメント
ふーん、情報を追加したくなった
ときには便利だね
17
住所
でも階層構造を上からたどって処理
するんだろう・・・銀行のオンライ
ン処理なんかがXMLデータベース
だったらかなり処理が遅そくなりそ
うに思うけど・・・。たとえば利用
金額の合計
6月の利用合計は?
利用一覧
利用1 利用2 利用3 利用4 利用5 利用6 利用7 利用8
50000 300 75000 8400 9800 46800 536000
口座番号
利用額
5500
利用日
hdi8498
50000
2007/6/6
hdi8498
300
2007/6/7
hdi8498
75000
2007/6/8
hdi8498
8400
2007/6/9
hdi8498
9800
2007/6/10
hdi8498
46800
2007/6/11
hdi8498
536000
2007/6/12
hdi8498
5500
2007/6/13
確かに利用一覧要素からの
パスをたどって利用額を探し
あてるから、RDBの処理速度
には敵わないわね。
利用額列を加算するだけ
18
◇RDBとXMLデータベースの特徴の比較
RDB、XMLデータベースは、それぞれ次のような特徴があり、
これらの特徴を理解した上で、使い分けをしていくことが大切です。
■RDBの特徴
・テーブル形式でデータを格納
・各レコードのカラムの数はすべて同じ
・あとからの設計変更を極力避けられるように時間をかけて入念に
データベースを設計
・テーブル内データの集計処理などのパフォーマンスに優れている
■XMLデータベースの特徴
・XMLデータ形式でデータを格納
・データの繰り返し回数や出現の可否などの柔軟性が高い
・階層構造を保ったままデータベースに格納できる
・取り出したデータのHTML化が容易
表1 RDBとXMLデータベースの特徴の比較
RDB
XMLデータベース
格納形式
テーブル形式
XMLデータ形式
レコード長
固定
不定
階層構造のデータの取り扱
い
正規化された複数テーブルに格
納
階層構造を保ったまま格納
Webとの親和性
低い
高い
設計変更のコスト
高い
低い
19
3.XMLデータベースの
利用用途
ここではXMLデータベースがどのような
システムに利用されるのかをRDBの利用
用途と比較しながら学習していきます。
第3話 RDBとXMLデータベースの適材適所を整理してみよう
どうもRDB、XMLデータベース
それぞれに適材適所がありそうね
よし!じゃあどんなときにRDBが
良くてどんな場合はXMLデータ
ベースなのかを整理してみよう。
21
大量のトランザクション処理を行う場合は
RDBのほうがいいんじゃないかな?
高速性が求められるし、クリティカルなデータ
が多いから、DBの設計も安易に変更しないと
思うし・・・
XMLは構造上大量のデータの処理を
すると遅くなってしまうだろう。
22
文書をデータベース化する場合にはXMLデータ
ベースの利点が活かしやすいと思う。あとから情報
を追加することが容易だし・・・。それと、XMLは
Webとの親和性が高いから簡単にデータ
ベースの内容をHTML化できるもの。
営業部
社内規定集
総則
出張規定
退職規定
HTML化
して表示
国内出張規定
海外出張規定
どこにいても
Webから
確認できて
便利だわ。
出張規定に
注記を追加
しましょう
出張規定に
注記がついた
んだ
総務部
マーケティング部
23
◇RDBとXMLデータベースの利用用途の比較
RDB、XMLデータベースそれぞれがどのような利用用途
に適しているのかをまとめてみましょう。
表2 RDBとXMLデータベースの得意とする利用用途の比較
RDB
XMLデータベース
高速トランザクション処理
優れている
可能
ドキュメント管理
可能
優れている
Webとの連携
可能
優れている
定型処理
優れている
可能
非定型処理
可能
優れている
それぞれの具体的な適用例としては、以下のようなシステムが
挙げられます。
RDBの利用例
・銀行の勘定系システム
・給与管理システム
・財務会計システム
XMLデータベースの利用例
・文書管理システム
・コンテンツ管理・検索システム
・情報共有システム
・Webデータの管理
・Officeデータの格納、再利用
24
4.XMLデータベースの
事例
ここでは実際のXMLデータベースの事例を
みながらXMLデータベース利用メリットを
考えていきます。
事例1
日本経済新聞社 イベント出展管理システム
日本経済新聞社では、自社で主催するイベントの出展者情報を
XMLデータベースで管理しています。
【システムの概要】
出展者登録サイト(http://www.nikkei.co.jp/events/eco/)より登
録された出展情報をXMLデータ形式に変換し、XMLデータベー
スに登録します。XMLデータベースに登録されたXMLデータは、
都度スタイルシートを適用することでHTML化し、Webに表示し
たり、また、PDFに変換して、ガイドブックを作成することができま
す。これによりWebサイト反映や配布用ガイドブック印刷組版の
効率化と事務作業コストの削減を実現しています。
〔出展者〕
〔イベント管理者〕
XMLデータベース
xxxxxx
xxxx
出展情報
の登録
展示会配布用
ガイドブックを
PDF形式で出力
http://www.nikkei.co.jp/events/eco/
出展情報を
Webに表示
26
【比較1 】紙ベースと比較したXMLデータベース利用メリット
・出展者の最新状況がリアルタイムにわかる
以前の紙ベースの出展情報申し込み方法では、最新申し込み状
況の把握に時間がかかっていましたが、システム導入により、即
時に最新の状況が把握できるようになりました。
Aコーナーは今、何社申し込んでる?
データエントリが終わった
ら集計しますので、ちょっ
とお待ちを・・・(汗)
紙ベースだと・・・
・事務作業の削減
紙ベースの申し込み情報のデータ入力、Web情報の更新、出展
者ガイドの更新などを手作業で実施していましたが、システム導
入により、これらの事務作業を削減することができました。
27
【比較2】 RDBと比較したXMLデータベース利用メリット
・出展情報を容易に様々なフォーマットに変換して表示
スタイルシートを作成するだけで、XMLデータベースに登録され
た出展情報のWeb表示が行えます。また、PDF形式に変換して
展示会ガイドを作ることもRDBに較べて簡単に行えます。スタイ
ルシートを適用していると、イベントごとにWebの表示形式を変更
することも比較的容易に対応できます。
ガイドブックPDF
RDB
xxxxxx
xxxx
変換処理
Webアプリケーション
Web
・システム開発を伴う
・システム変更はコスト大
XMLデータベース
ガイドブックPDF
変換処理
スタイルシート
変換処理
スタイルシート
・スタイルシートで変換フォーマットを定義
・出力フォーマットの変更が容易
28
xxxxxx
xxxx
Web
事例2
福岡銀行 銀行内の事務手続文書、リファレンス
福岡銀行では銀行内の規則や規定、銀行業務の預金・為替・融
資・ローン・外国為替などに対する事務手続文書、リファレンスマ
ニュアルをXMLデータベースに格納して管理しています。
【システムの概要】
福岡銀行では規定や事務手続き文書、リファレンスマニュアル
が1万数千ページにも及ぶ文書となっていましたが、すべての文
書をXML化し、XMLデータベース上に登録しました。
これにより全行員が膨大な規定やマニュアルをWeb上で検索で
きるようになり、また、規定の変更がXMLデータベース上にリア
ルタイムに反映されるため、常に最新の情報が閲覧できるように
なりました。
〔サーバ管理者〕
〔各支店〕
XMLデータベース 最新情報
の閲覧
規定情報
の更新
29
【比較1 】 紙ベースと比較したXMLデータベース利用メリット
・管理コスト(印刷コスト、配布コスト、
保管スペース)の削減
印刷・配布・差し替えにかかるコスト
が年間で5000万円程度削減となりま
した。
・最新情報の即時配布
サーバでデータが更新されると同時
に各店舗で最新が閲覧可能となりま
した。
(こちらはイメージ図です)
規定の差し替えお願いします。
元の位置に戻しておかないと・・・
・使い勝手が飛躍的に向上
参照性、検索性などの使い勝手が飛
躍的に向上し、システムの閲覧数が
伸び続けました(1日6,000件以上)
(こちらはイメージ図です)
・閲覧状況の把握
ログから閲覧箇所、参照頻度がわか
るため、現在の業務で重点的に必要
とされている規程の種類が、本部側か
ら一目で把握できるようになりました。
30
【比較2】 RDBと比較したXMLデータベース利用メリット
・階層構造のまま格納、管理
規程類は複雑な階層構造をしています。 RDBも正規化によって
階層構造を持つデータを格納できますが、XMLデータのほうが
より階層を自然の姿に近いまま格納できますので、取り扱いが
容易です。
RDBでは階層データを正規化して複数テーブルに格納
C F G H
B C D E
リレーション
D I
J K
リレーション
(こちらはイメージ図です)
XMLデータベースは階層構造のまま格納
Z
A ・・
B
C
・・
F
G
E
D
H
繰り返し
・・
I
J
・・
K
(こちらはイメージ図です)
31
事例3
設備機器メーカー
仕様と文書をXMLで紐付けた製品情報管理
製造業を営む某外資系企業では、異なる部門で独立管理さ
れている製品情報と製品関連ドキュメントを条件指定により
柔軟に紐付けし、相互に関連検索を行うシステムをXMLデー
タベースを使って開発しています。
【システムの概要】
従来よりリレーショナルフォーマットでDB化している製品情報
には製品図面などの製品仕様書は格納されておらず、Excel
ファイルで管理されていました。そこで、RDB上の製品情報と
Excelで管理されている製品仕様書をXMLデータベース上に
取り込むことで製品情報から関連図面を検索したり、図面か
ら関連製品を検索したりすることができるようになりました。
RDB
営業部
XMLデータベース
P1
P2
P3
P4
P5
検索
製品情報
製品情報と
製品仕様書を
マッチングして
検索
製品仕様書
製品図面など
32
【比較1 】 従来システム(RDB+Excel)と比較した
XMLデータベース利用メリット
・検索性が向上
Excelファイルはファイル名、フォルダ名でしか検索することがで
きませんので、「ある製品に関連する図面を検索する」、あるい
は「ある図面に関連する製品一覧を表示する」などの処理が容
易には行えませんでしたが、XMLデータベースに格納することに
より容易に検索ができるようになりました。
RDB
P1
P2
P3
P4
P5
P1部品を含む図面
ファイルはどれとどれだ?
営業部
検索
製品情報
製品仕様書
製品図面など
Excelファイルを1つづつ
開いて確認するのか・・・(トホホ)
(こちらはイメージ図です)
33
【比較2】 RDBと比較したXMLデータベース利用メリット
・製品構成や仕様変更に対する柔軟性
製品構成や仕様は頻繁に変更になりますが、変更に対し、XML
データは柔軟に対応することができます。
XMLデータベースは構造変更に柔軟に対応
Z
A ・・
L
B
C
既存要素
E
D
追加要素
・・
F
G
H
・・
I
J
K
・・
M
・・
N O
RDBでは大幅な設計変更を伴うケースもある
B C D E
L
C F G H
K M N O
リレーション
D I
J K
上の例では新たな
テーブル追加が
発生し、再度正規化
が必要となる
リレーション
(こちらはイメージ図です)
34
繰り返し
第4話 エピローグ
XMLデータベースもいろいろ
使えそうだなあ・・
そうでしょ、これからは一緒に
XMLデータベースを勉強して
いきましょうよ
結局それが目的でしたか・・・
Fin.
35
ダウンロード

副教材案 - 海野先生のホットなページ