DBデータベーススペシャリスト試験 午後Ⅰ

平成25年度春期 データベーススペシャリスト 午後Ⅰ 問2

事例を読んで設問の答えを考えてから、解説のポイントとIPA公式の解答例・採点講評で確認しましょう。

問題

問2 受注管理システムのデータベース設計に関する次の記述を読んで,設問1~3に答えよ。 A社は,個人宅を訪問し,主にキッチン,浴室,洗面所,トイレなどの清掃をサービスとして提供する業者である。A社では,受注管理システムを新たに構築することになり,B君がデータベース設計を任された。 〔業務概要〕 1. 組織の特性 (1) 地域ごとに店舗があり,本店及び各店舗はそれぞれ店舗番号で一意に識別される。 (2) 本店は顧客からの引合いを受け付け,各店舗は引合いのあった顧客の見積りを行い,注文が確定した後,サービスを実施する。 2. 会員の特性 顧客は,最初の注文時に会員登録される。会員は,会員番号で一意に識別される。 3. サービスの特性 (1) サービスは,サービスコードで一意に識別される。 (2) サービスには,個別サービス,セットサービス及びオプションサービスの3種類があり,サービス区分でどの種類のサービスかが識別される。 ① 個別サービスとは,キッチン清掃,レンジフード清掃,浴室清掃など,1か所の清掃を指す。個別サービスのサービス内容,標準価格,標準作業時間数は決まっている。個別サービスの例を表1に示す。 ② セットサービスとは,個別サービスを複数組み合わせたもので,個別サービスそれぞれの標準価格の合計よりも割安な価格で提供する。セットサービスに対して,選択可能な個別サービス群,選択可能数,標準価格は決まっている。一つの個別サービスは,複数の異なるセットサービスに組み込まれることがある。セットサービスの例を表2に示す。 ③ オプションサービスとは,会員の依頼によって個別サービスに追加する清掃で,単独では提供しない。オプションサービスのサービス内容,適用可能な個別サービス,標準価格,標準作業時間数は決まっている。一つのオプションサービスを適用できる個別サービスは,一つだけである。一つの個別サービスに対して,複数のオプションサービスを追加できる。セットサービスで選択した個別サービスに対しても,オプションサービスを追加できる。オプションサービスの例を表3に示す。 表1 個別サービスの例 表2 セットサービスの例 表3 オプションサービスの例 4. 注文の特性 (1) 注文は,注文番号で一意に識別される。 (2) 注文にはスポット注文と継続注文があり,注文区分で識別される。 ① スポット注文とは,1回だけ清掃を行うケースの注文である。 ② 継続注文とは,同じ清掃を複数回にわたって行うケースの注文である。 ・会員は,期間,回数及び曜日を選択する。 ・会員は,期間と回数について,24週間に6回,48週間に6回,48週間に12回など,あらかじめ決められた組合せの中から選択する。 ・期間,回数,曜日の組合せは,継続パターンコードで識別される。また,それによって継続割引率は異なる。 (3) 一つの注文で,複数のサービスを指定できる。また,個別サービスとセットサービスを一緒に指定することもできる。 5. 引合い,見積り,注文の確定の流れ (1) 本店で受け付けた引合いは,地域ごとの店舗に割り当てられる。割り当てられた店舗は,会員宅を訪問して見積りを行う。 (2) 見積りによって,サービスごとの実施項目,適用価格が確定する。継続注文の場合,この確定内容は,2回目以降も継続する前提である。適用価格は,標準価格と異なる場合がある。 (3) 見積りにおいて,予定年月日,予定開始時刻,予定終了時刻を決定する。継続注文の場合,予定開始時刻と予定終了時刻は2回目以降もこの決定が適用されるが,予定年月日は初回だけに適用される。 (4) 見積り結果は,セットサービスで選択した個別サービス,及び個別サービスに追加したオプションサービスの対応関係が分かるように,サービス名の前に記号を付け,関係するサービスを並べて表示する。また,同一の清掃を複数箇所に対して行う場合,それぞれを識別できるようにするために,実施場所に,所在を表示する。見積り結果の例を図1に示す。 (5) 会員が見積り結果を確認し,同意すれば注文が確定する。 図1 見積り結果の例 6. 実施の流れ (1) 会員宅を訪問して注文内容に従って清掃を行う単位を,“実施”と呼ぶ。スポット注文では1回の注文で1回の実施が発生し,継続注文では1回の注文で複数回の実施が発生する。 (2) 1回の実施に対して,一意となる実施番号が付与される。1回の実施には一つ又は複数のサービスが含まれ,サービスごとに実施明細番号が付与される。 (3) 注文確定によって,スポット注文と継続注文の初回の実施予定を決定し,登録する。その際,個別サービス,オプションサービスごとに,予定作業時間数を割り当てる。 (4) 継続注文の2回目以降は,実施時に次回の予定年月日を決め,その時点で次回の実施予定を登録する。 (5) 1回の実施で予定していた,全ての清掃が終了した時点で,実施年月日,実施開始時刻,実施終了時刻を登録する。また,個別サービス,オプションサービスごとに実施作業時間数を登録する。 (6) サービスごとの実施作業時間数は,サービスの作業改善,標準作業時間数の見直しのために,過去の実績を分析する場合に照会する。 〔データベースの設計〕 B君は,現在の業務概要と次の方針に基づいて,テーブル構造を図2のように設計することにした。 (1) セットサービスで選択された個別サービスも,単品で選択された個別サービスも,“注文明細”テーブルには同様の形式で格納する。 (2) 注文の確定時に“注文”テーブル及び“注文明細”テーブルに行を作成する。実施予定登録時に“実施”テーブル及び“実施明細”テーブルに行を作成する。 (3) “実施”テーブルの行から対応する“注文”テーブルの行,“実施明細”テーブルの行から対応する“注文明細”テーブルの行を特定するために,外部キーを設定する。 店舗(店舗番号,店舗名,郵便番号,住所,電話番号) 主キー:店舗番号 会員(会員番号,会員名,登録年月日,郵便番号,住所,連絡先電話番号) 主キー:会員番号 サービス(サービスコード,サービス区分,サービス名,サービス内容,標準価格,標準作業時間数,個別サービス選択可能数,個別サービスコード) セット組合せ(セットサービスコード,個別サービスコード) 主キー:セットサービスコード,個別サービスコード 継続パターン(継続パターンコード,期間,回数,曜日,継続割引率) 注文(注文番号,会員番号,店舗番号,注文年月日,注文区分,継続パターンコード,予定年月日,予定開始時刻,予定終了時刻) 主キー:注文番号 外部キー:会員番号,店舗番号 注文明細(注文番号,注文明細番号,サービスコード,適用価格,実施場所,実施項目) 主キー:注文番号,注文明細番号 外部キー:サービスコード 実施(実施番号,予定年月日,実施年月日,実施開始時刻,実施終了時刻,注文番号) 主キー:実施番号 外部キー:注文番号 実施明細(実施番号,実施明細番号,予定作業時間数,実施作業時間数,注文番号,注文明細番号) 主キー:実施番号,実施明細番号 外部キー:注文番号,注文明細番号 図2 テーブル構造(未完成) 〔継続注文の変更〕 検討中のテーブル構造では,継続注文について,初回の実施後,継続する2回目以降にオプションサービスの追加及び取消しを行いたくても対応できない。この点について,会員からの要望を満たせていないことが判明した。そこで,B君は,2回目以降の実施に対して,オプションサービスの追加及び取消しを行えるように,次の対応を考えた。 (1) 次回の実施予定を決定するときに,変更の要望を確認し,変更があれば必要な見積りを実施して,適用価格と変更の要望に伴う予定開始時刻及び予定終了時刻の変更を決定する。 (2) 当初の注文確定時点の情報を含め,変更履歴を注文変更年月日ごとに保存する。 解答に当たっては,巻頭の表記ルールに従うこと。 なお,テーブル構造の表記は,“関係データベースのテーブル(表)構造の表記ルール”を用いること。さらに,主キー及び外部キーを明記せよ。 また,新たに追加するテーブル名及び列名は,本文中で与えられた語句を用いて適切な名称とすること。 設問1 図2の“サービス”テーブルと“継続パターン”テーブルについて,(1)~(3)に答えよ。 (1) “サービス”テーブルには,セットサービス,個別サービス及びオプションサービスの3種類のサービスが格納される。そこで,“サービス”テーブルを,3種類のサービスに共通の列をもつ“サービス共通”テーブルと,各サービスに固有の列をもつテーブルに分割することにした。列が冗長にならないように,各テーブルの構造を記述せよ。 (2) “継続パターン”テーブルの候補キーを全て答えよ。 なお,複数の列から構成される候補キーは{ }でくくること。 (3) “継続パターン”テーブルは,第1正規形,第2正規形,第3正規形のうち,どこまで正規化されているか。また,部分関数従属性,推移的関数従属性の有無を,“あり”又は“なし”で答えよ。“あり”の場合は,その関数従属性の具体例を,次の表記法に従って示せ。 関数従属性 表記法 部分関数従属性 列1→列2 推移的関数従属性 列1→列2→列3 設問2 図2の“注文明細”テーブルについて,(1),(2)に答えよ。 (1) 注文明細のサブタイプ構造を図3に示す。この3種類のサブタイプは,一つの注文の中で対応関係をもち得る。その対応関係を示すリレーションシップを図3に記入せよ。その場合,対応関係にゼロを含むか否かを区別して表現する場合の表記ルールを用いること。 図3 注文明細のサブタイプ構造 (2) (1)で答えたリレーションシップを成り立たせるために,現在の“注文明細”テーブルに列を二つ追加することにした。それらの列に設定する値の意味を,具体的にそれぞれ40字以内で述べよ。 設問3 注文と実施の管理について,(1),(2)に答えよ。 (1) “実施明細”テーブルの行は“注文明細”テーブルの行に基づいて作成される。その際に,“実施明細”テーブルに反映する必要がない“注文明細”テーブルの行がある。その行を15字以内で述べよ。また,反映する必要がない理由を20字以内で述べよ。 (2) 〔継続注文の変更〕に対応するために,次の方針でテーブルの構造を見直すことにした。 ・新たなテーブルは追加せず,図2のテーブル構造を変更する。 ・テーブル構造の変更は,変更対象のテーブルに対して,同じ役割の列を一つだけ追加する。 この方針で見直した場合の追加する列について,役割を表す適切な列名を答えよ。また,変更すべきテーブル名を全て答え,それらのテーブルごとに,追加する列が主キーを構成する場合は主キー欄に“○”,外部キーを構成する場合は外部キー欄に“○”を記入して,次の表を完成させよ。 なお,表の欄は全て埋まるとは限らない。 解答表(テーブル名/主キー/外部キー)
表1 個別サービスの例。個別サービス名(コード)、サービス内容、標準価格、標準作業時間数の表。キッチン清掃D001 10,000円1.0、レンジフード清掃D002 15,000円1.5、浴室清掃D021 15,000円1.0、冷蔵庫清掃D031 13,000円1.0。
表1 個別サービスの例。個別サービス名(コード)、サービス内容、標準価格、標準作業時間数の表。キッチン清掃D001 10,000円1.0、レンジフード清掃D002 15,000円1.5、浴室清掃D021 15,000円1.0、冷蔵庫清掃D031 13,000円1.0。
表2 セットサービスの例。セットサービス名(コード)、選択可能な個別サービス群、選択可能数、標準価格の表。台所2点セットM081(選択2、21,500円)、水まわり3点セットM091(選択3、32,000円)、台所・水まわり4点セットM092(選択4、42,000円)。
表2 セットサービスの例。セットサービス名(コード)、選択可能な個別サービス群、選択可能数、標準価格の表。台所2点セットM081(選択2、21,500円)、水まわり3点セットM091(選択3、32,000円)、台所・水まわり4点セットM092(選択4、42,000円)。
表3 オプションサービスの例。オプションサービス名(コード)、サービス内容、適用個別サービス、標準価格、標準作業時間数の表。キッチン床ワックス掛けS001→D001 7,000円、風呂釜洗浄S005→D021 8,000円、冷蔵庫内除菌S020→D031 1,500円。時間数はいずれも0.5。
表3 オプションサービスの例。オプションサービス名(コード)、サービス内容、適用個別サービス、標準価格、標準作業時間数の表。キッチン床ワックス掛けS001→D001 7,000円、風呂釜洗浄S005→D021 8,000円、冷蔵庫内除菌S020→D031 1,500円。時間数はいずれも0.5。
図1 見積り結果の例。お見積り書の例。宛先・発行店舗の情報、実施条件(予定年月日、予定開始・終了時刻、継続、24週間に6回日曜日、割引率10%)、セット・個別・オプションの実施内訳(記号◆と>>付き)、合計61,200円を示す。
図1 見積り結果の例。お見積り書の例。宛先・発行店舗の情報、実施条件(予定年月日、予定開始・終了時刻、継続、24週間に6回日曜日、割引率10%)、セット・個別・オプションの実施内訳(記号◆と>>付き)、合計61,200円を示す。
図2 テーブル構造(未完成)。店舗、会員、サービス、セット組合せ、継続パターン、注文、注文明細、実施、実施明細の各テーブルの関係スキーマ。主キーを実線の下線、外部キーを破線の下線で示している。
図2 テーブル構造(未完成)。店舗、会員、サービス、セット組合せ、継続パターン、注文、注文明細、実施、実施明細の各テーブルの関係スキーマ。主キーを実線の下線、外部キーを破線の下線で示している。
関数従属性の表記法(キャプションなし)。設問1(3)で使う表記法の表。部分関数従属性は「列1→列2」、推移的関数従属性は「列1→列2→列3」と表記する。
関数従属性の表記法(キャプションなし)。設問1(3)で使う表記法の表。部分関数従属性は「列1→列2」、推移的関数従属性は「列1→列2→列3」と表記する。
図3 注文明細のサブタイプ構造。スーパータイプ「注文明細」の下に、サブタイプ「セットサービス注文明細」「個別サービス注文明細」「オプションサービス注文明細」の三つを配置した図。サブタイプ間のリレーションシップは描かれていない。
図3 注文明細のサブタイプ構造。スーパータイプ「注文明細」の下に、サブタイプ「セットサービス注文明細」「個別サービス注文明細」「オプションサービス注文明細」の三つを配置した図。サブタイプ間のリレーションシップは描かれていない。
設問3(2)の解答表(キャプションなし)。設問3(2)の解答用の空欄表。列はテーブル名、主キー、外部キーの三つで、記入用の空欄行が5行ある。
設問3(2)の解答表(キャプションなし)。設問3(2)の解答用の空欄表。列はテーブル名、主キー、外部キーの三つで、記入用の空欄行が5行ある。
解き方のヒントを見る

