[解決済み] リレーショナル・データベースにおけるカタログとスキーマの違いは何ですか?
質問
私は、スキーマはデータベース自体の前にあるアッパーラッパーオブジェクトであると考えていました。
つまり
DB.schema.<what_ever_object_name_under_schema>
.
さて、カタログの "ラッパー" は、今やかなり混乱しています。なぜカタログが必要なのでしょうか?具体的にどのような目的でカタログを使うべきなのでしょうか。
どのように解決するのか?
関係性の観点から:
カタログは、とりわけ、さまざまなスキーマ(外部、概念、内部)および対応するマッピング(外部/概念、概念/内部)がすべて保管されている場所です。
言い換えれば、カタログには詳細な情報 (以下、 と呼ばれることもあります) が含まれています。 記述子情報 または メタデータ を参照)、システム自身にとって関心のある様々なオブジェクトに関するものです。
たとえば、オプティマイザーは、インデックスと他の物理ストレージ構造に関するカタログ情報、および他の多くの情報を使用して、ユーザー リクエストを実装する方法を決定するのに役立てます。同様に、セキュリティ サブシステムは、ユーザーとセキュリティ制約に関するカタログ情報を使用して、そのような要求を最初に許可するか拒否するかを決定します。
データベースシステム入門、第7版、C.J.Date、p69-70。
SQL標準の観点から:
カタログは、SQL環境におけるスキーマの名前付きコレクションです。1つの SQL-environment はゼロまたはそれ以上のカタログを含んでいます。カタログには という名前のスキーマが含まれます。 INFORMATION_SCHEMA という名前のスキーマが含まれ、そのスキーマには 情報スキーマを含みます。
データベース言語 SQL DIS 9075の改訂案)、p45
SQLの観点から:
カタログはしばしば データベース . ほとんどのSQLデータベースでは、information_schemaビューに問い合わせると、"table_catalog"列の値がデータベースの名前にマッピングされていることがわかります。
を使用しているプラットフォームを見つけた場合、そのプラットフォームは カタログ がこれらの 3 つの定義のどれよりも広い意味で使用されている場合、データベースよりも広いもの、つまりデータベース クラスター、サーバー、またはサーバー クラスターを指している可能性があります。しかし、プラットフォームのドキュメントで簡単に見つかるはずなので、それはちょっと疑わしいです。
関連
-
[解決済み】識別関係と非識別関係の違いとは?
-
[解決済み] ATTACHで開いたSQLiteデータベースファイルのテーブルを一覧表示するにはどうすればよいですか?
-
[解決済み] MySQLデータベースの名前を素早く変更する(スキーマ名を変更する)方法は?
-
[解決済み] rake db:migrate db:reset とdb:schema:loadの違いについて
-
[解決済み] データベース駆動型アプリケーションのユニットテストに最適な戦略とは?
-
[解決済み] MySQLにおけるスキーマとデータベースの違い
-
[解決済み】「INNER JOIN」と「OUTER JOIN」の違いは何ですか?
-
[解決済み] データベース レコードを削除するかしないか
-
[解決済み] Mavenプラグインを1回だけ実行する?
-
[解決済み] SQLITE SQLダンプファイルをPOSTGRESQLに変換する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン