Oracleデータベースエンジニアとしての基礎力を証明するORACLE MASTER Bronze。その取得を目指すITエンジニアのための講座が本連載だ。間違いやすいポイントを確認し、合格に近づこう!
前回「Oracleデータベースを構成するファイル」に引き続き、データベース記憶構造の管理について、間違いやすい部分を中心に学習します。
■例題1
データベースの論理構造および物理構造に関する説明として、誤っているものを3つ選択してください。
a.1つの表領域には、複数のセグメントを格納することができる
b.1つの表領域は、複数のデータファイルにまたがることができる
c.セグメントには、1つ以上のエクステントが含まれる
d.1つのデータファイルは、複数の表領域にまたがることができる
e.セグメントは、複数のデータファイルにまたがることができる
f.エクステントは、複数のデータファイルにまたがることができる
g.セグメントは、複数の表領域にまたがることができる
■例題の範囲をおさらい
参考:「Oracleのデータベース記憶域を探る」
・データファイルと表領域
表や索引などのデータベースオブジェクトは、物理構造であるデータファイルに格納され、データファイルに格納されるデータは、論理構造である表領域で管理されます。1つの表領域は、複数のデータファイルで構成することができます。
・セグメント
表領域で管理される、特定の表や索引などのデータベースオブジェクトをセグメントと呼びます。セグメントは複数のエクステントから構成されています。1つの表領域で複数のセグメントを管理することができ、その表領域が複数のデータファイルで構成されている場合、セグメントはデータファイルをまたがることもできます。
・エクステント
データベースオブジェクトを作成する際に割り当てられる領域の最小単位をエクステントと呼び、セグメント内に連続した領域を確保します。表や索引などのデータベースオブジェクトを作成する際、1つのエクステントにデータが収まらなければ新たなエクステントを獲得しデータを格納するため、エクステントを複数使用することになります。エクステントは連続した複数のブロックから構成されます。
・ブロック
ブロックは、Oracleデータベースにおけるファイルとメモリ間のI/Oの最小単位です。
■正解
d、f、g
■説解説
選択肢a:1つの表領域には、複数のセグメントを格納することができます。
選択肢b:1つの表領域は、複数のデータファイルにまたがることができます。
選択肢c:セグメントには、1つ以上のエクステントが含まれます。表や索引などのデータベースオブジェクトを作成する際、1つのエクステントに収まらなければ新たにエクステントを獲得し、複数のエクステントを使用します。
選択肢d:1つのデータファイルは、複数の表領域にまたがることはできません。
選択肢e:セグメントは、複数のデータファイルにまたがることができます。1つの表領域で複数のセグメントを管理できますが、その表領域が複数のデータファイルで構成されている場合、セグメントはデータファイルにまたがることができます。
選択肢f:エクステントは、セグメント内に連続した領域を確保します。複数のデータファイルにまたがることはできません。
選択肢g:セグメントは、複数の表領域にまたがることはできません。
よって、誤っているものはd、f、gです。
■例題2
USERS表領域に作成しているEMP表に対し、新たにデータを追加しようとしたところ、表領域に割り当てているデータファイルがいっぱいになってしまったため追加できませんでした。この表領域にデータを追加するために有効な手段を、次の中から3つ選択してください。
a.USERS2表領域を新たに作成し、十分な大きさのデータファイルを割り当てる
b.USERS表領域に対し、新たにデータファイルを追加する
c.USERS表領域に対するデータファイルのサイズを拡張する
d.USERS表領域に作成する表のエクステントを自動拡張にする
e.USERS表領域に対するデータファイルを自動拡張にする
f.USERS表領域を再作成し、十分な大きさのデータファイルを割り当てる
■例題の範囲をおさらい
参考:「Oracleのデータベース記憶域を探る」
表領域には、表や索引などのデータベースオブジェクトを格納し管理することができます。
表領域に格納できるデータのサイズは、表領域に割り当てられているデータファイルのサイズです。表領域には1つ以上のデータファイルを割り当てることができるので、例えば1つの表領域に対し、データファイルが3つ割り当てられていれば、1つの表領域のサイズ=3つのデータファイルの合計サイズとなります。
表や索引などのデータベースオブジェクトを作成する際、その表領域に割り当てられているデータファイルがいっぱいになっているとエラーが発生します(自動拡張の設定が無効の場合)。
この場合、表領域に割り当てられているデータファイルのサイズを明示的に変更してサイズを大きくするか、表領域に対し新たにデータファイルを追加するかで、対応が可能です。
データファイルの自動拡張の設定が有効になっていれば、OSの許可する範囲内で自動的にサイズを拡張しデータを格納することができます。
データファイルの自動拡張の設定が有効になっていない場合、以下のように設定を変更することができます。
例)
ALTER DATABASE DATAFILE ‘データファイルのパス’ AUTOEXTEND ON
AUTOEXTEND ON:自動拡張が有効
AUTOEXTEND OFF:自動拡張が無効
■正解
b、c、e
■解説
選択肢a:この問題では、USERS表領域に作成されているEMP表にデータを追加するとしています。1つの表を、複数の表領域にまたがって格納することはできません。
選択肢b:USERS表領域に対し、新たにデータファイルを追加することで対応可能です。
選択肢c:USERS表領域に対するデータファイルのサイズを拡張することで対応可能です。
選択肢d:USERS表領域に作成する表のエクステントを自動拡張にしても、すでに表領域に対応するデータファイルはいっぱいになっており、エクステントを新たに獲得することはできません。
選択肢e:USERS表領域に対するデータファイルを自動拡張にすることで対応可能です。
選択肢f:表領域を再作成しなくても、データファイルのサイズは変更することができます。USERS表領域を再作成し、十分な大きさのデータファイルを割り当てるといった作業は、適切な対応方法ではありません。
よって、有効な手段はb、c、eです。
Copyright © ITmedia, Inc. All Rights Reserved.