HTML5の標準化で表面化したSQLの非互換性問題

2009年5月12日はてなブックマーク del.icio.us Twitter
タグ : Firefox , HTML5 , Web標準

HTML5の仕様として検討され、先日独立した仕様となったWeb Storageですが、仕様を策定するにあたりSQLの互換性が問題になっています。

Web Storage Editor's Draft

Web Storageは、Webブラウザ上にデータベースを実装し、Webアプリケーションからデータベースへアクセスできるようにする、という仕様です。名前/値のペアのシンプルなデータ形式だけでなく、アプリケーションがSQLを発行して直接データベース操作する方法も提供しようとしています。

しかしデータベースをかじった人であれば誰でもご存じのように、SQLが標準化されているというのはあくまで名目上のことです。実質的には製品ごとにSQLの方言があり、実装レベルもまちまちで互換性はありません。そのため、ある製品で動作したSQL文がそのままほかの製品で動くことは期待できません。

現在のところ、Web Storageの先行実装としてグーグルが開発したGears、アドビのAIR、Safariなどがあり、データベースにはすべてSQLiteを用いています。

しかし今後ほかのデータベース、例えばオープンソースのFirebirdなどを用いたWeb Storageの実装が登場した場合、SQLiteの実装を前提にして動作していたWebアプリケーションが動作しなくなる可能性があります。

だからといって、Web Storageを、SQLiteという特定の実装を前提にした仕様にするわけにもいきません。

そのため、現在Web Storgeのワーキンググループでは、Web StorageのAPIでSQLを用いるのが望ましいことなのかどうか議論しているとのことです。5月9日現在のWeb Storageのエディターズドラフト 第4章 Structured storageにはこう記述されています。

The working group is currently debating whether SQL is the right abstraction for this API.

HTML5 Web Storage and SQL at Vladimir Vukićević

Mozilla CorporationのVladimir Vukićević氏が、ブログ「HTML5 Web Storage and SQL」でこの問題を指摘しています。

Vukićević氏は、SQLiteの特定のバージョンを前提にした仕様は「ひどいもの」だとしています。

Because there are no guarantees that SQLite won't make any incompatible changes. For example, a future SQLite 4 may introduce some changes or some new syntax which wouldn't be supported by earlier versions.
なぜなら、SQLiteが今後のバージョンで過去のバージョンと互換性を持たせるかどうか保証していないからだ。例えば、将来のバージョンであるSQLite 4では、過去のバージョンと互換性のない新しいシンタックスへの変更があるかもしれない。

この問題を解決するには、Webアプリケーションのデベロッパは何を必要としているのか? という問題に立ち返って考えることが必要だというのがVukićević氏の意見。

Instead of all of this, I think it's worth stepping back and consider exactly what functionality web developers actually want.

続いてjLinqや、CouchDBPersevereなどの名前を挙げて、オブジェクト指向データベースの方が、この問題をよりよく解決できるのではないか? と提案しています。

SQL文のサブセットを細かく定義するといった手法では、この問題は解決しないだろうと僕も思います。では、提案されているようなオブジェクトデータベースで解決できるのかどうかというと、そこは詳しくないので分からないのですが、JavaScriptのオブジェクトとうまくマッピングして操作するといった手法を使えば、SQLよりも互換性の問題をうまく解決できるような気がします。

こうした複雑な部分をHTML5の仕様から分離した点は正解だと思いますが、Web Storageの仕様と実装はまだまだ時間がかかりそうですね。

関連記事 on Publickey

関連記事 on the Web


次の記事≫ 検索ボックスはもっと目立つ位置にあっていい
前の記事≪ アジャイル開発手法「スクラム」のオフィシャル講習会が秋葉原で実施

Loading...

Blogger in Chief

photo of jniino Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。新しいオンラインメディアの可能性を追求しています。
詳しいプロフィール


Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
RSSリーダーで : Feed
≫ 過去の記事を読む




アクセスランキング - 過去7日間

  1. IT系上場企業の平均給与を業種別にみてみた …
  2. IT系上場企業の平均給与を業種別にみてみた …
  3. SIerとパッケージベンダはどちらが高給? …
  4. Cassandra入門と、さらに詳しく知るた…
  5. ミクシィのNoSQLデータベース「Tokyo…
  6. SQLの都市伝説。マイケル・ストーンブレイカ…
  7. TwitterがBitTorrentで高速に…
  8. 仮想化は、クラウドのインフラとしては不要では…
  9. セキュリティを高めた「仮想化Firefox」…
  10. 楽天、性能向上を分散オブジェクトキャッシュで…
  11. Twitter、急成長に対応するため独自のデ…
  12. アドビ「iPadでFlashアプリを動かす」…
  13. グーグル、「政府専用Google Apps」…
  14. ITまんが 2010年版 ~ ITが楽しく分…

アーカイブ  (最新記事10)

バックナンバー

2010年7月
2010年6月
2010年5月
2010年4月
2010年3月
2010年2月
2010年1月
2009年12月
2009年11月
2009年10月
2009年9月
2009年8月
2009年7月
2009年6月
2009年5月
2009年4月
2009年3月
2009年2月






Trackbacks (TrackbackURL:http://www.publickey1.jp/mt/mt-tb.cgi/110)

  • [Tech]カウチでブラウズ from かずめも ラジカル - Debianのある生活 - (2009年5月21日)
  • (トラックバックは承認後に掲載されます)

Comments