03_データエンジニアリング力_知識



1.

Webスクレイピングに関する記述として、最も適切でないものを選べ。

A. 個人的な調査のためにWebスクレイピングを行う際には、Webサイト管理者の許可なく情報を取得しても構わない
B. Webスクレイピングとは、プログラムやツールを用いてWebサイトからデータを取得することをいう
C. Webサービスによっては、APIという形式でWebサービス上のデータが取得しやすくなっている
D. Webスクレイピングを行う際には、自らコーディングを行わずに、スクレイピングツールを用いて実施することもできる


校正レポート

変更点ログ

要確認リスト



1. A

プログラムやツールを用いて、Webサイトからデータを取得することをWebスクレイピングといいます(B)。Webスクレイピングという用語は、scraping(削ること)という英単語に由来しています。
Webブラウザから情報を取り出す際は、通常は人が見て必要なものを手作業でコピーアンドペーストします。この作業をプログラムやツールを用いて自動化することがWebスクレイピングです。これまではPythonやHTMLなどのコーディングに関する知識がないと、プログラミングによってWebスクレイピングを実行することができませんでしたが、昨今ではコーディングをしなくても、スクレイピングツールを用いれば初心者でも簡単にスクレイピングを実行できます(D)。
スクレイピングツールの代表的なものに、octoparseimport.ioがあります。octoparseは、視覚的にデータを抽出できるWebスクレイピングツールです。import.ioは、URLを入力するだけで、Webサイトのデータを抽出することができる無料のスクレイピングツールです。

Webスクレイピングに関連する用語として、Webクローリングがあります。これは、プログラムがインターネット上のリンクを辿ってWebサイトを巡回し、Webページ上の情報を収集する技術のことです。Webクローリングを行うプログラムは、Webクローラと呼ばれます。

Webスクレイピングを実施する際は、Webスクレイピングの対象となる各Webサイトの利用規約に注意しましょう。利用規約に「Webスクレイピング禁止」と記載があるにもかかわらずWebスクレイピングを行った場合は利用規約違反とみなされます。場合によっては、損害賠償が請求されることもあり得ます(A)。

API(Application Programming Interface)は、プログラム同士で通信を行うための仕組みです(C)。HTTPを用いて通信されるAPIのことを特にWebAPIといいます。GoogleやTwitterのような最近よく利用されるWebサービスでは、そのWebサービスに関する情報を取得できるWebAPIが公開されている場合があります。

試験対策
Webクローラスクレイピングツールを使用すれば、分析用データとして、Webサイト上に公開されている情報を収集することができるということを把握しておきましょう。

参考
APIの設計思想の1つにREST APIという考え方があります。RESTとは、REpresentational State Transferの略で、「統一されたインターフェース」「アドレスの可視性」「接続性」「ステートレス性」に着目した設計思想であり、シンプルなWebシステムを設計する際に基盤となる考え方です。
REST APIは、APIを提供する1つの方法で、現在主流となっており、技術者にとって使いやすいAPIといえるでしょう。「REST」の概念はSOAPと比較されることがあります。SOAPとは、Simple Object Access Protocolの略で、XMLフォーマットで通信を行うプロトコルを定義したものです。
また、APIを応用し、SNSやWebサービス間で「アクセス権限の認可」を行うためのプロトコルであるOAuth認証が実現されていることも覚えておきましょう。


校正レポート

変更点ログ

要確認リスト



2.

RDB(Relational DataBase) に関する記述として、最も不適切なものを選べ。

A. NoSQL は、RDB を管理するためのシステムである
B. RDB では、 によって構成されたデータの形式を テーブル と呼ぶ
C. RDB では、データベースを操作する際に SQL などの データベース言語 を用いることができる
D. RDB の設計や管理を行う際には、ER図 という表現形式が用いられる。ER図 では、エンティティアトリビュートリレーションカーディナリティ という4つの要素で テーブル間の関係性 を定義する


校正レポート

変更点ログ

要確認リスト



2. A

代表的なデータベースの仕組みとして、RDBNoSQLがあります。
RDBRelational DataBase)は、日本語で関係データベースと訳されます。
RDBでは、データはテーブルという単位で管理され、関係リレーション)という概念でモデル化されます。テーブルは、カラム)とレコード)によって構成されています(B)。
また、データベースで管理されているデータを操作する際には、SQLという言語を利用することができます(C)。
RDBを管理するためのソフトウェアをRDBMSRelational DataBase Management System)といいます。RDBMSとしては、MySQL、PostgreSQL、Oracle Rdbなどが有名です。

RDBでは、通常、データベースのテーブル間の関係性が非常に複雑になります。テーブル間の複雑な関係性をわかりやすく可視化するのがER図です(D)。
ER図を作成すると、データベースの構造を俯瞰できるようになります。これにより、データベースを管理しやすいものにすることができます(解答3参照)。

NoSQLは、データベース管理方式を指す言葉であり、RDBを管理するためのシステムではありません(A)。また、SQLを用いずにデータベースにアクセスできる仕組みを、NoSQLデータストアと呼ぶことがあります。

試験対策
RDBは、主に構造化データの管理に用いられます。一方で、映像や音声のような非構造化データを含むさまざまな形式のデータを蓄積したい場合には、ストレージが用いられます。特に近年では、大量のデータを効率的に取り扱うために、オブジェクトストレージが採用されることが多いです。
クラウド上のオブジェクトストレージサービスの例として、Amazon S3、Azure Blob Storage、Google Cloud Storage、IBM Cloud Object Storageなどが挙げられます。
こうしたサービスを利用することで、オンプレミスサーバをストレージとするよりも少ない運用工数でストレージを利用することができます。


校正レポート

変更点ログ

要確認リスト



3.

あるデータベースに、商品テーブル仕入先テーブルを作成した。2つのテーブルの関係をER図にすると、下図のようになる。下図におけるリレーションが示す多重度として、最も適切なものを選べ。ただし、モデルの記法にはIE記法を用いている。

A. 1対1の関係
B. 1対多の関係
C. 多対多の関係
D. 1対0の関係


校正レポート

変更点ログ

要確認リスト



3. B

ER (Entity Relationship) 図は、日本語で「実体関連図」と呼ばれているように、実体の関連を表現するための表現形式です。ER図は、データベースの構造を可視化するのに適しているため、データベースの設計や管理でよく用いられます。
データベースの構造をER図で表現する際は、記号や接続線を用いて、エンティティと呼ばれる要素同士の関連性を表現します。

