見出し画像

【図解68枚で全文解説】デスペ令和6年秋午後1問1の解説(データベーススペシャリスト)

このNoteでは「データベーススペシャリスト 令和6年秋午後1問1」の解説をします。

データベース設計を主砲に仕上げれば、午後1の1問・午後2を倒せます。つまり午後1の1問(設計以外)をどうにかするだけ。

でもデータベース設計は大変ですよ。問題文に書かれた仕様を丁寧に拾い上げ、スキーマ(表)とER図に矛盾なく記述します。

私の手順は以下。

  1. 問題文からスキーマとER図をチェック

  2. スキーマからER図をチェック

  3. ER図からスキーマをチェック

  4. 見落としなどないか全体チェック

かなり時間がキビシイですが、過去問で訓練します。

このNoteでは、手順1の問題文を一緒に読みながら、スキーマとER図を完成させていきます。今回の問題はデータベース設計が3回できる良い問題です。理不尽さもありません。是非、腕を磨いてくださいね。


私のNoteは、独学合格した経験と、IT専門学校での授業内容を基に作っています。

私の午前/午後解説や4ヶ月勉強記録に興味が出ましたらどうぞ。

>14個のDB午前テーマ別解説Note
>DB午前問題の解説Note
>4ヶ月の勉強記録Note

※このNoteは2025/09本試験まで公開します。本試以降は、マガジンに統合されます。



設問1 | 問題文→スキーマ, ER図

設問1(1)(2)を読んで、ER図とスキーマの完成であると確認。

問題文を読んでシステム・設計思想を理解しつつ、スキーマに足りない項目、ER図に足りないリレーションシップを追加していきます。



問題文から表名, 項目名, 主キーを特定する

まずは基礎。表名, 項目名, 主キーを文面から特定。マーキングは必ずしてください。

問題ないですね。表名「アカウント」、項目名「カウント番号」を拾い出し、「識別する」から主キーも決まりました。



共存的サブタイプは「フラグ」を使う

アカウントに「講師」「受講生」の種類がある話。

ポイントは、共存するかしないか。

  • 共存する:講師or/and受講生

  • 共存しない:講師or受講生

文意から、既に講師登録しているなら受講生になっても新規登録は不要。よって、講師であって受講生でもある共存が許される状況と判断。「アカウント」に「受講生フラグ」「講師フラグ」を設けます。

なお共存する場合を「共存的サブタイプ」と云います。



補強 | 排他的サブタイプは「区分」を使う

「講師」と「受講」生の共存が許されない場合、アカウントに「講師受講生区分」を設けます。

>ER図のパターンまとめNoteより

共存する時は「~フラグ」を必要個数設け、共存しない時は「~区分」を1つ設けます。

今回の問題でも「コンテンツ区分」が登場します。コンテンツが動画なのかテストなのかを分類する項目。



主キー 兼 外部キー を見落とさない

ER図からスキーマ/外部キーを推測できます。

「アカウント」と「講師」「受講生」が接続されているので、「講師」「受講生」の主キーは、「アカウント」への外部キーにもなっています。

これぐらいなら簡単ですが、複合主キーや外部キーがたくさんある時に有効な考え方です。


スキーマの表記(下線)で、主キーと主キー+外部キーの区別はできないので注意してください。

スキーマの記述ルールに「主キーは下実線」「外部キーは下破線」「主キーかつ外部キーの時は下実線(破線はつけない)」があります。下実線で主キーはすぐに分かりますが、”外部キーでもあるかも”と考え落としを減らします。



項目名は分かり易い名前に変えて良い

問題ないですね。表名「講師」と項目「講師プロフィール」の存在を確認。

「講師プロフィール」は「プロフィール」でもOKです。しかし、DB設計では、用途が分かりやすい名前に変えて大丈夫。むしろ変えた方が良いです。

他にも「アカウント#」を「受講生アカウント#」や「プレゼント相手アカウント#」に、模範解答は改名しています。

項目名は、原形を留めつつ少し用途を加えた名前に変えてあげると、採点者に理解が伝わり易いし、自分の見直し/理解にもつながります。



日常的な文言からキー/個数対応を特定する

段々複雑になってきます。外部と複合主キーの特定法を学びましょう。

まずはスキーマ。表名「コース」、項目「コース#」を「識別する」より主キーに設定。「標準価格」も問題ないですね。

「製作した講師が分かるように」より、「アカウント#」を外部キーで設定。なお「製作講師アカウント#」でもOKです。

なお「コースの製作は1名の講師」なので、項目1つで充分。複数だったら別表が必要でした(「製作者」表など)。


個数対応も少し明らかになりました。

「コースは、複数のセッションから成る」より、1対

1つのコースに複数のセッションが紐づくので、セッションは複合主キーかな。コースの主キー「コース#」に「セクション#」を追加した複合主キー。

例えば、注文と注文明細で理解すると簡単。注文(主キー:注文番号)の場合、注文明細(主キー:注文番号, 明細番号)。

また「コースごとにセクション#で識別する」からも複合主キーと分かります。

個数を表す言葉に敏感に反応できるようになって下さい。「1つ」「複数」「高々一つ(0or1)」「~ごと(複数)」など。



個数に関する文言を正しく捉える

「セクションは、一つ又は複数の講義動画」より、セクションと講義動画が1対。「講義動画」の主キーは複合主キーでしょう。セクションの主キーが「コース#」「セクション#」の2つでは未だ1対1。よって3つ目の「コンテンツ#」まで主キーにして1対多にしています。

セクションは「高々一つのテスト」より、1対1。1対1なのでテストの主キーは、、セクションの主キー「コース#」「セクション#」で充分。でも、「コンテンツ#」も主キーになっていますね。次に解説します。



ここから先は

9,689字 / 48画像
この記事のみ ¥ 700
Amazon Payで支払うと最大2%還元のチャンス! 9/30まで

最新問題の解説Noteは無料公開します。 本試験終了後に、マガジンに組み入れ価格調整します(期間限定割引はするかもしれません)。マガジン購入済みの場合、調整が実施されても追加の支払いは発生しません。早くからご愛読頂いている方に損はさせません。 Note単体は24時間返金に対応していますが、マガジンはシステム的に対応できないようなのでご注意ください。

【必ずリストを見てからご購入下さい】 データベーススペシャリスト「午後1」の解決Noteです。 取りこぼさないためのマーキング・スキー…

Amazon Payで支払うと最大2%還元のチャンス! 9/30まで

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