2008/2009 学年第 二 学期
课程名称 | 数据库技术已应用 | 使用班级 | 电信07(1、2) |
教师份数 | 4 | 学生份数 | 62 |
命题人 | 审核人 | ||
命题总页数 | 4 页 | 每份试卷需用白纸 | 3大张 |
一、命题稿请用A4纸电脑打印,或用教务处印刷的命题纸,并用黑墨水书写,保持字迹清晰,页码完整。
二、两份试题必须同等要求,卷面上不要注明A、B字样,由教务处抽定A、B卷。
三、命题稿必须经学院审核,并在考试前两周交教务处。
浙江工业大学2008/2009学年
第 二 学期试卷
课程________________________________姓名___________________________
班级_______________________________________________________________
题序 | 一 | 二 | 三 | 四 | 五 | 六 | 七 | 八 | 九 | 十 | 总评 |
计分 |
1.数据表的关联性主要有: 1:1 、 1:n 和 m:n 关联性 。
2.数据库管理系统结构模式主要有:桌面型关系数据库系统 、 客户机/服务器 和
浏览器/服务器 三种。
3.数据模型从结构上区分由_层次模型、网状模型_和_关系模型_三种基本模型。
4.SQL Server系统的数据库存储结构是:__ 数据____ 和____日志____ 两个文件。
5.如果两个实体之间具有M:N联系,则将它们转换为关系模型的结果是____3___个表。
6.SQL Server数据库系统采用验证方式有Windows验证 和Windows、SQL Server混合验证__。
7.数据库的事务是: 作为一个逻辑工作单元执行的一系列操 ,事务作为逻辑工作单元必须具备四个属性 原子性 、 一致性 、 隔离性 、 持久性 。
8.关系代数中专门的关系运算包括:选择、投影、_连接_和除法。
9.SQL Server 2000中,字符型包括__char__和___varchar__两种类型。前者称为固定长度字符型,后者称为可变长度字符型。
10.数据库并发操作通常会带来三类问题,它们是丢失更新、不可重复读和脏读。
11.SQL语言中,用于事务回滚的语句是__Rollback Transaction__。
12.SQL Server 2000索引分为__唯一索引 、主键索引、聚集索引__三种类型。
二、选择题(每题2分,共20分)
1.如果事务T获得了数据项Q上的排它锁,则T对Q C 。
A.只能读不能写 B.只能写不能读
C.既可读又可写 D.不能读不能写
2.SQL语言集数据查询、数据操作、数据定义、和数据控制功能于一体,语句CREATE、DROP、ALTER实现下列哪类功能 C 。
A.数据查询 B.数据操纵
C.数据定义 D.数据控制 |
浙 江 工 业 大 学 考 试 命 题 纸
3.下列哪一个数据库不是SQL Server 2000的系统数据库 C 。
A.master数据库 B.msdb数据库 C.pubs数据库 D.model数据库
4.下列哪一种约束是对数据表的字段级的: C 。
A.主键(PK) B.外键(FK)
C.规则 D.唯一性(Unique)
5.SQL Server提供的单行注释语句是使用 B 开始的一行内容。
A.“/*” B.“--” C. “{” D. “/”
6.与 WHERE G BETWEEN 60 AND 100 语句等价的子句是: D 。
A.WHERE G > 60AND G< 100 B.WHERE G >= 60AND G < 100
C.WHERE G > 60AND G<=100 D.WHERE G>=60AND G < =100
7.要查询STUDENT数据库S表中姓名含有“诗”的学生情况,可用 A 命令。
A.SELECT * FROM S WHERE 姓名 LIKE ’%诗%’
B.SELECT * FROM S WHERE 姓名 LIKE ’ 诗’
C.SELECT * FROM S WHERE 姓名 LIKE ’ 诗_’
D.SELECT * FROM S WHERE 姓名=’ 诗’
8.数据库的内容更新可由 C 操作实现。
A.CREATE和UPDATE B.INSERT和SELETE
C.INSERT、UPDATE和DELETE D.DROP
9.在视图上不能完成的操作是 D 。
A.在视图上定义新的视图 B.查询操作
C.更新视图 D.在视图上定义新的基本表
10.有一个关系:学生(学号,姓名,系别),规定学号的值域是8个数字组成的字符串,这一规则属于 C 。
A.实体完整性约束 B.参照完整性约束
C.用户自定义完整性约束 D.关键字完整性约束
三、程序设计(每小题7分,共35分)
1.用T-SQL语言编写创建一个教师数据表,内容包括教师编号(Tid),10位编码长度,教师名(Tname),4个汉字、性别(sex),1个汉字,年龄(age),整型,所在学院(academy),50个汉字长度,以教师编号作为主键,性别默认为’男’,年龄须小于60岁,并建立男教师信息的视图。
2.在学生数据表(student)中,表中有学号(no)、姓名(name)、性别(sex)、年龄(age)等字段,用T-SQL语言插入学号为’1005’,姓名叫’王芳’,年龄20岁的女同学的信息?在此基础上,修改王芳的同学的年龄为19岁,并编写T-SQL程序? |
浙 江 工 业 大 学 考 试 命 题 纸
3.用T-SQL编写1到100中偶数的累加值。
4.编写一个触发器,实现不让年龄小于18岁员工信息插入到员工表(Employee)中,员工表包括员工编号(EId)、员工姓名(EName)、性别(Sex)、年龄(Age)等信息。
5.用T-SQL编写,创建数据库Stu,数据文件初始大小5M,日志文件5M,都按10%增长,文件存放于D:\\Data中。
四、程序阅读(共10分)
1.阅读下列程序,并在右侧(--注释:标记后)进行程序注释 (5分)
declare @avg_grade varchar(10),@s# varchar(14),@sname varchar(10),@message varchar(100)
declare avg_grade cursor --注释:定义游标
scroll --注释:游标类型滚动游标
for
select s.s#,s.sname,avg(grade)
from s,sc where s.s# = sc.s#
group by s.s#,s.sname order by s.s#
open avg_grade --注释:打开游标
fetch next from avg_grade
into @s#,@sname,@avg_grade
while @@FETCH_STATUS = 0 --注释:判断游标执行状态
begin
select @message = '----- 学号: ' + @s# + '姓名: ' + @sname + '平均成绩:'+@avg_grade
print @message
fetch next from avg_grade
into @s#,@sname,@avg_grade
end
close avg_grade --注释:关闭游标
deallocate avg_grade --注释:释放游标 |
浙 江 工 业 大 学 考 试 命 题 纸
2.阅读和注释程序,并写出本程序运行结果。(5分)
create procedure xp_fac
@e int
as
declare @s int,@n int,@t int,@c int
set @s=0
set @n=1
while @n<=@e
begin
set @c=1
set @t=1
while @c<=@n
begin
set @t=@t*@c
set @c=@c+1
end
set @s=@s+@t
set @n=@n+1
end
select @s
运 行:
exec xp_fac 5
输出值:153
五、应用题(共20分)
1.编写和设计一个简单学生学籍管理的程序,其中有学生(Student)实体属性有学号(SID)、姓名(SName)、性别(Sex)、年龄(Age)、所在系(Dept),课程 (Course)实体属性有课程编号(CID)、课程名称(CName)、学分(Cre),假设一门课可以有多个学生选课,一个学生也可以选择多门课程学习,要求(20分)
(1)请画出学生和课程的E-R图;4
(2)根据E-R图,构造其关系模型;3
(3)设计学生表、课程表和选课表数据结构,并设计数据结构的字段名、类型、长度,小数点位数(如果上数值),可以用表的方式或T-SQL命令方式;3
(4)设置学生表和课程表的主健(PK)和外健(FK)的字段名;3
(5)查询成绩大于90分的学生名单,并按照学号升序排列;2
(6)用聚合函数,统计班级的平均成绩;2
(7)将女同学的C1课程的成绩提高10%。3 |
解答:
三、
1、
Create Table Teacher
(
Tid char(10) NOT NULL Primary Key,
Tname nvarchar(8) NULL,
Sex char(2) NULL DEFALUT ‘男’,
Age int NULL check(age<60),
Academy varchar(50)
)
Create View Teacher_Male
As
Select * from Teacher where Sex=’男’
2、
Insert Into Student(no,name,sex,age)
Values(‘1005’,’王芳’,’女’,20)
Update Student
Set age=19
Where name=’王芳
3、
Declare @myresult int @myvar int
Set @myvar=0
Set @myresult=0
While @ myvar <=100
Begin
If @myvar%2=0
Begin
Set @myresult=@myresult+@myvar
END
Set @myvar=@myvar+1
End
Print @myresult
’4、
Create trigger TR_IN
On employee
For insert,update
As
Declare @age
Begin
Select @age=age from inserted
If @age < 18
Rollback transaction
Print ‘员工小于18岁员’
End
5、
USE master
GO
CREATE DATABASE Stu
ON
( NAME = Stu_Data,
FILENAME = 'D:\\data\Stu_Data.mdf',
SIZE = 5MB,
MAXSIZE = 5,
FILEGROWTH = 10 )
LOG ON
( NAME = ' Stu_Log ',
FILENAME = 'D:\\data\Stu_Log.ldf',
SIZE = 5MB,
MAXSIZE = 5MB,
FILEGROWTH = 10 )
GO
七、
create table Student (
SID varchar(15) not null Primary key,
SName varchar(10) null,
Sex char(2) null,
Age smallint null,
Dept varchar(10) null
)
create table Course (
CID varchar(15) not null Primary key,
CName varchar(40) null,
Cre numeric(5,1) null
)
create index SC_FK on SC (
SID varchar(15) not null,
CID varchar(15) not null,
Score numeric(5,1) null
)
go
alter table SC
add constraint FK_SC_SC_STUDENT foreign key (SID)
references Student
go
alter table SC
add constraint FK_SC_SC2_COURSE foreign key (CID)
references Course
go
(4)3
(5)3
select s.sno,sc,score
from s,sc
where s.sno=sc.sno and score>90
order by s.sno
(6)2
Select cid,avg(score) from sc group by cid
(7)3
update sc
set score=score+score*0.1
where sno in(select sno from s where sex='女')
[评分标准:]