コンテナデータベース【CDB】Container Database
概要

コンテナデータベースの内部には、「プラガブルデータベース」(PDB:Pluggable Database)と呼ばれる個別のデータベースが複数格納される。各プラガブルデータベースは独立したスキーマ、利用者アカウント、オブジェクトを保持し、外部のアプリケーションからは通常の単体データベースと区別がつかない。一方、データベースエンジンの実行環境やメモリ管理などのリソースはコンテナデータベース全体で共有される。
プラガブルデータベースはコンテナデータベースから切り離してファイルとして持ち出し、別のコンテナデータベースへ移転することも可能である。この可搬性により、開発環境から本番環境への移行など、データベースの移動や再配置を簡略化できる。
従来は、業務システムごとに個別のデータベースインスタンスを用意するのが一般的だった。この方式ではシステム数が増えるのに連動してメモリやCPUなどのリソース消費が増え、バックアップやパッチ適用といった保守作業もそれぞれ個別に行わなければならないため負担が大きかった。
コンテナデータベースでは一つの管理基盤の下に複数のデータベースを集約できるため、これらの運用作業を一元的に実施しやすくなる。サーバ仮想化のようにオペレーティングシステム(OS)ごと分離する手法と異なり、OSやデータベースエンジンの処理能力を共有しつつ、データとアクセス権限のみを論理的に分離するため、より軽量な統合が実現できる。
代表的な実装として、米オラクル(Oracle)社の「Oracle Database」におけるコンテナデータベースが知られており、2013年リリースのOracle Database 12cで導入された。利用者ごとに独立したデータベース環境を提供するクラウドサービスやホスティングサービスでも採用されることがある。なお、アプリケーションの実行環境を隔離するコンテナ型仮想化の「コンテナ」とは異なる概念である。