←ホームへ戻る




問1 ..................................................................................................

プロファイルによるユーザ管理について、「セッションレベルの制限」、「コ
ールレベルの制限」それぞれの説明として正しいものを1つずつ選びなさい。

a. セッションレベルの制限では、制限を超えた場合、接続が切断される
b. セッションレベルの制限では、制限を超えた場合、実行文がロールバックされる
c. セッションレベルの制限では、制限を超えた場合、アカウントがロックされる
d. コールレベルの制限では、制限を超えた場合、接続が切断される
e. コールレベルの制限では、制限を超えた場合、実行文がロールバックされる
f. コールレベルの制限では、制限を超えた場合、アカウントがロックされる
      

→回答と解説



問2 ..................................................................................................

データベースの停止について、空欄に当てはまる語句の組み合わせとして
正しいものを選びなさい。


データベースの停止は、 [a]コマンドを使用する。normalオプションを使用し
た場合、新規接続は禁止され、全ユーザが切断後、データベースを停止します。
また、直ちにデータベースを停止したい場合は、 [b]オプションを使用すると、
実行中トランザクションをロールバックし、停止させます。
最も優先度が高いのは、 [c]オプションで、データベースが他のオプションで
正常に停止できない場合に使用します。未コミットトランザクションがロール
バックされないため、次回起動時にインスタンスのリカバリが必要になります。


a. [a]:shutdown  [b]:immediate  [c]:abort
b. [a]:stop      [b]:immediate  [c]:abort
c. [a]:shutdown  [b]:abort      [c]:immediate
d. [a]:stop      [b]:abort      [c]:immediate
      

→回答と解説



問3 ..................................................................................................

Oracleのデータ型のうち、スカラー型ではないものをすべて選びなさい。

a. CHAR
b. TIMESTAMP
c. BLOB
d. VARRAY
e. ROWID
      

→回答と解説



問4 ..................................................................................................

ユーザを作成する CREATE USER文の説明として正しいものを2つ選びなさい。

a. ユーザ名は、大文字・小文字が区別される
b. ユーザのデフォルト表領域を指定できる
c. パスワードの初期値は、「change_on_install」である
d. ユーザのデフォルト表領域を作成できる
e. 表領域毎に、ユーザが使用できる物理記憶領域の容量を制限することができる
      

→回答と解説



問5 ..................................................................................................

SPFILE使用時、制御ファイルを追加する手順として正しいものを1つ選びなさい。
ただし、不要な手順が2つ含まれています。

1. データベース起動
2. データベース停止
3. OSコマンドにて制御ファイルをコピー
4. 「alter database backup controlfile」文にて制御ファイルをコピー
5. PFILE 内の control_filesパラメタを変更
6. SPFILE内の control_filesパラメタを変更

a. 2 - 5 - 3 - 1
b. 2 - 3 - 1 - 6
c. 6 - 4 - 2 - 1
d. 6 - 2 - 3 - 1
      

→回答と解説



問6 ..................................................................................................

以下の高水位標の説明について、空欄に当てはまる語句の組み合わせとして
正しいものを選びなさい。

データが挿入されているセグメント内の、 [ 1 ]のブロックが高水位標として
マークされる。高水位標は、表セグメントヘッダーに格納され、Oracleサーバ
は [ 2 ]をする際、高水位標までのブロックを読み込む。

高水位標を調べるには、 [ 3 ]パッケージのunused_space()プロシージャ又は、
analyze コマンド実行する。

また、高水位標より上にある領域(エクステント)を開放するには、ALTER 
TABLE 文に「DEALLOCATE UNUSED」を指定する。


a. [1]最初  [2]全表走査  [3]DBMS_SPACE
b. [1]最初  [2]索引走査  [3]DBMS_SPACE_USAGE
c. [1]最初  [2]全表走査  [3]DBMS_SPACE
d. [1]最後  [2]索引走査  [3]DBMS_SPACE_USAGE
e. [1]最後  [2]全表走査  [3]DBMS_SPACE
f. [1]最後  [2]索引走査  [3]DBMS_SPACE_USAGE
      

→回答と解説



問7 ..................................................................................................

プロファイルを使用し設定できる制限として当てはまるものを3つ選びなさい。

