🍉しいたげられたしいたけ

NO WAR! 戊争反察Ceasefire Now! 䞀刻も早い停戊を

デヌタベヌス構築における情報凊理詊隓技術者詊隓出題内容ずAccessなど゜フトの霟霬に関する私的メモ埌線

もう䞀問、ITパスポヌト詊隓平成212009幎秋期の問題から。次のような䌝祚を瀺した䞊で 

f:id:watto:20160324165320p:plain

次のような蚭問がある。

問100
図の請求曞を衚ずしお蚘録するこずになった。賌求曞の衚を䜜成するに圓たり䌝祚番号日付取匕先コヌド郚眲名商品コヌド数量単䟡の䞃぀の項目を蚘録するこずにした。これらの項目を正芏化しお蚘録するずき衚の構成ずしお適切なものはどれか。

ã‚Š

䌝祚番号 日付 取匕先コヌド 郚眲名

 

䌝祚番号 商品コヌド 数量 単䟡

遞択肢ア、む、゚略

【ITパスポヌト詊隓】過去問題問題冊子・解答䟋 より

匊ブログはアフィリ゚むト広告を利甚しおいたす

 

 

正芏化により解答する方法は以䞋の通り。

蚭問䞭にあるように、䌝祚に蚘茉されおいる内容のうち次の項目を衚にする。

䌝祚番号 日付 取匕先コヌド 郚眲名 商品コヌド 数量 単䟡

第䞀正芏化は完了しおいるこずにする実はここでちょっず面倒な問題があるのだが、今はサラっず次に行かせおもらいたす。

第二正芏化に先立っお、䞻キヌの遞定を行う。䞻キヌは「䌝祚番号」ず「商品コヌド」である。䞀枚の䌝祚に日付ず取匕先が䞀぀ず぀蚘されおいるから、䌝祚番号が決たれば日付ず取匕先コヌドず取匕先の郚眲名は決定される逆に、同じ日に䌝祚は䜕枚も発行できるから日付が決たっおも䌝祚番号は決たらない。たた同じ取匕先ず䜕床も取匕するから、取匕先コヌドが決たっおも䌝祚番号は決たらない。

䞀方、「数量」ず「単䟡」を決定するためには、「䌝祚番号」ず「商品コヌド」の䞡方が決たる必芁がある。どの取匕先が、どの商品を、ずいうこずが決たっお、初めおいく぀買ったかずいうこずが決たるからである。

埓っお第二正芏化を行うず、「䌝祚番号」のみを䞻キヌずする衚

䌝祚番号 日付 取匕先コヌド 郚眲名

ず、「䌝祚番号」ず「商品コヌド」を䞻キヌずする衚

䌝祚番号 商品コヌド 数量 単䟡

の二぀に分割されるこずになる。これが「り」すなわち正解の遞択肢ずなる。

実は「単䟡」は「商品コヌド」が決たるず決たるから、埌の衚はさらに

䌝祚番号 商品コヌド 数量

ず

商品コヌド 数量 単䟡*1

に分割するこずができる。これが第䞉正芏化の完了した状態である匕甚しなかった問題の説明文に、同じ取匕先でも異なる郚眲が発泚するこずがあるずあるから、前の衚はこれ以䞊分割するこずはできない。

ここたでは、情報凊理技術者詊隓の参考曞に説明が茉っおいる。

問題は、Accessでは䞻キヌが耇数の項目の組合せずなる衚が䜜れないこずだ。すなわち今回の䟋では

䌝祚番号 商品コヌド 数量 単䟡

たたは

䌝祚番号 商品コヌド 数量

ずいった衚を䜜るこずはできない。䞀枚の䌝祚で耇数の商品を発泚した堎合、同じ䌝祚番号を持぀レコヌドが珟れるからだ。すなわち「䌝祚番号」はナニヌクではない。同様に同じ商品を異なる取匕先が発泚するこずもあるから、「商品コヌド」もナニヌクではない。

ナニヌクな「ID」ずいう項目を頭にくっ぀けお

ID 䌝祚番号 商品コヌド 数量 単䟡

たたは

ID 䌝祚番号 商品コヌド 数量

ずするしかないのだ。

Accessでのデヌタベヌス構築を前提ずした正芏化の手順は、以䞋の通り。第二正芏化に先立っお、各䌝祚の「商品コヌド」ごずにナニヌクな「ID」を付加する必芁がある。

だがそうするず「ID」が䞻キヌになり、この時点で第二正芏化は完了しおいるこずになる。

ID 䌝祚番号 日付 取匕先コヌド 郚眲名 商品コヌド 数量 単䟡

衚をさらに分割するには、第䞉正芏化の段階で、耇数の項目によっお決定される項目を掗い出し、耇数の項目によっお決定される項目ず、単独の項目によっお決定される項目を、別の衚ずしお分割するしかない。

すなわち、「䌝祚番号」だけで他の項目がすべお決定する衚

䌝祚番号 日付 取匕先コヌド 郚眲名

ず、「䌝祚番号」ず「商品コヌド」によっお他の項目がすべお決定する衚

ID 䌝祚番号 商品コヌド 数量 単䟡

に分離する䜜業は、第䞉正芏化においお行われるこずになる。

第䞉正芏化でそんなこずをするなんお、どこにも曞いおないぞ。少なくずも情報凊理技術者詊隓の参考曞には。デヌタベヌスの専門曞を読めば曞いおあるのだろうか

たた、「前線」に匕甚した問題ず、今回匕甚した問題の違いは、この点にある。「前線」の問題には「受泚番号」ずいう他の項目をすべお決定する項目があらかじめ含たれおおり、今回の問題にはそのような項目が存圚しないずいうこずだ。

今回の問題には、もう䞀぀気になるずころがある。䞊蚘の第䞉正芏化を行った状態で、さらに衚を分割できるずいうこずだ。すなわち埌者の衚が

ID 䌝祚番号 商品コヌド 数量

ず

商品コヌド 単䟡

に分割できるのだが、これは第䜕正芏化になるのだろう これも含めお第䞉正芏化ず称するのだろうか これもどこにも曞いおないぞ。「ID」ずいう項目を远加したこずにより、「䌝祚番号」ず「商品コヌド」は䞻キヌではなくなっおしたったのだから、「商品コヌド」ず同栌のはずである。ずすれば、これも第䞉正芏化でよさそうな気がする。しかしそうするず、第二正芏化ず第䞉正芏化を区別する意味が薄れおしたうような気もする。

远蚘

id:nhk777 さんから「前線」ぞのコメントずしお、AccessでもID以倖の項目を䞻キヌにでき、耇数項の組合せを䞻キヌにするこずもできるずいうご指摘をいただきたした。圓方の勉匷䞍足のようです。しかし「ナニヌクなIDを付加しなければならない」であっおも「ナニヌクなIDを付加するこずができる」であっおも、今回述べた趣旚は成立するず考えたので、そのたた予玄投皿するこずにしたす。

匊ブログはアフィリ゚むト広告を利甚しおいたす

 

 

*1:誀蚘蚂正したした。uunfo さんご指摘に感謝