课程代码: 21050
适用专业: 计算机应用、计算机网络
一、填空题 (每空2分,共20分)
1.SQL语言中WHERE 子句作用对应于关系运算的___________和____________运算。
2.xBASE语言中,命令字句“FOR ”作用对应于关系运算的_______运算,子句“FIELD ”作用对应于关系运算的________运算。
3.关系数据库的数据操纵语言(DML) 主要包括两类操作,它们是检索和__________。
4.当数据库出现故障时要对数据库进行恢复,恢复的原理是____________。
5.关系模式是对关系____________的描述。
6.DBMS 通常提供授权功能来控制不同的用户访问数据库中数据的权限,其目的是为了数据库的____________。
7.Visual FoxPro DBMS使用的数据模型是____________。
8.当前几乎所有的DBMS都采用一种以_________________为基础的并发控制机制,保护并发的用户。
二、单项选择题 (每小题2分,共10分)
1.若关系模式R中没有非主属性,则 ( )
A.R属于2NF,但R不一定属于3NF B.R属于3NF,但R不一定属于BCNF
C.R属于BCNF,但R不一定属于4NF D.R属于4NF
2.下列命题中不正确的是 ( )
A.数据库减少了不必要的数据冗余
B.数据库中不存在冗余数据
C.数据库中的数据可以共享
D.若冗余数据是可控的,则数据更新的一致性得以保证
3.在FoxPro中,表STUDENT.DBF与表ST1.DBF的结构完全相同,欲将表ST1.DBF中的记录追加到表STUDENT.DBF中,正确的操作是 ( )
A.USE student
APPEND FROM st1
B.USE student
EDIT FROM st1
C.USE st1t
APPEND FROM student
D.USE student
INSERT FROM st1
4.FoxPro中,有如下程序:
* 程序名:TEST.PRG
* 调用方法:DO TEST
SET TALK OFF
PRIVET X, Y
X="数据库"
DO sub1
? X+Y
RETURN
* 子程序:sub1
PROCEDU sub1
LOCAT X
X="应用"
Y="系统"
X=X+Y
RETURN
执行命令DO TEST后,屏幕显示的结果为 ( )
A.应用系统 B.数据库应用系统
C.应用数据库系统 D.数据库系统
5.FoxPro数据库管理系统仅支持关系数据结构和三种基本关系操作。这三种基本关系操作是 ( )
A.排序、查找和索引 B.建库、录入和复制
C.投影、选择和连接 D.显示、统计和排序
三、名词解释 (每小题2分,共10分)
1.关系模型
2.主属性
3.关系数据库中的视图
4.外部关系键
5.并发性控制
四、问答题 (每小题5分,共15分)
1.参照完整性规则,它的目的意义,试举例说明。
2.数据库出现故障的种类有哪些?
3.简述DBMS对数据库的安全性控制功能包括哪些手段?
五、数据库设计 (每小题5分,共15分)
1.假设有一个关系,用来记录每个人的身份证号、姓名和工作单位。还包含他/她的每个孩子的身份证号、姓名和出生地,以及他/她所拥有的每辆汽车的牌号和型号。
由现实世界的已知事实得知:
有一些人可能有若干辆汽车,这些汽车可能是同一型号,也可能不是同一型号;
有一些人没有汽车;如果某人有汽车,他的每辆汽车都有一个汽车牌号;
有一些人可能有若干个孩子,有一些人没有孩子。初步设计的关系模式如下:
R (身份证号,姓名,工作单位,C 身份证号, C 姓名,C 出生地,汽车牌号,型号)
其中“C身份证号,C姓名,C出生地”分别是孩子的身份证号、姓名和出生地。
请将该关系模式分解成BCNF的关系模式,确定主关系键。
2.某单位有一销售利润登记表,记录各部门分年代、季度销售利润。该表随着年代的增加,表的栏目也随着年代而增加,如图所示。现在该单位希望使用关系数据库来存储表中的数据。请根据该表设计一个关系数据库,该库中各个关系必须属于BCNF的关系。
表(略)
3.假设某一个学校的图书馆要建立一个数据库,保存读者、书和读者借书记录。为了建立该数据库,需要先设计好概念模型,即设计E-R图,然后再将概念模型转换为关系模型。请设计出E-R图。
读者的属性有:读者号、姓名、年龄、地址和单位。
每本书的属性有:书号、书名、作者和出版社。
对每个读者借的每本书有:借出日期和应还日期。
六、计算题 (每题5分,共30分)
1.关系运算 (5分)
已知关系R和S,求关系R∩S和R*T的运算结果。
R T
院系号 院系名
01 计算机系
02 信息系
03 管理系
S
编号 姓名 院系号
9801 李一 01
9802 王一 03
9803 张一 02
T
编号 姓名 院系号
9802 王一 03
9804 刘四 02
9803 张一 02
2.请将下面用FoxPro语言实现的操作改为等价的SQL语言语句实现。(5分)
1.* FoxPro 语言
USE student
REPLACE ALL 年龄 WITH 年龄 + 1
* SQL 语言
2.* FoxPro 语言
USE course
DELETE ALL FOR 课程号 = “c101”
* SQL 语言
3.SQL语言 (20分)
⑴ 设有如下四个基本表,表结构如下:(15分)
S
供应商号 供应商名 城市
S1 N1 北京
S2 N2 北京
S3 N3 上海
……
SPJ
供应商号 零件号 工程号 零件数量
S1 P1 J1 100
S1 P1 J2 200
S2 P2 J1 50
S2 P3 J3 300
S2 P4 J2 150
S3 P1 J4 250
……
PART
工程号 工程名 工程城市
J1 JN1 北京
J2 JN2 南京
J3 JN3 上海
J4 JN4 天津
……
JOB
零件号 零件名 颜色 重量
P1 红
P2 绿
P3 白
P4 红
……
请用SQL语句或FoxPro语句或关系代数表示如下查询:
查询出使用供应商S1所供应零件的工程号码。
请用SQL语句表示如下查询
查询同时向J1工程和J2工程提供零件的供应者的号码。
请用SQL语句查询同时向建立使用四种不同零件以上的工程号、工程名、工程 城市和零件数量合计,记录要求按零件数量从多到低排序。
⑵ 设某学院有STUDENT和SC两个基本表,表结构如下。请建立选课在10门以上课程的学生的学号、 姓名、 系名、 最低分、 平均分和选课门数的视图SCC,其结果要求按系名,平均分排序(降序)。(5分)
STUDENT
学号 姓名 年龄 性别 系名
...
SC
学号 课程号 成绩
...
|
|
|