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