Web Artisan Blog - ウェブ アルチザン ブログ

SQL:Oracle:スキーマ、シノニムとは何か?

SQL (37 items)

2004年08月27日

以下、Oracle9iデータベース概要より、抜粋・加工しました。
>Oracleドキュメントダウンロードサイト

<スポンサードリンク>
○スキーマ
データの論理構造の集合であり、スキーマ・オブジェクトと言う。
スキーマはデータベース・ユーザーによって所有され、そのユーザーと同じ名前を持つ。
各ユーザーは単一のスキーマを所有し、SQLで作成や操作が出来る。
スキーマには以下のものが存在する。

■クラスタ
■データベース・リンク
■データベース・トリガー
■ディメンション
■外部プロシージャ・ライブラリ
■索引および索引タイプ
■Javaクラス、Javaリソース、Javaソース
■マテリアライズド・ビュー、マテリアライズド・ビュー・ログ
■オブジェクト表、オブジェクト型、オブジェクトビュー
■演算子
■順序
■ストアドファンクション、プロシージャ、パッケージ
シノニム
■テーブル(表)及び索引構成表
■ビュー

○シノニム
テーブル・ビュー・プロシージャ・ファンクション・パッケージなどに対する別名。
単なる別名だけのものである。
シノニムには、パブリックシノニムとプライベートシノニムがある。
→パブリックシノニム
  PUBLICユーザーが所有し、全てのユーザーがアクセスできる。
→プライベートシノニム
  特定ユーザーのスキーマに含まれ、そのユーザーが他ユーザーに対する
  シノニムの使用許可を制限する。

シノニムは、セキュリティと便利さの為に使用される。
例えば、あるシノニムの元となるテーブルが、
テーブル名の変更やテーブルを別環境に移動するような場合、
シノニムのみを再定義すれば、そのシノニムを参照しているアプリケーションの変更の必要が無い。

(例)
・ユーザー”RES”が所有するスキーマ内に、テーブル”t_SALES_DATA”が存在。
・”t_SALES_DATA”に対するSELECT権限がPUBLICに付与されている。

通常、このテーブルを参照するには、テーブルを含むスキーマとテーブル名の両方が必要。

SELECT * FROM RES.t_SALES_DATA;


ここで、下記のSQLでパブリックシノニムを作成。

CREATE PUBLIC SYNONYM SALE FOR RES.t_SALES_DATA;


こうすることで、ユーザーはより単純なSQLでテーブル”t_SALES_DATA”を参照できる。

SELECT * FROM SALE;


これにより、パブリックシノニム”SALE”は、
テーブル名”t_SALES_DATA”とスキーマ名”RES”を隠せている事に注意する。


<スポンサードリンク>
前の記事 次の記事

Comments

コメントは、まだ書かれていません

Add Comments

Trackback

トラックバックはありません

Trackback URL

http://www.res-system.com/weblog/action.php?action=plugin&name=TrackBack&tb_id=246