エンティティとは、データのまとまりのことです。例えば、ECサイトのデータを管理する場合は、店舗に関する情報(店舗所在地・敷地面積など)、商品に関する情報(陳列商品の種類・商品価格など)、顧客に関する情報(年齢・性別など)のようなデータを扱います。これら1つ1つのまとまりのことをエンティティと呼びます。以下の図では「category」がエンティティです。

アトリビュートとは、エンティティ内の各要素のことです。上の図では、「category_id」「name」「last_update」がアトリビュートです。

リレーションとは、エンティティ間の関係性を示す線のことです。後述するカーディナリティと組み合わせて使用することで、各エンティティ間の関係性を詳細に示すことができます。

以下の表は、IE記法(後述)におけるカーディナリティの記号一覧です。

【IE記法におけるカーディナリティの記号】

記号 意味
0
1
2以上

カーディナリティ(多重度)とは、リレーションの始点と終点を一定の記号で表現することです。カーディナリティを用いると、各エンティティ間の関係性を詳細に表現できます。
下図では、左端の縦棒は「1」を意味し、右端の鳥の足のような記号は「多」を表現しています。よって、以下のカーディナリティを用いて、各アトリビュート間に「1対多」という関係性があることを示すことができます。

【IE記法におけるカーディナリティの例】

データベースに特化したER図の記法としては、IDEF1X記法IE記法が代表的です。どちらも、エンティティ、アトリビュート、リレーション、カーディナリティという4つの要素でデータベースの構造が表現されます。

IDEF1X(Integration DEFinition for information modeling)記法は、米国標準技術研究所(NIST)によって規格化された記法です。IDEF1X記法では、各エンティティ間のリレーションを黒丸(●)で表現します。IDEF1X記法の特徴は、IE記法よりも用いる記号の種類が多く、より詳細に表現できる点です。

【IDEF1X記法の例】

IE(Information Engineering)記法は、英国のエンジニア・情報技術コンサルタントであるJames Martin氏によって提唱された記法です。鳥の足のような記号を使うため、「Crow's Foot記法」(Crow's Foot=カラスの足)と呼ばれることもあります。
IE記法では、各エンティティ間のリレーションを鳥の足のような3本線、縦棒(|)、白丸(〇)の組み合わせで表現します。

【IE記法の例a】

以上より選択肢Bが正解です。

【試験対策】
データベース設計だけではなく、設計書をもとに、サーバ1〜10台規模のシステムの構築や運用を行う方法についても学習しておくことで、得点アップが狙えます。


校正レポート

変更点ログ

要確認リスト



4.

RDBに関する次の記述を読み、空欄に当てはまる語句の組み合わせとして、最も適切なものを選べ。

以下の操作が行われたデータは、RDBの設計において( )と呼ばれる。

上記に加え、さらに以下の操作が行われたデータは( )と呼ばれる。

A. (ア)非正規形 (イ)第一正規形
B. (ア)第一正規形 (イ)第三正規形
C. (ア)第二正規形 (イ)第三正規形
D. (ア)第三正規形 (イ)第二正規形


校正レポート

変更点ログ

要確認リスト



4. B

主キーは、行(レコード)を一意に特定するためのカラム(列)を指す用語です。「ID」「出席番号」「通し番号」など、独立した値をもつカラムが該当します。主キー以外のカラムは、非キーと呼ばれます。

主キーと非キーの概念を次図に示します。非キーである「住所」や「点数」は重複する可能性があるため、主キーとして設定するのは適切ではありません。対して、主キーである「個人ID」はそれぞれが独立するように付与されたものであるので、重複することはありません。このように、独立性が担保されたカラムを主キーとして設定する必要があります。以降では、下線は主キーを示すものとします。

【主キーと非キー】

非正規形とは、次図のように、データに同じ属性の繰り返しがある場合など、データの冗長性不整合がある状態を指す用語です。
上段では、「個人ID」という同じ情報をもつカラムが同時に存在しており、データが冗長です。また下段では、1行の中に繰り返し行が含まれており、データが不整合な状態となります。

【非正規形の例】

例1:同じ情報をもつカラムが重複
例2:1行の中に繰り返しを含む

それに対し、1つのセル内に複数の値が存在しない状態など、上記の非正規形のようなデータの冗長性や不整合が解消された状態のことを第一正規形と呼びます(空欄ア)。以下の図では、個人IDの冗長性や不整合が解消されています。

【第一正規形の例】

例1:重複を解消
例2:繰り返しを整合

次に、次の図を見てみます。この図ではデータに冗長性や不整合が見られないため、第一正規形であるといえます。
この図における主キーは、「講座コード」と「社員ID」の2つです。つまり、「講座コード」と「社員ID」が定まることで、非キーが一意に定まる状態です。

一方、「講座名」は「講座コード」だけで一意に決定してしまうため、「非キーが主キーの一部のみに対して従属している」ことになります。このようなデータの状態を部分関数従属といいます。

【第一正規形だが第二正規形でない例】

講座コード 講座名 社員ID 社員名 部署コード 部署
C01 DL講座 000A 田中 D01 営業部
C02 ML講座 090B 佐藤 D02 総務部

部分関数従属を解消するために、テーブルを分割することを考えます。
次の図のように、第一正規形を満たし、かつ部分関数従属が解消されたテーブルを第二正規形と呼びます。

【第二正規形の例】

講座コード 社員ID 社員名 部署コード 部署
C01 000A 田中 D01 営業部
C02 090B 佐藤 D02 総務部
講座コード 講座名
C01 DL講座
C02 ML講座

このようにテーブルを分割しておけば、非キーである「講座名」が後から変更になったとしても、それに対応するテーブルを1行変更するだけでデータを改変することができます。これに対し、第一正規形のテーブルの場合だと、対象となるすべての講座名を変更する必要が生じます。

次に、下図の中の「部署コード」(非キー)と「部署」(非キー)について考えてみます。

【第二正規形だが第三正規形でない例】

講座コード 社員ID 社員名 部署コード 部署
C01 000A 田中 D01 営業部
C02 090B 佐藤 D02 総務部
講座コード 講座名
C01 DL講座
C02 ML講座

