データベースの種類と役割の違い

RDBMS

  • RDBMSにはOLTP(オンライントランザクション処理)とOLAP(オンライン分析処理)がある。データウェアハウスもRDBMSで扱われる。
  • データは行と列で定義される。事前に定義された構造(スキーマ)で保存される。テーブル間にはリレーションが貼られる。複数のテーブルに重複した値を持たないように正規化される。
  • OLTPは一貫性を保つことを再重要視している。そのためにトランザクションという単位があり、トランザクションの途中で処理に失敗した場合にはロールバックも可能になっている。また、ロックという機構もある。書き込みを重視する構成になっている。
  • OLAPは分析のためのデータベース。書き込みよりも読み取りに最適化されている。OLTPのデータベースでも同じ事が可能だが読み取り性能が悪くロックも多発するためOLTPをそのまま使うのは効率が非常に悪い。だから専用のデータベースがある。ただし、別データベースにデータをコピーするのは時間もかかるデメリットもある。なのでハイブリッドにOLTP, OLAPの両方をこなせるDBも存在する。

データウェアハウス(DWH)

  • データウェアハウスは様々なデータソースからの情報を集約し、分析しやすい形にする。特にOLTPは正規化されており必要な情報を取り出すためには複数のテーブルを多数結合させる必要がある場合がほとんどであり、データベース構造に詳しい人以外には取り扱いが難しい事が多い。データウェアハウスでは構造はより簡単にする事ができる。結果として目的のデータをスムーズに取り出す事が可能となる。

具体例

ビッグデータソリューション

  • ビッグデータソリューションは従来のRDBMSでは大きすぎるデータや複雑すぎるデータを扱う。非リレーショナルデータ。ただし排他的なものではなく重複する部分もあり正確なものではない。
  • データストアの種類として、ドキュメント、単表形式、キーバリュー、グラフ、時系列、オブジェクト、外部インデックスなどがある。全てそれぞれに最適化されたデータ構造となる。トランザクションの管理は向かない。
  • ドキュメントデータストアの例としてCosmosDBがある。キーを元にデータを重な形で持てる。ドキュメント内の特定のフィールドの更新にも対応するものが多い。