クヌギの勉強記

こんにちは、クヌギです。このブログでは情報処理技術者試験を中心とした各種資格の勉強を記録していきます。

DB過去問演習(H14年度)【No.2】

こんにちは、クヌギです。

今日からDBスペシャリスト試験の過去問題に取り掛かり始めました。

今回解いた問題は平成14年度 テクニカルエンジニア試験 午後Ⅰ 問1,3,4 です。(テクニカルエンジニア試験はDBスペシャリスト試験の旧名です)

f:id:Kunugin:20200130165024p:plain

自分の解答

問1

f:id:Kunugin:20200130163159j:plain
この問題はわりと解きやすい問題だったと思う。
ただ自分自身、「削除時の不都合をこたえる問題」が理解できていない。

問3

f:id:Kunugin:20200130163247j:plain
完璧。実際にシステム開発を経験したからか、何をしている処理なのかがスッと入ってきた。

問4

f:id:Kunugin:20200130163325j:plain
問題をしっかり読むべきだった、と反省する。しっかり読んでいなかった部分から連鎖的に間違いが発生している。

次にいかすために

削除時の不都合をこたえる

今回の問題の中で
「関係”質問”は、データ削除時に不都合が生じる。その状況を、具体的に50字以内で述べよ。」
という問題があった。(問1、設問2、(2))
見事に何も書くことができなかったため、次に同じような問題が来た時にこたえることができるように答え方をまとめておく。

今回の問題の背景にあるのは

質問(調査番号、質問番号、質問内容、項目数、分類番号、回答形式)

という関係である。関数従属性は以下のとおりである。
f:id:Kunugin:20200130170849p:plain
まずこの問題の関係がどの正規形に該当するかを考える。上の図を見ると、

{調査番号、質問番号}→分類番号→回答形式

という関数従属が存在しているのがわかると思う。
この関数従属は「推移関数従属性」にあたり、この関係が第二正規形であることがわかる。

この系統の問題の考え方は「正規化前の状態と正規化後の状態を頭に思い浮かべ、それぞれデータを削除した際にどうなるかを考える」というのが理想的である。

今回の問題で行くと、

質問(調査番号、質問番号、質問内容、項目数、分類番号)
回答形式(分類番号、回答形式)

という二つの関係に正規化を行った状況を思い浮かべる。
何が違うかを考えると、属性「回答形式」が関係「質問」の候補キーである{調査番号、質問番号}に依存していない点である
ということから今までは、{調査番号、質問番号}が決まらなければ回答形式を登録できなかったが、正規化することによって事前に回答形式を登録しておけるようになった。

しかし今回は削除時に起きる不都合であるため、答え方は

「ある分類番号を持つ質問をすべて削除するとその分類番号にどの回答形式が対応しているかという情報も失われる」となる。

自分自身も定期的にこの記事を読み返してこの系統の問題を解けるようにしたい。

出典:https://www.shoeisha.co.jp/book/detail/9784798163024