DBデータベーススペシャリスト試験 午前Ⅱ
平成29年度春期 データベーススペシャリスト 午前Ⅱ 問9
問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。
問題
選択肢
- アφ(空)
- イfalse(偽)
- ウtrue(真)
- エunknown(不定)
解き方のヒントを見る
SQL抽出条件を読み解く一つの視点
SQLの抽出条件と結果の対応を考えるときは、条件がどの対象や値の組み合わせにかかるのかを整理し、処理の順序や比較対象を混同しないように確認します。まず条件の役割に意識を向け、結果の見た目から早合点しないことが大切です。
この問題で問われていること
一つの条件式だけに注目し、列・行・値のどの関係を判定しようとしているかを、周辺の条件や表示順とは切り分けて捉えてください。特に、条件が示す対象の範囲を意識して読み進めましょう。
視点
抽出条件を読む際は、条件に登場する要素の役割と、判定の対象になるデータの単位を整理します。複数の条件や別名がある場合も、まず着目する関係を一つに限定すると、結果との対応を落ち着いて検討できます。
確認ポイント
- 条件が参照する列や値の役割を区別できているか
- 判定の対象となる行や組み合わせを取り違えていないか
- 条件以外の表示順や出力項目を判断材料に混ぜていないか
正解と解説を見る
正解
エ
解説
Aに5、Bに4、CにNULLを代入すると、NULLを含む比較はtrueまたはfalseと断定できません。一方、B>Aは成立しないためfalseです。三値論理のORでこれらを組み合わせると、式全体はunknownになります。したがって正答はエです。
理由
A>CとC=AはいずれもCがNULLを含む比較なので、trueやfalseではなくunknownになります。B>Aは、4>5ではないためfalseです。SQLでは、このような結果を三値論理の規則に従ってORで評価します。
比較
ORでは、少なくとも一方がtrueなら全体はtrueになりますが、trueがなくfalseとunknownが組み合わされる場合はunknownになります。本問では、falseだけでなくunknownが残るため、空集合や単純なfalseとは評価されません。
選択肢ア
これは不正解だよ。φ(空)は、問い合わせ結果が空集合になる場合などに用いる表現であり、論理式の評価結果ではありません。本問は三つの比較をORで結合した結果を問うため、NULLを含む比較のunknownという扱いを考える必要があります。
選択肢イ
これは不正解だよ。falseになる比較が一つ含まれていても、OR全体が直ちにfalseになるわけではありません。Cを含む二つの比較はNULLのためunknownとなり、falseとunknownをORで評価した結果はfalseではありません。
選択肢ウ
これは不正解だよ。trueとするには、ORで結ばれた比較のいずれかがtrueである必要があります。しかしB>Aは4>5なので成立せず、NULLを含む比較もtrueとは断定できません。したがって式全体をtrueとは評価できません。
選択肢エ(正解)
これは正解だよ。A>CとC=AはCがNULLなのでunknownとなり、B>Aは4>5ではないためfalseです。SQLの三値論理では、unknownとfalseをORで組み合わせるとunknownが残ります。そのため式全体の評価結果はunknownです。
学習のポイント
NULLを含む比較と、unknownを含むOR演算の評価規則を理解することが重要です。
出典:独立行政法人 情報処理推進機構(IPA)平成29年度春期 データベーススペシャリスト試験 午前Ⅱ 問9(公式資料:問題冊子(PDF) / 解答例)
関連する過去問一覧
IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針