属性が何に依存するかを確かめる

データベース設計の問題では、各項目がどの識別子によって一意に決まるのかを一つずつ確かめることが出発点になります。問題で示された業務上の条件と、設計上の扱いが対応しているかを落ち着いて照合してみましょう。

この問題で問われていること

この問題で確認すべき観点は一つ、各データ項目が「何を決めれば値が一つに定まるか」です。時間の経過や区分の違いがある場合も含め、その決まり方が業務条件と矛盾しないかを自分の言葉で説明できるか確かめてください。

視点

テーブル分割や正規化の判断は、項目同士の依存関係をつかむことから始まります。ある項目の値を決めるのに何が必要かを考えると、その項目をどこで管理するのが自然かを検討しやすくなります。業務のルールを自分の言葉で書き出し、それと設計が整合しているかを比べるのが基本的な進め方です。

確認ポイント

  • 各項目について、値を一つに定めるために何が分かっていればよいかを言葉にしたか
  • その決まり方が、時点や区分によって変わりうるかを業務条件から確認したか
  • 自分が整理した決まり方と、問題で示された設計内容に食い違いがないか照合したか
正解と解説を見る

解説

家庭清掃サービスの受注管理システムを題材に、データベース設計を問う問題です。主な論点は次の三つです。(1)サービスを個別・セット・オプションのサブタイプに分け、固有の属性を適切に配置すること。(2)候補キーが二つある継続パターンの正規形を判定すること。(3)注文明細どうしの親子関係を自己参照の列で表し、継続注文の変更履歴を注文変更年月日で管理すること。採点講評では、全体の正答率は低く、特に設問1(3)の正規形判定と設問3(2)の履歴設計ができていなかったと指摘されています。

