等级三级数据库历年真题论述题详解[4]

等级三级数据库历年真题论述题详解[4],第1张

等级三级数据库历年真题论述题详解[4],第2张

针对中学生选课管理的实际问题,设计数据库模型。根据调查分析,确定其属性集为:
u = {s #,c #,sname,cname,teacher,grade,SD}
这里有两个确定的模式设计方案:
方案一:只有一个关系模式:[/br

方案二:如果根据属性之间的关系或关联建立以下三种关系:
S (S #,Sname,SD),C (C #,CNAME,老师),SC (S #,C #,年级)
(1)。试分析这两种设计方案的优缺点。(26分)
(2)。总的来说,你认为哪个方案“更好”?请说明理由。(4分)
回答:
对于一个真实的问题,关系数据库模式的设计结果通常不是。每个方案都有自己的优点和缺点。针对这个问题可以得出以下分析结果:
第一种方案存在以下问题:这个关系模型: (每题4分,共16分。如果只给出问题,不给出说明打2.5分)
(1)。数据中有很多冗余。例如:(至少给出一项)
S#,SNAME,SD重复“每个学生选修的课程数”
C#,CNAME,老师重复“选修本课程的学生数”
(2)。更新异常。因为数据中有很多冗余,很容易造成更新异常。比如在更新某门课程的教师时,由于数据的冗余,可能会更新与这门课程相关的一些元组的教师值,而另一个元组的教师值则不会更新。
(3)。插入异常。显然,这种关系的主键是S#和C#。由于主键属性的值不能为空,在注册学生信息时,由于学生还没有选课,C#还没有确定,学生的其他信息无法登录,这不是我们的本意。
(4)。删除例外。如果某些课程因为某种原因被删除,只修这些课程的学生的信息也会被删除,这往往不是我们的本意。我们不想删除这些学生的信息。
对于方案二:如果根据属性之间的关系或关联建立三个关系,则排除方案一中的异常现象。(5分)
但涉及到“求张三数据库技术课程成果”等问题时,就需要把这三个关系联系起来才能完成。这个查询开销很大,会影响效率。(得分2.5分)
相比之下,第一种方案可以直接投影选择完成这类查询,不需要连接操作,显然成本低,效率高。(得分2.5分)
比较两种设计方案:我认为第二种设计方案比第一种“更好”,虽然它对某些查询问题的连接操作更多,因为它不存在上述异常问题。(4分)

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 等级三级数据库历年真题论述题详解[4]

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情