←ホームへ戻る




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

ビットマップ索引を作成した場合に、パフォーマンスの向上が見込めるもの
として最も適しているものを選びなさい。

対象の表は、10万件の社員データがある EMP表で、部門コード列には5つの
部門コードのいずれかの値が入っています。

a.EMP 表から1人の社員を検索する場合
b.EMP 表の索引列を頻繁に更新する場合
c.EMP 表の部門コードが「10」の行を検索する場合
d.EMP 表に頻繁にデータがINSERTされるOLTP環境の場合
e.EMP 表から社員番号「50000〜99999」の社員を検索する場合
      

→回答と解説



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

REDOログに関する下記の説明のうち、誤っているものを1つ選びなさい。

a.複数のREDOロググループを作成することが望ましい
b.アーカイブログとREDOログファイルは、異なるディスクに配置することが望ましい
c.REDOログファイルとデータファイルは、異なるディスクに配置することが望ましい
d.グループ内の各メンバは、同一ディスクに配置することが望ましい
      

→回答と解説



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

手動で SQL文を実行し、データベースを作成します。
初めに用意しておく必要があるファイルを選びなさい。

a.環境変数ファイル
b.初期化パラメタファイル
c.制御ファイル
d.データベースファイル
e.REDOログファイル
      

→回答と解説



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

ユーザALLEN は、ユーザSCOTT から、with grant option句を使用して、
ユーザSCOTT の EMP表へのSELECT権限を付与されています。

ユーザALLEN はユーザJOHNに、ユーザSCOTT の EMP表へのSELECT権限
を付与しました。その後、ユーザSCOTT はユーザALLEN へ付与した
SELECT権限を取り消しました。

以下の選択肢より、正しいものを選びなさい。

a.ユーザSCOTT の EMP表への参照は、SCOTTのみ可能
b.ユーザSCOTT の EMP表への参照は、SCOTTとALLENのみ可能
c.ユーザSCOTT の EMP表への参照は、SCOTTとJOHNのみ可能
d.ユーザSCOTT の EMP表への参照は、SCOTT、ALLEN、JOHNすべて可能
e.ユーザSCOTT の EMP表への参照は、だれもできない
      

→回答と解説



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

SQL*Plusを実行する際、読み込まれる設定ファイルとして正しいものを選びなさい。

a.sqlplus.sql
b.plus.sql
c.login.conf
d.sqlplus.conf
e.login.sql
      

→回答と解説



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


EMP 表の ENAME列に「NOT NULL制約」を付加します。
正しい DDL文を選びなさい。

SQL> desc EMP
名前     NULL?    型
-------- -------- ------------
EMPNO    NOT NULL NUMBER(4)
ENAME             VARCHAR2(10)
JOB	              VARCHAR2(9)
MGR               NUMBER(4)
HIREDATE          DATE
SAL               NUMBER(7,2)
COMM              NUMBER(7,2)
DEPTNO            NUMBER(2)


a.ALTER TABLE EMP ATTRIBUTE (ENAME NOT NULL);
b.ALTER TABLE EMP CHANGE (ENAME NOT NULL);
c.ALTER TABLE EMP CONSTRAINT (ENAME NOT NULL);
d.ALTER TABLE EMP MODIFY (ENAME NOT NULL);
e.ALTER TABLE EMP SET (ENAME NOT NULL);
      

→回答と解説



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

既存表 EMPから、新規に EMP_TEMP表を作成します。
以下の説明のうち、誤っているものをすべて選びなさい。

a.既存表から新規表を作成するには、「RENAME 旧表名 TO 新表名」を使用する
b.デフォルト値が指定されていれば、コピーされる
c.既存表から新規表を作成するには、「CREATE TABLE 新表名 AS SELECT文」を使用する
d.列名と行データがコピーされる
e.列名はコピーされるが、行データは別途移行する必要がある
f.NOT NULL制約が指定されていれば、コピーされる
      

→回答と解説



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

下記のSELECT文について、使用している結合方法を選びなさい。

select E.ENAME,E.MGR,M.ENAME MGR_NAME from EMP E,EMP M where E.MGR=M.EMPNO;

a.非等価結合
b.外部結合
c.直積結合
d.自己結合
      

→回答と解説



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

以下の DDL文にて権限を付与しました。
正しい説明を選びなさい。

GRANT select ON scott.emp TO PUBLIC;

