数据库系统概论课后习题及参考答案.docx
- 文档编号:10314307
- 上传时间:2023-02-10
- 格式:DOCX
- 页数:48
- 大小:42.61KB
数据库系统概论课后习题及参考答案.docx
《数据库系统概论课后习题及参考答案.docx》由会员分享,可在线阅读,更多相关《数据库系统概论课后习题及参考答案.docx(48页珍藏版)》请在冰豆网上搜索。
数据库系统概论课后习题及参考答案
课后作业习题
《数据库系统概论》课程部分习题及参考答案
第一章绪论(教材41页)
1.试述数据、数据库、数据库系统、数据库管理系统的概念。
数据:
描述事物的符号记录称为数据。
数据的种类有文字、图形、图象、声音、正文等等。
数据与其语义是不可分的。
数据库:
数据库是长期储存在计算机内、有组织的、可共享的数据集合。
数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
数据库系统:
数据库系统(DBS)是指在计算机系统中引入数据库后的系统构成。
数据库系统由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。
数据库管理系统:
数据库管理系统(DBMS)是位于用户与操作系统之间的一层数据管理软件。
用于科学地组织和存储数据、高效地获取和维护数据。
DBMS主要功能包括数据定义功能、数据操纵功能、数据库的运行管理功能、数据库的建立和维护功能。
2.使用数据库系统有什么好处?
使用数据库系统的好处是由数据库管理系统的特点或优点决定的。
使用数据库系统的好处很多,例如可以大大提高应用开发的效率,方便用户的使用,减轻数据库系统管理人员维护的负担等。
为什么有这些好处,可以结合第5题来回答。
使用数据库系统可以大大提高应用开发的效率。
因为在数据库系统中应用程序不必考虑数据的定义、存储和数据存取的具体路径,这些工作都由DBMS来完成。
此外,当应用逻辑改变,数据的逻辑结构需要改变时,由于数据库系统提供了数据与程序之间的独立性。
数据逻辑结构的改变是DBA的责任,开发人员不必修改应用程序,或者只需要修改很少的应用程序。
从而既简化了应用程序的编制,又大大减少了应用程序的维护和修改。
使用数据库系统可以减轻数据库系统管理人员维护系统的负担。
因为DBMS在数据库建立、运用和维护时对数据库进行统一的管理和控制,包括数据的完整性、安全性,多用户并发控制,故障恢复等等都由DBMS执行。
总之,使用数据库系统的优点是很多的,既便于数据的集中管理,控制数据冗余,可以提高数据的利用率和一致性,又有利于应用程序的开发和维护。
3.试述文件系统与数据库系统的区别和联系。
文件系统与数据库系统的区别:
文件系统面向某一应用程序,共享性差、冗余度大,独立性差,纪录内有结构、整体无结构,应用程序自己控制。
数据库系统面向现实世界,共享性高、冗余度小,具有高度的物理独立性和一定的逻辑独立性,整体结构化,用数据模型描述,由数据库管理系统提供数据安全性、完整性、并发控制和恢复能力。
文件系统与数据库系统的联系是:
文件系统与数据库系统都是计算机系统中管理数据的软件。
5.试述数据库系统的特点。
数据库系统的主要特点有:
一、数据结构化
数据库系统实现整体数据的结构化,这是数据库的主要特征之一,也是数据库系统与文件系统的本质区别。
二、数据的共享性高,冗余度低,易扩充
数据库的数据不再面向某个应用而是面向整个系统,因此可以被多个用户、多个应用、用多种不同的语言共享使用。
由于数据面向整个系统,是有结构的数据,不仅可以被多个应用共享使用,而且容易增加新的应用,这就使得数据库系统弹性大,易于扩充。
三、数据独立性高
数据独立性包括数据的物理独立性和数据的逻辑独立性。
数据库管理系统的模式结构和二级映象功能保证了数据库中的数据具有很高的物理独立性和逻辑独立性。
四、数据由DBMS统一管理和控制
数据库的共享是并发的共享,即多个用户可以同时存取数据库中的数据甚至可以同时存取数据库中同一个数据。
为此,DBMS必须提供统一的数据控制功能,包括数据的安全性保护,数据的完整性检查,并发控制和数据库恢复。
6.数据库管理系统的主要功能有哪些?
①数据库定义功能;
②数据存取功能;
③数据库运行管理;
④数据库的建立和维护功能。
7.试述数据模型的概念、数据模型的作用和数据模型的三个要素。
数据模型是数据库中用来对现实世界进行抽象的工具,是数据库中用于提供信息表示和操作手段的形式构架。
一般地讲,数据模型是严格定义的概念的集合。
这些概念精确地描述系统的静态特性、动态特性和完整性约束条件。
因此数据模型通常由数据结构、数据操作和完整性约束三部分组成。
①数据结构:
是所研究的对象类型的集合,是对系统的静态特性的描述。
②数据操作:
是指对数据库中各种对象(型)的实例(值)允许进行的操作的集合,包括操作及有关的操作规则,是对系统动态特性的描述。
③数据的约束条件:
是完整性规则的集合,完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。
8.试述概念模型的作用。
概念模型实际上是现实世界到机器世界的一个中间层次。
概念模型用于信息世界的建模,是现实世界到信息世界的第一层抽象,是数据库设计人员进行数据库设计的有力工具,也是数据库设计人员和用户之间进行交流的语言。
9.定义并解释概念模型中以下术语:
实体,实体型,实体集,属性,码,实体联系图(E-R图)
实体:
客观存在并可以相互区分的事物叫实体。
实体型:
具有相同属性的实体具有相同的特征和性质,用实体名及其属性名集合来抽象和刻画同类实体称为实体型。
实体集:
同型实体的集合称为实体集。
属性:
实体所具有的某一特性,一个实体可由若干个属性来刻画。
码:
唯一标识实体的属性集称为码。
实体联系图:
E-R图提供了表示实体型、属性和联系的方法:
·实体型:
用矩形表示,矩形框内写明实体名。
·属性:
用椭圆形表示,并用无向边将其与相应的实体连接起来。
·联系:
用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:
1,1:
n或m:
n)。
第二章关系数据库(教材81页)
1.试述关系模型的三个组成部分。
答:
关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。
2.试述关系数据语言的特点和分类。
答:
关系数据语言可以分为三类:
关系代数语言例如ISBL
关系演算语言(元组关系演算语言例如APLHA,QUEL和域关系演算语言例如QBE)
具有关系代数和关系演算双重特点的语言例如SQL
这些关系数据语言的共同特点是,具有完备的表达能力,是非过程化的集合操作语言,功能强,能够嵌入高级语言中使用。
3.定义并理解下列术语,说明它们之间的联系与区别:
(1)域,关系,元组,属性
答:
域:
域是一组具有相同数据类型的值的集合。
关系:
在域D1,D2,…,Dn上笛卡尔积D1×D2×…×Dn的子集称为关系,表示为
R(D1,D2,…,Dn)
元组:
关系中的每个元素是关系中的元组。
属性:
关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。
由于域可以相同,为了加以区分,必须对每列起一个名字,称为属性(Attribute)。
(2)主码,候选码,外部码
答:
候选码:
若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码(Candidatekey)。
主码:
若一个关系有多个候选码,则选定其中一个为主码(Primarykey)。
外部码:
设F是基本关系R的一个或一组属性,但不是关系R的码,如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外部码(Foreignkey),简称外码。
基本关系R称为参照关系(Referencingrelation),基本关系S称为被参照关系(Referencedrelation)或目标关系(Targetrelation)。
关系R和S可以是相同的关系。
(3)关系模式,关系,关系数据库
关系模式:
关系的描述称为关系模式(RelationSchema)。
它可以形式化地表示为:
R(U,D,dom,F)
其中R为关系名,U为组成该关系的属性名集合,D为属性组U中属性所来自的域,dom为属性向域的映象集合,F为属性间数据的依赖关系集合。
关系:
在域D1,D2,…,Dn上笛卡尔积D1×D2×…×Dn的子集称为关系,表示为
R(D1,D2,…,Dn)
关系是关系模式在某一时刻的状态或内容。
关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的,因为关系操作在不断地更新着数据库中的数据。
关系数据库:
关系数据库也有型和值之分。
关系数据库的型也称为关系数据库模式,是对关系数据库的描述,它包括若干域的定义以及在这些域上定义的若干关系模式。
关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常就称为关系数据库。
4.试述关系模型的完整性规则。
在参照完整性中,为什么外部码属性的值也可以为空?
什么情况下才可以为空?
答:
关系模型的完整性规则是对关系的某种约束条件。
关系模型中可以有三类完整性约束:
实体完整性、参照完整性和用户定义的完整性。
参见教材
在参照完整性中,外部码属性的值可以为空,它表示该属性的值尚未确定。
但前提条件是该外部码属性不是其所在关系的主属性。
例如,在下面的“学生”表中,“专业号”是一个外部码,不是学生表的主属性,可以为空。
其语义是,该学生的专业尚未确定。
学生(学号,姓名,性别,专业号,年龄)
专业(专业号,专业名)
而在下面的“选修”表中的“课程号”虽然也是一个外部码属性,但它又是“选修”表的主属性,所以不能为空。
因为关系模型必须满足实体完整性。
课程(课程号,课程名,学分)
选修(学号,课程号,成绩)
5.等值连接与自然连接的区别是什么?
答:
自然连接(Naturaljoin)是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且要在结果中把重复的属性去掉。
第三章关系数据库标准语言SQL(教材148页)
1.试述SQL语言的特点。
答:
(1)综合统一。
SQL语言集数据定义语言DDL、数据操纵语言DML、数据控制语言DCL的功能于一体。
(2)高度非过程化。
用SQL语言进行数据操作,只要提出“做什么”,而无须指明“怎么做”,因此无需了解存取路径,存取路径的选择以及SQL语句的操作过程由系统自动完成。
(3)面向集合的操作方式。
SQL语言采用集合操作方式,不仅操作对象、查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。
(4)以同一种语法结构提供两种使用方式。
SQL语言既是自含式语言,又是嵌入式语言。
作为自含式语言,它能够独立地用于联机交互的使用方式,也能够嵌入到高级语言程序中,供程序员设计程序时使用。
(5)语言简捷,易学易用。
2.试述SQL的定义功能。
答:
SQL的数据定义功能包括定义表、定义视图和定义索引。
SQL语言使用CREATETABLE语句定义建立基本表,;ALTERTABLE语句修改基本表定义,DROPTABLE语句删除基本表;建立索引使用CREATEINDEX语句建立索引,DROPINDEX语句删除索引表;SQL语言使用CREATEVIEW命令建立视图,DROPVIEW语句删除视图。
3.用SQL语句建立第3章习题3中的四个表。
答:
对于S表:
S(SNO,SNAME,STATUS,CITY);
建S表
CREATETABLES
(SNOCHAR(3),
SNAMECHAR(10),
STATUSCHAR
(2),
CITYCHAR(10));
P(PNO,PNAME,COLOR,WEIGHT);
建P表、建J表、建SPJ表略。
4.针对上题中建立的四个表试用SQL语言完成第3章习题3中的查询。
答:
(1)求供应工程J1零件的供应商号码SNO;
SELECTSNO
FROMSPJ
WHEREJNO=‘J1';
(2)求供应工程J1零件P1的供应商号码SNO;
SELECTSNO
FROMSPJ
WHEREJNO=‘J1'
ANDPNO=‘P1';
(3)求供应工程J1零件为红色的供应商号码SNO;
SELECTSNO
FROMSPJ
WHEREJNO=‘J1'
ANDPNOIN
(SELECTPNO
FROMP
WHERECOLOR=‘红');
(4)求没有使用天津供应商生产的红色零件的工程号JNO;
略,注意:
从J表入手,以包含那些尚未使用任何零件的工程号。
5.针对习题3中的四个表试用SQL语言完成以下各项操作:
(1)找出所有供应商的姓名和所在城市。
(2)找出所有零件的名称、颜色、重量。
(3)找出使用供应商S1所供应零件的工程号码。
(4)找出工程项目J2使用的各种零件的名称及其数量。
(5)找出上海厂商供应的所有零件号码。
(6)找出使用上海产的零件的工程名称。
(7)找出没有使用天津产的零件的工程号码。
(8)把全部红色零件的颜色改成蓝色。
(9)由S5供给J4的零件P6改为由S3供应,请作必要的修改。
(10)从供应商关系中删除S2的记录,并从供应情况关系中删除相应的记录。
(11)请将(S2,J6,P4,200)插入供应情况关系。
答:
(1)找出所有供应商的姓名和所在城市。
SELECTSNAME,CITY
FROMS;
(2)找出所有零件的名称、颜色、重量。
SELECTPNAME,COLOR,WEIGHT
FROMP;
(3)找出使用供应商S1所供应零件的工程号码。
SELECTJNO
FROMSPJ
WHERESNO=‘S1';
(4)找出工程项目J2使用的各种零件的名称及其数量。
SELECT,
FROMP,SPJ
WHERE=
AND='J2';
(5)找出上海厂商供应的所有零件号码。
SELECTDISTINCTPNO
FROMSPJ
WHERESNOIN
(SELECTSNO
FROMS
WHERECITY='上海');
(6)找出使用上海产的零件的工程名称。
SELECTJNAME
FROMJ,SPJ,S
WHEREJ.JNO=SPJ.JNO
ANDSPJ.SNO=
AND='上海';
(7)找出没有使用天津产的零件的工程号码。
略
(8)把全部红色零件的颜色改成蓝色。
UPDATEP
SETCOLOR='蓝'
WHERECOLOR='红';
(9)由S5供给J4的零件P6改为由S3供应,请作必要的修改。
UPDATESPJ
SETSNO='S3'
WHERESNO='S5'ANDJNO='J4'ANDPNO='P6';
(10)从供应商关系中删除S2的记录,并从供应情况关系中删除相应的记录。
解析:
注意删除顺序,应该先从SPJ表中删除供应商S2所供应零件的记录,然后从从S表中删除S2。
(11)请将(S2,J6,P4,200)插入供应情况关系。
INSERTINTOSPJ(SNO,JNO,PNO,QTY)
VALUES(S2,J6,P4,200);
6.什么是基本表?
什么是视图?
两者的区别和联系是什么?
答:
基本表是本身独立存在的表,在SQL中一个关系就对应一个表。
视图是从一个或几个基本表导出的表。
视图本身不独立存储在数据库中,是一个虚表。
即数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中。
视图在概念上与基本表等同,用户可以如同基本表那样使用视图,可以在视图上再定义视图。
7.试述视图的优点。
答:
(1)视图能够简化用户的操作。
(2)视图使用户能以多种角度看待同一数据。
(3)视图对重构数据库提供了一定程度的逻辑独立性。
(4)视图能够对机密数据提供安全保护。
8.所有的视图是否都可以更新?
为什么?
答:
不是。
视图是不实际存储数据的虚表,因此对视图的更新,最终要转换为对基本表的更新。
因为有些视图的更新不能唯一地有意义地转换成对相应基本表的更新,所以,并不是所有的视图都是可更新的。
9.哪类视图是可以更新的,哪类视图是不可更新的?
各举一例说明。
答:
基本表的行列子集视图一般是可更新的。
如教材中的例1。
若视图的属性来自集函数、表达式,则该视图肯定是不可以更新的。
如教材中的S_G视图。
11.请为三建工程项目建立一个供应情况的视图,包括供应商代码(SNO)、零件
代码(PNO)、供应数量(QTY)。
针对该视图完成下列查询:
(1)找出三建工程项目使用的各种零件代码及其数量。
(2)找出供应商S1的供应情况。
答:
建视图:
CREATEVIEWV_SPJAS
SELECTSNO,PNO,QTY
FROMSPJ
WHEREJNO=
(SELECTJNO
FROMJ
WHEREJNAME='三建');
对该视图查询:
(1)找出三建工程项目使用的各种零件代码及其数量。
SELECTPNO,QTY
FROMV_SPJ;
(2)找出供应商S1的供应情况。
SELECTPNO,QTY/*S1供应三建工程的零件号和对应的数量*/
FROMV_SPJ
WHERESNO='S1';
第五章关系数据理论(教材196页)
1.理解并给出下列术语的定义:
函数依赖、部分函数依赖、完全函数依赖、候选码、主码、外码、全码。
答:
函数依赖:
设R(U)是一个关系模式,U是R的属性集合,X和Y是U的子集。
对于R(U)的任意一个可能的关系r,如果r中不存在两个元组,它们在X上的属性值相同,而在Y上的属性值不同,则称"X函数确定Y"或"Y函数依赖于X",记作X→Y。
完全函数依赖、部分函数依赖:
在R(U)中,如果X→Y,并且对于X的任何一个真子集X,都有X′→Y,则称Y对X完全函数依赖;若X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖;
候选码、主码:
设K为R(U,F)中的属性或属性组合,若K→U则K为R的候选码。
若候选码多于一个,则选定其中的一个为主码。
外码:
关系模式R中属性或属性组X并非R的码,但X是另一个关系模式的码,则称X是R的外部码也称外码。
全码:
整个属性组是码,称为全码(All-key)。
2.建立一个关于系、学生、班级、学会等诸信息的关系数据库。
描述学生的属性有:
学号、姓名、出生年月、系名、班号、宿舍区。
描述班级的属性有:
班号、专业名、系名、人数、入校年份。
描述系的属性有:
系名、系号、系办公室地点、人数。
描述学会的属性有:
学会名、成立年份、地点、人数。
有关语义如下:
一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。
一个系的学生住在同一宿舍区。
每个学生可参加若干学会,每个学会有若干学生。
学生参加某学会有一个入会年份。
请给出关系模式,写出每个关系模式的极小函数依赖集,指出是否存在传递函数依赖,对于函数依赖左部是多属性的情况讨论函数依赖是完全函数依赖,还是部分函数依赖。
指出各关系的候选码、外部码,有没有全码存在?
答:
关系模式:
学生S(S#,SN,SB,DN,C#,SA)
班级C(C#,CS,DN,CNUM,CDATE)
系D(D#,DN,DA,DNUM)
学会P(PN,DATE1,PA,PNUM)
学生--学会SP(S#,PN,DATE2)
其中,S#—学号,SN—姓名,SB—出生年月,SA—宿舍区
C#—班号,CS—专业名,CNUM—班级人数,CDATE—入校年份
D#—系号,DN—系名,DA—系办公室地点,DNUM—系人数
PN—学会名,DATE1—成立年月,PA—地点,PNUM—学会人数,DATE2—入会年份
每个关系模式的极小函数依赖集:
S:
S#→SN,S#→SB,S#→C#,C#→DN,DN→SA
C:
C#→CS,C#→CNUM,C#→CDATE,CS→DN,(CS,CDATE)→C#
D:
D#→DN,DN→D#,D#→DA,D#→DNUM
P:
PN→DATE1,PN→PA,PN→PNUM
SP:
(S#,PN)→DATE2
S中存在传递函数依赖:
S#→DN,S#→SA,C#→SA
C中存在传递函数依赖:
C#→DN
(S#,PN)→DATE2和(CS,CDATE)→C#均为SP中的函数依赖,是完全函数依赖
关系候选码外部码全码
SS#C#,DN无
CC#,(CS,CDATE)DN无
DD#和DN无无
PPN无无
SP(S#,PN)S#,PN无
4.试举出三个多值依赖的实例。
答:
(1)关系模式MSC(M,S,C)中,M表示专业,S表示学生,C表示该专业的必修课。
假设每个专业有多个学生,有一组必修课。
设同专业内所有学生的选修的必修课相同,实例关系如下。
按照语义对于M的每一个值Mi,S有一个完整的集合与之对应而不问C取何值,所以M→→S。
由于C与S的完全对称性,必然有M→→C成立。
MSC
M1S1C1
M1S1C2
M1S2C1
M1S2C2
………………
(2)关系模式ISA(I,S,A)中,I表示学生兴趣小组,S表示学生,A表示某兴趣小组
的活动项目。
假设每个兴趣小组有多个学生,有若干活动项目。
每个学生必须参加所
在兴趣小组的所有活动项目,每个活动项目要求该兴趣小组的所有学生参加。
按照语义有I→→S,I→→A成立。
(3)关系模式RDP(R,D,P)中,R表示医院的病房,D表示责任医务人员,P表示病人。
假设每个病房住有多个病人,有多个责任医务人员负责医治和护理该病房的所有病人。
按照语义有R→→D,R→→P成立。
第六章数据库设计(教材241页)
1.试述数据库设计过程。
1)需求分析
2)概念结构设计
3)逻辑结构设计
4)数据库物理设计
5)数据库实施
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 系统 概论 课后 习题 参考答案