ITパスポート テクノロジ系:データベース 1 — Questions and Answers
Question 1: 関係データベースにおいて主キー(Primary Key)の特性として正しいものはどれか。
- テーブル内の各行を一意に識別し、NULL値を持てない列または列の組み合わせ (Correct answer)
- テーブル内で重複する値を持てるが、NULL値は許可される列
- 他のテーブルの主キーを参照する列
- データの検索を高速化するために使用する列
Correct answer: テーブル内の各行を一意に識別し、NULL値を持てない列または列の組み合わせ
主キーはテーブルの各行を一意に識別する制約を持ち、①一意性(重複不可)②NOT NULL(NULL値不可)の2つの特性を持つ。複合主キーも可能。
Question 2: SQL文「SELECT * FROM 社員 WHERE 部署='営業' ORDER BY 給与 DESC」の動作として正しいものはどれか。
- 社員テーブルから部署が営業の全列を取得し給与の高い順に並べる (Correct answer)
- 社員テーブルから営業部署の給与列のみを昇順で取得する
- 社員テーブル全体を給与の高い順に並べる
- 営業部署の社員を削除する
Correct answer: 社員テーブルから部署が営業の全列を取得し給与の高い順に並べる
SELECT *(全列)FROM 社員(テーブル)WHERE 部署='営業'(絞り込み)ORDER BY 給与 DESC(給与の降順=高い順)。全列・営業部署・給与降順が正しい解釈。
Question 3: トランザクションのACID特性のうち「原子性(Atomicity)」の説明として正しいものはどれか。
- トランザクションの処理はすべて成功するか全て失敗するか(中途半端な状態がない) (Correct answer)
- トランザクション実行後もデータベースの整合性が保たれる
- 同時に実行される複数のトランザクションは互いに干渉しない
- コミット後のデータは障害発生後も永続する
Correct answer: トランザクションの処理はすべて成功するか全て失敗するか(中途半端な状態がない)
原子性(Atomicity)はトランザクションを「不可分」な操作として扱い、完全に成功(全コミット)か完全に失敗(全ロールバック)のどちらかのみを保証する性質。
Question 4: 正規化の第2正規形(2NF)の条件として正しいものはどれか。
- 第1正規形を満たし、非キー属性がすべての主キーに完全関数従属している (Correct answer)
- すべての属性が単一の値を持つ
- 非キー属性が他の非キー属性に関数従属していない
- すべての属性が主キーのみに従属している
Correct answer: 第1正規形を満たし、非キー属性がすべての主キーに完全関数従属している
第2正規形(2NF)は①第1正規形(繰り返し項目の排除)を満たし②複合主キーを持つ場合に非キー属性が主キーの一部にのみ従属する「部分関数従属」を排除した状態。
Question 5: データベースのINDEX(インデックス)の目的として正しいものはどれか。
- 検索・並べ替えの対象列に作成することで検索速度を向上させる仕組み (Correct answer)
- データの整合性(一意性・参照整合性)を保証する制約
- テーブル間のデータを関連付ける仕組み
- データのバックアップを高速化する仕組み
Correct answer: 検索・並べ替えの対象列に作成することで検索速度を向上させる仕組み
インデックスはB木等のデータ構造で指定列の値を事前に整理し、WHERE句やORDER BYでの検索時にフルテーブルスキャンを回避して高速化する。INSERT/UPDATE時はオーバーヘッド増加。
Question 6: ビュー(VIEW)の説明として正しいものはどれか。
- 1つ以上のテーブルからSELECT文で定義された仮想的なテーブル (Correct answer)
- データを物理的に保存する実テーブルの別名
- テーブルのデータを別の場所にコピーしたテーブル
- テーブルの一部の列のみを保存するデータ構造
Correct answer: 1つ以上のテーブルからSELECT文で定義された仮想的なテーブル
ビューはSELECT文の定義を持つ仮想テーブルで、物理的にデータを持たない。複雑なクエリの再利用・セキュリティ(列の隠蔽)・論理的なデータ独立性に活用される。
関係データベースにおいて主キー(Primary Key)の特性として正しいものはどれか。