スキーマとは

スキーマとは、データの論理構造の集合であるとマニュアルには記載されている。 ( 1 ユーザーは 1 スキーマを所有し、自動的にユーザー名と同じスキーマ名が割り当てられる。)
スキーマを文章で言い換えるなら、Oracle が提供する部品集からユーザーが組み立てた構造物(オブジェクト)の集合ということになるだろうか。

ユーザー=スキーマと覚えても特に支障はなさそうであるが(オラクルマスターの資格などを目指すなら別)、 セッションにおいて、以下の SQL でカレントスキーマ(スキーマ名を省略したときのデフォルトのスキーマ)を変更することができたりもするので安心はできない。

ALTER SESSION SET CURRENT_SCHEMA=schema_name ;

また、エンジニア同士の会話のなかで「スキーマ」というときは 「スキーマ・オブジェクト」全般 を略して話をしていることが多いと思う。

スキーマの位置づけ

ユーザーを人間と表現すると、スキーマはその人がオラクルという巨大なオフィスビルから賃貸しているオフィスの一室のようなものである。
ただスキーマはユーザーに属するものなのでテナント募集中の空き室は存在しないし、満室になるようなこともない。

レンタルしたオフィスにオブジェを置こうと改装しようと他の住人には影響がない。(工事の騒音がうるさいという苦情を除いて ;)
権限を与えた他の住人に自分の部屋に招待することもでき、部屋のオブジェやデスク(スキーマ・オブジェクト)を使う制限もオブジェクト単位で設定可能。(見ることすらも許さないという設定も可)
賃貸した人がいなくなるとレンタルしたスペースからは、すべてのものが無くなるがパブリックなもの(非スキーマ)は残される。

反対にエレベータなどの住人の共有物は非スキーマになる。(ロール、パブリックシノニムなど)

スキーマ・オブジェクト一覧

以下のものがスキーマとして分類されている。

名称該当する DDL
表 および 索引構成表CREATE TABLE
インデックス、インデックスタイプCREATE INDEX
ビューCREATE VIEW
トリガーCREATE TRIGGER
ストアドプロシージャ関連CREATE PROCEDURE,FUNCTION,PACKAGE など
マテリアライズド・ビュー関連CREATE METERIALIZED VIEW ,〜 LOG
オブジェクト型、表、ビューCREATE OBJECT など
演算子CREATE OPERATOR
順序・シーケンスCREATE SEQUENCE
シノニムCREATE SYNONYM
ディメンションCREATE DIMENSION
外部プロシージャCREATE LIBRARY
Java クラス関連CREATE JAVA
クラスタCREATE CLUSTER
プライベート・データベースリンクCREATE DATABASE LINK

ユーザーの所有するスキーマオブジェクトの一覧

SELECT OBJECT_TYPE, OBJECT_NAME
  FROM USER_OBJECTS
 WHERE OBJECT_TYPE = type_name
 ORDER BY OBJECT_TYPE, OBJECT_NAME ;

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

ユーザーが作成できるが、スキーマに分類されていないもの
(論理構造でない、または、共有物?ということだろうか)

名称該当する DDL
ユーザーCREATE USER
プロファイルCREATE PROFILE
ロールCREATE ROLE
表領域CREATE TABLESPACE
コンテキストCREATE CONTEXT
ディレクトリCREATE DIRECTORY
パブリック・シノニムCREATE PUBLIC SYNONYM
パブリック・データベースリンクCREATE PUBLIC DATABASE LINK

スキーマ 関連事項



スポンサード リンク

ITエンジニア キャリアアップ・転職・求人情報

日本オラクル
■ 日本オラクル 株式会社
■ オラクルマスター資格 (オラクルマスターとは
■ OTN Software Kit (開発者ライセンス)
Google