基幹系DBと情報系DBの違いからおさらい
ここで、ソフトウェア開発本部 ビッグデータソリューション部 担当部長の山口俊朗さんにご登場いただこう。
ちなみに山口さん、日立の「ビッグデータの顔」とも言えるお方で、ビッグデータ関連のイベントなどにたびたび登壇しているので、顔と名前をご存じの方も多いかもしれない。そんな方に、今さら初歩的な質問をするのもちょっとはばかれるのだが、HiRDBとHADBの違いについてあらためて聞いてみた。どちらも同じリレーショナルデータベース製品なのだから、用途が被ることになりません?
「HiRDBは基幹系システムのためのデータベース、そしてHADBは情報系システムのためのデータベースとして位置付けられています。そして基幹系と情報系とでは、データベースに求められる要件が根本的に異なるのです」
基幹系と情報系の違い……普段、何となく分かってる気でいたけど、じゃあデータベースに求められる具体的な要件の違いとなると、実はちゃんと理解できてなかったかもしれない。何がどう違うんですか?
「簡単に言ってしまえば、基幹系データベースは『あらかじめデータの使い方が決まっている』、そして情報系データベースは『あらかじめデータの使い方が決まっていない』というのが根本的な違いです」
なるほど、この対比は分かりやすい。つまり、こういうことらしい。基幹系データベースは、あらかじめシステムでどんな種類のデータをどのように処理するかが、あらかじめ決められている。従って、その特定に使い方において最も効率よくデータが処理できるよう、あらかじめデータを正規化し、テーブルをきっちり設計した上でデータを格納しておく。
それに対して、情報系データベースの用途は、任意のデータを好きなときに好きなだけ引っ張り出してくるような「自由な」使い方がメインになる。例えばBIなどでは、データウェアハウスに格納されているデータの中から、分析に役立ちそうなデータをユーザーがその都度自分の頭で考えて、自由に検索して引っ張り出してくる。つまり、将来的にどんなデータが分析に役立つことになるのか、あらかじめ予想することができないのだ。
なので、「これは将来、ひょっとしたら分析のネタになるんじゃね?」とちょっとでも思えるようなデータであれば、取りあえずは何でもかんでもデータベースの中にどんどん溜め込んでおく。「正規化なんて、知ったこっちゃないよ」という世界だ。
この違い、時間軸の観点に立って考えてみると、さらに分かりやすいかもしれない。さっきも言ったように、基幹系ではあらかじめデータの使い方が決まっている。ということは、何年分のデータを溜めておけばいいのかも、あらかじめシステムの要件で決められている。例えば、アプリケーションで3年分のデータしか処理しないのであれば、3年前より古いデータは捨てちゃってもいいわけだ。逆に、使わない古いデータをとっておいたところで、データベースが無駄に肥大化するだけ。意味がない。
また、業務システムが月次データしか処理しないのであれば、要らなくなった週次データや日次データもがんがん捨てちゃう。だって、無駄なデータをとっておけば、それだけコストも掛かるし、システムのパフォーマンス低下や不安定化要因にもなりかねない。だから、常に決まった形の、決まった量のデータを、決まった形で粛々と回していく。安定稼働が至上命題の基幹系では、これがベストなのだ。
一方、情報系ではむやみやたらと古いデータや日次データを捨てていくわけにもいかない。だって、将来いつ誰が、そのデータを必要とするか分からないもんね。
「データウェアハウスを導入する余裕がない企業の中には、基幹系データベースを情報系用途に併用しているところもありますけど、それだといざデータを検索しようと思っても、欲しいデータが欠落していることがあるんです。なので、情報系の用途ではなかなか使いづらい」(山口さん)
なるほどなるほど。基幹系データベースと情報系データベースの違い、だんだん分かってきましたよ。