web-dev-qa-db-ja.com

Oracleのスキーマとデータベースの違いは何ですか?

Oracleでは、datafileは、実際のデータが格納されるシステムファイルです。データファイルのコレクションはtablespaceを作成し、最後にdatabaseはテーブルスペースのコレクションを作成します。

データファイル、テーブルスペース、データベースの概念が間違っている場合は修正してください。

スキーマとデータベースの違いの詳細を理解したいと思います。オンラインリソースは役に立ちますが、この違いに関して混乱しているようです。

5
nitesh.kodle123

他のすべてが失敗した場合は、ドキュメントを読んでください。手始めに here を試してください(v。良い図)。 Oracleでは、スキーマはデータベースです。 ここ も参照してください-特にこれ:

RDBMSの特徴の1つは、物理データストレージが論理データ構造から独立していることです。 Oracle Databaseでは、データベース・スキーマは論理データ構造またはスキーマ・オブジェクトの集合です[つまり、関連テーブル]。データベーススキーマはデータベースユーザーが所有し、ユーザー名と同じ名前を持っています。

さらに、物理的なデータベースファイル「データベース」と「インスタンス」(完全に機能するシステムを構成する実行中のソフトウェア)は区別されます。

ある意味では、Oracleの「データベース」は役に立たない-それはディスク上のビットの集まりである-それはそれをシステム(つまり、情報を取得/変更できるという意味でのデータベース)にするソフトウェアです。

Oracleデータベースは、それ自体が「データベース」である1つ以上のスキーマを含む可能性のある実行中のインスタンスとデータ(+コントロール+ REDO&c。)ファイルです。つまり、素人はそれを理解しているように、HR、CRM、またはERP(&...)スキーマ/システム。

4
Vérace

スキーマは、UNIXのユーザーホームディレクトリと考えることができます。スキーマとOracleユーザーは緊密に結びついています。 1人のユーザーが1つのスキーマにマップします。 UnixでALTER SESSION SET CURRENT_SCHEMA=USER1を使用する場合と同様の方法で、現在のスキーマを一時的に変更できます。

他のスキーマ内のオブジェクトには、Unixと同じ方法で到達できます。オブジェクト名の前にSCHEMA.を付けるだけです。例:USER1.TABLE1USER2.TABLE2がその例です。現在のスキーマをUSER1に変更すると、USER1プレフィックスを追加する必要がなくなります。

データベースは最も広いコンテナーであり、スキーマ、ユーザー、テーブルスペース(データファイルはテーブルスペースの一部)、および1つ以上の(RAC)インスタンスを収集します。

単一のコンテナーデータベース(CDB)に複数のプラグ可能なデータベース(PDB)を含めることができるため、12cマルチテナントオプションを使用すると状況がさらに複雑になります。しかし、それは単なる別の話です。

5
SQ9MCP