OracleとDB2、アーキテクチャはこれだけ違う:RDBMSアーキテクチャの深層(2)(1/2 ページ)
本連載はOracleを使ったデータベースシステムの開発・運用管理にある程度の知識を持つ読者を対象に、Oracle以外の商用RDBMSであるMicrosoft SQL ServerとIBM DB2とのアーキテクチャの違いを明らかにし、マルチベンダに対応できるデータベースシステムの設計・開発・運用ノウハウを紹介していく。(編集局)
はじめに
主な内容
--Page 1--
はじめに
今回扱うRDBMSとその対象内容
インスタンスとデータベース
--Page 2--
トランザクションとデータの一貫性
オプティマイザ
今回のまとめ
前回の「RDBMS製品のビッグ3、それぞれの“癖”をつかもう」では、まず概要として3つの商用RDBMS(Oracle、DB2、SQL Server)の選定基準の最近の動向について解説しました。今回は、OracleとDB2のアーキテクチャの比較を行います。ここでは、2つのRDBMSのアーキテクチャの根本的な違いについて解説し、それぞれのRDBMSを扱ううえでの“癖”を理解していきたいと思います。
なお、以降の説明では、特に断らない限り、「Oracle」はOracle9i Enterprise Edition、「DB2」はIBM DB2 UDB Enterprise Server Edition V8.1の各製品に関する説明とします。また、両製品ともに、本質的にオペレーティング・システムのプラットフォームに依存しない内容となります。
今回扱うRDBMSとその対象内容
同じRDBMSとはいえ、OracleとDB2、SQL Serverではアーキテクチャがまったく違います。各RDBMSの“癖”は、それぞれのアーキテクチャの実装の根本的な違いに起因します。Oracleとのアーキテクチャの実装の違いを理解することは、ほかのRDBMS製品の“癖”をつかむうえで理解しておく必要があるため、今回と次回(第3回)の2回にわたってアーキテクチャの解説を行っていきます。
ここで取り上げる内容は、すでにOracleデータベース管理の経験があり、今後、DB2を導入しようと検討されているデータベース管理者に役立つ内容です。さらに、今回の内容は、概念レベルでのアーキテクチャの比較になっているので、アプリケーション開発者の方にも、ぜひ参考にしていただきたいと思います。
最初に述べたとおり、まず今回はOracleとDB2のアーキテクチャの中でも、特に根本的な違いがある機能について説明します(図1)。
インスタンスとデータベース
OracleとDB2では、オブジェクトの論理的なまとまりを表す共通の概念を、ともにインスタンスとデータベースと呼んでいます。ただし、それぞれのRDBMSでは、いくつかの大きな違いがあります。
Oracleでは、1つのインスタンスには1つのデータベースが対応しています。DB2では、1つのインスタンスに複数のデータベースを対応させることができます(図2)。
Oracleでは、アプリケーション開発などで、複数のユーザーに対して個別の環境を提供する際、スキーマを最小単位として分散環境を提供する場合があります。ただし、スキーマの単位では、データベースの構成に関する個別の設定などを明確に分けることはできません。
DB2のデータベースは、データを管理するためのオブジェクト(テーブルや索引など)の集合であり、アプリケーション接続、データ更新、バックアップ/リカバリなどの障害回復の基本的な単位となります。DB2のデータベース単位による分割では、Oracleのスキーマ単位による環境分散に比べて、より独立した環境をユーザーに提供することができます。
OracleもDB2も1つのサーバ上に複数インスタンスを作成できますが、複数インスタンスには、追加のシステム・リソース(メモリとディスク・スペース)が必要になる、複数インスタンスを管理するための負荷が増大する、などのデメリットがあります。DB2における、1インスタンスの中での複数データベース化には、このような複数インスタンス化によるデメリットを低減させ、かつ、独立したデータベース環境をユーザーに提供できるという利点があります。
Point
- OracleとDB2では、インスタンスとデータベースの関係が異なる。
- DB2では1インスタンスに複数のデータベースを作成できるため、Oracleに比べてより自由度のあるデータベース環境の分散が実現できる。
次ページでは、「トランザクションとデータの一貫性」「オプティマイザ」の違いについても検証してみます。
Copyright © ITmedia, Inc. All Rights Reserved.