1、软件水平考试(中级)数据库系统工程师下午(应用技术)试题模拟试卷 6及答案与解析 一、试题一( 15分) 1 阅读以下说明和关系表,回答问题 1 2,将解答填入对应的解答栏内。 说明 设 T1、 T2是如下两个事务: T1:A=B+2 T2:B=A*B A、 B的初值分别是 2和 2。 1 假设 T1和 T2可以并发执行,且对 T1、 T2的调度不加限制,它们的并发执行可能产生哪几种结果 ? 2 这些结果中哪些是正确的 ? 二、试题二( 15分) 3 阅读以下说明,回答问题 1-5,将解答填入 对应的解答栏内。 说明 设关系 R, S分别为下面表所示: 3 计算 RS。 4 计算 R S。 5
2、 计算 R-S。 6 计算 RS。 7 计算 RS。 三、试题三( 15分) 8 阅读以下说明和关系表,回答问题 1-3。 关系表 8 试问以下行是否可以插入表 “学生 ”中,并说明理由。9 若想再多建一个名为 “导师 ”的表,其属性有 “教师号 ”“姓名 ”“性别 ”“所在院系 ”“学生 ”“职称 ”。其中 “教师号 ”与 “姓名 ”属性不能为空,并将 “教师号 ”设为主码,将 “所在院系 ”设为表 “院系 ”中属性 “院系代 号 ”的一个外键。规定各属性的数据类型如下: “教师号 ”: smallint; “姓名 ”: char(10); “性别 ”: char(2); “所在院系 ”:
3、int;“学生 ”: char (10); “职称 ”: char(8)。 用 SQL语言创建该表,并插入以下信息 (以第 (1)条为例即可 )。10 (1)用关系代数表达式完成以下操作: 检索 “平均成绩 ”低于 80的学生的 “学号 ”“姓名 ”“院系名称 ”; 检索 “学生 ”陈鑫导师的 “教师号 ”。 (2)用 SQL语言完成以下操作: 列出 “平均成绩 ”最高的学生信息; 将 03级的所有学生按 “学号 ”升序进行排序。 四、试题四( 15分) 11 阅读以下说明,回答问题 1-4。 说明 设学校教学数据库的模式如下: S(SNUM, SNAME, AGE) SC(SNUM, CNU
4、M, CREDIT, SCORE) C(CNUM, CNAME, TEACHER) T(TNUM, TEHCHER, POS, SAL) SNUM表示学生的学号, SNAME表示学生的姓名, AGE表示学生的年龄,CNUM表示选修课程的编号, CREDIT表示该课程的学分, SCORE表示 课程的成绩, CNAME表示课程名, TEACHER表示任课的教师 ,TNUM表示老师的工作证号, POS表示教师的职称, SM,表示教师的收入。 试定义下列完整性约束和规则: 11 在关系 S中插入的学生年龄值应在 18 21岁之间。 12 在关系 SC中插入的元组时,其 SNUM和 CNUM的值必须分别
5、在 S和 C中出现过。 13 在关系 C中把某个 CNUM的值改为新的值的时候,必须同时要把关系 SC中那些同样的 CNUM的值也修改为新值。 14 为 T定义完整性规则, “教授的工资不得低于 2000元,如果低于 2000元,自动改为 2000元 ”。 软件水平考试(中级)数据库系统工程师下午(应用技术)试题模拟试卷 6答案与解析 一、试题一( 15分) 1 【正确答案】 第一种调度: 读 A=2, B=2: (T1) A=B+2=4 (T1) 写回 A=4, B=2 (T1) 读 A=4, B=2 (T2) B=A*B=8 (T2) 写回 A=4, B=8 (T2) 结果: A=4, B
6、=8 第二种调度: 读 A=2, B=2 (T2) B=A*B=4 (T2) 写回 A=2, B=4 (T2) 读 A=2, B=4 (T1) A=B+2=4 (T1) 写回 A=4, B=4 (T2) 结果: A=4, B=4 第三种调度: 读 A=2, B=2 (T1) 读 A=2, B=2 (T2) A=B+2=4 (T2) B=A*B=4 (T2) 写回 A=4, B=2 (T1) 写回 A=2, B=4 (T2) 结果: A=2, B=4 第四种调度: 读 A=2, B=2 (T2) 读 A=2, B=2 (T1) B=A*B=4 (T2) A=B+2=4 (T1) 写回 A=2,
7、B=4 (T2) 写回 A=4, B=2 (T1) 结果: A=4, B=2 第五种调度: 读 A=2, B=2 (T1) A=B+2=4 (T1) 读 A=2, B=2 (T2) B=A*B=4 (T2) 写回 A=4, B=2 (T1) 写回 A=2, B=4 (T2) 结果: A=2, B=4 第六种调度: 读 A=2, B=2 (T2) B=A*B=4 (T2) 读 A=2, B=2 (T1) A=B+2=4 (T1) 写回 A=2, B=4 (T2) 写回 A=4, B=2 (T1) 结果: A=4, B=2 2 【正确答案】 第 一种调度结果: A=4, B=8;第二种调度结果:
8、A =4, B=4正确。 根据被并行调度策略的可串行化的调度原则,两个事务并发执行的结果只要和任意一种串行的结果相同,就认为是正确的,所以第一、二种调度都正确。 二、试题二( 15分) 3 【正确答案】 4 【正确答案】 5 【正确答案】 6 【正确答案】 7 【正确答案】 三、试题三( 15分) 8 【正确答案】 第 (1)行行不能插入,因为在表 “院系 ”中不存在代号为 1106的院系; 第 (2)行不能插入,因为违反了键完整性,其学号 键为空; 第 (3)行可以插入,平均成绩可以为 NULL值,表示现在尚未有成绩。 9 【正确答案】 创建 “导师 ”表: create table 导师
9、(教师号 small int not NULL, 姓名 char(10) not NULL, 性别 char(2), 院系代号 int, 学生 char(10), 职称 char(8), primary key (教师号 ), foreign key (院系代号 )reference 院系 ) 插入第 (1)条信息: insert into 导师 values(33张辉 男 , 1101,陈鑫, 教授 ) 10 【正确答案】 (1)第一题: 学号,姓名,院系名称 (平均成绩 80(院系学生 )第二题:可建立一个临时关系 R 教师号 (教师号,学生 (导师 )R)(2)第一题: select*f
10、rom 学生 where 平均成绩 = (select max (平均成绩 ) from 学生 )第二题: select* from 学生 where 年级 =03order by 学号 四、试题四( 15分) 11 【正确答案】 定义 s时 采用检查子句: CREATTABLE S( SNUM CHAR(5), SNAME char(10) NOT NULL, AGE SMALLINT, PRIMARY KEY(SNUM) CHECK ; 18 and AGE=21) 12 【正确答案】 采用外键子句约束: CREAT TABLE SC( SNUM CHAR(4), CNUM CHAR(5)
11、, CREDIT SMALLINT, SCORE SMALLINT, FOREIGN KEY (SNUM) REFERENCE S(SNUM) FOREIGN KEY (CNUM) REFERENCE C(CNUM) ) 13 【正确答案】 采用外键约束: CREATE TABLE SC( SNUM CHAR(4), CNUM CHAR(5), CREDIT SMALLINT, SCORE SMALLINT, FOREIGN KEY (CNUM) REFERENCE C(CNUM) ON UPDATE CASCADE, FOREIGN KEY(SNUM) REFERENCE S(SNUM) 14 【正确答案】 用数据库的触发器来实现: CREATE TRIGGER UPDATE SAL BEFORE INSERT OR UPDATE OF SAL, POS ON T FOR EACH ROW WHEN(:new.POS=教授 ) BEGIN IP:new.SAL2000 THEN :new.SAL=2000; END IF; END