Viper 2で学ぶXMLデータベース最新事情(3)
“プロフ”サイトの構築だってXML DBでしょ
日本アイ・ビー・エム
中林 紀彦
2007/12/21
■「XQuery Update Facility」とは?
さてここまでは具体的な例を紹介しながらXML文書の更新についてお話ししましたが、XML文書の更新については、W3Cから「XQuery Update Facility 1.0」(執筆時点ではワーキング・ドラフト)として公開されています。
XQuery Update FacilityはXMLのクエリ言語であるXQuery 1.0の拡張で、XML文書を更新するための仕様について述べられています。新しい式として、
- Insert
- Delete
- Replace
- Rename
- Transform
が定義されています。
DB2 9.5はXQuery Update Facilityの仕様(W3C Working Draft 11 July 2006)に基づいて、Transform(変換)式を中心とした実装になっています。このTransform式は、実際のXMLノードのコピーを作成して、そのコピーに対しての変更操作(Insert、Delete、Replace、Rename)を行うというものです。また、「3. プロフィール項目の追加」の部分で解説したように、実際のXML文書の更新にはUPDATE文を使います。
XQuery Update Facility 1.0にはこれ以外にも、更新のための関数やルーチンについて書かれていますので、興味のある方は目を通してみてください。日本語の翻訳はまだないようですが、式や関数の構文を中心に書かれていますので、英語の苦手な方でも理解できる内容になっています。
■XMLデータベースならではのひと味もふた味も違う機能
今回は、XMLデータの更新というテーマを中心にお話しましたので、検索についてはあまり触れていませんが、検索についてもXQueryで十分に既存サービスを上回る機能を満たせます。下記の不満点をXQueryで解消してみましょう。
- ヒットした項目名を表示できるものはない
- 検索項目と項目の内容を指定できるものがない
リスト8-1はヒットしたXMLデータのHNとヒットした項目自体も返すようになっています。既存サービスで、キーワード検索でヒットした結果にどの項目でヒットしたのかを表示するものは、調べた限りではありませんでした。
xquery |
リスト8-1 ヒット結果にヒット項目名も表示 |
リスト8-2は項目名を複数指定して検索をするという、XQueryとしては非常に初歩的なものです。しかし、これをMySQLのようなリレーショナル・データベースでSQLを書くと、自己結合が検索項目の数だけ発生してしまうので、データ量が多くなると非常にパフォーマンスが悪くなってしまいます。
xquery |
リスト8-2 複数の項目名を指定して検索 |
リスト8-3は集計を行うXQueryで、検索キーワードでヒットした項目を集計するものです。例えば、「カレー」というキーワードで検索したとすると、ヒットした項目が「好きな食べ物」なのか「嫌いな食べ物」なのか、もしくは職業やアルバイト(カレー屋さん)なのか、その件数を結果として返します。このような検索も既存のサービスで実装できているところはないようです。
xquery |
リスト8-3 ヒット項目の集計 |
◇
今回のKさんは、XMLデータベースに目覚めました。プロフのような属性の項目数が多く、各データの持つ項目数が一致していない場合、MySQLなどのリレーショナル・データベースでアプリケーションを構築するには限界があります。今回のようにXMLデータベースを使うことで、いままではシステムの限界のように思えていたことも、いとも簡単にできてしまいます。このような例は商品カタログや求人のレジュメ、社員のスキル情報などさまざまなケースに応用が可能ですので、これを機会に人とモノの属性に関する情報を扱う際には、ぜひXMLデータベースを検討してください。
4/4 |
Index | |
連載:Viper 2で学ぶXMLデータベース最新事情(3) “プロフ”サイトの構築だってXML DBでしょ |
|
Page 1 ・どのサービスよりも高機能で柔軟な“プロフ”サイト |
|
Page 2 ・プロフサービスの基本となる機能の実装 1. XMLデータの登録 2. 対象データの検索 3. プロフィール項目の追加 |
|
Page 3 4. プロフィール項目の変更 5. プロフィール項目の削除 6. 複数のプロフィール項目を同時に変更 7. プロフィール項目の順序を変更する |
|
Page 4 ・「XQuery Update Facility」とは? ・XMLデータベースならではのひと味もふた味も違う機能 |
Viper 2で学ぶXMLデータベース最新事情 |
- Oracleライセンス「SE2」検証 CPUスレッド数制限はどんな仕組みで制御されるのか (2017/7/26)
データベース管理システムの運用でトラブルが発生したらどうするか。DBサポートスペシャリストが現場目線の解決Tipsをお届けします。今回は、Oracle SE2の「CPUスレッド数制限」がどんな仕組みで行われるのかを検証します - ドメイン参加後、SQL Serverが起動しなくなった (2017/7/24)
本連載では、「SQL Server」で発生するトラブルを「どんな方法で」「どのように」解決していくか、正しい対処のためのノウハウを紹介します。今回は、「ドメイン参加後にSQL Serverが起動しなくなった場合の対処方法」を解説します - さらに高度なSQL実行計画の取得」のために理解しておくべきこと (2017/7/21)
日本オラクルのデータベーススペシャリストが「DBAがすぐ実践できる即効テクニック」を紹介する本連載。今回は「より高度なSQL実行計画を取得するために、理解しておいてほしいこと」を解説します - データベースセキュリティが「各種ガイドライン」に記載され始めている事実 (2017/7/20)
本連載では、「データベースセキュリティに必要な対策」を学び、DBMSでの「具体的な実装方法」や「Tips」などを紹介していきます。今回は、「各種ガイドラインが示すコンプライアンス要件に、データベースのセキュリティはどのように記載されているのか」を解説します
|
|