関係データベースで管理している“担当社員”表,“地区”表及び“顧客”表を結合して,A表を得た。
結合に用いた“顧客”表はどれか。
ここで,下線のうち実線は主キーを,破線は外部キーを表す。
担当社員:社員コード(主キー),社員名
地区:地区コード(主キー),地区名
A:顧客コード(主キー),顧客名,社員名,地区名,代表者名
正答4
解説
正解は4です。
図の“担当社員”表は、主キーの社員コードと社員名からなります。
“地区”表は、主キーの地区コードと地区名からなります。
A表は、顧客コード、顧客名、社員名、地区名、代表者名からなります。
A表に社員名と地区名が含まれるので、“顧客”表は“担当社員”表と“地区”表の両方と結合できなければなりません。
【選択肢別解説】
1:× 顧客コード、顧客名、代表者名だけでは、“担当社員”表とも“地区”表とも結び付けられません。
社員名も地区名も得られないので誤りです。
2:× 社員コードを外部キーとしてもつので、“担当社員”表と結合して社員名は得られます。
しかし地区コードがないので、地区名を得られず誤りです。
3:× 地区コードを外部キーとしてもつので、“地区”表と結合して地区名は得られます。
しかし社員コードがないので、社員名を得られず誤りです。
4:○ 社員コードと地区コードの両方を外部キーとしてもちます。
社員コードで“担当社員”表から社員名、地区コードで“地区”表から地区名を得られるので、A表を作れます。
【ポイント】
表を結合するには、相手の表の主キーを外部キーとしてもつ必要があります。
結合後の表にある項目が、どの表から来たかをたどると答えが見つかります。