第一章
填空
1.在文件管理结点程序和数据在存储位置上是__________存放的。
2.在__________系统中,不容易做到数据共享,在__________系统中,容易做到数据共享。
3.在文件系统中,存取数据的基本单位为________,在数据库系统中,存取数据的基本单位为________。
4.分布式数据库系统既支持客户的________应用,又支持客户的________应用。
5.若一个联系涉及到两个实体则称为________联系,若只涉及到一个实体则称为________联系。
6.若实体A和B是多对多的联系,实体B和C是1对1的联系,则实体A和C是________对________的联系。
7.若实体A和B是1对多的联系,实体B和C是多对1的联系,则实体A和C是________对________的联系。
8.任一种数据模型都有________和________的区别。
9.层次模型是一棵________结构,关系模型是一个________结构。
10.把保存________的关系称为对应数据库的元关系,一个数据库的元关系由________自动建立。
11.在对象数据模型中,每个对象不仅要包含描述实体的________特征,而且要包含描述实体的________特征。
12.数据库系统中的四类用户分别为____________、____________、____________和____________。
13.在数据库体系结构的三级模式中,全局模式处于________层,外模式处于______层,内模式处于________层。
14.DBMS的主要功能之一是________和________数据字典。
15.SQL具有数据________、________、________和________等四种主要功能。
第二章
填空
1.设D1,D2和D3域的基数分别为2,3和4,则D1?D2?D3的元组数为________,每个元组有________个分量。
2.关系中的码可分为________、________、________、________和外码五种。
3.学生关系中的班级号属性与班级关系中的班级号主码属性相对应,则________为学生关系中的________。
4.设一个关系R1中的属性A是外码,它对应关系R2中的主码为B,则称________为子关系,________为父关系。
5.用户定义的________是对关系中一些属性的取值给定相应的约束条件,禁止非法数据进入________。
6. 专门的关系运算包括________、________、________和__________四种。
7.设一个关系模式为R(A,B,C),对应的关系内容为R={{1,10,50}, {2,10,60}, {3,20,72}, {4,30,60}},则ПB(δCz.课程号 and x.学生号=y.学生号
5.select x.学生号,y.学生号,y.课程号
from 选课 x,选课 y
where x.学生号=@s1 and y.学生号=@s2
and x.课程号=y.课程号
6.select *
from 课程
where exists (select 课程号
from 选课
where 课程.课程号=选课.课程号
group by 课程号 having count(*) between 2 and 4
)
7.select *
from 学生
where 学生号 in (select 学生号
from 选课
group by 学生号 having count(*)=@a
2. declare @a char(6)
set @a='刘亮'
if(exists(select * from students where 姓名=@a))
print '姓名为' @a '的同学存在!'
else
print '姓名为' @a '的同学不存在!'
3. select year(入学日期) as 入学年份,count(*) as 人数
from students
group by year(入学日期)
4. select day(入学日期) as 入学日号,count(*) as 人数
from students
group by day(入学日期)
5.create procedure xxk2
as
begin
select x.学号,x.姓名,x.专业,count(*) as 门数
from students x,score y
where x.学号=y.学号
group by x.学号,x.姓名,x.专业
end
6.create procedure xxk4
(
@a char(8),@b varchar(10),@c numeric(5,2)
)
as
begin
update score
set 成绩=@c
where 学号=@a and 课程名=@b
end
7.create procedure xxk6
(
@a char(8),@b varchar(10)
)
as
begin
delete from score
where 学号=@a and 课程名=@b
end
8.declare @a char(8),@b varchar(10),@c numeric(5,2)
declare xxx cursor
for select 学号,课程名,成绩
from score
open xxx
fetch xxx into @a,@b,@c
while @@fetch_status=0
begin
print @a replicate(' ',3) @b str(@c) replicate(' ',3) (case
when @c>=90 then '优秀'
when @c>=70 then '良好'
when @c>=60 then '及格'
else '不及格'
end
)
fetch from xxx into @a,@b,@c
end
close xxx
deallocate xxx
9.declare @a char(8),@b varchar(10)
declare @c numeric(5,2)
declare @d int
set @d=80
declare xxx cursor
for select 学号,课程名,成绩
from score
open xxx
fetch xxx into @a,@b,@c
while @@fetch_status=0
begin
if(@c>=@d) print @a replicate(' ',3) @b str(@c,5)
fetch from xxx into @a,@b,@c
end
close xxx
deallocate xxx
10.declare @a char(8),@b varchar(10)
declare @s char(8),@r varchar(10)
set @s='20030001'
set @r='数学'
declare xxx cursor
for select 学号,课程名 from score
open xxx
fetch xxx into @a,@b
while @@fetch_status=0
begin
if(@a=@s and @b=@r)
begin
delete from score
where current of xxx
break
end
fetch from xxx into @a,@b
end
close xxx
deallocate xxx
第三部分 期末复习题参考答案
第一章
填空
1. 分开 2. 文件系统、数据库系统
3. 记录、数据项 4. 局部、全局
5. 二元、一元 6. 多、多
7. 多、多 8. 型、值
9. 树、二维表格 10. 关系定义、DBMS
11. 状态、行为
12. 数据库管理员、数据库设计员、应用程序员、终端用户
13. 中间、最上、最下 14. 建立、维护
15. 定义、查询、更新、控制
第二章
填空
1. 24、3 2. 超码、候选码、主码、备用码
3. 班级号、外码 4. R1、R2
5. 完整性、数据库 6. 选择、投影、连接、除
7. 2、1 8. C、X、S
9. ?学生号(X)、S
第三章
填空
1. X←→Y、决定因素 2. 完全、部分
3. 学号、系主任 4. X→Y、X→Z、分解性
5. (A,D)、2 6. (A,D)、伪传递
7. 第一、不可再分 8. (A,D)、部分
9. 第一、3 10. 第二、3
11. 第三 12. BC、决定因素
第四章
一、填空
1. 命令交互、程序执行、窗口界面 2. create schema、drop schema
3. 6、4 4. 列级、表级
5. create table、alter table、drop table 6. values、select
7. 实表、虚表 8. 连接、安全
9. 建立、修改、(更新)、删除 10. select、from、where
11. 中间连接、左连接、右连接
二、根据主教材第四章所给的商品库和教学库,按照下列所给的每条SQL查询语句写出相应的功能。
1. 从商品库中查询出所有商品的不同产地。
2. 从商品库中查询出所有商品的不同产地的总数。
3. 从教学库中查询出每个学生选课的门数。
4. 从教学库中查询出至少选修了两门课程的全部学生。
5. 从教学库中查询出学生号为@s1的学生和学生号为@s2的学生所选修的共同课程的课程号。
6. 从教学库中查询出被2至4名学生选修的所有课程。
7. 从教学库中查询出最多选修了2门课程(含未选任何课程)的全部学生。
8. 从教学库中查询出选修了姓名为@a的学生的全部选课的所有学生。
三、根据教材第四章所给的商品库和教学库,按照下列所给的每种功能写出相应的查询语句。
1. select count(*)
from 商品表1
where 数量>10
2. select 分类名,max(单价) as 最高单价
from 商品表1
group by 分类名
3. select 分类名,sum(数量) as 总数量
from 商品表1
group by 分类名
4. select *
from 商品表1
where 单价>all(select 单价
from 商品表1
where 分类名='电视机'
)
5. select 商品表1.*,产地
from 商品表1,商品表2
where 商品表1.商品代号=商品表2.商品代号 and 产地 in (select 产地
from 商品表1 x,商品表2 y
where x.商品代号=y.商品代号
group by 产地 having count(*)=1
)
6. select distinct x.*
from 课程 x,选课 y,选课 z
where y.课程号=z.课程号 and y.学生号z.学生号
and x.课程号=y.课程号
7. select 课程.课程号,课程名,count(课程.课程号) as 人数
from 课程,选课
where 课程.课程号=选课.课程号
group by 课程.课程号,课程名
order by 人数
第五章
填空题
1. 逻辑设计、物理设计2. 数据流图、数据字典、需求说明书
3. 局部ER图、整体ER图
4. 商品实体、销售实体、收款实体5. 基本表、主码、外码
6. 1对1、1对多7. 数据、操作
8. 客房表、住宿表9. 客房表、 客房空闲表
第六章
一、单选
1. D 2. B 3. B 4. A 5. C 6. C
7. D 8. C 9. D 10. A
二、填空
1. 数据库窗体 2. 标题栏、菜单栏、工作区
3. 货币型、显示方式、精度 4. 1、mdb
5. 数据、数据库对象 6. 取值范围
7. 文本或数字、数字 8. 页眉、主体、页脚
第七章
一、单选
1. C 2. B 3. D
二、填空
1. Access数据库、更高版本 2. 类模块、标准模块(次序无先后)
3. 对象列表框,代码编辑区域,过程事件列表框
4. 密码、权限 5. 大小写
第八章
一、单选
1. B 2. D 3. B 4. B 5. A 6. B
二、填空
1. 客户机(或客户端) 2. 硬盘空间
3. 注册账号(或登录账号) 4. 企业版、标准版、个人版(次序无先后)
5. 域用户账号 6. mdf、ndf、ldf (次序无先后)
7. 批处理 8. 局部变量
9. ’ab’10. bigint、int、smallint、tinyint (次序无先后)
11. windows 关系 12. 逻辑组件
三、根据下面所给的AAA数据库,写出下列每条查询语句的执行结果,或者写出下列每条语句或程序段的功能。
1. 888 ?889 2. 学生号 课程号 无成绩
3. 学生号 课程号 0
四、根据下面所给的AAA数据库,按照下列每种功能写出相应的Transact-SQL语句或程序段。
1. select 学号,课程名,isnull(成绩,-1)
from Score
2. select year(getdate()),month(getdate())
3. select left(学号,4)
fron Students
4. select datalength(25),datalength(getdate())
第九章
一、单选
1. A 2. B 3. D 4. D 5. D
二、填空题
1. sp_renamedb 2. Backup Database、Restore Database
3. 备份 4. 索引
5. 插入、删除、修改 6. 快
7. SELECT、SET 8. 数据、日志
9. 多、多 10. 聚集、非聚集
11. 非空、唯一、聚集(次序无先后)12. --、/*、*/
13. SELECT、SET 14. BEGIN、END
15. 单条、BEGIN...END 16. DECLARE CURSOR、查询(或SELECT)
17. @@FETCH_STATUS
18. BEGIN TRAN、COMMIT [TRAN]、ROLLBACK [TRAN]
19. CREATE PROC、EXEC
20. 插入(insert)、删除(delete)、更新(update,或修改) (后三项次序无先后)
21. CONSTRAINT、 22. 操作系统、登录
23. 登录帐号、口令(密码)
三、写出下列每条查询语句的执行结果,或者写出下列每条语句或程序段的功能。
假设存在名为AAA的数据库,包括Students(学号 char(8),姓名 varchar(8),年龄 int,专业 varchar(20),入学日期 DateTime)和Score(学号 char(8),课程名 varchar(10),成绩 numeric(5,2))两张表。
1. 从score表中查询出大于等于平均成绩的所有记录。
2. 从students表中查询姓名为@a的值的同学是否存在,根据不同情况显示出相应信息。
3. 从students表中分组统计出每个年份入学的学生人数。
4. 从students表中分组统计出每个日号入学的学生人数。
5. 显示出AAA库中每个学生的学号、姓名、专业等信息及选课门数
6. 修改score表中学号为@a的值、课程名为@b的值的学生的成绩为@c的值。
7. 从score表中删除学号为@a的值、课程名为@b的值的学生成绩记录。
8. 显示出score表中每个成绩记录,并在每条记录最后给出优秀、良好、及格、不及格等相应等级。
9. 显示出score表中成绩大于等于@d值的所有记录。
10. 从score表中删除学号为@a的值、课程名为@b的值的学生记录。
第四部分 课程作业参考答案
第一次作业
填空
1. 依赖于 2. 文件系统、数据库系统
3. 文件、数据库 4. 局部、全局
5. 主属性、非主属性 6. 多、多
7. 1、多 8. 型、值
9. 元组、属性 10. 关系定义、DBMS
11. 封装、继承、多态
12. 数据库管理员、数据库设计员、应用程序员、终端用户
13. 外模式和模式、模式和内模式 14. 建立、维护
15. 关系数据结构、关系完整性规则、关系运算 16. 单值、嵌套
17. 候选、属性 18. 主、非主
19. 空值、主码 20. 7、3、2
21. 选择、2 22. S、Π学生号 X
23. ?课程号(X)、C 24. X←→Y、决定因素
25. 非平凡、完全 26. 学号、系主任
27. X→Y、X→Z、分解性 28. X、候选码
29. (A,D)、2 30. (A,C,G)、3
31. 第一、不可再分 32. 数据冗余、操作异常(更新异常)
33. 第一、3 34. 第二、2
35. 第三 36. BC、决定因素
第二次作业
一、填空题
1. 视图、基本表 2. create schema、drop schema
3. 列级、表级 4. 列级、表级
5. 建立、修改、删除 6. values、select
7. 表、建立 8. 连接、安全
9. 没有影响、有影响 10. select、from、where
11. group by、order by 12. 需求分析、概念设计
13. 数据流图、数据字典、需求说明书 14. 需求分析、ER图
15. 商品实体、销售实体、收款实体 16. 全局模式、外模式
17. 1对1、1对多 18. 设计要求、功能完善、操作方便
19. 客房表、住宿表 20. 娱乐费表、催补款表
21. 客房表、 客房空闲表
二、根据主教材第四章所给的商品库和教学库,按照下列所给的每条SQL查询语句写出相应的功能。
1. 从商品库中查询出每一种商品的商品代号、分类名、数量和品牌等信息。
2. 从商品库中查询出所有商品的不同产地的总数。
3. 从教学库中查询出每门课程被选修的学生数。
4. 从教学库中查询出学生号为@s1的学生和学生号为@s2的学生所选修的共同课程的课程号。
5. 从教学库中查询出所有已被学生选修的课程。
6. 从教学库中查询出最多选修了2门课程(含未选任何课程)的全部学生。
7. 从教学库中查询出每个学生选课的全部情况,并依次按学生号和成绩排序。
8. 从教学库中查询出选修了姓名为@a的学生的全部选课的所有学生。
三、根据教材第四章所给的商品库和教学库,按照下列所给的每种功能写出相应的查询语句。
1.select *
from 商品表1
where 数量 between 10 and 20 (或where 数量>=10 and 数量all(select avg(单价)
from 商品表1
)
4.select 商品表1.*,产地
from 商品表1,商品表2
where 商品表1.商品代号=商品表2.商品代号 and 产地 in (select 产地
from 商品表1 x,商品表2 y
where x.商品代号=y.商品代号
group by 产地 having count(*)=1
)
5.select distinct 学生.*
from 学生,选课
where 学生.学生号=选课.学生号 and 课程号=any(select 课程号
from 学生,选课
where 学生.学生号=选课.学生号 and 姓名=@m1
)
第三次作业
一、单选题
1. C 2. D 3. A 4. B 5. C 6. A
7. B 8. C 9. B 10. A 11. B 12. C
13. D 14. D 15. A 16. B 17. B 18. C
19. D 20. B 21. B 22. B
二、填空题
1. 数据库窗体 2. 工作状态
3. 下拉菜单 4. 8、4
5. 1、mdb 6. 名称、类型
7. 数据、数据库对象 8. 打印方式、显示方式
9. 窗体、报表、数据访问页 10. 更新
11. 页眉、主体、页脚 12. 1对多
13. 设计、预览、数据表 14. 报表页眉、页面页眉、主体
15. Access数据库、更高版本 16. HTML
17. 类模块、标准模块(次序无先后)
18. 工程资源管理器、模块属性窗口、代码编辑窗口
19. VBA 20. 模块
21. 大小写 22. 当前数据库、数据库对象
第四次作业
一、单选题
1. B 2. A 3. B 4. C 5. B 6. A
7. D 8. A 9. D 10. C 11. B 12. A
13. B 14. C 15. A 16. B 17. B 18. A
19. A 20. B 21. B 22. D
二、填空题
1. 客户机/服务器(或C/S) 2. 客户机(或客户端)
3. 数据封锁机制 4. 注册账号(或登录账号)
5. 系统管理员 6. 域用户账号
7. 暂停 8. 逻辑组件
9. 系统数据库、用户数据库 10. master、model、tempdb、msdb
11. GO 12. 局部变量
13. bit(或位) 14. ’ab’
15. 8、4、2、1 16. 数值、字符、日期时间(次序无先后)
17. 查询分析器 18. sp_renamedb
19. Null(空) 20. 删除、修改 (次序无先后)
21. SELECT 22. 索引
23. 自动 24. 插入、删除、修改
25. 可执行 26. 局部变量、全局变量
27. 存储过程 28. 数据、 日志
29. 2、USE 30. 打开、重建
31. CREATE INDEX、DROP INDEX 32. 聚集、非聚集
33. 建立(创建)、 索引 34. 主码、唯一值
35. @、@@ 36. DECLARE、逗号
37. 空格、分号、换行(次序无先后) 38. 2、多、一
39. BREAK、CONTINUE 40. OPEN、CLOSE
41. CURRENT、 42. 并发控制、捆绑
43. 多、RETURN(返回) 44. 参数、过程体
45. CREATE TRIGGER、DROP TIRGGER 46. 检查、唯一值
47. 更新、检查 48. 琐、钥匙
49. GRANT、REVOKE 50. ON、FROM
51. Visual C 、Visual J 、Visual Basic
52. 可视化开发、事件驱动、面向对象编程
53. 关系、SQL 54. 控制中心、命令中心
55. 企业版(Enterprise Edition)
56. Oracle Enterprise Manager(OEM)
57. 层次结构、对象(Object)、继承(Inherientance)
58. 实例、属性、方法 59. Borland、Pascal
60. Microsoft、编程工具
三、根据下面所给的AAA数据库,写出下列每条查询语句的执行结果,或者写出下列每条语句或程序段的功能。
假设存在名为AAA的数据库,包括Students(学号 char(8),姓名 varchar(8),年龄 int,专业 varchar(20),入学日期 DateTime)和Score(学号 char(8),课程名 varchar(10),成绩 numeric(5,2))两张表。
1. 889 ?888
2. 888 ?889
3. student
4. 学生号 课程号 0
5. 首先定义一个名为@MyNo的局部变量,并给它赋初值,如果@MyNo属于计算机软件专业,则显示出平均成绩,否则显示“学号为@MyNo的学生不存在或不属于软件专业”。
6. 求出score表中最高成绩与最低成绩的分数之差。
7. 从students表中统计出专业名开头为@a的值(即“计算机”)的所有学生人数。
8. 从students表中分组统计出每个月份入学的学生人数。
9. 显示出AAA库中所有学生的记录信息及选课成绩
10. 显示出AAA库中每个学生的平均成绩
11. 向score表中插入学号为@a的值、课程名为@b的值、成绩为@c的值的学生成绩记录。
12. 从score表中统计并显示出记录总数
13. 从score表中按成绩统计并显示出优秀、良好、及格、不及格各多少人。
14. 修改score表中学号为@a的值、课程名为@b的值的学生的成绩为@c的值。
15. 根据score表判断学号为@b值的学生是否选修了学号为@a值的学生的全部课程,或者说@a学生的全部课程是否被@b学生所全部选修,若是则返回0,否则返回-1。
四、根据下面所给的AAA数据库,按照下列每种功能写出相应的Transact-SQL语句或程序段。
假设使用名称为AAA的数据库,它包括Students(学号 char(8),姓名 varchar(8),年龄 int,专业 varchar(20),入学日期 DateTime)和Score(学号 char(8),课程名 varchar(10),成绩 numeric(5,2))两张表。
1. SELECT UPPER(‘I am a student’)
2. SELECT * FROM [My Table]
3. select year(getdate()),month(getdate())
4. select left(学号,4)
fron Students
5. create table students (
学号 char(8) primay key,
姓名 varchar(8),
年龄 int,
专业 varchar(20),
入学日期 datetime
)
6. ALTER DATABASE AAA
MODIFY FILE (
NAME = AAA_data,
SIZE = 5,
MAXSIZE=10
)