オラクルが考える「NoSQLに足りないもの」とは
今回の講演の冒頭では、とりわけOracle Databaseに備わる「SQL」と「PL/SQL」に関する能力が紹介された。数々の最新機能がある中で、これらの基本機能を改めて取り上げた理由を、ヒチワは次のように説明する。「ご存じの通り最近では、SQLを使わずにデータベースアプリケーションを構築する『NoSQL(Not Only SQL)』のムーブメントも広がっています。そうした今、SQLの持つ能力にいま一度光をあてるべきだと思いました」。
「NoSQLの問題は、SQLとは異なり、すべてが物理的な実装と密に結びついてしまっている点です。NoSQLデータベースの多くは、データに対して物理的な配置に依存したアクセス手段しか利用できず、柔軟性に欠けています。もちろん、NoSQLデータベースが適している用途も存在しますが、すべての用途に最適とは言えません」
「一方、SQLではデータの論理的な側面と物理的な側面が明確に分離されています。私は1996年から14年間に渡ってOracle Databaseの開発に携わっていますが、当時Oracle 4向けに記述したSQLが現在でもそのままOracle Database 11g上でも動作します。SQLは一行も変更していません。しかし現在は、パーティション機能やデータ圧縮、コストベース最適化、マルチバージョニングによる一貫性確保、データベーストリガーなど多彩な機能を、その同じSQLに対して適用できます」
「例えば、私が最初のOracleデータベースアプリケーションの開発を始めた当時は、DECのVAX/VMSプラットフォームが世の中を席巻していました。しかしその後UNIXが主役の座を奪い、さらにはLinuxへと変遷を続けます。その間、SQLはほとんど変化せずに使われ続けましたが、プラットフォームに依存したデータストアが生き残ることはありませんでした。今やSQLとRDBの技術は、マイクロソフトやSAP、IBM、そしてオラクルを含め、業界全体がサポートする標準技術として位置づけられています」