リレーショナルデータベースのデータ構造は、大きく「物理構造」と「論理構造」に分けられます。前回解説したデータファイル、オンラインREDOログファイル、制御ファイルなどのRDBを構成するファイルが物理構造です。今回はもう1つのデータ構造である、「論理構造」の役割を解説します。【更新版】
リレーショナルデータベース(以下、RDB)のデータ構造は、大きく「物理構造」と「論理構造」に分けられます。第2回『リレーショナルデータベースの3大構成要素とは?』で解説した、RDBを構成するOSファイル──Oracle Databaseでは、「データファイル」「オンラインREDOログファイル」「制御ファイル」は物理構造です。
それに対して、「社員表」のような表データなどを格納する表領域や、セグメント、エクステント、データブロックのような、データ管理を容易にするための内部的に使う構造のデータが論理構造です。
論理構造は、1つの表を格納する物理的な領域として1つのOSファイルが対応するデータベースもあれば、複数の表を1つのファイルに格納する、あるいは1つの表を複数のファイルに格納するデータベースも存在します。
このように、データベースソフトウェアによって物理構造と論理構造の関係に若干の差異はありますが、物理構造と論理構造が分離されており、論理記憶構造へのアクセスに影響を与えずに、データの物理記憶域を管理する考え方は共通しています。今回も商用データベースで多くの企業に使用されているOracle Databaseを例に、論理構造の表領域から順に解説します。
Oracle Databaseでは、ユーザーが利用する「社員表」などの表データは、実際には物理構造であるデータファイルに格納されますが、1つ以上のデータファイルを「表領域」(表を格納するための領域)という単位でグループ化することにより、データを容易に管理できるようになっています。
本来であれば、表作成時に格納するデータファイルを「/home/oracle/……」のようにパスを指定する必要がありますが、表領域があればその必要はありません。表領域とデータファイルはOracle Databaseがひも付けて管理するので、表領域の名前を指定するだけで、データは表領域とひも付いたデータファイルに格納されるようになっています。
例えば、図1のデータベースには、2GBのデータファイル2つで構成される「表領域A」と、1GBのデータファイル1つで構成される「表領域B」が存在しています。このデータベースに表を作成するには、表領域A/Bのいずれかを指定します。
表の作成に必要な領域は、「指定した表領域内」に確保されます。別の表領域にまたがることはありません。例えば図2のように、表領域Aに「社員表」を作成したならば、「社員表」に必要な領域は表領域A内のデータファイルXとデータファイルYに確保されます。この場合、別の領域である表領域BのデータファイルZに格納されることはありません。
表領域は、例えば社内システムならば「部署ごとに分ける」といったように、その中へ格納するデータの内容に応じて複数作成することで管理がしやすくなります。ちなみに、ユーザーが利用するデータを格納するための表領域に加えて、Oracle Databaseが使用するSYSTEM表領域や、SYSAUX表領域など管理データを格納するための表領域もあります。
Copyright © ITmedia, Inc. All Rights Reserved.