数据库
简答题(10分)假定我们要为某社交平台建立一个数据库,存储如下信息:
·每个用户有用户编号、姓名、手机号;
·每个群有群编号,群名称;
·每个帖子有帖子编号、发帖时间、正文;
·每个群有唯一的用户作为群主,一个用户可以担任多个群的群主;
·每个群拥有多个用户,每个用户可以加入多个群;
·每个帖子只属于一个群,每个帖子有唯一的发布者,每个群可有多个帖子,每个用户可以发布多个帖子
其中带下划线的属性是实体的标识属性。
(1)请根据以上描述,画出相应的ER图。
(2)将上面的ER图转换为满足3NF的关系模式。
·每个用户有用户编号、姓名、手机号;
·每个群有群编号,群名称;
·每个帖子有帖子编号、发帖时间、正文;
·每个群有唯一的用户作为群主,一个用户可以担任多个群的群主;
·每个群拥有多个用户,每个用户可以加入多个群;
·每个帖子只属于一个群,每个帖子有唯一的发布者,每个群可有多个帖子,每个用户可以发布多个帖子
其中带下划线的属性是实体的标识属性。
(1)请根据以上描述,画出相应的ER图。
(2)将上面的ER图转换为满足3NF的关系模式。
参考答案:暂无进入在线模考
(1)【解题思路】
ER图的设计原则:在设计ER图时,首先应根据需求分析,确认实体、属性和联系这3种ER图的基本要素。在ER图中,分别用矩形框表示实体,椭圆表示属性,菱形框表示联系。
①实体:把客观存在并且可以相互区别的事物称为实体。实体可以是实际事物,也可以是抽象事物,如群、用户、帖子等。
②属性:描述实体的特性称为属性,如用户的用户编号、姓名、手机号等。能唯一标识实体的属性作为主属性,在ER图中用下划线标识。
③联系:联系是实体问有意义的相互作用,即实体问存在的关联。一般用动词作为联系的名字,如起降、驾驶、飞行等,能表示实体之间的关系。
本题中每个群有唯一的用户作为群主,一个用户可以担任多个群的群主,所以作为群主的用户和群之间存在一对多联系;每个群有多个用户,每个用户可以加入多个群,所以用户和群之间是多对多联系;每个帖子只属于一个群,每个群可有多个帖子,所以帖子和群之间存在一对多联系;每个帖子有唯一的发布者,每个用户可以发布多个帖子,所以帖子和用户之间存在一对多联系。
【参考答案】

(2)【解题思路】
在将ER图向关系模式转换时规则如下:
①1:1(一对一)联系。
方法一:联系转换为独立的关系模式;模式的属性由联系本身的属性及两个实体的码构成;关系模式的码由两个实体中的任意一个码构成。
方法二:联系与一端的实体的关系模式合并,将另一实体的码和联系的属性加入到实体的关系模式内,码不变。
②1:m(一对多)联系。
方法一:联系转换为独立的关系模式;模式的属性由联系本身的属性及两个实体的码构成;模式的码由m端实体的主码组成。
方法二:与m端的实体的关系模式合并,即将一端关系的码和联系的属性加入到m端的实体的关系模式内,码不变。
③m:n(多对多)联系。
只有一个方法:联系转换成独立的关系模式,模式的属性由联系本身的属性及两个实体的码构成,关系模式的码由两端实体的主码组合而成。
关系模式满足3NF,则必须满足关系模式中每一个非主属性既不部分依赖于码也不传递依赖于码。简而言之,第三范式就是消除主属性对码的部分和传递函数依赖。
【参考答案】
由于题目要求满足3NF范式,ER图向关系模式转换采用方法一,转换后的关系模式名称采用实体名或联系名。本题中有三个一对多、一个多对多联系。对于每一个一对多联系,都与多端的实体的关系模式合并,即将一端关系的码和联系的属性加入到多端的实体的关系模式内,码不变。对于多对多联系来说,只能单独转换成一个新的关系模式,转换后的关系模式的属性由联系本身的属性及两个实体的主码构成,转换后的关系模式的主码由两端实体的主码组合而成。
转换后的关系模式:
用户(用户编号,姓名,手机号)。其中,用户编号是主码;
帖子(帖子编号,发帖时间,正文,发帖用户编号,所属群编号)。
其中,帖子编号是主码,发帖用户编号、所属群编号是外码;
群(群编号,群名称,群主编号)。其中,群编号是主码,群主编号是外码;
用户所属群(用户编号,群编号)。其中,用户编号、群编号共同作为主码,用户编号、群编号同样也是外码。
ER图的设计原则:在设计ER图时,首先应根据需求分析,确认实体、属性和联系这3种ER图的基本要素。在ER图中,分别用矩形框表示实体,椭圆表示属性,菱形框表示联系。
①实体:把客观存在并且可以相互区别的事物称为实体。实体可以是实际事物,也可以是抽象事物,如群、用户、帖子等。
②属性:描述实体的特性称为属性,如用户的用户编号、姓名、手机号等。能唯一标识实体的属性作为主属性,在ER图中用下划线标识。
③联系:联系是实体问有意义的相互作用,即实体问存在的关联。一般用动词作为联系的名字,如起降、驾驶、飞行等,能表示实体之间的关系。
本题中每个群有唯一的用户作为群主,一个用户可以担任多个群的群主,所以作为群主的用户和群之间存在一对多联系;每个群有多个用户,每个用户可以加入多个群,所以用户和群之间是多对多联系;每个帖子只属于一个群,每个群可有多个帖子,所以帖子和群之间存在一对多联系;每个帖子有唯一的发布者,每个用户可以发布多个帖子,所以帖子和用户之间存在一对多联系。
【参考答案】

