連載
» 2016年10月17日 05時00分 UPDATE

ゼロからのリレーショナルデータベース入門(3):データベースの「論理構造」とは何か (2/3)

[石尾覚,株式会社アシスト]

「表(セグメント)の構造」について

 続いて、この表がどのように表領域へ格納されているのかを説明します。

 表は、表領域内で「セグメント」という単位で管理されます。「1つの表」イコール「1セグメント」です。1つの表領域に2つの表を格納しているならば、「この表領域には、2つのセグメントがある」と表現できます(図3)。セグメントは必ず1つ以上のエクステントデータブロックから構成されます。

表領域とセグメントについて 図3 表領域とセグメントについて

「データブロック」の役割

 データブロックとは、行データを格納するための最小単位のことです。通常はデータベース単位でデータブロックのサイズ(4KBや8KBなど)を設定します。

 表内の行データは、全てデータブロックに格納されます。例えば、データブロックのサイズを8KBに設定し、1行の平均が1KBだったとすると、1データブロックには8行分のデータを格納できることになります(図4)。

データブロックと行データの関係 図4 データブロックと行データの関係

 表にINSERT処理を行うたびにデータブロックへ順次データが格納されていき、そのデータブロックの領域を使い切ると、次のデータブロックに格納します(図5)。

1つのデータブロックが満杯になると、次のブロックへデータを格納する 図5 1つのデータブロックが満杯になると、次のブロックへデータを格納する

 しかし、1つのデータブロックの領域を使い切ってから次のデータブロックを確保するのでは、手間が掛かり、効率性に課題が残ります。そのため、ある程度連続したデータブロックをあらかじめ確保しておくようにします。この連続した領域を「エクステント」と呼びます。

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。