好文档 - 专业文书写作范文服务资料分享网站

数据库系统系统原理试卷(一)

天下 分享 时间: 加入收藏 我要投稿 点赞

数据库系统系统原理试卷(一)

一、 选择题(20分,每小题2分)

1. 要保证数据库逻辑数据独立性,需要修改的是: C A.模式 B.C.模式与外模式的映射 D.

2.设关系R(A,B,C)和S(A,D),与自然连接R S等价的关系代数表达式是: D

A.σR.A=S.A(R×S) B. R S R.A=S.A

C. ∏R,A ,B.C,D(R×S) D. ∏B,C,S.A,D(σR.A=S.A(R×S))

3. 若某关系R(A, B, C, D)有函数依赖AB→C, C→D, D→A,那么R的所有超键的数量

是: D

A.3 B.4 C.6 D.7

4. 设关系R和S的结构相同,且各有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)表示销售员所销售

商品情况:销售员、货号、品名、销售数量及销售金额。一名销售员可销售多种商品,一种商品可由多名销售员销售。该关系违背下列最低范式是: B

A.1NF B.2NF C.3NF D.BCNF

7. 在DB技术,未提交的随后被撤消了的数据,称为: A

A. 脏数据 B. 报废的数据 C.过时的数据 D.撤消的数据

8. 设有关系模式R(A,B,C),F是R上成立的函数依赖集,F={A→B,C→B},将关系R

分解为R1(A,B)和R2(A,C),则分解后的函数依赖集为: D

A.依然保持原有的函数依赖集 B.丢失了A→B

C.丢失了B→C D.丢失了C→B 9.在数据库中,如果有8个不同实体集,它们之间存在着10个不同的二元联系(二元关系是指两个不同实体集间的联系),其中4个1∶N联系,6个M∶N联系,那么根据ER模型转换成关系模型的规则,这个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. 在DBA给予某用户权限时,为让该用户可向其他用户授权,应加上的授权语句为

WITH GRANT OPTION 。

三、 名词解释(10分,每小题2分)

1.级联:当删除或修改参照表的一个元组造成了与参照表的不一致,则删除或修改参照表中所有造成不一致的元祖。[P.155]

2.属性集的闭包:设F为属性集U上的一组函数依赖,X,Y U, ={A|X→A能由F

根据Armstrong公理导出}, 称为属性集X关于函数依赖集F的闭包。[p.184] 3.最小函数依赖集:每一个函数依赖集F均等价于一个极小函数依赖集Fm。此Fm称为F的最小依赖集。[P.186]

4.外连接:将舍弃的元祖也保存在结果关系中,而在其他属性上填空值(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的完整性子系统主要功能是什么?

解: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) 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) 找出关系模式R的候选码;

(3) 试问关系模式R最高已经达到第几范式?为什么? 解:

⑴ R的基本函数依赖为

(商店编号,商品编号) →部门编号

(商店编号,部门编号) →负责人 (商店编号,商品编号) →数量

⑵ R的候选码是 (商店编号,商品编号)

⑶ 因为R中存在着非主属性“负责人”对候选码 (商店编号、商品编号)的传递函

数依赖,所以R属于2NF,R不属于3NF。

五、设计题(24分,每小题3分)

现有关系数据库如下:

学生(学号,姓名,性别,专业,奖学金)

课程(课程号,名称,学分); 学习(学号,课程号,分数) 用关系代数表达式实现下列1—4小题:

1.检索获得奖学金的所有学生所学课程的信息,包括学号、姓名、课程名和分数; 2.检索学习课程号为C2或C4的学生学号和姓名;

3.检索至少学习课程号为C2和C4的学生信息,包括学号、姓名和专业;

3

4.检索具有相同姓名的所有学生的信息,包括学号、姓名和专业。 用SQL语言实现下列5—8小题:

5.检索没有获得奖学金的所有学生所学课程的信息,包括学号、姓名、课程名和分数; 6.检索具有相同姓名的所有学生的信息,包括学号、姓名和专业;

7.对成绩没有不及格的学生,如果已经获得奖学金的,将奖学金再增加5%; 8.定义所学课程包含S3同学所学课程的学生学号的视图AAA。 解:

