Oracleデータベースのスキーマ

スキーマとは、データの論理構造の集合である。ひとりのユーザにつき、ひとつのスキーマを所有している。ユーザを作成すると、自動的にユーザ名と同じスキーマ名が割り当てられる。

スキーマ・オブジェクト

スキーマに所属するオブジェクトのことをスキーマ・オブジェクトと呼ぶ。スキーマ・オブジェクトの一覧を次に示す。

SQL文中でこれらのスキーマ・オブジェクトを指定する場合、スキーマ名とオブジェクト名をピリオド(ドット)で繋いで指定します。 たとえば、tsukamotoというスキーマのempという表を指定するときにはtsukamoto.empと指定します。

SELECT * FROM tsukamoto.emp

ただし、デフォルトのスキーマ(ユーザー名と同じスキーマ)に所属するスキーマ・オブジェクトの場合は、スキーマ名とピリオド(ドット)を省略することができます。 たとえば、tsukamotoというユーザーがtsukamotoスキーマのempという表を指定するときには、empと指定することができます。

SELECT * FROM emp

ユーザーの所有するスキーマ・オブジェクトを確認するには、次のSQL文を実行します。

SELECT OBJECT_TYPE, OBJECT_NAME FROM USER_OBJECTS
  WHERE OBJECT_TYPE = 'TABLE'
  ORDER BY OBJECT_TYPE, OBJECT_NAME;

OBJECT_TYPEには、次の値のうちいずれかを指定する。

オブジェクトタイプ
OBJECT_TYPE 説明
DATABASE LINK データベースリンク
FUNCTION ファンクション
INDEX インデックス(索引)
PACKAGE パッケージ仕様部
PACKAGE BODY パッケージ本体
PROCEDURE プロシージャ
SEQUENCE シーケンス
SYNONYM シノニム
TABLE テーブル(表)
TRIGGER トリガ
VIEW ビュー

非スキーマ・オブジェクト

非スキーマ・オブジェクトとは、データベース・オブジェクトのうち、スキーマに所属しないものである。非スキーマ・オブジェクトには、所有者という概念が無い。

非スキーマ・オブジェクトの一覧を次に示す。

SQL

スキーマに関するSQL文には、次のものがある。

CREATE USER
ユーザを作成する。
ALTER USER
ユーザを変更する。
DROP USER
ユーザを削除する。
ALTER SESSION
カレント・スキーマ(スキーマ名を省略した時のデフォルトのスキーマ)を変更する。

データディクショナリ

スキーマに関するデータ・ディクショナリ・ビューには、次のものがある。

ALL_OBJECTS
現在のユーザーがアクセスできるオブジェクト
DBA_OBJECTS
データベース内のすべてのオブジェクト
USER_OBJECTS
ユーザが所有するスキーマ・オブジェクト