助け合いフォーラム
正解
USER_TABLESビューは問合せたユーザーが所有する表の情報を表示する
解説
データ・ディクショナリ・ビューはデータ・ディクショナリ表のデータを参照するためのビューです。参照できるデータの範囲によって次の3つの接頭辞から始まる名前に分かれています。
同じ名前で接頭辞だけ異なるビューは共通のデータ・ディクショナリ表を参照します。
「USER_」から始まるビューは、問合せたユーザーが所有するオブジェクトの情報を表示します。上記2つのビューにある、所有者を示すOWNER列はありません。
「*_TABLES」は表の情報を表示します。
以上より、
・USER_TABLESビューは問合せたユーザーが所有する表の情報を表示する
が正解です。
その他の選択肢については以下のとおりです。
・DBA_TABLES、ALL_TABLES、USER_TABLEビューはそれぞれ異なるデータ・ディクショナリ表を参照する
同じ名前で接頭辞だけ異なるビューは共通のデータ・ディクショナリ表を参照するので、誤りです。
・DBA_TABLESビューは問合せたユーザーがアクセスできる表の情報を表示する
管理者権限で問合せでき、データベースの全ての表の情報を表示するので、誤りです。
・ALL_TABLESビューはデータベース管理者のみがアクセスできる
全てのユーザーがアクセスできるので、誤りです。
・ALL_TABLESビューにOWNER列は無い
所有者を示すOWNER列が無いのはUSER_TABLESビューなので、誤りです。
以下はビュー定義の表示例です。
参考
【データ・ディクショナリとデータ・ディクショナリ・ビュー】
データ・ディクショナリはデータベースに関する様々な管理情報が格納された読取り専用の表の集合です。データベース・オブジェクトやユーザーの定義、権限などの情報が含まれており、DDL文の実行時にOracle Databaseによって更新されます。データ・ディクショナリはSYSユーザーによって所有され、SYSTEM表領域(管理情報が格納されている論理的な記憶領域)に格納されています。
データ・ディクショナリ・ビューはデータ・ディクショナリ表のデータを参照するためのビューです。Oracle Databaseが管理するデータ・ディクショナリ表はほとんどのデータが暗号形式になっているため、人が読みやすい形式に変換されたデータ・ディクショナリ・ビューで管理情報を参照します。
参照できるデータの範囲によって次の3つの接頭辞から始まる名前に分かれています。
同じ名前で接頭辞だけ異なるビューは共通のデータ・ディクショナリ表を参照します。
管理者権限で問合せできる「DBA_」から始まるビューは、データベース全体の管理情報を表示します。
「ALL_」から始まるビューは、問合せたユーザーが所有する、またはアクセス権限を付与されているオブジェクトの情報を表示します。
「USER_」から始まるビューは、問合せたユーザーが所有するオブジェクトの情報を表示します。上記2つのビューにある、所有者を示すOWNER列はありません。
なお、DBA_LOCK(ロックの情報)のように、他の接頭辞のビューが存在しないものもあります。
データ・ディクショナリ・ビューは、Database Configuration Assistant(DBCA:データベース作成・管理ツール)を使用してデータベースを作成する場合は自動的に作成されます。
【動的パフォーマンス・ビュー】
動的パフォーマンス・ビューは、データベースがOPEN(ユーザーがデータベースにアクセスできる状態)で使用されている間に動的に更新される仮想表です。
SYSユーザーが所有する「V_$」から始まる名前の動的パフォーマンス・ビューに対して、「V$」から始まるパブリックシノニムが作成されます。SYSユーザーか管理者権限を持つユーザーのみが動的パフォーマンス・ビューにアクセスできます。
動的パフォーマンス・ビューはデータベース管理者によるパフォーマンスの監視や、Oracle Enterprise Manager(システム管理ツール)によるデータベース情報の取得に使用されます。
主な動的パフォーマンス・ビューのパブリックシノニムには次のようなものがあります。
V$DATABASE:データベースに関する情報
V$PARAMETER:初期化パラメータに関する情報
V$SESSION:セッションに関する情報
V$DATAFILE:データファイルに関する情報
V$SQL:実行されたSQLに関する統計情報
V$TABLESPACE:表領域に関する情報
例)「shared」を含む初期化パラメータ名を表示
【DICTIONARYビュー】
全てのデータ・ディクショナリ・ビュー、動的パフォーマンス・ビューの名前と説明はDICTIONARYというビューに格納されています。
OWNER列についてまとめてみた。
・ALL_TABLESビューにOWNER列は無い
所有者を示すOWNER列が無いのはUSER_TABLESビューなので、誤りです。
解説
OWNER列とはセグメント所有者のユーザー名が入る列なので、
USER_TABLESで参照したときにはそのUSERがOWNERであるため、OWNER列が要らない。ということになる。
この投稿に対して返信しませんか?