a. 使用できる最大 CPU時間
b. SQL 文の最大実行数
c. 同時実行セッション数
d. パスワード有効日数
e. ユーザアカウントの使用回数
      

→回答と解説



問8 ..................................................................................................

データベースバッファキャッシュとサーバープロセスに関する記述として
正しいものを選びなさい。

a. LRU リスト上で空きバッファを探し、バッファキャッシュからデータを読み込む
b. LRU リスト上で空きバッファを探し、データファイルからデータを読み込む
c. MRU リスト上で空きバッファを探し、バッファキャッシュからデータを読み込む
d. MRU リスト上で空きバッファを探し、データファイルからデータを読み込む
e. 使用済みリスト上で空きバッファを探し、バッファキャッシュからデータを読み込む
f. 使用済みリスト上で空きバッファを探し、データファイルからデータを読み込む
      

→回答と解説



問9 ..................................................................................................

EMP 表に定義されている主キー制約を調べる際に使用するデータディクショナリ
として最も適切なものを選びなさい。

a. dba_tables
b. dba_constraints
c. dba_objects
d. dba_cons_columns
e. dba_indexes
      

→回答と解説



問10 ................................................................................................

索引が断片化した際に、効果的な対応としてあてはまるものを2つ選びなさい。

a. ALTER INDEX ... REVERSE
b. ALTER INDEX ... REBUILD
c. ALTER INDEX ... NOLOGGING
d. ALTER INDEX ... VALIDATE STRUCTURE
e. ALTER INDEX ... COALESCE
      

→回答と解説



回答と解説(問1)・・・答え:a,e
プロファイルでは、各ユーザの「データベース接続時間」「使用CPU時間」 「デ
ータブロック読み込み数」など、リソースの制限を設定することができます。明
示的にプロファイルを割り当てていない場合は、デフォルトプロファイルが暗黙
的に割り当てられます。

制限には、「セッションレベルの制限」「コールレベルの制限」があり、以下の
ような特徴があります。

・セッションレベルの制限
	:各接続(セッション)全体に対しての制限
	:制限を越えると、接続が切断される
・コールレベルの制限
	:各SQL 文に対しての制限
	:制限を超えると、 SQL文の処理停止&ロールバック
	:セッションは接続されたままになる
      



回答と解説(問2)・・・答え:a
データベースの停止コマンドは「SHUTDOWN」です。

shutdown [ normal | transactional | immediate | abort ]

・normal(デフォルト):新規接続禁止、全ユーザの切断後、停止
・transactional:新規接続禁止、実行中トランザクション終了時にユーザを切断し、停止
・immediate:新規接続禁止、実行中トランザクションをロールバックし、ユーザを切断後、停止
・abort:ユーザを直ちに切断し、停止
      



回答と解説(問3)・・・答え:d
Oracleのデータ型は、「事前定義型」「ユーザ定義型」に分類されます。

事前定義型には、「スカラー型」・「コレクション型」・「関連型」があり、
以下のようなデータ型がサポートされています。主なものの例を挙げます。

■スカラー型
CHAR(n) 	固定長文字データ(最大長2000バイト)
NCHAR(n)	固定長NLS 文字データ(最大長2000バイト)
VARCHAR2(n)	可変長文字データ(最大長4000バイト)
NVARCHAR2(n)可変長NLS 文字データ(最大長4000バイト)
NUMBER(p,s)	可変長数値データ(最大38桁)
DATE    	固定長日付/ 時刻データ
TIMESTAMP	DATE型拡張機能
RAW(n)  	バイナリデータ(最大長2000バイト)
LONG    	固定幅の文字データ(最大サイズ2GB)
LONG RAW	バイナリイメージ(最大サイズ2GB)
BLOB    	バイナリイメージ(最大サイズ4GB)
CLOB    	固定幅の文字データ(最大サイズ4GB)
NCLOB   	固定幅の NLS文字データ(最大サイズ4GB)
BFILE   	OSファイルにデータを格納する為のデータ型(最大サイズ4GB)
ROWID   	ROWID

■コレクション型
VARRAY	(配列形式のリスト)
TABLE、ネストした表	(同じ型の要素の順序付き集合)

■関連型
REF	(ポインタとして使用)


