阅读下列说明,回答问题。
[说明]
某公司拟开发一多用户电子邮件客户端系统,部分功能的初步需求分析结果如下。
(1)邮件客户端系统支持多个用户,用户信息主要包括用户名和用户密码,且系统中的用户名不可重复。
(2)邮件账号信息包括邮件地址及其相应的密码,一个用户可以拥有多个邮件地址(如user1@123.com)。
(3)一个用户可拥有一个地址簿,地址簿信息包括联系人编号、姓名、电话、单位地址、邮件地址1、邮件地址2、邮件地址3等信息。地址簿中一个联系人只能属于一个用户,且联系人编号唯一标识一个联系人。
(4) 一个邮件账号可以含有多封邮件,一封邮件可以含有多个附件。邮件主要包括邮件号、发件人地址、收件人地址、邮件状态、邮件主题、邮件内容、发送时间、接收时间。其中,邮件号在整个系统内唯一标识一封邮件,邮件状态有已接收、待发送、已发送和已删除4种,分别表示邮件是属于收件箱、发件箱、已发送箱和废件箱。一封邮件可以发送给多个用户。附件信息主要包括附件号、附件文件名、附件大小。一个附件只属于一封邮件,附件号仅在一封邮件内唯一。
(1)请指出问题2中给出的地址簿、邮件和附件关系模式的主键,如果关系模式存在外键请指出。
(2)附件属于弱实体吗?请用50字以内的文字说明原因。
参考答案:
(1)地址簿主键:用户名和联系人编号;邮件主键:邮件号;附件中的主键:附件号,外键是邮件号。
(2)附件属于弱实体。一个实体的键是由另一个实体的部分或全部属性构成,这样的实体叫做弱实体。附件的外键邮件号是属于邮件这个实体的,所以它属于弱实体,依赖于邮件这个实体。
解析:
[要点解析] 该题是一个数据库设计题,题目以多用户电子邮件客户端系统为背景,考查E-R模型、E-R模型转关系模式,求解主键、外键等知识点。值得注意的是本题中出现了一个不常考的概念:“弱实体”。
[问题1] 由说明的第3条可知,一个用户可拥有一个地址簿,一个地址簿只属于一个用户,所以地址簿和用户之间是一对一的关系;由说明中的第4条可知,一个邮件账号可以含有多封邮件,一封邮件可以含有多个附件,显然,电子邮件账号与邮件、邮件与附件之间的联系类型都是一对多。
[问题2] 本题考查关系模式的补充,这种题和问题1中的题目都属于送分题,只要仔细阅读题目说明,就十分容易找到答案。
由说明的第3条“地址簿信息包括联系人编号、姓名、电话、单位地址、邮件地址1、邮件地址2,邮件地址3等信息”,但是不要忽略了一个地址簿是属于某个用户的,所以这个关系模式中缺少的是用户信息,即用户名。由说明的第4条“邮件主要包括邮件号、发件人地址、收件人地址、邮件状态、邮件主题、邮件内容、发送时间、接收时间”可知,在邮件这个关系模式中缺少的是邮件号。由说明的第4条“附件信息主要包括附件号、附件文件名、附件大小”,但是一个附件只属于一封邮件,所以附件关系模式中缺少的是标识邮件的邮件号。
[问题3] (1)本题考查主键和外键的概念。主键也称为主码,是关系中的一个或一组属性,其值能唯一标识一个元组。如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键。由此可见,外键表示了两个关系之间的联系。以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表。外键又称作外关键字。由说明的第3条“地址簿中一个联系人只能属于一个用户,且联系人编号唯一标识一个联系人”可知,联系人编号必定是地址簿的主键,但是不同用户的地址簿中有相同的联系人编号,所以地址簿的主键还应该加上用户名。由说明的第4条“邮件号在整个系统内唯一标识一封邮件,邮件状态有已接收、待发送、已发送和已删除4种,分别表示邮件是属于收件箱、发件箱、已发送箱和废件箱”,显然邮件关系模式的主键是邮件号。由说明的第4条“一个附件只属于一封邮件,附件号仅在一封邮件内唯一”,再由主键和外键的概念可知,附件关系模式的主键是附件号,外键是邮件号。
(2)本题考查弱实体的概念,知道弱实体的概念就能解答出该问题。弱实体是一种依赖联系:在现实世界中,有些实体对另一些实体有很强的依赖关系,即一个实体的存在必须以另一实体的存在为前提,前者就称为“弱实体”,如在人事管理系统中,职工子女的信息就是以职工的存在为前提的,子女实体是弱实体,子女与职工的联系是一种依赖联系。在本题中,一个附件是属于一封邮件的,所以它是弱实体,依赖于邮件。