a.ユーザPUBLICに、SCOTTのEMP表に対するSELECT権限を付与している
b.ユーザPUBLICから、SCOTTのEMP表に対するSELECT権限を取り消している
c.既存の全ユーザに、SCOTTのEMP表に対するSELECT権限を付与している
d.既存の全ユーザから、SCOTTのEMP表に対するSELECT権限を取り消している
e.既存の全ユーザ、及び将来作成される全ユーザに、SCOTTのEMP表に対するSELECT権限を付与している
f.既存の全ユーザ、及び将来作成される全ユーザから、SCOTTのEMP表に対するSELECT権限を取り消している
      

→回答と解説



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

データベースの記憶領域に関する説明を読み、誤っているものを1つ選びなさい。

a.表領域は1つ以上のデータファイルで構成される
b.セグメントは1つ以上のエクステントで構成される
c.セグメントは複数のデータファイルにまたがることができる
d.エクステントは1つ以上のデータブロックで構成される
e.エクステントは複数のデータファイルにまたがることができる
      

→回答と解説



回答と解説(問1)・・・答え:c
B*ツリー索引が、一意またはそれに近い値の列検索に向いているのに対し、
ビットマップ索引は、カーディナリティが低い列を対象とした絞込み処理に
向いているといえます。

カーディナリティが低いとは、「列値の種類が少ない」ということになります。

例えば、

「10万件のEMP 表から1人の社員を検索する場合」
検索結果は10万分の1ですので、B*ツリー索引が向いています。

「10万件のEMP 表から1つの部門コードを検索する場合(部門は全部で5つ)」
部門コード列の値は5種類しかない(=カーディナリティが低い)ので、
ビットマップ索引が向いていると言えます。


ただし、ビットマップ索引では、索引列が更新される時にビットマップセグ
メント全体がロックされてしまいます。従って、同時に更新・挿入処理を行
う環境(特にOLTP環境)にはあまり向いていません。
      



回答と解説(問2)・・・答え:d
REDOログファイルを多重化する場合、以下のような点に気をつける必要があります。

・グループのメンバを異なるディスクへ配置
LGWRは、REDOロググループ内の全メンバにアクセスできないと、インスタンスが
停止してしまいます。異なるディスクにグループのメンバを配置することで、あ
るディスクに障害等が発生した際に、同時に全メンバが使用不可になることを防
ぎます。

・アーカイブログファイルと、REDOログファイルを異なるディスクに配置
LGWRプロセスはREDOログファイルにログを書込み、ARCHプロセスはREDOログファ
イルをアーカイブログファイルへアーカイブします。よって、両者を別のディス
クに配置することで、LGWRとARCHの I/O競合が軽減できます。

・データファイルとREDOログファイルを異なるディスクに配置
同様に、DBWRプロセスはデータファイルへの書込みを行います。両者を別のディ
スクに配置することで、LGWRとDBWRの I/O競合が軽減できます。


また、REDOログは循環して再使用されるため、グループ数が少ない場合、LGWR
が書込みを待機する原因になります。頻繁に待機が発生している場合は、グル
ープを追加することを検討します。
      



回答と解説(問3)・・・答え:b
データベースを手動で作成する場合は、「CREATE DATABASE文」を使用します。

その際、以下の設定を事前にしておく必要があります。

■環境変数の設定
ORACLE_HOME、ORACLE_SIDなど、必要な環境変数を設定します。

■パラメタファイルの作成
Oracleインストール時に、デフォルトのパラメタファイル「$ORACLE_HOME/dbs/init.ora」
が作成されています。このファイルを元に、作成するデータベースの初期化
パラメタファイルを事前に準備しておきます。


その後、sysdba権限にて「startup nomount」を実行し、インスタンスを起動
します。そして、「CREATE DATABASE文」にてデータベースの作成を行います。
      



回答と解説(問4)・・・答え:a
権限を付与する際に使用する「with grant option句」について説明します。

ユーザA が ユーザB に、ユーザAの所有するオブジェクトへの
オブジェクト権限を「with grant option句」付きで付与すると、
ユーザB は ユーザC へ、ユーザA のオブジェクトのオブジェクト
権限を付与できるようになります。

これを分かりやすくすると、
1.ユーザSCOTT → ユーザALLEN へ SCOTT.EMP表へのSELECT権限付与
2.ユーザALLEN → ユーザJOHN  へ SCOTT.EMP表へのSELECT権限付与

ということが可能になります。

もし、1で与えられた権限が削除された場合どうなるか、というのが
問題です。


「with grant option句」付きで付与されたオブジェクト権限が取り
消されると、そのユーザが他のユーザに付与したオブジェクト権限
もカスケードして取り消されます。

