プログラミングより、「データベース思考」
岸田さんとデータベースとの関わりについて話題を移そう。エンジニアとしての最初の仕事はシステム開発のプロジェクトでプログラミングをすることだった。いわゆるプログラマーである。しかしあまり性に合わなかったのかもしれない。「プログラマにはすごい人がいるんですよね。そうした人に比べると自分はたいしたことがないと思えてしまって」と少し肩身の狭い思いをしていたようだ。
代わりに目が向いたのはデータベースだった。当時開発で使っていたのはOracle Database。「ほかに詳しい人がいないから」ということで徐々にデータベースについて学んできた。実際ORACLE MASTER DBAをOracle Database 8iのときにGoldを取得し、10gになるまで更新し続けた。
実務上の必要性も当然あったにしても、岸田さんの考え方はプログラミングよりデータベースに向いていたのではないだろうか。例えば開発の現場ではプログラムでごりごりとデータを処理することもあるが、岸田さんから見ると「SQLで終わらせればいいのでは」と思う場面もあるそうだ。ここは考え方の指向が分かれるところなのかもしれない。プログラムに慣れた頭だとデータの集合の中でループ処理するという発想になりがち。しかしデータベースを集合論的にとらえた頭だとSQLで処理するほうが得意なのだろう。
実際に岸田さんがインクリメントPで関わったシステム刷新でも似たようなことがあった。今ではネットからリアルタイムに地図データを表示できるカーナビもあるが、それと同時にネットから差分配信された地図データを更新するカーナビも多い。つまり前回の更新時以降のデータを差分で提供するという要件がある。
地点情報で考えると、例えば最新の状態では「セブンイレブン」だとしても、数年前は「ローソン」、その前は「ファミリーマート」など、同じ地点でも名前や情報が変わることがある。そういう地点情報の性質と差分を提供するという要件を考えたとき、プログラミングだけで解決しようとすると難しい。データが増えればなおさらだ。岸田さんは地点ごとのデータを履歴という形で保持し、必要な情報をSQLで抽出するという処理にした。