問題の全体像

A社は個人宅の清掃サービスを提供する会社で、受注管理システムを新しく作ります。サービスは個別・セット・オプションの3種類で、種類によって持つ属性が違います。

・セットサービス:複数の個別サービスから選ぶ形式

・オプションサービス:特定の個別サービスに追加するもの

注文にはスポット注文と継続注文があり、見積り結果(図1)では、明細どうしの関係が記号で示されています。

・◆:セットで選んだ個別サービス

・>>:個別サービスに追加したオプション

出題趣旨によると、この問題で問われる能力は次の三つです。

・業務要件を分析する能力

・サブタイプを切り出し、サブタイプ間のリレーションシップを読み取る能力

・履歴を含むテーブルを設計する能力

出題趣旨では特に、契約のように履歴を持つマスタについて、トランザクションとの整合を保ちながら履歴を管理する設計が重視されています。

設問1(1)

業務概要3(2)と表1〜3で、各サービスがどの項目を持つかを比べます。

・3種類すべてにある項目:サービスコード、サービス区分、サービス名、標準価格

・個別サービス(表1)とオプション(表3)にだけある項目:サービス内容、標準作業時間数(セットサービスの表2にはありません)

・セットサービスだけにある項目:個別サービス選択可能数

・オプションサービスだけにある項目:適用先の個別サービス(一つに決まる)

