基本情報技術者 技術要素 択一式(応用) 第56問〜第60問|データベース

重要度:C 論点:データベース

問56:「社員」表から、全社員の平均給与よりも給与が高い社員の氏名を取り出すSQL文はどれか。

  • A:SELECT 氏名 FROM 社員 WHERE 給与 > AVG(給与) ORDER BY 給与 DESC
  • B:SELECT 氏名 FROM 社員 WHERE 給与 > (SELECT AVG(給与) FROM 社員)
  • C:SELECT 氏名 FROM 社員 GROUP BY 氏名 HAVING 給与 > AVG(給与)
  • D:SELECT 氏名, AVG(給与) FROM 社員 GROUP BY 氏名 ORDER BY AVG(給与) DESC
【第56問:正解と解説】

正解:B

・A
WHERE句の中で集約関数AVGを直接使うことはできないため、このSQL文は実行できない。

・B
正解。副問合せで全社員の平均給与を求め、その値と各社員の給与を比較することで、条件を満たす社員だけを取り出せる。

・C
標準的なSQLでは、HAVING句で参照する集約されていない列は、原則としてGROUP BY句で指定されている必要があるため、このSQL文は適切ではない。また、氏名でグループ化してAVG(給与)を求めても、全社員の平均給与を求めたことにはならない。

・D
氏名でグループ化して平均を並べ替えるだけであり、全社員の平均給与より高い社員に絞り込むことはできない。


重要度:B 論点:データベース

問57:関係データベースに対する関係代数の演算のうち、表の中から指定した条件を満たす行だけを取り出す演算はどれか。

  • A:選択
  • B:射影
  • C:結合
  • D:和
【第57問:正解と解説】

正解:A

・A
正解。選択は、表の中から条件を満たす行だけを取り出す演算である。SQLではWHERE句による絞り込みに相当する。

・B
射影は、表の中から指定した列だけを取り出す演算である。

・C
結合は、複数の表を共通の列の値で結び付けて1つの表にする演算である。

・D
和は、同じ構造をもつ2つの表の行を合わせて1つの表にする演算である。


重要度:C 論点:データベース

問58:関係データベースの表に付与するインデックスの説明として、適切なものはどれか。

  • A:表のデータを暗号化して、権限のない利用者からの参照を防ぐ仕組みである
  • B:表の行を物理的に並べ替えて、データの格納領域を圧縮する仕組みである
  • C:表に対する更新の履歴を記録して、障害からの回復に用いる仕組みである
  • D:検索を高速化するための索引であり、一方で更新時には維持の負担が生じる
【第58問:正解と解説】

正解:D

・A
データの暗号化はセキュリティ対策であり、インデックスの機能ではない。

・B
インデックスの主目的は、検索を高速化するための索引を提供することであり、データの格納領域を圧縮することではない。DBMSやインデックスの種類によっては、索引キーに基づいて表を物理的に編成又は再配置する場合もあるため、行の物理的な並べ替えだけを一律に否定する説明は適切でない。

・C
更新履歴の記録はログ(ジャーナル)の説明であり、障害回復に用いられるものである。

・D
正解。インデックスは列の値から目的の行を素早く探し出すための索引であり、検索は高速化されるが、行の追加や更新のたびに索引の維持が必要となり、更新処理には負担が生じる。


重要度:C 論点:データベース

問59:関係データベースのビューに関する記述として、適切なものはどれか。

  • A:元の表の実データを複製して独立に保持するため、元の表を削除した後も参照し続けられる
  • B:必要な列や行を取り出して定義する仮想的な表であり、必要な部分だけを利用者に見せられる
  • C:ビューを定義しておくと、元の表に対する全ての検索処理が索引なしでも自動的に高速化される
  • D:ビューは一度定義すると、削除することも別の定義で作り直すこともできなくなる
【第59問:正解と解説】

正解:B

・A
一般のビューは実データを持たない仮想的な表であり、元の表に依存して成り立つ。

・B
正解。ビューは元の表に対する問合せとして定義される仮想的な表であり、必要な列・行だけを見せることで、利用のしやすさの向上やアクセス制御に役立つ。

・C
ビューは検索を高速化する仕組みではない。検索の高速化には主にインデックスを用いる。

・D
ビューはDROP文で削除でき、定義し直すこともできる。


重要度:B 論点:データベース

問60:データベースの設計で用いるE-R図に関する記述として、適切なものはどれか。

  • A:プログラムの処理の流れを、記号を用いて時系列に沿って表す図である
  • B:システムの状態の変化と、その変化の契機となる事象を表す図である
  • C:データの流れに着目して、処理とデータの受渡しの関係を表す図である
  • D:管理対象をエンティティとして表し、エンティティ間の関連を表す図である
【第60問:正解と解説】

正解:D

・A
処理の流れを時系列で表すのは、フローチャートの説明である。

・B
状態の変化と事象の関係を表すのは、状態遷移図の説明である。

・C
データの流れと処理の関係を表すのは、DFDの説明である。

・D
正解。E-R図は、管理の対象をエンティティ(実体)として表し、エンティティ間のリレーションシップ(関連)を1対多などの対応関係とともに表す、データモデリングのための図である。


コメント

タイトルとURLをコピーしました