[pgsql-jp: 30523] PostgreSQL XML拡張Project XpSQL

Makoto,Yui yuin @ bb.din.or.jp
2003年 7月 19日 (土) 01:06:51 JST


油井と言います.

昨年学生の時に, 未踏ユースソフトウェア事業で, PostgreSQLへXPath, DOM等
XML拡張を行ないました.
http://www.ipa.go.jp/NBP/14nendo/14youth/gaiyou/02-010.htm

だいぶ遅くなってしまいましたが, 先日そのテーマの成果物であるDOM, 
XPathを共にサポートするXMLデータベース環境(XpSQL)をリリースしました.
ftp://gborg.postgresql.org/pub/xpsql/stable/xpsql-0.9.tar.gz

まだ不足しているものも多いのですが, 最低限のINSTALL情報, USAGEなどは
提供していると思いますので, よかったら使ってみて下さい.

#GLib1/2やLibXML2など利用していますし, 今のとこLinuxでしか検証はしていませんが
#FreeBSDでもライブラリ入れて, GCC使えば問題ないはずです.

XpSQLに関する最新情報はGborgで公開します.
運営はPostgreSQLの開発コミニティGBorgでオープンに行ないます.
バグと機能要求の管理もいちお, 反応みながらこちらでやる予定です.
http://gborg.postgresql.org/project/xpsql/

サポート, 質問等はこちらにお願いします.
http://gborg.postgresql.org/mailman/listinfo/xpsql

9月中旬には, ビジネスショウのIPAブースの一角(?に展示, プレゼンを行なう予定です. 

以下, 簡単なアピールです.

=== XpSQLとは何か? ====

XpSQLはPostgreSQLを利用した多機能なXMLデータベース環境です.
XpSQLはXMLをPostgreSQLに格納し, XMLとしてアクセス可能なインターフェース群を提供します.

本環境が多機能であることは, 次の機能を全て持つことを指します.
 (a) DOM準拠関数によるアクセス機能 
 (b) XPathによるアクセス機能 
 (c) 格納されたXMLの更新機能

-- 未踏事業で開発されたXMLPGSQLとの違いは何か? --

1. XPathサポート
	-> 既存の研究システムと違うのは部分更新可能なこと, DOMが扱えること,
	   コメント, PIなどをサポートしていること, 後はXPath Axisを全て
	   サポートしています. それと目的が違います(-:
	   *部分*更新が可能なことは他のXML-DBシステムと比較しても利点だと思います.
2. スキーマの変更とパフォーマンス向上 (擬似DOM関数も書き直した)
3. DOM Level 2 Coreを部分的にサポート
	-- これは日曜午後の半日で作ったものなのであまりテストはしてないです. 
	  Exceptoionもこれからもっとましにする予定.この機能に関しては, pre alphaぐらいで.

	TreeWalkerもサポートしようと思いますので, 木構造をRDBで管理しようと思って
	悩まれたことがある方もどうぞ. 現状では, 最低で根から辿れる
	getFirstChild, getNextSiblingだけ取り敢えず入れておきました. 
	各種探索APIは近いうちにサポート入れときます.

4. PGXLOADというバルクロードシステムを作りました.
	バルクロードとは, XMLをDBにロードすることを言います.
5. DBにいれたXML文書を復原するtoXML関数を追加しました. <-> Bulkload

こういう使い方もできます. XPathで抜きだしたものエレメントの値を更新.
	
	begin;
	INSERT ..;
	UPDATE xml_node SET content = 'hoge'
		FROM xpath_eval('/PLAY/text()') as Q
		WHERE xml_node.id = Q.id;
	commit;

	利用イメージは, doc/USAGEを参照ください.

-- OracleやDB2のXMLサポートとはどう違うか? --

OracleはXML文字列をAtomicな値として, データベースに格納しXMLとしてアクセスする
インタフェースを提供されていますが, XpSQLはノード単位に分割してデータベースに格納します.
エッジ指向のアプローチを取っているため, Indexを用いた効率的なアクセスや
部分更新を行なうことができます.

DB2はDTDを用いてスキーマ構造に反映させる構造を写像させるアプローチを
取っています. それに対してXpSQLは, 固定したデータベーススキーマを用いるモデル写像
アプローチを取っています. DTDごとにスキーマを作成する必要が無いとか, 整形式XML文書
を扱えるという利点があります. ツールがあるとは言え, マッピング書くのなんて御免だー
なんて人もどうぞ.

-- XML Native Databaseと比較して --

長くなったのでここいらで, 辞めときます.

+-------------------------------------------------------------------+
Makoto Yui <yuin @ bb.din.or.jp>
Key fingerprint = 6462 E285 97D8 1323 40C4  F9E5 EB0F 9DE6 1713 219E
+-------------------------------------------------------------------+



pgsql-jp メーリングリストの案内