公式解答例の構成は次のとおりです。

・サービス共通(サービスコード、サービス区分、サービス名、標準価格)

・個別サービス(サービスコード、サービス内容、標準作業時間数)

・セットサービス(サービスコード、個別サービス選択可能数)

・オプションサービス(サービスコード、サービス内容、標準作業時間数、個別サービスコード)

主キーはどれもサービスコードです。オプションサービスの個別サービスコードは、個別サービスを参照する外部キーにします。サービス内容と標準作業時間数をサービス共通に置くと、セットサービスの行で意味のない列ができてしまいます。そのため、この2列は個別サービスとオプションサービスの両方に置きます。

設問1(2)

業務概要4(2)②によると、期間・回数・曜日の組合せは継続パターンコードで識別されます。つまり、継続パターンコードは一意の識別子です。さらに、期間・回数・曜日の組合せも一つの継続パターンに対応するため、この3列の組でも行が一意に決まります。3列のうち一つでも欠けると、行は一意に決まりません。そのため、この組は極小の候補キーです。公式解答例は「継続パターンコード、{期間,回数,曜日}」の二つです。

設問1(3)(正規形)

非キー属性は継続割引率だけです。継続割引率は、業務概要4(2)②の「それによって継続割引率は異なる」から、期間・回数・曜日の組合せ全体で決まります。そのため、どちらの候補キーにも完全関数従属します。また、非キー属性が一つしかないため、非キー属性を経由した推移もありません。したがって、公式解答例は「第3正規形」です。採点講評では、候補キーが複数あるときの正規形の判定を誤った答案が多かったと指摘されています。

