- 締切済み
基本情報技術者 午後 質問 問題 解説
試験直前で申し訳ないのですが、よろしくお願いいたします。 平成24年春 問3 説問4 なぜ正解がウなのか?他が駄目な理由が分からない。 平成24年春 問8 説問3 プログラム2,3の処理量とworkの意味。 平成23年秋 問5 設問1 図3の右下 空欄d-0‥の関係式が理解不明。 ※どうしならば1対1の関係になるのではないか? 設問2 解説で図2を参考にしているが、どのように比べているのか?
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- jjon-com
- ベストアンサー率61% (1599/2592)
「午後の問題」は解説が長くなる傾向がありますし,各質問がまったく別分野のネタになるので,個別の質問として投稿していただきたいです。 -------- ●平成24年春 問3 説問4 なぜ正解がウなのか?他が駄目な理由が分からない。 WHERE条件のない次のSQL文「SELECT * FROM 料理表 F, 明細表 D」を実行すると結果はどうなるか? 料理表が全2行,明細表が全2行なので,そのすべての組み合わせパターン 2×2=4行 の次の結果が得られる。これを直積と呼ぶ。 |F.料理コード|F.料理名|F.単価|D.精算コード|D.料理コード|D.皿数| +――――――+――――+―――+――――――+――――――+―――+ |0001 |ごはん |100|03100186 |0001 | 1| |0001 |ごはん |100|03100186 |0002 | 1| |0002 |肉じゃが|280|03100186 |0001 | 1| |0002 |肉じゃが|280|03100186 |0002 | 1| WHERE条件とは,この直積の中から指定条件に合致した行を抽出する行為。 この設問のニーズに応えるためには,明細表.料理コード と 料理表.料理コード を結合する必要がある(結合とは,値が一致するもの同士という関係で対応づける行為)。 上記の直積で説明すると, 直積の1行目「料理コード=0001の料理名は'ごはん'で,料理コード=0001は1皿」 直積の4行目「料理コード=0002の料理名は'肉じゃが'で,料理コード=0002は1皿」 だけを抽出して,直積の2行目と3行目は捨てるということ。その条件式が今回の「料理表.料理コード=明細表.料理コード」である。 WHERE 料理表.料理コード IN (SELECT 明細表.料理コード FROM 明細表 WHERE 明細表.皿数 IS NOT NULL) は,内側のSELECT文で 皿数が空値でない料理コードをすべてリストアップしてそのすべてを料理表.料理コードに対応づけているため,上図の直積の1~4行目のすべてがこの条件を満たす。つまり両表を「料理コードが同じ値か?」で結合していない。よってイとエは不正解。 count(明細表.皿数) は皿数がどんな値かは問わずただ皿数が記録された行数を数えるだけなので,アとイは不正解。 -------- ●平成24年春 問8 説問3 プログラム2,3の処理量とworkの意味。 http://okwave.jp/qa/q7739752.html の私の回答ANo.2 [プログラム2]は,1ビット毎の比較を8回ループしているので,Work内のビット列がどんなパターンであっても8回ループしなければならないが, [プログラム3]は,Work内の8ビットすべてを対象に「Work内のどの位置でもかまわないから1のビットが一つでも残っているか?」を判断しているので,ループ回数を少なくできる。 Workに適当なビット列を与えて,α行の「Work ← Work & (Work - 1)」のビット演算の結果がどうなるか紙に書いて確認してみよ。Work内に存在するビット1のうち,もっとも右にあるものが1つ消えることが確認できるだろう。 ------- ●平成23年秋 問5 設問1 図3の右下 空欄d-0‥の関係式が理解不明。 ※どうしならば1対1の関係になるのではないか? 【b カ 単独商品】2..*――◇0..*【c オ セット商品】 左に登場する 2..* は日本語で次の意味になる。 「1つのセット商品は,2つ以上の単独商品で構成される」 (セット商品を構成する単独商品が0個の場合はないし,1個の場合もない) 右に登場する 0..* は日本語で次の意味になる。 「1つの単独商品は,0個以上のセット商品に含まれる」 (ある単独商品が,どのセット商品にもまったく含まれない場合もある) (ある単独商品が,セット商品Aからもセット商品Bからもセット商品Cからも,複数のセット商品に含まれる場合もある) ------- ●設問2 解説で図2を参考にしているが、どのように比べているのか? 【e】は,図1に受注番号があり,図2の受注オブジェクトに番号があるので。 【f】【g】は,設問2問題文に「受注の合計は『受注明細ごとの金額を求めてから』算出することにした」とあるので。