谷川:ここからはDBオフラインです。1回目に続き、SQLの話をしていきます。なぜ私が聞き役になれるかというと、DBオンラインのチーフキュレーターをしているのと、前職でオラクルでマーケティングをしていてSQLは書く程度なら経験があるからです。まずは土田さんから自己紹介をお願いします。
土田:普段は日立製作所に勤めています。日本データベース学会の副会長もしています。ここ15年ばかりISOにてSQL標準に策定に携わり、規格を開発しています。標準の策定をしつつ、会社の製品に反映するということをしています。
谷川:日本データベース学会は今回のイベントの後援もしてくれています。日本データベース学会は来るもの拒まずらしいので、私も入会したところです。
土田:興味がありましたら「DBSJ」でググってみてください。私は入社して30年目になります。30年勤めたので休暇を取れと言われて今度休暇を取るところです。入社は1983年、最初に上長から指示されたのがDBMSの開発です。当時ですからメインフレーム上のデータベースです。今で言うところのデータベースマシンを組み込む開発もやっていました。マイクロプログラムの開発や基板をつくる経験は技術者として糧になりました。
また他にやっていたのはUNIX上の大規模並列データベースです。対抗していたベンダーがCPUを1012個並列にしていたので、その約4倍となる4096の超並列を目指していました。
谷川:大きいことがいい時代でしたね。
土田:80~90年代でしたから「いけいけどんどん」でした。その後SQLはORDBへと向かっていました。データベースは早く検索できるようになり、画像や音声など今までデータベースにないものをデータベースの検索機能として差し込もうとする動きになっていました。SQL標準に携わったのもこの頃です。当時関係者は20人ほど。文化や人種の違いもあり、大柄な人が多かったと記憶しています。
谷川:メンバー的にはIBMとかOracleですか?
土田:ほかにもいました。まだデータベースベンダーが50社ほどあった時代で業界に元気がありました。SQL標準だと当時はSQL92。その後のSQL99でORDBに向けて舵を切ったベンダーとそうでないベンダーへと別れました。この間、7年間。論争や揺れ動きがありました。
谷川:そのとき技術要素がNoSQL的なものに生かされているようですね。
土田:オブジェクト指向ですね。また、外部のデータソースを読み込んでファイルを取り出し、ほかの表とジョインする。データソースを外に広げるという仕掛け作りが行われていました。
谷川:振り返ると、SQLではない機能をSQLの標準に取り込むというのは面白いですね。そろそろ資料の方に話を進めましょうか。
SQL2015に?!
土田:今回のテーマでもあるSQLとNoSQLの違いから。RDBにおいてデータモデルは一貫してリレーショナルです。大きな転機はJavaの登場でした。Javaが出てこなければORDBの転換はなかったかもしれません。その後に情報統合やXMLなどの動きがありました。今SQL標準は「SQL2016」が出ようとしていますが、もしかしたら「SQL2015」となるかもしれません。
谷川:おお!早まるのですね。
土田:次のSQL2016あるいはSQL2015ではIoTやビッグデータの影響を受け、必要なデータを組み合わせるなどデータ活用が進むように考えられています。
谷川:いまいまのNoSQLに近い実装になるのですね。
土田:連想配列なんてまさにキーバリューそのものです。
谷川:グラフ処理機能なんてすごく気になります。
土田:グラフデータベースには3タイプくらい系統があります。データの関連性をたどるもの、ページランクに使われる中心性解析、大規模な社会現象を解くようなものなど。いま議論中です。
谷川:オブジェクト指向型のようですね。
土田:SQLでやるか、グラフデータベースでやるか、そこはまだ模索中です。
谷川:行間パターン認識から見ていきましょうか。
土田:基本的にはデータを時間軸で並べ直して、ある種のパターンを見いだすものです。例えば資料25ページのTicker表は株価の変動を表しています。Symbolは銘柄、Priceは株価だと思ってください。正規表現で株価動向のパターンを見いだそうとしています。SQL文の「ONE ROW PER MATCH」ではマッチしたらどういう行を取得するかを指定します。パターンが形成されたらサマリーの行を出しなさいということです。
谷川:これがアウトプットとなるのですね。
土田:マッチしたら次はどの行からパターンマッチを開始するかを指定しているのが「AFTER MATCH SKIP PAST LAST ROW」です。前の値から株価が下がっていたらパターン「B」、上がっていたら「C」としています。
出力となる行では(資料26ページの下にある表)開始の株価が「Startp」、終了の株価が「Bottomp」、平均値が「Avep」です。
谷川:ちなみにこれはどこから提案されたのでしょうか。
土田:オラクルさんです。12cには確か実装されていたはずです。
谷川:オラクルにはこれを使うアプリケーションがあるのでしょうね。
土田:だと思います。標準化になればPostgreSQLでも実装されるのでは。
谷川:前回話題になりました。PostgreSQLが一番SQL標準に近いデータベースと考えて間違いないですか。
土田:そうですね。アンテナを高くしてやられています。
谷川:でもPGの方が標準にかかわる人はいないのは不思議ですね。時間がないのでJSONに行きましょう。