web-dev-qa-db-ja.com

プライマリインデックス、セカンダリインデックス、ユニークインデックス、ノーマルインデックスの違いは何ですか?

私は2つのタイプのインデックスが任意のテーブルに存在するOracleシステムで作業します。

  1. 一意のインデックス(一意のキーである検索キーに基づく)。
  2. 通常のインデックス(候補または主キーではない任意の検索キーで作成されたインデックス)。

しかし今、私は大学のドキュメントから2つの新しいタイプのインデックスについて知った:

  1. プライマリインデックス
  2. セカンダリインデックス

プライマリインデックスとセカンダリインデックスはどのように違うのですか?それらはそれぞれOracleの一意のインデックスと通常のインデックスと同じですか?

以下の2つのインデックスについても知りたいです。

  1. 密度指数
  2. スパースインデックス

密なインデックスと疎なインデックスをプライマリインデックスとセカンダリインデックスのタイプと見なすことはできますか?

3
Kshitij Jain

プライマリインデックス

主インデックスは、フィールドの一意の主キーを含み、重複が含まれないことが保証されている一連のフィールドのインデックスです。 クラスター化インデックスとも呼ばれます。例えば。従業員IDはその例です。

セカンダリインデックス

セカンダリインデックスは、プライマリインデックスではなく、重複している可能性があるインデックスです。例えば。従業員名はその例です。従業員名は同様の値を持つことができるからです。

高密度インデックス

インデックスレコードは、ファイル内のすべての検索キー値に対して表示されます。高密度インデックスは、個々のレコードを直接指します。

疎インデックス

一部の検索キー値のみのインデックスレコードが含まれています。レコードが検索キーで順番に並べられている場合に適用されます。本のインデックスと同じように、スパースデータベースインデックスは個々のレコードを指すのではなく、「ページ」を指します

5
Sagar Makhesana

セカンダリインデックスは、プライマリインデックスではない任意のインデックスです(そのうちの1つのみが存在します)。それはまだユニークであることができます。

密なインデックスは、関連する値がなくてもすべてのレコードがインデックスに含まれるインデックスですが、疎なインデックスには関連する値を持つレコードのみが含まれます。これがOracleデータベースインデックスの場合、意味のある違いかどうかはわかりませんが、通常のインデックスは、すべての列がnullであるエントリを含まないという意味で「スパース」であると言えます。それはビットマップインデックスを「密」にするだろうと私は思う。

主キーインデックスは常に密でなければなりません。

1
Thilo