問題
問16
データの高速検索を目的として、主データの特定項目を抜き出して別途作成されるデータ構造はどれか。
- インデックス
- ビュー
- トリガ
- ストアドプロシージャ
正解
正解は「ア」です。
解説
この問題の正解は「インデックス」です。データベースにおけるインデックスは、本の巻末にある「索引」と全く同じ役割を果たします。分厚い本の中から特定の単語を探すとき、最初から一ページずつ探すのは非常に時間がかかります。しかし、索引を使えば、単語とそれが掲載されているページ番号がすぐに分かり、目的のページに直接ジャンプできます。データベースのインデックスも同様に、テーブル内の特定の列(例えば、社員番号や商品名など)の値を、そのデータが格納されている場所の情報とセットにして、検索しやすいようにソートされた状態で保持します。
これにより、膨大なデータの中から特定のレコードを検索する際に、テーブル全体を走査(フルスキャン)することなく、高速に目的のデータを見つけ出すことができます。問題文の「データの高速検索を目的として」「特定項目を抜き出して別途作成されるデータ構造」という説明は、インデックスの機能と特徴を正確に表しています。
イ(ビュー):
一つ以上のテーブルから特定のデータだけを抜き出して作られる、仮想的なテーブルです。主にデータの見せ方を制御したり、複雑なSQLを単純化するために使われます。
ウ(トリガ):
テーブルに対してデータの追加、更新、削除が行われた際に、それをきっかけ(トリガー)として自動的に実行される処理のことです。
エ(ストアドプロシージャ):
データベースに対する一連の処理を一つのプログラムとしてまとめ、データベース管理システム(DBMS)内に保存したものです。繰り返し行う処理を効率化します。
解法のポイント
この問題を解くには、データベースで利用される様々なオブジェクト(ビュー、トリガなど)の機能と目的を理解しておく必要があります。特に「高速検索」というキーワードが、インデックスを特定するための最大のヒントです。「インデックス = 索引 = 検索を速くするもの」という連想で覚えておくと、迷うことはありません。他の選択肢は、データの見せ方(ビュー)や処理の自動化(トリガ、ストアドプロシージャ)を目的とするものであり、検索速度の向上を主目的とするインデックスとは役割が明確に異なります。それぞれの用語の目的を正しく整理しておきましょう。
用語補足
主データ:
この文脈では、データベースのテーブルに格納されている、本体となるデータ全体を指します。
データ構造:
コンピュータ内でデータを効率的に扱うために、特定の形式で整理・格納する方法のことです。配列、リスト、木構造など様々な種類があります。
ビュー (View):
`SELECT`文をデータベース内に保存し、名前を付けたものです。利用者はこのビューを通常のテーブルと同じように参照でき、セキュリティの向上にも役立ちます。
トリガ (Trigger):
例えば、「注文テーブルに新しいレコードが追加されたら、自動的に在庫テーブルの在庫数を減らす」といった処理を定義するのに使われます。