設問1(3)(部分関数従属性の有無)

部分関数従属性とは、非キー属性が候補キーの一部だけに従属していることです。継続割引率は、期間だけ、回数だけ、曜日だけで決まるわけではなく、3列の組合せによって決まります。継続パターンコードは単一列の候補キーなので、部分関数従属性は起こりません。公式解答例は「なし」です。

設問1(3)(推移的関数従属性の有無)

継続パターンコード→{期間,回数,曜日}→継続割引率 は、一見すると推移のように見えます。しかし、{期間,回数,曜日}→継続パターンコード も成り立ちます。中間の{期間,回数,曜日}はそれ自体が候補キーなので、推移的関数従属性にはなりません。推移的関数従属性とは、候補キーではない属性の集合を経由する従属のことです。公式解答例は「なし」です。

設問1(3)(部分関数従属性)

部分関数従属性の有無が「なし」なので、この欄には記入しません。公式解答例でも空欄です。候補キーの一部に従属しているように見える例を無理に書くと、有無の判定と矛盾するので注意が必要です。

設問1(3)(推移的関数従属性)

推移的関数従属性の有無も「なし」なので、この欄には記入しません。公式解答例でも空欄です。継続パターンコード→{期間,回数,曜日}→継続割引率 のように、候補キーを中間に置いた例を書くのは誤りです。

設問2(1)

図1の◆は直上のセットで選んだ個別サービスを、>>は直上の個別サービスに追加したオプションを表します。ここから親子関係は次の二つです。

・セットサービス注文明細 1 → 個別サービス注文明細 多

・個別サービス注文明細 1 → オプションサービス注文明細 多

ゼロを含むかどうかは、次のように決まります。

・セット側は必ず個別サービスを含みます(選択可能数分)。そのため、個別側の端は●です。

