問85
頻出度★★★
関係データベースで管理している“担当社員”表,“地区”表及び“顧客”表を結合して,A表を得た。結合に用いた“顧客”表はどれか。ここで,下線のうち実線は主キーを,破線は外部キーを表す。 担当社員
| 社員コード | 社員名 |
|---|
地区
| 地区コード | 地区名 |
|---|
A
| 顧客コード | 顧客名 | 社員名 | 地区名 | 代表者名 |
|---|
这道题的解析和你的作答记录。
関係データベースで管理している“担当社員”表,“地区”表及び“顧客”表を結合して,A表を得た。結合に用いた“顧客”表はどれか。ここで,下線のうち実線は主キーを,破線は外部キーを表す。 担当社員
| 社員コード | 社員名 |
|---|
地区
| 地区コード | 地区名 |
|---|
A
| 顧客コード | 顧客名 | 社員名 | 地区名 | 代表者名 |
|---|
只有「顾客编号·顾客名·负责人姓名」这 3 列,完全不持有外键。这样既无法与「负责员工」表连接,也无法与「地区」表连接,因而得不到 A 表中的「员工姓名」和「地区名」。
只持有外键「员工编号」。虽然能与「负责员工」表连接得到「员工姓名」,但由于没有「地区编号」,无法与「地区」表连接,因而得不到 A 表的「地区名」。
只持有外键「地区编号」。虽然能与「地区」表连接得到「地区名」,但由于没有「员工编号」,无法与「负责员工」表连接,因而得不到 A 表的「员工姓名」。
正解 连接后的 A 表有「顾客编号」「顾客名」「员工姓名」「地区名」「负责人姓名」共 5 列。原「顾客」表本身固有的列是「顾客编号」「顾客名」「负责人姓名」,而 A 表中的「员工姓名」是从「负责员工」表(主键=员工编号)、「地区名」是从「地区」表(主键=地区编号)通过连接取来的列。因此「顾客」表必须持有用于与这两个表连接的外键——即「员工编号」和「地区编号」两者。于是原「顾客」表的列为「顾客编号·顾客名·负责人姓名·员工编号·地区编号」,选项エ正确。图中也只有エ同时以虚线(外键)备有「员工编号」「地区编号」这 2 列。