三级数据库历年考试真题论述题详解[5]

三级数据库历年考试真题论述题详解[5],第1张

三级数据库历年考试真题论述题详解[5],第2张

“学生-课程-课程”数据库中有三种关系:S(S#,SNAME,性别,年龄,SD),SC(S#,C#,年级),C(C#,CNAME,老师)。它们的主代码分别是S #(S #,C#,C#,其他属性允许为空值(NULL)。使用以下SQL语句创建了两个视图:
createviewCS _ sass elections #,SNAME,agefroms
其中= ' computer department
createviewS_G(S#,GAVG)asselectS#,avg(GRADE)
from scgroupbys #;
如果用下面的SQL语句修改以上视图,能成功执行吗?为什么?
(1)updateCS_SsetSNAME= '王萍' whereS # = ' 200301001
(这里假设表S中有一行学号S # = ' 2003 01 001 ')
(2)insertintoCS _ Svalues(' 2003 02 189 ',' YANGXIN ',21);
(这里假设表S中没有学号S#='200302189 '的行)
(3)updateS _ GsetGAVG = 85 where # = ' 2003 01 001 ';
(这里假设在表SC中有一行学号S#='200301001 '。)
要求:
先回答这三条SQL语句中哪一条(哪些)可以成功执行,哪一条(哪些)不能成功执行(12分),再进一步说明执行成功或不成功的原因(18分)。

回答:
(1)。前两条SQL语句(1)和(2)可以成功执行;(第三个)SQL语句无法成功执行。
(2)。因为对视图的修改最终会转化为对基本表的修改。
一、之所以能成功执行第(1)条SQL语句,是因为这条SQL语句的执行会转换成如下SQL语句:
UpdateSetsName = '王平'
其中d = '计算机系' ANDS # = ' 2003 01 001 ';
ⅱ之所以能够成功执行第(2)条SQL语句,是因为这条SQL语句的执行会被转换成以下SQL语句:
INSERTINTOSVALES(' 2003 02 189 ','阳信',NULL,21,'计算机系')
或者INSERT INTO S. Age,SD) values ('200302189 ','阳信',21,'计算机系')
这两条SQL语句转换后可以因此,第一条和第二条SQL语句可以成功执行。
ⅲ第(3)条SQL语句无法成功执行的原因是:由于视图S_G中的一行是由表SC中的几行分组平均得到的,所以视图S_G的更新无法转化为基本表SC的更新。因此,第三条SQL语句无法成功执行。

(2004)

商品销售数据库中的信息包括:雇员、雇员姓名、工资、销售组名称、销售组领导、商品编号、商品价格、单价、销售日期、销售量、供应商编号、供应商名称和供应商地址。假设:一个员工只在一个销售组;一个销售小组可以销售多种商品,一种商品只能由一个小组销售;一个商品每天都有销量;一个供应商可以供应多种商品,一种商品可以通过多种渠道供应。
要求回答以下问题:
(1)根据以上信息,给出E-R图。(10分)
(2)根据标准化要求设计一个3NF数据库模式。(10分)
(3)给出数据库模式中每个关系模式的主键和外键。(5分)
(4)在设计好的数据库模式上,搜索销售总额在5万元以上的商品编号、商品名、销售总额,并按商品编号排序。(5分)
答案:
(1)E-R模型(10分;每个实体1分,包括属性;每个联系人2分,包括联系人类型。)
(2)3NF关系模型:(10分)
R1(员工编号、员工姓名、工资、销售组名称);(2分,没有销售组名扣1分)
R2(销售组名,销售组长);(1分)
R3(商品编号、商品名、单价、销售组名称);(2分,无销售群名称扣1分)
R4(商品编号、销售日期、销量);(2分)
R5(供应商编号、供应商名称、供应商地址);(1分)
R6(商品编号,供应商编号)。(2分)
注:R1和R3分两种模式扣1分。
(3)主键(3分)外键(2分)
R1员工号[/]销售日期商品号
R5供应商号
R6商品号,供应商号
(4)(5分)
选择3。商品编号,商品名称,金额(销售量)*单价(1点)
from 3,R4惠勒3。商品名=R4。商品名称(1分)
group by 3。商品名称havingsum(销售量)*单价> 50,000 (2点)
order by 3。商品名称(1分)

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

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情