最終更新日:2026年7月9日
fe fe-technology database
まず結論
インデックスとは、データベースの検索を速くするために、表の列に設定する索引です。
基本情報技術者試験では、インデックスは データの格納位置へ効率よくアクセスし、検索速度を上げるための仕組み と押さえると分かりやすいです。
問題文に 検索速度の向上、効率的なアクセス、索引 といった表現が出たら、インデックスを疑います。
直感的な説明
インデックスは、本の索引に似ています。
本の中から「スループット」という言葉を探すとき、最初のページから順番に読むと時間がかかります。
でも、巻末の索引を見れば、どのページにあるかをすぐに探せます。
索引なし
→ 最初から順番に探す
索引あり
→ 目的の場所へ近道できる
データベースでも同じです。
検索条件によく使う列にインデックスを作ると、目的のデータがある場所へ効率よくアクセスしやすくなります。
定義・仕組み
関係データベースでは、表の中に多くの行が保存されています。
インデックスを設定すると、検索対象の列について、データの場所を探しやすくするための補助情報が作られます。
| 用語 | 意味 |
|---|---|
| インデックス | 検索を速くするための索引 |
| 表 | データを行と列で管理するもの |
| 列 | 検索条件に使われる項目 |
| 行 | 実際のデータ1件分 |
| 格納位置 | データが保存されている場所 |
例えば、社員表で社員番号をよく検索するなら、社員番号の列にインデックスを設定すると検索しやすくなります。
社員番号で検索することが多い
↓
社員番号列にインデックスを作る
↓
該当する行を探しやすくなる
ただし、インデックスは万能ではありません。
インデックスを増やしすぎると、追加や更新のたびにインデックスも更新する必要があり、かえって負担になることがあります。
このテーマは、基本情報技術者試験の「データベース」や「SQL」と関係する内容です。公式の出題範囲やシラバスは、IPA:基本情報技術者試験 から確認できます。
科目Aでどう出る?
科目Aでは、インデックスを設定する目的を選ぶ問題が出やすいです。
判断するときは、次のように見ます。
検索を速くする話か
データの場所へ効率よくアクセスする話か
列の値をもとに探しやすくする話か
選択肢では、次のように切り分けます。
| 選択肢の方向性 | 疑う用語 |
|---|---|
| 検索速度を向上させる | インデックス |
| 別の表の主キーを参照する | 外部キー |
| 行を一意に識別する | 主キー |
| 列内の重複を禁止する | 一意制約、主キー制約 |
| データの重複を減らして更新異常を防ぐ | 正規化 |
FE試験では、インデックスの目的はまず 検索速度の向上 と考えます。
科目Bでどう使う?
科目Bでは、SQLやデータベース設計の問題を読むときに、インデックスの考え方が役立ちます。
例えば、次のようなSQLがあるとします。
SELECT *
FROM employees
WHERE employee_id = 'A001';
この場合、employee_id で検索しています。
この列にインデックスがあると、該当する行を探しやすくなります。
一方で、更新が多い表では注意が必要です。
データを追加・更新する
↓
表のデータだけでなく
インデックス情報も更新する
そのため、科目Bで読むときは、次のように整理するとよいです。
1. どの列でよく検索しているか
2. 検索を速くしたいのか
3. 更新や追加が多すぎないか
インデックスは、検索を助ける仕組みですが、設計では使いどころも大切です。
よくある誤解・混同
インデックスでよくある誤解は、重複を防ぐための仕組みだと思ってしまうことです。
| 誤解 | 正しい理解 |
|---|---|
| インデックスの主目的は重複禁止 | 主目的は検索速度の向上 |
| 外部キーと同じ | 外部キーは別表との関係を保つ列 |
| 主キーと同じ | 主キーは行を一意に識別する列 |
| 正規化と同じ | 正規化はデータの重複や更新異常を減らす設計 |
| インデックスは多いほど必ずよい | 増やしすぎると更新時の負担が増える |
特に、主キーや一意制約との違いは試験で迷いやすいです。
インデックス
→ 検索を速くするための索引
主キー
→ 行を一意に識別する列
一意制約
→ 値の重複を禁止する制約
DBによっては一意インデックスという仕組みもありますが、FE試験で単にインデックスの目的を聞かれたら、まず検索速度の向上を選びます。
まとめ(試験直前用)
- インデックスは、検索を速くするために表の列へ設定する索引
- 判断キーワードは「検索速度」「効率的なアクセス」「索引」
- 外部キーは、別の表との関係を保つための列
- 主キーや一意制約は、重複を防ぎ一意性を保つための仕組み
- インデックスは検索に役立つが、増やしすぎると更新時の負担が増える