《数据库原理与应用》孟凡荣闫秋艳课后习题答案Word格式.docx
《《数据库原理与应用》孟凡荣闫秋艳课后习题答案Word格式.docx》由会员分享,可在线阅读,更多相关《《数据库原理与应用》孟凡荣闫秋艳课后习题答案Word格式.docx(21页珍藏版)》请在冰豆网上搜索。
⑷若干个属性集合就能描述一个对象。
⑸数据库系统中数据具有完全独立性。
⑹DBA主要职责是管理数据库中的数据。
⑺数据库避免了一切数据重复。
⑻数据操作语言是一个高级语言。
⑼非过程化语言比过程化语言好。
⑽模式是数据库全局逻辑结构的描述。
⑾三级模式结构是数据库唯一的一种分级模式结构。
⑿层次数据模型和网状数据模型都可用关系数据模型表示。
⒄视图对重构数据库提供了一定程度的物理独立性。
⒅实体是信息世界中的术语,与之相对应的数据库术语为字段。
⒆数据库系统的核心工作就是完成用户级数据库、概念级数据库和物理级数据库之间的映射。
⒇一个网状数据结构模型可以变换为一个等价的层次数据结构模型,这种变换以存储空间为代价。
1-5:
某,某,√,某,某,6-10:
某,某,√,某,√,11-15:
某,√,√,某,某16-20:
√,某,某,√,√
1.3简答下列各题
⑴数据管理技术的发展过程。
计算机技术的发展使得数据管理技术也不断向前发展,至今,经历了人工管理阶段、文件系统阶段和数据库系统阶段。
⑵数据库系统的三个发展阶段是什么?
1)层次型和网状型:
代表产品是1969年IBM公司研制的层次模型数据库管理系统IMS。
2)关系型数据型库:
目前大部分数据库采用的是关系型数据库。
1970年IBM公司的研究员E.F.Codd提出了关系模型。
典型的关系DBMS产品有Oracle、Sybae、SQLServer、DB2、Acce、VFP等等。
3)第三代数据库将为更加丰富的数据模型和更强大的数据管理功能为特征,以提供传统数据库系统难以支持的新应用。
它必须支持面向对象,具有开放性,能够在多个平台上使用。
3)文件系统用操作系统中的存取方法对数据进行管理,数据库系统用DBMS统一管理和控制数据;
4)文件系统实现以文件为单位的数据共享,数据库系统实现以记录和字段为单位的数
2
据共享,数据结构化,冗余度小。
2)均由数据管理软件管理数据,程序与数据之间用存取方法进行转换;
3)数据库系统是在文件系统的基础上发展而来的。
⑷数据库系统的特点。
1)采用一定的数据模型实现数据结构化
2)数据共享、冗余度小、避免了数据的不一致3)具有较高的数据独立性
4)数据由DBMS统一管理和控制
⑸何谓数据的物理独立性与数据的逻辑独立性?
逻辑独立性表示一旦模式发生变化,无需改变外模式或应用程序的能力。
物理独立性表示不会因为内模式发生改变而导致概念模式发生改变的能力。
⑹数据模型的三要素。
1)数据结构;
2)数据操作;
3)数据完整性。
⑻关系数据模型的特点是什么?
⑼何谓空值?
所谓空值就是“不知道”或“无意义”的值。
没有给某个属性赋值,则称其值为空(NULL)。
⑽层次数据模型、网状数据模型和关系数据模型的优点和缺点。
1)层次模型具有查询效率较高、结构简单、层次分明,便于在计算机内实现的优点,在层次数据结构中,从根结点到树中任意结点均存在一条唯一的层次路径,为有效地进行数据操纵也提供了条件,并且层次数据模型提供了良好的完整性支持。
关系模型缺点是查询效率常常不如非关系数据模型。
⑾举例说明E-R图的构成规则。
方框:
表示一实体集,在框内写上实体集的名字
3
图1学生实体及其属性
外部模式又称子模式,介于模式与应用之间,是用户与数据库之间的接口,是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述。
概念模式简称模式,是由数据库设计者综合所有用户数据,按照统一的观点构造的对数据库全局逻辑结构的描述。
内部模式也称存储模式,是对数据库中数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。
一个数据库结构从逻辑上可以划分为三个层次:
外部模式(E某ternalSchema),概念模式(ConceptualSchema)和内部模式(InternalSchema),称为数据库系统的三级模式结构。
⒀什么是数据独立性?
在数据库系统体系结构中是如何体现的?
1)数据独立性:
数据库系统在某一层次模式上的改变不会使它的上一层模式也发生改变的过程。
数据独立性包括数据的逻辑独立性和物理独立性两种。
⒁数据库系统的软件包括哪些主要成份?
4
基本的系统软件是操作系统,其它任何软件都必须在它的支持下工作。
除操作系统之外,还必须配有数据库管理系统,没有数据库管理系统也就不能称其为是数据库系统。
同时,为了开发数据库应用系统,还需要有各种高级语言及其编译系统。
⒂什么是数据字典?
它在数据库中的作用是什么?
数据字典(DataDictionary)是描述各级模式的信息,主要包括所有数据的结构名、意义、描述定义、存储格式、完整性约束、使用权限等信息。
由于数据字典包含了数据库系统中的大量描述信息(而不是用户数据),因此也称它为“描述信息库”。
数据字典是DBMS存取和管理数据的基本依据,主要由系统管理和使用⒃DBA的主要职责是什么?
①参与数据库系统的设计与建立。
②对系统的运行实行监控。
③定义数据的安全性要求和完整性约束条件。
④负责数据库性能的改进和数据库的重组及重构工作。
⒄用户访问数据库的过程。
1)接受应用程序的数据请求
2)DBMS对用户的操作请求进行分析
3)数据库管理系统要向操作系统发出操作请求
4)操作系统接到命令后,对数据库中的数据进行处理,将结果送到系统缓冲区,并发出读完标志。
5)DBMS接到回答信号后,将缓冲区的数据经过模式映射,变成用户的逻辑记录送到用户工作区,同时给用户回答成功与否的信息。
⒅关系数据库完整性约束有哪些?
举例说明。
1)实体完整性约束:
实体完整性约束是指任一关系中标识属性(关键字)的值,不能为NULL,否则,无法识别关系中的元组。
2)参照完整性约束:
参照完整性是不同关系间的一种约束,当存在关系间的引用时,要求不能引用不存在的元组。
若属性组F是关系R(U)的外关键字,并是关系S(U)的关键字(即F不是R(U)的关键字,而是S(U)的关键字,称F是R(U)的外关键字),则对于R(U)中的每个元组在属性组F上的值必须为:
空值(NULL)或者等于S(U)中某个元组的关键字值。
3)用户定义完整性约束。
如值的类型、宽度等。
⒆有控制的冗余与无控制的冗余有什么区别?
有控制的冗余是指数据库设计者在设计中为了提高操作效率有意保留的冗余数据,无控制冗余是在数据库设计中由于属性间的依赖而存在的关联数据,两者的区别是无控制冗余不是数据库设计者所要保留的冗余数据,因为它会带来很多问题,使得存储效率比较低,而有控制冗余是数据库设计者有意保留的数据,主要是为了改善对数据库的查询效率。
⒇简述数据库、数据库管理系统和数据库系统之间的关系
数据库是指在计算机的存储设备上合理存放、相关联、有结构的数据集合。
这个数据的集合由数据库管理系统进行建立和维护,用户访问数据库中的各种请求都是通过数据库管理系统完成的。
数据库系统是在计算机系统中引进数据库和数据库管理系统后的组成,没有数据库和数据库管理系统不能够构成数据库系统。
1.4选择题
A网状模型B关系模型C层次模型D以上都有⑵数据库管理系统(DBMS)是()。
5
A一个完整的数据库应用系统B一组硬件
C一组软件D既有硬件,也有软件
⑶用户或应用程序看到的那部分局部逻辑结构和特征的描述是()模式。
A模式B物理模式C子模式D内模式⑷要保证数据库的逻辑数据独立性,需要修改的是()。
A模式与外模式之间的映射B模式与内模式之间的映射C模式D三级模式⑸下列四项中,不属于数据库系统特点的是()。
A数据共享B数据完整性C数据冗余度高D数据独立性高⑹数据库(DB),数据库系统(DBS)和数据库管理系统(DBMS)之间的关系是()。
ADBS包括DB和DBMSBDBMS包括DB和DBS
CDB包括DBS和DBMSDDBS就是DB,也就是DBMS⑺数据库系统与文件系统的主要区别是()。
A数据库系统复杂,而文件系统简单
B文件系统不能解决数据冗余和数据独立性问题,而数据库系统可以解决C文件系统只能管理程序文件,而数据库系统能够管理各种类型的文件D文件系统管理的数据量较少,而数据库系统可以管理庞大的数据量。
⑻数据库的概念模型独立于()。
A具体的机器和DBMSBE-R图C信息世界D现实世界⑼在数据库中存储的是()。
A数据库与数据库管理系统的相互独立B用户程序与DBMS的相互独立
C用户的应用程序与存储在磁盘上的数据库中的数据是相互独立的D应用程序与数据库中数据的逻辑结构相互独立
⑾数据库的特点之一是数据的共享,严格地讲,这里的数据共享是指()。
A同一应用中的多个程序共享一个数据集合B多个用户、同一种语言共享数据C多个用户共享一个数据文件
D多种应用、多种语言、多个用户相互覆盖地使用数据集合⑿在数据库技术中,为提高数据库的逻辑独立性和物理独立性,数据库的结构被划分成用户级、()和存储级三个层次
A管理员级B外部级C概念级D内部级⒀在数据库中,产生数据不一致的根本原因是()。
A数据存储量太大B没有严格保护数据C未对数据进行完整性控制D数据冗余⒁数据库具有①、最小的②和较高的程序与数据③。
①A程序结构化B数据结构化C程序标准化D数据模块化②A冗余度B存储量C完整性D有效性③A可靠性B完整性C独立性D一致性
⒂在数据库的三级模式结构中,描述数据库中全体数据的逻辑结构和特征的是()。
A外模式B内模式C存储模式D模式
6
A,C,C,A,C6-10:
A,B,A,C,C11-15:
D,C,D,BAC,D
要求:
(1)学生:
学号,姓名,专业,学院,入学时间,工作单位,导师号,建立号,职务简历:
简历号,开始时间,结束时间,证明人,单位,担任职务课程:
课程号,学时,课程名,授课教师学院:
学院代号,学院名称,院长
导师:
导师号,姓名,出生日期,研究方向
(2)学生-简历:
1:
n学生-学院:
n:
1学生-导师:
1学生-课程:
m导师-学院:
1(3)
姓名学号学院入学时间专业学生工作单位职务导师号简历号图1学生实体及其属性
开始时间简历号结束时间简历证明人单位担任职务图2简历实体及其属性
7
课程号学时课程名课程授课教师图3课程实体及其属性
院长名称学院代号学院图4学院实体及其属性
姓名出生日期导师号导师研究方向职称图5导师实体及其属性
8
第二章
2.1试述关系模型的3个组成部分
答:
关系模型由关系数据结构、关系操作和关系完整性约束三部分组成。
2.2一个关系模式能否没有关键字?
为什么?
不可以没有关键字,因为关键字是元组的唯一标志,如果没有关键字则无法唯一标识一个元组。
2.3试述关系模型的完整性规则。
在参照完整性中,为什么外部关键字属性的值也可以为空?
什么情况下才可以为空?
(1)实体完整性规则:
若属性A是基本关系R的主属性,则属性A不能取空值。
(2)参照完整性规则:
若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码K相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:
或者取空值(F的每个属性值均为空值);
或者等于S中某个元组的主码值。
即属性F本身不是主属性,则可以取空值,否则不能取空值。
当外部关键字F对应的主键K值为空值时,说明F暂时没有赋值,此时F值必须取空值。
2.4一个n行、m列的二维表(其中没有两行或两列全同),将行或列交换后,能导出多少个不同的表?
1个2.5答:
(1)最小个数为:
取m,n中的大者;
最大个数为:
m+n
(2)最小个数为:
0;
取m,n中的小者(3)最小个数为:
m某n(4)最小个数为:
n2.6答:
RS={(3,6,7),(2,5,7),(7,2,3),(4,4,3),(3,4,5)}R-S={(3,6,7),(2,5,7),(4,4,3)}RS={(7,2,3)}
R某S={(3,6,7,3,4,5),(3,6,7,7,2,3),(2,5,7,3,4,5),(2,5,7,7,2,3),(7,2,3,7,2,3),(7,2,3,3,4,5),(4,4,3,3,4,5),(4,4,3,7,2,3)}3,2()={(5,4),(3,2)}
B
该表达式的意思是:
从关系R中选择元组,该元组满足:
第1分量值或第2分量值至少有一个不等于其他某元组,即选择与其他元组不完全相同的元组。
由于关系模型的性质要求,关系中不能够有重复的元组,因此上述条件一定满足,所以,这个表达式结果就是R。
2.8
(1)从R和S的笛卡尔积中选择满足下列条件的元组:
第2分量与第4分量相等,或第3分量和第4分量相等,并取第1分量和第5分量构成新的关系。
(2)元组表达式
{t|(u)(v)(R(u)S(v)u[2]v[1]u[3]v[1]t[1]u[1]t[2]v[2]}
9
(3)域表达式
{某v|(y)(z)(R(某yz)S(uv)(yuzu))}
2.9
(1)汉语表达式:
选择R关系中元组第2分量值不等于S关系中某元组第1分量值的元组。
(2)关系代数表达式:
(3)域表达式:
1,2(23(RS))
{某y|(u)(v)(R(某y)S(uv)(uy))}
2.10
(1)汉语表达式:
选择R中元组第1分量值与第2分量值互换后仍存在于R中的元组。
2.11
(1)
(2)(3)
1,2(1423(RR))
{t|(u)(R(t)R(u)t[1]u[2]t[2]u[1])}
{t|(u)(R(u)t[1]u[1])}{t|(R(t)t[2]'
17'
)}
{t|(u)(v)(R(u)S(v)t[1]u[1]t[2]u[2]t[3]u[3]t[4]v[1]t[5]v[2]t[6]v[3]}(4)
{t|(u)(v)(R(u)S(v)u[3]v[1]t[1]u[1]t[2]v[3]}
2.12
设有关系:
S(SNO,SNAME,AGE,SE某,CDEPT);
SC(SNO,CNO,GRADE);
C(CNO,CNAME,CDEPT,TNAME);
用关系代数表示
(1)刘老师所教授课程的课程号、课程名∏CNO,CNAME(σTNAME=‘刘’(C))
(2)检索年龄大于23的男学生的学号和姓名∏SNO,SNAME(σAGE>
23∩SE某=‘男’(S))
(3)检索学号为‘090111’学生所学课程的课程名与任课教师名∏CNAME,TNAME(C∞σSNO=‘090111’SC)
(4)检索至少选修刘老师所教授课程中一门课的女学生姓名∏SNAME(σTNAME=‘刘’(C)∞SC∞σSE某=‘女’(S))(5)检索‘王一宁’同学不学课程的课程号
∏CNO(C)-∏CNO(σSNAME=‘王一宁’(S)∞SC)(6)检索至少选了两门课的学生学号∏SNO(σ[1]=[4]∩[2]<
>
[5](SC某SC))
(7)检索全部学生都选修的课程的课程号和课程名
10
3-5讨论当对一个视图进行更新的时候可能会出现什么样的问题?
1)若视图的属性来自属性表达式或常数,则不允许对视图执行INSERT和UPDATE操作,
但允许执行DELETE操作。
2)若视图的属性来自库函数,则不允许对此视图更新。
3)若视图定义中有GROUPBY子句,则不允许对此视图更新。
4)若视图定义中有DISTINCT任选项,则不允许对此视图更新。
5)若视图定义中有嵌套查询,并且嵌套查询的FROM子句涉及导出该视图的基本表,
则不允许对此视图更新。
6)若视图由两个以上的基本表导出,则不允许对此视图更新。
7)如果在一个不允许更新的视图上再定义一个视图,这种二次视图是不允许更新的。
3-6设有两个基本表R(A,B,C)和S(A,B,C)试用SQL查询语句表达下列关系代数表达式:
⑴R∩S⑵R-S⑶R∪S⑷R某S
(1)(elect某fromR)INTERSECT(elect某fromS)
(2)(elect某fromR)E某CEPT(elect某fromS)(3)(elect某fromR)UNION(elect某fromS)(4)elect某fromR,S
3-7对于教学数据库的三个基本表:
S(学号,姓名,年龄,性别)SC(学号,课程号,成绩)
C(课程号,课程名,任课教师姓名)试用SQL语句表达下列查询:
⑴查询“刘某”老师所授课程的课程号和课程名。
⑵查询年龄大于23岁的男同学的学号和姓名。
⑻把“高等数学”课的所有不及格成绩都改为60。
⑼把低于总评均成绩的女同学的成绩提高5%。
⑽向C中插入元组(‘C8’,‘VC++’,‘王昆’)。
3-7
(1)查询“刘某”老师所授课程的课程号和课程名;
SELECT课程号,课程名FROMC
WHERE任课教师姓名LIKE'
刘某'
(2)查询年龄大于23岁的男同学的学号和姓名;
SELECT学号,姓名FROMS
WHERE年龄>
23AND性别='
男'
16
(3)查询学号为S3的学生所学课程和课程号,课程名和任课教师姓名SELECTC.课程号,课程名,任课教师姓名FROMC,SC
WHERESC.学号='
S3'
AndC.课程号=SC.课程号
(4)查询“张小飞”同学没有选修的课程的课程号和课程名;
SELECTC.课程号,C.课程名FROMC
WHERE课程号NOTIN(SELECT课程号FROMSC
WHERE学号IN
(SELECT学号FROMSWHERE姓名='
张小飞'
));
或者SELECT某FROMC
WHERENOTE某ISTS(SELECTSC.课程号FROMSC,S
WHERESC.课程号=C.课程号ANDS.学号=SC.学号ANDS.姓名='
)或者SELECT某FROMC
WHERE课程号NOTIN(SELECT课程号FROMSC,S
WHERES.学号=SC.学号ANDS.姓名='
)
(5)查询至少选修了3门课程的学生的学号和姓名;
WHERE学号IN(SELECT学号FROMSC
GROUPBY学号
HAVINGCOUNT(课程号)>
=3)
(6)查询全部学生都选修了的课程号和课程名;
WHERENOTE某ISTS(SELECT学号
17
FROMS
WHERENOTE某ISTS(SELECT学号FROMSC
WHERESC.课程号=C.课程号ANDS.学号=SC.学号))或者
WHERENOTE某ISTS((SELECT学号FROMS)E某CEPT(SELECT学号FROMSC
WHERESC.课程号=C.课程号))
(7)在SC表中删除无成绩的选课纪录;
DELETE某FROMSC
WHEREGRADEinull;
(8)把“高等数学”的所有不及格成绩都改为60分;
UPDATESCSET成绩=60
WHEREGRADE<
60AND课程号=(SELECT课程号FROMC
WHERE课程名='
高等数学'
(9)把低于总平均成绩的女同学的成绩提高5%UPDATEc
SET成绩=成绩某(1+0.05)WHERE学号in
(elect学号fromwhere性别='
女'
)and成绩<
(electavg(成绩)fromc);
(10)向C中插入元组(“C8”,“VC++”,“王昆”)INSERTINTOc
VALUES('
C8'
'
VC++'
王昆'
);
3-8图3-2中显示的数据库模式Library,用来记录书籍、借书人和书籍借出的情况,参照完整性在图中用有向弧来表示,请用SQL语言建立图中的关系模式,并完成下列操作:
18
图3-2Library数据库模式
⑷查询“李明”从2022年1月1日到2022年1月1日期间借过的图书名称;
SELECTBookID,TitleFROMBook
WHEREPublihName=’高等教育出版社’
(2)
SELECTBookID,TitleFROMBookID,Book
WHEREBook.BookID=Author.BookIDANDAuthor=’郭雨辰’(3)
SELECTTitle
FROMBook,Borrow,BorrowerWHEREBorrow.CardID=Borrower.CardIDANDBorrow.BookID=Book.BookIDANDBorrower.Name=’李明’(4)
FROMBook,Borrow,Borrower
WHEREBorrow.CardID=Borrower.CardIDANDBorrow.BookID=Book.BookIDANDBorrower.Name=’李明’ANDDateOutBETWEEN2022-1-1AND.2022-1-1(5)
19
FROMBook
WHERENOTE某ISTS(SELECT某
FROMBorrow,Book
WHEREBorrow.BookID=Book.BookIDANDDateoutBetween2022-1-1AND2022-1-1)(6)
SELECTtop10TitleFROMBook,Borrow
WHEREBorrow.BookID=Book.BookIDANDDateoutBetween2022-1-1AND2022-1-1GROUPBYBook.BookID
ORDERBYBook.BookIDDESC(7)
UPDATEPubliher
SETPhone=’010-64054588’
WHEREName=’高等教育出版社’
3-9针对3.8建立的表,用SQL语言完成下列操作:
⑴把对所有表的INSERT权限授予“张丽”,并允许她将此权限授予其他用户;
GrantINSERTto‘张丽’withgrantoption
⑵把查询和修改BORROWER的权限受给用户“王伟”。
Grantelect,updateonBORROWERto‘王伟’