主キーである「講座コード」と「社員ID」により、「部署コード」は一意に定められます。しかし、非キーである「部署コード」が定められると、同じく非キーである「部署」も一意に定められます。このような状態を推移的関数従属といいます。

この状態を解消するために、さらにテーブルを次のように切り分けます。

【第三正規形の例】

講座コード 社員ID 社員名 部署コード
C01 000A 田中 D01
C02 090B 佐藤 D02
講座コード 講座名
C01 DL講座
C02 ML講座
部署コード 部署
D01 営業部
D02 総務部

これにより、非キー列は主キー列に対してのみ従属するようになり、推移的関数従属も排除されました。このようなテーブルの状態を第三正規形と呼びます(空欄イ)。

以上より、組み合わせが適切な選択肢Bが正解です。

【試験対策】 非正規形第一正規形第二正規形第三正規形の違いを把握しておきましょう。


校正レポート

変更点ログ

要確認リスト



5.

データ転送に関する次の記述を読み、空欄に当てはまる語句として、最も適切なものを選べ。

以下の特徴をもつ通信プロトコルを( )と呼ぶ。

Webサーバクライアント間で通信するためのプロトコル
HTMLで記載されたテキストや画像の転送に用いる
・通信が暗号化されない欠点がある

A. FTP
B. HTTP
C. HTTPS
D. SCP


校正レポート

変更点ログ

要確認リスト



5. B

FTPFile Transfer Protocol)は、ネットワークを介してデータをやり取りするための手順です。FTPでは、データのやり取りは、FTPサーバとFTPクライアントの間で行われます(A)。
FTPクライアントソフトの代表的なものとしては、FFFTPやWinSCP(Windows用)、CyberduckやFileZilla(クロスプラットフォーム対応)が挙げられます。FTPはシンプルで使い勝手がよい一方で、データの暗号化が行われないため、セキュリティ面で大きな問題をはらんでいるといえます。

SCPSecure Copy Protocol)は、転送するファイルをSSHSecure Shell)で暗号化する方式を採用しており、セキュリティ面でFTPよりも優れています (D)。通信の内容を暗号化するプロトコルとしては他にSFTPSSH File Transfer Protocol)もありますが、通信速度の観点からはSCPのほうが速く、優れています。

HTTPHypertext Transfer Protocol)は、HTMLなどの情報をやり取りする際に使われる通信プロトコルです。インターネットに接続するいかなる環境においても、HTTPを使うことで、Webサイトのデータをやり取りすることができます。
しかし、HTTPでは、通信の内容が平文(暗号化されていない状態)でやり取りされます。そのため、中間者攻撃$^{\text{※}}$などによる情報の漏洩や改ざんといったセキュリティ上の問題が発生するおそれがあります (B)。
中間者攻撃:通信を行う二者間に第三者が割り込み、通信を盗聴したり、通信に介入したりする攻撃手法のこと

HTTPSHypertext Transfer Protocol Secure)は、HTTPと同じ機能をもつ通信プロトコルです。基本的な通信方式はHTTPと同じですが、TLSTransport Layer Security)を利用してデータを暗号化することで、HTTPによる通信を安全に行えるようにしています (C)。TLSは、以前はSSLSecure Sockets Layer)と呼ばれていました。このため、SSL/TLSのように並べて表記される場合もあります。
HTTPSプロトコルを使っていないWebサイトや、SSL/TLSサーバ証明書が発行されていないWebサイトでオンラインショッピングをする場合は、通信の内容が不正に取得・改ざんされるおそれがあります。オンラインショッピングでは名前や住所、クレジットカード番号などの個人情報を入力する必要がありますが、SSL/TLSが使用されていないWebサイトでは、悪意ある第三者に情報が漏れてしまう危険性が高まります。

参考
FTPサーバ、ファイル共有サーバなどから必要なデータファイルをダウンロードして、Excelなどの表計算ソフトに取り込み、活用できるようにしておきましょう。


校正レポート

変更点ログ

要確認リスト



6.

Webブラウザ上でPythonを記述したり実行したりできる代表的な開発環境として、最も適切なものを選べ。

A. Jupyter Notebook
B. Rstudio
C. Tableau
D. DBeaver


校正レポート

変更点ログ

要確認リスト



6. A

Jupyter Notebookは、主にPythonを実行するためのWebアプリケーションです。Jupyter Notebookを利用すれば、コードと合わせてテキストや図、数式を1つのドキュメントとしてまとめることができます。Python以外にも、RJuliaなどの言語にも対応しています。統計解析や、ディープラーニングの開発で多く用いられるWebアプリケーションです (A)

Rは、主に統計解析を目的として利用するプログラミング言語です。Rstudioは、このRを用いた分析を容易にするためのIDE(統合開発環境)です。Rにまつわるファイル、関数、変数、パッケージ、図などを管理することができるため、Rを用いたデータ分析を行う際には必須のツールといえます (B)

Tableauは、プログラミング言語ではなく、データ分析を容易にするBI (Business Intelligence) ツールの一種です。GUI (Graphical User Interface) 上、つまり画面上で感覚的に操作することができるデータ分析ソフトウェアです (C)

DBeaverは、さまざまな種類のデータベースに接続してGUIを介したデータ操作を可能とするツールです。各種データベースに接続し、SQLを用いたデータの加工と取り出しを行うことが可能です (D)

【試験対策】
Pythonのような言語を用いてプログラミングを行う際、バージョン管理ソフトウェアを利用すると開発を円滑に進めることができます。バージョン管理ソフトウェアとは、ソースコードに対して「いつ誰がどのような変更を行ったか」を厳密に記録・管理するための仕組みを提供するものです。バージョン管理ソフトウェアを用いると、以下のようなことを簡単に行うことができます。

・チームメンバーとソースコードを共有すること
・ソースコードのバージョンを過去の時点に戻すこと
・ソースコードの変更点だけを表示させること

代表的なバージョン管理ソフトウェアとして、GitSubversionがあります。

【試験対策】
プログラム言語や環境によって、変数のデータ型ごとに確保するメモリサイズ自動型変換の仕様が異なります。このことを意識しながらプログラムの設計や実装を行う必要があるということを認識しておきましょう。


校正レポート

変更点ログ

要確認リスト



7.

Hadoopに関する次の記述を読み、空欄ア、イに当てはまる語句の組み合わせとして、最も適切なものを選べ。

