見出し画像

【実質:選択肢だけが魅力】応用情報技術者R05秋データベースの解説


私は技術系(ネットワーク・データベース・組み込み)を、なるべく選びたいです。技術系問題は出題傾向が絞られ、得点再現性が高いですから。

データベースは結局、SQL・E-R図・キー設定のどれかが出るのは分かっていますよね。

マネジメント系の問題なんて何が出てくるか分かりません。技術系は充分に過去問演習すれば、安定した得点源になると考えています。



さて、図1と2でE-R図が2つもあって「難しそう」な印象を受けるかもですね。

しかし図1。入荷と入会明細・出荷と出荷明細はよくあるパターン、倉庫・商品はカタログ系なので、実質気になるのは在庫の引当・在庫推移状況ぐらいです。

図2で【b】【c】が増えてますが、項目は書いてくれてるので名前だけで良いのもポイント。

最後のSQL文に少し不安がありますが、正直「外部結合が出るよりはマシ」とすら思ってます。


作文もなく、穴埋めも問題文からの抜き出しなので実質選択肢と同じ。1つずつ片づけて点数を積み上げられそう。

解いてみると、8~10割が狙える問題でした。8割まではすんなりで、下回ることはありません。

AP-DBは基本的に難しそうに見せかけてきます。しかし「切る」必要がある高難易度は、ゴクゴク稀。1問ぐらい解いてみるぐらい、選択するか判断を粘っても良いかも。


このNoteは私のIT専門学校での授業経験に基づいて、一緒に読んで解いていきます。本番での「思考の流れ」や「解法のコツ」なども書いているので、参考になったら嬉しいです。

それでは始めましょう!


過去問のダウンロードはIPA公式より。
>>公式の問題pdfへのリンク<<
>>公式の解答pdfへのリンク<<





読み | 概要

4行はめちゃくちゃ短い概要。

「商品個数のデータベースで、在庫を改善したいのね」程度で次へ進みます。




読み | 【現状の在庫管理】

データベースでは、エンティティ(表など)や項目を四角囲みでマーキング。

「在庫」「注文個数」「引当済数」「引当済総数」「実在庫数」「在庫数( = 実在庫数 - 引当済総数)」「在庫数 ≧ 注文個数の時に注文を受け付ける」「入荷で、実在庫に足す」「出荷で、実在庫 - 出荷個数 引当済総数 - 出荷個数」。

計算処理はアンダーラインは勿論、文章から式に書き起こして、脇に書いてもOK。確実に後で使うでしょうから。


2段落目。

分析用の表があり、毎月の集計結果を評価しているとのこと。見ているのは、在庫個数と売上個数。

数式は「なんか難しそう」でスキップ。あとで「計算しろ」となった時に考えます。試しに1とか2とかの数値を入れて計算しても良いですが、平均値も使うらしいのでちょっと複雑な感じ。


図1に到達したので解きに入ります。




解き | 設問1a

正解は「↓」(倉庫→在庫推移状況)。

リレーションの個数対応は、ITパスポートレベル。片方ずつ見ていくんでしたね。>>実データで考えるE-R図解説Note<<


まず、倉庫から在庫推状況を見ます。「1つの倉庫(倉庫A)が在庫推移状況に何個表れるか」と考えると、「たくさん」。B年C月商品コードD毎の倉庫Aの在庫数と売上個数が表れますね。

ひとまず「倉庫→在庫推移状況」です。


次は逆。在庫推移状況から倉庫を見ます。

「1つの在庫推移状況がB年C月商品コードD毎の倉庫Aが、倉庫に何個表れるか」と考えると「1つ。倉庫コードAの行が1つだけ。」です。


実は「倉庫→在庫推移状況」が分かった時点で確定して良いです。理由は図1は第三正規形になっているであろうから「倉庫⇔在庫推移状況」はあり得ないので。

「A⇔B」は「多対多」、第三正規形では「連関エンティティ」を置いて「A→連関←B」として「1対多」にします。この問題のE-R図は完成しており、すでに第三正規形なので、「⇔、多対多」を考える必要はありません。

「多対多(⇔)」がある場合は、必ず再設計の設問があるので、ない場合は「1対1(-)」「1対多(→)」「多対1(←)」だけ考えればOK。

とはいえ時間も数秒。確認のために「1個の在庫推移状況から倉庫を見たら」をした方が考え落とし失点がないですけどね。多対多になってしまったら、考え直しましょう。


さて、図1は主キーや外部キーもありますが「どんなエンティティ(実質、表と同じ)があるのかな」と見るぐらい。

複雑に見えるかもですが、実はオーソドックス。在庫、出荷、入荷を管理している系統が見て取れます。

データベース設計の「系統」「形」を覚えておくと良いですよ。「入荷」と「入荷明細」、「出荷」と「出荷明細」はテンプレ。無いとオカシイ説まであります。




読み | 【在庫管理システム改修内容】~表1・図2まで

在庫管理の改修の話。

予約注文だ管理サイクルだと書かれていますが、「で。どうデータベースの設計変更するの?」と軽くスルーします。

次の段落。設計変更するとのこと。実在庫数と引当済総数の関係から注文できないので。

予約注文用の2つのエンティティ「引当情報」「引当予定」を追加するとのこと。これが知りたかった。

表1にスキーマ(項目)はないですが、文章で主旨。図2に回収後のデータベース構造が載っています。

次の表2まで見ても良いですが、穴埋めが多くなるので、キリ良くここで解きに。




解き | 設問2(1)b,c 

正解は、

  • b:「引当情報」

  • c:「引当予定」

表1からすぐに推測できます。

  • 引当情報:予約注文の個数、入荷済み個数

  • 引当予定:未入荷の引当済数の総数

図2を見ると。

  • b:引当済数、入荷済数

  • c:未入荷引当済総数

以上より、確定します。




解き | 設問2(2)d

難しかった方もいるかもです。

読みで「毎日の締めの在庫数と売上個数を在庫推移状況エンティティに記録する(31頁終盤)」の「毎日」に気づいていたかどうか。

メタ読みすると「年」「月」の次にわざわざ【d】を設けてるぞ、と。となると「日」を疑います。


また、主キーにするのも「毎日」なので「日」も主キーにします。

メタ読みすると「主キーを項目の最初に固める」のは作法。


ここから先は

1,574字 / 5画像
この記事のみ ¥ 100

この記事が参加している募集

学習方法・問題特集のNoteは全て無料提供を続けます▼ もしご覧になったNoteが有益だったり、私の志に共感されたりしましたら、サポート頂けますと励みになります▼ もちろんコメントでも結構です(・ω・▼)ノシ