(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【入門】データベースとインスタンスの役割の違い

スポンサーリンク

はじめに

データベースインスタンス、二つのキーワードの関わりについて簡単に説明してみます。
入門レベルで記載するので、特にバックグラウンドの知識は不要です。

さて、よく見る全体像の図は以下のようなものだと思います。
(以下、図①)

Oracleのアーキテクチャより抜粋

こちらを見れば大体のことが分かるのですが、初学者にはなかなかイメージがつかないと思います。

全体像の簡略化

まずはインスタンスをイメージするために、図①には登場しないユーザーを入れ込んだ図を用意しました
(以下、図②)

f:id:mtiit:20190126150720p:plain

インスタンスとデータベースの違いを、図②を軸に説明してみます。

インスタンスとは

インスタンスとは何でしょうか。
まずは、インスタンスの立ち位置ですがデータベースとユーザーの中間に位置しています。

つまり、ユーザーはデータベースを直接操作する代わりにインスタンスを介して操作します。

よって、一般的には「インスタンス作成」→「データベース作成」の順です。
もしくはデータベースが作成されると同時にインスタンスも自動で作成されます。

インスタンスの中身に関しては、図①にあるように SGA(=メモリ構造) と プロセス群 が主な構成要素です。

わざわざインスタンスを介してデータを操作する理由はデータの安全性やパフォ-マンスの向上につながるからです。
ワンクッション挟むことで、不整合が起きないように一元的に管理したり同じ問い合わせに対してはメモリに保持した情報で高速に応対するイメージです。

使用例としては、インスタンスがサーバーにプロセスとして存在しており、ユーザはクライアントとしてリモートで接続しにいくケースがよく見られます。

一般的に一つのデータベースには一つのインスタンスが紐づきます。

データベースとは

こちらはイメージがしやすいかもしれません。

いわゆる、データファイルをはじめとする物理ファイルです。
図①にもその他とありますが、データベースに対する変更情報を管理するファイル等々もあります。
以下は、データベースの中の要素である「表」と「表スペース」について記載していますので興味があれば合わせて確認ください。

データベースとインスタンスの違い

データベースはファイルとしてストレージに保管されていますが、インスタンスはメモリ上にプロセスとして存在しています。よって全くの別者です。

インスタンスはプロセスデータベースは物理ファイルというのがざっくりした理解です。

インスタンス データを管理するマネージャー
データベース 表、表スペース、その他オブジェクト群

終わりに

ディスクに格納されるデータベースとメモリに展開されるインスタンスという覚え方が初学者の方には良いかと思います。また、もう少し体系だった理解は以下の書籍がおススメです。

以上、データベースとインスタンスの違いについての入門記事でした。