データを複数台のコンピュータ上に分散保存し、ネットワークを経由して管理するシステムを( ア )という。
また、Apache Hadoopと呼ばれる分散処理技術があり、これは主にHDFSと呼ばれる分散ファイルシステムHadoop MapReduceと呼ばれるデータ処理フレームワークにより成り立っている。Hadoop MapReduceディスク読み書きを大量に行うため、同じデータに対して異なる処理を加える操作には不向きである。そのため、( イ )と呼ばれるインメモリ型の分散処理技術が利用される。

A. (ア)拡散ファイルシステム  (イ)Spark
B. (ア)拡散ファイルシステム  (イ)Flickr
C. (ア)分散ファイルシステム  (イ)Spark
D. (ア)分散ファイルシステム  (イ)Flickr


校正レポート

変更点ログ

要確認リスト



7. C

データを複数台のコンピュータ上に分散保存し、ネットワークを経由して管理するシステムを分散ファイルシステムと呼びます(空欄ア)。
ネットワーク上にファイル格納領域を提供し、ローカルディスクにデータが存在している場合と同じようにクライアント側で利用できる仕組みの総称です。
この用語は広義に解釈され、古くからLAN内で使用されてきた共有ファイルシステムのNFS(Network File System)、Webサーバの拡張により実装されるWebDAV、Perlで記述され通信にHTTPを利用したMogileFSなども分散ファイルシステムに当たります。

【分散ファイルシステムのイメージ】

Apache Hadoop(Hadoop)とは、大規模データを効率的に分散処理・管理するためのソフトウェア基盤(ミドルウェア)の1つです。Java言語で開発されており、開発元のASF(Apache Software Foundation)によってオープンソースソフトウェアとして公開されています。
Hadoopは、分散ファイルシステムであるHDFS(Hadoop分散ファイルシステム)と、分散処理フレームワークであるHadoop MapReduceの2つから構成されます。

MapReduceは、分散保存されたデータを収集し、計算などの処理を施すためのフレームワークで、Google社によって提案されました。データの抽出と分解を行うMap処理、集約と計算を行うReduce処理の組み合わせでデータを処理します。

Sparkは、ビッグデータや機械学習など、大規模なデータを扱うクラスターコンピューティング向け分散処理フレームワークです。従来のMapReduceの処理速度を向上させるため、データの格納場所をHDDやSSDではなくメモリにすることで、Hadoopよりも高速な処理を実現しています(空欄イ)。

なお、Flickrは写真共有サービスの名称であり、本問には適しません。

以上より、組み合わせが適切な選択肢Cが正解です。


校正レポート

変更点ログ

要確認リスト



8.

セキュリティの3要素として、最も適切なものを選べ。

A. 機密性・秘匿性・重要性
B. 秘密性・完全性・可用性
C. 機密性完全性可用性
D. 秘密性・秘匿性・重要性


校正レポート

変更点ログ

要確認リスト



8. C

機密性(Confidentiality)とは、情報に正当な権限をもつ者だけがアクセスできる状態を表します。決められた人だけがデータにアクセスできるようにすることで、情報漏洩データ改ざんなどのリスクが低減されます。例えば、「誰でもアクセスできる共用PCにデータを置くこと」は機密性が低い状態といえます。

完全性(Integrity)とは、情報に欠損・不備・誤りがない状態を表します。また、情報が最新かつ正しい状態であるという意味でもあります。アクセス履歴と改変履歴が残らないような情報管理は完全性が低いといえます。完全性を確保できないと、「オンラインマップのデータが数年前のものであるため、間違った道案内をしてしまう」などのアクシデントが起こる可能性があります。

可用性(Availability)は、システムが障害(機器やパーツの故障・災害・アクシデントなど)で停止することなく稼働し続ける状態をいいます。一般的に、可用性は「一定時間のうち、システムを稼働可能な時間の割合」を意味する稼働率で定量化することができます。
特に、クラウドサービスやレンタルサーバなどでは、この稼働率がサービスの品質を判断するSLAの基準値とされている場合もあります。
SLA(Service Level Agreement)とは、ITサービスの分野で使われる用語です。通信サービスやクラウドサービス、レンタルサーバなどの提供を受ける際、保証するサービス内容や責任範囲を詳細に規定しておき、それを達成できなかった場合の対処法などを定めたものを指します。

以上より、選択肢Cが正解です。

試験対策
セキュリティの3要素「機密性・完全性・可用性」を覚えておきましょう。


校正レポート

変更点ログ

要確認リスト



9.

アクセス制御を実現するための3要素として、最も適切なものを選べ。

A. 認証認可監査
B. 承認・認可・監査
C. 機密・完全・可用
D. 秘密・完全・可用


校正レポート

変更点ログ

要確認リスト



9. A

認証とは、ユーザーが当の本人であるか確認することです。認証方法としては、「ID・パスワード認証」のほか、「クライアント証明書」、「指紋や網膜を使った生体認証」などが一般的です。

認可とは、認証済みのユーザーがリソースにアクセスできるかどうかを確認することです。アクセス制御リストの条件を参照し、ユーザーがアクセスできる範囲を制限する機能です。
アクセス制御リスト(Access Control List:ACL)は、ファイルやフォルダなどへのアクセス権に関するユーザー情報を記したものです。ユーザーはリスト内の条件を満たせば、ネットワークにアクセスすることができます。ACLには複数の条件を設定することができます。

監査は、ユーザーのアクセス履歴を監視することです。主に、アクセス制限の検証・改善を行います。アクセス履歴を分析することで、認証・認可で設定したアクセス制御が適切かどうかを確認することができます。過去のアクセスログを調査することで、不正ログインの痕跡を追跡したり、サイバー攻撃者を特定することも可能です。

以上より、選択肢Aが正解です。

試験対策
アクセス制御に関わる3要素「認証・認可・監査」を覚えておきましょう。


校正レポート

変更点ログ

要確認リスト



10.

共通鍵暗号方式に関する記述として、最も適切なものを選べ。

A. 共通鍵をもたない第三者でも、元のデータの内容を知ることができる
B. 共通鍵暗号方式を用いる場合は、共通鍵を相手に渡す必要はない
C. 共通鍵を盗んだ第三者は、暗号文復号できる
D. 復号する際には、秘密鍵を用いる


校正レポート

変更点ログ

要確認リスト



10. C

