平成23年度 特別 午前 問31
データベース
インデックスに関する記述
関係データベースのインデックスに関する記述のうち,適切なものはどれか。
- アインデックスはユニーク属性のデータ項目だけに設定できる。
- イインデックスを定義することで,データベースに対するすべての操作が速くなる。
- ウ外部キーにもインデックスを設定しなければならない。
- エ主キー以外の列に対してもインデックスを指定できる。
答えと解説を見る
✓ これが正解エ主キー以外の列に対してもインデックスを指定できる。
解説
主キー以外の列にもインデックスは付けられます。
インデックスは、目的の行を速く見つけるために本体とは別に持つ索引です。本の巻末の索引と同じで、探すための道しるべを別に並べておく、という考え方になります。どの列に付けるかは設計する側が決めるもので、主キーに限られません。検索の条件によく現れる列や、並べ替えの基準に使う列であれば、値が重なる列にも付けられますし、一つの表に複数の索引を持たせるのも普通の設計です。四つの記述を見比べるときは、言い切りの強さに目を向けると速く進みます。付けられる対象を一つに狭める言い方、良いことだけが起きると述べる言い方、任意の工夫を義務へ格上げする言い方は、いずれもこの仕組みの性質を言い過ぎています。実際のところ、索引を増やすと探す側は速くなる一方で、行を追加したり変更したり削除したりするたびに索引の側も維持しなければならず、書き換えを伴う処理の負担は重くなります。速さと負担のつり合いを見ながら、どの列にいくつ持たせるかを決めていく、というのが実際の扱い方です。ですから、付けられる範囲を広く認めつつ、付ければ付けるほど良いとは言わない記述が、性質を正しく述べたものになります。
ほかの選択肢はなぜ違うのか
- アインデックスはユニーク属性のデータ項目だ…:値が重ならない列にしか設定できない、と対象を狭めています。値の重複がある列にも索引は作れますし、重複を許さない索引は種類の一つにすぎません。
- イインデックスを定義することで,データベー…:定義すればデータベースに対するすべての操作が速くなる、と述べています。行を書き換えるたびに索引の側も直す必要が生じますから、更新を伴う処理はむしろ遅くなる方向に働きます。
- ウ外部キーにもインデックスを設定しなければ…:外部キーには必ず設定しなければならない、と義務として述べています。付けておくと表を結び付ける処理が速くなる場面は多いものの、設定するかどうかは設計する側が選ぶことです。
この問題の用語
- 関係データベースデータを表の形で持ち、表どうしを結びつけて扱う、最も広く使われているデータベース。データの定義や操作にはSQLを使います。
出典:平成23年度 特別 応用情報技術者試験 午前 問31
同じ用語が出る問題
- 令和7年度 秋期 午前 問28:ビューに関する記述(関係データベース)
- 令和7年度 春期 午前 問25:多重度に関する問題(関係データベース)
- 令和5年度 春期 午前 問30:参照制約に関する問題(関係データベース)
- 令和5年度 春期 午前 問26(関係データベース)
- 令和3年度 春期 午前 問28:NoSQLに関する問題(関係データベース)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)