习题参考答案 《关系数据库与SQL Server 版》.docx
《习题参考答案 《关系数据库与SQL Server 版》.docx》由会员分享,可在线阅读,更多相关《习题参考答案 《关系数据库与SQL Server 版》.docx(41页珍藏版)》请在冰点文库上搜索。
习题参考答案《关系数据库与SQLServer版》
第1章关系数据库原理
【课后习题】
一、填空题
1.数据库系统各类用户对表的各种操作请求(数据定义、查询、更新及各种控制)都是由一个复杂的软件来完成的,这个软件叫做__DBMS(数据库管理系统)__。
2.DBMS(数据库管理系统)通常提供授权功能来控制不同的用户访问数据库中数据的权限,其目的是为了数据库的___安全性__。
3.在概念模型中,通常用实体联系图表示数据的结构,其三个主要的元素是__实体、属性、联系__。
4.学校中有若干个系和若干个教师,每个教师只能属于一个系,一个系可以有多名教师,系与教师的联系类型是__1:
N__。
5.数据库系统中所支持的主要逻辑数据模型有层次模型、关系模型、__网状模型____和面向对象的模型。
6.联系两个表的关键字称为___外键___。
7.关系中主码的取值必须唯一且非空,这条规则是___实体___完整性规则。
8.关系模式是对关系结构的定义,是对关系__型___的描述。
9.对于1:
1的联系,___每个实体的码_____均是该联系关系的候选键。
10.对于1:
N的联系,关系的键是__N端实体的码____。
11.对于M:
N的联系,关系的键是___诸实体码的组合___。
12.关系完整性约束包括__实体__完整性、参照完整性和用户自定义完整性。
二、选择题
1.数据库管理技术的发展阶段不包括(D)。
A.数据库系统管理阶段B.人工管理阶段
C.文件系统管理阶段D.操作系统管理阶段
2.数据处理进入数据库系统阶段,以下哪个不是这一阶段的优点(B)。
A.有很高的数据独立性B.数据不能共享
C.数据整体结构化D.有完备的数据控制功能
3.用于定义、撤销和修改数据库对象的语言是(A)。
A.DDLB.DMC.DCD.DEL
4.数据库系统的出现使信息系统以(A)为中心。
A.数据库B.用户C.软件D.硬件
5.在现实世界中,事物的一般特性在信息世界中称为(C)。
A.实体B.实体键C.属性D.关系键
6.实体联系图(ER图)是(B)。
A.现实世界到信息世界的抽象B.描述信息世界的数据模型
C.对现实世界的描述D.描述机器世界的数据模型
7.关系模型的数据结构是(D)。
A树B.图C.表D.二维表
8.关系R和S进行自然连接时,要求R和S含有一个或多个公共(D)。
A.元组B.行C.记录D.属性
9.设属性A是关系R的主属性,则属性A不能取空值,这是(A)。
A.实体完整性规则B.参照完整性规则
C.用户自定义完整性规则D.域完整性规则
三、简答题
1.什么是数据、数据库、数据库管理系统、数据库系统?
解答:
数据是数据库中存储的基本对象。
数据库是长期存储在计算机内、有组织的、可共享的数据集合。
数据库管理系统是位于用户与操作系统之间的一层数据管理软件。
数据库系统是指在计算机系统中引入数据库后的系统构成,一般由数据库、数据库管理系统(及开发工具)、应用系统、数据库管理员和用户构成。
2.数据库系统有哪些特点?
解答:
数据库系统的特点有:
数据结构化、数据的共享性高,冗余度低,易扩充、数据独立性高、数据由DBMS统一管理和控制。
3.数据库管理系统的主要功能有哪些?
解答:
数据库管理系统的主要功能有:
数据定义功能、数据操纵功能、数据库的运行管理、数据库的建立和维护功能。
4.在关系代数中,等值条件连接和自然连接的区别是什么?
解答:
等值连接是把两个表中的行按照给定的等值条件进行拼接而形成新表,结果列为参与连接的两个表的所有列。
自然连接是一种特殊的等值连接,要求参与连接的两个表有共同属性(列),其结果是在参与操作的两个表的共同属性上进行等值条件连接后,再去除重复的属性后所得的新表。
5.试述关系模型的完整性规则。
在参照完整性中,为什么外键属性的值也可以为空?
什么情况下才可以为空?
解答:
关系的完整性规则包括实体完整性、域完整性和参照完整性三个方面。
实体完整性用于保证数据库表中的每一个元组都是唯一的,要求在任何关系的任何一个元组中,主键的值不能为空值、也不能取重复的值。
域完整性用于保证给定字段中数据的有效性,即保证数据的取值在有效的范围内,要求由用户根据实际情况,定义表中属性的取值范围。
参照完整性用于确保相关联的表间的数据保持一致,要求“不引用不存在的实体”,即:
不允许在一个关系中引用另一个关系中不存在的元组。
例如:
主表:
学生(学号,姓名,性别,专业号,年龄)
从表:
专业(专业号,专业名)
主表的“专业号(外键)”的取值只能为两种情况:
若取非空值,则它必须是从表中存在的值;取空值(null),表明尚未给学生分配专业,null不等于0或空字符串。
6.什么是关系规范化?
关系规范化的目的是什么?
关系规范化的基本方法是什么?
第一范式至BCNF,它们之间的关系是什么?
解答:
一个低一级范式的关系模式,通过分解可以转换为若干个高一级范式的关系模式,这种过程称为关系的规范化。
关系的规范化主要目的是解决数据库中数据冗余、插入异常、删除异常和更新异常等数据存储问题。
关系规范化的基本方法是逐步消除关系模式中不合适的数据依赖,使关系模式达到某种程度的分离,也就是说,不要将若干事物混在一起,而要彼此分开,用一个关系表示一事或一物,所以,规范化的过程也被认为是“单一化”的过程。
从第一范式至BCNF,它们之间的关系是BCNF
3NF
2NF
1NF。
从第一范式到第二范式,消除了非主属性对码的部分函数依赖;从第二范式到第三范式,消除了非主属性对码的传递函数依赖;从第三范式到BCNF,消除了关系中冗余的码。
四、设计题
1.试给出三个实际情况的E-R图,要求实体之间具有一对一、一对多、多对多各种不同的联系。
2.某学院有若干系,每个系有若干班级和教研室,每个教研室有若干教师,每个班有若干学生,每个学生选修若干课程,每门课程可由若干学生选修。
请用E-R图画出该学院的概念模型。
3.某商品销售公司有若干销售部门,每个销售部门有若干员工,销售多种商品,所有商品由一个厂家提供,设计该公司销售系统的E-R模型,并将其转换为关系模式。
4.设关系模式SCT(学号,课程号,成绩,教师名,教师地址)。
如果规定:
每个学生每学一门课程只有一个成绩;每门课只有一个教师任教;每个教师只有一个地址(无同名教师)。
(1)写出关系模式SCT的基本函数依赖集。
(2)找出关系模式SCT的候选键。
(3)试把SCT分解成2NF模式集,并说明理由。
(4)试把SCT分解成3NF模式集,并说明理由。
解答:
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章SQLServer2019基础
【课后习题】
一、填空题
1.在一台计算机机上可以多次安装SQLServer,我们把每一个安装称为__一个实例__。
2.在SQLServer2019中,主要用于管理与SQLServer相关联的服务、配置SQLServer使用的协议、管理网络连接配置的一种实用工具是__SQLServer配置管理器__。
3.在SQLServerManagementStudio中,用于查看和管理服务器中的所有对象的组件是__对象资源管理器__。
4.在SQLServer2019的安装过程中,需要选择设置的两种身份验证模式是_Windows身份验证__和___混合模式验证__。
5.SQLServer2019中的服务可以通过__Windows服务___和_配置管理器_工具来进行管理。
6.SQLServer的安装可以配置为__远程__连接和_本地__连接。
7.用于本地连接的首选协议是SharedMemory。
8.通过本地或远程连接到SQLServer的首选协议是_TCP/IP_。
二、简答题
1.“对象资源管理器”有什么作用?
解答:
.对象资源管理器窗口用于管理数据库中的所有对象,在该窗口中,可以完成注册、启动和停止服务器,配置服务器属性,创建数据库以及表、视图、存储过程等数据库对象,生成Transact-SQL对象以创建脚本、创建登录账户、管理数据库对象权限等,配置和管理复制,监视服务器活动,查看系统日志等操作。
2.“新建查询”窗口有什么作用?
解答:
.该窗口用于编写和运行Transact-SQL脚本。
它既可以在连接模式下工作,也可以在断开模式下工作。
SQLServer2019的“查询编辑器”支持彩色代码关键字,可视化地显示语法错误,允许开发人员运行和诊断代码等。
3.性能工具SQLServerProfiler有什么作用?
解答:
.使用SQLServerProfiler工具可以对MicrosoftSQLServer2019系统的运行过程像摄像机一样进行摄录。
SQLServerProfiler是用于从服务器中捕获SQLServer2019事件的工具。
这些事件可以是连接服务器、登录系统、执行Transact-SQL语句等操作。
这些事件被保存在一个跟踪文件中,以便日后对该文件进行分析或用来重新执行指定的系列步骤,从而有效地发现系统中性能比较差的查询语句等相关问题。
第3章数据库的创建与管理
【课后习题】
一、填空题
1.SQLServer的系统数据库有:
Master数据库、Model数据库、Msdb数据库、Tempdb数据库、Resource数据库。
2.数据库中的数据库文件有三类:
主数据文件次数据文件事务日志文件。
3.事务日志文件的作用是:
可恢复所有未完成的事务,保证数据库操作的一致性和完整性。
4.创建数据库的命令是:
CREATEDATABASE。
5.修改数据库的命令是:
ALTERDATABASE。
6.删除数据库的命令是:
DROPDATABASE。
7.查看XSCJ数据库信息的存储过程命令是sp_helpdb。
8.删除文件组前必须保证该文件组为空,若该文件组中有文件,则应先删除文件组中的文件。
9.在增加数据文件时,如果用户没有未指明文件组,则系统将该数据文件增加到主文件组。
10.找回被删除表的唯一方法是事先做好数据库的备份工作。
二、选择题
1.当数据库损坏时,数据库管理员可通过何种方式恢复数据库(A)。
A.事务日志文件B.主数据文件C.DELETE语句D.联机帮助文件
2.下面关于tempdb数据库描述不正确的是(D)。
A.是一个临时数据库B.属于全局资源
C.没有权限限制D.是用户建立新数据库的模板
3.SQLServer2019的物理存储主要包括3类文件(A)。
A.主数据文件、次数据文件、事务日志文件
B.主数据文件、次数据文件、文本文件
C.表文件、索引文件、存储过程D.表文件、索引文件、图表文件
4.数据库中的数据在哪种情况下可以被删除?
(D)
A.当有用户使用此数据库时B.当数据库正在恢复时
C.当数据库正在参与复制时D.当数据库被设置为只读时
5.用来显示数据库信息的系统存储过程是(D)。
A.sp_dbhelpB.sp_dbC.sp_helpD.sp_helpdb
6.在修改数据库时不能完成的操作是(D)。
A.添加或删除数据和事务日志文件B.更改数据库名称
C.更改数据库的所有者D.更改数据库的物理路径
7.在创建数据库时,用来指定数据库文件物理存放位置的参数是(B)。
A.FILEGROWTHB.FILENAMEC.NAMED.FILE
三、判断题
1.创建数据库时,filegrowth参数是用来设置数据库的最大容量的。
2.创建数据库时,不需要指定逻辑名和物理名。
3.当数据文件没有指定文件组时,默认都在主文件组中。
4.事务日志文件不属于任何文件组。
5.用户可以创建若干个主文件组。
6.在数据库中可以没有事务日志文件,也可以没有次数据文件。
7.修改数据库文件时,可以对文件类型、所属文件组和路径进行修改。
8.除了不能删除默认文件组外,可以删除任何文件组。
9.主数据文件不能被删除,且日志文件也必须保留一个。
解答:
.1-5FFTTF6-9FFFT
【课外实践】
任务1:
用命令方式创建XSCJ数据库。
逻辑名称
物理名称
初始大小
最大大小
增量
主文件组
XSCJ_1
D:
\sql\XSCJ_1.mdf
50MB
不受限制
20%
U1文件组
XSCJ_2
D:
\sql\XSCJ_2.ndf
20MB
500MB
64MB
日志文件
XSCJ_LOG
D:
\sql\XSCJ_LOG.ldf
50MB
不受限制
10%
createdatabasexscj
onprimary
(name=xscj_1,filename='d:
\sql\xscj_1.mdf',
size=50,maxsize=unlimited,filegrowth=20%),
filegroupuser1
(name=xscj_2,filename='d:
\sql\xscj_2.ndf',size=20,maxsize=500)
logon
(name=xscj_log,filename='d:
\sql\xscj_log.ldf',
size=50,maxsize=unlimited,filegrowth=10%)
任务2:
用命令方式修改XSCJ数据库。
1.将XSCJ数据库中的文件组USER1更名为U1。
alterdatabasexscjmodifyfilegroupuser1name=u1
2.将XSCJ数据库中次数据文件的初始大小改为50MB,最大容量为不受限制。
alterdatabasexscj
modifyfile(name=xscj_2,size=60,maxsize=unlimited)
3.将XSCJ数据库中的次数据文件逻辑名修改为DATA。
alterdatabasexscj
modifyfile(name=xscj_2,newname=data)
4.将数据库XSCJ的数据库名改为XSCJK。
alterdatabasexscjmodifyname=xscjk
第4章数据表的创建与管理
【课后习题】
一、填空题
1.在数据表上可以创建的约束有主键约束、唯一性约束、外键约束、检查约束、非空约束、默认值约束等。
2.创建表约束的方法有三种:
第一种是在新建表时,在单个列定义之后创建约束;第二种是在新建表时,在___所有列定义__之后创建约束;第三种是表已经存在,可以通过__修改表的方式___添加约束。
3.在一个表中只能定义___一__个主键约束,但可以定义__多___个唯一性约束;定义了唯一约束的列数据可以为___空__值,而定义了主键约束的列数据为__非空__值。
4.如果列上有约束,要删除该列,应先删除相应的约束。
5.如果要删除的表T1是其他表T2的参照表,则应先取消T2表中的外键约束,或者先删除T2表,再删除T1表。
6.在一个已存在数据的表中增加不带默认值的列,一定要保证所增加的列允许_空_值。
7.对表中记录的维护工作主要有增加、修改和删除操作,它们均可通过对象资源管理器或Transact-SQL语句完成。
8.表的检查约束是用来强制数据的_域完整性。
9.表的外键约束实现的是数据的_参照完整性。
10.定义标识列的关键字是identity。
二、选择题
1.在altertable语句中使用了哪个子句可以使表上创建的检查约束暂时无效。
(B)
A.checkconstraintB.nocheckconstraint
C.withnocheckD.dropconstraint
2.SQLServer2019的字符型系统数据类型主要包括(B)。
A.int、money、charB.char、varchar、text
C.datetme、binary、intD.char、varchar、int
3.不允许在关系中出现重复记录的约束是通过(D)实现。
A.外键约束B.非空约束
C.检查约束D.唯一约束
4.表的主键约束是用来实现数据的(A)
A.实体完整性B.参照完整性C.域完整性D.都是
5.用于自动产生唯一的系统值的列属性是(C)。
A.NULLB.NOTNULLC.IDENTITYD.SEED
三、判断题
1.NULL表示一个空字符串。
2.参照完整性通常由外键约束来实现。
3.insert语句后面必须要INTO。
4.指定为标识列后,系统自动将该列设定为NOTNULL。
5.WITHNOCHECK选项可以暂停所有约束。
6.任何数据类型的列都可以设置为标识列。
7.在修改数据表时,可以向已有数据的表添加NOTNULL属性的列。
8.用一条INSERT语句一次可以插入多行数据。
9.在定义约束时,用户必须为该约束定义约束名。
10.在创建数据表时,如果没有指明表所有者,则使用默认的表所有者dbo。
解答:
1-5FTFTF6-10FFTFT
第5章数据查询
【课后习题】
一、填空题
1.用SELECT子句可以实现选择列的运算。
2.用WHERE子句可以实现选择行的运算。
3.在进行多表查询时,必须设置连接条件。
4.GROUPBY子句实现的是_分组。
5.ORDERBY子句实现的是_排序。
6.SQLServer2019采用的结构化查询语言称为_Transact-SQL。
7.在SELECT语句查询中,要去掉查询结果中的重复记录,应该使用_DISTINCT关键字。
8.使用SELECT语句进行分组查询时,如果希望去掉不满足条件的分组,应当使用_HAVING子句。
9.如果列的取值范围是个连续的区间,可以使用_BETWEEN…AND关键字来设置查询条件。
10.要进行模糊匹配查询,需要使用_LIKE关键字来设置查询条件。
11.连接查询的语法形式有两种:
_ANSI语法和_SQLServer语法。
12.如果子查询返回的是一个单值,则需要与_比较运算符配合才能构成查询条件。
13.如果子查询返回的是单列多个值,则需要与ANY、ALL、IN关键字配合构成查询条件。
二、选择题
1.在分组检索中,要去掉不满足条件的记录和不满足条件的分组,应当(D)。
A.使用WHERE子句B.使用HAVING子句
C.先使用HAVING子句,再使用WHERE子句
D.先使用WHERE子句,再使用HAVING子句
2.部分匹配查询中有关通配符“_”的正确描述是(D)。
A.“_”代表多个字符B.“_”可以代表零个或多个字符
C.“_”不能与“%”一同使用D.“_”代表一个字符
3.条件“年龄BETWEEN20AND35”表示年龄在20至35之间,且(A)。
A.包括20岁和35岁B.不包括20岁和35岁
C.包括20岁但不包括35岁D.包括35岁但不包括20岁
三、判断题
1.AND运算符和“BETWEEN…AND”运算符都能设置取值范围是连续区间的逻辑条件。
2.HAVING子句和WHERE子句作用形同。
3.在进行连接查询时,内连接只把满足条件的记录连接起来并显示出来。
4.在进行连接查询时,外连接只把不满足条件的记录显示出来。
5.表达式“>=ANY(3,5,7)”与“>=7”等价。
6.表达式“>=ALL(2,4,6)”与“>=2”等价。
7.子查询内不能再嵌套子查询。
解答:
1-5TFTFF6-7FF
四、计算题
已知有如下所示的四个关系表:
R、S、M、N。
R
S
M
N
A
B
C
D
E
C
D
E
B
C
D
1
2
3
3
1
3
5
8
2
3
9
4
5
6
6
2
9
8
0
5
6
0
7
8
9
3
6
9
2
7
3
6
7
8
(1)写出R与S在B(2)写出R与N在R.B=N.B并且R.C=N.C的条件下进行条件连接的结果。
(3)写出R、N进行自然连接的结果。
(4)写出R、M、N进行自然连接的结果。
(5)写出R与N进行全外连接、左外连接、右外连接的结果。
解答:
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.在KCB表中,查询第2学期开课的课程、授课教师。
2.在XSB表中,查询数字媒体学院女同学的信息。
3.在CJB表中,查询成绩在90分以上的学号、课程号和成绩。
4.在CJB表中,查询在90分以上和不及格学生的信息。
5.在XSB表中,查询不在2001年11、12月和2001年1、2月份出生的学生信息。
6.在XSB表中,查询陈姓且单名的学生信息。
7.在