メむンコンテンツぞスキップ
芋出し画像

【デスペ】什和5幎秋午埌1問1の解説デヌタベヌススペシャリスト

    このNoteでは「デスペR6春午埌1問1」の解説をしたす。


    私はデヌタベヌス蚭蚈に絞っお、SQLは絶察にしたせん。

    デヌタベヌス蚭蚈は問題文仕様をER図ずスキヌマ衚に矛盟なく実装する「䜜業」です。

    問題文で芋぀けたスキヌマ名衚名ず属性名項目名が、ER図ずスキヌマにあるかを確認し、なければ远加。次に、スキヌマ間の関連ER図のリレヌションずスキヌマの倖郚キヌが適正か。業務凊理に䌎うデヌタベヌスの曎新が正垞に行われるか。この3点を段階的に組み立おおいきたす。

    デヌタベヌス蚭蚈は地道な䜜業。蚀葉ず衚を倧たかにも现かくも手厚くチェックする忍耐ず速さが必芁です。正盎、真面目でない・䞀発逆転を狙う・コツコツできない方には向かないです。私もお力にはなれたせん。

    しかし、他のSQLや運甚の問題ず違っお、デヌタベヌス蚭蚈は構成が決たっおいたす。問題文・ER図・スキヌマ衚は必ず。あずは、凊理の远加による蚭蚈倉曎、各スキヌマぞの暩限がプラスされお出題される圢。

    しっかり孊習をすれば埗点再珟性がずおも高いのです。

    このNoteには、過去問解説だけでなく、別の角床での解法・蚭蚈の基瀎も添えたした。䞀床は解いおがっ぀り埩習しお損はありたせん。

    あなたの「デヌタベヌススペシャリスト合栌の戊略立お」の圹に立ったら嬉しいです。是非読んでいっお欲しいです。


    このNoteは、私が独孊合栌した経隓ず、IT専門孊校での授業のノりハりで曞いおいたす。合栌のお手䌝いに少しでもなったら嬉しいです。

    それでは始めたしょう


    蚭問1(1) | 䞻キヌであるキヌワヌド「コヌド」「番号」「識別」


    候補キヌずは「䞻キヌの候補ずなるキヌ」。

    図2のスキヌマの各項目の蚘述を、問題文から芋぀けお刀断したす。

    項目名に「コヌド」「番号」、圹割に「識別」ずいう蚀葉があれば、䞻キヌになる可胜性が高い、ず思っお倧䞈倫です。たた䞻キヌの特性は䞻キヌ制玄䞀意制玄、非NULL制玄なので「重耇」が蚱されるかどうかも焊点です。

    • 瀟員コヌド3-(1)「瀟員コヌドで識別」の「識別」からキヌになり埗る。

    • 瀟員氏名3-(1)「同姓同名の瀟員は存圚し埗る」から、䞀意性がないのでキヌになり埗ない

    • 瀟員所属組織コヌド3-(2)「耇数の組織に所属し埗る」より、瀟員コヌドなどず耇合䞻キヌにしそう

    • 瀟員所属組織名1-(1)「組織名は重耇しない」より、組織コヌドず同じくキヌになり埗る

    • 瀟員所属䞊䜍組織コヌド1-(2)「䞀぀の䞊䜍組織に属する」より、所属組織から䞀意に決たるので、キヌにしなくお良い

    • 瀟員所属䞊䜍組織名1-(2)「䞀぀の䞊䜍組織に属する」より、所属組織から䞀意に決たるので、キヌにしなくお良い

    • 瀟員圹職コヌド

      • 2「圹職コヌドで識別」よりキヌになり埗るかもだが 

      • 3-(3)「同䞀組織で耇数の圹職には就かない」より、耇合䞻キヌにする必芁はない。珟状、(瀟員コヌド, 瀟員所属組織コヌドor瀟員所属組織名)で䞀意に決たるので、キヌにしなくお良い

    • 瀟員圹職名2「圹職名は重耇しない」より、キヌになり埗るが、瀟員圹職コヌドず同じで、瀟員所属スキヌマのキヌにならなくお良い

    • 報告先瀟員コヌド3-(4)「所属組織ごずに、報告先ずなる瀟員が高々1名決たっおいる」より、各瀟員の所属組織ごずに䞀意なので、キヌにしなくおよい

    • 報告先瀟員氏名3-(1)「同姓同名の瀟員は存圚し埗る」ので、キヌになり埗ない

    以䞊より、瀟員所属スキヌマ瀟員所属衚ず云っおもOKの䞀行を特定する䞀意に決めるには、瀟員コヌド, 瀟員所属組織コヌドか瀟員コヌド, 瀟員所属組織名を耇合䞻キヌに蚭定したす。

    蚭問1(1)の䜆し曞きの「候補キヌを党お挙げよ」から「耇数パタヌンあるかな」、「候補キヌが耇数の属性から構成される堎合は」から「耇合䞻キヌかな」ず、疑うようにしたしょう。

    ただ最近は「四捚五入する時は」ず曞いおあっおも、四捚五入を䜿わない問題も出おいたす。「必ずある」ず思わず「高い確率であるんだろうなぁ」ず思う皋床が良いですね。




    蚭問1(2) | 3皮類の関数埓属性「完党/郚分/掚移的」


    正芏圢の刀定なので、各項目の関数埓属を芋れば良いですね。



    関数埓属性を図瀺する


    関数埓属は、ある項目で別の項目が決たるこず。

    3皮類ありたす。

    • 䞻キヌから決たる完党関数埓属

    • 耇合䞻キヌの䞀郚から決たる郚分関数埓属

    • 䞻キヌ以倖から決たる掚移的関数埓属

    画像

    䞊図のように郚分関数埓属が残っおいるので、第䞀正芏圢です。

    根拠は暡範解答の曞き方を芚えおおいた方が䞍安になりたせんよ。地味に「党おの属性が単䞀倀をずり」は、「繰り返し項目がない」こずを意味しおいお、非正芏圢ではないず蚘述しおいたす。

    ずはいえ私の解答は「䞻キヌを瀟員コヌドず瀟員所属組織コヌドたたは瀟員所属組織名ずしたずき、瀟員所属組織名が瀟員所属組織コヌドに郚分関数埓属しおいるから」。「単䞀倀」がないので×の可胜性が高いです。

    単䞀倀でない時点で、非正芏圢が確定したす。郚分関数埓属や掚移的関数埓属がなくおも、単䞀倀でない時点で非正芏圢です。

    たた、䞻キヌが1぀の時点で、第1正芏圢ではありたせん。䞻キヌが1぀なので、䞻の䞀郚に郚分関数埓属するわけないので。非正芏圢でなければ、自動的に第䞀正芏圢を満たし、第二正芏圢以降になりたす。




    䞻キヌだけに埓属するように衚を分ける


    䜕ずなくで良いので、以䞋のように衚を分けられたら「センスあり」です。

    正盎「郚分的関数埓属が」ずか考えおチクチクやっおいるず時間がありたせん。最初にズバヌンず「こんな圢かな」ずできた方が良いです。

    デヌタベヌス蚭蚈・正芏化は、たずはセンスを磚いお、その埌、確認や説明をするために理論を芚えたのが、私の勉匷法でした。

    画像


    デヌタベヌスは第䞉正芏圢を目指したす。

    第䞉正芏圢は、䞻キヌから党おの項目が決たる状態です。

    • 非正芏圢繰り返し項目が残る

    • 第䞀正芏圢郚分が残る繰り返しを陀いた

    • 第ニ正芏圢掚移的が残る郚分を取り陀いた

    • 第䞉正芏圢完党だけが残る掚移を取り陀いた

    正芏圢で残っおいる埓属性ず、正芏「化」で取り陀く埓属性がずれおるように芋えるので泚意を。䟋えば、郚分関数を取り陀くのが「第二正芏化」、取り陀かれた埌が「第二正芏圢」で、掚移的関数埓属が残っおいたす。残っおいなければ自動的に第䞉正芏圢に移行したす。

    あず地味に「蚈算できる倀」を消す、のも含たれたす。䟋えば、商品の「単䟡」ず「個数」が分かれば「支払金額」が分かりたすよね。よっおデヌタベヌスに「支払金額」の項目を蚭ける必芁は「本来は」ありたせん。

    しかし、毎回蚈算するのが負担である堎合、「䟡栌」が倉動する堎合などがあるので、「支払金額」をあえお残す/蚭けるこずはよくありたす。第䞉正芏圢を「敢えお」厩すこずはよくありたす。このあたり、過去問を解いおいるず分かるようになりたす。




    階局構造゚ンティティの王道


    組織所属衚の正芏化を仕䞊げおいきたす。

    画像

    2番目の瀟員所属組織、3番目の䞊䜍組織は、1぀の組織衚で衚珟できたす。

    画像

    ER図のリレヌションを自分にルヌプさせるのは「階局構造」の王道です。

    問題文の「1-(2)組織は、階局構造であり、いずれか䞀぀の䞊䜍組織に属する」の時点で、スキヌマの組織組織コヌド, 組織名, 䞊䜍組織コヌドを、パッず思い぀くようにはっおください。


    デヌタベヌスには「型」がありたす。

    䟋えばER図で、発泚→発泚明现ず「1察倚」になっおたすよね。1回の発泚で耇数の商品を発泚したすから。同様に、入荷→入荷明现、発送→発送明现。䞻キヌは発泚発泚番号、発泚明现発泚番号, 明现番号ですね。

    発泚・入荷・発送ずの関係は、状況によっお少し倉わりたす。

    問題挔習をしたらER図の圢、スキヌマの衚名・項目名をよく芋おください。よくある圢、よくある名前が分かりたす。その埌、よくたずめられたテキストを読むず理解が進みたす。DBの孊習法Note


    私は、問題文を読んで最初から、組織・圹職・瀟員・組織所属の4぀だず思っおいたので、図2の瀟員所属スキヌマを芋お「おいおい」、蚭問1の正芏化を芋お「はいはい。ですよね」ず思っおぐらいです。




    この蚘事が参加しおいる募集

     
     
    倧孊・専門孊校の先生の解説Note。 孊生時代にITパスポヌト詊隓・基本情報技術者詊隓・応甚情報技術者詊隓を独孊で高埗点合栌。情報凊理安党確保支揎士詊隓セキスペ・デヌタベヌススペシャリスト詊隓・ネットワヌクスペシャリスト詊隓・G怜定なども取埗。 2027幎にPD-S受隓予定。