> ## Content Index
> Fetch the complete content index at: https://www.geekjp.com/llms.txt
> Use this file to discover other available public pages before exploring further.

# 【基本情報処理技術者試験】最新問題のテクノロジ系をまったり解く　問２６～問３１【令和元年度秋試験】
- URL: https://www.geekjp.com/2019-11-05-022118/
- Published: 2019-11-04T17:21:18.000Z
- Updated: 2019-11-04T17:21:18.000Z
- Description: R01 基本情報技術者試験 秋期試験に挑戦 基本情報技術者試験 （ＦＥ）の問題をまったり解いていきます。 ＩＰＡの資格試験は、過去問からの出題率が高く、確実に合格するためにはどの区分の試験を受けるにしても過去問学習は大事です。 また、独学でも受験可能ですが、用語が多く初めは戸惑うと思います。が、過去問を十分に学習することで合格点に届くラインまでは問題を解けるようになるとおもいます。今は、オンラインやＷＥＢでもたくさんの解説ページがありますが、Ｗｅｂの情報はどこまでうのみにしていいのかわからない部分もありますので、一応書籍を１～３冊ほど買っておくと確実だと思います。 以下に、私のおすすめ書籍を…
- Author: 工学じじい
- Tags: コンピュータサイエンス, 技術, 情報処理技術者試験, アルゴリズム, #Import 2026-07-19 20:21, #Import 2026-07-19 20:24

## R01基本情報技術者試験 秋期試験に挑戦

基本情報技術者試験（ＦＥ）の問題をまったり解いていきます。  
ＩＰＡの資格試験は、過去問からの出題率が高く、確実に合格するためにはどの区分の試験を受けるにしても過去問学習は大事です。  
また、独学でも受験可能ですが、用語が多く初めは戸惑うと思います。が、過去問を十分に学習することで合格点に届くラインまでは問題を解けるようになるとおもいます。今は、オンラインやＷＥＢでもたくさんの解説ページがありますが、Ｗｅｂの情報はどこまでうのみにしていいのかわからない部分もありますので、一応書籍を１～３冊ほど買っておくと確実だと思います。

以下に、私のおすすめ書籍を挙げておきますので、よかったら参考にしてください。

|  |
|  |
|  |
  
  
キタミ式イラストIT塾 基本情報技術者 平成31/01年 (情報処理技術者試験)  
  
最近話題のキタミ式です。解説に漫画や、図表が多く、ビジュアルで訴えてくれるので、繰り返し見ているうちに頭に残りやすいです。  
ただ、Amazon等のレビューにもありますが、解説ってよりは用語の羅列とか辞書のような、書き方になっているので、大事なところがわかりづらいという意見も多いです。  
  
  
|  |
|  |
|  |

  
平成31/01年 イメージ&クレバー方式でよくわかる 栢木先生の基本情報技術者教室  

こちらも有名な、栢木先生シリーズです。イメージはキタミ式と似ていて、図表を多く取り入れており、少し勉強したことがある人なら、頭に書いていることが残りやすいかもしれません。ただ、全くの初学者にとっては、謎の文字と図の羅列に見えてしまうことがありそうです。  
現在新版の予約受付中のようです。  

|  |
|  |
|  |

  
平成31年【春期】/01年【秋期】基本情報技術者 合格教本  
  
後は、これを一冊リファレンスとして持っておけば大丈夫かと思います。  
これ3冊そろえたら、たいてい合格できるんじゃない？って三兄弟です。  
kindle版もありますので、ぜひ通勤途中や、通学途中にお気に入りの音楽でも聴きながら見てみてください！

それでは、問題解いていきまーす。