共通鍵暗号方式は、データの送信者と受信者が共通の鍵(共通鍵)のみを用いて暗号化復号を行う暗号方式です。以下のような特徴があります。

【共通鍵暗号方式】

共通鍵暗号方式は、鍵を相手に送信する必要があるため(B)、第三者に鍵を盗まれるリスクがあります。鍵が盗まれると、暗号文を復号されてしまいます(C)。一方で、ファイルやデータの暗号化にかかる処理速度が速いというメリットもあります。

【試験対策】
暗号化されていないデータは、不正に取得されると容易に中身を知られてしまうため、データの機密度に応じた暗号化を行う必要があるということを覚えておきましょう。

【参考】
データの暗号化は、ソフトウェアを利用すると簡単に行うことができます。データの暗号化ソフトには、日立ソリューションズ社が提供している「秘文」などがあります。


校正レポート

変更点ログ

要確認リスト



11.

公開鍵暗号方式に関する記述として、最も適切なものを選べ。

A. データの送信者は秘密鍵を使用して暗号化を行う
B. 暗号化復号は、公開鍵のみあれば行うことができる
C. 公開鍵を用いて暗号化されたデータは、秘密鍵をもつ者のみが復号できる
D. 第三者に内容を傍受されることは決してない


校正レポート

変更点ログ

要確認リスト



11. C

公開鍵暗号方式とは、受信者が2つの鍵(秘密鍵公開鍵)を作り、公開鍵を任意の送信者に公開する暗号方式です(A)。
公開鍵暗号方式のポイントは、鍵が「2つ」あることです。これら2つの鍵には関連があり、一方の鍵で暗号化したメッセージは、対となる他方の鍵でしか復号できないという性質をもちます(B)。
送信者は、受信者から送られてきた公開鍵を使って暗号化したデータを送ります。受信者は、その暗号化されたデータを自分がもっている秘密鍵で復号します(C)。
このように公開鍵暗号方式は、共通鍵暗号方式より安全性の高い暗号方式といえます。

公開鍵暗号方式の特徴をまとめると、以下のとおりです。

・データの送信者は受信者公開鍵を使って暗号化をする
・暗号化されたデータは、秘密鍵をもつ者のみが復号できる

【公開鍵暗号方式】

しかし、公開鍵暗号方式にも課題がいくつか残されています。例えば、ハッカーが送信内容を傍受して、改ざんした内容を受信側に送付する可能性があるということや、公開鍵を偽造すれば通信内容を復号できることなどが挙げられます(D)。


校正レポート

変更点ログ

要確認リスト



12.

電子署名に関する記述として、最も適切なものを選べ。

A. 個人の筆跡をスキャナで読み取り電子化したものを電子署名という
B. 公開鍵を用いて平文を暗号化することによって得られるものである
C. 電子署名には送信者の情報が含まれるため、受信者に送信しないほうがよい
D. ハッシュ値の一致性を根拠にした改ざん検知を行っている


校正レポート

変更点ログ

要確認リスト



12. D

公開鍵暗号方式には、情報が改ざんされるリスクがあります(解答11参照)。これを解消するために考案されたのが、電子署名という考え方です。
電子署名を用いたデータ改ざん検知の流れを以下に示します。

【電子署名による改ざん検知】

  1. データの送信者と受信者はそれぞれ秘密鍵公開鍵を作り、公開鍵を相手に渡す
  2. 送信者は、平文を受信者公開鍵で暗号化した暗号文と、平文のハッシュ値(後述)を暗号化したデータ(電子署名)を、受信者に送信する
  3. 受信者は、暗号文を受信者秘密鍵で復号した後ハッシュ化し、電子署名を送信者公開鍵で復号したデータ(ハッシュ値)と突合する
  4. それらが一致すれば、改ざんなしと判断する

手順の2で平文のハッシュ値を得るために用いられるのが、ハッシュ関数です。
ハッシュ関数とは、入力されたデータの長さにかかわらず、必ず固定長のデータを出力する関数のことです。ハッシュ関数から得られるデータのことをハッシュ値といいます。ハッシュ関数のアルゴリズムにはいくつか種類があり、MD5SHA-1SHA-2SHA-3などが存在します。さらに、SHA-2やSHA-3の中にも種類があり、ハッシュ値のビット数に応じて名称が変わります。

ハッシュ関数の主な特徴としては、「同じデータからは必ず同じハッシュ値が出力される」ことが挙げられます。データの改ざん検知は、この性質を利用して行われます。
以上より、選択肢 D が正解です。

スキャナで読み取った筆跡は画像データであり、電子署名ではありません(A)。
公開鍵を用いて平文を暗号化したものは暗号文です(B)。
電子署名を受信者(相手方)に送ることで、データが改ざんされていないことを証明します(C)。

参考
ハッシュ関数は主に、データの比較処理の高速化、改ざんの検出、パスワードの管理などで使用されています。


校正レポート

変更点ログ

要確認リスト



13.

以下の記述を読み、空欄アに入る語句として、最も適切なものを選べ。

( ア )はコンテナと呼ばれる仮想環境上でアプリケーションを開発、移動、実行するためのプラットフォームである。( ア )を用いると、1台のコンピュータ上に、隔離された複数の環境を構築できる。

A. Docker
B. Finder
C. Linux
D. Ubuntu


校正レポート

変更点ログ

要確認リスト



13. A

Dockerは、コンテナ型の仮想化を実装するソフトウェアです(A)。Docker社が開発し、2013年にオープンソースとして公開されました。Dockerには、以下の特長があります。

Dockerのリポジトリは、インターネット上で公開されています。リポジトリとは、Dockerのイメージが保管されている場所を指します。最も一般的なDocker Hubというリポジトリからは、さまざまな定義済みイメージを入手することが可能です。通常、ソフトウェアを利用する際には、インストールを行い、初期設定を完了させ、その後、細かな設定などをカスタマイズする必要があります。しかし、Docker Hubで公開されているようなイメージではあらかじめ設定が済んでいるため、すぐにソフトウェアを実行させることができます。

Finderは、macOSで使用するファイルマネージャの名称です(B)。LinuxUbuntuは、オペレーティングシステムの名称です(C、D)。


校正レポート

変更点ログ

要確認リスト



14.

以下の記述を読み、空欄に入る語句として、最も適切なものを選べ。

)は、機械学習システムの開発および運用において、機械学習エンジニアシステム運用者効率的につなぐための考え方である。