従って、上記の
「1.ユーザSCOTT → ユーザALLEN へ SCOTT.EMP表へのSELECT権限付与」
が取り消されると、
「2.ユーザALLEN → ユーザJOHN  へ SCOTT.EMP表へのSELECT権限付与」
も取り消されます。
      



回答と解説(問5)・・・答え:e
SQL*Plusを起動する際、事前に環境設定に関するコマンドやエディタ定義等
を login.sqlファイルに書いておくと、起動時に自動実行されます。

以下は、Linux/UNIX上の例です。

# login.sqlが存在しない場合(改行されてしまっています)
$ sqlplus scott/tiger
SQL>
SQL> select instance_number,instance_name,host_name,archiver from v$instance;

INSTANCE_NUMBER INSTANCE_NAME
--------------- ----------------
HOST_NAME                                                        ARCHIVE
---------------------------------------------------------------- -------
              1 orcl1
dbs01                                                            STARTED

# 環境を設定してから、再度SQL を実行します
SQL> set lines 150
SQL> column host_name format A20
SQL> r
  1* select instance_number,instance_name,host_name,archiver from v$instance

INSTANCE_NUMBER INSTANCE_NAME    HOST_NAME            ARCHIVE
--------------- ---------------- -------------------- -------
              1 orcl1            dbs01                STARTED

SQL> exit
$

# login.sqlを事前に作成します
$ vi login.sql
set lines 150
column host_name format A20
$
$ sqlplus scott/tiger

SQL> select instance_number,instance_name,host_name,archiver from v$instance;

INSTANCE_NUMBER INSTANCE_NAME    HOST_NAME            ARCHIVE
--------------- ---------------- -------------------- -------
              1 orcl1            dbs01                STARTED
      



回答と解説(問6)・・・答え:d
NOT NULL制約は、表の作成時(CREATE TABLE)や、カラム追加時(ALTER TABLE)
に指定します。

問題のように、既存の表のカラムに対し、NOT NULL制約を追加する場合は、
列の変更を行います。

ALTER TABLE [スキーマ名.]表名 MODIFY (列名 NOT NULL);


既存の表にNOT NULL制約を追加する場合、以下のいずれかの条件を満たしている
必要があります。
・表にデータが存在しない(0件)
・変更対象の列がNULL値を含んでいない
      



回答と解説(問7)・・・答え:a,b,e
既存の表から新規表を作成する場合、「CREATE TABLE 新表名 AS SELECT文」
を使用します。既存表のすべての列をコピーすることも、また必要な列だけを
コピーすることもできます。

コピーを実行すると、列の名前、行データ、NOT NULL制約がコピーされます。
ただし、列に定義されているデフォルト値はコピーされません。
      



回答と解説(問8)・・・答え:d
結合とは、「2つ以上の表から情報を取り出す問い合わせ」のことをいいます。
問い合わせ対象となる各表を関連付けする条件を WHERE句で指定します。

問題文では、FROM句に「EMP E」「EMP M」が指定されています。「E」や「M」は
表「EMP」 の別名ですので、問い合わせ表は「EMP」 表のみであることが分かります。

つまり、問い合わせる表(結合表)は1つだが、別名をつけることで、2つの異
なる表が存在するかのように表現しています。これを、自己結合と呼びます。
      



回答と解説(問9)・・・答え:e
オブジェクト権限付与の付与は、「GRANT文」を使用します。

GRANT オブジェクト権限
ON [スキーマ名.]オブジェクト名
TO {ユーザ | ロール | PUBLIC} [WITH ADMIN OPTION];


※with grant option句
権限付与されたユーザは、他のユーザやロールにその権限の付与・取り消し
をすることが可能になります。

※publicキーワード
全てのユーザに権限を与える事ができます。全てのユーザとは、すでに存在する
ユーザ及び、将来作成されるユーザを含みます。
      



回答と解説(問10)・・・答え:e
Oracleデータベースの論理データベース構造は、以下の四つで構成されています。


◆表領域
1つのデータベースに一つ以上存在し、物理的には一つ以上のデータファイルで
構成されます。また、論理的には、一つ以上のセグメントで構成されています。


◆セグメント
表領域内に存在する表や索引を指します。同じ表領域に属する複数のデータファ
イルにまたがって存在することができます。また、論理的には、一つ以上のエク
ステントで構成されます。


◆エクステント
セグメント内の、連続するブロックを指します。基本的には、複数のエクステント
が集まり、1つのセグメントを構成します。また、エクステントは、複数のデータ
ファイルにまたがる事ができません。1つ以上のデータブロックで構成されます。


◆データブロック
論理データベース構造の最小単位です。
      












Copyright © 2006 mari. All rights reserved.