平成30年度 春期 ITパスポート試験 公開問題 問86 解説 DBMSのインデックス
DBMSにおけるインデックスに関する記述として, 適切なものはどれか。
- 検索を高速に行う目的で, 必要に応じて設定し, 利用する情報 ✓ 正答
- 互いに関連したり依存したりする複数の処理を一つにまとめた, 一体不可分の処理単位
- 二つの表の間の参照整合性制約
- レコードを一意に識別するためのフィールド
解説
インデックスとは、本の巻末にある索引(さくいん)と同じ役割を持つ仕組みです。選択肢の中から「検索の高速化」というキーワードを探すのが正解への最短ルートです。
データベースのインデックス(索引)の役割 データベースにおいて、特定の列に対してインデックスを設定すると、該当するレコードを検索する際に、すべてのデータを先頭から順番に確認する必要がなくなります。辞書の索引を引くときのように、目当てのデータがどこにあるかを効率的に見つけ出せるため、大量のデータの中から特定の情報を探す速度が飛躍的に向上します。
この問題の選択肢は、データベースにおける重要な概念をそれぞれ説明しています。
・互いに関連したり依存したりする複数の処理を一つにまとめたもの これはトランザクションの説明です。銀行の振込処理のように、処理の途中でエラーが起きたらすべてを無かったことにする(ロールバック)、成功したらすべて確定させる(コミット)という一連の処理単位を指します。
・二つの表の間の参照整合性制約 これは外部キー制約の説明です。例えば、社員テーブルにある部署コードが、部署テーブルに存在するものしか登録できないようにすることで、データの矛盾を防ぐ仕組みです。
・レコードを一意に識別するためのフィールド これは主キーの説明です。社員番号や商品コードのように、重複がなくそのデータを一意に特定できる項目を指します。
インデックスの注意点 インデックスは検索を高速化する便利な仕組みですが、メリットばかりではありません。データを追加、更新、削除するたびに、データベースはそのインデックス情報も同時に書き換える必要があります。そのため、インデックスを増やしすぎると、逆にデータの書き込み速度が低下するデメリットが生じます。
実務や試験では、インデックスは読み取りが頻繁な列に対して設定するのが適切であり、更新が極めて多い列やデータ数が非常に少ないテーブルには設定しないほうが良いといったトレードオフの関係についても押さえておくと応用が利きます。
- ITパスポート講座:データベース(基本情報技術者試験のデータベース分野にも通じる基礎知識)