1、数据库系统系统原理试卷(一)数据库系统系统原理试卷(一) 一、 选择题(20分,每小题2分) 1. 要保证数据库逻辑数据独立性,需要修改的是: C A.模式 B.C.模式与外模式的映射 D. 2.设关系R(A,B,C)和S(A,D),与自然连接R S等价的关系代数表达式是: D A.R.A=S.A(RS) B. R S R.A=S.A C. R,A ,B.C,D(RS) D. B,C,S.A,D(R.A=S.A(RS) 3. 若某关系R(A, B, C, D)有函数依赖ABC, CD, DA,那么R的所有超键的数量 是: D A.3 B.4 C.6 D.7 4. 设关系R和S的结构相同,且各有
2、100个元组,那么这两个关系的并操作结果的元组的个数为: B A.200 B.小于等于200 C.100 D.小于等于100 5. 与操作“AGE NOT BETWEEN 15 AND 20”等价的式子是: D A.AGE 15 AND AGE 20 B.AGE 15 OR AGE 20 C.AGE 15 AND AGE 20 D.AGE 15 OR AGE 20 6关系prodsales(salesman,prodid,prodname,quantity,amount)表示销售员所销售 商品情况:销售员、货号、品名、销售数量及销售金额。一名销售员可销售多种商品,一种商品可由多名销售员销售。该
3、关系违背下列最低范式是: B A.1NF B.2NF C.3NF D.BCNF 7. 在DB技术,未提交的随后被撤消了的数据,称为: A A. 脏数据 B. 报废的数据 C.过时的数据 D.撤消的数据 8. 设有关系模式R(A,B,C),F是R上成立的函数依赖集,F=AB,CB,将关系R 分解为R1(A,B)和R2(A,C),则分解后的函数依赖集为: D A.依然保持原有的函数依赖集 B.丢失了AB C.丢失了BC D.丢失了CB 9.在数据库中,如果有8个不同实体集,它们之间存在着10个不同的二元联系(二元关系是指两个不同实体集间的联系),其中4个1N联系,6个MN联系,那么根据ER模型转换
4、成关系模型的规则,这个ER结构转换成关系模式个数是: C A.8 B.12 C.14 D.18 10. 下面哪一种指令能撤销用户的授权: B A Grant B Revoke C Commit D Privilege 二、填空题(10分,每小题2分) 1. 数据按 外模式 的描述提供给用户,按内模式的描述存储在磁盘中,而概念模式 提供了连接这两级的相对稳定的中间观点,并使得两级中任何一级的改变都不受另 1 一级的牵制。 2. 判断一个并发调度是否正确,可用 并发事务的可串行化 概念来衡量。 3. 在SQL语句中,与操作符“IN”等价的操作符是 =SOME 。 4. 缓冲区管理程序是由DBMS的
5、 存储管理程序 实现的。 5. 在DBA给予某用户权限时,为让该用户可向其他用户授权,应加上的授权语句为 WITH GRANT OPTION 。 三、 名词解释(10分,每小题2分) 1.级联:当删除或修改参照表的一个元组造成了与参照表的不一致,则删除或修改参照表中所有造成不一致的元祖。P.155 2.属性集的闭包:设F为属性集U上的一组函数依赖,X,Y U, =A|XA能由F 根据Armstrong公理导出, 称为属性集X关于函数依赖集F的闭包。p.184 3.最小函数依赖集:每一个函数依赖集F均等价于一个极小函数依赖集Fm。此Fm称为F的最小依赖集。P.186 4.外连接:将舍弃的元祖也保
6、存在结果关系中,而在其他属性上填空值(Null),这种连接就叫做外连接。P.58 5.事务的持久性:指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。 接下来的其它操作或故障不应该对其执行结果有任何影响。P.279 四、简答题(20分,前面3小题,每小题4分,最后一小题8分) 1. 设有关系R(A,B,C)和S(C,D,E),其元组如下所示: 计算B,E(R S),结果为: A B C C D E B E 4 7 5 2 4 3 2 5 7 6 6 6 7 8 9 6 5 3 1 8 9 7 8 6 2 图A-1 解:结果如图A-1所示。 2. DBMS的完整性子系统主要功能是什么?
7、 解:DBMS的完整性子系统主要功能有两个 监督事务的执行,并测试是否违反了完整性规则。 若有违反则采取恰当的动作,如拒绝、报告违反情况、改正错误等方法来处理。 3. 设教学数据库中有三个基本表: S(SNO,SNAME, AGE, SEX),其属性分别表示学号、学生姓名、年龄、性别。 2 C(CNO, CNAME, TEACHER),其属性分别表示课程号、课程名、上课教师名。 SC(SNO,CNO,GRADE),其属性分别表示学号、课程号、成绩。 试解释下列SQL语句的语义: CREATE ASSERTION ASSE8 CHECK (30=ALL(SELECT COUNT(SC.SNO)
8、FROM S,SC WHERE S.SNO=SC.SNO AND SEX=F GROUP BY CNO); 解:这是一个断言,表示在关系S和SC中的数据应满足下列条件: 每门课程中的女同学选修人数最多是30人。 (注意:不能写成“每一个女同学选修课程的门数最多是30门”) 4.假设某商业集团数据库中有一关系模式R如下: R (商店编号,商品编号,数量,部门编号,负责人) 如果规定:(1) 每个商店的每种商品只在一个部门销售; (2) 每个商店的每个部门只有一个负责人; (3) 每个商店的每种商品只有一个库存数量。 试回答下列问题: (1) 根据上述规定,写出关系模式R的基本函数依赖; (2)
9、找出关系模式R的候选码; (3) 试问关系模式R最高已经达到第几范式?为什么? 解: R的基本函数依赖为 (商店编号,商品编号) 部门编号 (商店编号,部门编号) 负责人 (商店编号,商品编号) 数量 R的候选码是 (商店编号,商品编号) 因为R中存在着非主属性“负责人”对候选码 (商店编号、商品编号)的传递函 数依赖,所以R属于2NF,R不属于3NF。 五、设计题(24分,每小题3分) 现有关系数据库如下: 学生(学号,姓名,性别,专业,奖学金) 课程(课程号,名称,学分); 学习(学号,课程号,分数) 用关系代数表达式实现下列14小题: 1.检索获得奖学金的所有学生所学课程的信息,包括学号
10、、姓名、课程名和分数; 2.检索学习课程号为C2或C4的学生学号和姓名; 3.检索至少学习课程号为C2和C4的学生信息,包括学号、姓名和专业; 3 4.检索具有相同姓名的所有学生的信息,包括学号、姓名和专业。 用SQL语言实现下列58小题: 5.检索没有获得奖学金的所有学生所学课程的信息,包括学号、姓名、课程名和分数; 6.检索具有相同姓名的所有学生的信息,包括学号、姓名和专业; 7.对成绩没有不及格的学生,如果已经获得奖学金的,将奖学金再增加5%; 8.定义所学课程包含S3同学所学课程的学生学号的视图AAA。 解: 1.学号,姓名,课程名,分数 ( 2.课程号,名称 ( 课号 奖学金0 (
11、学生 课程 学习 ) ) = C2 OR 课号 = C4 ( 学生 学习 ) ) 3.学号,姓名,专业 ( 学生s1.学号=学生.学号 (s1.课号 = C2 AND s2.课号 = C4 AND s1.学 号 = s2.学号 ( s1 ( 学习 ) s2 ( 学习 ) ) ) ) 4.学号,姓名,专业 ( s1.学号s2.学号 AND s1.姓名= s1.姓名 ( s1 ( 学生 ) s2 ( 学 生 ) ) ) 5. SELECT学生.学号,姓名,课程,和分数 FROM 学生,学习,课程 WHERE 学生.学号=学习.学号 AND 学习. 课程号=课程.课程号 AND 奖学金0; 6. S
12、ELECT distinct s1.学号, s1.姓名, s1.专业 FROM 学生 as s1,学生 as s2 WHERE s1.学号s2.姓名 7. UPDATE 学生 SET 奖学金=奖学金*1.05 WHERE 学号not IN (SELECT 学号 FROM 学习 WHERE 分数=2001-12-01 and signdate=2001-12-01 and signdate=all (select max(cost) from V1) (3) select empid, name, sum(quantity*single_price) as cost from Salesman left outer join (sales_order inner join sales_item on sales_order.order#= Sales_item.order#) on empid=sales_id where signdate=2001-12-01 and signdate 6 / 6