▲ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ┏┓ ┃┃  のんびりやろう!情報処理試験! 〜1問1問コツコツと〜  ┃┃ ┃┃ 2003.2.28 vol.1053 23,294 部発行 http://www.shunzei.com/ ┃┃ ┗┛ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼ ━PR━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ◆◆◆◆◆◆◆◆◆◆◆「合格ゼミ」 好評受付中! ◆◆◆◆◆◆◆◆◆◆◆ 早くも追加コースが出ている人気のオープンセミナー「合格ゼミ」 人気講師による直前対策が合格力を高めます。 詳細とお申込は http://www.itec.co.jp/seminar/ から ◆◆◆◆ 《IT技術者教育のパイオニア》 アイテックの通信講座 ◆◆◆◆ ---------------------------------------------------------------------- ○oo。○o◆◆ 花粉症の予防/アレルギー最新治療 ◆◆ 。o ○o○ 。。o○o。 。o 。 。 最強 抗ヒスタミン薬 。o。。○o。o○        http://211.10.20.135/a/a.cgi?k00730m01027 o。○o 。。天然の抗アレルギー薬で安心! 免疫力強化。。○o。○。 ○ 。○o◆ 花粉症 くしゃみ 鼻炎 かゆみ 他アレルギー治療◆。c○ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━PR━ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ■今日の問題■☆(等幅フォントで見てね!) ----------------------------------------------------------------------  “学生”表、“学部”表に対して、次の SQL 文を実行した結果得られる  データはどれか。    SELECT 氏名 FROM 学生, 学部      WHERE 所属=学部名 AND 所在地='新宿'   学生                学部  ┌────┬────┬────┐  ┌────┬────┐  │ 氏名 │ 所属 │ 住所 │  │学部名 │所在地 │  ┝━━━━┿━━━━┿━━━━┥  ┝━━━━┿━━━━┥  │合田知子│ 理  │ 新宿 │  │ 理  │ 新宿 │  │青木俊介│ 工  │ 渋谷 │  │ 工  │ 新宿 │  │川内聡 │ 人文 │ 渋谷 │  │ 人文 │ 渋谷 │  │坂口祐子│ 経済 │ 新宿 │  │ 経済 │ 渋谷 │  └────┴────┴────┘  └────┴────┘  ア 合田知子  イ 合田知子 青木俊介  ウ 合田知子 坂口祐子  エ 合田知子 青木俊介 坂口祐子 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ■解答■(出典:H13.春 基本情報 問67) ----------------------------------------------------------------------  イ 合田知子 青木俊介 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ■解説■ ----------------------------------------------------------------------  データベース特集に入っています。  今日は、SQL(Structured Query Language) の問題でした。易しめです。  SQL とは、データベースの定義や操作などを行うための言語の1つです。  OracleやAccessなどのリレーショナルデータベースでは  デファクトスタンダードとして用いられています。  早速、問題を見ていきましょう。 > SELECT 氏名 FROM 学生, 学部 >    WHERE 所属=学部名 AND 所在地='新宿'  この SQL の文章は、次のような構成になっています。   SELECT 〜 FROM 〜 WHERE 〜  このような構成の SQL 文を SELECT 文(問合せ)と呼ばれるもので、  「表のデータの検索を行うとき」に用います。  この SELECT 文の構成は、   SELECT (検索する列の名前)     FROM (検索対象表の名前)       WHERE (検索条件)  となります。この構文は、よく出るので覚えておきましょう。  まず、1行目の【SELECT 氏名 FROM 学生, 学部】は、  【学生表と学部表から氏名の列を取り出してね】という意味です。  2行目は WHERE 句なので、この部分は検索条件を指定しています。  【WHERE 所属=学部名 AND 所在地='新宿'】という検索条件ですね。  ここまでをまとめると  【WHERE 所属=学部名 AND 所在地='新宿'】という条件を満たす  【学生表と学部表から氏名の列を取り出してね】  という意味になります。  さて、検索条件の部分をもうすこし細かく見ていきましょう。 > 【WHERE 所属=学部名 AND 所在地='新宿'】  まず、前半部分は  【所属と学部名が同じもので学生表と学部表をくっつけてね】という意味に  なります。さらに後半部分は【所在地が新宿のもの】となります。  したがって、この SQL 文の意味は >  所在地が新宿のものを選んで、所属と学部名が同じもので >  学生表と学部表をくっつけて、氏名の列を取り出してね  という意味になります。  【所在地が新宿のもの】は、学部表から理学部と工学部ですね。  したがって、実行結果は下のようになり、「イ」が正解となります。   ┌────┐   │ 氏名 │   ┝━━━━┥   │合田知子│   │青木俊介│   └────┘ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ★これ、おしえてっ!(回答編)★ vol.1048(2003.2.21)の質問に対する回答 ----------------------------------------------------------------------  vol.1048 の質問はこちらでした。(出典:H11.秋 初級シスアド 問44) ----------------------------------------------------------------------  a〜fの項目からなる固定長レコードのファイルがある。  このレコードの主キーは、項目のaとbを組み合わせたものである。  このファイルをよく調べてみたら、項目のfは項目のbによっても  特定できることが分かった。  このレコードを正規化し、第3正規形にしたものはどれか。       ┌─────┬───┬───┬───┐     ┌─┴─┐   ↓   ↓   ↓   ↓   ┌─┴─┬─┴─┬───┬───┬───┬───┐   │ a │ b │ c │ d │ e │ f │   └───┴─┬─┴───┴───┴───┴───┘         │               ↑         └───────────────┘   ┌───┬───┐ ┌───┬───┬───┐ ┌───┐  ア│ a │ b │ │ c │ d │ e │ │ f │   └───┴───┘ └───┴───┴───┘ └───┘   ┌───┬───┬───┬───┬───┐ ┌───┬───┐  イ│ a │ b │ c │ d │ e │ │ b │ f │   └───┴───┴───┴───┴───┘ └───┴───┘   ┌───┬───┬───┐ ┌───┬───┬───┐  ウ│ a │ b │ f │ │ c │ d │ e │   └───┴───┴───┘ └───┴───┴───┘   ┌───┬───┬───┬───┐  エ│ a │ c │ d │ e │   └───┴───┴───┴───┘   ┌───┬───┬───┬───┐ ┌───┬───┐   │ b │ c │ d │ e │ │ b │ f │   └───┴───┴───┴───┘ └───┴───┘ ----------------------------------------------------------------------  それでは、みなさんの回答を紹介します。  ○シャイン☆結希@情報処理メールマガジン化さん > ネタが限られる分、結構ディープな話題を振っているんですよね(笑)。 > 情報処理には関係がない問題だけど、逆に言えばその分問題が易しめに > 作ってあるので(数学の試験ではないので)、数学関連の問題をさっさと > 潰して足きり回避を狙いたいところです。 > > # …とひそかに宣伝する〜。 > > ところでこの問題ですが、答えは当然イですよね。 > アとウは論外として(これでは主キーが完全分離で特定不可能)答えは > イかエですが、f以外は主キーがaとbの組み合わせなので、これは > 分離できず、勝手に分離しているエがオカシイということですね。 > > > それにしても、データベース試験のほうは第4正規とか第5正規とか > あるみたいで。 > ソフ開の本には載っていないのですが、そこまでは問われないのかな? > 基本情報には出てこなかったのですが。  どうもありがとうございました。「イ」が正解ですね。  ソフトウェアの場合、第3正規形までをしっかり理解しておきましょう。  シャインさんの数学メールマガジンはこちらから。  http://www.mag2.com/m/0000102952.htm  ○カスミソウさん > 答え イ です。 > > 正規化(アイテック刊 午後問題の重点対策より) > ●関数従属性 > あるデータ項目が決まれば、他のデータ項目も関数的に決定されることを > 表現します。 > 例えば、「社員番号が決まれば社員氏名が決まる。」 > 「商品番号が決まれば商品名が決まる」など。 > これらの関数従属性を >   社員番号 → 社員氏名、商品番号 → 商品名 と記述します。 > 一般に 多対1 の対応関係で 1対1 ではないことに注意。 > 関数従属性の左側の項目は、一つのデータ項目でなくてもかまわない。 > > >       ┌─────┬───┬───┬───┐ >     ┌─┴─┐   ↓   ↓   ↓   ↓ >   ┌─┴─┬─┴─┬───┬───┬───┬───┐ >   │ a │ b │ c │ d │ e │ f │ >   └───┴─┬─┴───┴───┴───┴───┘ >         │               ↑ >         └───────────────┘ > > 問題を関数従属性の表記方法で書くと > { a , b } → c > { a , b } → d > { a , b } → e > { a , b } → f > b → f > > { a , b } はこのレコードの主キーで、 > { a , b } の値が決まれば、その他のデータ項目(c,d,e,f)の値が決まり、 > レコードを一意に特定することができます。 > > b → f は主キーの一部である b が関数従属性の左側になっています。 > これを、非キー属性(主キーでも、主キーの一部でもないデータ項目)の > f が、主キーの一部である b に部分的関数従属しているといいます。 > 非キー属性が主キーの一部に部分的関数従属していると > b → f という関数従属性の左側のデータ項目が主キーでないわけですから、 > 冗長(同じデータが重複して現れること)になります。 > この冗長をなくすのが、第2正規化です。 > 第2正規化は非キー属性の主キーに対する部分的関数従属性の部分を > 分離することです。 > 問題では b → f に対応する( b , f )を分離します。元のレコードと > 分離したレコードは ( a , b , c , d , e ),( b , f ) です。 > こうすると関数従属性 b → f の左側の項目が、今度は主キーとなり、 > もう冗長性はないことになります。 > > ア…主キーの項目と主キーで決まるその他の項目が分離されているので× > イ…○ > ウ…(a,b)によって特定できるのは f だけになっているので× > エ…主キーは、項目のaとbを組み合わせたものであるが離れているので×  どうもありがとうございました。  a, b が主キーになりますね。主キーとは、その項目を選び出すと行が  一意に決まる列のことでした。  ○オケマツさん > 例えば, > > a:製品コード > b:会社コード > c:商品名 > d:価格 > e:ロット個数 > f:受注担当者 > > ・1つの会社ではコードで商品が決まる. > ・別の会社で同じコードを違う製品に使っている可能性がある. >  (製品コードと会社コードが両方そろって商品が特定できる) > > 問題から・・・ > ・同じ会社のものでも「製品ごとに発注連絡先(受注担当者)が変わる」と >  思っていたら,実は「発注連絡先は1つで良い」ということが判明した. > >       ┌─────┬───┬───┐ >     ┌─┴─┐   ↓   ↓   ↓ >   ┌─┴─┬─┴─┬───┬───┬───┬───┐ >   │製品 │会社 │商品名│価格 │ロット│連絡先│ >   └───┴─┬─┴───┴───┴───┴───┘ >         │               ↑ >         └───────────────┘ > > 第2正規形にする際に「会社→連絡先」を別テーブルにする必要がある. > >   ┌───┬───┬────┬───┬────┐ >  イ│a製品│b会社│c商品名│d価格│eロット│ >   └───┴───┴────┴───┴────┘ >   ┌───┬────┐ >   │b会社│f連絡先│ >   └───┴────┘ > > 稚内北星大学「データベースの論理設計」 > 第二正規形 http://www.wakhok.ac.jp/DB/section2.7.7.html > >  テーブルが、「第二正規形」であるとは、キー項目以外の項目が >  主キー全体に従属することであり、別の言い方をすれば、主キーが、 >  キー項目以外の項目にとって、強い意味で主キーであることである。 > > 第3正規系は更に「推移的関数従属」を独立させるものですが, > このテーブルには存在しないため,ここで終わり.(答え:イ) > > > ・推移的関数従属:主キー以外から決まる項目がある. >    ┌────┬───┐ >    │    ↓   ↓ >  ┌─┴──┬───┬──┬──┐ >  │社員番号│ 部 │氏名│部長│ >  └────┴─┬─┴──┴──┘ >         │     ↑ >         └─────┘ > > 第三正規形 http://www.wakhok.ac.jp/DB/section2.7.9.html > >  キー項目以外の項目が相互に依存関係を持たないようにすることを、 >  「第三正規化」という。 >  別の言い方をすれば、「第三正規形」とは、キー項目以外の全ての項目が、 >  主キーに間接的でなく、直接に従属している「第二正規形」である。  どうもありがとうございました。  属性名が入ると非常にわかりやすいですね。  来週あたり、「今日の問題」で正規化に関する問題を取り上げますね。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ★これ、おしえてっ!(質問編)★ 回答期限:3月3日(月)の夜まで ----------------------------------------------------------------------  「この問題がわからないっ!!」という、  読者からの質問をみなさんに回答してもらおう!というコーナーです。  今回の質問はこちらです。(出典:H13. ソフトウェア開発 問55) ----------------------------------------------------------------------  二つの独立したテストグループA,Bが、あるシステムについて  一定期間並行してテストを行い、それぞれ N(A) 個及び N(B) 個のエラー  を検出した。このうち、共通のエラーは N(AB) 個であった。  グループA,Bのエラーを検出する能力及び効率は等しいものと仮定する。  このシステムの総エラー数Nを予測する式はどれか。  ここで、N(A)>0,N(B)>0,N(AB)>0とする。  ア N=N(A)+N(B)−N(AB)  イ N=N(AB)×N(A)×N(B)  ウ N=(N(A)+N(B))/N(AB)  エ N=(N(A)×N(B))/N(AB) > 注)メールマガジンの都合上、下付き文字をカッコで表現しました。 ----------------------------------------------------------------------  asa さんより > ソフ開 H13 問55がなぜ正解が「エ」になるのかわかりません。 > ちなみに、私は「ア」じゃあないかと思いますが。。。  というコメント付きです。  これに対する回答(解説)を3月3日(月)の夜までにお願いします。  このコーナーで取り上げてほしい問題のリクエストも募集中です。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼選択肢で勉強しよっ!▼(答えはこのメールの一番下にあります) ---------------------------------------------------------------------- > 主キー(primary key) って? ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ > *********************** 投稿募集中のテーマ *********************** < ----------------------------------------------------------------------  ●「これ、おしえてっ!」で扱ってほしい問題のリクエストやその回答  ●「選択肢で勉強しよっ!」で扱ってほしい用語のリクエスト  ●「その他、試験などに関するお便り(テーマフリー)」  ハンドル名を添えて mail@shunzei.com まで送ってください!! ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  のんびりやろう!情報処理試験! 〜1問1問コツコツと〜(週5日発行) ----------------------------------------------------------------------  編集・発行:しゅんぜい mail@shunzei.com      ─ 発行部数 ─    発送:melma!   http://www.melma.com/     5,738 部       :まぐまぐ  http://www.mag2.com/     13,103 部       :めろんぱん http://www.melonpan.net/   4,453 部                           ───────  登録・解除:http://www.shunzei.com/mm/        23,294 部(total)  ○本の購入:http://books.rakuten.co.jp/itexam/  ○バックナンバー  ダウンロード: http://www.shunzei.com/mm/backnumber.html  立ち読み  : http://www.melma.com/mag/89/m00000189/index_bn.html  転載について: http://www.shunzei.com/about/disclaimer.html  広告掲載に関しては mail@shunzei.com まで、直接お願いします。 ----------------------------------------------------------------------  ○メールマガジンの購読の登録・解除は個人の責任で行ってください。   しゅんぜいは一切代行しません! ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼選択肢で勉強しよっ!の答え▼ ----------------------------------------------------------------------  (基本情報平成13年秋問67ウ)の選択肢より > 一つの表の中では、主キーの値が同じ行は存在しない。  (ソフトウェア平成13年問71エ)の選択肢より > 主キーは、一つの表内に一つだけであり、一意性を保証するために NULL 値 > は認められない。  主キー(primary key) とは、関係データベースなどでその項目を選び出すと  その行(横全部)が一意に決まる列を言います。  主キーは、特定の行を取り出したい場合に有効です。  1つの行を取り出すときに、すべての項目を確認しながら  データが一致するものを探していたら、ものすごい手間がかかりますよね?  主キーを設定することによって、この手間が省けます。1項目だけを見れば  特定の行を取り出せるようにしたのが「主キー」というものです。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ==PR================================================================== ▼24時間いつでもどこでも本が買える!【インターネット上の本屋さん】▼  のんびりやろう!〜楽天ブックス http://books.rakuten.co.jp/itexam/ ======================================================================