よって、VARRAY型以外はスカラー型になります。
      



回答と解説(問4)・・・答え:b,e
データベースユーザの作成は、 CREATE USER文を使用します。

CREATE USER ユーザ名 IDENTIFIED {BY パスワード | EXTERNALLY | GLOBAL AS '認証名'}
[DEFAULT TABLESPACE デフォルト表領域名]
[TEMPORARY TABLESPACE 一時表領域名]
[QUOTA {領域割当サイズ[K|M] | UNLIMITED} ON 表領域名
[QUOTA {領域割当サイズ[K|M] | UNLIMITED} ON 表領域名...]]
[PASSWORD EXPIPE]
[ACCOUNT {LOCK | UNLOCK}]
[PROFILE {プロファイル名 | DEFAULT}];


では、1つずつ見ていきましょう。

「a.ユーザ名は、大文字・小文字が区別される」×
ユーザ名は、大文字・小文字の区別はされません。

「b.ユーザのデフォルト表領域を指定できる」○
CREATE USER文 のDEFAULT TABLESPACE句にて指定します。ユーザが表や索引など
を作成する際に、表領域を指定しない場合は、このデフォルト表領域にオブジェ
クトが作成されます。

「c.パスワードの初期値は、「change_on_install」である」×
change_on_install は、 sysユーザのデフォルトパスワードです。

「d.ユーザのデフォルト表領域を作成できる」×
CREATE USER文にて、デフォルト表領域は、上記のように「指定」はできます
が、「作成」はできません。別途、表領域を作成する必要があります。

「e.表領域毎に、ユーザが使用できる物理記憶領域の容量を制限することができる」○
クォータの指定により、表領域毎に、ユーザが使用できる物理記憶領域の要領
を制限することができます。
      



回答と解説(問5)・・・答え:d
SPFILE 使用時、制御ファイルを追加する場合は以下のような手順になります。

●SPFILE使用時
1) インスタンス起動中に、SPFILEを変更
alter system set control_files='制御ファイル名1','制御ファイル名2' scope=SPFILE;

2) データベース停止
3) OSコマンドにて制御ファイルをコピー
4) データベース再起動


よって、手順4、5 は行いません。

尚、PFILE を使用している場合は、以下の手順になります。

●PFILE 使用時
1)データベース停止
2)OSコマンドにて制御ファイルコピー
3)エディタを使用し、 PFILEを編集して制御ファイル名を追加
4)データベース再起動
      



回答と解説(問6)・・・答え:e
正解は、下記のようになります。

データが挿入されているセグメント内の、 最後 のブロックが高水位標として
マークされる。高水位標は、表セグメントヘッダーに格納され、Oracleサーバ
は 全表走査 をする際、高水位標までのブロックを読み込む。

高水位標を調べるには、 DBMS_SPACE パッケージのunused_space()プロシージャ又は、
analyze コマンド実行する。

また、高水位標より上にある領域(エクステント)を開放するには、ALTER 
TABLE 文に「DEALLOCATE UNUSED」を指定する。
      



回答と解説(問7)・・・答え:a,c,d
プロファイルでは、リソースの制限や、パスワード管理に関する設定が
可能です。プロファイルを各ユーザに設定することで、いろいろな制限
をユーザにかけることができます。

◆リソース制限
SESSIONS_PER_USER	:ユーザごとの同時実行セッション数
CPU_PER_SESSION		:使用可能な最大 CPU 時間(各セッション)
CPU_PER_CALL		:使用可能な最大 CPU 時間(各コール)
CONNECT_TIME		:接続時間(分単位)
IDLE_TIME		:非アクティブ状態継続期間
LOGICAL_READS_PER_SESSION	:論理読込データブロック数の合計(各セッション)
LOGICAL_READS_PER_CALL	:論理読込データブロック数(各コール)
PRIVATE_SGA		:SGA 内のプライベート領域 

