舅媽计算机课sex,全国计算机等级考试四级数据库论述题真题(2-3)

3eb66ef4cc7c6c597e5fc284425d5cf2.png

5为学校中学生选课管理这个现实问题进行数据库模式设计。根据调查分析,确定它的属性集合为:

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).试分析这两种模式设计方案各自的优缺点。(26分)

(2).通常情况下你认为哪种方案更“好”些?请说明理由。(4分)

答案:

对一个现实问题,进行关系数据库模式设计,通常其设计结果不是的。每个方案有各自的优缺点。对本题可以得到如下的分析结果:

对方案一:这个关系模式存在如下问题:(每个问题4分,共16分。若只给出问题,没有说明得2.5分)

(1).数据存在大量冗余。例如:(至少给出1项)

S#,SNAME,SD要重复“每个学生选修的课程数”

C#,CNAME,TEACHER要重复“学生选修这门课的人数”

(2).更新异常。由于数据存在大量冗余,容易引起更新异常。例如,当更新某门课程的教师时,由于数据存在大量冗余,可能造成与这门课程有关的元组中,一部分元组的TEACHER的值被更新,而另一部分元组的TEACHER的值未被更新。

(3).插入异常。显然,这个关系的主键是S#和C#。由于主键属性值不能为空值,当登记学生信息时,由于该学生尚未选课,C#未确定,该学生的其他信息也无法登入,这不是我们的意愿。

(4).删除异常。如果某些课程因故删除了,则只选修这些课程的学生信息也被删除了,这往往也不是我们的本意,我们并不希望删除这些学生的信息。

对方案二:如果根据属性之间存在的联系或相关性,建立了三个关系,则方案一中存在的异常现象被消除了。(得5分)

但对诸如“查找张三的数据库技术课程的成绩”之类的问题时,这需要连接这三个关系才能完成,这个查询代价高而且会影响效率。(得2.5分)

相比之下,第一个方案则可直接投影、选择就可以完成这类查询,不需要连接操作,显然代价低而且效率高。(得2.5分)

比较这两种设计方案:本人认为第二种设计方案虽然对某些查询问题连接操作较多,但它仍比第一种方案“好”,因为它不存在上述异常问题。(得4分)

6.(2003年)在"学生-选课-课程"数据库中有三个关系:S(S#,SNAME,SEX,AGE,SD),SC(S#,C#,GRADE),C(C#,CNAME,TEACHER)。它们的主码分别是S#,(S#,C#),C#,并且其他属性都允许为空值(NULL)。用下面的SQL语句创建了两个视图:

createviewCS_SasselectS#,SNAME,AGEfromS

whereSD=’计算机系’;

createviewS_G(S#,GAVG)asselectS#,avg(GRADE)

fromSCgroupbyS#;

若用下面的SQL语句对上述视图进行修改,它们能被成功执行吗?为什么?

(1)updateCS_SsetSNAME=’WANGPING’whereS#=’200301001’;

(这里假定在表S中存在学生号S#=’200301001’的行。)

(2)insertintoCS_Svalues(’200302189’,’YANGXIN’,21);

(这里假定在表S中不存在学生号S#=’200302189’的行。)

(3)updateS_GsetGAVG=85whereS#=’200301001’;

(这里假定在表SC中存在学生号S#=’200301001’的行。)

要求:

首先回答这三个SQL语句中哪个(些)能被成功执行,哪个(些)不能被成功执行(12分),再进一步说明能被成功执行或不能被成功执行的理由(18分)。

答案:

(1).第(1)和(2)两个SQL语句能被成功执行;第(3)个SQL语句不能被成功执行。

(2).因为对视图的修改最终要转换为对基本表的修改。

Ⅰ对于第(1)个SQL语句能被成功执行的理由是:执行这个SQL语句将转换成执行如下的SQL语句:

updateSsetSNAME=’WANGPING’

whereSD=’计算机系’andS#=’200301001’;

Ⅱ对于第(2)个SQL语句能被成功执行的理由是:执行这个SQL语句将转换成执行如下的SQL语句:

insertintoSvalues(’200302189’,’YANGXIN’,NULL,21,’计算机系’)

或insertintoS(S#,SNAME,AGE,SD)values(’200302189’,’YANGXIN’,21,’计算机系’)

转换后的这两个SQL语句,在本题意的假定下是能够被成功执行的。所以第(1)和(2)个SQL语句能被成功执行。

Ⅲ对于第(3)个SQL语句不能被成功执行的理由是:由于视图S_G中的一个行是由表SC中若干行经过分组求平均值得到的,因此对视图S_G的更新就无法转换成对基本表SC的更新。所以第(3)个SQL语句不能被成功执行。

2829f2ca24f0d0090cbba57f30759f23.png

全国计算机等级考试四级数据库论述题真题(2-3).doc

下载Word文档到电脑,方便收藏和打印[全文共1892字]

编辑推荐:

8b95f2eb3d3f7ce4dc3bf1178c74941e.png

8b95f2eb3d3f7ce4dc3bf1178c74941e.png

8b95f2eb3d3f7ce4dc3bf1178c74941e.png

8b95f2eb3d3f7ce4dc3bf1178c74941e.png

8b95f2eb3d3f7ce4dc3bf1178c74941e.png

下载Word文档

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值