データベースの「論理構造」とは何か:ゼロからのリレーショナルデータベース入門(3)(2/3 ページ)
続いて、この表がどのように表領域へ格納されているのかを説明します。
表は、表領域内で「セグメント」という単位で管理されます。「1つの表」イコール「1セグメント」です。1つの表領域に2つの表を格納しているならば、「この表領域には、2つのセグメントがある」と表現できます(図3)。セグメントは必ず1つ以上のエクステントやデータブロックから構成されます。
図3 表領域とセグメントについて
データブロックとは、行データを格納するための最小単位のことです。通常はデータベース単位でデータブロックのサイズ(4KBや8KBなど)を設定します。
表内の行データは、全てデータブロックに格納されます。例えば、データブロックのサイズを8KBに設定し、1行の平均が1KBだったとすると、1データブロックには8行分のデータを格納できることになります(図4)。
図4 データブロックと行データの関係
表にINSERT処理を行うたびにデータブロックへ順次データが格納されていき、そのデータブロックの領域を使い切ると、次のデータブロックに格納します(図5)。
図5 1つのデータブロックが満杯になると、次のブロックへデータを格納する
しかし、1つのデータブロックの領域を使い切ってから次のデータブロックを確保するのでは、手間が掛かり、効率性に課題が残ります。そのため、ある程度連続したデータブロックをあらかじめ確保しておくようにします。この連続した領域を「エクステント」と呼びます。
- SQLの基礎 「SELECT」文を覚えよう
- SQLとはどういう言語か
「SQLは何となく苦手」という人は意外と多いものです。すでに何らかのプログラミング言語を習得している人を見ても、SQLを苦手としている人は少なくありません。そこで、実際にSQLを入力して結果を見ながら学習する連載を始めます。用意するのはインターネットにつながったWebブラウザだけ。気軽に始めてみてください。(編集部)
- RDBMS製品のビッグ3、それぞれの“癖”をつかもう
本連載はOracleを使ったデータベースシステムの開発・運用管理にある程度の知識を持つ読者を対象に、Oracle以外の商用RDBMSであるMicrosoft SQL ServerとIBM DB2とのアーキテクチャの違いを明らかにし、マルチベンダに対応できるデータベースシステムの設計・開発・運用ノウハウを紹介していく。(編集局)
- NoSQLはRDBMSに取って代わるものなのか?
「memcached」や「Apache Cassandra」、「Apache CouchDB」など、RDBMSとは異なる考えで設計してあるデータベース管理システムが普及しつつあります。この連載では、これら新しいデータベース管理システムの特徴と、RDBMSとの使い分け方について解説します。(編集部)
Copyright © ITmedia, Inc. All Rights Reserved.