Oracleデータベースの概念・アーキテクチャを理解するための個人メモ。
1. オブジェクトとスキーマ
オブジェクトとは
表、ビュー、インデックス、プロシージャ、ユーザーなど、Oracleデータベースの世界に登場する様々な種類のアイテム。
スキーマに所属するスキーマ・オブジェクトと、所属しない非スキーマ・オブジェクトに分類される。
スキーマとは
ユーザーが所有するオブジェクトの論理集合。
各ユーザーが自分のオブジェクトを格納するために与えられるホームベースのようなイメージ。
ユーザーとは
非スキーマ・オブジェクトの一種。
1つのユーザーは1つのスキーマを所有する。
ユーザーを作成するときに同名のスキーマも作成され、ユーザーはそのスキーマの所有者となる。
ユーザーは、別ユーザーの所有スキーマにも、権限があればアクセスできる。
SELECT * FROM スキーマ名.テーブル名;
2. 論理データ構造(表領域)
例えばあるテーブルにINSERTしたデータは、どれかしらの「表領域」の中の「データ・ブロック」に格納されている。
-
セグメント あるオブジェクトを構成するデータ全体を指す。
物理的には、ある表領域を構成するデータファイルたちの中で1箇所にまとまっているわけではなく、欠片(エクステント)になって散らばっている。同一荷主の複数伝票てきな。 -
エクステント 複数の連続したデータ・ブロック。複数個口の荷物てきな。
-
データ・ブロック データを詰めた1つの段ボール箱てきな。
3. ソフトウェア構造
インスタンスとは
SGA(共有メモリ) + バックグラウンドプロセス を指す。
メモリ上に展開される構造。
select PID, PNAME, PROGRAM from V$PROCESS
where PNAME is not null
データベースとは
インスタンスの対義語としてのデータベース。
物理ファイルの集合。ストレージ。
- 主要ファイル
サーバープロセスとは
バックグラウンドプロセスに対してフォアグラウンドプロセスとも呼ばれる。
1つのコネクションを1つのサーバープロセスが担当。(専用サーバープロセスの場合)
リスナープロセスとは
リモート接続の受付窓口。
クライアントからリクエストが来たらコネクションを確立し
サーバープロセスに引き渡す。