2016-09-05 13 views
0

私は最近、Oracleデータベースでいくつかの作業をしなければなりませんでした。私はMSのSQLの背景から来た。私はまだOracleのいくつかの基本的な定義について頭を浮かべています。Oracleではスキーマはどのように定義されていますか?

スキーマ - これはデータベースの構造を意味しています。これには、表、索引および任意の制約の構造が含まれます。これには、テーブルに格納されているデータは含まれません。データベースには、1つのスキーマと1つのデータセットしか含まれません。

しかし、Oracleでは、スキーマが構造とデータとして定義されているようです。また、データベースは多くのスキーマを保持できます。

これは正確ですか?

+0

https://docs.oracle.com/database/121/CNCPT/intro.htm#CNCPT939 – OldProgrammer

答えて

2

データベースエンジンに関係なく、データモデルについては「スキーマ」として話すのは珍しいことではありません。これは必ずしもリレーショナルデータベースエンジンがその用語をどのように定義しているのかということではありませんが、実際のデータではなくオブジェクトの定義についてのみ話しているという文脈から完全にはっきりと分かるかもしれません。

「スキーマ」は、SQL ServerとOracleの両方で、関連するオブジェクト、コード、およびデータをまとめて収集する方法です。 SQL Serverでスキーマを定義し、そのスキーマにusp_setFooプロシージャとともにテーブルfooを作成すると、fooのデータはそのスキーマの一部になります。同様に、Oracleスキーマには通常、表と索引の定義、データ、コードなどが含まれます。

技術的には、スキーマは特定のユーザーが所有するオブジェクトのセットとして定義されます。具体的には、Oracleスキーマは一般に、SQL Serverの「データベース」にほぼ類似しています。 Oracleは通常、SQL Server(database.schema.object)の3つのレベルではなく、2つのレベルのオブジェクト命名(schema.object)を持っています。プラッガブル・データベースでOracle 12.1のエンタープライズ版を使用している場合は、変更があり、Oracleのプラッガブル・データベースはSQL Serverデータベースに似ている可能性があります。

関連する問題