-記憶域構造-
みなさん、こんにちは。
どうも、さいばーきゃっとです。
私がOracleデータベースを学習しているときに、記憶域構造という仕組みを理解するのが大変でした。Oracleの記憶域構造は、「物理構造」と「論理構造」に分けられているのですが、この「論理構造」という仕組みが、如何せんイメージがしづらいです。そこで、今回は「物理構造」と「論理構造」を分かりやすく説明していきたいと思います。
物理構造
以下のような「学生表」の表データは、「データファイル」という物理的なファイルに格納されます。この「データファイル」の中に、表を作成してデータを挿入していきます。
実際に表データの検索や変更をする場合は、その表データが格納されている各「データファイル」にアクセスしています。
物理構造のように、「データファイル」という物理的なファイルが存在し、実際にそのファイルに表データが格納されているという仕組みはイメージがしやすいですが、論理構造の仕組みは物理構造のように単純ではありません。
論理構造
論理構造には、上記の「学生表」の表データなどを格納する「表領域」や、「セグメント」、「エクステント」、「データブロック」のような、データ管理を容易にするための構造が存在します。
今回は、「表領域」について解説していきます。
「表領域」は、表や索引などのオブジェクトを格納する入れ物です。この「表領域」はあくまで論理的な記憶域単位ですので、データの実態は「データファイル」という物理構造に格納されます。
この「表領域」は、1つ以上の「データファイル」を「表領域」という単位でグループ化することにより、データを容易に管理できるようにする役割を持っています。
例えば、表の作成時に、表を格納する「データファイル」を「/home/oracle/……」のようにパスを指定する必要がありますが、表領域があればその必要はなく、表領域とデータファイルを、対応付けて管理することができるので、表領域の名前を指定するだけで、データは表領域とひも付いたデータファイルに格納されるようになっています。