・個別サービスは単品でも注文できます(業務概要4(3))。そのため、セット側の端は○です。

・オプションは単独では提供されず、必ず個別サービスに付きます。そのため、個別側の端は●です。

・個別サービスにはオプションが無いこともあります。そのため、オプション側の端は○です。

公式解答例の図では、「セットサービス注文明細 ○─●→ 個別サービス注文明細 ●─○→ オプションサービス注文明細」と、矢印が個別側・オプション側を向いています。採点講評では、参照元と参照先を逆にした解答が散見されたと指摘されています。矢印の向き(1側から多側へ)に注意してください。

設問2(2)①

設計方針(1)では、セットで選んだ個別サービスも単品の個別サービスも、同じ形式で注文明細に格納します。そのため、個別サービスの明細行から、元のセットの明細行を指し示す列が必要です。親の明細は同じ注文の中にあるので、注文明細番号を持てば特定できます。公式解答例の趣旨は、選択された個別サービスの元となったセットサービスの注文明細番号です。40字以内で、次の三点を押さえます。

・どの行に設定するか(選択された個別サービス)

・何を指すか(元のセットサービス)

・値は何か(注文明細番号)

設問2(2)②

同じように、オプションの明細行から、追加先の個別サービスの明細行を指し示す列が必要です。図1のエアコン清掃の例のように、同じ個別サービスが実施場所違いで複数行ある場合も考えます。このとき、サービスコードだけでは親の行を特定できないため、注文明細番号で参照します。公式解答例の趣旨は、追加されたオプションサービスの元となった個別サービスの注文明細番号です。「オプション行に、親である個別サービスの注文明細番号を設定する」ことを40字以内で書きます。

設問3(1)(行)

業務概要6(3)(5)を見ると、予定作業時間数と実施作業時間数は、個別サービスとオプションサービスごとに割り当て、登録します。セットサービスには標準作業時間数もなく(表2)、実際の清掃は、そのセットで選んだ個別サービスとして行われます。したがって、実施明細に反映する必要がないのはセットサービスの明細です。公式解答例は「セットサービス注文明細の行」です(15字以内)。

設問3(1)(理由)

セットサービスは、個別サービスをまとめて価格を決める単位にすぎません。清掃の作業そのもの(実施の対象)ではないため、作業時間を管理する実施明細は作りません。公式解答例は「セットサービスは実施対象ではないから」です。20字以内で「実施の対象でない」という点を押さえます。

設問3(2)(列名)

〔継続注文の変更〕(2)に「変更履歴を注文変更年月日ごとに保存する」とあります。履歴の発生単位は注文変更年月日です。列名は本文の語句を使うよう指示されているので、公式解答例は「注文変更年月日」です。

設問3(2)(テーブル)

変更の対象は次の二つです。

・注文の予定開始時刻・予定終了時刻(〔継続注文の変更〕(1))

・注文明細のオプションの追加・取消しと適用価格

公式解答例では、各テーブルを次のように変えます。

・注文:主キーを{注文番号,注文変更年月日}にします(主キー○)。

・注文明細:変更年月日ごとに明細を持つため、注文変更年月日を主キーに加えます。あわせて、注文を参照する外部キー{注文番号,注文変更年月日}の一部にもなります(主キー○・外部キー○)。

・実施:どの版の注文内容に基づいて実施したかを参照します(外部キー○)。

・実施明細:どの版の注文明細に基づいたかを参照します(外部キー○)。

実施と実施明細は実施番号で識別できるので、主キーは変えません。採点講評では、この設問の正答率は低かったと指摘されています。そのうえで、履歴の発生単位を主キーに加え、そのテーブルを外部参照する側も直すという設計の知識を身に付けるよう求めています。

学習のポイント

主に次の四点を身に付けることが大切です。 ・サブタイプに固有の属性を見極めること ・候補キーが複数あるときに部分関数従属性・推移的関数従属性を正しく判定すること ・ゼロを含むかどうかを区別するリレーションシップ表記の読み方 ・履歴の単位を主キーに加え、参照する側の外部キーも合わせて直す設計

出典:独立行政法人 情報処理推進機構(IPA)平成25年度春期 データベーススペシャリスト試験 午後Ⅰ 問2(公式資料:問題冊子(PDF) / 解答例 / 採点講評)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針