《关系数据库及SQLServer》习题参考答案解析.docx
- 文档编号:24294364
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:26
- 大小:26.32KB
《关系数据库及SQLServer》习题参考答案解析.docx
《《关系数据库及SQLServer》习题参考答案解析.docx》由会员分享,可在线阅读,更多相关《《关系数据库及SQLServer》习题参考答案解析.docx(26页珍藏版)》请在冰豆网上搜索。
《关系数据库及SQLServer》习题参考答案解析
关系数据库与SQLServer2008
习题参考答案
第1章关系数据库原理
【课后习题】
一、填空题
1.DBMS(数据库管理系统)
2.安全性
3.实体属性联系
4.1:
N
5.网状模型
6.外键
7.实体
8.型
9.每个实体的码
10.N端实体的码
11.诸实体码的组合
12.实体
二、选择题
1.D
2.B
3.A
4.A
5.C
6.B
7.D
8.D
9.A
三、简答题
1.数据是数据库中存储的基本对象。
数据库是长期存储在计算机内、有组织的、可共享的数据集合。
数据库管理系统是位于用户与操作系统之间的一层数据管理软件。
数据库系统是指在计算机系统中引入数据库后的系统构成,一般由数据库、数据库管理系统(及开发工具)、应用系统、数据库管理员和用户构成。
2.数据库系统的特点有:
数据结构化、数据的共享性高,冗余度低,易扩充、数据独立性高、数据由DBMS统一管理和控制。
3.数据库管理系统的主要功能有:
数据定义功能、数据操纵功能、数据库的运行管理、数据库的建立和维护功能。
4.等值连接是把两个表中的行按照给定的等值条件进行拼接而形成新表,结果列为参与连接的两个表的所有列。
自然连接是一种特殊的等值连接,要求参与连接的两个表有共同属性(列),其结果是在参与操作的两个表的共同属性上进行等值条件连接后,再去除重复的属性后所得的新表。
5.关系的完整性规则包括实体完整性、域完整性和参照完整性三个方面。
实体完整性用于保证数据库表中的每一个元组都是唯一的,要求在任何关系的任何一个元组中,主键的值不能为空值、也不能取重复的值。
域完整性用于保证给定字段中数据的有效性,即保证数据的取值在有效的范围内,要求由用户根据实际情况,定义表中属性的取值范围。
参照完整性用于确保相关联的表间的数据保持一致,要求“不引用不存在的实体”,即:
不允许在一个关系中引用另一个关系中不存在的元组。
例如:
主表:
学生(学号,姓名,性别,专业号,年龄)
从表:
专业(专业号,专业名)
主表的“专业号(外键)”的取值只能为两种情况:
若取非空值,则它必须是从表中存在的值;取空值(null),表明尚未给学生分配专业,null不等于0或空字符串。
6.一个低一级范式的关系模式,通过分解可以转换为若干个高一级范式的关系模式,这种过程称为关系的规范化。
关系的规范化主要目的是解决数据库中数据冗余、插入异常、删除异常和更新异常等数据存储问题。
关系规范化的基本方法是逐步消除关系模式中不合适的数据依赖,使关系模式达到某种程度的分离,也就是说,不要将若干事物混在一起,而要彼此分开,用一个关系表示一事或一物,所以,规范化的过程也被认为是“单一化”的过程。
从第一范式至BCNF,它们之间的关系是BCNF
3NF
2NF
1NF。
从第一范式到第二范式,消除了非主属性对码的部分函数依赖;从第二范式到第三范式,消除了非主属性对码的传递函数依赖;从第三范式到BCNF,消除了关系中冗余的码。
四、计算题
1.
(1)
A
B
C
D
E
1
2
3
3
1
4
5
6
6
2
(2)
A
B
C
B
C
D
1
2
3
2
3
9
4
5
6
5
6
0
(3)
A
B
C
D
1
2
3
9
4
5
6
0
(4)空
(5)全外连接
A
B
C
D
1
2
3
9
4
5
6
0
7
8
9
null
null
2
7
3
左外连接
A
B
C
D
1
2
3
9
4
5
6
0
7
8
9
null
右外连接
A
B
C
D
1
2
3
9
4
5
6
0
null
2
7
3
五、设计题
1.
1:
1的E-R图
1:
n的E-R图
m:
n的E-R图
2.
3.
公司(公司代码,公司名,地址)
部门(部门代码,部门名)
员工(员工代码,姓名,性别,年龄,职务)
商品(商品代码,商品名,单价,数量)
厂家(厂家代码,厂家名,地址)
拥有(公司代码,部门代码)
属于(部门代码,员工代码)
销售(员工代码,商品代码,销售量)
供货(商品代码,厂家代码)
4.
(1)基本的函数依赖有:
(商店编号+商品编号)→部门编号,(商店编号+部门编号)→负责人,(商店编号+商品编号)→数量
(2)由题意,上面的函数依赖可知商店编号是主属性,商品编号也是主属性,由这两个属性,可以确定关系元组的所有属性,所以R的候选码是:
商店编号+商品编号
(3)R(商店编号,商品编号,数量,部门编号,负责人)最高已达到2NF。
因为负责人是码的传递依赖。
(4)要达到3NF,必须消除非主属性对码的传递依赖。
对R分解后的两个模式如下:
R1(商店编号,商品编号,数量,部门编号)
R2(部门编号,负责人)
第2章SQLServer2008基础
【课后习题】
一、填空题
1.一个实例
2.SQLServer配置管理器
3.对象资源管理器
4.Windows身份验证混合模式验证
5.Windows服务配置管理器
6.远程本地
7.SharedMemory
8.TCP/IP
二、简答题
1.对象资源管理器窗口用于管理数据库中的所有对象,在该窗口中,可以完成注册、启动和停止服务器,配置服务器属性,创建数据库以及表、视图、存储过程等数据库对象,生成Transact-SQL对象以创建脚本、创建登录账户、管理数据库对象权限等,配置和管理复制,监视服务器活动,查看系统日志等操作。
2.该窗口用于编写和运行Transact-SQL脚本。
它既可以在连接模式下工作,也可以在断开模式下工作。
SQLServer2008的“查询编辑器”支持彩色代码关键字,可视化地显示语法错误,允许开发人员运行和诊断代码等。
3.使用SQLServerProfiler工具可以对MicrosoftSQLServer2008系统的运行过程像摄像机一样进行摄录。
SQLServerProfiler是用于从服务器中捕获SQLServer2008事件的工具。
这些事件可以是连接服务器、登录系统、执行Transact-SQL语句等操作。
这些事件被保存在一个跟踪文件中,以便日后对该文件进行分析或用来重新执行指定的系列步骤,从而有效地发现系统中性能比较差的查询语句等相关问题。
第3章数据库的创建与管理
【课后习题】
一、填空题
1.Master数据库Model数据库Msdb数据库Tempdb数据库Resource数据库
2.主数据文件次数据文件事务日志文件
3.可恢复所有未完成的事务,保证数据库操作的一致性和完整性
4.CREATEDATABASE
5.ALTERDATABASE
6.DROPDATABASE
7.sp_helpdb
8.为空删除文件组中的文件
9.主
10.备份
二、选择题
1-5ADAAD
6-8DDB
三、判断题
1-5FFTTF
6-9FFFT
【课外实践】
任务1:
createdatabasetestdb
onprimary
(name=td1,filename=‘e:
\sql\td1.mdf',
size=5,maxsize=20,filegrowth=10%),
(name=td2,filename=‘e:
\sql\td2.ndf',
size=10,maxsize=30,filegrowth=2),
filegroupuser1
(name=td3,filename=‘e:
\sql\td3.ndf',
size=5,maxsize=unlimited,filegrowth=2)
logon
(name=tlog,filename='e:
\sql\tlog.ldf',
size=4,maxsize=unlimited,filegrowth=20%)
任务2:
1.
alterdatabasetestdb
addfilegroupu3
2.
alterdatabasetestdb
modifyfilegroupu3name=u2
3.
alterdatabasetestdb
modifyfile
(name=td2,size=10,maxsize=50,filegrowth=15%)
4.
alterdatabasetestdbmodifyname=gldb
第4章数据表的创建与管理
【课后习题】
一、填空题
1.主键约束唯一性约束外键约束检查约束非空约束默认值约束
2.单个列定义所有列定义修改表的方式
3.一多空非空
4.相应的约束
5.外键T2
6.空
7.修改删除
8.域
9.参照
10.identity
二、选择题
1-5BBDAC
三、判断题
1-5FTFTF
6-10FFTFT
第5章数据查询
【课后习题】
一、填空题
1.SELECT
2.WHERE
3.连接
4.分组
5.排序
6.ORDERBY
7.Transact-SQL
8.DISTINCT
9.HAVING
10.BETWEEN…AND
11.LIKE
12.ANSI语法SQLServer语法
13.比较
14.ANYALLIN
二、选择题
1-5DCDAD
三、判断题
1-5TFTFF
6-7FF
【课外实践】
任务1:
1.
select课程名,授课教师,开课学期
fromkc
where开课学期=2
2.
select姓名,联系电话,专业名,性别
fromxsqk
where专业名=‘信息安全’and性别=0
3.
select学号,课程号,成绩
fromxs_kc
where成绩>=90
4.
select学号,课程号,成绩
fromxs_kc
where成绩>=90or成绩<60
5.
select学号,姓名,出生日期
fromxsqk
where出生日期notbetween‘1995-11-01’and‘1996-2-29’
6.
select*
fromxsqk
where姓名like‘陈_’
7.
select*
fromxsqk
where学号like‘%8%’
8.
select*
fromxsqk
where联系电话like‘__[69]%’
9.
select*
fromkc
where开课学期in(1,3,5)
10.
select学号,姓名,出生日期
fromxsqk
orderby出生日期
任务2:
1.
select开课学期,sum(学分)as每学期的总学分
fromkc
groupby开课学期
2.
select学号,count(*)as每个学生选修的课程门数
fromxs_kc
groupby学号
3.
select课程名称,开课学期,学分
fromkc
computesum(学分)
4.
select课程名称,开课学期,学分
fromkc
orderby2
computesum(学分)by开课学期
5.
select学号,avg(成绩)as学生的平均分
fromxs_kc
groupby学号
6.
select学号,avg(成绩)as学生的平均分
fromxs_kc
groupby学号
havingavg(成绩)between70and80
7.
select学号,课程号,成绩
intotemp_kc
fromxs_kc
orderby课程号,成绩desc
8.
selectmax(成绩)as101课程的最高分,min(成绩)as101课程的最低分
fromxs_kc
where课程号=’101’
9.
select开课学期,count(*)as每学期开设的课程门数
fromkc
groupby开课学期
10.
select专业名,count(专业名)as各专业人数
fromxsqk
groupby专业名
任务3:
1.
select学号,课程名,授课教师,开课学期,成绩
fromkc,xs_kc
wherekc.学号=xs_kc.学号and成绩<60
2.
selectxsqk.学号,姓名,kc.课程号,课程名,成绩
fromxsqk,kc,xs_kc
wherexsqk.学号=xs_kc.学号andkc.课程号=xs_kc.课程号and课程名='网页设计'
任务4:
1.
select学号,姓名,联系电话
fromxsqk
where学号in(select学号
fromxs_kc
where课程号=’103’and成绩<60)
2.
select学号,姓名
fromxsqk
where(selectcount(课程号)
fromxs_kc
wherexsqk.学号=xs_kc.学号and成绩>=60)=2
3.
select*
fromxs_kca
where成绩=(selectmax(成绩)
fromxs_kcb
wherea.课程号=b.课程号)
4.
select*
fromxs_kca
where成绩=(selectmin(成绩)
fromxs_kcb
wherea.学号=b.学号)
5.
selectdistincta.课程号,人数=
(selectcount(学号)fromxs_kcbwhereb.课程号=a.课程号)
fromxs_kca
orderbya.课程号asc
第6章视图与索引
【课后习题】
一、填空题
1.标准视图索引视图分区视图
2.WITHENCRYPTION
3.sp_helptext
4.聚集索引非聚集索引
5.数据库
6.基表
7.聚集索引非聚集索引唯一索引复合索引全文索引XML索引
8.创建表
9.主键唯一
10.查询
二、选择题
1-5DCBAA
6-10CCDBC
三、判断题
1-5TFFFF
6-10FFFTT
11-12TT
【课外实践】
任务1:
USExscj
GO
CREATEVIEWv_开课信息
AS
SELECT课程号,课程名,开课学期,学时
FROMkc
WHERE开课学期>=3
任务2:
USExscj
GO
CREATEVIEWv_选课信息
AS
SELECT姓名,课程名
FROMxsqk,kc,xs_kc
WHERExsqk.学号=xs_kc.学号ANDkc.课程号=xs_kc.课程号AND专业名=’多媒体技术’
任务3:
CREATEINDEXIX_课程名
ONKC(课程名)
第7章规则与默认值
【课后习题】
一、填空题
1.对象数据库
2.CREATERULE
3.DROPRULE
4.DEFAULT
5.sp_bindefault
二、选择题
1-3CBD
三、判断题
1-5FTTTF
6-9TTTF
【课外实践】
任务1:
USExscj
GO
CREATERULExs_rule
AS
@学分>=0AND@学分<=6
GO
EXECsp_bindrule‘xs_rule’,’kc.学分’
任务2:
USExscj
GO
CREATEDEFAULTkkxq_defAS1
GO
EXECsp_bindefault‘kkxq_def’,’kc.开课学期’
第8章T-SQL编程
【课后习题】
一、填空题
1.GO
2.@@@
3.ab
4.BEGINEND
5.BREAKCONTINUE
6.某一时刻一段时间间隔
7.多一
8.GETDATE()
二、选择题
1-5CBBDA
6-7CD
三、判断题
1-5FTFFF
6-8FFT
四、简答题
1.SQL标识符的命名必须遵守以下规则:
标识符的长度可以为1~128个字符。
标识符的第一个字符必须是英文字母、下划线、汉字、@或者#。
默认情况下,标识符内不允许含有空格,也不允许将SQL关键字作为用户定义的标识符。
2.局部变量的声明:
DECLARE@变量名数据类型[,…n]
局部变量的赋值:
①SET@变量名=表达式
②SELECT@变量名=表达式[,…n]
[FROM…]
[WHERE…]
3.全局变量是系统定义的变量,以@@符号开头,用户不能定义全局变量,也不能修改其值,全局变量在相应的上下文中是随时可用的,通常被服务器用来跟踪服务器范围和特定会话期间的信息。
4.RETURN语句用于从查询或过程中无条件退出。
RETURN的执行是即时且完全的,可在任何时候用于从过程、批处理或语句块中退出,在它之后的语句不会被执行。
RETURN与BREAK很相似,不同的是RETURN可以返回一个整数。
【课外实践】
任务1:
declare@xvarchar(30)
set@x=’WelcometoSQLServer’
printupper(@x)
printlower(@x)
任务2:
waitfordelay’00:
00:
30’
usexscj
select*fromkc
waitfortime’11:
30:
30’
usexscj
select*fromxsqk
任务3:
usexscj
go
declare@nint
select@n=count(*)fromxsqkwheredatediff(yy,出生日期,getdate())>20
if@n>=0
print'年龄大于20的学生人数有:
'+cast(@nasvarchar(5))
else
print'没有年龄大于20的学生'
任务4:
declare@sumint
set@sum=(selectsum(学分)fromxs_kc)
while@sum<100
begin
updatexs_kcset学分=学分+1
set@sum=(selectsum(学分)fromxs_kc)
end
第9章存储过程与触发器
【课后习题】
一、填空题
1.参数输入输出
2.EXECUTE
3.DML触发器DDL触发器登录触发器
4.FOR|AFTERINSTEADOF
5.INSERTUPDATEDELETE
二、选择题
1-4BDDC
三、判断题
1-5FFTTT
【课外实践】
任务1:
usexscj
go
createprocedurep1
@kchchar(3),@kcmvarchar(20),@skjsvarchar(20),@kcxqtinyint,@xstinyint,@xftinyint
as
insertkcvalues(@kch,@kcm,@skjs,@kcxq,@xs,@xf)
go
execp1'115','数据库基础','张玲',2,68,4
任务2:
createprocp2
@kchchar(3)
as
updatexs_kcset成绩=60where课程号=@kchand(成绩>=55and成绩<60)
go
declare@kchchar(3)
select@kch='103'
execp2@kch
go
select*fromxs_kcwhere课程号=@kch
任务3:
createprocp3
@xhchar(10),@xmvarchar(10)output,@xbbitoutput,@zymvarchar(20)output,@szxvarchar(20)output
as
select@xm=姓名,@xb=性别,@zym=专业名,@szx=所在系
fromxsqk
where学号=@xh
go
declare@xhchar(10),@xmvarchar(10),@xbbit,@zymvarchar(20),@szxvarchar(20)
select@xh='01'
execp3@xh,@xmoutput,@xboutput,@zymoutput,@szxoutput
print'学号为'+@xh+'的信息如下:
'
print''
print'姓名:
'+@xm
print'性别:
'+convert(varchar
(2),@xb)
print'专业名:
'+@zym
print'所在系:
'+@szx
任务4:
createtriggert4
onkc
forinsert
as
print‘插入成功!
’
任务5:
createtriggert5
onkc
forupdate
as
updatexs_kc
set课程号=inserted.课程号
where课程号=deleted.课程号
任务6:
createtriggert6
onxsqk
fordelete
as
declare@xhchar(10)
select@xh=学号fromdeleted
print'准备删除xs_kc表'+@xh+'学生的成绩信息'
deletexs_kcwhere学号=@xh
print'已经删除xs_kc表'+@xh+'学生的成绩信息'
第10章SQLServer2008安全管理
【课后习题】
一、填空题
1.Windows验证混合模式验证
2.sa
3.操作数据库数据库
4.dboguestsys
5.自定义角色预定义角色
6.固定服务器角色
7.三服务器角色
8.固定数据库角色用户自定义角色应用程序角色
9.对象权限语句权限隐式权限
10.GrantRevokeDeny
二、简答题
1.sysadmin角色为需要完全控制整个SQLServer和安装的数据库的用户而设计,其成员能在SQLServer系统中执行任何任务。
所以win_user应添加到sysadmi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关系数据库及SQLServer 关系 数据库 SQLServer 习题 参考答案 解析
![提示](https://static.bdocx.com/images/bang_tan.gif)