A. コーポレートガバナンス
B. MLOps
C. クラウドソーシング
D. XAI


校正レポート

変更点ログ

要確認リスト



14. B

MLOpsは、スキルセットの異なる機械学習エンジニア実運用者を効率的につなぐための考え方です(B)。Machine Learning(機械学習)運用(Operations)を合わせた造語であり、MLOpsの考え方は、DevOps(Development & Operation)という概念が基になっています。AIシステムの運用改善や改修は、このMLOpsのワークフローに従って実施することが望ましいとされています。

コーポレートガバナンスは、企業経営を管理監督する仕組みのことです(A)。クラウドソーシングは、不特定多数の人から寄与を募り、必要とするサービス、アイデア、またはコンテンツを取得するプロセスのことです(C)。XAIとは「説明可能なAI」のことで、機械学習モデルが出力する結果および

その根拠を人間が理解できる人工知能を指します(D)。

参考
Google社はMLOpsについて、「MLOpsとは、MLシステム開発(Dev)MLシステムオペレーション(Ops)の統合を目的とするMLエンジニアリングの文化と手法」と定義しています。
【出典】
https://cloud.google.com/blog/ja/products/ai-machine-learning/key-requirements-for-an-mlops-foundation


校正レポート

変更点ログ

要確認リスト



15.

以下のフローチャートにおいて、下の条件で実行される処理として、最も適切なものを選べ。

A. 処理1
B. 処理2
C. 処理3
D. 処理は行われない


校正レポート

変更点ログ

要確認リスト



15. B

プログラムを実装する際には、アルゴリズムを可視化するために、フローチャートと呼ばれる設計図を作成します。
フローチャートの基本的なルールは以下のとおりです。

・処理の流れは原則として上から下へ、左から右へ、それに逆行する場合は矢印をつける
・線が交差しないようにする
・2つ以上の線を集めて1つの線にしてよい

また、フローチャート内で用いる記号はJIS規格によって定められています。
それらのうち、ここでは設問で用いられた記号について解説します。

判断のフローで条件分岐を行う際は、その真理値Trueの場合にはYesに、Falseの場合にはNoに進みます。
設問の条件で分岐を行った結果、処理2が実行されます(B)。

参考
プログラムが意図どおりに動くかどうかをテストする方法に、ホワイトボックステストブラックボックステストがあります。
ホワイトボックステストは、仕様書どおりにプログラムが組まれているかどうかまでをチェックするテストであるため、基本的に開発者によって行われます。それに対してブラックボックステストは、プログラム内部の構造を考慮せず、ソフトウェアがユーザーの要望どおりに動作するかどうかをテストするため、開発者以外でもテストすることが可能です。

試験対策
近年では、自分でプログラムを組まなくても、画面を操作して機械学習モデルを構築することができるサービスが多くリリースされています。このようなツールは、一般的にAutoMLと呼ばれ、さまざまなビジネスシーンで活用されています。主なAutoMLサービスとして、Prediction OneDataRobotがあります。これらの名称は試験にも登場する可能性があるので、主な機能を把握しておくとよいでしょう。


校正レポート

変更点ログ

要確認リスト



16.

次のように動作するプログラムを作成した。

1から100まで、順番に数字を出力していく
3で割り切れるときは、数字の代わりに「Fizz」を出力する
5で割り切れるときは、数字の代わりに「Buzz」を出力する
3と5の両方で割り切れるときは、数字や「Fizz」「Buzz」の代わりに「FizzBuzz」を出力する

得られる出力は次のとおりである。

1, 2, Fizz, 4, Buzz, Fizz, 7, 8, Fizz, Buzz, 11, Fizz, 13, 14, FizzBuzz, 16, ...

このプログラムの動作を表す以下のフローチャートの空欄ア、イ、ウに入る命令の組み合わせとして、正しいものを選べ。

A.

(ア) $i$が3の倍数かつ5の倍数
(イ) $i$を出力
(ウ) FizzBuzzと出力

B.

(ア) $i$が3の倍数ではなく5の倍数でもない
(イ) $i$を出力
(ウ) FizzBuzzと出力

C.

(ア) $i$が15の倍数
(イ) FizzBuzzと出力
(ウ) $i$を出力

D.

(ア) $i$が3の倍数または5の倍数
(イ) FizzBuzzと出力
(ウ) $i$を出力


校正レポート

変更点ログ

要確認リスト



16. C

アルゴリズムフローチャートで表現する方法を問う問題です。
本問はFizzBuzz問題と呼ばれ、プログラミングを学ぶ際の例題として非常に有名です。
同じ出力をする場合であってもプログラムの書き方が一通りであるとは限りないので、本問とは異なるフローチャートを作ることも可能です。しかし、本問において、FizzBuzz問題を解くためのフローを表現しているのは選択肢Cのみです。
不正解の選択肢について考えます。

A 「$i$が3の倍数かつ5の倍数」、すなわち「$i$が15の倍数」がYesのときに「$i$を出力」しますが、正しくは「FizzBuzzと出力」なので誤りです。
B 「$i$が3の倍数ではなく5の倍数でもない」ときに「$i$を出力」している点は問題ありません。しかしその後、「$i$が3の倍数」の条件分岐で、「Fizzと出力」に進んでしまいます。このままでは、例えば$i=15$であるときに「Fizzと出力」だけされてしまい、「FizzBuzzと出力」に進みません。
D 「$i$が3の倍数または5の倍数」がYesのときに「FizzBuzzと出力」に進みますが、$i=3$でも$i=5$でも「FizzBuzzと出力」に進んでしまいます。

わかりづらい場合は、フローチャートの変数$i$に具体的な数字を入れて確かめてみるとよいでしょう。


校正レポート

変更点ログ

要確認リスト



17.

以下の記述を読み、空欄ア、イに入る語句の組み合わせとして、最も適切なものを選べ。

販売数量表をある基準に従って並べ替えた結果を以下に示す。このとき、2番目に優先順位が高いキーは( ア )であり、最も優先順位が低いキーは( イ )である。なお、並べ替えにあたっては、4つのキーを用いた。

【ある基準に従って並べ替えた販売数量表】

日付 顧客ID アイテムID 販売数量
4月1日 001 002 3
4月1日 002 003 2
4月2日 002 001 6
4月2日 001 002 5
4月2日 003 003 3
4月3日 004 003 8
4月3日 005 002 6
4月3日 003 003 6
4月3日 004 003 6
4月3日 005 004 2

