假定我们要为某社交平台建立一个数据库,存储如下信息: 每个用户有用户编号、姓名、手机号; 每个群有群编号,群名称; 每个帖子有帖子编号、发帖时间、正文; 每个群有唯一的用户作为群主,一个用户可以担任多个群的群主; 每个群拥有多个用户,每个用户可以加入多个群

admin2019-07-07  58

问题 假定我们要为某社交平台建立一个数据库,存储如下信息:
每个用户有用户编号、姓名、手机号;
每个群有群编号,群名称;
每个帖子有帖子编号、发帖时间、正文;
每个群有唯一的用户作为群主,一个用户可以担任多个群的群主;
每个群拥有多个用户,每个用户可以加入多个群;
每个帖子只属于一个群,每个帖子有唯一的发布者,每个群可有多个帖子,每个用户可以发布多个帖子
其中带下划线的属性是实体的标识属性。
将上面的ER图转换为满足3NF的关系模式。

选项

答案由于题目要求满足3NF范式,ER图向关系模式转换采用方法一,转换后的关系模式名称采用实体名或联系名。本题中有三个一对多、一个多对多联系。对于每一个一对多联系,都与多端的实体的关系模式合并,即将一端关系的码和联系的属性加入到多端的实体的关系模式内,码不变。对于多对多联系来说,只能单独转换成一个新的关系模式,转换后的关系模式的属性由联系本身的属性及两个实体的主码构成,转换后的关系模式的主码由两端实体的主码组合而成。 转换后的关系模式: 用户(用户编号,姓名,手机号)。其中,用户编号是主码; 帖子(帖子编号,发帖时间,正文,发帖用户编号,所属群编号)。 其中,帖子编号是主码,发帖用户编号、所属群编号是外码; 群(群编号,群名称,群主编号)。其中,群编号是主码,群主编号是外码; 用户所属群(用户编号群编号)。其中,用户编号、群编号共同作为主码,用户编号、群编号同样也是外码。

解析 在将ER图向关系模式转换时规则如下:
①1:1(一对一)联系。
方法一:联系转换为独立的关系模式;模式的属性由联系本身的属性及两个实体的码构成;关系模式的码由两个实体中的任意一个码构成。
方法二:联系与一端的实体的关系模式合并,将另一实体的码和联系的属性加入到实体的关系模式内,码不变。
②1:m(一对多)联系。
方法一:联系转换为独立的关系模式;模式的属性由联系本身的属性及两个实体的码构成;模式的码由m端实体的主码组成。
方法二:与m端的实体的关系模式合并,即将一端关系的码和联系的属性加入到m端的实体的关系模式内,码不变。
③m:n(多对多)联系。
只有一个方法:联系转换成独立的关系模式,模式的属性由联系本身的属性及两个实体的码构成,关系模式的码由两端实体的主码组合而成。
关系模式满足3NF,则必须满足关系模式中每一个非主属性既不部分依赖于码也不传递依赖于码。简而言之,第三范式就是消除主属性对码的部分和传递函数依赖。
转载请注明原文地址:https://kaotiyun.com/show/JDlZ777K
0

最新回复(0)