1.∏学号,姓名,课程名,分数 (σ

2.∏课程号,名称 ( σ

课号

奖学金>0 ( 学生 课程 学习 ) )

= ’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. SELECT distinct s1.学号, s1.姓名, s1.专业 FROM 学生 as s1,学生 as s2

WHERE s1.学号< s2.学号 and s1.姓名<>s2.姓名

7. UPDATE 学生

SET 奖学金=奖学金*1.05 WHERE 学号not IN (SELECT 学号 FROM 学习

WHERE 分数<60);

8. CREATE VIEW AAA AS

SELECT DISTINCT 学号 FROM 学习 AS X WHERE NOT EXISTS (SELECT *

FROM 学习 AS Y

WHERE Y.SNO=’S3’ AND NOT EXISTS

4

(SELECT *

FROM 学习 AS Z

WHERE Z.SNO=X.SNO AND Z.CNO=Y.CNO))

六、综合题(16分,第1题4分,第2题3分,后面每小题3分)

为某图书发行公司开发一个会员制网上图书订购数据库系统,该系统的基本需求如下:

该公司分为多个下属部门(Department),如“社科部”,“文艺部”,“计算机部”等。每个部门有若干销售员(Salesman),每个销售员有唯一的员工号(如“S0025”)和身份证号,也包含性别、出生日期、电话等信息。一个销售员仅属于一个部门,且每个部门有一个销售员担任部门经理。部门和人员可以动态调整。

1. 管理注册会员(Member):身份证号、姓名、性别、地址、邮编、电话等。可注册新会员(只有会员才能参与订购图书),也可注销旧会员。

2. 管理所有销售的图书(Book):书名(如“数据库系统基础教程”等)、种类(如“计算

机”等)、书号ISBN (如“7-302-03646-2等)、作者(也包括译者,如“史嘉权”)、出版社(如“清华大学出版社”)、定价等。

3. 一个销售订单(Salesorder)表示一笔销售业务。每个订单有一个订单编号和签订日

期,且对应一个会员和一个销售员(作为订单经办人)。一个订单至少销售一种图书,每种图书应确定其销售数量和销售价格(销售价格通常低于定价),以计算销售金额。

按次序回答下列问题:

1. 用若干E/R图建立该系统的数据库模型。为每个实体集确定其键属性,并确定每个

联系的多重性。注意弱实体集的表示。 解:E-R图如下:

empididnonamememidnameidnonameas headerDepartmendeptidworks forSalesmanganderbirthphonememberganderaddressphonesales forsigndateordernoSalesorderBookISBNBNametypeauthorpublishersingle_pricecontainspricelinenoSalesitemquartityunit of

2. 由E/R模型建立该系统的关系模式,并确定每个关系的主键和可能的外键。注意各

5

关系中的函数依赖和多值依赖,并使你的关系能符合更高范式。

解:数据库模式

Dpartment(id,name,head_id,desc)

Salesman(empid,name,idNo,gender,birthdate,phone,dept_id) Menber(memid,name,idno,gander,address,phone) Book(bName,type,ISBN,Author,publisher,price) Sales_order(order#,signdate,sales_id,memid)

Sales_item(order#,line#,ISBN,quantity,single_price)

外键

Dpartment(head_id) →Salesman(empid) Salesman(dept_id) →Dpartment(dept_id) Sales_order(sales_id) →Salesman(empid) Sales_order(memid) →Member(id)

Sales_item(order#) →Sales_order(order#) Sales_item(ISBN) →Book(ISBN)

3. 使用SQL语言完成下面的计算:

1) 计算2001年12月签订的所有订单的订单号、签单日期、销售数量和销售金额,并按销售金额从小到大排列。

2) 计算2001年12月签订的销售金额最大的订单号、销售员姓名和销售金额。(注意

利用已有查询定义视图)

3) 计算2001年12月所有销售员的员工号、姓名及其销售金额。(注意使用外连接,

没有订单的销售员的销售金额应为0)

解:

(1)select Sales_order.order#, signdate,sum(quantity),sum(quantity* single_price) as

cost

from Sales_order inner join Sales_item on Sales_order.order#=Sales_item.order#

where signdate>=’2001-12-01’ and signdate<=’2001-12-31’

group by order.order#, signdate order by cost

(2) create view V1 as

select sales_order. sales_id, order#,sum(quantity*single_price) as COST

from sales_order inner join sales_item on sales_order.order#= Sales_item.order#

where signdate>=’2001-12-01’ and signdate<=’2001-12-31’

group by sales_order, sales_id selectorder#, name, cost

from Salesman inner join V1 on empid= sales_id where cost >=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<=’2001-12-31’

6

数据库系统系统原理试卷(一)

数据库系统系统原理试卷(一)一、选择题(20分,每小题2分)1.要保证数据库逻辑数据独立性,需要修改的是:CA.模式B.C.模式与外模式的映射D.2.设关系R(A,B,C)和S(A,D),与自然连接RS等价的关系代数表达式是:DA.σ
推荐度:
点击下载文档文档为doc格式
2758e68kqx3fre38hic91cf865breu010p0
领取福利

微信扫码领取福利

微信扫码分享