A. (ア)日付の昇順 (イ)アイテムIDの昇順
B. (ア)アイテムIDの昇順 (イ)販売数量の降順
C. (ア)顧客IDの昇順 (イ)日付の降順
D. (ア)販売数量の降順 (イ)顧客IDの昇順


校正レポート

変更点ログ

要確認リスト



17. D

表計算ソフトのデータを複数キーで並べ替える方法と、その結果に関する問題です。
並べ替えには昇順と降順という考え方があります。
昇順とは、数値の小さいものから大きいものに向かって並べる順序のことです。問題に示したような表の場合、上から下に向かって数値が大きくなる順序が昇順です。並べ替えの対象が文字である場合は、「A、B、C」や「あ、い、う」のような、一般に「アルファベット順」「五十音順」と呼ばれる、前方から後方に向かう順序が昇順です。対象が日付の場合は、1月1日→1月2日のような、古い日付から新しい日付に向かう順序が昇順です。
昇順と逆向きの順序を降順といいます。数字の場合は大きいものから小さいものに、文字の場合は後方から前方に向かう順序が降順です。日付の場合は、新しい日付から古い日付に向かう順序が降順です。

問題に示した表では、「日付」列だけが全行を通して昇順に並べ替えられています。このことから、「日付の昇順」が最も優先順位が高い順序であるといえます。次に、日付が同一であるデータについて他の列の値を見ると、4月2日の「販売数量」列の値が6、5、3と降順に並んでおり、4月3日の場合も同様に降順が維持されています。このことから、「販売数量の降順」が2番目に優先順位が高い順序であるといえます。続いて、販売数量が同一であるデータについて「顧客ID」列と「アイテムID」列の順序を見ると、「アイテムID」列の昇順が「顧客ID」列よりも優先されていることがわかります。

以上より、最も適切な組み合わせである選択肢Dが正解です。


校正レポート

変更点ログ

要確認リスト



18.

下表は、ある小売店舗の販売数量を集計した結果である。表の最終行の指標を求めるために使われた表計算ソフトの関数として、適切なものを選べ。

【ある小売店の販売数量の集計結果】

年月 販売数量合計
2023年1月 100
2023年2月 150
2023年3月 130
2023年4月 80
2023年5月 80
2023年6月 70
2023年7月 90
2023年8月 110
2023年9月 120
2023年10月 140
2023年11月 170
2023年12月 200
120

A. AVERAGE(B2,B13)
B. MEDIAN(B2,B13)
C. AVERAGE(B2:B13)
D. MEDIAN(B2:B13)


校正レポート

変更点ログ

要確認リスト



18. C

表計算ソフトによる基本統計量の計算について問う問題です。
Microsoft Excelをはじめとする表計算ソフトでは、各種関数を使用することによりさまざまな統計処理を行うことが可能です。
AVERAGE関数は、指定した値の組の算術平均を計算する関数です。また、MEDIAN関数は、指定した値の組の中央値を求める関数です。

このような関数への値の渡し方には、対象となるセルを1つずつ個別に指定する方法と、範囲で指定する方法の2通りの方法があります。前者の方法では、セルのアドレスをカンマ (,) で区切ることにより複数セルを指定します。この方法は、対象となるセルの個数が少ない場合や、対象となるセルのアドレスが飛び飛びの場合に有効ですが、通常、複数の値から単一の値を計算する集約関数では用いられません(A、B)。集約関数を使用する場合には、コロン (:) を使用して対象となるセルの範囲の始点と終点を指定するのが一般的です。

問題に示した表の最終行に記載されている指標は、1月から12月までの販売数量の平均値と一致します。この値は、平均処理に対応するAVERAGE関数B2:B13 の範囲に適用することで得られます(C、D)。

以下に、データ分析の過程で行われるさまざまな処理を実現するExcelの関数・機能をまとめます。

データ分析において用いられる主なExcelの機能・関数

用途 Excelの機能・関数 機能・関数の概要
条件を指定したフィルタリング オートフィルター 特定の条件に基づいてデータをフィルタリングする
条件を指定したフィルタリング FILTER関数 指定した条件に一致するデータのみを抽出する
条件を指定したフィルタリング 条件付き書式 条件を満たすセルの書式を変更し、視覚的に強調する
条件を指定したフィルタリング IF関数 条件に応じて異なる値を返す
条件を指定したフィルタリング SEARCH関数 文字列内で特定の部分文字列を検索し、位置を返す
条件を指定したフィルタリング COUNTIF / COUNTIFS 関数 指定した条件に一致するセルの数をカウントする
複数キーによるソート 並べ替え(データ → 並べ替え) 複数のキーを指定してデータを並べ替える
複数キーによるソート SORT関数 指定範囲のデータを昇順または降順に並べ替える
複数キーによるソート SORTBY関数 指定した別の列の値を基準にデータを並べ替える
データ結合とUNION VLOOKUP関数 指定した値を検索し、対応するデータを取得する
データ結合とUNION XLOOKUP関数 VLOOKUP関数より柔軟にデータを検索し、対応する値を取得する
データ結合とUNION INDEX関数MATCH関数の組み合わせ 行・列の位置を指定して値を取得する
データ結合とUNION Power Query(内部結合・外部結合・自己結合・UNION処理) データの結合やUNION処理を実施する
データ結合とUNION データモデル(Power Pivot) 複数のデータセットを統合して分析する
NULL値や想定外・範囲外データの処理 IFERROR関数 計算式のエラー時に指定した値を返す
NULL値や想定外・範囲外データの処理 IFNA関数 #N/Aエラー時に指定した値を返す
NULL値や想定外・範囲外データの処理 ISBLANK関数 セルが空白かどうかを判定する
値の表現形式の変換 CHOOSE関数 リスト内の指定した位置の値を取得する
値の表現形式の変換 SWITCH関数 指定値に応じて異なる結果を返す

※次ページに続く