- [R01基本情報技術者試験 秋期試験に挑戦](#R01基本情報技術者試験秋期試験に挑戦)
  - [令和元年度 基本情報技術者試験 午前問題 問２６～問３１](#令和元年度基本情報技術者試験午前問題問２６問３１)
    - [令和元年度 基本情報技術者試験 午前問題 問２６](#令和元年度基本情報技術者試験午前問題問２６)
    - [解説](#解説)
    - [令和元年度 基本情報技術者試験 午前問題 問２７](#令和元年度基本情報技術者試験午前問題問２７)
    - [解説](#解説-1)
    - [令和元年度 基本情報技術者試験 午前問題 問２８](#令和元年度基本情報技術者試験午前問題問２８)
    - [解説](#解説-2)
    - [令和元年度 基本情報技術者試験 午前問題 問２９](#令和元年度基本情報技術者試験午前問題問２９)
    - [解説](#解説-3)
    - [令和元年度 基本情報技術者試験 午前問題 問３０](#令和元年度基本情報技術者試験午前問題問３０)
    - [解説](#解説-4)
    - [令和元年度 基本情報技術者試験 午前問題 問３１](#令和元年度基本情報技術者試験午前問題問３１)
    - [解説](#解説-5)
  - [次回予告](#次回予告)

### 令和元年度 基本情報技術者試験 午前問題 問２６～問３１

#### 令和元年度 基本情報技術者試験 午前問題 問２６

”得点”表から、学生ごとに全科目の点数の平均を算出し、平均が８０点以上の学生の学生番号とその平均点を求める。aに入れる適切な字句はどれか、実践の下線は主キーを表す。

得点（学生番号，科目，点数）

  
\[SQL文\]

```sql
SELECT 学生番号, AVG(点数)
FROM 得点
GROUP BY [        a        ]
```

| ア | 科目 HAVING AVG(点数) >= 80   |
| - | ------------------------- |
| イ | 科目 WHERE 点数 >= 80         |
| ウ | 学生番号 HAVING AVG(点数) >= 80 |
| エ | 学生番号 WHERE 点数 >= 80       |

#### 解説
  
  
SQL文の構文に関する問題です。  
きっとこんな票があるんだと思います。

表：得点

| 学籍番号 | 科目 | 点数  |
| ---- | -- | --- |
| 1001 | 国語 | 95  |
| 1001 | 数学 | 65  |
| 1001 | 英語 | 80  |
| 1002 | 国語 | 60  |
| 1002 | 数学 | 80  |
| 1002 | 英語 | 50  |
| 1003 | 国語 | 100 |
| 1003 | 数学 | 90  |
| 1003 | 英語 | 95  |

んで、これから、学籍番号別の、平均点を求めて、

| 学籍番号 | avg(点数) |
| ---- | ------- |
| 1001 | 80.0000 |
| 1002 | 63.3333 |
| 1003 | 95.0000 |

その中で平均点が80点以上の人を表示する。

| 学籍番号 | avg(点数) |
| ---- | ------- |
| 1001 | 80.0000 |
| 1003 | 95.0000 |

集計内容に対して、条件を指定するのは  
HAVING句  
なので、HAVINGで、条件を指定している「ウ」が正解です。

実際やってみます。  
  
```sql
mysql> create table tokuten( stuID int, class nchar(20), score int ); 
mysql> insert into tokuten values(1001, "国語", 95); 
mysql> insert into tokuten values(1001, "数学", 65); 
mysql> insert into tokuten values(1001, "英語", 80); 
mysql> insert into tokuten values(1002, "国語", 60); 
mysql> insert into tokuten values(1002, "数学", 80); 
mysql> insert into tokuten values(1002, "英語", 50);
mysql> insert into tokuten values(1003, "国語",100); 
mysql> insert into tokuten values(1003, "数学", 90); 
mysql> insert into tokuten values(1003, "英語", 95);

mysql> select * from tokuten order by stuID,class;
+-------+--------+-------+
| stuID | class  | score |
+-------+--------+-------+
|  1001 | 国語   |    95 |
|  1001 | 数学   |    65 |
|  1001 | 英語   |    80 |
|  1002 | 国語   |    60 |
|  1002 | 数学   |    80 |
|  1002 | 英語   |    50 |
|  1003 | 国語   |   100 |
|  1003 | 数学   |    90 |
|  1003 | 英語   |    95 |
+-------+--------+-------+
9 rows in set (0.00 sec)

mysql> select avg(score) from tokuten;
+------------+
| avg(score) |
+------------+
|    79.4444 |
+------------+
1 row in set (0.00 sec)

mysql> select avg(score) from tokuten group by class;
+------------+
| avg(score) |
+------------+
|    75.0000 |
|    85.0000 |
|    78.3333 |
+------------+
3 rows in set (0.00 sec)

mysql> select  class,avg(score) from tokuten group by class;
+--------+------------+
| class  | avg(score) |
+--------+------------+
| 英語   |    75.0000 |
| 国語   |    85.0000 |
| 数学   |    78.3333 |
+--------+------------+
3 rows in set (0.00 sec)

mysql> select stuID, avg(score) from tokuten
    -> group by stuID having avg(score) >= 80;
+-------+------------+
| stuID | avg(score) |
+-------+------------+
|  1001 |    80.0000 |
|  1003 |    95.0000 |
+-------+------------+
2 rows in set (0.00 sec)

mysql>
```

ほかのはエラーになるので試さなくていいですよね。

#### 令和元年度 基本情報技術者試験 午前問題 問２７

関係モデルにおいて、関係から特定の属性だけを取り出す演算はどれか。  
  
  
| ア | 結合(join)       |
| - | -------------- |
| イ | 射影(projection) |
| ウ | 選択(selection)  |
| エ | 和(union)       |

#### 解説

データベースなどの関係モデルの操作に関する問題です。  
  
| 属性 | 表の列（カラム）のこと |
| -- | ----------- |

| ア | 結合(join)       | 複数のテーブルを結合する操作、内部結合と外部結合がある |
| - | -------------- | --------------------------- |
| イ | 射影(projection) | 条件指定した列（カラム）を抽出する操作         |
| ウ | 選択(selection)  | 条件指定した行を抽出する操作              |
| エ | 和(union)       | selectの結果を１つに統合する操作         |

  
ということで、正解は「イ」  
  
  
#### 令和元年度 基本情報技術者試験 午前問題 問２８

一つのトランザクションはトランザクションを開始した後、五つの状態（アクティブ、アボート処理、アボート済、コミット処理中、コミット済み）を取り得るものとする。このとき、**とることのない**状態遷移はどれか。  
  
  
\\(\\begin{array}{|c|c|c|} \\hline {} & 遷移前の状態 & 遷移後の状態 \\\\ \\hline ア & アボート処理中 & アボート済 \\\\ \\hline イ & アボート処理中 & コミット処理中 \\\\ \\hline ウ & コミット処理中 & アボート処理中 \\\\ \\hline エ & コミット処理中 & コミット済 \\\\ \\hline \\end{array}\\)  
  
  
#### 解説

トランザクション処理の順番を問う問題です。  
トランザクション処理では、いわゆるACIDプロパティを保つために、その操作は必ずすべて成功、または失敗しなければなりません。  
アボートは、トランザクション処理中に何か異常があったり、処理が失敗した場合に、処理を終了させます。  
アボートが起こると、その時行われたすべての更新を廃棄し、ロールバックが起こります。  
コミットは、そのトランザクションのこれまでの一連の操作や変更を確定させる処理です。

このことを踏まえると、アボート処理中の後にアボートが完了することなくコミット処理へ移行することはないのは必然的にわかります。ってことで、答えは「イ」  
  
#### 令和元年度 基本情報技術者試験 午前問題 問２９

２層ロッキングプロトコルに従ってロックを獲得するトランザクションA、Bを図のように同時実行した場合に、デッドロックが発生しないデータ処理順序はどれか。ここで、readとupdateの位置は、アプリケーションプログラムでの命令発行時点を表す。また、データWへのreadは共有ロックを要求し、データX、Y、Zへのupdateは各データへの専有ロックを要求する。  
  
![f:id:gomta777:20191105001533p:image:w450](https://www.geekjp.com/content/files/images/import/hatena/2019/11/20191105001533.png "f:id:gomta777:20191105001533p:image:w450")

  
\\(\\begin{array}{ccc} R(x)&：& xへのread要求 \\\\ U(x)&：&xへのupdate要求 \\end{array}\\)  
  
\\(\\begin{array}{|c|c|c|c|c|} \\hline {}&①&②&③&④ \\\\ \\hline ア & R(W) & U(Y) & U(X) & U(Z) \\\\ \\hline イ & R(W) & U(Y) & U(Z) & U(X) \\\\ \\hline ウ & U(X) & R(W) & U(Y) & U(Z) \\\\ \\hline エ & U(Y) & U(Z) & U(X) & R(W) \\\\ \\hline \\end{array}\\)

#### 解説

分散処理や、データベースのトランザクションで使われる２層ロックの問題です。  
２層ロックは、

共有ロック（Readロック）：読み込みのみを、要求のあったトランザクションすべてに許すロック  
専有ロック（Writeロック）：ロックしたトランザクションのみが読み書きできる排他的なロック

を用いて、２つのトランザクションを並列的に実行する手法です。  
共有ロックは、他社がロックしているものを、ほかの処理がロックしてデータの読み込みのみできますが、専有ロックされると、ロックした処理以外は、そのロックが解除されるまでオブジェクトにアクセスできません。

| ![f:id:gomta777:20191105005025p:image:w300](https://www.geekjp.com/content/files/images/import/hatena/2019/11/20191105005025.png "f:id:gomta777:20191105005025p:image:w300") | ![f:id:gomta777:20191105005052p:image:w300](https://www.geekjp.com/content/files/images/import/hatena/2019/11/20191105005052.png "f:id:gomta777:20191105005052p:image:w300") |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 図１：ロックの共有可能                                                                                                                                                                  | 図２：デッドロック発生                                                                                                                                                                  |

図２では、TAがXを先にロックし、その後Yをロックしようとしていますが、  
すでに、その時点ではTBがYをロックしているため、TBの処理が終了するのを待つことになります。  
さらに、TBはその後、Xをロックしようとしていますが、XはすでにTAがロックしてしまっているので、TAのしょりが終了するのを待つことになります。このように、お互いがお互いの処理を待つ状態になりデッドロックが起こります。

選択肢を時系列順に並べて比べてみます。

| ア | ![f:id:gomta777:20191105005701p:image:w400](https://www.geekjp.com/content/files/images/import/hatena/2019/11/20191105005701.png "f:id:gomta777:20191105005701p:image:w400") |
| - | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

さっきの図１と同じ状況が起こっているので、デッドロック発生する処理です。

| イ | ![f:id:gomta777:20191105005739p:image:w400](https://www.geekjp.com/content/files/images/import/hatena/2019/11/20191105005739.png "f:id:gomta777:20191105005739p:image:w400") |
| - | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

これもお互いに待ち状態が発生しているので、デッドロックします。

| ウ | ![f:id:gomta777:20191105005808p:image:w400](https://www.geekjp.com/content/files/images/import/hatena/2019/11/20191105005808.png "f:id:gomta777:20191105005808p:image:w400") |
| - | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

この処理の流れだと、終わった順に順次処理が行われていくので、デッドロックが起こりません。

| エ | ![f:id:gomta777:20191105005835p:image:w400](https://www.geekjp.com/content/files/images/import/hatena/2019/11/20191105005835.png "f:id:gomta777:20191105005835p:image:w400") |
| - | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

デッドロックのサンプルと同様、お互いがお互いを待ってますね。

正解は「ウ」ですね。  
  
  
#### 令和元年度 基本情報技術者試験 午前問題 問３０

１０Mビット／秒の回線で接続された端末間で、平均１Mバイトのファイルを、１０秒ごとに転送するときの回線利用率は何％か。ここで、ファイルの転送時には、転送量の２０％が制御情報として付加されるものとし、１Mビット＝１０６ビットとする  
  
  
| ア | 1.2 | イ | 6.4 | ウ | 8.0 | エ | 9.6 |
| - | --- | - | --- | - | --- | - | --- |

#### 解説

ファイル転送量の問題ですが、どっちかっていうとbitとbyteでミスを誘う問題です。

端末間の回線は  
１０Mbit/s

１０秒に１度 １Mbyteのデータを送信  
データ送信には転送量の２０％の制御情報が付加される。  
１０秒に１度 １Mbyte+1Mbyte×０．２＝（１＋０．２）×**８Mbit**\=９．６**Mbit**(bitに直してある）  
のデータが流れます。  
これを１秒当たりに直すと、  
９．６÷１０＝０．９６Mbit/s

データ量/回線速度 =０．９６／１０＝０．０９６  
百分率に直して９．６％

「エ」が正解  
  
  
#### 令和元年度 基本情報技術者試験 午前問題 問３１

CSMA/CD方式のLANに接続されたノードの送信動作として、適切なものはどれか。

| ア | 各ノードに論理的な順位付けを行い、送信権を順次受け渡し、これを受け取ったノードだけが送信を行う。                |
| - | --------------------------------------------------------------- |
| イ | 各ノードは伝送媒体が使用中かどうかを調べ、使用中でなければ送信を行う。衝突を検出したらランダムな時間の経過後に再度送信を行う。 |
| ウ | 各ノードを環状に接続して、送信権を制御するための特殊なフレームを巡回させ、これを受け取ったノードだけが送信を行う。       |
| エ | タイムスロットを割り当てられたノードだけが送信を行う。                                     |

#### 解説

| ア | 各ノードに論理的な順位付けを行い、送信権を順次受け渡し、これを受け取ったノードだけが送信を行う。 |
| - | ------------------------------------------------ |

名前があるかわかりませんが、優先制御の説明です。QoSとかの説明でよく見かけます。多分正解じゃないと思います。

| イ | 各ノードは伝送媒体が使用中かどうかを調べ、使用中でなければ送信を行う。衝突を検出したらランダムな時間の経過後に再度送信を行う。 |
| - | --------------------------------------------------------------- |

CSMA/CD方式の説明です。単純な制御方式で効率よく回線を共用できるのが利点だけど、端末の台数の増加とともに急激に性能が落ちるのが知られている。

| ウ | 各ノードを環状に接続して、送信権を制御するための特殊なフレームを巡回させ、これを受け取ったノードだけが送信を行う。 |
| - | --------------------------------------------------------- |

多分、トークンパッシング方式の説明です。円環状にノードを接続し、データの送信権を表すトークンと呼ばれる信号がリング上を高速で周回しており、送信したい端末はこれを取得して送信を開始する。送信が終わるとトークンを再び放流し、別の端末が送信できるようにすることで、ネットワークの衝突を防ぎます。

| エ | タイムスロットを割り当てられたノードだけが送信を行う。 |
| - | --------------------------- |

TDMA(Time Division Multipule Access：時分割多重接続）方式の説明です。データ送信を一定時間間隔で分割して、その分割された単位（スロット）を各ノードに与えることでアクセス制御を行う方式である。

正解は「イ」です。

### 次回予告

これで３１問目、ちょっと中途半端な問題数での更新になってしまいました。  
試験解説をブログでしている人は結構いますが、あっちのサイトには解説ないかもよ？  
こっちで解説見ていってくださいね(笑)

良かったら、押してください！↓↓↓  
  
にほんブログ村