質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Q&A

解決済

3回答

356閲覧

RDBにおけるキーとインデックスの違いはなんですか?

chiroruxx

総合スコア25

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

0グッド

1クリップ

投稿2020/01/21 00:11

初歩的な質問です。

リレーショナルデータベースでは、以下のような表現があると思います。

  • 主キー
  • 外部制約キー
  • サロゲートキー
  • 自然キー
  • ユニークインデックス
  • 全文インデックス

ふと、これらの キーインデックス の違いは何なのだろうと思いました。
index key 違い -主キー -プライマリキーのようなワードで検索してみたのですが、あまり良い結果は得られず・・・(主キーとプライマリキーを除いているのは「主キーとインデックスの違い」のようなページが多くヒットしてしまうので)

違いがわかる方、ぜひ教えて下さい。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

これらのキーインデックスの違いは何なのだろうと思いました。

データベース設計に関連してくる主キー、外部キーは別とすれば、キーは論理的な概念で、「表の中からレコードを特定するのに必要な情報」という意味合いです。データベースの単なる列でも、1行を特定するために必要な情報(の組)がキーとなります。

一方、インデックスはデータベースの物理的構造に関わる概念で、「この列で検索するのを高速化するために仕掛ける特別なデータ構造」のことを言います。

ということで、キーとインデックスは直交する概念です。「全文検索インデックス」などが代表的ですが、キーとならない列にインデックスをかけることもありますし、逆にデータ上ユニークになる、キー列にインデックスをかけないことも、状況によっては存在します。

投稿2020/01/21 00:35

maisumakun

総合スコア145183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

chiroruxx

2020/01/21 00:38

とてもわかりやすい説明で理解できました!ありがとうございます!
guest

0

RDB においてキーは、「レコードを特定、ないしは紐付けるためのもの」です。

これに対してインデックスは、検索時に素早く行うための情報であって、一意性とは無関係です。
※一意であることを保証するユニークインデックスというのもありはしますが、あくまで特殊例です

例えば書籍で考えると、書籍には ISBN という「書籍を特定するための番号」があります。
※同一 ISBN 番号で複数の書籍があることはない。また基本的には同一名称の書籍でも、版が異なると ISBN 番号が異なる

しかし実際に書籍を検索する時を考えると、ISBN 番号ではなくて書名・著者名・出版社などといった情報から絞り込むことになります。
そこで絞り込みに使用する情報に関しては、あらかじめ分類分け(索引)しておくことで、検索の手間が減ります。この索引がすなわちインデックスです。

特性上、プライマリキーは必ずインデックス(ユニークインデックス)になりますが、逆は正しくありません。

投稿2020/01/21 01:04

tacsheaven

総合スコア13703

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

キーという表現は概念を含みます。
対して、インデックスは物理的な実装です。

例えば、自然キー(ナチュラルキー)はプライマリまたはユニークインデックスの何れかで実装します。

投稿2020/01/21 00:41

sazi

総合スコア25173

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問