用途 Excelの機能・関数 機能・関数の概要
ランダムまたは一定間隔の抽出 RAND関数 0以上1未満のランダムな数値を生成する
RANDBETWEEN関数 指定範囲内のランダムな整数を生成する
MOD関数 IF関数やROW関数と組み合わせることで、指定した間隔ごとにデータを抽出するのに利用可能
SEQUENCE関数 一定間隔の数列を生成する
FILTER関数 + ROWS関数の組み合わせ 一定の行間隔でデータを抽出する
データ集計(合計・最大・最小・カウント) SUM関数 指定範囲の数値の合計を計算する
MAX関数 指定範囲の最大値を取得する
MIN関数 指定範囲の最小値を取得する
COUNT関数 数値が含まれるセルの個数をカウントする
COUNTIF / COUNTIFS関数 指定した条件に一致するセルの数をカウントする
SUBTOTAL関数 フィルター適用後のデータの集計を行う
ピボットテーブル データを集計・整理・分析するためのツール
Power Queryの集計機能 データを集計し、レポートを作成する
データ型の変換 TEXT関数 数値を文字列や日付形式に変換する
DATE関数 年・月・日を指定して日付を作成する
VALUE関数 文字列を数値に変換する
Power Query(データ型の変更) データ型を変更し、適切な形式に変換する

試験対策
BIツール(第9章を参照)やJupyter Notebookなど、さまざまなツールがデータ分析を行う手段として普及していますが、Microsoft Excelのような表計算ソフトを使用してデータ分析を行う場合も多いです。
上記の表に示したExcelの機能・関数を使いこなすことで、表計算ソフトを用いた分析をスムーズに行うことができます。特に、基本的な関数や機能の概要と使い方については、しっかりと覚えておきましょう。


校正レポート

変更点ログ

要確認リスト



19.

機械学習の予測モデルを運用するとき、業種や業態を問わず汎用的に利用可能なモデルがクラウドサービスWeb APIとして利用できることがある。ここでは、このようなモデルを予測APIと呼ぶことにする。予測APIの特徴に関する以下の記述のうち最も適切なものを選べ。

A. ほとんどの予測APIでは、利用規模に応じたプランが用意されているため、あるWebアプリに予測APIを利用する場合、そのWebアプリのユーザー数が増えても運用を継続できる

B. 予測APIでは利用側のコンピュータに高い性能が求められないため、IoT分野において何らかの予測を行う場合は、必ず予測APIが用いられる

C. 予測APIは、誰でも簡単に利用できるものであるため、利用にあたって機械学習の知識を全く必要としない

D. 予測APIでは、自社で機械学習モデルの管理を行う必要がないため、自社のシステム開発者は予測APIのバージョンを意識する必要がない


校正レポート

変更点ログ

要確認リスト



19. A

機械学習系のサービスを Web API 経由で利用する際に考慮すべき点を問う問題です。
機械学習モデル を組み込むシステム開発では、訓練データの収集や分析、モデリングに多大な工数を必要とします。目的に合う機械学習モデルの Web API を使用することで、これらの工数を大幅に削減し、開発を迅速に進めることができます。

クラウドサービス では、利用者側の 規模拡大(スケーラビリティ) に柔軟に対応できる仕組みが一般的に提供されます(A)。
機械学習モデルを組み込むシステム開発では、予測結果が期待どおりの パフォーマンス を維持しているかを確認するための 監視システム を、予測APIとは別で用意する必要があります。このとき、 機械学習の知識 が必要となります(C)。予測APIが高い 汎化性能 をもっているとしても、それを過信せず 継続的に評価 する仕組みを用意することが重要です。
また、 IoTデバイス では、予測の リアルタイム性 や厳しい セキュリティ要件 を考慮して、データをクラウドへ送る代わりに IoTデバイス側で処理 することが選ばれるケースもあります(B)。

Web APIが大幅な 機能更新 を行う場合、 現行バージョン が引き続き使用可能かどうかを確認する必要があります。現行バージョンと 互換性 のない仕様が新バージョンに含まれる場合には、その 影響を評価 する工程が必要になります(D)。


校正レポート

変更点ログ

要確認リスト



20.

PythonRを使ったデータサイエンスプロジェクトでは、クラウド上でNotebookを利用してデータの抽出やコーディングを進めることがある。これらサービスの利用に関する記述として、適切なものの組み合わせを選べ。

(ア)この種のサービスでは、開発環境内からコードリポジトリへのアクセスが一般的に可能である。設定次第ではMLOpsのコード開発部分をサービス上で実施できる

(イ)モデルの学習に使用したハイパーパラメータやその際のモデル精度などを記録するためのサービスを利用できることがある。このサービスを利用することにより、採択するモデルを決定するまでのプロセスを効率的に進められる

(ウ)この種のサービスには、開発環境と生成 AI サービスを連携できるものがある。この連携機能を使用することにより、コーディングと分析の効率を高められる

A. (ア)
B. (イ)
C. (ア)と(ウ)
D. すべて正しい


校正レポート

変更点ログ

要確認リスト



20. D

クラウド上の統合開発環境の付加的機能と期待される効果について問う問題です。

1. MLOpsと自動化パイプラインについて

MLOpsとは、機械学習プロジェクトを効率よく運用し、継続的に価値を提供するための実践方法です。これには、データ処理モデル学習モデル評価デプロイメントモニタリングといったプロセスが自動化されるパイプラインが含まれます。

このパイプラインは、データの追加やコードの変更などによって実行されるように設定することが可能です。そして、ほとんどの場合、統合開発環境Gitによるコード管理に対応しています。つまり、開発環境上でコードが変更されたら、コードリポジトリのコードが変更され、その変更が発生したら何らかの処理を実行するというパイプラインを組むことができます。したがって、(ア)は適切です。

2. ハイパーパラメータの記録とMLflow

統合開発環境サービスによっては、モデル学習などのジョブを実行した際に、モデルのハイパーパラメータや学習済みモデルの評価結果を記録するように設定できることがあります。

どのようなハイパーパラメータを使用したときに、どれほどのパフォーマンスが出るかを適切に記録しておくことで、モデル選定のために必要なレポートを素早く作成できます。したがって、(イ)は適切です。なお、この機能を実現するための主要なOSS(オープンソースソフトウェア)としてMLflowが挙げられます。

3. AIによるコーディング支援

多くの統合開発環境サービスでは、AIを活用したコーディング支援ツールを提供しています。たとえば、ある関数の書き方やエラーの修正方針について提案を受けることができます。したがって、(ウ)は適切です。


結論

以上より、記述はすべて正しいため、選択肢Dが正解です。


校正レポート

変更点ログ

要確認リスト

← → キーで移動 / Ctrl+P でPDF保存