(2)【解题思路】
在将ER图向关系模式转换时规则如下:
①1:1(一对一)联系。
方法一:联系转换为独立的关系模式;模式的属性由联系本身的属性及两个实体的码构成;关系模式的码由两个实体中的任意一个码构成。
方法二:联系与一端的实体的关系模式合并,将另一实体的码和联系的属性加入到实体的关系模式内,码不变。
②1:m(一对多)联系。
方法一:联系转换为独立的关系模式;模式的属性由联系本身的属性及两个实体的码构成;模式的码由m端实体的主码组成。
方法二:与m端的实体的关系模式合并,即将一端关系的码和联系的属性加入到m端的实体的关系模式内,码不变。
③m:n(多对多)联系。
只有一个方法:联系转换成独立的关系模式,模式的属性由联系本身的属性及两个实体的码构成,关系模式的码由两端实体的主码组合而成。
关系模式满足3NF,则必须满足关系模式中每一个非主属性既不部分依赖于码也不传递依赖于码。简而言之,第三范式就是消除主属性对码的部分和传递函数依赖。
【参考答案】
由于题目要求满足3NF范式,ER图向关系模式转换采用方法一,转换后的关系模式名称采用实体名或联系名。本题中有三个一对多、一个多对多联系。对于每一个一对多联系,都与多端的实体的关系模式合并,即将一端关系的码和联系的属性加入到多端的实体的关系模式内,码不变。对于多对多联系来说,只能单独转换成一个新的关系模式,转换后的关系模式的属性由联系本身的属性及两个实体的主码构成,转换后的关系模式的主码由两端实体的主码组合而成。
转换后的关系模式:
用户(用户编号,姓名,手机号)。其中,用户编号是主码;
帖子(帖子编号,发帖时间,正文,发帖用户编号,所属群编号)。
其中,帖子编号是主码,发帖用户编号、所属群编号是外码;
群(群编号,群名称,群主编号)。其中,群编号是主码,群主编号是外码;
用户所属群(用户编号,群编号)。其中,用户编号、群编号共同作为主码,用户编号、群编号同样也是外码。
你可能感兴趣的试题
最新试题
(10分)在SQL Server 2008数据库中存在销售单据明细表,其建表语句为:在系统运行一段时间后,此表中有近千万
类型:简答题2019-03-01
(10分)设在SQL Server 2008某数据库中有汽车表和销售表,表的定义如下:PRIMARYKEY(汽车型号,销
类型:简答题2019-03-01
(10分)假定我们要为某社交平台建立一个数据库,存储如下信息:·每个用户有用户编号、姓名、手机号;·每个群有群编号,群名
类型:简答题2019-03-01
在企业数据仓库架构中,操作型数据存储ODS一般情况下主要用来支持即时OLAP和全局型【15】两类应用。
类型:简答题2019-03-01
在数据仓库环境中,数据的【14】设计是一种重要的设计问题,它会影响到数据仓库中数据量以及系统能回答的查询的类型。
类型:简答题2019-03-01
在分布式数据库系统中,为了保证全局事务的原子性,参与事务执行的所有场地或者全部提交,或者全部【13】。
类型:简答题2019-03-01
事务内部故障可以分为预期的和非预期的,并发死锁故障属于【12】的事务内部故障。
类型:简答题2019-03-01
增加冗余列的调优方法是典型的以空间换【11】的调优方法。
类型:简答题2019-03-01
【10】视图是一种保存了查询结果的数据库对象,其中的数据是预先计算并保存在对象中的。
类型:简答题2019-03-01
在SQL Server 2008中,若要删除U1登录账户,请补全下列语句:DROP【9】U1
类型:简答题2019-03-01




