2013年12月18日水曜日

スキーマについて

■スキーマとは

スキーマとは、各ユーザーが作成したデータベースオブジェクトを格納する論理的な領域。
スキーマは、ユーザーアカウントによって所有される。

■スキーマオブジェクトとは?
表やビュー、順序、索引、シノニムなど。
上記に記載してある通り、スキーマはユーザーアカウントによって所有される。
そのため、ユーザーはスキーマオブジェクトではない。

■スキーマの作成方法
スキーマはユーザーアカウントを作成すると同時に作成される。

***[メモ]ユーザーアカウントは複数のスキーマを所有できないのか?***
できない。オラクルでは「ユーザー=スキーマ」ということ。
※OTN掲示板より
******

ユーザーアカウントの作成方法は以下の2通り

 ①Oracle Enterprise Managerからの作成
 
 ②SQL*Plusからの作成
 以下、SQL*Plusからユーザーアカウントを作成する際の構文です。
 
  ◇ユーザ作成(スキーマ作成)構文
   SQL> create user ユーザー名
       identified by パスワード
       default tablespace デフォルト表領域
       temporary tablespace デフォルトテンポラリー表領域;
 
 以下、構文内で指定する項目の内容です。
 
  ◇各項目の内容
   ・ユーザ名
    作成するユーザ名(スキーマ名)。
   
   ・パスワード
    作成するユーザがデータベースとの接続確立時に用いるパスワード。
   
   ・デフォルト表領域
    ユーザがオブジェクトを作成する際、そのオブジェクトをどの表領域に格納するか
    指定しなかった場合に使用される領域。
   
   ・デフォルトテンポラリー表領域(一時表領域?)
    ユーザが一時セグメントの作成を必要とするSQL文(ソート処理、索引の作成など)を
    実行するときに、使用される表領域。

■別のユーザーによるスキーマオブジェクトの使用方法
SQL*Plusでは、以下の構文によって他のユーザーが所有するスキーマオブジェクトへアクセスできる。

スキーマ名.オブジェクト名
例) ora01.employees



■別々のスキーマで同名のオブジェクトを作成することは可能
 
 名前が同じでも異なるスキーマ内のオブジェクトは別のオブジェクトとして扱われます。
 (プロとしてのOracleアーキテクチャ入門より抜粋)

 上記の文言の通りならば、スキーマが異なれば、同名のオブジェクトを作成することが可能と言うこととなる。

0 件のコメント:

コメントを投稿