数据库教程SQL Server课后习题及答案.docx
- 文档编号:12585064
- 上传时间:2023-04-20
- 格式:DOCX
- 页数:18
- 大小:68.80KB
数据库教程SQL Server课后习题及答案.docx
《数据库教程SQL Server课后习题及答案.docx》由会员分享,可在线阅读,更多相关《数据库教程SQL Server课后习题及答案.docx(18页珍藏版)》请在冰豆网上搜索。
数据库教程SQLServer课后习题及答案
习题1
3、简述数据库系统的组成。
答:
数据库系统一般由数据库、数据库管理系统(及其开发工具)、数据库管理员(DataBaseAdministrator,DBA)和用户组成。
4、试述数据库系统的三级模式结构。
这种结构的优点是什么?
答:
数据库系统的三级模式结构是指数据库系统是由外模式、模式和内模式三级构成,同时包含了二级映像,即外模式/模式映像、模式/内模式映像,如下图所示。
数据库系统的这种结构具有以下优点:
(1)保证数据独立性。
将外模式与模式分开,保证了数据的逻辑独立性;将内模式与模式分开,保证了数据的物理独立性。
(2)有利于数据共享,减少了数据冗余。
(3)有利于数据的安全性。
不同的用户在各自的外模式下根据要求操作数据,只能对限定的数据进行操作。
(4)简化了用户接口。
按照外模式编写应用程序或输入命令,而不需了解数据库全局逻辑结构和内部存储结构,方便用户系统。
5、什么是数据的物理独立性与逻辑独立性?
并说明其重要性。
答:
(1)数据的物理独立性是指数据的物理结构(包括存储结构、存取方式等)的改变,存储设备的更换,物理存储的更换,存取方式改变等都不影响数据库的逻辑结构,从而不致引起应用程序的变化。
(2)数据的逻辑独立性是指数据库总体逻辑结构的改变,如修改数据模式,增加新的数据类型、改变数据间联系等,不需要相应修改应用程序。
(3)数据的独立性使得数据库中数据独立于应用程序而不依赖于应用程序,也就是说数据的逻辑结构、存储结构与存取方式的改变不影响应用程序。
相应的,数据的独立性也使得应用程序的编制不再依赖于数据的物理和逻辑结构,提高了应用程序的可移植性与鲁棒性。
从理论上说,数据的独立性可以使数据的组织和应用程序的编制完全分离。
8、什么是数据模型?
答:
数据模型(DataModel)是一种抽象模型,是对现实世界数据特征的抽象。
9、什么是概念模型?
E-R模型的三要素是什么?
答:
概念模型是面向用户的模型,是现实世界到机器世界的一个中间层次。
其基本特征是按用户观点对信息进行建模。
概念模型是现实世界到信息世界的抽象,是数据库设计人员与用户进行交流的工具。
E-R模型的三要素为:
(1)实体(entity)
实体是指客观存在并可相互区别的事物。
实体可以是人、事或物,也可以是抽象的概念。
例如:
一件商品、一个客户、一份订单等都是实体。
(2)属性(attribute)
实体通常由若干特征,每个特征称为实体的一个属性。
属性刻画了实体在某方面的特性。
例如:
商品实体的属性可以有商品编号、商品类别、商品名称、生产商等。
(3)联系(relationship)
现实世界中事物之间的联系反映在E-R模型中就是实体间的联系。
例如,订单就是客户和商品之间的联系。
10、举例说明联系的三种类型。
答:
一对一联系(1:
1):
如果对于实体集A中的任一实体,在实体集B中至多有一个实体与之联系;反之亦然,则称实体集A与实体集B具有一对一联系,记为1:
1。
例如:
在公司中,一个部门只有一个经理,而一个经理只在一个部门任职,则部门与经理之间具有一对一联系。
一对多联系(1:
n):
如果对于实体集A中的任一实体,在实体集B中有n(n≥1)个实体与之联系;而对于实体集B中的每一个实体,实体集A中至多有一个实体与之联系,则称实体集A与实体集B具有一对多联系,记为1:
n。
例如:
在公司中,一个部门可有多个职工,而一个职工只在一个部门任职,则部门与职工之间具有一对多联系。
多对多联系(m:
n):
如果对于实体集A中的任一实体,在实体集B中有n(n≥1)个实体与之联系;而对于实体集B中的每一个实体,实体集A中有m(m≥1)个实体与之联系,则称实体集A与实体集B具有多对多联系,记为m:
n。
例如:
在商品订购中,一个客户可订购多种商品,而一种商品也可被多个客户订购,则客户与商品之间具有多对多联系。
习题2
1、解释以下术语:
关系、元组、属性、码、域、分量、关系模式。
答:
(1)关系:
一个关系(relation)指一张二维表。
(2)元组:
一个元组(tuple)指二维表中的一行。
(3)属性:
一个属性(attribute)二维表中的一列,表中每列均有名称,即属性名。
(4)码:
码(key)也称为键、关键字、关键码,指表中可惟一确定元组的属性或属性组合。
(5)域:
域(domain)指属性的取值范围。
(6)分量:
分量指元组中的一个属性值。
(7)关系模式:
关系模式是对关系“型”的描述,通常表示为:
关系名(属性1,…,属性n)。
2、解释关系数据库的“型”和“值”。
答:
关系数据库的型即关系数据库模式,是对关系数据库结构的描述。
关系数据库模式包括若干域的定义以及在这些域上定义的若干关系模式。
通常以关系数据库中包含的所有关系模式的集合来表示关系数据库模式。
关系数据库的值是由关系数据库模式中的各关系模式在某一时刻对应的关系的集合。
3、解释空值的含义。
答:
在关系元组中允许出现空值,空值表示信息的空缺,即未知的值或不存在值。
4、候选码应满足哪两个性质?
答:
候选码应满足惟一性和最小性两个性质:
(1)惟一性。
对关系R的任两个元组,其在属性集K上的值是不同的。
(2)最小性。
属性集K=(Ai,Aj,…,Ak)是最小集,即若删除K中的任一属性,K都不满足最小性。
8、什么是数据完整性?
如何实现数据完整性?
试述关系完整性规则。
答:
数据完整性是指数据库中的数据在逻辑上的正确性、有效性和相容性。
数据完整性是通过定义一系列完整性约束条件,由DBMS负责检查约束条件来实现的。
关系模型有三类完整性约束规则:
实体完整性、参照完整性和用户定义的完整性。
9、有如下的学生成绩数据库:
Student(学号,姓名,专业名,性别,出生时间,总学分,备注)。
Course(课程号,课程名,开课学期,学时,学分)。
关系模式为:
StuCourse(学号,课程号,成绩)。
试用关系代数表示如下查询:
(1)求专业名为“计算机科学与技术”的学生学号与姓名;
(2)求开课学期为“2”的课程号与课程名;
(3)求修读“计算机基础”的学生姓名。
答:
(1)
(2)
(3)
习题3
2、什么是基本表?
什么是视图?
二者有何关系与区别?
答:
关系数据库中的关系在SQL中称为基本表。
视图是从一个或多个基本表(或视图)导出的表。
基本表与视图都采用二维表格结构,都统称为表。
但基本表中的数据(元组)需要有数据库中的物理存储空间,而视图在数据库中只保存其定义信息,其数据并不占用存储空间,而是来源于定义该视图的基表。
视图上的数据操纵命令最终都将转化成相应基本表上的操作才能得以实现。
3、简述SQL语言的使用方式。
答:
SQL语言的使用方式包括:
交互式、嵌入式两类。
6、什么是索引?
定义索引的目的是什么?
答:
数据库的索引是一个数据表的辅助结构,它注明了表中各行数据所在的存储位置。
查询是数据库使用最频繁的操作,如何能更快地找到所需数据,是数据库的一项重要任务。
在数据库中建立索引是为了提高数据查询速度。
7、什么是聚簇索引?
什么是非聚集索引?
答:
聚簇索引(ClusteredIndex)对表的物理数据页中的数据按索引关键字进行排序,然后重新存储到磁盘上,即聚簇索引与数据是一体的。
非聚簇索引(NonclusteredIndex)具有完全独立于数据的索引结构。
8、视图有哪些优点?
答:
使用视图有下列优点:
①为用户集中数据,简化用户的数据查询和处理。
有时用户所需要的数据分散在多个表中,定义视图可将它们集中在一起,从而方便用户的数据查询和处理。
②屏蔽数据库的复杂性。
用户不必了解复杂的数据库中的表结构,并且数据库表的更改也不影响用户对数据库的使用。
③简化用户权限的管理。
只需授予用户使用视图的权限,而不必指定用户只能使用表的特定列,也增加了安全性。
④便于数据共享。
各用户不必都定义和存储自己所需的数据,可共享数据库的数据,这样同样的数据只需存储一次。
⑤可以重新组织数据以便输出到其它应用程序中。
9、设有学生成绩数据库XSCJ,其中包含关系如下:
(1)学生关系:
名为Student,描述学生信息。
关系模式为:
Student(学号,姓名,专业名,性别,出生时间,总学分,备注)。
(2)课程关系:
名为Course,描述课程信息。
关系模式为:
Course(课程号,课程名,开课学期,学时,学分)。
(3)学生选课关系:
名为StuCourse,描述学生选课及获得成绩信息。
关系模式为:
StuCourse(学号,课程号,成绩)。
试写出以下操作的SQL语句:
(1)查询专业名为“计算机科学与技术”的学生学号与姓名;
(2)查询开课学期为“2”的课程号与课程名;
(3)查询修读“计算机基础”的学生姓名;
(4)查询每个学生已选修课程门数和总平均成绩;
(5)查询所有课程的成绩都在80分以上的学生姓名、学号;
(6)删除在Student,StuCourse中所有学号以“2004”开头的元组;
(7)在学生数据库中建立“计算机科学与技术”专业的学生视图ComputerStu;
(8)在视图ComputerStu中查询姓“王”的学生情况。
答:
(1)SELECT学号,姓名
FROMStudent
WHERE专业名='计算机科学与技术'
(2)SELECT课程号,课程名
FROMCourse
WHERE开课学期='2'
(3)SELECT姓名
FROMStudenta,Courseb,StuCoursec
WHEREb.课程号=c.课程号ANDa.学号=c.学号ANDb.课程名='计算机基础'
(4)SELECT学号,COUNT(*),AVG(成绩)
FROMStuCourse
GROUPBY学号
(5)SELECT学号,姓名
FROMStudent
WHERE学号IN
(SELECT学号
FROMStuCourse
GROUPBY学号
HAVINGMIN(成绩)>=80)
(6)DELETEFROMStuCourse
WHERES#LIKE'2004%'
DELETEFROMStudent
WHERES#LIKE'2004%'
(7)CREATEVIEWComputerStuAS
SELECT*
FROMStudent
WHERE专业名='计算机'
(8)SELECT*
FROMComputerStu
WHERE姓名LIKE'王%'
习题4
1、数据库设计的任务是什么?
答:
数据库设计的基本任务是:
根据一个单位的信息需求,处理需求和数据库的支撑环境(包括数据库管理系统、操作系统和硬件),设计出数据库模式(包括外模式、逻辑(概念)模式和内模式)以及典型的应用程序。
2、数据库应用系统设计分哪几个阶段?
答:
数据库应用系统设计分六个阶段:
系统规划及需求分析阶段,概念设计阶段,逻辑设计阶段,数据库物理设计阶段,应用程序编码、调试、试运行阶段和数据库运行维护阶段。
4、如何把E-R图转换成关系模式?
答:
E-R图转换成关系模式主要涉及两方面内容:
(1)实体型转换成关系模式:
关系模式中的属性和键码均与实体集中的属性和键码一一对应。
(2)联系转换成关系模式,构成连接关系。
若联系本身有属性,则成为连接关系的属性。
关键是连接关系的键:
若联系为1,1,则每个实体型的键码均为其键;若联系为1:
n,则n端实体型的键码为其键;若联系为m:
n.则各实体型键组合为其键。
5、为一个图书馆设计一个数据库,用户要求数据库中,对每个借阅者保存读者的读者号、姓名、性别、年龄、单位、电话号码、电子邮件,对每本书保存书号、书名、作者、出版社,对每本被借出的书保存读者号、借出日期、还书日期。
要求:
设计出E-R模型,再将其转换为关系模型。
答:
(1)E-R模型如下:
(2)图书馆关系模型:
读者(读者号,姓名,性别,年龄,单位,电话,电子邮件)
图书(书号,书名,作者,单价,出版社)
借阅(读者号,书号,借阅时间,归还时间)
习题6
1、试述下列术语的含义:
函数依赖、码、主属性、多值依赖、2NF、3NF、BCNF、4NF、关系规范化。
答:
●函数依赖:
设R(U)是属性集U上的关系模式,X和Y是U的子集,r是R(U)中任意给定的关系实例。
若对于r中的任意两个元组s和t,当s[X]=t[X]时,就有s[Y]=t[Y],则称属性子集X函数决定属性子集Y,或称Y函数依赖于X。
●码:
如果关系模式R的一个或多个属性A1,A2,…,An的组合满足如下条件,则该组合为关系模式R的码:
(1)这些属性函数决定该关系模式的所有属性,即
(2)A1,A2,…,An的任何真子集都不能函数决定R的所有属性。
●主属性:
包含在任何一个候选码中的属性,称为主属性(Primeattribute)
●多值依赖:
设R(U)是属性集U上的一个关系模式,X、Y、Z是U的子集,且Z=U-X-Y。
对于R的任何关系r,如果存在两个元组s、t,则必然存在两个元组u、v,使得:
u[X]=v[X],s[X]=t[X],
u[Y]=t[Y],且u[Z]=s[Z],
v[Y]=s[Y],且v[Z]=t[Z],
即交换元组s、t在属性组Y上的值,得到两个新元组u、v必在关系r中,则称Y多值依赖(MultivaluedDependency)于X。
●2NF:
对于关系模式R,若R∈1NF,且每一个非主属性完全函数依赖于码,则R是第二范式的,记作:
R∈2NF。
●3NF:
在关系模式R中,若不存在这样的码X、属性组Y和非主属性Z(Z不包含于Y),使得X→Y,Y→Z(这里X→Y)成立,则称R是第三范式的,记作:
R∈3NF。
●BCNF:
设关系模式R∈1NF,若
,
时,X必含有码,则R是BC范式的,记作:
R∈BCNF。
●4NF:
设FD、MVD分别为定义在关系模式R上的函数依赖集和多值依赖集,D=FD∪MVD,若R∈1NF,且所有非平凡的多值依赖X→→Y,其决定因素X都含有码,则称R是第四范式的,记作:
R∈4NF。
●关系规范化指通过关系模式分解将一个低级的范式分解为多个高级范式的过程。
2、什么是数据的冗余与数据的不一致性?
答:
数据冗余(dataredundancy)是指同一数据在一个或多个数据文件中重复存储。
数据冗余不仅会占用大量系统存储资源,造成不必要的开销,而且更严重的是会带来数据库操作的异常,对数据库性能发挥造成不好的影响。
数据库中同一个数据在不同的地方出现了不同的值被称为数据的不一致性。
3、函数依赖有哪几种类型?
答:
函数依赖有三种类型:
平凡与非平凡函数依赖、部分与完全函数依赖、传递函数依赖。
4、举例说明如一个关系模式仅为1NF的,存在的异常并分析原因。
答:
例如学生选课关系模式:
StuCourse(学号,姓名,专业,专业负责人,课程号,课程名,学分,成绩),仅为1NF的,存在数据冗余和更新异常。
异常产生的原因在于非主属性对码不是完全函数依赖。
5、试证明若R(U)∈BCNF,则必有R(U)∈3NF。
证明:
用反证法。
设R(U)∈BCNF,但R(U)
3NF,则有如下两种可能的情况:
(1)假设R(U)中存在非主属性A对码K为部分函数依赖,即:
K
A(A
K)
由部分依赖的定义可知:
必存在K的真子集K’,使K’→A(A
K’)。
由R(U)∈BCNF及BCNF的定义可知:
K’中必包含码。
这说明码K中含有另一个码K’,这与码的定义矛盾。
所以此假设不成立,即R(U)中不存在非主属性A对码K为部分函数依赖。
(2)假设R(U)中存在非主属性A传递依赖于码K,即存在一个属性集B,满足:
K→B,B
K,B
K,B→A
由B→A及R(U)∈BCNF可知:
B中必含有码(设为K’)。
由码的定义可得:
K’→U,因为B
K’,K
U,故B→K。
这与B
K相矛盾。
由上可知,假设不成立,故R(U)∈3NF。
6、全码的关系是否必然属于3NF?
为什么?
是否必然属于BCNF?
为什么?
答:
全码的关系必然属于3NF。
因为3NF要求关系范式满足1NF,并且不存在非主属性对码的部分和传递函数依赖。
全码的关系不存在非主属性,故它是3NF的。
它也必然属于BCNF,因为BC范式要求每个决定因子都包含码,而全码的关系只有一个决定因子,即关系模式所包含的所有属性。
7、试问下列关系模式最高属于第几范式,并说明理由:
(1)R(A,B,C,D),F:
{BD,ABC}
(2)R(A,B,C),F:
{AB,BA,AC}
(3)R(A,B,C,D),F:
{AC,DB}
(4)R(A,B,C,D),F:
{AC,CDB}
答:
(1)属于第一范式。
关键字{A,B},非主属性{D}不完全依赖于关键字。
(2)BCNF。
因为它的每个函数依赖的决定因素都是关键字。
(3)属于第一范式。
关键字{A,D},非主属性{C,B}不完全依赖于关键字。
(4)属于第一范式。
关键字{A,D},非主属性{B}不完全依赖于关键字。
8、建立一个关于系、学生、班级、学会等信息的关系数据库。
描述学生的属性有:
学号、姓名、系名、班号
描述班级的属性有:
班号、专业名、系名、人数、入校年份
描述系的属性有:
系名、系办公室地点、职工人数、学生人数
描述学会的属性有:
学会名、成立年份、地点、人数
有关语义如下:
一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。
每个学生可参加若干学会,每个学会有若干学生。
学生参加某学会有一个入会年份。
试回答下列问题:
(1)给出关系模式,写出每个关系模式的函数依赖集。
(2)指出每个关系模式的候选码。
(3)每个关系模式最高已经达到第几范式?
为什么?
(4)如果关系模式不属于3NF,将其分解成3NF模式集。
答:
(1)关系模式有:
S(S#,Sname,Sdept,Sclass)
函数依赖:
S#àSname;S#àSdept,S#àSclass,SclassàSdept
C(C#,Sspec,Sdept,num,Date)
函数依赖:
C#àSspec,C#àSdept,C3ànum,C#àDate,
(Sspec,Date)àC#,SspecàSdept
D(D#,DName,Dnum,num)
函数依赖:
D#àDName,D#àDnum,D#ànum
P(P#,Year,Des,Pnum)
函数依赖:
P#àYear,P#àDes,P#àPnum
Ent(S#,P#,SPYear)//学生入会
函数依赖:
(S#,P#)àSPYear
(2)每个模式的候选码分别是:
S#、C#、D#、P#、(S#,P#)
(3)每个模式达到的最高范式:
S–2NF,存在非主属性Sdept对候选码S#的传递函数依赖;
C—2NF,存在非主属性Sdept对候选码C#的传递函数依赖;
D—3NF,不存在非主属性对候选码的部分获传递函数依赖;
P—3NF,不存在非主属性对候选码的部分获传递函数依赖;
Ent—3NF,不存在非主属性对候选码的部分获传递函数依赖。
(答D、P、Ent为BCNF也正确)
(4)对S和C模式进行分解:
S1(S#,Sname,Sdept)S2(Sclass,Sdept)
C1(C#,Sspec,num,Date)C2(Sspec,Sdept)
习题7
1、两个主要的数据库访问通用接口是什么?
答:
ODBC(OpenDataBaseConnectivity,开放数据库连接)和JDBC(JavaDataBaseConnectivity,Java数据库连接),它们提供对数据库访问的调用级接口。
2、T-SQL函数分为哪两类?
答:
内置函数、用户自定义函数。
3、T-SQL内置函数有哪几类?
什么是确定型函数?
什么是非确定型函数?
答:
T-SQL内置函数包括三类:
行集(Rowset)函数、聚合(Aggregate)函数和标量(Scalar)函数。
确定型函数是指每次使用特定的输入值集调用该函数时,总是返回相同的结果。
而非确定型函数是指每次使用特定的输入值集调用时,可能返回不同的结果。
4、T-SQL中用户自定义函数的创建、修改、删除语句分别是什么?
答:
创建用户定义函数使用CREATEFUNCTION语句,利用ALTERFUNCTION语句对用户定义函数进行修改,用DROPFUNCTION语句删除用户定义函数。
6、什么是存储过程?
存储过程有哪些优点?
答:
存储过程是存储在服务器上的一组预先定义的SQL程序,它是一种封装重复任务的方法。
存储过程可以被反复调用,便于共享及维护。
使用存储过程的优点主要有:
①存储过程在服务器端运行,执行效率高。
②存储过程执行一次后,其执行规划就驻留在高速缓冲存储器,在以后的操作中,只需从高速缓冲存储器中调用已编译好的二进制代码执行,提高了系统性能。
③确保数据库的安全。
使用存储过程可以完成所有数据库操作,并可通过编程方式控制上述操作对数据库信息访问的权限。
④自动完成需要预先执行的任务。
存储过程可以在系统启动时自动执行,而不必在系统启动后再进行手工操作,大大方便了用户的使用,可以自动完成一些需要预先执行的任务。
7、SQLServer中定义和执行存储过程的语句分别是什么?
答:
定义存储过程的语句是CREATEPROCEDURE,执行存储过程的命令是EXECUTE。
8、什么是触发器?
触发器有哪些特点?
答:
触发器是由一组SQL语句构成的,触发器是自动执行的,当有操作影响到触发器保护的数据时,触发器自动执行。
触发器的主要特点有:
①触发器自动执行。
在对表中数据进行了修改后立即被激活自动执行。
②触发器能够对数据库中的相关表进行级联更改。
触发器是基于表创建的,但可以针对多个表进行操作,实现对相关表的级联更改。
③触发器可实现比CHECK约束更为复杂的数据完整性约束。
CHECK约束不允许引用其他表中的列来完成检查工作,而触发器可以。
④同一个表中可使用多个触发器,即使同一类型的触发器,也可使用多个。
习题9
1、什么是数据库保护?
它有哪些内容?
答:
从数据库管理系统角度出发来保护数据库系统中数据,使之不至于受到非法访问或破坏,这称为数据库保护。
数据库保护的内容有:
安全性保护,完整性保护,并发控制和故障恢复。
2、什么是数据库的安全性?
常用的保护措施有哪些?
答:
数据库的安全性保护是指防止非法使用数据库。
包括防止非法用户使用数据库和合法用户非法使用数据库。
常用的保护措施有:
(1)使用权的鉴别。
常用的鉴别方法有口令和函数计算法两种。
(2)使用范围限制。
一般可用外模式的方法予以限制,用户可以在外模式定义范围内访问数据,而外模式没有定义的那些数据库中的数据,用户无法使用。
在关系数据库中则可用视图方法予以限制。
(3)访问控制权鉴别。
进一步限制每一个用户在每一个数据对象上可以执行的操作的类型。
以关系数据库系统为例,操作对象有:
关系,元组,属性,可以使用的操作类型有:
查询,插入,修改,删除以及它们的一些组合情况。
(4)安全审计。
审计用于跟踪和记录所选用户
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库教程SQL Server课后习题及答案 数据库 教程 SQL Server 课后 习题 答案