メインコンテンツへスキップ
見出し画像

応用情報|データベース・SQL 実戦問題集50問【科目A対策】

    データベース・SQLの知識を、条件を読んで正解を選ぶ力へつなげる科目A向け問題集です。全50問・4択・各問に正解と解説付き。前半は基本、後半は複数条件の判断を練習します。

    単品500円の買い切り。最初の5問と解説は無料、問6〜50・スコア診断・復習方法は有料部分です。まず無料5問で説明との相性を確認してください。学習用のオリジナル問題です。


    この記事で学べること

    問題は、次の4段階で構成しています。

    画像

    特に、次の判断を自分でできるようになることを目指します。

    • どの列を主キー・外部キーにすればよいか

    • 関数従属から、正規化に必要な分解を判断できるか

    • SQLが抽出・結合・集計する対象を追えるか

    • WHEREとHAVINGを使い分けられるか

    • インデックスの効果と更新時の負担を説明できるか

    • 同時実行や障害発生時に、何が起きるかを判断できるか


    おすすめの使い方

    ① 問題を読む → ② 解答を決める → ③ 正解を確認する → ④ 解説を読む → ⑤ 間違えた理由を残す

    この順番で進めてください。

    各問の直後に正解と解説があります。解くときは、正解が見える位置までスクロールせず、紙やメモに「問1:イ」のように記録すると取り組みやすくなります。

    正解していても、勘で選んだ問題には印を付けましょう。復習では、**正答数よりも「理由を説明できるか」**を重視します。

    初回は時間を測らずに考え、2周目は50問を60〜75分で解くことを目安にしてください。これは本記事の演習用の目安です。

    問題共通の前提

    SQLは、一般的な関係データベースで用いられる基本的な構文を扱います。

    • 特に断りがなければ、表に示した行だけが存在します。

    • NULLは、値が不明・未設定であることを表します。

    • SELECTは、DISTINCTを指定しない限り重複を取り除きません。

    • ORDER BYがない場合、結果の行の順序は問いません。

    • 正規化の問題では、明示された関数従属と、そこから導ける関数従属だけを考えます。

    • トランザクションや障害回復の問題では、各問に示した方式・条件に従って判断します。


    LEVEL 1|基礎確認

    問1|主キー

    社員表の各行を一意に識別するため、社員番号を主キーに設定する。主キーの制約として適切なものはどれか。

    ア.重複は許されるが、NULLは許されない
    イ.重複もNULLも許されない
    ウ.重複は許されないが、NULLは許される
    エ.重複もNULLも許される

    正解:イ

    解説

    主キーは、各行を一意に識別するための列、または列の組合せです。そのため、重複もNULLも許されません。

    社員名は同姓同名があり得るため、通常は一意な社員番号などを使います。複数列を組み合わせた主キーでは、その組合せ全体が一意である必要があります。


    問2|外部キー

    部署表の部署IDが主キーであり、社員表の部署IDには、部署表を参照する外部キー制約が設定されている。社員表の部署IDはNULLを許さない。

    制約を満たす操作はどれか。

    ア.部署表に存在しない部署IDを、社員表に登録する
    イ.部署IDにNULLを設定して、社員を登録する
    ウ.部署表に存在する同じ部署IDを、複数の社員に設定する
    エ.社員から参照されている部署を、参照への対処をせず削除する

    正解:ウ

    解説

    同じ部署に複数の社員が所属できるため、社員表の部署IDは重複して構いません。

    外部キーは、参照先との整合性を保つ制約です。参照先にない値の登録はできません。また、ここではNULLを許さず、参照中の部署の削除についても、連鎖削除などの対処を前提としていないため認められません。


    問3|WHEREによる抽出

    商品表は次のとおりである。

    画像

    次のSQLが返す商品IDはどれか。

    SELECT 商品ID
    FROM 商品
    WHERE 価格 >= 1000 AND 価格 < 1500;

    ア.P2、P3
    イ.P1、P2、P3
    ウ.P3、P4
    エ.P2、P3、P4

    正解:ア

    解説

    条件は「1,000以上」と「1,500未満」の両方を満たすことです。1,000は含み、1,500は含まないため、P2とP3が該当します。

    SQLの条件問題では、まず境界の値を確認しましょう。>=と>、<=と<の違いが正答を分けます。


    問4|NULLの判定

    社員表から、電話番号が未設定である社員を抽出したい。電話番号の未設定はNULLで表される。

    WHERE句に指定する条件として適切なものはどれか。

    ア.電話番号 = NULL
    イ.電話番号 <> NULL
    ウ.電話番号 = ''
    エ.電話番号 IS NULL

    正解:エ

    解説

    NULLの判定にはIS NULLを使います。

    NULLを=や<>で比較しても、条件は真になりません。また、空文字列''とNULLは、一般的なSQLでは異なるものです。未設定でない行を抽出する場合は、IS NOT NULLを使います。


    問5|ACID特性

    口座Aから口座Bへ送金する処理を、次の二つの更新で構成する。

    1. 口座Aの残高を減らす。

    2. 口座Bの残高を増やす。

    途中で異常が起きた場合に、一方の更新だけを残さず、両方とも取り消す性質はどれか。

    ア.一貫性
    イ.独立性
    ウ.原子性
    エ.耐久性

    正解:ウ

    解説

    原子性は、トランザクションの処理が全部実行されるか、全部実行されないかを保証する性質です。

    送金で片方の更新だけが残ると、残高の合計が変わってしまいます。二つの更新を一つのトランザクションにまとめることで、途中の失敗時には両方を取り消せます。

    一貫性は整合した状態を保つこと、独立性は同時実行による干渉を制御すること、耐久性は確定した結果を障害後も保持することに関係します。

    無料5問の次は、表と条件から答えを判断する45問へ

    無料5問の続きは問6〜50の45問・正解と解説・スコア診断・復習方法です。この分野だけなら単品500円、複数分野なら同じ記事を含む全8分野400問セット(買い切り2,980円)の収録内容と比較できます。

    購入済み・月額プラン加入中の方へ

    本記事または収録セットを購入済みの方は、同じ記事を買い直す必要はありません。単品購入済みの記事はセットと重複するため、未購入分の価格と比べてください。月額プラン利用中の方も対象教材・閲覧可否を先に確認し、対象の記事は追加購入不要です。

    復習先:SQL集計は問15→16、正規化は問12→13→14へ。答えと理由を記録し、翌日に誤答と迷った問題を解き直してください。


    あなたへのおすすめ