◆パスワード設定
FAILED_LOGIN_ATTEMPTS	:アカウントがロックされるまでのログイン失敗回数
PASSWORD_LIFE_TIME		:パスワード有効日数
PASSWORD_REUSE_TIME		:パスワードを再使用できるようになるまでの日数
PASSWORD_REUSE_MAX		:パスワードを再使用できるようになるまでの変更回数
PASSWORD_LOCK_TIME		:ログインが指定回数以上失敗した後にユーザアカウントがロックされる期間
PASSWORD_GRACE_TIME		:パスワード失効後、最初のログインが成功してからパスワードを変更するまでの猶予期間
PASSWORD_VERIFY_FUNCTION	:パスワードの複雑さを検証するPL/SQLファンクション 

よって、正解は選択肢「a,c,d」となります。
      



回答と解説(問8)・・・答え:b
サーバプロセスのバッファキャッシュに関する基本的な動作について、説明します。

SELECT文等のSQL 文が発行されると、サーバープロセスは、データベースバッファ
キャッシュから必要なデータブロックを探します。データブロックが見つかった場
合、 LRUリスト上で MRU側に移動させます。この場合は、ディスクからデータを読
み込む必要はありません。

キャッシュ上で見つからない場合、ディスクからデータを読み込みます。その際、
データベースバッファキャッシュ上の読み込める場所を確保する為、空きバッファ
を LRUリスト上で探します。空きバッファが見つかると、空きバッファを上書きす
るようにディスクからデータを読み込みます。

また、空きバッファを探す LRUリストの走査時には、使用済みバッファがあるかど
うかも同時に確認し、見つかった場合は使用済みリストへの移動も行います。使用
済みリストの閾値を超えるとDBWnに使用済みバッファをディスクへ書込むよう指示
します。


+-------------------------+            ←MRU側                  LRU側→
|    バッファキャッシュ   |   LRUリスト□□□□□□□□□□□□□□□■
+-------------------------+
      ↑         ↑           使用済みリスト■■■■■■□□□□□□□
      ↓         |
+----------+   サーバプロセス
|   DISK   |
+----------+


よって、正解は選択肢「b」になります。
「b.LRU リスト上で空きバッファを探し、データファイルからデータを読み込む」
      



回答と解説(問9)・・・答え:b
特定の表に紐づく制約を調べるため、表名と制約のタイプが確認できるものが
最も適するディクショナリと言えます。

制約を確認するには、「dba_constraints」「dba_cons_columns」がありますが、
下記のように、「dba_cons_columns」では、制約の名前は確認できますが、制約
のタイプは明示されていません。

SQL> select * from dba_cons_columns where table_name='EMP';

OWNER  CONSTRAINT_NAME TABLE_NAME COLUMN_NAME POSITION
------ --------------- ---------- ----------- --------
SCOTT  SYS_C004765     EMP        EMPNO
SCOTT  PK_EMP          EMP        EMPNO              1
SCOTT  FK01_EMP        EMP        DEPTNO             1



ディクショナリ「dba_constraints」を使用すると、以下のようになります。

SQL> select constraint_name,constraint_type,table_name
  2  from dba_constraints where table_name='EMP' and constraint_type='P';

CONSTRAINT_NAME             C TABLE_NAME
--------------------------- - --------------------
PK_EMP                      P EMP

table_nameにて表名を、constraint_typeにてP(主キー制約)を指定します。
      



回答と解説(問10)・・・答え:b,e
索引が断片化した場合、「索引の削除+索引の作成」という方法で断片化を
解消することができます。ただし、この方法では、削除を行わなくてはなら
ないこと、また主キーや一意キーに関連する索引の場合に削除できないなど、
最適な手段とはいえません。

そこで、現在の索引を「再作成」するという方法を取ります。再作成には、
以下の2つの方法があります。


◆索引の再構築
ALTER INDEX [スキーマ名.]索引名 REBUILD ...;

REBUILDは、主に以下のような場合に使用します。また、オンライン再構築(
再構築中に表のデータ変更を行う場合に使用)を行う場合は、「REBUILD」の
変わりに「REBUILD ONLINE」を使用します。

・標準索引を逆キー索引に変更する
・削除済みエントリを取り除き、断片化を解消する
・索引を別の表領域へ移動する


◆索引の結合
ALTER INDEX [スキーマ名.]索引名 COALESCE ...;

COALESCEも、索引の再作成に似ていますが、完全に再構築を行うわけでは
なく、散在する空き領域を結合して断片化を解消します。
      












Copyright © 2006 mari. All rights reserved.