関係データベースで管理している“担当社員”表,“地区”表及び“顧客”表を結合して,A表を得た。結合に用いた“顧客”表はどれか。ここで,下線のうち実線は主キーを,破線は外部キーを表す。 担当社員
| 社員コード(主キー) | 社員名 |
地区
| 地区コード(主キー) | 地区名 |
A
| 顧客コード(主キー) | 顧客名 | 社員名 | 地区名 | 代表者名 |
- ア| 顧客コード(主キー) | 顧客名 | 代表者名 | |---|---|---|
- イ| 顧客コード(主キー) | 顧客名 | 代表者名 | 社員コード(外部キー) | |---|---|---|---|
- ウ| 顧客コード(主キー) | 顧客名 | 代表者名 | 地区コード(外部キー) | |---|---|---|---|
- エ| 顧客コード(主キー) | 顧客名 | 代表者名 | 社員コード(外部キー) | 地区コード(外部キー) | |---|---|---|---|---|
正解と解説を見る
正解
エ | 顧客コード(主キー) | 顧客名 | 代表者名 | 社員コード(外部キー) | 地区コード(外部キー) | |---|---|---|---|---|
結果表Aには社員名(担当社員表由来)と地区名(地区表由来)の両方が含まれているため、元の顧客表は担当社員表と結合するための社員コード(外部キー)、および地区表と結合するための地区コード(外部キー)の両方を持っている必要がある。したがって正解は、顧客コード(主キー)に加えて社員コードと地区コードの両方を外部キーとして持つ表である。社員コードのみ、地区コードのみ、あるいはどちらも持たない表では、結合によってA表の全ての列(社員名と地区名の両方)を得ることができない。