Oracleの「オブジェクト」について簡単に説明してみる | システム職人の日常

システム職人の日常

システム職人の日常について、とか

テーマ:
Oracleユーザにとっての
オブジェクトの種類について
ちょこっと説明しておきます

・テーブル(TABLE)
 テーブルというのは、簡単に
 言うと、データの入れ物です
 これまで CREATE TABLE ~
 というのが出てきましたが、
 それがTABLEを作るおまじない
 です。
 テーブルは列を持ちますが、
 列の名前と形と数が、その
 入れ物の形になります。

・インデックス(INDEX)
 インデックスはちょっと特別
 なオブジェクトです。
 何が特別かというと、必ず
 テーブルに従属します。
 まぁテーブルの子分みたいな
 ものです。
 種類には UNIQUE INDEX と
 NO UNIQUE INDEX があります
 これまでここで出てきたのは
 全て UNIQUE INDEX です。

・トリガ(TRIGGER)
 これもテーブルに従属する
 オブジェクトです。
 テーブルに対するイベントを
 契機(トリガ、引き金)として
 何か処理を行いたい場合に
 使います。

・シーケンス(SEQUENCE)
 「連番」オブジェクトです。
 同じ番号がないように連続
 して番号を作るオブジェクト
 です。ここでもそのうち出て
 来ると思います。

・手続き(PROCEDURE)
 何らかの処理をするための
 オブジェクトです。ここ
 でもそのうち出て来ます。

・関数(FUNCTION)
 何らかの処理をして、値を
 返すオブジェクトです。ここ
 でもそのうち出て来ます。

・パッケージ(PACKAGE)
 手続きや関数をいくつか
 セットにしたオブジェクト
 です。C++風に言うと、
 static Class的なものです
 # 誤解を生みそうだ...

・タイプ(TYPE)
 データメンバとメソッドを
 持つ、C++のクラスみたいな
 オブジェクトです。

・ビュー(VIEW)
 ここでいずれ出て来ます。
 出て来たときに説明します。

・シノニム(SYNONYM)
 各種オブジェクトに対する
 エイリアスです。
 別名、通称みたいな名前を
 つけるためのオブジェクト
 です。

・ディレクトリ(DIRECTORY)
 Oracleからファイルを扱う
 ためのディレクトリです。
 ディレクトリオブジェクトは
 ファイルを読み書きする
 ディレクトリを定義しておく
 ためのオブジェクトです。

Oracleユーザにとっては、
だいたいこれくらいです。
上記オブジェクトは
CREATE **** で作ります
# **** が上記の括弧の中の
# キーワードになります。

ちなみにこのブログ内で
CREATE ****
として作ったモノが後2つ
ありました。
USERとTABLESPACEですね。
忘れたわけじゃないんです。

これが上記にないのは、
Oracleユーザにとっての
オブジェクトではないから
です。
USER と TABLESPACE の
CREATEは、ユーザでは実行
できません。
じゃ、誰が実行できるのか
というと、「管理者」です。
ここのブログでも、
「systemユーザでログイン」
した状態で作成しました。
# systemユーザは管理者権限を
# 持ったユーザです

そうそう、DATABASE も
CREATE DATABASE ****
で作成します。
# もちろん「管理者」で

「管理者」と「ユーザ」が
必要な理由もそのうち書くと
思いますが、今はとりあえず

・データベースは壊れると
 大変だから、壊れるような
 ことが出来る人は限られた
 人にしておく

ためだと思っていて下さい。