連載
» 2009年03月13日 00時00分 公開

間違いやすいポイントを追え! Bronze SQL基礎I(12):データディクショナリビューでオブジェクト管理 (1/2)

Oracleデータベースエンジニアとしての基礎力を証明するORACLE MASTER Bronze。その取得を目指すITエンジニアのための講座が本連載だ。間違いやすいポイントを確認し、合格に近づこう!

[ゴールデンフォレスト株式会社,@IT]

 前回「表以外のスキーマオブジェクトの作成と管理」では、ビュー、シノニム、順序といった表以外のスキーマオブジェクトの作成方法および管理方法を学習しました。

 今回は、以下の項目を確認します。

  • データディクショナリビューの種類と使用方法

データディクショナリビューの種類と使用方法

例題1

ユーザーがアクセスできるオブジェクトを確認するためのデータディクショナリビューを選択してください。

a.USER_OBJECTS

b.ALL_OBJECTS

c.DBA_OBJECTS

d.V$OBJECTS

例題の範囲をおさらい

 データディクショナリビューを使用することで、オブジェクトデータの調査が可能になります。

 データディクショナリビューには複数の種類があります。

ビューの接頭辞 内容
USER ユーザーのビュー(ユーザーのスキーマにある、ユーザーが所有しているオブジェクトの情報を調査できる)
ALL 拡張ユーザーのビュー(ユーザーがアクセスできるオブジェクトの情報を調査できる)DBA
DBA データベース管理者のみアクセス可能なビュー(すべてのユーザーのスキーマにあるオブジェクトの情報を調査できる)
V$ 動的パフォーマンスビュー(パフォーマンス関連)

正解

b

解説

選択肢a:「USER_」で始まるデータディクショナリビューは、ログインしているユーザーが所有しているオブジェクトの情報のみ検索できます。

SQL> select object_name from user_objects;
OBJECT_NAME
--------------------
DEPT
EMP

選択肢b:「ALL_」で始まるディクショナリビューは、アクセス可能なオブジェクトの情報を検索できます。

 スキーマ内に1つのみオブジェクトを持っている場合、USER_OBJECTSを検索すると結果は「1」となります。

SQL> select count(*) from user_objects;
  COUNT(*)
----------
         1

 「USER」を「ALL」に変更すると、「5292」が戻ってきました。これは自分のスキーマ外にあるオブジェクトを確認していることになります。

SQL> select count(*) from all_objects;
  COUNT(*)
----------
      5292

選択肢c:「DBA_」で始まるデータディクショナリビューは、データベース管理者(DBA)のみアクセス可能な、データベース全体の情報を検索できます。

SQL> select count(*) from dba_objects;
  COUNT(*)
----------
     12665

選択肢d:「V$」で始まるデータディクショナリビューは、動的パフォーマンスビューと呼ばれ、データベースのパフォーマンス関連のデータを検索することができます。

 選択肢にあるようなV$OBJECTSというビューは存在しません。

 例えばV$DATABASEでは、データベース名、ログモード、オープンモードなどを確認できます。

SQL> select name,log_mode,open_mode from v$database;
NAME               LOG_MODE                 OPEN_MODE
------------------ ------------------------ --------------------
ORCL               NOARCHIVELOG             READ WRITE

 よって、正解は選択肢bです。

       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

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

メールマガジン登録

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