Webスクレイピングに関する記述として、最も適切でないものを選べ。
A. 個人的な調査のためにWebスクレイピングを行う際には、Webサイト管理者の許可なく情報を取得しても構わない
B. Webスクレイピングとは、プログラムやツールを用いてWebサイトからデータを取得することをいう
C. Webサービスによっては、APIという形式でWebサービス上のデータが取得しやすくなっている
D. Webスクレイピングを行う際には、自らコーディングを行わずに、スクレイピングツールを用いて実施することもできる
プログラムやツールを用いて、Webサイトからデータを取得することをWebスクレイピングといいます(B)。Webスクレイピングという用語は、scraping(削ること)という英単語に由来しています。
Webブラウザから情報を取り出す際は、通常は人が見て必要なものを手作業でコピーアンドペーストします。この作業をプログラムやツールを用いて自動化することがWebスクレイピングです。これまではPythonやHTMLなどのコーディングに関する知識がないと、プログラミングによってWebスクレイピングを実行することができませんでしたが、昨今ではコーディングをしなくても、スクレイピングツールを用いれば初心者でも簡単にスクレイピングを実行できます(D)。
スクレイピングツールの代表的なものに、octoparseとimport.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認証が実現されていることも覚えておきましょう。
<pb: 14_157_1> は、指定された図の形式([図:...])ではなくページ区切り(page break)のマーカーと判断し、構造維持の観点からそのまま残しています。図のプレースホルダーである場合は修正が必要ですのでご確認ください。RDB(Relational DataBase) に関する記述として、最も不適切なものを選べ。
A. NoSQL は、RDB を管理するためのシステムである
B. RDB では、行 と 列 によって構成されたデータの形式を テーブル と呼ぶ
C. RDB では、データベースを操作する際に SQL などの データベース言語 を用いることができる
D. RDB の設計や管理を行う際には、ER図 という表現形式が用いられる。ER図 では、エンティティ、アトリビュート、リレーション、カーディナリティ という4つの要素で テーブル間の関係性 を定義する
代表的なデータベースの仕組みとして、RDBとNoSQLがあります。
RDB(Relational DataBase)は、日本語で関係データベースと訳されます。
RDBでは、データはテーブルという単位で管理され、関係(リレーション)という概念でモデル化されます。テーブルは、列(カラム)と行(レコード)によって構成されています(B)。
また、データベースで管理されているデータを操作する際には、SQLという言語を利用することができます(C)。
RDBを管理するためのソフトウェアをRDBMS(Relational 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などが挙げられます。
こうしたサービスを利用することで、オンプレミスサーバをストレージとするよりも少ない運用工数でストレージを利用することができます。
<!-- 15_086_1 --> の箇所:図のプレースホルダー形式([図:...])ではなかったため、HTMLコメントのまま維持しています。ここが図解を挿入すべき箇所であるか、元データの意図を確認してください。あるデータベースに、商品テーブルと仕入先テーブルを作成した。2つのテーブルの関係をER図にすると、下図のようになる。下図におけるリレーションが示す多重度として、最も適切なものを選べ。ただし、モデルの記法にはIE記法を用いている。
A. 1対1の関係
B. 1対多の関係
C. 多対多の関係
D. 1対0の関係
[図:01_167_1-1:...] を指定のマーカー形式 <図PAGE_ID-n---> に変換しました。内容のない重複したIDのみの記述は、内容を含むマーカーに統合しました。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台規模のシステムの構築や運用を行う方法についても学習しておくことで、得点アップが狙えます。
[図:PAGE_ID-n:内容] を <図PAGE_ID-n---> 形式のマーカーに置換しました。## 3. B および引用ブロック、表形式を維持しました。RDBに関する次の記述を読み、空欄ア、イに当てはまる語句の組み合わせとして、最も適切なものを選べ。
以下の操作が行われたデータは、RDBの設計において( ア )と呼ばれる。
上記に加え、さらに以下の操作が行われたデータは( イ )と呼ばれる。
A. (ア)非正規形 (イ)第一正規形
B. (ア)第一正規形 (イ)第三正規形
C. (ア)第二正規形 (イ)第三正規形
D. (ア)第三正規形 (イ)第二正規形
**)で強調しました。主キーは、行(レコード)を一意に特定するためのカラム(列)を指す用語です。「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が正解です。
【試験対策】 非正規形、第一正規形、第二正規形、第三正規形の違いを把握しておきましょう。
[図:PAGE_ID-n:内容] 形式のプレースホルダーを、指定された <図PAGE_ID-n---> マーカー形式へ置換しました。## 4. B および引用ブロック、テーブル構造を維持しました。<u>等)が適用されていないため、視覚的な整合性については組版段階での確認を推奨します。データ転送に関する次の記述を読み、空欄アに当てはまる語句として、最も適切なものを選べ。
以下の特徴をもつ通信プロトコルを( ア )と呼ぶ。
・Webサーバとクライアント間で通信するためのプロトコル
・HTMLで記載されたテキストや画像の転送に用いる
・通信が暗号化されない欠点がある
A. FTP
B. HTTP
C. HTTPS
D. SCP
FTP(File Transfer Protocol)は、ネットワークを介してデータをやり取りするための手順です。FTPでは、データのやり取りは、FTPサーバとFTPクライアントの間で行われます(A)。
FTPクライアントソフトの代表的なものとしては、FFFTPやWinSCP(Windows用)、CyberduckやFileZilla(クロスプラットフォーム対応)が挙げられます。FTPはシンプルで使い勝手がよい一方で、データの暗号化が行われないため、セキュリティ面で大きな問題をはらんでいるといえます。
SCP(Secure Copy Protocol)は、転送するファイルをSSH(Secure Shell)で暗号化する方式を採用しており、セキュリティ面でFTPよりも優れています (D)。通信の内容を暗号化するプロトコルとしては他にSFTP(SSH File Transfer Protocol)もありますが、通信速度の観点からはSCPのほうが速く、優れています。
HTTP(Hypertext Transfer Protocol)は、HTMLなどの情報をやり取りする際に使われる通信プロトコルです。インターネットに接続するいかなる環境においても、HTTPを使うことで、Webサイトのデータをやり取りすることができます。
しかし、HTTPでは、通信の内容が平文(暗号化されていない状態)でやり取りされます。そのため、中間者攻撃$^{\text{※}}$などによる情報の漏洩や改ざんといったセキュリティ上の問題が発生するおそれがあります (B)。
※ 中間者攻撃:通信を行う二者間に第三者が割り込み、通信を盗聴したり、通信に介入したりする攻撃手法のこと
HTTPS(Hypertext Transfer Protocol Secure)は、HTTPと同じ機能をもつ通信プロトコルです。基本的な通信方式はHTTPと同じですが、TLS(Transport Layer Security)を利用してデータを暗号化することで、HTTPによる通信を安全に行えるようにしています (C)。TLSは、以前はSSL(Secure Sockets Layer)と呼ばれていました。このため、SSL/TLSのように並べて表記される場合もあります。
HTTPSプロトコルを使っていないWebサイトや、SSL/TLSサーバ証明書が発行されていないWebサイトでオンラインショッピングをする場合は、通信の内容が不正に取得・改ざんされるおそれがあります。オンラインショッピングでは名前や住所、クレジットカード番号などの個人情報を入力する必要がありますが、SSL/TLSが使用されていないWebサイトでは、悪意ある第三者に情報が漏れてしまう危険性が高まります。
参考
FTPサーバ、ファイル共有サーバなどから必要なデータファイルをダウンロードして、Excelなどの表計算ソフトに取り込み、活用できるようにしておきましょう。
** で強調しました。$^{※}$ を、ルールに従い \text{} を用いた $^{\text{※}}$ に修正しました。Webブラウザ上でPythonを記述したり実行したりできる代表的な開発環境として、最も適切なものを選べ。
A. Jupyter Notebook
B. Rstudio
C. Tableau
D. DBeaver
Jupyter Notebookは、主にPythonを実行するためのWebアプリケーションです。Jupyter Notebookを利用すれば、コードと合わせてテキストや図、数式を1つのドキュメントとしてまとめることができます。Python以外にも、RやJuliaなどの言語にも対応しています。統計解析や、ディープラーニングの開発で多く用いられるWebアプリケーションです (A)。
Rは、主に統計解析を目的として利用するプログラミング言語です。Rstudioは、このRを用いた分析を容易にするためのIDE(統合開発環境)です。Rにまつわるファイル、関数、変数、パッケージ、図などを管理することができるため、Rを用いたデータ分析を行う際には必須のツールといえます (B)。
Tableauは、プログラミング言語ではなく、データ分析を容易にするBI (Business Intelligence) ツールの一種です。GUI (Graphical User Interface) 上、つまり画面上で感覚的に操作することができるデータ分析ソフトウェアです (C)。
DBeaverは、さまざまな種類のデータベースに接続してGUIを介したデータ操作を可能とするツールです。各種データベースに接続し、SQLを用いたデータの加工と取り出しを行うことが可能です (D)。
【試験対策】
Pythonのような言語を用いてプログラミングを行う際、バージョン管理ソフトウェアを利用すると開発を円滑に進めることができます。バージョン管理ソフトウェアとは、ソースコードに対して「いつ誰がどのような変更を行ったか」を厳密に記録・管理するための仕組みを提供するものです。バージョン管理ソフトウェアを用いると、以下のようなことを簡単に行うことができます。・チームメンバーとソースコードを共有すること
・ソースコードのバージョンを過去の時点に戻すこと
・ソースコードの変更点だけを表示させること代表的なバージョン管理ソフトウェアとして、GitとSubversionがあります。
【試験対策】
プログラム言語や環境によって、変数のデータ型ごとに確保するメモリサイズや自動型変換の仕様が異なります。このことを意識しながらプログラムの設計や実装を行う必要があるということを認識しておきましょう。
**)で強調しました。>)、箇条書き、および末尾のHTMLコメントを正確に維持しました。Hadoopに関する次の記述を読み、空欄ア、イに当てはまる語句の組み合わせとして、最も適切なものを選べ。
データを複数台のコンピュータ上に分散保存し、ネットワークを経由して管理するシステムを( ア )という。
また、Apache Hadoopと呼ばれる分散処理技術があり、これは主にHDFSと呼ばれる分散ファイルシステムとHadoop MapReduceと呼ばれるデータ処理フレームワークにより成り立っている。Hadoop MapReduceはディスク読み書きを大量に行うため、同じデータに対して異なる処理を加える操作には不向きである。そのため、( イ )と呼ばれるインメモリ型の分散処理技術が利用される。
A. (ア)拡散ファイルシステム (イ)Spark
B. (ア)拡散ファイルシステム (イ)Flickr
C. (ア)分散ファイルシステム (イ)Spark
D. (ア)分散ファイルシステム (イ)Flickr
**)で強調しました。データを複数台のコンピュータ上に分散保存し、ネットワークを経由して管理するシステムを分散ファイルシステムと呼びます(空欄ア)。
ネットワーク上にファイル格納領域を提供し、ローカルディスクにデータが存在している場合と同じようにクライアント側で利用できる仕組みの総称です。
この用語は広義に解釈され、古くから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が正解です。
<図PAGE_ID-n--->)へ置換しました。<!-- 24_090_2 -->)により「メモリ」という単語の途中で切れていましたが、文脈判断により結合しました。問題ないかご確認ください。セキュリティの3要素として、最も適切なものを選べ。
A. 機密性・秘匿性・重要性
B. 秘密性・完全性・可用性
C. 機密性・完全性・可用性
D. 秘密性・秘匿性・重要性
機密性(Confidentiality)とは、情報に正当な権限をもつ者だけがアクセスできる状態を表します。決められた人だけがデータにアクセスできるようにすることで、情報漏洩やデータ改ざんなどのリスクが低減されます。例えば、「誰でもアクセスできる共用PCにデータを置くこと」は機密性が低い状態といえます。
完全性(Integrity)とは、情報に欠損・不備・誤りがない状態を表します。また、情報が最新かつ正しい状態であるという意味でもあります。アクセス履歴と改変履歴が残らないような情報管理は完全性が低いといえます。完全性を確保できないと、「オンラインマップのデータが数年前のものであるため、間違った道案内をしてしまう」などのアクシデントが起こる可能性があります。
可用性(Availability)は、システムが障害(機器やパーツの故障・災害・アクシデントなど)で停止することなく稼働し続ける状態をいいます。一般的に、可用性は「一定時間のうち、システムを稼働可能な時間の割合」を意味する稼働率で定量化することができます。
特に、クラウドサービスやレンタルサーバなどでは、この稼働率がサービスの品質を判断するSLAの基準値とされている場合もあります。
SLA(Service Level Agreement)とは、ITサービスの分野で使われる用語です。通信サービスやクラウドサービス、レンタルサーバなどの提供を受ける際、保証するサービス内容や責任範囲を詳細に規定しておき、それを達成できなかった場合の対処法などを定めたものを指します。
以上より、選択肢Cが正解です。
試験対策
セキュリティの3要素「機密性・完全性・可用性」を覚えておきましょう。
アクセス制御を実現するための3要素として、最も適切なものを選べ。
A. 認証・認可・監査
B. 承認・認可・監査
C. 機密・完全・可用
D. 秘密・完全・可用
認証とは、ユーザーが当の本人であるか確認することです。認証方法としては、「ID・パスワード認証」のほか、「クライアント証明書」、「指紋や網膜を使った生体認証」などが一般的です。
認可とは、認証済みのユーザーがリソースにアクセスできるかどうかを確認することです。アクセス制御リストの条件を参照し、ユーザーがアクセスできる範囲を制限する機能です。
アクセス制御リスト(Access Control List:ACL)は、ファイルやフォルダなどへのアクセス権に関するユーザー情報を記したものです。ユーザーはリスト内の条件を満たせば、ネットワークにアクセスすることができます。ACLには複数の条件を設定することができます。
監査は、ユーザーのアクセス履歴を監視することです。主に、アクセス制限の検証・改善を行います。アクセス履歴を分析することで、認証・認可で設定したアクセス制御が適切かどうかを確認することができます。過去のアクセスログを調査することで、不正ログインの痕跡を追跡したり、サイバー攻撃者を特定することも可能です。
以上より、選択肢Aが正解です。
試験対策
アクセス制御に関わる3要素「認証・認可・監査」を覚えておきましょう。
共通鍵暗号方式に関する記述として、最も適切なものを選べ。
A. 共通鍵をもたない第三者でも、元のデータの内容を知ることができる
B. 共通鍵暗号方式を用いる場合は、共通鍵を相手に渡す必要はない
C. 共通鍵を盗んだ第三者は、暗号文を復号できる
D. 復号する際には、秘密鍵を用いる
共通鍵暗号方式は、データの送信者と受信者が共通の鍵(共通鍵)のみを用いて暗号化や復号を行う暗号方式です。以下のような特徴があります。
【共通鍵暗号方式】
共通鍵暗号方式は、鍵を相手に送信する必要があるため(B)、第三者に鍵を盗まれるリスクがあります。鍵が盗まれると、暗号文を復号されてしまいます(C)。一方で、ファイルやデータの暗号化にかかる処理速度が速いというメリットもあります。
【試験対策】
暗号化されていないデータは、不正に取得されると容易に中身を知られてしまうため、データの機密度に応じた暗号化を行う必要があるということを覚えておきましょう。【参考】
データの暗号化は、ソフトウェアを利用すると簡単に行うことができます。データの暗号化ソフトには、日立ソリューションズ社が提供している「秘文」などがあります。
[図:PAGE_ID-n:内容] を規定のマーカー形式 <図PAGE_ID-n--->...<---> に置換しました。* に整えました。公開鍵暗号方式に関する記述として、最も適切なものを選べ。
A. データの送信者は秘密鍵を使用して暗号化を行う
B. 暗号化と復号は、公開鍵のみあれば行うことができる
C. 公開鍵を用いて暗号化されたデータは、秘密鍵をもつ者のみが復号できる
D. 第三者に内容を傍受されることは決してない
公開鍵暗号方式とは、受信者が2つの鍵(秘密鍵と公開鍵)を作り、公開鍵を任意の送信者に公開する暗号方式です(A)。
公開鍵暗号方式のポイントは、鍵が「2つ」あることです。これら2つの鍵には関連があり、一方の鍵で暗号化したメッセージは、対となる他方の鍵でしか復号できないという性質をもちます(B)。
送信者は、受信者から送られてきた公開鍵を使って暗号化したデータを送ります。受信者は、その暗号化されたデータを自分がもっている秘密鍵で復号します(C)。
このように公開鍵暗号方式は、共通鍵暗号方式より安全性の高い暗号方式といえます。
公開鍵暗号方式の特徴をまとめると、以下のとおりです。
・データの送信者は受信者公開鍵を使って暗号化をする
・暗号化されたデータは、秘密鍵をもつ者のみが復号できる
【公開鍵暗号方式】
しかし、公開鍵暗号方式にも課題がいくつか残されています。例えば、ハッカーが送信内容を傍受して、改ざんした内容を受信側に送付する可能性があるということや、公開鍵を偽造すれば通信内容を復号できることなどが挙げられます(D)。
<図PAGE_ID-n--->)に置換しました。電子署名に関する記述として、最も適切なものを選べ。
A. 個人の筆跡をスキャナで読み取り電子化したものを電子署名という
B. 公開鍵を用いて平文を暗号化することによって得られるものである
C. 電子署名には送信者の情報が含まれるため、受信者に送信しないほうがよい
D. ハッシュ値の一致性を根拠にした改ざん検知を行っている
公開鍵暗号方式には、情報が改ざんされるリスクがあります(解答11参照)。これを解消するために考案されたのが、電子署名という考え方です。
電子署名を用いたデータ改ざん検知の流れを以下に示します。
手順の2で平文のハッシュ値を得るために用いられるのが、ハッシュ関数です。
ハッシュ関数とは、入力されたデータの長さにかかわらず、必ず固定長のデータを出力する関数のことです。ハッシュ関数から得られるデータのことをハッシュ値といいます。ハッシュ関数のアルゴリズムにはいくつか種類があり、MD5、SHA-1、SHA-2、SHA-3などが存在します。さらに、SHA-2やSHA-3の中にも種類があり、ハッシュ値のビット数に応じて名称が変わります。
ハッシュ関数の主な特徴としては、「同じデータからは必ず同じハッシュ値が出力される」ことが挙げられます。データの改ざん検知は、この性質を利用して行われます。
以上より、選択肢 D が正解です。
スキャナで読み取った筆跡は画像データであり、電子署名ではありません(A)。
公開鍵を用いて平文を暗号化したものは暗号文です(B)。
電子署名を受信者(相手方)に送ることで、データが改ざんされていないことを証明します(C)。
参考
ハッシュ関数は主に、データの比較処理の高速化、改ざんの検出、パスワードの管理などで使用されています。
[図:28_092_2-1:...] を指定されたマーカー形式 <図28_092_2-1---> に置換しました。以下の記述を読み、空欄アに入る語句として、最も適切なものを選べ。
( ア )はコンテナと呼ばれる仮想環境上でアプリケーションを開発、移動、実行するためのプラットフォームである。( ア )を用いると、1台のコンピュータ上に、隔離された複数の環境を構築できる。
A. Docker
B. Finder
C. Linux
D. Ubuntu
Dockerは、コンテナ型の仮想化を実装するソフトウェアです(A)。Docker社が開発し、2013年にオープンソースとして公開されました。Dockerには、以下の特長があります。
Dockerのリポジトリは、インターネット上で公開されています。リポジトリとは、Dockerのイメージが保管されている場所を指します。最も一般的なDocker Hubというリポジトリからは、さまざまな定義済みイメージを入手することが可能です。通常、ソフトウェアを利用する際には、インストールを行い、初期設定を完了させ、その後、細かな設定などをカスタマイズする必要があります。しかし、Docker Hubで公開されているようなイメージではあらかじめ設定が済んでいるため、すぐにソフトウェアを実行させることができます。
Finderは、macOSで使用するファイルマネージャの名称です(B)。Linux、Ubuntuは、オペレーティングシステムの名称です(C、D)。
以下の記述を読み、空欄アに入る語句として、最も適切なものを選べ。
( ア )は、機械学習システムの開発および運用において、機械学習エンジニアとシステム運用者を効率的につなぐための考え方である。
A. コーポレートガバナンス
B. MLOps
C. クラウドソーシング
D. XAI
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
**)で強調しました。<!-- ID: 30_093_2 -->)および見出し(## 14. B)を、ルールに基づきそのまま維持しました。<!-- ID: 30_093_2 --> により文章が物理的に分断されていましたが、文脈は「結果および その根拠を」と繋がっているため、改変せずそのまま配置しています。以下のフローチャートにおいて、下の条件で実行される処理として、最も適切なものを選べ。
A. 処理1
B. 処理2
C. 処理3
D. 処理は行われない
<図PAGE_ID-n--->)へ置換しました。**)で強調しました。プログラムを実装する際には、アルゴリズムを可視化するために、フローチャートと呼ばれる設計図を作成します。
フローチャートの基本的なルールは以下のとおりです。
・処理の流れは原則として上から下へ、左から右へ、それに逆行する場合は矢印をつける
・線が交差しないようにする
・2つ以上の線を集めて1つの線にしてよい
また、フローチャート内で用いる記号はJIS規格によって定められています。
それらのうち、ここでは設問で用いられた記号について解説します。
判断のフローで条件分岐を行う際は、その真理値がTrueの場合にはYesに、Falseの場合にはNoに進みます。
設問の条件で分岐を行った結果、処理2が実行されます(B)。
参考
プログラムが意図どおりに動くかどうかをテストする方法に、ホワイトボックステストとブラックボックステストがあります。
ホワイトボックステストは、仕様書どおりにプログラムが組まれているかどうかまでをチェックするテストであるため、基本的に開発者によって行われます。それに対してブラックボックステストは、プログラム内部の構造を考慮せず、ソフトウェアがユーザーの要望どおりに動作するかどうかをテストするため、開発者以外でもテストすることが可能です。試験対策
近年では、自分でプログラムを組まなくても、画面を操作して機械学習モデルを構築することができるサービスが多くリリースされています。このようなツールは、一般的にAutoMLと呼ばれ、さまざまなビジネスシーンで活用されています。主なAutoMLサービスとして、Prediction OneやDataRobotがあります。これらの名称は試験にも登場する可能性があるので、主な機能を把握しておくとよいでしょう。
[図:PAGE_ID-n:内容] を指定のマーカー形式 <図PAGE_ID-n--->...<---> に置換しました。表内での視認性を考慮し、改行コード(<br>)を用いて構造を維持しています。次のように動作するプログラムを作成した。
・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, ...
このプログラムの動作を表す以下のフローチャートの空欄ア、イ、ウに入る命令の組み合わせとして、正しいものを選べ。
(ア) $i$が3の倍数かつ5の倍数
(イ) $i$を出力
(ウ) FizzBuzzと出力
(ア) $i$が3の倍数ではなく5の倍数でもない
(イ) $i$を出力
(ウ) FizzBuzzと出力
(ア) $i$が15の倍数
(イ) FizzBuzzと出力
(ウ) $i$を出力
(ア) $i$が3の倍数または5の倍数
(イ) FizzBuzzと出力
(ウ) $i$を出力
<図PAGE_ID-n---> 形式に置換しました。アルゴリズムをフローチャートで表現する方法を問う問題です。
本問は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_P164 --> は、規定の図プレースホルダー形式([図:...])ではなかったため、元の形式のまま維持しています。以下の記述を読み、空欄ア、イに入る語句の組み合わせとして、最も適切なものを選べ。
販売数量表をある基準に従って並べ替えた結果を以下に示す。このとき、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の昇順
表計算ソフトのデータを複数キーで並べ替える方法と、その結果に関する問題です。
並べ替えには昇順と降順という考え方があります。
昇順とは、数値の小さいものから大きいものに向かって並べる順序のことです。問題に示したような表の場合、上から下に向かって数値が大きくなる順序が昇順です。並べ替えの対象が文字である場合は、「A、B、C」や「あ、い、う」のような、一般に「アルファベット順」や「五十音順」と呼ばれる、前方から後方に向かう順序が昇順です。対象が日付の場合は、1月1日→1月2日のような、古い日付から新しい日付に向かう順序が昇順です。
昇順と逆向きの順序を降順といいます。数字の場合は大きいものから小さいものに、文字の場合は後方から前方に向かう順序が降順です。日付の場合は、新しい日付から古い日付に向かう順序が降順です。
問題に示した表では、「日付」列だけが全行を通して昇順に並べ替えられています。このことから、「日付の昇順」が最も優先順位が高い順序であるといえます。次に、日付が同一であるデータについて他の列の値を見ると、4月2日の「販売数量」列の値が6、5、3と降順に並んでおり、4月3日の場合も同様に降順が維持されています。このことから、「販売数量の降順」が2番目に優先順位が高い順序であるといえます。続いて、販売数量が同一であるデータについて「顧客ID」列と「アイテムID」列の順序を見ると、「アイテムID」列の昇順が「顧客ID」列よりも優先されていることがわかります。
以上より、最も適切な組み合わせである選択肢Dが正解です。
<pb: 18_C_1> は改ページ用などの構造維持用マーカーと判断し、そのまま残しています。下表は、ある小売店舗の販売数量を集計した結果である。表の最終行の指標を求めるために使われた表計算ソフトの関数として、適切なものを選べ。
【ある小売店の販売数量の集計結果】
| 年月 | 販売数量合計 |
|---|---|
| 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)
表計算ソフトによる基本統計量の計算について問う問題です。
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の機能・関数を使いこなすことで、表計算ソフトを用いた分析をスムーズに行うことができます。特に、基本的な関数や機能の概要と使い方については、しっかりと覚えておきましょう。
** で囲い強調しました。## 18. C を維持しました。機械学習の予測モデルを運用するとき、業種や業態を問わず汎用的に利用可能なモデルがクラウドサービスのWeb APIとして利用できることがある。ここでは、このようなモデルを予測APIと呼ぶことにする。予測APIの特徴に関する以下の記述のうち最も適切なものを選べ。
A. ほとんどの予測APIでは、利用規模に応じたプランが用意されているため、あるWebアプリに予測APIを利用する場合、そのWebアプリのユーザー数が増えても運用を継続できる
B. 予測APIでは利用側のコンピュータに高い性能が求められないため、IoT分野において何らかの予測を行う場合は、必ず予測APIが用いられる
C. 予測APIは、誰でも簡単に利用できるものであるため、利用にあたって機械学習の知識を全く必要としない
D. 予測APIでは、自社で機械学習モデルの管理を行う必要がないため、自社のシステム開発者は予測APIのバージョンを意識する必要がない
機械学習系のサービスを Web API 経由で利用する際に考慮すべき点を問う問題です。
機械学習モデル を組み込むシステム開発では、訓練データの収集や分析、モデリングに多大な工数を必要とします。目的に合う機械学習モデルの Web API を使用することで、これらの工数を大幅に削減し、開発を迅速に進めることができます。
クラウドサービス では、利用者側の 規模拡大(スケーラビリティ) に柔軟に対応できる仕組みが一般的に提供されます(A)。
機械学習モデルを組み込むシステム開発では、予測結果が期待どおりの パフォーマンス を維持しているかを確認するための 監視システム を、予測APIとは別で用意する必要があります。このとき、 機械学習の知識 が必要となります(C)。予測APIが高い 汎化性能 をもっているとしても、それを過信せず 継続的に評価 する仕組みを用意することが重要です。
また、 IoTデバイス では、予測の リアルタイム性 や厳しい セキュリティ要件 を考慮して、データをクラウドへ送る代わりに IoTデバイス側で処理 することが選ばれるケースもあります(B)。
Web APIが大幅な 機能更新 を行う場合、 現行バージョン が引き続き使用可能かどうかを確認する必要があります。現行バージョンと 互換性 のない仕様が新バージョンに含まれる場合には、その 影響を評価 する工程が必要になります(D)。
PythonやRを使ったデータサイエンスプロジェクトでは、クラウド上でNotebookを利用してデータの抽出やコーディングを進めることがある。これらサービスの利用に関する記述として、適切なものの組み合わせを選べ。
(ア)この種のサービスでは、開発環境内からコードリポジトリへのアクセスが一般的に可能である。設定次第ではMLOpsのコード開発部分をサービス上で実施できる
(イ)モデルの学習に使用したハイパーパラメータやその際のモデル精度などを記録するためのサービスを利用できることがある。このサービスを利用することにより、採択するモデルを決定するまでのプロセスを効率的に進められる
(ウ)この種のサービスには、開発環境と生成 AI サービスを連携できるものがある。この連携機能を使用することにより、コーディングと分析の効率を高められる
A. (ア)
B. (イ)
C. (ア)と(ウ)
D. すべて正しい
## 20. および末尾のメタデータ(コメント行)を正確に維持しました。クラウド上の統合開発環境の付加的機能と期待される効果について問う問題です。
MLOpsとは、機械学習プロジェクトを効率よく運用し、継続的に価値を提供するための実践方法です。これには、データ処理、モデル学習、モデル評価、デプロイメント、モニタリングといったプロセスが自動化されるパイプラインが含まれます。
このパイプラインは、データの追加やコードの変更などによって実行されるように設定することが可能です。そして、ほとんどの場合、統合開発環境はGitによるコード管理に対応しています。つまり、開発環境上でコードが変更されたら、コードリポジトリのコードが変更され、その変更が発生したら何らかの処理を実行するというパイプラインを組むことができます。したがって、(ア)は適切です。
統合開発環境サービスによっては、モデル学習などのジョブを実行した際に、モデルのハイパーパラメータや学習済みモデルの評価結果を記録するように設定できることがあります。
どのようなハイパーパラメータを使用したときに、どれほどのパフォーマンスが出るかを適切に記録しておくことで、モデル選定のために必要なレポートを素早く作成できます。したがって、(イ)は適切です。なお、この機能を実現するための主要なOSS(オープンソースソフトウェア)としてMLflowが挙げられます。
多くの統合開発環境サービスでは、AIを活用したコーディング支援ツールを提供しています。たとえば、ある関数の書き方やエラーの修正方針について提案を受けることができます。したがって、(ウ)は適切です。
以上より、記述はすべて正しいため、選択肢Dが正解です。