第 1 页:单选题 |
第 3 页:应用题 |
第 4 页:设计与应用题 |
三、设计与应用题(每题12分,共24分)
36[简答题]
在进行某学校教务管理系统的数据库设计时,数据库设计人员设计了如下几个关系模式:系(系号,系名),系号为主码
学生(学号,姓名,所在系号),学号为主码
课程(课程号,课程名,开课系号),课程号为主码
选课(学号,课程号,选课时间),学号和课程号为主码
开发人员在将关系模式实施到SQL Server 2008的“教务”数据库时,使用了如下表结构定义语句:
(1)在查找原因时发现建表语句有问题。请指出问题并说明该问题是否会影响此查询语句的执行效率。
(2)设已在“选课”表的“选课时间”列及“学生”表的“所在系号”列上建立了索引。请问这两个索引是否能够提高该查询语句的执行效率?如果不能,请说明原因。
参考解析:(1)【解题思路】 本题中查询语句的功能是得到12系全体学生在2010年1月1日后的选课情况的汇总表。在每个数据表的定义时都必须严格定义表中的完整性约束条件,包括主键的设置,否则之后会出现主键有相同值的情况,破坏了数据的完整性。
【参考答案】
建表时没有设置主键,也没有说明外键,但不会影响此查询语句的执行效率。
(2)【解题思路】
“选课”表的“选课时间”列上建立了索引,从而能够提高执行效率。经常出现在Where子句中的字段,特别是大表的字段,应该建立索引。索引的作用就类似于书的目录,即会按照章节的顺序排列。因此如果在一本数百页的书里面查找某个章节位置的时候,就可以只扫描书的目录。扫描的范围缩了n倍,查询的效率自然就会提高。另外,在SQL Server内存够用的情况下,索引会被放到内存中,在内存中查找自然又会提高效率,所以必须合理利用索引。
【参考答案】
“选课”表的“选课时间”可以建立索引,从而提高了查询效率,而“学生”表的“所在系号”建立索引不会提高查询效率。索引的意义就是将记录按目标关键字顺序排列,这样查找某个目标关键字的对应值的位置就缩小了查找范围。“选课时间”的重复率低,所以可以作为索引,而学生“所在系号”的重复率太高,则不会提高查询效率。
37[简答题]
已知有如下关系模式:Rl(a,b,C.,R2(c,d,A.,R3(e,f),R4(a,g),其中标下划线的属性是主码。请将上述关系模式用适当的ER图表示出来,并用下划线标注出作为实体主码的属性。
参考解析:【解题思路】 ER模型和关系模式相互转换的一般规则如下:
(1)将每一个实体类型转换成一个关系模式,实体的属性为关系模式的属性。
(2)对于二元联系,按各种情况处理,如下表格所示。
此题为关系模式转换为实体类型,因此采用实体→关系的逆向思维解题。从模式R1和R2可知,R1和R2为一对一关系,根据这两个模式的拆分可以确定三个实体,此处将这三个实体分别命名为A、B和C。其中A、B和C分别一一对应,且a和c分别是B和C的外键。从模式R1和R4可知,Rl和R4为多对一关系,由此确定实体D。从模式R3和R4可知,R3和R4为多对一关系,由此可以确定出实体E。
【参考答案】
a、c为A的候选码,可任选其一做主码。可通过以下ER图来表示:
微信搜索"考试吧"了解更多考试资讯、下载备考资料
相关推荐: