質問: ### 前提 今までMySQLを使って開発をしてきました。 此度Oracleで開発することになったのですが、 Oracleの概念を調べてもよくわからないので質問します。 ### わからないこと ``` インスタンス・データベース・スキーマの関係がわかりません。 ``` ### 聞きたいこと ``` インスタンス・データベース・スキーマはそれぞれどういう役割なのか? 関係を追って説明していただけませんでしょうか。 ```
回答: ちょっと自信がないですが、 * インスタンスは、起動・停止ができる単位のもの * データベースは他のデータベースと同じ概念のもの。ただ1インスタンスに1データベースしか配置できないらしい * スキーマ、これがORCLE独特な?概念で、データベースにユーザーごとに名前空間を作成が作成される。この名前空間のこと 最後のスキーマが一番理解しずらいもので、ユーザーを作成すると、そのユーザーが所有するスキーマが自動で作成され割り当てられます。別々のスキーマに同じ名前のテーブルを作成することができますが、全く別のテーブルとなります。ようは物理的には1つのデータベースですが、論理的にユーザーごとデータベースになると考えたほうがいいかな。 あ、MySQLを忘れていました。(こちらも自信がないですが) * インスタンスは、起動・停止ができる単位でOracleと同じ * 1インスタンスに対して複数のデータベースを作成可能 * MySQLでのユーザーは、単純に言えばアクセスできる権限を与えるもので、スキーマとかいう概念はない となるかと。