第 1 页:模拟试题 |
第 6 页:参考答案与解析 |
三、设计与应用题
1.(1)【解题思路】
关系的描述称为关系模式,它可以形式化地表示为R(U,D,DOM,F)。要想使转换生成的关系模式满足3NF,则必须满足关系模式中每一个非主属性既不部分依赖于码也不传递依赖于码。根据题目中的表中的数据和业务系统的规则可知,共有四个实体存在,分别为教师、课程、教材、职称,职称作为实体而不是教师的属性是因为职称与工资挂钩,考虑到其有进一步描述的特性,所以把职称作为一个关系而不是教师的一个属性,而且教师号、职称、工资之间存在传递依赖,不满足3NF。
【参考答案】
教师(教师号,教师名,上级领导教师号,职称)
主码:教师号;外码:上级领导教师号、职称
职称(职称,工资)
主码:职称;外码:无
课程(课程号,课程名,学分,教材号,任课教师号)
主码:课程号;外码:教材号,任课教师号
教材(教材号,教材名,出版社)
主码:教材号;外码:无
(2)【解题思路】
E-R图也称实体一联系图,提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。为了简化E-R图的处置,现实世界的事物能作为属性对待的,尽量作为属性对待。实体与属性的划分给出如下两条规则:①作为“属性”,不能再具有需要描述的性质,“属性”必须是不可分的数据项,不能包含其它属性。②“属性”不能与其它实体有联系,即E-R图中所表示的联系是实体之间的联系。题目中教师与课程有讲授关系,课程和教材有使用关系,教师与职称有聘用关系。
【参考答案】
2.【解题思路】
触发器是用户定义在关系表上的一类由事件驱动的特殊过程。一旦定义,任何用户对表的增、删、改操作均由服务器自动激活相应的触发器,在DBMS核心层进行集中的完整性控制。触发器类似于约束,但比约束更加灵活,可以实施比FOREIGN KEY约束、CHECK约束更为复杂的检查和操作,具有更精细和强大的数据控制能力。
触发器的创建格式:
CREATE TRIGGER[schema_name.]trigger_name
ON{tablelview}
{FORlAFFERIINSTEAD OF}
{[INSERT][,][UPDATE][,][DELETE]}
AS{Sql_statement}
[;]
对应于本题中,触发事件为在销售表中插入前四列,条件为无条件执行,触发体动作为计算本次利润并插入表中。
【参考答案】
CREATE TRIGGER calcu_product
AFTER INSERT ON销售表
FOR EACH ROW
AS BEGIN
DECLARE@PurchasePrise float/*对应商品的进价的参数*/
SELECT@PurchasePrise=进货价格FROM商品表WHERE商品号=new.商品号
UPDATE销售表SET本次利润=new.销售数量*(new.销售价格-@PurchasePrise)WHERE商
品号=new.商品号AND销售时间=New.销售时间
/*因为是行级触发器,所以可以使用更新后的新值,用new*/
END
3.(1)【解题思路】
本题中查询语句的功能是得到12系全体学生在2010年1月1日后的选课情况的汇总表。在每个数据表的定义时都必须严格定义表中的完整性约束条件,包括主键的设置,否则之后会出现主键有相同值的情况,破坏了数据的完整性。
【参考答案】
建表时没有设置主键,也没有说明外键,但不会影响此查询语句的执行效率。
(2)【解题思路】
“选课”表的“选课时问”列上建立了索引,从而能够提高执行效率。经常出现在Where子句中的字段,特别是大表的字段,应该建立索引。索引的作用就类似于书的目录,即会按照章节的顺序排列。因此如果在一本数百页的书里面查找某个章节位置的时候,就可以只扫描书的目录。扫描的范围缩了n倍,查询的效率自然就会提高。另外,在SQL Server内存够用的情况下,索引会被放到内存中,在内存中查找自然又会提高效率,所以必须合理利用索引。
【参考答案】
“选课”表的“选课时问”可以建立索引,从而提高了查询效率,而“学生”表的“所在系号”建立索引不会提高查询效率。索引的意义就是将记录按目标关键字顺序排列,这样查找某个目标关键字的对应值的位置就缩小了查找范围。“选课时间”的重复率低,所以可以作为索引,而学生“所在系号”的重复率太高,则不会提高查询效率。
相关推荐:
2015年全国计算机等级考试无纸化考试系统操作指南北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |