intro to Oracle DB 6

§14. 索引(インデックス)

テーブルに含まれる「列」を指定することで検索を高速化する.すなわちWHERE句で指定するような列を対象とする.内部的には二分木探索(をより進化させたB*Tree)を用いる.

ただし検索方法によっては索引を活用できない.例えば辞書式に索引を作成していて,後方一致検索をしても,最初の文字が分からなければ索引を引くことができず索引の意味がなくなる.

  • CREATE INDEX
    CREATE INDEX <索引名> ON <テーブル名> ( <列名> [,<列名>] ) [ TABLESPACE <表領域> ];

    indデータディクショナリビューで作成した索引を確認することができる.

  • DROP INDEX
    索引を削除する

    DROP INDEX <索引名>;
  • ALTER INDEX
    索引名を変更する

    ALTER INDEX <旧索引名> RENAME TO <新索引名>;

§15. ビュー

ビューとは,SELECT文に別名をつけて登録しておくオブジェクト.実際のデータは持たないため,「仮想表」とも言われる.

ビューを作るメリットは,

  1. SELECT文が簡略になること
    複雑なSELECT文を毎回打たなくても良い→利便性の向上
  2. セキュリティの向上
    簡略になることでテーブル名を伏せることができる

などがある.

  • CREATE VIEW
    ビューを作成する.

    CREATE VIEW [ OR REPLACE ] VIEW <ビュー名> AS <SELECT文>;

    CREATE VIEWを行うにはCREATE VIEWシステム権限が必要
    OR REPLACEオプションはすでに作成されているビューを置き換える(変更する)際に指定する.
    作成したビューはDESCRIBEコマンドで確認することができる.

    DESCRIBE <ビュー名>;
  • DROP VIEW
    ビューを削除する.

    DROP VIEW <ビュー名>;

§16. シノニム

ビューが「SELECT文に別名を付けて登録しておくオブジェクト」だとすれば
シノニムは「オブジェクトに別名をつけて登録しておくオブジェクト」
例えば,ユーザwsedrftgyhujikoのテーブルtbl_lkoijuhygtfrdsはwsedrftgyhujiko.tbl_lkoijuhygtfrds で参照するが,このwsedrftgyhujiko.tbl_lkoijuhygtfrdsテーブルの使用頻度が非常に高い場合,もっと短くてわかりやすい名前をつけたくなる.シノニムが使われるのはこのような場合である.

シノニムには二つの種類があり,

  • プライベートシノニム
    特定のユーザのみで使用するシノニムで,他のユーザーからは使うことができない.
  • パブリックシノニム
    パブリックシノニムは全てのユーザーが使用できるシノニム.このシノニムはPUBLICの所有として実現される.

プライベートシノニムとパブリックシノニムでは作成や削除の方法が異なる.通常,シノニムとはプライベートシノニムを指す

  • [プライベートシノニム] CREATE SYNONYM
    CREATE [OR REPLACE] [PUBLIC] SYNONYM <シノニム名> FOR <オブジェクト名>;

    CREATE SYNONYMを行うにはCREATE SYNONYMシステム権限が必要.
    OR REPLACEオプションはすでに作成されているシノニムを置き換える(変更する)際に指定する.
    追加されたシノニムはuser_synonymsデータディクショナリビューでシノニムを確認することができる.
    DROP SYNONYMで削除できる.

  • [パブリックシノニム] CREATE PUBLIC SYNONYM
    CREATE [OR REPLACE] PUBLIC SYNONYM <シノニム名> FOR <オブジェクト名>;

    CREATE PUBLIC SYNONYMを行うにはCREATE PUBLIC SYNONYMシステム権限が必要.
    OR REPLACEオプションはすでに作成されているシノニムを置き換える(変更する)際に指定する.
    追加されたシノニムはall_synonymsデータディクショナリビューでシノニムを確認することができる.
    DROP PUBLIC SYNONYMで削除できる.

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中