SI Object Browserをご利用のユーザーの中には、自身の作業で複数種類のデータベースを利用している方もいらっしゃるのではないでしょうか。
複数種類のデータベースを扱っていると、それぞれのキーワードに対する意味が少しずつ異なっていて混乱することもあるのではないかと思います。
今回は少し毛色を変えて、キーワード「インスタンス、データベース、スキーマ」の関係について、各データベース(Oracle、SQL Server、PostgreSQL)を比較しながら見ていきます。
Oracleの関連性
Oracleにおける「インスタンス、データベース、スキーマ」の関係性は以下の通りとなります。
- Oracleの関連性 -
Oracleの関係性において特筆すべき点は以下です。
・インスタンスとデータベースは1対1でほぼ同義
・各インスタンス内に複数スキーマを作成可能
・スキーマとユーザーは1対1でほぼ同義
データベース、インスタンスというキーワードが混乱してしまう理由の一つが、このOracleの場合かと思います。
クラウドサービスを利用している場合、サーバーのことをインスタンスと読んだりすることもあるので、しっかり読み替えて表現した方が良いですね。
また、Oracleを利用したことがある方はご存じかと思いますが、スキーマとユーザーが1対1の関係であることも特徴の一つです。
Oracle18c以降では、「スキーマ限定アカウント」というものを作成できるようになっており、ログインを伴わないユーザーにすることで、スキーマだけを作れるようになっています。
なお、SI Object Browser for Oracleのオブジェクトツリーでは、デフォルトで以下の表示となっています。
データベース > スキーマ > オブジェクト
- オブジェクトツリー(SI Object Browser for Oracle) -
また、データベースの管理もデータベース情報画面から行うことが可能です。
- オブジェクトツリー(SI Object Browser for Oracle) -
SQL Serverの関連性
SQL Serverにおける「インスタンス、データベース、スキーマ」の関係性は以下の通りとなります。
- SQL Serverの関連性 -
SQL Serverの関係性において特筆すべき点は以下です。
・複数インスタンスを作成可能
・各インスタンス内に複数データベースを作成可能
・各データベース内に複数スキーマを作成可能
・ユーザーは「ログインユーザー」と「データベースユーザー」が存在
Oracleとは異なり、インスタンスとデータベースが分かれています。
また、複数のインスタンス管理が可能となっていることもあり、環境を分ける際の幅が広がっています。
インスタンス > データベース > スキーマ > オブジェクト という上下の関係性さえ覚えれば、比較的シンプルな構成かと思います。
注意点としては、上記構成の外になりますが、ユーザーの種類が2種類あることです。
・ログインユーザー:インスタンスにログインする
・データベースユーザー:データベースにログインする
上記構成の関係上、データベースを使うだけでも、2つのユーザーが必要になることになります。
なお、SI Object Browser for SQL Serverのオブジェクトツリーでは、デフォルトで以下の表示となっています。
インスタンス > データベース > オブジェクト
- オブジェクトツリー(SI Object Browser for SQL Server) -
また、データベースの管理もデータベース情報画面から行うことが可能です。
-データベース情報(SI Object Browser for SQL Server) -
PostgreSQLの関連性
PostgreSQLにおける「インスタンス、データベース、スキーマ」の関係性は以下の通りとなります。
- SQL Serverの関連性 -
PostgreSQLの関係性において特筆すべき点は以下です。
・公式の説明ではインスタンスが単一(複数インスタンスの起動自体は可能)
・各インスタンス内に複数データベースを作成可能
・各データベース内に複数スキーマを作成可能
・ユーザーはインスタンス毎に管理
SQL Serverとほぼ同様に見えますが、インスタンスは通常では単一になります。
また、ユーザーの管理はインスタンス毎に行い、種類が分かれることはありません。
オープンソースながら、スキーマとオブジェクトの関係性で見るとOracleと同様の管理も可能となっている、ということも移行の需要が増えている理由になっていると考えます。
なお、SI Object Browser for Postgresのオブジェクトツリーでは、デフォルトで以下の表示となっています。
データベース > スキーマ > オブジェクト
- オブジェクトツリー(SI Object Browser for PostgreSQL) -
また、データベースの管理もサーバ情報画面から行うことが可能です。
(SI Object Browser for Postgresの場合はデータベースの新規作成は行えません。)
- オブジェクトツリー(SI Object Browser for PostgreSQL) -
まとめ
いかがでしたか?今回はデータベース別にインスタンスの関係性を説明してきました。
サーバ1台に対するそれぞれの関係性をまとめると以下の通りです。
それぞれの構成を把握していないと、「インスタンス」と一言で言っても、誤解を招いてしまう可能性があります。
正しく情報を伝えるためにも、キーワードの認識を合わせておくのは大事なことだと考えます。
複数のデータベースを扱うプロジェクトでは、尚更この問題が浮き彫りになると思いますので、しっかりと把握、共有するようにしましょう。
- カテゴリ:
- 【OBトコ】DBの勉強
- キーワード:
- データベース全般