2009-03-20 28 views
1

私はいくつかのクラスを設計するので、若干の専門用語があります。 Sql Server 2005では、「スキーマ」は名前空間、データベースオブジェクトの組織システムを指します。しかし、一般的なリレーショナルデータベースの場合、「スキーマ」とはテーブル、フィールドなどのDDL設計を意味します。これについては、Microsoftのドキュメントを読んでいて、さまざまなデータを理解しようとしているときに、アクセスAPI。ここで何が起こっているのか説明できますか?実際にはスキーマの定義にはそれほど大きな違いがありますか?データベーススキーマの混乱

答えて

3

はい、残念なことに、「スキーマ」はデータベースベンダー間で過負荷になっています。

"SQL-99 Complete, Reallyは、" 言う:

SQLカタログは、スキーマの名前付きグループです。 ...

SQLスキーマは、特定の が所有する名前付きSQLデータグループです。 ...すべてのスキーマオブジェクトには、それが属するスキーマ内でユニークでなければならない名前(その名前クラスのオブジェクトの中で)があります。スキーマ・オブジェクト名のクラスは次のとおりです。

  • ベーステーブルとビュー
  • ドメインとのUDT
  • 制約とアサーションは
  • 文字は
  • 照合順序
  • 翻訳
  • トリガ
  • SQLを設定し、 -serverモジュール
  • SQL-呼び出されたルーチン

Oracleは、いつも私の眉毛を上げるなりおり、同義的に "スキーマ" と "ユーザー" を使用しています。

と同義語としてSCHEMAを使用しています。

PostgreSQLは "schema"を使用しますが、 "database"を使用して標準SQLが "catalog"と呼んでいるものを参照します。

0

あなたは正しいですか? SQL 2005/2008では、「スキーマ」は名前空間を参照し、リレーショナルデータベースでは「スキーマ」はテーブル、ビュー、procs、関数などの論理構造を参照します。

+0

これも答えです。ありがとうございます。 –