<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>正規化 | 基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</title>
	<atom:link href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/tag/%E6%AD%A3%E8%A6%8F%E5%8C%96/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.seplus.jp/dokushuzemi/ec/fe/fenavi</link>
	<description>基本情報技術者試験を学習する人のためにつくられた専門メディア。250本以上の記事を掲載し、勉強方法や各分野のポイント、過去問解説など、試験に役立つ情報を発信。試験対策書籍を執筆する著者が、はじめて学ぶ人でもわかりやすく解説します。（2023年度からの新制度に対応済み）</description>
	<lastBuildDate>Tue, 24 Feb 2026 00:20:20 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.9.28</generator>
	<item>
		<title>基本情報でわかる正規化「関係データベースの正規化は、従属性の矢印を引けばわかる」</title>
		<link>https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/mastering_tech/normalization/</link>
		<pubDate>Wed, 16 Sep 2020 11:09:17 +0000</pubDate>
		<dc:creator><![CDATA[矢沢 久雄]]></dc:creator>
				<category><![CDATA[データベース]]></category>
		<category><![CDATA[午前問題と午後問題の違い]]></category>
		<category><![CDATA[正規化]]></category>

		<guid isPermaLink="false">https://www.seplus.jp/dokushuzemi/fe/fenavi/?post_type=mastering_tech&#038;p=4623</guid>
		<description><![CDATA[<p>この連載では、基本情報技術者試験によく出題されるテクノロジー関連の用語を、午前問題と午後問題のセットを使って解説します。午前問題で用語の意味や概念を知り、午後問題で技術の活用方法を知ってください。それによって、単なる丸暗 [&#8230;]</p>
<p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/mastering_tech/normalization/">基本情報でわかる正規化「関係データベースの正規化は、従属性の矢印を引けばわかる」</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>この連載では、基本情報技術者試験によく出題されるテクノロジー関連の用語を、午前問題と午後問題のセットを使って解説します。午前問題で用語の意味や概念を知り、午後問題で技術の活用方法を知ってください。それによって、単なる丸暗記では得られない明確さで、用語を理解できるようになります。今回のテーマは、関係データベースの正規化です。</p>
<style>.border{border:.2em solid #2196f3;padding:.25em 2em;margin:auto .5em}td{text-align:center;border:1px solid rgba(0,0,0,.12)}.key{border-bottom:.1em solid #000}.width_50{width:50%}.width_50 td{width:calc(50% / 2)}.width_75{width:75%}.width_75 td{width:calc(75% / 3)}.width_100 td{width:calc(100% / 4)}.width_125 td{width:calc(100% / 5)}.table-container{position:relative}.arrow{position:absolute;border-left:.2em #2196f3 solid;border-top:.2em #2196f3 solid;border-right:.2em #2196f3 solid}.arrow.no_after::after{content:none}.arrow::after{content:"";position:absolute;bottom:0;right:-1.075em;border-top:1em solid #2196f3;border-left:1em solid transparent;border-right:1em solid transparent}.arrow.bottom{border-top:unset;border-left:.2em #f44336 solid;border-bottom:.2em #f44336 solid;border-right:.2em #f44336 solid}.arrow.bottom::after{bottom:unset;top:0;border-top:unset;border-bottom:1em solid #f44336;border-left:1em solid transparent;border-right:1em solid transparent}.background>dt{font-weight:700}dl.inline dd{margin-left:2em}@media screen and (max-width:600px){dd{margin-left:1em}}</style>
<h2>関係データベースの正規化とは？</h2>
<p>はじめに、関係データベースの正規化とは何かを説明しましょう。教科書通りに堅苦しく説明すると、以下のようになります。</p>
<div class="card-panel mag_h30 blue-grey-text">
関係データベースの表を、無駄や矛盾が生じない構造にすることを「正規化」と呼ぶ。正規化のレベルには、「非正規形」、「第 1 正規形」、「第 2 正規形」、「第 3 正規形」という分類がある。項目に繰り返しがある表は、非正規形である。「繰り返し」を排除した表は、第 1 正規形である。第 1 正規形の条件を満たし、さらに「部分従属性」を排除した表は、第 2 正規形である。第 2 正規形の条件を満たし、さらに「推移従属性」を排除した表は、第 3 正規形である
</div>
<p>この説明では、「覚えることが多すぎてよくわからない！」と感じるでしょう。よい方法があります。</p>
<p>なんやかんや言っても、<span class="u">第 3 正規形が無駄や矛盾を排除した完成形</span>なのですから、まず <span class="bold">第 3 正規形</span> とは何かをしっかり理解すればよいのです。</p>
<p>そうすれば、「非正規形」「第 1 正規形」「第 2 正規形」や、「繰り返し」「部分従属性」「推移従属性」もすんなり理解できます。</p>
<p>&nbsp;</p>
<p>第 3 正規形とは何かを説明しましょう。</p>
<p>関係データベースでは、<span class="u">表に必ず主キー（他のレコードと重複しないユニークな項目）がなければなりません。</span>主キーがないとレコードを区別できないからです。</p>
<p>そして、これが大事なのですが、表には、主キーに従属する項目だけがあるようにします。主キーに従属するとは、主キーによって特定できる、という意味です。</p>
<p>この「主キーに従属する項目だけがある」という表が、無駄や矛盾が生じない第 3 正規形なのです。</p>
<p>&nbsp;</p>
<p>以下に、第 3 正規形の表の例を示します。これは、従業員の情報を格納した従業員表です。「主キーに従属する項目だけがある」ことを、主キーから他の項目に矢印を引いて確認してみましょう。</p>
<p>下線を付けた「従業員番号」が主キーです。</p>
<div class="table-container">
<table class="mag_tp40 width_100">
<caption class="center grey-text" style="caption-side:bottom;">図　これが第 3 正規形の表だ！</caption>
<tr>
<td><span class="key">従業員番号</span></td>
<td>従業員氏名</td>
<td>性別</td>
<td>生年月日</td>
</tr>
</table>
<p><span class="arrow" style="top:1em;left:12.5%;padding:1em 12.5%;"></span><span class="arrow" style="top:1em;left:12.5%;padding:1em 25%;"></span><span class="arrow" style="top:1em;left:12.5%;padding:1em 37.5%;"></span>
</div>
<p>「従業員番号」によって→「従業員氏名」が特定できます。<br />
「従業員番号」によって→「性別」が特定できます。<br />
「従業員番号」によって→「生年月日」が特定できます。</p>
<p>主キーから他のすべての項目に従属性の矢印が引けました。これが、第 3 正規形です。</p>
<p>もしも、よけいな矢印が引けたり、矢印を引けない項目があったりしたら、第 3 正規形ではありません。</p>
<h2>関係データベースの正規化に関する午前問題</h2>
<p>それでは、関係データベースの正規化に関する午前問題を見てみましょう。</p>
<p>以下は、正規化されていない従業員表（先ほど示した例とは、表の項目に違いがあります）を、第 3 正規形にしたものを選ぶ問題です。難しく考える必要はありません。主キーから他のすべての項目に従属性の矢印が引ければ、第 3 正規形です。</p>
<div class="background c-round small-text hide-on-med-and-up mag_h10"><i class="material-icons light-blue-text mag_rt05">info</i>表は横スクロールすると全データをご覧になれます</div>
<div class="card-panel mag_h30">
問 32　平成 21 年度 春期 午前</p>
<p>&#8220;従業員&#8221; 表を第3正規形にしたものはどれか。ここで、下線部は主キーを表す。</p>
<p>従業員 (従業員番号, 従業員氏名, {技能コード, 技能名, 技能経験年数})</p>
<p style="text-align: right;"><span class="grey-text">( { } は繰返しを表す)</span></p>
<p>ア</p>
<table class="mag_h10 width_50">
<tbody>
<tr>
<td><span class="key">従業員番号</span></td>
<td>従業員氏名</td>
</tr>
</tbody>
</table>
<table class="mag_h10 width_75">
<tbody>
<tr>
<td><span class="key">技能コード</span></td>
<td>技能名</td>
<td>技能経験年数</td>
</tr>
</tbody>
</table>
<p>イ</p>
<table class="mag_h10 width_100">
<tbody>
<tr>
<td><span class="key">従業員番号</span></td>
<td>従業員氏名</td>
<td><span class="key">技能コード</span></td>
<td>技能経験年数</td>
</tr>
</tbody>
</table>
<table class="mag_h10 width_50">
<tbody>
<tr>
<td><span class="key">技能コード</span></td>
<td>技能名</td>
</tr>
</tbody>
</table>
<p>ウ</p>
<table class="mag_h10 width_75">
<tbody>
<tr>
<td><span class="key">従業員番号</span></td>
<td><span class="key">技能コード</span></td>
<td>技能経験年数</td>
</tr>
</tbody>
</table>
<table class="mag_h10 width_50">
<tbody>
<tr>
<td><span class="key">従業員番号</span></td>
<td>従業員氏名</td>
</tr>
</tbody>
</table>
<table class="mag_h10 width_50">
<tbody>
<tr>
<td><span class="key">技能コード</span></td>
<td>技能名</td>
</tr>
</tbody>
</table>
<p>エ</p>
<table class="mag_h10 width_50">
<tbody>
<tr>
<td><span class="key">従業員番号</span></td>
<td><span class="key">技能コード</span></td>
</tr>
</tbody>
</table>
<table class="mag_h10 width_75">
<tbody>
<tr>
<td><span class="key">従業員番号</span></td>
<td>従業員氏名</td>
<td>技能経験年数</td>
</tr>
</tbody>
</table>
<table class="mag_h10 width_50">
<tbody>
<tr>
<td><span class="key">技能コード</span></td>
<td>技能名</td>
</tr>
</tbody>
</table>
</div>
<p>選択肢アは、以下のようになります。</p>
<div class="table-container pad_tp30">
<table class="mag_h10 width_50">
<tbody>
<tr>
<td><span class="key">従業員番号</span></td>
<td>従業員氏名</td>
</tr>
</tbody>
</table>
<p><span class="arrow" style="top:.5em;left:12.5%;padding:1em 12.5%;"></span>
</div>
<div class="table-container pad_tp30">
<table class="mag_h10 width_75">
<tbody>
<tr>
<td><span class="key">技能コード</span></td>
<td>技能名</td>
<td>技能経験年数</td>
</tr>
</tbody>
</table>
<p><span class="arrow" style="top:.5em;left:12.5%;padding:1em 12.5%;"></span>
</div>
<p>上の表は、第 3 正規形です。下の表は、「技能コード」から「技能経験年数」に従属性の矢印を引けないので、第 3 正規形ではありません。</p>
<p>&nbsp;</p>
<p>選択肢イは、以下のようになります。</p>
<div class="table-container pad_h40">
<table class="mag_h10 width_100">
<tbody>
<tr>
<td><span class="key">従業員番号</span></td>
<td>従業員氏名</td>
<td><span class="key">技能コード</span></td>
<td>技能経験年数</td>
</tr>
</tbody>
</table>
<p><span class="arrow no_after" style="top:1em;left:12.5%;padding:1em 25%;"></span><span class="arrow" style="top:1em;left:12.5%;padding:1em 37.5%;"></span><span class="arrow bottom" style="bottom: 1.5em;left:12.5%;padding:1em 12.5%;"></span>
</div>
<div class="table-container pad_tp30">
<table class="mag_h10 width_50">
<tbody>
<tr>
<td><span class="key">技能コード</span></td>
<td>技能名</td>
</tr>
</tbody>
</table>
<p><span class="arrow" style="top:.5em;left:12.5%;padding:1em 12.5%;"></span>
</div>
<p>上の表は、「従業員番号」と「技能コード」に下線が付いているので、これら 2 つの項目が主キーです。このように複数の項目をセットにした主キーを <span class="bold">複合キー</span> と呼びます。</p>
<p>この場合には、<span class="u">複合キー（主キー）から他のすべての項目に従属性の矢印が引ければ、第 3 正規形です。</span>複合キーの一部分だけに従属しているのでは、主キーに従属していることにならないのでダメです。</p>
<p>上の表は、「従業員氏名」が「従業員番号」「技能コード」という複合キーの「従業員番号」だけで特定できるので（赤色の矢印で示しています）、第 3 正規形ではありません。下の表は、第 3 正規形です。</p>
<p>&nbsp;</p>
<p>選択肢ウは、以下のようになります。</p>
<div class="table-container pad_tp30">
<table class="mag_h10 width_75">
<tbody>
<tr>
<td><span class="key">従業員番号</span></td>
<td><span class="key">技能コード</span></td>
<td>技能経験年数</td>
</tr>
</tbody>
</table>
<p><span class="arrow no_after" style="top:.5em;left:12.5%;padding:1em 12.5%;"></span><span class="arrow" style="top:.5em;left:12.5%;padding:1em 25%;"></span>
</div>
<div class="table-container pad_tp30">
<table class="mag_h10 width_50">
<tbody>
<tr>
<td><span class="key">従業員番号</span></td>
<td>従業員氏名</td>
</tr>
</tbody>
</table>
<p><span class="arrow" style="top:.5em;left:12.5%;padding:1em 12.5%;"></span>
</div>
<div class="table-container pad_tp30">
<table class="mag_h10 width_50">
<tbody>
<tr>
<td><span class="key">技能コード</span></td>
<td>技能名</td>
</tr>
</tbody>
</table>
<p><span class="arrow" style="top:.5em;left:12.5%;padding:1em 12.5%;"></span>
</div>
<p>どの表も第 3 正規形になっているので、選択肢ウが正解です。</p>
<p>&nbsp;</p>
<p>念のため、選択肢エも見ておきましょう。以下のようになります。</p>
<div class="table-container pad_tp30">
<table class="mag_h10 width_50">
<tbody>
<tr>
<td><span class="key">従業員番号</span></td>
<td><span class="key">技能コード</span></td>
</tr>
</tbody>
</table>
<p><span class="arrow no_after" style="top:.5em;left:12.5%;padding:1em 12.5%;"></span>
</div>
<div class="table-container pad_tp30">
<table class="mag_h10 width_75">
<tbody>
<tr>
<td><span class="key">従業員番号</span></td>
<td>従業員氏名</td>
<td>技能経験年数</td>
</tr>
</tbody>
</table>
<p><span class="arrow" style="top:.5em;left:12.5%;padding:1em 12.5%;"></span>
</div>
<div class="table-container pad_tp30">
<table class="mag_h10 width_50">
<tbody>
<tr>
<td><span class="key">技能コード</span></td>
<td>技能名</td>
</tr>
</tbody>
</table>
<p><span class="arrow" style="top:.5em;left:12.5%;padding:1em 12.5%;"></span>
</div>
<p>上の表は、<span class="u">主キーだけですが、これも第 3 正規形です。</span></p>
<p>真ん中の表は、「従業員番号」から「技能経験年数」に従属性の矢印を引けないので、第 3 正規形ではありません。下の表は、第 3 正規形です。</p>
<p>&nbsp;</p>
<p>いかがでしょう？ <span class="bold">第 3 正規形かどうかは、従属性の矢印を引けばわかる</span> ということをご理解いただけましたね！</p>
<p><span class="chip mag_rt10">解答</span>ウ</p>
<h2>関係データベースの正規化に関する午後問題</h2>
<p>「第 3 正規形」とは何かを理解できたら、残りの「非正規形」「第 1 正規形」「第 2 正規形」「繰り返し」「部分従属性」「推移従属性」も一気に片付けちゃいまいしょう。</p>
<p>「繰り返し」「部分従属性」「推移従属性」は、これがあってはダメですよ、というものです。</p>
<dl class="background c-round mag_h30">
<dt>繰り返しとは</dt>
<dd>表に、同じ項目が複数あることです</dd>
<dt>部分従属性とは</dt>
<dd>表に、複合キーの一部に従属した項目があることです（先ほどの午前問題にもありました）</dd>
<dt>推移従属性とは</dt>
<dd>表に、主キーではない項目に従属した項目があることです</dd>
</dl>
<p>以下に、それぞれの例を示します。これがあってはダメですよ、を赤色の文字や矢印で示しています。</p>
<p><span class="grey-text mag_tp30">繰り返しの例</span></p>
<div class="table-container pad_h40">
<table class="mag_h10 width_125">
<tbody>
<tr>
<td><span class="key">従業員<br class="hide-on-med-and-up">番号</span></td>
<td>従業員<br class="hide-on-med-and-up">氏名</td>
<td>技能名</td>
<td>技能名</td>
<td>技能名</td>
</tr>
</tbody>
</table>
<p><span class="arrow" style="top:1em;left:10%;padding:1em 10%;"></span><span class="red white-text" style="position: absolute; bottom: 1.5em;left:50%;padding:.5em 1em;">繰り返しがある</span>
</div>
<p><span class="grey-text">部分従属性の例</span></p>
<div class="table-container pad_tp40" style="padding-bottom: 5em">
<table class="mag_h10 width_100">
<tbody>
<tr>
<td><span class="key">従業員番号</span></td>
<td><span class="key">技能コード</span></td>
<td>従業員氏名</td>
<td>技能経験年数</td>
</tr>
</tbody>
</table>
<p><span class="arrow no_after" style="top:1em;left:12.5%;padding:1em 12.5%;"></span><span class="arrow" style="top:1em;left:12.5%;padding:1em 37.5%;"></span><span class="arrow bottom" style="bottom: 3.9em;left:12.5%;padding:1em 25%;"></span><span class="red white-text" style="position: absolute; bottom: .5em;left:17.5%;padding:.5em 1em;">複合キーの一部に従属した項目がある</span>
</div>
<p><span class="grey-text">推移従属性の例</span></p>
<div class="table-container pad_tp40" style="padding-bottom: 5em">
<table class="mag_h10 width_100">
<tbody>
<tr>
<td><span class="key">従業員番号</span></td>
<td>従業員氏名</td>
<td>部署番号</td>
<td>部署名</td>
</tr>
</tbody>
</table>
<p><span class="arrow" style="top:1em;left:12.5%;padding:1em 12.5%;"></span><span class="arrow" style="top:1em;left:12.5%;padding:1em 25%;"></span><span class="arrow" style="top:1em;left:12.5%;padding:1em 37.5%;"></span></span><span class="arrow bottom" style="bottom: 3.9em;left:62.5%;padding:1em 12.5%;"></span><span class="red white-text" style="position: absolute; bottom: .5em;left:53%;padding:.5em 1em;">主キーではない項目に従属した項目がある</span>
</div>
<p>「繰り返し」「部分従属性」「推移従属性」の有無によって、「非正規形」「第 1 正規形」「第 2 正規形」および「第 3 正規形」が、以下のように定義されています。</p>
<p>これは、この記事の冒頭で示した教科書通りの堅苦しい説明と同じですが、今なら、すんなり理解できるでしょう。</p>
<dl class="background c-round mag_h30">
<dt>非正規形</dt>
<dd>繰り返しがある表</dd>
<dt>第 1 正規形</dt>
<dd>繰り返しを排除した表</dd>
<dt>第 2 正規形</dt>
<dd>第 1 正規形の条件を満たし、さらに部分従属性を排除した表</dd>
<dt>第 3 正規形</dt>
<dd>第 2 正規形の条件を満たし、さらに推移従属性を排除した表</dd>
</dl>
<p>それでは、知識の総仕上げとして、関係データベースの正規化に関する午後問題を見てみましょう。問題文の冒頭には、長々とした説明がありますが、それをざっと読んだら、設問を見てください。</p>
<div class="card-panel mag_h30">
問 2　平成 22 年度 秋期 午後 （問 2 から抜粋）</p>
<p>コールセンターの対応記録管理に関する次の記述を読んで，設問 1 ~ 4 に答えよ。</p>
<p>F 社では，新しいソフトウェア製品の発売と同時に，そのソフトウェア製品に関する質問を受けるコールセンターを開設することにした。コールセンターでの対応内容は，すべてデータベースに記録する。</p>
<p>[コールセンターの業務]</p>
<dl class="inline">
<dt>(1)</dt>
<dd>製品を購入した利用者には，一意な利用者 ID が発行されている。質問を受ける際は，この利用者 ID を通知してもらう。</dd>
<dt>(2)</dt>
<dd>対応内容をデータベースに記録する際，その質問の原因を特定する種別を設定する。種別とは &#8220;マニュアル不備&#8221; ，&#8221;使用法誤解&#8221; などの情報である。それぞれの種別に対して一意に種別 ID を割り当てる。 </dd>
<dt>(3)</dt>
<dd>データベースを検索し，過去に同じ種別 ID をもつ類似の質問があった場合は，その受付番号を類似受付番号として記録しておく。</dd>
</dl>
<p>図 1 は，これらの業務を基に，データベースを構成するデータ項目を抽出したものである。下線付きの項目は主キーを表す。</p>
<figure><figcaption>図 1　データベースを構成するデータ項目</figcaption><img class="materialboxed hoverable responsive-width z-depth-5" src="../../wp-content/uploads/2018/06/fe_pm_q2_h22_a_figure1.png"><br />
</figure>
<p>設問 1</p>
<p>図 1 に示したデータ項目を正規化して図 2 に示す表を設計し，運用を始めた。 実施した正規化に関する説明文のに入れる正しい答えを，解答群の中から選べ。</p>
<figure><figcaption>図 2　正規化検討後の表</figcaption><img class="responsive-width materialboxed hoverable z-depth-5" src="../../wp-content/uploads/2018/06/fe_pm_q2_q1_h22_a_figure2.png"><br />
</figure>
<p>　図 1 に示した状態は非正規形と呼ばれ，1 事実 1 か所の関係が成立していないので，重複更新，事前登録，関係喪失などの問題がある。このため，第 1 正規化 から順に第 3 正規化までを行うことにした。</p>
<p>　まず，第 1 正規化の作業では， <span class="border">a</span> 。次に，第 2 正規化の作業では， <span class="border">b</span>。そして，第3正規化の作業では， <span class="border">c</span>。</p>
<p>解答群</p>
<dl class="inline">
<dt>ア</dt>
<dd>受付番号と類似受付番号の組合せを主キーとして <span class="red-text bold">繰返し要素を排除した</span></dd>
<dt>イ</dt>
<dd>既に当該正規形に準じていたので，適用は不要だった</dd>
<dt>ウ</dt>
<dd>データ参照時の処理性能を考慮し，質問と回答を一つの表で管理するようにした</dd>
<dt>エ</dt>
<dd>利用者表，サポート員表及び種別表を作成し，<span class="red-text bold">主キー以外の項目における関数従属性を排除した</span></dd>
<dt>オ</dt>
<dd>類似表を作成し，<span class="red-text bold">主キーの一部における関数従属性を排除した</span></dd>
</dl>
</div>
<p>「第 1 正規化」とは、繰り返しを排除して第 1 正規形にすることです。<br />
したがって、<span class="border">a</span>の正解は、「繰返し要素を排除した」とある選択肢アです。</p>
<p>「第 2 正規化」とは、部分従属性を排除して第 2 正規形にすることです。<br />
したがって、<span class="border">b</span>の正解は、「主キーの一部における関数従属性を排除した」とある選択肢オです。「関数従属性」は、「従属性」と同じ意味です。</p>
<p>「第 3 正規化」とは、推移従属性を排除して第 3 正規形にすることです。<br />
したがって、<span class="border">c</span>の正解は、「主キー以外の項目における関数従属性を排除した」とある選択肢エです。</p>
<p><span class="chip mag_rt10">解答</span>　a &#8211; ア,　b &#8211; オ,　c &#8211; エ</p>
<div class="divider mag_h60"></div>
<p>いかがでしたか？ 「主キーから他の項目に従属性の矢印を引くこと」で、第 3 正規形かどうかを判断できるようになりましたね。</p>
<p>「部分従属性や推移従属性のよけいな矢印が引けること」や「繰り返しがあること」から、第 2 正規形、第 1 正規形、非正規形も判断できますね。</p>
<p>この連載では、今後も、多くの受験者が苦手としている用語を取り上げて行きます。それでは、またお会いしましょう！</p><p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/mastering_tech/normalization/">基本情報でわかる正規化「関係データベースの正規化は、従属性の矢印を引けばわかる」</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></content:encoded>
			</item>
		<item>
		<title>「厳選5題」過去問と解説 &#124; 平成22年度 春期 の過去問やるならこれをやれ</title>
		<link>https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kakomon-gensen/h22_spring/</link>
		<pubDate>Mon, 25 Nov 2019 04:58:39 +0000</pubDate>
		<dc:creator><![CDATA[矢沢 久雄]]></dc:creator>
				<category><![CDATA[テクニック 具体的な値を想定]]></category>
		<category><![CDATA[午前問題]]></category>
		<category><![CDATA[正規化]]></category>
		<category><![CDATA[過去問演習]]></category>

		<guid isPermaLink="false">https://www.seplus.jp/dokushuzemi/fe/fenavi/?post_type=kakomon-gensen&#038;p=3120</guid>
		<description><![CDATA[<p>ここでは、平成 22 年度 春期 基本情報技術者試験の午前試験 の中から「やるべき問題」を 5 題に厳選し、ぶっちゃけた解説をさせていただきます。 やるべき問題とは、よく出る問題であり、かつ、練習すればできる問題（練習し [&#8230;]</p>
<p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kakomon-gensen/h22_spring/">「厳選5題」過去問と解説 | 平成22年度 春期 の過去問やるならこれをやれ</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>ここでは、<a href="https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2010h22_1/2010h22h_fe_am_qs.pdf" rel="noopener" target="_blank">平成 22 年度 春期 基本情報技術者試験の午前試験</a> の中から「やるべき問題」を 5 題に厳選し、ぶっちゃけた解説をさせていただきます。</p>
<p>やるべき問題とは、よく出る問題であり、かつ、練習すればできる問題（練習しないとできない問題）です。</p>
<style>pre{margin-right:-24px!important;margin-left:-24px!important;padding-right:24px!important;padding-left:24px!important}blockquote p{color:#607d8b}table{font-size:.85em;}@media screen and (min-width:601px){.responsive-width{width:60%}}</style>
<h2>【厳選問題 1 】<br />CPU がカチカチ信号で動作しているイメージをつかもう</h2>
<div class="card-panel mag_h30">
問 9　(平成 22 年度 春期)</p>
<p>表の CPI と構成比率で，3 種類の演算命令が合計 1,000,000 命令実行されるプログラムを，クロック周波数が 1 GHz のプロセッサで実行するのに必要な時間は何ミリ秒か。</p>
<table class="centered mag_h20 responsive-width">
<thead>
<tr>
<th>演算命令</th>
<th>CPI ( Cycles Per Instruction )</th>
<th>構成比率 ( % )</th>
</tr>
<tbody>
<tr>
<td>浮動小数点加算</td>
<td>3</td>
<td>20</td>
</tr>
<tr>
<td>浮動小数点乗算</td>
<td>5</td>
<td>20</td>
</tr>
<tr>
<td>整数演算</td>
<td>2</td>
<td>60</td>
</tr>
</tbody>
</thead>
</table>
<p>ア　0.4　　イ　2.8　　ウ　4.0　　エ　28.0
</p></div>
<div class="chip">解説</div>
<p>「クロック周波数」や「 CPI 」という言葉をご存知ですか？ ご存知でないなら、この問題で覚えてください。</p>
<p>コンピュータの演算制御装置であるプロセッサ（ CPU とも呼びます）は、時計のようにカチカチと繰り返される電気信号で動作していて、これを<span class="mag_w05 bold">クロック信号</span>と呼びます。<br />
1 秒間にプロセッサに与えられるクロック信号の数を<span class="mag_w05 bold">クロック周波数</span>と呼び<span class="bold mag_w05">Hz（ヘルツ）</span>という単位で示します。</p>
<p>たとえば、クロック周波数が 1 GHz なら、1 秒間に 1 G 個= 1 × 10<sup>9</sup> 個のクロック信号がプロセッサに与えられます。</p>
<p>プロセッサが解釈・実行する命令は、命令の種類によって何個のクロック信号が必要なのかが決まっていて、これを<span class="mag_w05 bold">CPI（ Cycles Per Instruction ）</span>という単位で示します。</p>
<p>たとえば、3 個のクリック信号で解釈・実行できる命令の CPI は、3 です。ここまでが、この問題を解くために必要な知識です。</p>
<p>&nbsp;</p>
<p>それでは、問題を解いてみましょう。</p>
<p>3 種類の演算命令があり、それぞれ CPI の値が異なります。ここでは、命令の構成比率（プログラムの中で使われている比率）が示されているので、3 つの命令を平均した CPI は、</p>
<div class="background c-round">
3 × 0.2 + 5 × 0.2 + 2 × 0.6 = 2.8
</div>
<p>になります。</p>
<p>プログラムの中には、全部で 1000000 命令あるので、プログラムを実行するのに必要はクロック数は、全部で</p>
<div class="background c-round">
2.8 × 1000000 = 2.8 × 10<sup>6</sup> 個
</div>
<p>です。</p>
<p>これを 1 GHz のクロック周波数、つまり 1 秒間に 1 G 個= 1 × 10<sup>9</sup> 個のクロック信号が与えられるプロセッサで実行するのですから、</p>
<div class="background c-round">
（ 2.8 × 10<sup>6</sup> ）÷（ 1 × 10<sup>9</sup> ）<br />
= 2.8 × 10<sup>-3</sup><br />
= 2.8 ミリ秒
</div>
<p>かかります。したがって、選択肢イが正解です。</p>
<p><span class="chip">解答</span>イ</p>
<h2>【厳選問題 2 】<br />ターンアラウンドタイムの意味を知っていればわかります</h2>
<div class="card-panel mag_h30">
問 15　(平成 22 年度 春期)</p>
<p>一つのジョブについての，ターンアラウンドタイム，CPU 時間，入出力時間及び処理待ち時間の四つの時間の関係を表す式はどれか。ここで，ほかのオーバヘッド時間は考慮しないものとする。</p>
<p>ア　処理待ち時間 = CPU 時間 + ターンアラウンドタイム + 入出力時間<br />
イ　処理待ち時間 = CPU 時間 &#8211; ターンアラウンドタイム + 入出力時間<br />
ウ　処理待ち時間 = ターンアラウンドタイム &#8211; CPU 時間 &#8211; 入出力時間<br />
エ　処理待ち時間 = 入出力時間 &#8211; CPU 時間 &#8211; ターンアラウンドタイム
</p></div>
<div class="chip">解説</div>
<p>選択肢に「処理待ち時間 = 」という式が並んでいますが、この問題のテーマは「処理待ち時間」ではありません。<span class="bold">「ターンアラウンドタイムの意味を知っていますか？」</span> という問題です。</p>
<p>&nbsp;</p>
<p>「ターンアラウンドタイム」は、「バッチ処理」の処理時間を示すものです。</p>
<p>バッチ（ batch ）は、「束」という意味であり、バッチ処理は「複数データをまとめて処理すること」を意味します。</p>
<p>たとえば、1 日の営業時間に発生した数多くのデータを、営業時間後にまとめて処理するのが、バッチ処理です。バッチ処理では、データの演算だけでなく、<span class="bold">データの入出力にも多くの時間がかかります。</span></p>
<p>したがって、バッチ処理の処理時間であるターンアラウンドタイムは、</p>
<div class="background c-round">
ターンアラウンドタイム = データの演算時間 + データの入出力時間
</div>
<p>という式になります。</p>
<p>&nbsp;</p>
<p>選択肢では、「データの演算時間」を「 CPU 時間」と示し、「データの入出力時間」を「入出力時間」と示しています。</p>
<p>さらに「処理待ち時間」という項目がありますが、これはバッチ処理にかかる時間なので、ターンアラウンドタイムに加えます。</p>
<p>&nbsp;</p>
<p>以上のことから、</p>
<div class="background c-round">
ターンアラウンドタイム = CPU 時間 + 入出力時間 + 処理待ち時間
</div>
<p>という式ができ、これを「処理待ち時間 = 」に変形すると、</p>
<div class="background c-round">
処理待ち時間 = ターンアラウンド &#8211; CPU 時間 &#8211; 入出力時間
</div>
<p>になります。したがって、選択肢ウが正解です。</p>
<p><span class="chip">解答</span>ウ</p>
<h2>【厳選問題 3 】<br />落ち着いてやってみれば、とっても簡単な計算です</h2>
<div class="card-panel mag_h30">
問 17　(平成 22 年度 春期)</p>
<p>あるオンラインリアルタイムシステムでは，20 件/秒の頻度でトランザクションが発生する。このトランザクションは CPU 処理と 4 回の磁気ディスク入出力処理を経て終了する。磁気ディスク装置の入出力処理時間は 40 ミリ秒 / 回であり，CPU 処理時間は十分に短いものとする。それぞれの磁気ディスク装置が均等にアクセスされるとしたとき，このトランザクション処理には最低何台の磁気ディスク装置が必要か。</p>
<p>ア　3　　イ　4　　ウ　5　　エ　6
</p></div>
<div class="chip">解説</div>
<p>一見して「うわっ！ 難しそう」と思われる問題ですが、落ち着いてやってみれば、とっても簡単な問題です。<span class="bold">こういう問題を練習しておくと、「やればできる！」という自信が付きます。</span></p>
<p>少しずつ問題の内容を見てみましょう。</p>
<blockquote><p>あるオンラインリアルタイムシステムでは、20 件 / 秒の頻度でトランザクションが発生する</p></blockquote>
<p>とは、単に「 1 秒間に 20 件の処理が発生する」と考えれば OK です。トランザクションは、処理のまとまりを意味する言葉であり、1 件、2 件と数えます。</p>
<blockquote><p>このトランザクションは CPU 処理と 4 回の磁気ディスク入出力処理を経て終了する</p></blockquote>
<p>とあり、さらに</p>
<blockquote><p>磁気ディスク装置の入出力時間は 40 ミリ秒 / 回であり、CPU 時間は十分に短いものとする</p></blockquote>
<p>なので、1 件のトランザクションの処理時間は、短い CPU 時間を無視して、4 回の磁気ディスク入出力処理だけの時間になります。</p>
<p>これは、4 回 × 40 ミリ秒 / 回 = 160 ミリ秒です。</p>
<blockquote><p>それぞれの磁気ディスク装置が均等にアクセスされるとしたとき、このトランザクション処理には最低何台の磁気ディスク装置が必要か</p></blockquote>
<p>ですから、1 秒間に 20 件のトランザクションを処理するために必要な磁気ディスク装置の台数を求めればよいのです。</p>
<p>1 件のトランザクションあたり 160 ミリ秒かかるので、1 台の磁気ディスク装置は、</p>
<div class="background c-round">
1 秒当たり、1 秒 ÷ 160 ミリ秒<br />
= 1000 ミリ秒 ÷ 160 ミリ秒<br />
= 6.25 件
</div>
<p>のトランザクションを処理できます。0.25 という中途半端な処理はできないので、端数を切り捨てて 6 件です。</p>
<p>1 台で 6 件を処理できるので、20 件を処理するには、20 件 ÷ 6 件 = 3.33・・・台の磁気ディスク装置が必要であり、端数を切り上げて 4 台です。</p>
<p>したがって、選択肢イが正解です。どうです？ とっても簡単な問題だったでしょう！</p>
<p><span class="chip">解答</span>イ</p>
<h2>【厳選問題 4 】<br />この問題で第3正規形かどうかを判断する方法を覚えよう</h2>
<div class="card-panel mag_h30">
問 30　(平成 22 年度 春期)</p>
<p>&#8220;発注伝票&#8221; 表を第3 正規形に書き換えたものはどれか。ここで、下線部は主キーを表す。</p>
<pre class="language-none">
発注伝票 (<span style="border-bottom: 1px solid white">注文番号</span>, <span style="border-bottom: 1px solid white">商品番号</span>, 商品名, 注文数量)
</pre>
<pre class="language-none">
ア  発注 (<span style="border-bottom: 1px solid white">注文番号</span>, 注文数量)
    商品 (<span style="border-bottom: 1px solid white">商品番号</span>, 商品名)

イ  発注 (<span style="border-bottom: 1px solid white">注文番号</span>, 注文数量)
    商品 (<span style="border-bottom: 1px solid white">注文番号</span>, <span style="border-bottom: 1px solid white">商品番号</span>, 商品名)

ウ  発注 (<span style="border-bottom: 1px solid white">注文番号</span>, <span style="border-bottom: 1px solid white">商品番号</span>, 注文数量)
    商品 (<span style="border-bottom: 1px solid white">商品番号</span>, 商品名)

エ  発注 (<span style="border-bottom: 1px solid white">注文番号</span>, <span style="border-bottom: 1px solid white">商品番号</span>, 注文数量)
    商品 (<span style="border-bottom: 1px solid white">商品番号</span>, 商品名, 注文数量)
</pre>
</div>
<div class="chip">解説</div>
<p>関係データベースの正規化理論がテーマの問題です。</p>
<p>正規化理論では、表の状態を「非正規形」「第 1 正規形」「第 2 正規形」「第 3 正規形」に区別し、それぞれ以下のように定義しています。</p>
<p>「繰り返し」「部分従属性」「推移従属性」が排除すべきものであり、すべてを排除した状態が第3正規形です。</p>
<dl class="mag_h30 background c-round">
<dt>非正規形</dt>
<dd>繰り返しがある。</dd>
<dt>第 1 正規形</dt>
<dd>繰り返しを排除している。</dd>
<dt>第 2 正規形</dt>
<dd>第 1 正規形を満たし、さらに部分従属性を排除している。</dd>
<dt>第 3 正規形</dt>
<dd>第 2 正規形を満たし、さらに推移従属性を排除している。</dd>
</dl>
<p>理論的に考えると難しいのですが、第 3 正規形とは、早い話が「主キーに従属した列だけの表」です。</p>
<p>主キーとは、レコード（行）を特定できるユニークな情報を持つ列です。<br />
従属とは「列 A によって列 B が特定できる」ということです。</p>
<p>これを「 A → B 」のように矢印で示すとわかりやすいでしょう。</p>
<p>以下は、第 3 正規形の表の例です。A 、B 、C 、D 、E は、何らかの情報を持った列だとします。</p>
<p>主キーは、下線を付けた A です。主キー A から B 、C 、D 、E に向かって従属性の矢印が引けています。このような矢印だけが引ければ、第 3 正規形だと判断できます。</p>
<figure>
<img class="hoverable z-depth-5 materialboxed responsive-width" src="../../wp-content/uploads/2019/11/q30_h22_s_figure1.png"><br />
</figure>
<p>それでは、問題を見てみましょう。</p>
<p>問題では「表名（ 列名1, 列名2, ・・・）」という形式で表を示していますが、わかりやすいように列を枠で囲んで表を示します。</p>
<p>問題に示された「発注伝票」表は、「注文番号」と「商品番号」の 2 つの列をセットにして主キーにしています。このような主キーを「複合キー」と呼びます。</p>
<p>従属性の線を引くと、以下のように、「注文数量」は、複合キーの「注文番号」と「商品番号」に従属しますが、「商品名」は「商品番号」だけに依存します。</p>
<p>これを「部分従属性」と呼び、部分従属性の線があると第 3 正規形ではありません。第 3 正規形は、「主キーに従属した列だけの表」だからです。</p>
<figure>
<img class="hoverable z-depth-5 materialboxed responsive-width" src="../../wp-content/uploads/2019/11/q30_h22_s_figure2.png"><br />
</figure>
<p>このような場合には、「注文番号」と「商品番号」の複合キーに従属する「注文数量」を持つ表 1 と、「商品番号」に従属する「商品名」を持つ表 2 に分割します。</p>
<figure>
<img class="hoverable z-depth-5 materialboxed responsive-width" src="../../wp-content/uploads/2019/11/q30_h22_s_figure3.png"><br />
</figure>
<p>したがって、選択肢ウが正解です。</p>
<p><span class="chip">解答</span>ウ</p>
<div class="divider mag_h30"></div>
<p><i class="material-icons light-blue-text">search</i><span class="grey-text mag_w10">タグで関連記事をチェック</span><a href="../../tag/正規化" class="tag">正規化</a></p>
<h2>【厳選問題 5 】<br />M や N を使った式は、具体例を想定すればわかります</h2>
<div class="card-panel mag_h30">
問 41　(平成 22 年度 春期)</p>
<p>パスワードに使用できる文字の種類の数を M ，パスワードの文字数を n とするとき，設定できるパスワードの理論的な総数を求める数式はどれか。</p>
<figure>
<img class="hoverable z-depth-5 materialboxed responsive-width" src="../../wp-content/uploads/2019/11/q41_h22_s_figure1.png"><br />
</figure>
</div>
<div class="chip">解説</div>
<p>M 種類の文字で文字数 n のパスワードを作ると、その総数はいくつになりますか？ という問題です。</p>
<p>このように M だの n だのと言っている問題には、定番の解法があります。それは、<span class="bold">「 M や n に具体的な数値を想定する」</span>です。</p>
<p>選択肢があるのですから、その具体例を代入して同じ値になるものが正解です。</p>
<p>&nbsp;</p>
<p>例として、M = 3 種類の文字「 A 」「 B 」「 C 」で、文字数 n = 2 のパスワードを作るとしましょう。</p>
<p>パスワードの総数は、<br />
「 AA 」「 AB 」「 AC 」「 BA 」「 BB 」「 BC 」「 CA 」「 CB 」「 CC 」<br />
の 9 通りです。</p>
<p>選択肢に示された式に、M = 3、n = 2 を代入すると、以下になります。</p>
<dl class="mag_h30">
<dt>選択肢ア</dt>
<dd>3<sup>2</sup> = 9</dd>
<dt>選択肢イ</dt>
<dd>( 3 × 2 × 1 ) / ( 1 ) = 6</dd>
<dt>選択肢ウ</dt>
<dd>( 3 × 2 × 1 ) / ( ( 2 × 1 ) × ( 1 ) ) = 3</dd>
<dt>選択肢エ</dt>
<dd>( 4 × 3 × 2 × 1 ) / ( ( 2 × 1 ) × ( 2 × 1 ) ) = 6</dd>
</dl>
<p>9 になっている選択肢アが正解です。</p>
<p><span class="chip">解答</span>ア</p>
<div class="divider mag_h30"></div>
<p><i class="material-icons light-blue-text">search</i><span class="grey-text mag_w10">タグで関連記事をチェック</span><a href="../../tag/テクニック-具体的な値を想定/" class="tag">テクニック 具体的な値を想定</a></p>
<p>&nbsp;</p>
<div class="divider mag_bt30"></div>
<p>記事をお読みいただきありがとうございます。</p>
<p>もしも、一度解いただけでは、よくわからない問題があったなら、わかるまで何度でも練習してください。<span class="bold">「やるべき問題」は「わかるまでやるべき問題」</span>だからです。</p>
<p>この厳選問題大全集が、受験者の皆様のお役に立てば幸いです。</p>
<p>&nbsp;</p><p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kakomon-gensen/h22_spring/">「厳選5題」過去問と解説 | 平成22年度 春期 の過去問やるならこれをやれ</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></content:encoded>
			</item>
		<item>
		<title>やるべき or やる必要がない過去問の見分け方「厳選5題」過去問と解説シリーズ</title>
		<link>https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kakomon-gensen/how2judge_nesessary_unnesessary/</link>
		<pubDate>Fri, 15 Mar 2019 04:20:11 +0000</pubDate>
		<dc:creator><![CDATA[矢沢 久雄]]></dc:creator>
				<category><![CDATA[MIPS]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[伝送時間]]></category>
		<category><![CDATA[午前問題]]></category>
		<category><![CDATA[学習方法]]></category>
		<category><![CDATA[正規化]]></category>
		<category><![CDATA[計算問題]]></category>
		<category><![CDATA[論理回路]]></category>
		<category><![CDATA[過去問演習]]></category>

		<guid isPermaLink="false">https://www.seplus.jp/dokushuzemi/fe/fenavi/?post_type=kakomon-gensen&#038;p=735</guid>
		<description><![CDATA[<p>もしも、「基本情報技術者試験に合格するには、どう勉強するとよいか？」と聞かれたら、多くの人が「過去問題を解いて練習すればよい！」と答えるでしょう。 長年、基本情報技術者試験の対策講座で講師をしてきた筆者も、まったくその通 [&#8230;]</p>
<p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kakomon-gensen/how2judge_nesessary_unnesessary/">やるべき or やる必要がない過去問の見分け方「厳選5題」過去問と解説シリーズ</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>もしも、「基本情報技術者試験に合格するには、どう勉強するとよいか？」と聞かれたら、多くの人が「過去問題を解いて練習すればよい！」と答えるでしょう。</p>
<p>長年、基本情報技術者試験の対策講座で講師をしてきた筆者も、まったくその通りだと思います。</p>
<p>&nbsp;</p>
<p>ただし、<span class="bold">ただ闇雲に全問をやればよい、というものではありません</span>。</p>
<p><span class="u">よく出る問題であり、かつ、練習すればできる問題（練習しないとできない問題）に絞った方が、効果的であり効率的な勉強法です。</span></p>
<p>&nbsp;</p>
<p>そこで、この連載では、これまでに実施された午前試験の中から<span class="bold">「これをやれ！」という問題を 5 問だけ厳選して、解き方を解説します。</span></p>
<p>また、ありきたりの解説には飽き飽きしているでしょうから、市販書には書けないような、ぶっちゃけた解説をさせていただきます。</p>
<p>&nbsp;</p>
<p>第 1 回の今回は、現行の試験制度になった最初の試験である <a href="https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2009h21_1/2009h21h_fe_am_qs.pdf" rel="noopener" target="_blank">平成 21 年度 春期</a> を題材にして、やるべき問題 5 題と、やる必要がない問題 5 題を示します。</p>
<p class="blue-grey-text background small-text"><i class="material-icons blue-text">info</i> 編集部よりお知らせ<br />本記事ではわかりやすいよう、問題文にシンタックスハイライトを入れています</p>
<style>h2 .chip{vertical-align:middle}.divider{margin:2em 0}.card-panel>pre{margin:1em -24px;padding:auto 24px}pre,code{font-family:'consolas','Courier New',"HCo Gotham SSm",Gotham,"ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic ProN","Hiragino Sans","BIZ UDPGothic",Meiryo,sans-serif!important;background:#eceff1;color:#263238;}pre{padding:1em 1.5em;margin:1.5em 0;}code{padding:.15em .5em;}table{font-size:.85em;}@media screen and (max-width:600px){.contents{line-height:2;padding:.5em 0 .5em 2em;background:#fafafa;font-size:small;border-radius:.5em}}.card-panel th{text-align:center}dd,dl.inline dd{margin-left:2em}</style>
<h2><span class="chip mag_rt05 blue white-text">やるべき</span>練習しておかないと意図がわからない過去問</h2>
<div class="card-panel mag_h30">
問 1　(平成 21 年度 春期)</p>
<p>数値を 2 進数で格納するレジスタがある。 このレジスタに正の整数 x を設定した後， &#8220;レジスタの値を 2 ビット左にシフトして， x を加える&#8221; 操作を行うと，レジスタの 値は x の何倍になるか。 ここで，あふれ (オーバフロー) は，発生しないものとする。</p>
<p>ア　3　　イ　4　　ウ　5　　<br class="hide-on-med-and-up">エ　6
</div>
<div class="chip">解説</div>
<p>この問題を「やるべき」と判断したのは、<span class="bold">練習しておかないと「いったい何がいいたいの？」という感じで、出題の意図がわからない</span> からです。</p>
<p>この問題の意図は、<span class="u">「左シフトと加算で任意の倍数を作れることを知っていますか？」</span>ということです。</p>
<p>&nbsp;</p>
<p>コンピュータの内部では、データが 2 進数で取り扱われています。</p>
<p>2 進数は、左にシフト（上位桁にずらす）と、 2 倍、 4 倍、 8 倍、 16 倍、・・・というように 2 のべき乗の値になります。</p>
<p>3 倍、 5 倍、 6 倍、 7 倍、 9 倍のような、 <soan class="u">2 のべき乗でない倍数を得たい場合は、シフト と 加算 を組合せます</soan>。</p>
<p>&nbsp;</p>
<p>問題に示されたレジスタとは、 CPU の内部にあるデータ格納領域のことで、わかりやすくいえば、データを入れる箱のことです。  「あふれ（オーバーフロー）は、発生しないものとする」という但し書きは、レジスタのサイズを気にしなくてよいということです。</p>
<p>ここでは、レジスタに x （何らかの値）を格納し、それを 2 ビット左にシフトして 4 倍にして、さらに x を加算しているのですから、 <code>4 倍 + 1 倍 = 5 倍</code> になります。 ただ、それだけの問題です。</p>
<p>わかってしまえば簡単ですが、練習しておかないとできないでしょう。</p>
<div class="divider"></div>
<p><span class="chip mag_rt05">解答</span>　ウ</p>
<h2><span class="chip mag_rt05 red white-text">やる必要がない</span>言葉の意味から常識的に判断して解ける過去問</h2>
<div class="card-panel mag_h30">
問 28　(平成 21 年度 春期)</p>
<p>ヒューマンインタフェース設計において，操作の一貫性向上を目的とするものはどれか。</p>
<dl class="inline">
<dt>ア</dt>
<dd> (元に戻す) 機能によって，一つ前の操作状態に戻せるようにする。  </dd>
<dt>イ</dt>
<dd>ショートカットキーによって操作できるようにする。  </dd>
<dt>ウ</dt>
<dd>どの画面においても操作ボタンの表示位置や形を同じにする。  </dd>
<dt>エ</dt>
<dd>利用者の操作に対応した処理の進行状況を表示する。 </dd>
</dl>
</div>
<div class="chip">解説</div>
<p>この問題は、「一貫性」という<span class="bold">言葉の意味から常識的な判断をすれば、正解を選ぶことができます。</span>したがって、やる必要はありません。</p>
<p>「一貫性」をわかりやすい言葉で言い換えると、「全部同じ」ということです。 したがって、正解は、「どの画面においても操作ボタンの表示位置や形を同じにする」というウです。</p>
<p>さあ、こんな問題には、時間を割かずに、やるべき問題に進みましょう。</p>
<div class="divider"></div>
<p><span class="chip mag_rt05">解答</span>　ウ</p>
<h2><span class="chip mag_rt05 blue white-text">やるべき</span>計算方法を練習しておかないと手が動かない過去問</h2>
<div class="card-panel mag_h30">
問 9　(平成 21 年度 春期)</p>
<p>平均命令実行時間が 20 ナノ秒のコンピュータがある。 このコンピュータの性能は何 MIPS か。</p>
<p>ア　75　　イ　10　　<br class="hide-on-med-and-up">ウ　20　　エ　150
</div>
<div class="chip">解説</div>
<p><span class="bold">計算問題の中でも、よく出るものは、やるべき問題</span>です。 なぜなら、計算方法を練習しておかないと、実際の試験で手が動かない（計算方法を見出せない）からです。</p>
<p>基本情報技術者試験には、<span class="bold">公式を丸暗記しないとできない計算問題は出たことがありません</span>。 この問題も、もちろん公式は不要です。</p>
<p>&nbsp;</p>
<p>それでは、どうやって解くのかというと、問題文に示された「 MIPS（ミップス）」という言葉の意味を覚えて、そこから計算手法を見出すのです。</p>
<p>&nbsp;</p>
<p>MIPS は、Million Instructions Per Second（百万命令 / 秒）という意味で、コンピュータの処理能力の尺度のひとつです。 1 秒間に実行できる命令の数を百万単位で示します。</p>
<p>ここでは、 1 つの命令を実行する時間が 平均 20 ナノ秒 なので、 1 秒間に 1 ÷ 20 ナノ個の命令を実行できます。</p>
<p><span class="bold">ナノは、 10<sup>-9</sup> ですから、 <code>1 ÷ ( 20 × 10<sup>-9</sup> )</code>という計算をすればよいのですが、これを練習しておいてほしのです。</span></p>
<p>最終的な結果を百万単位、つまり 10<sup>6</sup> 単位で得ることに注意してください。</p>
<pre>
1 ÷（ 20 × 10<sup>-9</sup> ）
=（ 1 × 10<sup>9</sup> ）÷ 20
=（ 1 × 10<sup>3</sup> × 10<sup>6</sup> ）÷ 20
=（ 1000 × 10<sup>6</sup> ）÷ 20
= 50 × 10<sup>6</sup>
</pre>
<p>になります。</p>
<p>これは、 50 MIPS です。</p>
<div class="divider"></div>
<p><span class="chip mag_rt05">解答</span>　エ</p>
<div class="divider mag_tp40 mag_bt10"></div>
<p class="grey-text small-text"><i class="material-icons mag_rt05">info_outline</i>MIPS など計算方法がわかる連載</p>
<p><a href="../../easy_calc/"></p>
<div class="row valign-wrapper pad_w20">
<div class="col s3 m2 flex pad_00"><img src="../../wp-content/uploads/2020/01/easy_calc_cover-300x169.jpg" width="640" height="360" /></div>
<div class="col s9 m10 pad_10 blue-grey-text"><span class="bold">苦手克服！かんたん計算問題</span><br /><span class="small-text">多くの受験者が苦手意識を持っている「計算問題」が「かんたん」と感じられるよう、計算方法をデフォルメしながら説明します。</span>
</div>
</div>
<p></a></p>
<div class="divider mag_bt40 mag_tp10"></div>
<h2><span class="chip mag_rt05 red white-text">やる必要がない</span>問題に示された通りの項目に分類すれば解ける過去問</h2>
<div class="card-panel mag_h30">
問 60　(平成 21 年度 春期)</p>
<p>IT 統制を予防統制と発見統制に分類した場合，データ入力の誤りや不正の発見統制に該当するものはどれか。</p>
<dl class="inline">
<dt>ア</dt>
<dd>データ入力画面を，操作ミスを起こしにくいように設計する。  </dd>
<dt>イ</dt>
<dd>データ入力結果の出カリストと入力伝票とを照合する。  </dd>
<dt>ウ</dt>
<dd>データ入力担当者を限定し，アクセス権限を付与する。  </dd>
<dt>エ</dt>
<dd>データ入力マニュアルを作成し，入力担当者に教育する。 </dd>
</dl>
</div>
<div class="chip">解説</div>
<p>問題文に「予防と発見に分類した場合」と示されているのですから、 4 つの選択肢は「予防」と「発見」のいずれかに分類できるはずです。 さらに、問題文には、「発見」とは「データの入力の誤りや不正の発見」であるというヒントも示されています。</p>
<p>このヒントを頼りにして、常識的な判断で選択肢を「予防」と「発見」に分類すれば、 1 つだけが「発見」になるはずです。 これには、<span class="bold">専門知識が一切不要なので、やる必要がない</span>問題です。</p>
<dl class="mag_h30 inline">
<dt>ア</dt>
<dd>「操作ミスを起こしにくいように設計」ですから、予防でしょう。 </dd>
<dt>イ</dt>
<dd>「出力と入力を照合」ですから、ヒントに示された「データの入力の誤りや不正の発見」でしょう。 </dd>
<dt>ウ</dt>
<dd>「アクセス権限の付与」ですから、権限の有無で予防するのでしょう。 </dd>
<dt>エ</dt>
<dd>「教育」ですから、教育で得た知識で予防するのでしょう。 </dd>
</dl>
<div class="divider"></div>
<p><span class="chip mag_rt05">解答</span>　イ</p>
<h2><span class="chip mag_rt05 blue white-text">やるべき</span>丸暗記ではなく、仕組みを知って楽しく覚えてほしい過去問</h2>
<div class="card-panel mag_h30">
問 25　(平成 21 年度 春期)</p>
<p>図に示す 1 けたの 2 進数 x と y を加算し， z ( 和の 1 けた目) 及び c ( けた上げ) を出力する半加算器において， A と B の素子の組合せとして，適切なものはどれか。</p>
<figure>
<img class="z-depth-5 hoverable materialboxed" style="margin:auto;" data-caption="平成 21 年度 春期 問 25 図" src="../../wp-content/uploads/2019/03/q25_figure.png" alt="" loading="lazy" /><br />
</figure>
<table class="responsive-width centered">
<thead>
<tr>
<th></th>
<th>A</th>
<th>B</th>
</tr>
</thead>
<tbody>
<tr>
<th>ア</th>
<td>排他的論理和</td>
<td>論理積</td>
</tr>
<tr>
<th>イ</th>
<td>否定論理積</td>
<td>否定論理和</td>
</tr>
<tr>
<th>ウ</th>
<td>否定論理和</td>
<td>排他的論理和</td>
</tr>
<tr>
<th>エ</th>
<td>論理積</td>
<td>論理和</td>
</tr>
</tbody>
</table>
</div>
<div class="chip">解説</div>
<p>半加算器の問題は、よく出るので、確実に覚えてください。</p>
<p>ただし、「半加算器の 桁上がりは AND 演算で、和 は XOR 演算である」という丸暗記ではいけません。 なぜなら、丸暗記は、つまらなくて、忘れやすいからです。</p>
<p><span class="bold">ちゃんと仕組みを知って覚えれば、楽しくて、忘れない</span>はずです。</p>
<p>&nbsp;</p>
<p>半加算器は、 1 桁の 2 進数 を 2 つ足します。</p>
<p>1 桁の 2 進数は、0 と 1 だけなので、それらを足すパターンは、以下の 4 通りです。</p>
<table class="striped centered mag_h30 responsive-width">
<thead>
<tr>
<th>x</th>
<th>y</th>
<th>c</th>
<th>z</th>
</tr>
</thead>
<tbody>
<tr>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<td>0</td>
<td>1</td>
<td>0</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>0</td>
<td>0</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
</tbody>
</table>
<p>この問題では、足す数に x と y 、桁上がりに c 、和に z という名前を付けています。</p>
<p>このパターンを書けるように練習しておけば、丸暗記しなくても「半加算器の 桁上がりは AND 演算で、和 は XOR 演算である」と覚えられます。</p>
<p>&nbsp;</p>
<p>問題の選択肢は、AND や XOR などの 論理演算 を日本語で示しています。</p>
<p>この機会に、これらも覚えておきましょう。</p>
<p>まず、基本的な論理演算である <span class="bold">AND 、OR 、NOT を「論理積」「論理和」「論理否定」と呼ぶ</span>ことを覚えてください。</p>
<p>そうすれば、</p>
<dl class="background c-round">
<dt class="bold">XOR</p>
<dt>
<dd>排他的（ eXclusive ）論理和（ OR ）</dd>
<dt class="bold">NAND</p>
<dt>
<dd>否定（ Not ）論理積（ AND ）</dd>
<dt class="bold">NOR</p>
<dt>
<dd>否定（ Not ）論理和（ OR ）</dd>
</dl>
<p>と呼ぶことも、簡単に覚えられます。</p>
<p>&nbsp;</p>
<p>正解は、<span class="blank">A</span> が排他的論理和で <span class="blank">B</span> が論理積となっているアです。</p>
<div class="divider"></div>
<p><span class="chip mag_rt05">解答</span>　ア</p>
<p class="mag_h30 blue-grey-text"><i class="material-icons light-blue-text mag_rt05">search</i>タグで関連記事をチェック <a href="../../tag/論理回路/" class="tag z-depth-1 hoverable">論理回路</a></p>
<h2><span class="chip mag_rt05 red white-text">やる必要がない</span>英語の意味かニュアンスがわかれば答えを選べる過去問</h2>
<div class="card-panel mag_h30">
問 69　(平成 21 年度 春期)</p>
<p>競争戦略において，ニッチ戦略の特徴はどれか。</p>
<dl class="inline">
<dt>ア</dt>
<dd>市場での地位向上とトップシェア奪取を目標とした差別化戦略の展開を図る。 </dd>
<dt>イ</dt>
<dd>総市場規模を拡大することでシェアを維持しながら新規需要の獲得を図る。 </dd>
<dt>ウ</dt>
<dd>他社が参入しにくい特定の市場に対して専門化し，高利益率を図る。 </dd>
<dt>エ</dt>
<dd>リーダの行動を観察し，迅速に模倣することで製品開発などのコスト削減を図る。 </dd>
</dl>
</div>
<div class="chip">解説</div>
<p>基本情報技術者試験には、<span class="bold">「これは、英語の試験なのか？」と皮肉を言いたくなるような問題が出る</span>ことがあります。 そういう問題は、やる必要がありません。</p>
<p>この問題は、「ニッチ（ niche ）」という英語の意味かニュアンスがわかれば、正解を選べます。 「ニッチ市場」という言葉を聞いたことがあるのでしょう。 これは、大企業がターゲットとしない小規模な市場という意味です。</p>
<p>&nbsp;</p>
<p>この問題では、「ニッチ戦略」という言葉なので、選択肢の中では「他社が参入しにくい特定の市場に対して専門化」が適切です。</p>
<div class="divider"></div>
<p><span class="chip mag_rt05">解答</span>　ウ</p>
<h2><span class="chip mag_rt05 blue white-text">やるべき</span>SQL が苦手なら過去問の範囲に絞って SQL を覚える</h2>
<div class="card-panel mag_h30">
問 33　(平成 21 年度 春期)</p>
<p>関係データベースの &#8220;製品&#8221; 表と &#8220;売上&#8221; 表から，売上報告のビュー表を定義する SQL 文中の a に入るものはどれか。</p>
<pre>
<code class="language-sql">CREATE VIEW 売上報告(製品番号, 製品名, 納品数, 売上年月日, 売上金額)
　　AS '[　　a　　]' 製品.製品番号, 製品.製品名, 売上.納品数, 売上.売上年月日,
　　売上.納品数 * 製品.単価
　　　　FROM 製品, 売上
　　　　WHERE 製品.製品番号 = 売上.製品番号</code>
</pre>
<p><span class="hide-on-med-and-up grey-text small-text"><i class="material-icons mag_rt05">info</i>SQL 文は右にスクロールできます</span></p>
<table class="bordered responsive-width mag_h30">
<thead>
<tr>
<th width="25%">表名</th>
<th>列名</th>
</tr>
</thead>
<tbody>
<tr>
<td>製品</td>
<td>製品番号, 製品名, 単価</td>
</tr>
<tr>
<td>売上</td>
<td>製品番号, 納品数, 売上年月日</td>
</tr>
</tbody>
</table>
<p>ア　GRANT　　イ　INSERT　　<br class="hide-on-med-and-up">ウ　SCHEMA　　エ　SELECT
</div>
<div class="chip">解説</div>
<p>データベースの分野では、SQL の問題がよく出題されます。</p>
<p>もしも、<span class="bold">SQL が苦手なら、過去問の範囲に絞って</span> SQL を覚えましょう。 そうする方が、体系立てて SQL を学ぶより効率的です。 過去問題は、何度も再利用されているからです。</p>
<p>&nbsp;</p>
<p>この問題からは、</p>
<ul class="background c-round">
<li>データを取得する SELECT 命令に <span class="bold">名前を付けて保存したものを「ビュー」</span>と呼ぶこと</li>
<li>ビューを作成するには <code class="language-sql">CREATE VIEW ビューの名前 AS SELECT 命令</code> という構文を使うこと</li>
<li>そして問題の穴埋めの答えが「 SELECT 」であること</li>
</ul>
<p>を覚えてください。</p>
<p>後で同じ問題に遭遇した時に、「この問題やったことある！」と思い出してスラスラできるはずです。</p>
<div class="divider"></div>
<p><span class="chip mag_rt05">解答</span>　エ</p>
<p class="mag_h30 blue-grey-text"><i class="material-icons light-blue-text mag_rt05">search</i>タグで関連記事をチェック <a href="../../tag/SQL/" class="tag z-depth-1 hoverable">SQL</a></p>
<h2><span class="chip mag_rt05 red white-text">やる必要がない</span>消去法で簡単に答えを選べる過去問</h2>
<div class="card-panel mag_h30">
問 70　(平成 21 年度 春期)</p>
<p>プロダクトライフサイクルにおける成長期の特徴はどれか。</p>
<dl class="inline">
<dt>ア</dt>
<dd>市場が商品の価値を理解し始める。 商品ラインもチャネルも拡大しなければならない。 この時期は売上も伸びるが，投資も必要である。  </dd>
<dt>イ</dt>
<dd>需要が大きくなり，製品の差別化や市場の細分化が明確になってくる。 競争者間の競争も激化し，新品種の追加やコストダウンが重要となる。 </dd>
<dt>ウ</dt>
<dd>需要が減ってきて，撤退する企業も出てくる。 この時期の強者になれるかどうかを判断し，代替市場への進出なども考える。 </dd>
<dt>エ</dt>
<dd>需要は部分的で，新規需要開拓が勝負である。 特定ターゲットに対する信念に満ちた説得が必要である。 </dd>
</div>
<div class="chip">解説</div>
<p>「成長期」に適した選択肢を選べば OK という問題なので、やる必要はありません。 もしも、選べないなら、「これは違う」というものを消してください。 いわゆる「消去法」です。</p>
<dl class="mag_h30 inline">
<dt>ア</dt>
<dd>「商品の価値を理解し始める」ですから、成長期に適している感じがします。 </dd>
<dt>イ</dt>
<dd>「製品の差別化や市場の細分化が明確」ですから、成長期よりずっと後でしょう。 </dd>
<dt>ウ</dt>
<dd>「需要が減る」のですから、これも成長期ではないのでしょう。 </dd>
<dt>エ</dt>
<dd>「新規需要開拓が勝負」とあるので、成長期より前でしょう。 </dd>
</dl>
<p>このように判断して、簡単に正解をアに絞れます。</p>
<div class="divider"></div>
<p><span class="chip mag_rt05">解答</span>　ア</p>
<h2><span class="chip mag_rt05 blue white-text">やるべき</span>お決まりの注目ポイントがある過去問</h2>
<div class="card-panel mag_h30">
問 36 (平成 21 年度 春期)</p>
<p>1.5 M ビット/秒の伝送路を用いて 12 M バイトのデータを転送するために必要な伝送時間は何秒か。 ここで，回線利用率を 50% とする。</p>
<p>ア　16　　イ　32　　<br class="hide-on-med-and-up">ウ　64　　エ　128
</div>
<div class="chip">解説</div>
<p>ネットワークの伝送時間を求める計算問題です。 この問題には、お決まりの注目ポイントが 2 つあります。 それを覚えてほしいので、やるべき問題です。</p>
<ul class="background c-round">
<p class="indigo-text post-title mag_tp00">伝送時間を求める計算問題 2 つのポイント</p>
<li><span class="bold">ビット単位の伝送速度と、バイト単位のデータ量が混在</span> しているので、どちらかに揃えて計算すること</li>
<li>伝送速度は、 100 %の能力を使えるものではないので、 <span class="bold">回線利用率を考慮した値で計算</span> すること
</ul>
<p>ここでは、伝送速度 が 1.5 M ビット/秒、データ量 が 12 M バイト、回線利用率 が 50% です。</p>
<p>8 ビット = 1 バイト なので、</p>
<p><span class="u">伝送速度 を 8 で割れば バイト単位</span> になり、<br />
<span class="u">データ量 を 8 倍すれば ビット単位</span> になります。</p>
<p>計算が簡単なのは、データ量を 8 倍することの方なので、データ量を <code>12 M バイト = 12 × 8 = 96 M ビット</code> として、ビット単位に揃えて計算することにしましょう。</p>
<p>伝送速度の 1.5 M ビット/秒 は、回線利用率 が 50 %なので、実際には <code>1.5 M × 0.5 = 0.75 M ビット / 秒</code>です。</p>
<p>データのサイズが 96 M ビット で、実際の伝送速度 が 0.75 M ビット / 秒 なのですから、伝送時間は、 <code>96 M ÷ 0.75 M = 128 秒</code> です。</p>
<p>「よくわかんな～い！」なら、わかるまで何度も練習してください。 <span class="bold">やるべき問題は、わかるまでやるべき問題です。</span></p>
<div class="divider"></div>
<p><span class="chip mag_rt05">解答</span>　エ</p>
<p class="mag_h30 blue-grey-text"><i class="material-icons light-blue-text mag_rt05">search</i>タグで関連記事をチェック <a href="../../tag/伝送時間/" class="tag z-depth-1 hoverable">伝送時間</a></p>
<h2><span class="chip mag_rt05 red white-text">やる必要がない</span>様々なパターンで出題されても正解を選べる過去問</h2>
<div class="card-panel mag_h30">
問 79 (平成 21 年度 春期)</p>
<p>特許権を説明したものはどれか。</p>
<dl class="inline">
<dt>ア</dt>
<dd>産業上利用することができる新規の発明を独占的・排他的に利用できる権利であり， 所轄の官庁への出願及び審査に基づいて付与される権利</dd>
<dt>イ</dt>
<dd>事業者が自己の商品を他人の商品と識別するために商品について使用する標識を，独占的・排他的に使用できる権利</dd>
<dt>ウ</dt>
<dd>新規の美術・工芸・工業製品などで，その形・色・模様・配置などについて加える装飾上の工夫を，独占的・排他的に使用できる権利</dd>
<dt>エ</dt>
<dd>文芸，学術，美術又は音楽の範囲に属する著作物を，その著作者が独占的・排他 的に支配して利益を受ける権利</dd>
</dl>
</div>
<div class="chip">解説</div>
<p>「特許権」「実用新案権」「商標権」「意匠権」という知的財産権の問題は、様々なパターンで出題されますが、それぞれの違いを簡単なイメージで覚えておけば、ほどんどの問題で正解を選べます。 しかがって、知的財産権の問題をやる必要はありません。</p>
<p><span class="bold">特許権は「発明」、実用新案権は「アイディア」、商標権は「企業のマーク」、意匠権は「製品のデザイン」というイメージ</span>です。</p>
<p>&nbsp;</p>
<p>この問題は、特許権がテーマなので、選択肢の中で「アイディア」や「企業のマーク」や「製品のデザイン」よりも「発明」にふさわしいものを選べば OK です。 正解は、「発明」という言葉があるアです。</p>
<div class="divider"></div>
<p><span class="chip mag_rt05">解答</span>　ア</p>
<p>&nbsp;</p>
<div class="divider mag_h50"></div>
<p>第 1 回の今回は、連載の趣旨を示し、古い平成 21 年春期を題材にして、やるべき問題の例と、やる必要がない問題の例を示しました。</p>
<p>次回以降は、現時点で最新の平成 30 年秋期試験から新しい順に、やるべき問題と解き方を掲載して、大全集を作り上げたいと思います。</p>
<p>ちまたには、年度ごとにすべての問題を解説した Web ページがいくつかありますが、やるべき問題を厳選するという試みは、おそらく他にはない大きな特徴だと思います。</p>
<p>この厳選問題集が、受験者の皆様のお役に立てば幸いです。</p>
<h2>「厳選5題」過去問 問題集</h2>
<div class="divider"></div>
<p><a href="../r01_autumn/"></p>
<div class="mag_00 row">
<div class="col m3 post-title mag_h10 pad_00">令和元年 秋期</div>
<div class="col m9 pad_00">
<ol class="contents mag_00">
<li>増分バックアップと差分バックアップの違いを覚えよう</li>
<li>SQL のグループ化のポイントをつかもう</li>
<li>この機会に CSMA/CD という長い略語の意味を覚えよう</li>
<li>試験によく出るネットワーク構成を知っておこう</li>
<li>テストにおけるスタブとドライバの役割を知っておこう</li>
</ol></div>
</div>
<p></a></p>
<div class="divider"></div>
<p><a href="../h31_spring/"></p>
<div class="mag_00 row">
<div class="col m3 post-title mag_h10 pad_00">平成31年度 春期</div>
<div class="col m9 pad_00">
<ol class="contents mag_00">
<li>dpi の意味がわかれば計算できます</li>
<li>オープンソースの定義を知っておこう</li>
<li>GUI部品の種類と用途を知っておこう</li>
<li>すべて0とすべて1が、ホストアドレスに使えない理由を知っておこう</li>
<li>ROIは、ROIという言葉が計算方法を示しています</li>
</ol></div>
</p></div>
<p></a></p>
<div class="divider"></div>
<p><a href="../h30_autumn/"></p>
<div class="mag_00 row">
<div class="col m3 post-title mag_h10 pad_00">平成30年度 秋期</div>
<div class="col m9 pad_00">
<ol class="contents mag_00">
<li>えっ、小数点以下の 16 進数も出るの？ 出るから練習しておこう！</li>
<li>よく出る「命令ミックス」を覚えておきましょう</li>
<li>これこそ教わらなければわかならい問題だ</li>
<li>アローダイアグラムでは、ダミー作業に注意せよ</li>
<li>この問題ができれば、たいがいの期待値の問題ができます</li>
</ol></div>
</p></div>
<p></a></p>
<div class="divider"></div>
<p><a href="../h30_spring/"></p>
<div class="mag_00 row">
<div class="col m3 post-title mag_h10 pad_00">平成30年度 春期</div>
<div class="col m9 pad_00">
<ol class="contents mag_00">
<li>ナニコレ？ と思ったら練習しておこう</li>
<li>丁寧に学習して IP アドレスの苦手意識を克服しよう</li>
<li>できる！ と思っても、うっかり間違いをしないように絵を書こう</li>
<li>問題の意味がわかれば、楽勝！ 楽勝！</li>
<li>知らない用語に遭遇したら、言葉の意味から判断せよ！</li>
</ol></div>
</p></div>
<p></a></p>
<div class="divider"></div>
<p><a href="../h29_autumn/"></p>
<div class="mag_00 row">
<div class="col m3 post-title mag_h10 pad_00">平成29年度 秋期</div>
<div class="col m9 pad_00">
<ol class="contents mag_00">
<li>とってもよく出る MTBF と MTTR の意味をしっかり覚えよう</li>
<li>この問題で、スタックの特徴だけでなく用途を知るべし</li>
<li>「待ち状態」と「実行待ち状態」の意味は、実にわかりにくい！</li>
<li>これは、用語や仕組みがわらないと計算できない問題です</li>
<li>これも、用語や仕組みがわらないと計算できない問題です</li>
</ol></div>
</p></div>
<p></a></p>
<div class="divider"></div>
<p><a href="../h29_spring/"></p>
<div class="mag_00 row">
<div class="col m3 post-title mag_h10 pad_00">平成29年度 春期</div>
<div class="col m9 pad_00">
<ol class="contents mag_00">
<li>この表記は何だろう？ そう思ったなら練習しておこう</li>
<li>RAID 0、RAID 1、RAID 5 の仕組みを知っておこう</li>
<li>直列と並列の稼働率の求め方は、丸暗記ではなく理屈で覚えよう</li>
<li>基本情報技術者試験には、公式の暗記が必要な問題は出題されません</li>
<li>自分流に工夫して OSI 基本参照モデルとネットワーク機器の対応を覚えよう</li>
</ol></div>
</p></div>
<p></a></p>
<div class="divider"></div>
<p><a href="../h28_autumn/"></p>
<div class="mag_00 row">
<div class="col m3 post-title mag_h10 pad_00">平成28年度 秋期</div>
<div class="col m9 pad_00">
<ol class="contents mag_00">
<li>AND によるビット演算のイメージをつかんでおこう</li>
<li>今後の試験で出題比率が多くなる「数学」の問題をやっておこう</li>
<li>2 のべき乗は指折り数えて計算しよう</li>
<li>A / D 変換に関する 3 つの用語をまとめて覚えよう</li>
<li>とにかくよく出る FIFO 、LRU 、LFU の意味をしっかり覚えよう</li>
</ol></div>
</p></div>
<p></a></p>
<div class="divider"></div>
<p><a href="../h28_spring/"></p>
<div class="mag_00 row">
<div class="col m3 post-title mag_h10 pad_00">平成28年度 春期</div>
<div class="col m9 pad_00">
<ol class="contents mag_00">
<li>文字列の正規表現の問題は、教わればできます</li>
<li>音声のサンプリングの計算方法も、教わればわかります</li>
<li>割り算が引き算の繰り返しで実現できることも、教われば納得できます</li>
<li>「何これ？」という問題ですが、教わって覚えてください</li>
<li>計算方法をお教えしますので、暗記でなく仕組みで覚えてください</li>
</ol></div>
</p></div>
<p></a></p>
<div class="divider"></div>
<p><a href="../h27_autumn/"></p>
<div class="mag_00 row">
<div class="col m3 post-title mag_h10 pad_00">平成27年度 秋期</div>
<div class="col m9 pad_00">
<ol class="contents mag_00">
<li>2のべき乗を見たら「ビビッ！」と感じてください</li>
<li>公式があるのかな？ と考えずに、地道に経路のパターンを数えよう</li>
<li>花文字の回転は、 2 つの解き方のわかりやすい方を使おう</li>
<li>セクタとブロック、ディスクの構造を知っておこう</li>
<li>この問題で SQL の集約関数をまとめて覚えよう</li>
</ol></div>
</p></div>
<p></a></p>
<div class="divider"></div>
<p><a href="../h27_spring/"></p>
<div class="mag_00 row">
<div class="col m3 post-title mag_h10 pad_00">平成27年度 春期</div>
<div class="col m9 pad_00">
<ol class="contents mag_00">
<li>SRAMとDRAMの特徴は、両者の比較で覚えよう</li>
<li>何か変な問題？ でも何度も出題されています！</li>
<li>オブジェクト指向の「汎化」の考え方と用語を覚えよう</li>
<li>SWOT 分析の問題は、略語の意味がわかればわかります！</li>
<li>B 、 C 、G も、略語の意味がわかればわかります！</li>
</ol></div>
</p></div>
<p></a></p>
<div class="divider"></div>
<p><a href="../h26_autumn/"></p>
<div class="mag_00 row">
<div class="col m3 post-title mag_h10 pad_00">平成26年度 秋期</div>
<div class="col m9 pad_00">
<ol class="contents mag_00">
<li>逆ポーランド表記法は、決して難しくありません</li>
<li>別名を知れば、内部割込みと外部割込みを簡単に区別できます</li>
<li>実効アクセス時間の計算は、期待値の計算です</li>
<li>論理回路の問題は、効率的に解ける入力パターンを考えよう</li>
<li>関係データベースでなくても、データをたどれるかどうかがポイントです</li>
</ol></div>
</p></div>
<p></a></p>
<div class="divider"></div>
<p><a href="../h26_spring/"></p>
<div class="mag_00 row">
<div class="col m3 post-title mag_h10 pad_00">平成26年度 春期</div>
<div class="col m9 pad_00">
<ol class="contents mag_00">
<li>小数点以下 4 桁まで、 2 進数の桁の重みを書き出してみよう</li>
<li>この問題を通して、関係データベースの「掟（おきて）」を知っておこう</li>
<li>選択肢の SQL 文の違いに注目して消去法で答えを絞り込もう</li>
<li>トランザクションの ACID 特性は、自分流のわかりやすい説明で覚えよう</li>
<li>JIS の定義からセキュリティの本質がわかる</li>
</ol></div>
</p></div>
<p></a></p>
<div class="divider"></div>
<p><a href="../h25_autumn/"></p>
<div class="mag_00 row">
<div class="col m3 post-title mag_h10 pad_00">平成25年度 秋期</div>
<div class="col m9 pad_00">
<ol class="contents mag_00">
<li>見かけは難しそうですが、実はとっても簡単な問題です</li>
<li>共有ロックと専有ロックの違いを知っておこう</li>
<li>略語の問題を練習するときには、 2 つのポイントがあります</li>
<li>ネットワークの階層とは、どういうことかを知ってください</li>
<li>クラスの関連付けの表記方法をまとめて覚えよう</li>
</ol></div>
</p></div>
<p></a></p>
<div class="divider"></div>
<p><a href="../h25_spring/"></p>
<div class="mag_00 row">
<div class="col m3 post-title mag_h10 pad_00">平成25年度 春期</div>
<div class="col m9 pad_00">
<ol class="contents mag_00">
<li>アルゴリズムをしっかりと丁寧に覚えてください</li>
<li>ハッシュ法に関する用語をまとめて覚えよう</li>
<li>メモリのアドレス指定方式をまとめて覚えよう</li>
<li>こういう問題こそ練習しておくべきです</li>
<li>ディジタル署名におけるハッシュ関数の意味も知っておこう</li>
</ol></div>
</p></div>
<p></a></p>
<div class="divider"></div>
<p><a href="../h25_autumn/"></p>
<div class="mag_00 row">
<div class="col m3 post-title mag_h10 pad_00">平成24年度 秋期</div>
<div class="col m9 pad_00">
<ol class="contents mag_00">
<li>2 の補数表現と算術右シフトをマスターしよう</li>
<li>探索アルゴリズムの計算量のオーダを覚えよう</li>
<li>ビット数とコードのイメージをつなげよう</li>
<li>仮想記憶のページインとページアウトを手作業で練習しておこう</li>
<li>関係データベースの参照の整合性の意味を覚えよう</li>
</ol></div>
</p></div>
<p></a></p>
<div class="divider"></div>
<p><a href="../h24_spring/"></p>
<div class="mag_00 row">
<div class="col m3 post-title mag_h10 pad_00">平成24年度 春期</div>
<div class="col m9 pad_00">
<ol class="contents mag_00">
<li>自分流に具体例を書けばイメージをつかめます</li>
<li>事前にしっかりと練習しておけば試験当日に焦りません</li>
<li>ハードウェアの問題は 2 進数の問題です</li>
<li>算数の文章問題の大人版だと思って解いてください</li>
<li>花形、金のなる木、問題児、負け犬は、そう呼ばれる理由で覚えよう</li>
</ol></div>
</p></div>
<p></a></p>
<div class="divider"></div>
<p><a href="../h23_autumn/"></p>
<div class="mag_00 row">
<div class="col m3 post-title mag_h10 pad_00">平成23年度 秋期</div>
<div class="col m9 pad_00">
<ol class="contents mag_00">
<li>バッカス・ナウア記法の読み方を知っておこう</li>
<li>論理式をベン図で表す練習をしておこう</li>
<li>パスワードの盗用を防止する方法を知っておこう</li>
<li>ウイルスを検出する様々な方法を知っておこう</li>
<li>ソフトウェア開発手法の種類を知っておこう</li>
</ol></div>
</p></div>
<p></a></p>
<div class="divider"></div>
<p><a href="../h23_spring/"></p>
<div class="mag_00 row">
<div class="col m3 post-title mag_h10 pad_00">平成23年度 春期</div>
<div class="col m9 pad_00">
<ol class="contents mag_00">
<li>これは、ド・モルガンの法則だ！</li>
<li>状態遷移表で文字列の形式を検査する方法を覚えておこう！</li>
<li>伸びて行くから「木」なのです！</li>
<li>計算問題への苦手意識を克服しよう！(その 1 )</li>
<li>計算問題への苦手意識を克服しよう！(その 2 )</li>
</ol></div>
</p></div>
<p></a></p>
<div class="divider"></div>
<p><a href="../h22_autumn/"></p>
<div class="mag_00 row">
<div class="col m3 post-title mag_h10 pad_00">平成22年度 秋期</div>
<div class="col m9 pad_00">
<ol class="contents mag_00">
<li>誤差の名称を具体例に対応付けて覚えよう！</li>
<li>確率の乗法定理と加法定理の使い方を覚えよう！</li>
<li>磁気ディスク装置のデータ読み取り時間の計算方法のポイントを知ろう！</li>
<li>英語の意味と対応付けて、リーダ、チャレンジャ、フォロワ、ニッチャの戦略を区別しよう！</li>
<li>日本語の意味どおりに、導入期、成長期、成熟期、衰退期の戦略を判断しよう！</li>
</ol></div>
</p></div>
<p></a></p>
<div class="divider"></div>
<p><a href="../h22_spring/"></p>
<div class="mag_00 row">
<div class="col m3 post-title mag_h10 pad_00">平成22年度 春期</div>
<div class="col m9 pad_00">
<ol class="contents mag_00">
<li>CPU がカチカチ信号で動作しているイメージをつかもう</li>
<li>ターンアラウンドタイムの意味を知っていればわかります</li>
<li>落ち着いてやってみれば、とっても簡単な計算です</li>
<li>この問題で第3正規形かどうかを判断する方法を覚えよう</li>
<li>M や N を使った式は、具体例を想定すればわかります</li>
</ol></div>
</p></div>
<p></a></p>
<div class="divider"></div>
<p><a href="../h21_autumn/"></p>
<div class="mag_00 row">
<div class="col m3 post-title mag_h10 pad_00">平成21年度 秋期</div>
<div class="col m9 pad_00">
<ol class="contents mag_00">
<li>CUI 環境でディレクトリを指定する方法を知っておこう</li>
<li>半加算器と全加算器の違いを知っておこう</li>
<li>サブネットマスクとCIDR表記の対応を知っておこう</li>
<li>UMLのクラス図とシーケンス図の役割を知っておこう</li>
<li>カプセル化、継承、多態性の意味を知っておこう</li>
</ol></div>
</p></div>
<p></a></p>
<div class="divider"></div>
<p>&nbsp;</p><p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kakomon-gensen/how2judge_nesessary_unnesessary/">やるべき or やる必要がない過去問の見分け方「厳選5題」過去問と解説シリーズ</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></content:encoded>
			</item>
		<item>
		<title>第2回 データベース &#124; 先を見据えた基本情報技術者試験対策</title>
		<link>https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/chishiki_career/database/</link>
		<pubDate>Fri, 15 Jun 2018 07:19:42 +0000</pubDate>
		<dc:creator><![CDATA[三好 康之]]></dc:creator>
				<category><![CDATA[SQL]]></category>
		<category><![CDATA[ステップアップ基本情報技術者]]></category>
		<category><![CDATA[データベース]]></category>
		<category><![CDATA[正規化]]></category>

		<guid isPermaLink="false">http://www.seplus.jp/dokushuzemi/fe/fenavi/?post_type=chishiki_career&#038;p=201</guid>
		<description><![CDATA[<p>出題傾向 データベースの問題は、午前問題で 5 問、午後問題で 1 問（平成 29 年度 秋期）出題されています。 SQL 文の SELECT 、制約 基本情報技術者試験の試験勉強をしている間に仕上げておきたい分野 No [&#8230;]</p>
<p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/chishiki_career/database/">第2回 データベース | 先を見据えた基本情報技術者試験対策</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></description>
				<content:encoded><![CDATA[<h2>出題傾向</h2>
<p>データベースの問題は、午前問題で 5 問、午後問題で 1 問（平成 29 年度 秋期）出題されています。</p>
<h2>SQL 文の SELECT 、制約</h2>
<p>基本情報技術者試験の試験勉強をしている間に仕上げておきたい分野 No.1 は、<span class="bold">SQL 文</span> になります。</p>
<p>基本情報技術者試験 の 午後問題 の中心になる分野であり、過去に出題された 午前問題 の数も多く、基本情報技術者試験 の合格のためには必須になるところですが、それだけではありません。</p>
<p>次のステップの 応用情報技術者試験 でも中心になり、その次のステップの高度系の データベーススペシャリスト試験 においても、ここ数年は避けては通れない分野になっているからです。</p>
<p>筆者は、平成 15 年からもうかれこれ 15 年間にわたって、データベーススペシャリスト試験 の試験対策本を出しています。翔泳社のこの本です。</p>
<p><a href="https://www.shoeisha.co.jp/book/detail/9784798157948"><img class="mag_h50 hoverable" src="../../wp-content/uploads/2018/06/cover_sp_database.png" alt="" /></a></p>
<p>その中にも書いていますが、以前は SQL の問題を解かなくても合格することができました。つまり SQL の知識が無くても合格できていました。</p>
<p>高度系の中でも特に、データベーススペシャリスト試験 は出題パターンが固定化していたことや、問題数も午後 が 4 問だったこと、午後Ⅱではほとんど出題されなかったことなどから避けることができていました。</p>
<p>&nbsp;</p>
<p>しかし、平成 21 年から午後Ⅰの問題数は 3 問に減少し、平成 26 年から固定化も崩れ始めました。</p>
<p>午後Ⅱ試験でも 物理設計 の問題が定番化し、性能見積り や 評価 で SQL に関する知識が求められています。</p>
<p>SQL インジェクション対策 などで &#8220;セキュアプログラミング&#8221; の重要性が高まることも無関係ではないと思います。</p>
<p>&nbsp;</p>
<p>平成 26 年以後、<span class="bold">SQLは「捨てられない分野」となっています。</span></p>
<p>基本情報技術者試験では、特に &#8220;SELECT 文（選択）&#8221; と &#8220;制約&#8221; が中心ですが、実は SQL に関しては、レベル 2（基本情報技術者試験）と レベル 4（データベーススペシャリスト試験）で大差ありません。</p>
<p>したがって「 SQL は 基本情報技術者試験で仕上げておく！」という意気込みで挑めば、後々楽になるのは間違いありません。</p>
<p>高度系では、午後Ⅰ・午後Ⅱ対策としての「概念データモデルと関係スキーマの設計」の学習に専念できます。</p>
<h2>正規化（第3正規形まで）</h2>
<p>また、<span class="bold">正規化</span> の問題も、基本情報技術者試験、応用情報技術者試験、データベーススぺシャリスト試験 のいずれでも出題されます。</p>
<p>基本情報技術者試験では出題されない年度もあるので、正規化に関する知識が無くても合格できますが、高度系のデータベーススペシャリスト試験では、午後Ⅰ では必須（毎年必ず出題されている）で、午後Ⅱ でも直接的に問われることは無いが &#8220;知っていることが前提&#8221; で問題が作られています。</p>
<p>このため高度系になると避けては通れない分野になります。</p>
<p>&nbsp;</p>
<p>そこでおススメなのが次のように段階的に正規化を抑えていくことです。時間をかけてじっくりと熟成させることで、記憶への定着率を高めましょう。</p>
<h3>正規化 学習のステップ</h3>
<ol class="background c-round">
<li>基本情報技術者試験：第 3 正規形まで（厳密な定義ではなく、シンプルにキーワードを覚えるイメージ）</li>
<li>応用情報技術者試験：特になし</li>
<li>データベーススペシャリスト試験：第 3 正規形（厳密な定義）、第 5 正規形まで</li>
</ol>
<h2>キー</h2>
<p>高度系のデータベーススペシャリスト試験では、</p>
<p>主キー<br />
候補キー<br />
スーパーキー<br />
外部キー<br />
代理キー<br />
代替キー</p>
<p>など様々な &#8220;キー&#8221; が登場します。</p>
<p>特に、候補キーは午前、午後ともに頻出問題です。</p>
<p>&nbsp;</p>
<p>このうち基本情報技術者試験では、 &#8220;主キー&#8221; と &#8220;外部キー&#8221; が出題されます。</p>
<p>先に説明した &#8220;SQL 文&#8221; でいうところの &#8220;主キー制約&#8221; と &#8220;外部キー制約&#8221; です。</p>
<p>この 2 つの &#8220;キー&#8221; を、基本情報技術者試験で仕上げておけば高度系の試験対策が本当に楽になります。特に外部キーに関しては覚えることも少なくありません。</p>
<p>しかも、高度系の午後Ⅱ試験で必ず出題されている概念データモデルの作成に関する問題のうち、エンティティ間のリレーションシップを追加時に必要な知識になります。</p>
<p>したがって、レベル 2 の段階で仕上げておくと高度系ではかなり楽になります。</p>
<h2>まとめ</h2>
<p>データベースは IT エンジニアの必須スキルのひとつ。テクニカル系分野の中では、覚えないといけない基礎知識は少ない方かもしれませんが、その分、高度系では応用力が試されます。</p>
<p>筆者はデータベーススペシャリストの試験対策もやっていますが、いつも思うのは「 SQL に強くあってほしい！」ということです。</p>
<p>経験者でなくても、基本情報技術者試験か応用情報技術者試験で SQL を仕上げておいてほしいところです。</p>
<p>というのも、高度系試験対策で優先されるのは、やはり概念データモデルと関係スキーマの設計や、物理設計、チューニングなどになるからです。</p>
<p>基礎になる SQL の解説をやっていると倍以上に時間がかかりますし、だからと言って SQL を避けると &#8220;不合格のリスク&#8221; は高まります。</p>
<p>&nbsp;</p>
<p>そういうわけで、この先データベーススペシャリスト試験の合格を狙っている人は、ぜひ、ここで紹介している分野をしっかりと学習して仕上げておきましょう。</p>
<p>&nbsp;</p><p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/chishiki_career/database/">第2回 データベース | 先を見据えた基本情報技術者試験対策</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></content:encoded>
			</item>
		<item>
		<title>午後問題の歩き方 ｜ 午後問題の読み方～データベース 「 SQL と正規化」</title>
		<link>https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/gogo_arukikata/guide_db_of_questions_at_pm/</link>
		<pubDate>Mon, 04 Jun 2018 01:30:19 +0000</pubDate>
		<dc:creator><![CDATA[矢沢 久雄]]></dc:creator>
				<category><![CDATA[SQL]]></category>
		<category><![CDATA[データベース]]></category>
		<category><![CDATA[午後問題の解説]]></category>
		<category><![CDATA[正規化]]></category>

		<guid isPermaLink="false">http://www.seplus.jp/dokushuzemi/fe/fenavi/?post_type=gogo_arukikata&#038;p=154</guid>
		<description><![CDATA[<p>データベースの問題は、「 SQL 」と「正規化」を勉強しておけば OK という傾向があります。 ここでは、 平成 22 年度 秋期 午後 問 2 を例にして、 SQL と 正規化 に関して、具体的に何を知っていればよいか [&#8230;]</p>
<p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/gogo_arukikata/guide_db_of_questions_at_pm/">午後問題の歩き方 ｜ 午後問題の読み方～データベース 「 SQL と正規化」</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>データベースの問題は、<span class="bold">「 SQL 」と「正規化」を勉強しておけば OK</span> という傾向があります。</p>
<p>ここでは、 <a href="https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2010h22_2/2010h22a_fe_pm_qs.pdf#page=9" rel="noopener" target="_blank">平成 22 年度 秋期 午後 問 2</a> を例にして、 <span class="bold">SQL と 正規化 に関して、具体的に何を知っていればよいかを説明</span>しましょう。</p>
<p>しっかりとポイントをつかんで、データベースの問題を得点源にしてください。</p>
<p class="blue-grey-text small-text grey lighten-5 mag_h30 pad_20 c-round"><i class="material-icons light-blue-text mag_rt05">error</i>本記事ではわかりやすいよう、問題文に文字に色やシンタックスハイライトなどを入れています</p>
<style>dl.inline dd{margin-left:2em}.card-panel>pre{margin-left:-24px!important;margin-right:-24px!important;padding-right:24px!important;padding-left:24px!important}pre{margin-right:-7.5%!important;margin-left:-7.5%!important;padding:1em 7.5%!important;font-family:'consolas','Courier New',"HCo Gotham SSm",Gotham,"ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic ProN","Hiragino Sans","BIZ UDPGothic",Meiryo,sans-serif!important;}.red-border{border:.2em solid #f44336}table{font-size:.85em;}@media screen and (min-width:601px){.responsive-width{width:90%}}</style>
<h2>正規形と正規化の定義をきちんと覚えておく</h2>
<p>以下は、問題の冒頭部分です。細かいことは気にせずに、図 1 を見てください。</p>
<p>データベースを構成するデータ項目を抽出したところ、「類似受付番号」という繰り返し項目が生じました。ここで、すぐにピンと来てほしいのですが、 <span class="bold">「繰り返し項目がある」は、非正規形の定義</span> です。</p>
<p>したがって、このあとに、正規形や正規化に関する設問があるはずです。</p>
<div class="card-panel mag_h30">
問 2</p>
<p>コールセンターの対応記録管理に関する次の記述を読んで，設問 1 ~ 4 に答えよ。</p>
<p>F 社では，新しいソフトウェア製品の発売と同時に，そのソフトウェア製品に関する質問を受けるコールセンターを開設することにした。コールセンターでの対応内容は，すべてデータベースに記録する。</p>
<p>[コールセンターの業務]</p>
<dl class="inline">
<dt>(1)</dt>
<dd>製品を購入した利用者には，一意な利用者 ID が発行されている。質問を受ける際は，この利用者 ID を通知してもらう。</dd>
<dt>(2)</dt>
<dd>対応内容をデータベースに記録する際，その質問の原因を特定する種別を設定する。種別とは &#8220;マニュアル不備&#8221; ， &#8220;使用法誤解&#8221; などの情報である。それぞれの種別に対して一意に種別 ID を割り当てる。 </dd>
<dt>(3)</dt>
<dd>データベースを検索し，過去に同じ種別 ID をもつ類似の質問があった場合は，その受付番号を類似受付番号として記録しておく。</dd>
</dl>
<p>図 1 は，これらの業務を基に，データベースを構成するデータ項目を抽出したものである。下線付きの項目は主キーを表す。</p>
<figure><figcaption>図 1　データベースを構成するデータ項目</figcaption><img class="materialboxed hoverable responsive-width z-depth-5" src="../../wp-content/uploads/2018/06/fe_pm_q2_h22_a_figure1.png"><br />
</figure>
</div>
<p>設問 1 を見てみると、やはり正規化がテーマでした。</p>
<p>以下の図 2 は、図 1 を正規化した結果です。そして、空欄 a, b, c には、第 1 正規化、第 2 正規化、第 3 正規化 において行う作業が入ります。</p>
<p>&nbsp;</p>
<p>ここで注意してほしいのは、この問題は、図 1 と図 2 を比較して答えるものではないということです。</p>
<p>空欄と選択肢を、よく見てください。<span class="bold">正規形 と 正規化の定義 を知っているだけで、答えを選べる</span> 内容になっています。</p>
<div class="card-panel mag_h30">
設問 1</p>
<p>図 1 に示したデータ項目を正規化して図 2 に示す表を設計し，運用を始めた。 実施した正規化に関する説明文のに入れる正しい答えを，解答群の中から選べ。</p>
<figure><figcaption>図 2　正規化検討後の表</figcaption><img class="responsive-width materialboxed hoverable z-depth-5" src="../../wp-content/uploads/2018/06/fe_pm_q2_q1_h22_a_figure2.png"><br />
</figure>
<p>　図 1 に示した状態は非正規形と呼ばれ，1 事実 1 か所の関係が成立していないので，重複更新，事前登録，関係喪失などの問題がある。このため，第 1 正規化 から順に第 3 正規化までを行うことにした。</p>
<p>　<span class="red-text bold">まず，第 1 正規化の作業では， <span class="blank red-border">a</span> 。次に，第 2 正規化の作業では， <span class="blank red-border">b</span>。そして，第 3 正規化の作業では， <span class="blank red-border">c</span></span>。</p>
<p>解答群</p>
<dl class="inline">
<dt>ア</dt>
<dd>受付番号と類似受付番号の組合せを主キーとして <span class="red-text bold">繰返し要素を排除した</span></dd>
<dt>イ</dt>
<dd>既に当該正規形に準じていたので，適用は不要だった</dd>
<dt>ウ</dt>
<dd>データ参照時の処理性能を考慮し，質問と回答を一つの表で管理するようにした</dd>
<dt>エ</dt>
<dd>利用者表，サポート員表及び種別表を作成し，<span class="red-text bold">主キー以外の項目における関数従属性を排除した</span></dd>
<dt>オ</dt>
<dd>類似表を作成し，<span class="red-text bold">主キーの一部における関数従属性を排除した</span></dd>
</dl>
</div>
<p>「繰り返し項目がある」が、非正規形の定義であり、<span class="bold"> 「繰り返し項目を排除する」が 第 1 正規化の作業</span> です。第 1 正規化によって、第 1 正規形になります。</p>
<p>したがって、空欄 a の答えは、選択肢アの「繰り返し要素を排除した」です。</p>
<p>&nbsp;</p>
<p>「第 1 正規形を満たし、さらに <span class="bold">部分従属性を排除したもの」が、第 2 正規形の定義</span> であり、「部分従属性を排除する」が、第 2 正規化の作業です。</p>
<p>部分従属性とは、複数の項目をセットにして主キー（複合キー）としている場合に、主キーの一部分の項目だけに従属した項目があることです。従属（関数従属）とは、ある項目によって他の項目を特定できるということです。</p>
<p>したがって、空欄 b の答えは、選択肢オの「主キーの一部における関数従属性を排除した」です。</p>
<p>&nbsp;</p>
<p>「第 2 正規形を満たし、 <span class="bold">さらに推移従属性を排除したもの」が、第 3 正規形の定義</span> であり、「推移従属性を排除する」が、第 3 正規化の作業です。</p>
<p>推移従属性とは、主キーでない項目に従属した項目があることです。</p>
<p>したがって、空欄 c の答えは、選択肢エの「主キー以外の項目における関数従属性を排除した」です。</p>
<table class="striped centered mag_h40 responsive-width">
<caption class="mag_h10 grey-text">正規化のまとめ</caption>
<thead>
<tr>
<th>正規化の段階</th>
<th>やること</th>
</tr>
</thead>
<tbody>
<tr>
<td>第 1 正規化</td>
<td>繰り返し項目を排除する</td>
</tr>
<tr>
<td>第 2 正規化</td>
<td>部分従属性を排除する</td>
</tr>
<tr>
<td>第 3 正規化</td>
<td>推移従属性を排除する</td>
</tr>
</tbody>
</table>
<p>これまでの記事でも、何度か説明してきましたが、基本情報技術者試験のシラバス（出題されるテーマの細目）は、午前問題と午後問題で分けられていません。</p>
<p>したがって、午前問題をしっかり練習しておけば、午後問題も必ず解けます。</p>
<p><span class="bold">午後問題は、午前問題で取り上げられる基礎知識を、架空の事例に仕立てたものです。見かけは難しそうでも、設問の内容は、午前問題と変わりません。</span></p>
<p>「きっと解けるはずだ！」と、自信を持って取り組んでください。</p>
<div class="divider mag_h40"></div>
<p class="grey-text small-text"><i class="material-icons mag_rt05">info_outline</i>正規化をわかりやすく解説した記事ができました</p>
<p><a href="../../mastering_tech/normalization/"></p>
<div class="row valign-wrapper pad_w20">
<div class="col s2 flex pad_00"><img src="../../wp-content/uploads/2020/09/normalization_cover-300x169.png" alt="" loading="lazy"></div>
<div class="col s10 pad_lt10 blue-grey-text bold">基本情報でわかる正規化「関係データベースの正規化は、従属性の矢印を引けばわかる」</div>
</div>
<p></a></p>
<h2>午前問題を数多く練習して SQL を覚える</h2>
<p><span class="bold">データベースでは、とにかく SQL の問題がよく出題されます。</span></p>
<div class="divider mag_tp30 mag_bt10"></div>
<p class="grey-text small-text"><i class="material-icons mag_rt05">info_outline</i>参考記事</p>
<p><a href="../trend_to_questions_at_pm/#24-3"></p>
<div class="row valign-wrapper pad_w20">
<div class="col s2 pad_00 flex"><img src="../../wp-content/uploads/2018/05/trend_to_questions_of_pm.jpg" loading="lazy"></div>
<div class="col s10 pad_lt10 blue-grey-text">午後問題の歩き方 | 過去問 10 回分から分析した午後問題の出題傾向<br /><span class="bold">4 データベースの出題傾向（午後問 2 ～問 4 ）</span></div>
</div>
<p></a></p>
<div class="divider mag_tp10 mag_bt30"></div>
<p>この問題でも、設問 2, 設問 3, 設問 4 は、どれも SQL の問題です。試験対策では、過去の試験に出題された SQL を覚えることが効率的です。基本情報技術者試験は、「基本」なのですから、基本的な SQL しか出題されません。</p>
<p><span class="bold">どこまでが基本なのかは、実際に出題された SQL を見なければわかりません。</span></p>
<p>そのために、 SQL に関する午前問題を、数多く練習しておくことをお勧めします。</p>
<div class="c-round grey lighten-5 pad_20 mag_h40">
<i class="material-icons light-blue-text">search</i><span class="blue-grey-text mag_w10">タグで関連記事をチェック</span><a href="../../tag/sql/" class="tag">SQL</a></i>
</div>
<p>たとえば、以下は、<a href="https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2013h25_1/2013h25h_fe_am_qs.pdf#page=15" rel="noopener" target="_blank">平成 25 年度 春期 午前 問 29</a> です。</p>
<div class="card-panel mag_h30">
問 29　平成 25 年度　春期　午前</p>
<p>&#8220;BOOKS&#8221; 表から書名に &#8220;UNIX&#8221; を含む行を全て探すために次の SQL 文を用いる。<br />
a に指定する文字列として，適切なものはどれか。ここで，書名は &#8220;BOOKS&#8221; 表の &#8220;書名&#8221; 列に格納されている。</p>
<p class="grey-text hide-on-med-and-up mag_h10 small-text"><i class="material-icons light-blue-text mag_rt05">swipe</i>SQL は横スクロールできます</p>
<pre>
<code class="language-sql"> SELECT * FROM BOOKS WHERE 書名 LIKE '[　　a　　]' </code>
</pre>
<p>ア　%UNIX　　<span class="red-text bold">イ　%UNIX%</span>　　<br class="hide-on-med-and-up">ウ　UNIX　　エ　UNIX%
</div>
<p>「 % 」が 0 文字以上の任意の文字列を意味するので、<code class="language-sql">　書名 LIKE '% UNIX %'　</code> という表現で、「書名に UNIX という文字列を含む」という条件を表せます。</p>
<p>したがって、答えは、選択肢イです。</p>
<p>&nbsp;</p>
<p>それでは、午後問題を見てみましょう。以下は、設問 2 です。</p>
<div class="card-panel mag_h30">
設問 2</p>
<p>ある利用者から &#8220;オプションの指定方法&#8221; に関する質問を受けた。過去に類似の質問があったかどうかを確認するため，&#8221;オプション&#8221; というキーワードを含む質問をすべて抽出する。次の SQL 文の <span class="blank"></span> に入れる正しい答えを，解答群の中から選べ。</p>
<pre>
<code class="language-sql">SELECT 対応表.受付番号, 利用者表.利用者名, 対応表.質問
  FROM 対応表, 利用者表
  WHERE 対応表.利用者ID = 利用者表.利用者ID
    AND '[　　　]' </code>
</pre>
<p>解答群</p>
<p>ア　質問 ANY (&#8216;%オプション%&#8217;)　　<br class="hide-on-med-and-up">イ　質問 ANY (&#8216;_オプション_&#8217;)<br />
ウ　質問 IN (&#8216;%オプション%&#8217;)　　<br class="hide-on-med-and-up">エ　質問 IN (&#8216;_オプション_&#8217;)<br />
<span class="red-text bold">オ　質問 LIKE &#8216;%オプション%&#8217;</span>　　<br class="hide-on-med-and-up">カ　質問 LIKE &#8216;_オプション_&#8217;
</div>
<p>先ほどの午前問題で得た知識があれば、質問に「オプション」というキーワードを含むという条件は、「質問 LIKE &#8216;%オプション%&#8217; 」だとわかります。</p>
<p>答えは、選択肢オです。</p>
<h2 class="mag_h50 bold">選択肢の定番のパターンを知っておく</h2>
<p><span class="bold">SQL の問題の選択肢には、定番のパターンがあります。</span>おそらく、出題者は、過去問題を見て、選択肢の作り方を参考にしているのでしょう。</p>
<p>以下は、設問 3 です。</p>
<div class="card-panel mag_h30">
設問 3</p>
<p>製品のバージョンアップに当たり, コールセンターの対応記録を参考にして機能改善を検討することにした。種別が &#8220;使用法誤解&#8221; であった質問を抽出し, 類似件数の多い順に表示する。次の SQL 文の<span class="black"></span>に入れる正しい答えを, 解答群の中から選べ。</p>
<pre>
<code class="language-sql">SELECT 類似受付番号, COUNT(*) FROM 対応表, 種別表, 類似表
  WHERE '[　　　]'
  ORDER BY COUNT(*) DESC</code>
</pre>
<p>解答群</p>
<p>ア</p>
<pre>
<code class="language-sql">対応表.種別ID = (SELECT 種別ID FROM 種別表 WHERE 種別 = '使用法誤解')
GROUP BY 類似表.類似受付番号</code>
</pre>
<p>イ</p>
<pre>
<code class="language-sql">対応表.種別ID = (SELECT 種別ID FROM 種別表 WHERE 種別 = '使用法誤解')
AND 対応表.受付番号 = 類似表.受付番号 GROUP BY 類似表.受付番号</code>
</pre>
<p><span class="red-text bold">ウ</span></p>
<pre>
<code class="language-sql">対応表.種別ID = 種別表.種別ID AND 対応表.受付番号 = 類似表.受付番号
AND 種別表.種別 = '使用法誤解' GROUP BY 類似表.受付番号</code>
</pre>
<p><span class="red-text bold">エ</span></p>
<pre>
<code class="language-sql">対応表.種別ID = 種別表.種別ID AND 対応表.受付番号 = 類似表.受付番号
AND 種別表.種別 = '使用法誤解' GROUP BY 類似表.類似受付番号</code>
</pre>
</div>
<p>SELECT 文 の FROM の部分に注目してください。<code class="language-sql">FROM 対応表, 種別表, 類似表</code>となっていて、複数（ここでは 3 つ）の表が指定されています。</p>
<p><span class="bold">複数の表を関連付けてデータを読み出すには、WHERE の後の条件として、表 と 表のどの項目 が一致するのかを指定しなければなりません。</span> 間違いの選択肢には、その条件が抜けているのです。</p>
<p>これが、定番のパターンです。</p>
<p>&nbsp;</p>
<p>選択肢ウとエにある<code class="language-sql">対応表.種別ID = 種別表.種別ID AND 対応表.受付番号 = 類似表.受付番号</code>は、表 と 表のどの項目 が一致するのかを指定するものです。</p>
<p>選択肢アとイには、これがないので、間違いだとわかります。</p>
<p>&nbsp;</p>
<p>さらに注目してほしいのは、間違いである選択肢アとイでは、副問い合わせ（ WHERE の後にある SELECT 命令）があり、いかにも立派な内容になっています。</p>
<p>このように、<span class="bold">間違いの選択肢で副問い合わせを使う</span> のも、定番のパターンです。覚えておいてください。</p>
<div class="card-panel z-depth-0 grey lighten-5 teal-text mag_h50 c-round">
<h3 class="mag_h10 bold">副問い合わせ (サブクエリ) とは</h3>
<p>SQL の中に SQL があることを言い、この問題の、例えば 選択肢アを<span class="black"></span>に入れると、以下のようになります。</p>
<pre>
<code class="language-sql">SELECT 類似受付番号, COUNT(*) FROM 対応表, 種別表, 類似表
  WHERE 対応表.種別ID = (SELECT 種別ID FROM 種別表 WHERE 種別 = '使用法誤解') GROUP BY 類似表.類似受付番号
  ORDER BY COUNT(*) DESC</code>
</pre>
</div>
<h2>選択肢の違いに注目する</h2>
<p>間違いの選択肢を消して、正解を選択肢ウとエに絞れたら、それぞれのどこが違うかに注目してください。</p>
<p>両者の違いは、 GROUP BY 句のあとが選択肢ウが「類似表.受付番号」であり、選択肢エが「類似表.類似受付番号」であることだけです。これらの違いだけに注目して、どちらが適切かを判断してください。</p>
<pre class="grey-text text-lighten-3" style="background: #2d2d2d;">
ウ
対応表.種別ID = 種別表.種別ID AND 対応表.受付番号 = 類似表.受付番号
AND 種別表.種別 = '使用法誤解' <span class="red-text bold">GROUP BY 類似表.受付番号</span>

エ
対応表.種別ID = 種別表.種別ID AND 対応表.受付番号 = 類似表.受付番号
AND 種別表.種別 = '使用法誤解' <span class="red-text bold">GROUP BY 類似表.類似受付番号</span>
</pre>
<p>GROUP BY でグループ化したときに SELECT の後に指定できる項目は、そのグループに対する集約関数（ SUM 関数、AVG 関数、MAX 関数、MIN 関数、COUNT 関数 など）か、グループ化した項目だけです。</p>
<p>これは、常識的に考えて当然のことでしょう。</p>
<p>&nbsp;</p>
<p>たとえば、社員を性別でグループ化したら、それぞれのグループの 平均給与（ AVG 関数）や 性別（男性か女性か）しか SELECT できません。それぞれのグループから 氏名 を SELECT するのはおかしなことです。</p>
<p>ここでは、<code class="language-sql">SELECT 類似受付番号, COUNT(*) </code>なので、「 GROUP BY 類似表.類似受付番号」の選択肢エが適切です。</p>
<h2>わからない SQL が出題されたら英語の意味で素直に考える</h2>
<p>いよいよ最後の設問 4 です。選択肢の SQL を見て、面食らうかも知れません。</p>
<p>ALTER TABLE という命令は、過去問題にほとんど出題されたことがないからです。この問題で、ALTER TABLE を初めて見る人もいることでしょう。</p>
<p><span class="bold">見たことのないような命令が答えであることは滅多にないのですが、この問題では、何とビックリ ALTER TABLE を使っている選択肢アが正解</span> なのです。</p>
<div class="card-panel mag_h30">
設問 4</p>
<p>新たに提供する製品に関する質問を記録するために, 現在の表に製品型番の列を追加して製品を識別できるようにする。表の拡張と同時に, これまで蓄積した情報の製品型番の列にはすべて &#8220;A001&#8221; を設定する。正しい SQL 文を, 解答群の中から選べ。</p>
<p>解答群</p>
<pre class="grey-text text-lighten-3 pad_h15" style="background: #2d2d2d;">
　ア ALTER TABLE 対応表 <span class="red-text bold">ADD</span> 製品型番 CHAR(4) DEFAULT 'A001' NOT NULL
　イ ALTER TABLE 対応表 <span class="red-text bold">MODIFY</span> 製品型番 CHAR(4) DEFAULT 'A001' NOT NULL
　ウ CREATE TABLE 対応表 (製品型番 CHAR(4) DEFAULT 'A001')
　エ INSERT INTO 対応表 製品型番 VALUES 'A001'
</pre>
</div>
<p>このような問題を解くには、まず、自分の知っている知識の範囲で、間違いだと判断できる選択肢を消しましょう。</p>
<p>「現在の表に製品型番の列を追加する」のですから、新しい表を作成する CREATE TABLE（選択肢ウ）や、表にデータを登録する INSERT INTO（選択肢エ）ではないはずです。</p>
<p>したがって、答えを選択肢アとイに絞り込めます。</p>
<p>&nbsp;</p>
<p>選択肢アとイの違いは、ADD と MODIFY だけです。</p>
<p>先ほどの設問 3 でも説明したように、これらの違いだけに注目して、どちらが適切かを判断してください。</p>
<p>ADD は「追加する」という意味であり、MODIFY は「変える」という意味です。「現在の表に製品型番の列を追加する」のですから、ADD が適切だとわかります。</p>
<p>&nbsp;</p>
<p>このように、<span class="bold">もしも知らない命令が登場したら、知っている知識で答えを絞り込み、あとは英語の意味で判断してください。</span></p>
<p>ただし、この問題を練習したのですから、 ALTER TABLE という命令の意味を覚えてください。</p>
<p>繰り返しますが、試験対策では、過去の試験に出題された SQL を覚えることが効率的だからです。</p>
<div class="divider mag_tp40 mag_bt10"></div>
<p class="grey-text small-text"><i class="material-icons mag_rt05">info_outline</i>SQL をわかりやすく解説した記事ができました</p>
<p><a href="../../mastering_tech/sql/"></p>
<div class="row valign-wrapper pad_w20">
<div class="col s2 flex pad_00"><img src="../../wp-content/uploads/2020/09/sql_cover.png" alt="" loading="lazy"></div>
<div class="col s10 pad_lt10 blue-grey-text bold">基本情報でわかる SQL 「英語だと思って日本語に訳せばわかる」</div>
</div>
<p></a></p>
<p>&nbsp;</p><p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/gogo_arukikata/guide_db_of_questions_at_pm/">午後問題の歩き方 ｜ 午後問題の読み方～データベース 「 SQL と正規化」</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></content:encoded>
			</item>
	</channel>
</rss>
