问答题 [说明]
某公司拟开发一个多用户电子邮件客户端系统,部分功能的初步需求分析结果如下。
(1) 邮件客户端系统支持多个用户,用户信息主要包括用户名和用户密码,且系统中的用户名不可重复。
(2) 邮件账号信息包括邮件地址及其相应的密码,一个用户可以拥有多个邮件地址(如userl@123.com)。
(3) 一个用户可以拥有一个地址簿,地址簿信息包括联系人编号、姓名、电话、单位地址、邮件地址1、邮件地址2和邮件地址3等信息。地址簿中一个联系人只能属于一个用户,且联系人编号唯一标识一个联系人。
(4) 一个邮件账号可以含有多封邮件,一封邮件可以含有多个附件。邮件主要包括邮件号、发件人地址、收件人地址、邮件状态、邮件主题、邮件内容、发送时间和接收时间。其中,邮件号在整个系统内唯一标识一封邮件,邮件状态有已接收、待发送、已发送和已删除4种,分别表示邮件是属于收件箱、发件箱、已发送箱和废件箱。一封邮件可以发送给多个用户。附件信息主要包括附件号、附件文件名和附件大小。一个附件只属于一封邮件,附件号仅在一封邮件内唯一。

1. 根据以上说明设计的E-R图如图8-7所示,请指出地址簿与用户、电子邮件账号与邮件,以及邮件与附件之间的联系类型。
【正确答案】(1)1
(2) 1
(3) m 或 n 或 *
(4) 1
(5) n 或 m 或*
【答案解析】[解析]
由题干中的关键信息“(3)一个用户可拥有一个地址簿,地址簿信息包括联系人编号……地址簿中一个联系人只能属于一个用户,且联系人编号唯一标识一个联系人……”和常识可知,“地址簿”实体与“用户”实体之间存在联系“拥有1”,其联系的类型是一对一 (1:1),即(1)空缺处应填入1。
由题干中的关键信息“(4)一个邮件账号可以含有多封邮件……邮件主要包括邮件号……邮件号在整个系统内唯一标识一封邮件……”和常识可知,“邮件账号”实体与“邮件”实体之间存在联系“包含”,其联系的类型是一对多(1:n)。因此(2)空缺处应填入1,(3)空缺处应填入n。
由题干中的关键信息“(4)……一封邮件可以含有多个附件……一个附件只属于一封邮件……”可知,“邮件”实体与“附件”实体之间存在联系“属于”,其联系的类型是一对多(1:n)。因此(4)空缺处应填入1,(5)空缺处应填入n。
整理以上分析结果,可得该多用户电子邮件客户端系统完整的实体联系图,如图8-9所示。
[*]
【正确答案】(a) 用户名 (b) 邮件号,发件人地址
(c) 邮件号
【答案解析】[解析]
由题干中的关键信息“(1)邮件客户端系统支持多个用户……且系统中的用户名不可重复”可知,“用户名”由该系统统一分配和标识,不会重复,可以唯一地标识每一个用户信息,可作为“用户”关系模式的主键。
根据E-R模型到关系模式的转换规则,需要将某一方实体的主键加入已另一方实体的关系模式中,以表达它们之间的联系关系。在图8-9中,“地址簿”实体处于联系“拥有1”的“1”端,结合题干中的关键信息“(3)……地址簿信息包括联系人编号、姓名、电话、单位地址、邮件地址1、邮件地址2和邮件地址3等信息”可知,“地址簿”关系模式的属性包含有“联系人编号,姓名,电话,单位地址,邮件地址1,邮件地址2,邮件地址3,用户名”。由于“地址簿中一个联系人只能属于一个用户,且联系人编号唯一标识一个联系人”,因此“联系人编号”可作为“地址簿”关系模式的主键。“用户名”是“地址簿”关系模式的外键。
在图8-9中,“邮件账号”实体处于联系“拥有2”的“m”端,因此根据E-R模型到关系模式的转换规则,将“邮件账号”实体类型转换成关系模式时,需要加入“用户”实体的主键“用户名”(作为外键)及联系“拥有2”自身的属性。结合题干中的关键信息“(2)邮件账号信息包括邮件地址及其相应的密码……”可知,“邮件账号”关系模式的属性包含有“邮件地址,邮件密码,用户名”。结合常识,“邮件地址”由该系统统一分配,不会重复,可以唯一地标识每一个邮件账号信息,可作为“邮件账号”关系模式的主键。“用户名”是“邮件账号”关系模式的外键。
同理,在图8-9中,“邮件”实体处于联系“包含”的“n”端,因此根据E-R模型到关系模式的转换规则,在“邮件”关系模式中需要加入“邮件账号”实体的主键“邮件地址”(作为外键)及联系“包含”自身的属性。结合题干中的关键信息“(4)……邮件主要包括邮件号、发件人地址、收件人地址、邮件状态、邮件主题、邮件内容、发送时间和接收时间……”可知,“邮件”关系模式的属性包含有“邮件号,发件人地址,收件人地址,邮件状态,邮件主题,邮件内容,发送时间,接收时间”。其中,“发件人地址”和“收件人地址”是对“邮件账号”关系模式的主键“邮件地址”的具体化(或泛化)。由于“邮件号在整个系统内唯一标识一封邮件”,因此“邮件号”可作为“邮件”关系模式的主键。“发件人地址”或“收件人地址”是“邮件”关系模式的外键。因为当用户向其他人发送邮件的时候,“发件人地址”是参考“邮件账号”关系模式的“邮件地址”的主键;当用户接收邮件的时候,“收件人地址”是参考“邮件账号”关系模式的“邮件地址”的主键。
在图8-9中,“附件”实体处于联系“属于”的“n”端,因此根据E-R模型到关系模式的转换规则,在“附件”关系模式中需要加入“邮件”实体的主键“邮件号”(作为外键)及联系“属于”自身的属性。结合题干中的关键信息“(4)……附件信息主要包括附件号、附件文件名和附件大小……”可知,“附件”关系模式的属性包含有“附件号,附件文件名,附件大小,邮件号”。由于“一封邮件可以含有多个附件……附件号仅在一封邮件内唯一”,因此需要用“附件号”和“邮件号”组合才可唯一标识该系统中某一个具体的附件,即“附件”关系模式的主键是“附件号”和“邮件号”的组合。“邮件号”是“附件”关系模式的外键。
【正确答案】(1)关系模式 主键 外键
地址簿 联系人编号 用户名
邮件 邮件号 发件人地址或收件人地址
附件 邮件号,附件号 邮件号
(2) 附件属于弱实体,因为附件的存在必须以邮件的存在为前提,即附件总是依附于某个邮件
【答案解析】[解析]
地址簿、邮件和附件关系模式的主键和外键请参见[问题2]的分析结果。
根据常识,结合[问题1]和[问题2]的分析过程,由于在该系统中邮件附件的存在必须以邮件的存在为前提,即附件总是依附于某邮件,两者之间具有很强的依赖联系,且“附件”关系模式的主键“附件号,邮件号”中的“邮件号”是从“邮件”实体中获得,图8-9中“附件”实体与“邮件”实体之间的联系类型是一对多(1:n),因此“附件”属于弱实体,“邮件”属于强实体。