问题 问答题

为学校中学生选课管理进行数据库模式设计。根据调查分析,确定它的属性集合为:    U={S#,C#,SNAME,CNAME,TEACHER,GRADE,SD}  下面给出两种确定的模式设计方案:  方案一:只有一个关系模式:    R(S#,C#,SNAME,CNAME,TEACHER,GRADE,SD)  方案二:如果根据属性之间存在的联系或相关性,建立如下三个关系:    S(S#,SNAME,SD),C(C#,CNAME,TEACHER),SC(S#,C#,GRADE)

试分析这两种模式设计方案各自的优缺点。

答案

参考答案:对一个现实问题,进行关系数据模式设计,通常其设计结果不是惟一的。每个方案有各自的优缺点。对本题可以得到如下的分析结果:  对方案一:这个关系模式存在如下问题:  1.数据存在大量冗余。例如:(至少给出1项)  S#,SNAME,SD 要重复“每个学生选修的课程数”  C#,CNAME,TEACHER 要重复“学生选修这门课的人数”  2.更新异常。由于数据存在大量冗余,容易引起更新异常。例如,当更新某门课程的教师时,由于数据存在大量冗余,可能造成与这门课程有关的元组中,一部分元组的 TEACHER 的值被更新,而另一部分元组的 TEACHER 的值未被更新。  3.插入异常。显然,这个关系的主键是S#和C#。由于主键属性值不能为空值,当登记学生信息时,由于该学生尚未选课,C#未确定,该学生的其他信息也无法登入。  4.删除异常。如果某些课程因故删除了,则只选修这些课程的学生信息也被删除了,导致删除错误。  对方案二:如果根据属性之间存在的联系或相关性,建立了三个关系,则方案一中存在的异常现象被消除了。  但对诸如“查找张三的数据库技术课程的成绩”之类的问题时,就需要连接这三个关系才能完成,这个查询代价高而且会影响效率。

多项选择题
单项选择题