第1回:業務データベースと分析データベース
皆さん、こんにちは。
今回は第1回ということで、予定どおり、業務データベースと分析データベースについて説明したいと思います。
業務データベースと分析データベース
データベースをデータの利用という観点から考えると、「業務データベース」と「分析データベース」という2種類のデータベースに分けることができます。
業務データベースはその名の通り、業務で利用するデータベースです。英語で、Operational databaseと言います。人事データベース、会計データベース、販売管理データベースなどが業務データベースに当たります。
簡単に言ってしまえば、そのデータベースがないと業務自体成り立たないデータベースのことです。業務データベースのデータは業務が完結してしまえば、データが不要になりますので、データの保持期間は短くなります。データは挿入(Insert)、更新(Update)、削除(Delete)が中心となります。また、業務に利用するデータベースなので、明細の情報に素早くアクセスできる必要があります。
一方、分析データベースとは、分析に利用するデータベースです。英語でAnalytical databaseと言います。データウェアハウスはこの分析データベースに当たります。当然、分析がメインですので、データの保持期間が多く、大量のデータを保持します。データの変化にも着目しますので、変更履歴を保持することとなります。分析が目的ですので、データは挿入(Insert)が中心となります。また、分析に必要となるレポーティングを提供するので、データベースのレスポンスは業務データベースと比べて、レスポンスタイムの許容時間は大きくなります。
業務データベースと分析データベースは分ける必要があるか?
業務データベースと分析データベースは分離するのが、一般的です。これは上で説明したようにデータベースの利用目的が異なるためです。仮に業務データベースと分析データベースを一緒にした場合、分析に利用するクエリやプログラムはサーバに大きく負荷がかかるため業務データベースに支障をきたします。最悪の場合、業務が遅れるということもありえます。また、分析データベースはさまざまなデータの関連性を見るため、さまざまな業務データベース1つの場所にまとめる目的もあります。
これによりキャンペーンと売上の関連性Webの利用と売上の関連性などの分析が可能になります。たまに業務システムで分析機能も網羅しようとし、肥大化してしまったシステムを見ることがありますが、システムメインテナンスが膨大になり、分析も満足にできない状態です。そのため、業務データベースと分析データベースは必ず分けましょう。
分析データベースには業務データベースと違ったアーキテクチャ、テクニックが必要となる
上記で説明したように分析データベース、つまりデータウェアハウスは大量データを保持し、大量データを分析処理する必要があります。そのため、その要件を満たすために業務データベースとは違ったアーキテクチャ、データモデリングテクニックが必要となります。たとえば、業務データベースに正規化のリレーショナルモデリングのテクニックがあるように、分析データベースにはスタースキーマと呼ばれるテクニックがあります。各ベンダが販売しているデータウェアハウス、BI関連ツールもデータウェアハウス用のテクニックを前提に開発されています。そのため、これらのテクニックをすることはこれのツールを最大限に利用するための良いバックグランドとなります。
次回以降では、データウェアハウスのアーキテクチャ、モデリングテクニックなどを紹介していきます。