オブジェクト指向で成功したデータベースはあったのか?
「今日のDBオフラインはDB Onlineのコンテンツに関するオープン会議を想定しています。ということでビールも用意しています。それでは乾杯!」
今回谷川氏と一緒に話を進めるのは、ISO SC32/WG3(Database Language SQL)日本代表であり、日本データベース学会 副会長の土田正士氏。データベースに携わり30年にもなる生き字引のような存在です。普段は日立製作所にお勤めで、SQL標準の策定のほかにデータベース製品の開発にも携わっています。2011年に学会活動がきっかけで博士号を取得されています。(参考記事:日立の「Dr.SQL」登場!-土田正士さん)。
第2回DBオフラインやります。
→「Dr.SQLに聞くSQLの歴史とこれから ― え、SQLはすでにNoSQLだったの!?(後編)」
谷川:SQL標準というと「SQL99」が代表的ですが、どのような特徴がありますか?
土田:SQL99は当時オブジェクト指向が注目されていた背景があり、ユーザに自由にデータ型の定義をしてもらい、そのデータ型に操作してもらうというのを目指したというのがあります。
谷川:当時データベースベンダーは多数いてSQL92に向けてみんな同じ方向を目指していたけど、SQL99あたりからオブジェクト指向へ向かうか、新たなRDBの世界に向かうものとの分岐点だったように記憶しています。
土田:その後に残ったデータベースベンダーは10社程度に絞られました。開発には投資が必要ですし、買収もありましたから。
谷川:あらためて振り返るとオブジェクト指向で成功したデータベースはあったのでしょうか?結果的にバイナリーが入るようになったなどの影響はありますが。
土田:成功という観点から見ると難しいですね。オブジェクト指向のアプリ開発とシステム実装にはギャップがありますから。ただ当時Javaが出てきた影響が大きいと思います。ストアドプロシージャやファンクションなどが採り入れられました。
谷川:私は当時オラクル8iのマーケティングで、行政のマルチメディア研究会でデータベースで何ができるか説明していました。例えば動画ファイルにSQLで「select 格闘シーン」とすれば格闘シーンだけセレクトできないだろうか?とか。当時できると思われていたこととデータベースのできることにギャップがありました。SQL99以降はどうなりましたか?
会場(原沢):イメージとしてSQLで使われているのはSQL92、Windows関数まで。新しい関数、XQueryとか実際どのくらいの人が使っているのか疑問です。
谷川:確かに世の中のデータベースを見るとだいたい「SQL92準拠」。2003や2008準拠って見かけませんね。
土田:ニーズはあるのですが、アプリ開発者が使っているかというと別です。SQL99の先というと、実はOracleもIBMもSQL2003の機能は実装しています。あまり方言を使わないようにと努力はしているんですね。あまり知られていませんが。
SQL標準裏話
谷川:ところで最初SQL標準に参画するときに日本人は土田さん1人?
土田:当初からは、芝野先生。当時IBMでした。日本人で会議に参加していた人はいましたが、SQL99の頃は私1人でした。
谷川:人数だと何人くらい?
土田:SQL99直前だと20人いませんでした。今は減っていて半分くらいです。ベンダーが減っていますから(苦笑)
谷川:力関係とかあるんですか?
土田:やはりアメリカは強いですね。オラクルやIBM関係者です。彼らは言ったからには製品として実装します。
谷川:オープンソース系はどうですか?
土田:いません。とはいえ、PostgreSQLは標準に近いものを実装しています。あるとき正規表現にて「使われていないから廃止しよう」という動きがありましたが、よくよく調べるとPostgreSQLが使用しており、互換性を崩すわけにはいかないので残すことに決まるということもありました。PostgreSQLは標準を積極的に盛り込んでいます。
谷川:SQL92からSQL99の間は長かったですね。大きな変化でもあったのでしょうか?
土田:間に規格の構成を見直したり、揺り戻しがあったり、いろいろとありました。やはりJavaの影響が大きかったです。「これからの言語はJavaだからこうでなくちゃいけないよね」と、Javaのオブジェクトモデルを参考にしました。
谷川:そのころからJavaがSQLに影響を与えていたなんて。
土田:95~96年当時、まだ(Javaは)「走り」でした。Javaを契機にコアとライブラリなどSQLの構造を規定しようと日本から提案したら却下されたことも。