《数据库系统概论》课程习题及参考答案.docx
《《数据库系统概论》课程习题及参考答案.docx》由会员分享,可在线阅读,更多相关《《数据库系统概论》课程习题及参考答案.docx(40页珍藏版)》请在冰豆网上搜索。
![《数据库系统概论》课程习题及参考答案.docx](https://file1.bdocx.com/fileroot1/2023-2/1/5961f4f7-c6ab-4bf7-bb51-7e628f76fb93/5961f4f7-c6ab-4bf7-bb51-7e628f76fb931.gif)
《数据库系统概论》课程习题及参考答案
《数据库系统概论》课程习题及参考答案
第一章绪论(教材37页)
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)。
第二章关系数据库(教材74页)
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.设有一个SPJ数据库,包括S、P、J、SPJ四个关系模式:
S(SNO,SNAME,STATUS,CITY);
P(PN0,PNAME,COLOR,WEIGHT);
J(JNO,JNAME,CITY);
SPJ(SNO,PNO,JNO,QTY);
供应商表S由供应商(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成;
零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成;
工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成;
供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,表示某供应商供应某种零件给某工程项目的数量为QTY。
各表中均有若干数据(略)
试用关系代数、ALPHA语言、QBE语言完成如下查询:
(1)求供应工程J1零件的供应商号码SNO;
(2)求供应工程J1零件P1的供应商号码SNO;
(3)求供应工程J1零件为红色的供应商号码SNO;
(4)求没有使用天津供应商生产的红色零件的工程号JNO;
(5)求至少用了供应商S1所供应的全部零件的工程号JNO。
答:
(1)关系代数πSNO(σJNO=‘J1’(SPJ))
ALPHAGETW(SPJ.SNO):
SPJ.JNO=‘J1’
QBE
(2)关系代数πSNO(σJNO=‘J1’∧PNO=‘SPJ’(SPJ))
ALPHAGETW(SPJ.SNO):
SPJ.JNO=‘J1’∧SPJ.PNO=‘P1’
QBE
(3)关系代数πSNO(σCOLOR=‘红色’∧JNO=‘J1’(P>ALPHARANGEPPX
GETW(SPJ.PNO):
∃PX(PX.PNO=SPJ.PNO∧
SPJ.JNO=‘J1’∧PX.COLOR=‘RED’)
QBE
(4)关系代数πJNO(J)-πJNO(σCOLOR=‘红色’∧CITY=‘天津’(P>ALPHARANGESPJSPJX
SSX
PPX
GETW(J.PNO):
┓∃SPJX(SPJX.JNO=J.JNO∧∃SX(SX.SNO=SPJX.SNO∧SX.CITY=‘天津’∧∃PX(PX.PNO=SPJX.PNO∧PX.COLOR=‘红’)))
QBE
(5)关系代数πPNO,JNO(σSNO=‘S1’(SPJ))÷πPNO(σSNO=‘S1’(SPJ))
ALPHARANGEPPX
SPJSPJX
SPJSPJY
GETW(J.JNO):
∀PX(∃SPJX(SPJX.PNO=PX.PNO∧SPJ.SNO=‘S1’)
=>∃SPJY(SPJY.PNO=J.PNO∧SPJY.PNO=PX.PNO))
6.等值连接与自然连接的区别是什么?
答:
自然连接(Naturaljoin)是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且要在结果中把重复的属性去掉。
第三章关系数据库标准语言SQL(教材127页)
1.试述SQL语言的特点。
答:
①综合统一,SQL语言集数据定义语言DDL、数据操纵语言DML、数据控制语言DCL的功能于一体。
②高度非过程化,用SQL语言进行数据操作,只要提出“做什么”,而无须指明“怎么做”,因此无需了解存取路径,存取路径的选择以及SQL语句的操作过程由系统自动完成。
③面向集合的操作方式,SQL语言采用集合操作方式,不仅操作对象、查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。
④以同一种语法结构提供两种使用方式,SQL语言既是自含式语言,又是嵌入式语言。
作为自含式语言,它能够独立地用于联机交互的使用方式,也能够嵌入到高级语言程序中,供程序员设计程序时使用。
⑤语言简捷,易学易用。
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;
SELECTJNO
FROMJ
WHEREJNONOTIN
(SELECTJNO
FROMSPJ
WHEREPNOIN
(SELECTPNO
FROMP
WHERECOLOR=’红’)
ANDSNOIN
(SELECTSNO
FROMS
WHERECITY=’天津’))
(5)求至少用了S1供应商所供应的全部零件的工程号JNO;
SELECTDISTINCTJNO
FROMSPJSPJZ
WHERENOTEXISTS
(SELECT*
FROMSPJSPJX
WHERESNO=‘S1’
ANDNOTEXISTS
(SELECT*
FROMSPJSPJY
WHERESPJX.PNO=SPJY.PNO
ANDSPJY.JNO=SPJZ.JNO))
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使用的各种零件的名称及其数量。
SELECTP.PNAME,SPJ.QTY
FROMP,SPJ
WHEREP.PNO=SPJ.PNO
ANDSPJ.JNO='J2';
(5)找出上海厂商供应的所有零件号码。
SELECTDISTINCTPNO
FROMSPJ
WHERESNOIN
(SELECTSNO
FROMS
WHERECITY='上海');
(6)找出使用上海产的零件的工程名称。
SELECTJNAME
FROMJ,SPJ,S
WHEREJ.JNO=SPJ.JNO
ANDSPJ.SNO=S.SNO
ANDS.CITY='上海';
(7)找出没有使用天津产的零件的工程号码。
SELECTJNO
FROMJ
WHERECITYIN
(SELECTCITY
FROMS
WHERECITY<>’天津’);
(8)把全部红色零件的颜色改成蓝色。
UPDATEP
SETCOLOR='蓝'
WHERECOLOR='红';
(9)由S5供给J4的零件P6改为由S3供应,请作必要的修改。
UPDATESPJ
SETSNO='S3'
WHERESNO='S5'ANDJNO='J4'ANDPNO='P6';
(10)从供应商关系中删除S2的记录,并从供应情况关系中删除相应的记录。
DELETEFROMSPJ
WHERESNO=’S2’;
DELETEFROMS
WHERESNO=’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.哪类视图是可以更新的,哪类视图是不可更新的?
各举一例说明。
答:
基本表的行列子集视图一般是可更新的。
如教材3.5.3中的例1。
若视图的属性来自集函数、表达式,则该视图肯定是不可以更新的。
如教材3.5.3中的S_G视图。
11.请为三建工程项目建立一个供应情况的视图,包括供应商代码(SNO)、零件代码(PNO)、供应数量(QTY)。
针对该视图完成下列查询:
(1)找出三建工程项目使用的各种零件代码及其数量。
(2)找出供应商S1的供应情况。
答:
建视图:
CREATEVIEWV_SPJAS
SELECTSNO,PNO,QTY
FROMSPJ
WHEREJNOIN
(SELECTJNO
FROMJ
WHEREJNAME='三建');
对该视图查询:
(1)找出三建工程项目使用的各种零件代码及其数量。
SELECTPNO,QTY
FROMV_SPJ;
(2)找出供应商S1的供应情况。
SELECTPNO,QTY/*S1供应三建工程的零件号和对应的数量*/
FROMV_SPJ
WHERESNO='S1';
第四章数据库安全性(148页)
1.什么是数据库的安全性?
答:
数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄漏、更改或破坏。
2.数据库安全性和计算机系统的安全性有什么关系?
答:
安全性问题不是数据库系统所独有的,所有计算机系统都有这个问题。
只是在数据库系统中大量数据集中存放,而且为许多最终用户直接共享,从而使安全性问题更为突出。
系统安全保护措施是否有效是数据库系统主要技术指标之一。
数据库的安全性和计算机系统的安全性,包括计算机硬件、操作系统、网络系统等的安全性,是紧密联系、相互支持的,因此在讨论数据库的安全性之前首先讨论计算机系统安全性的一般问题。
4.试述CC评估保证级划分的基本内容。
答:
CC的文本由三部分组成,三个部分相互依存,缺一不可。
第一部分是“简介和一般模型”,介绍CC中的有关术语、基本概念和一般模型以及与评估有关的一些框架,CC的附录部分主要介绍“保护轮廓”和“安全目标”的基本内容。
第二部分是安全功能要求,列出了一系列功能组件、子类和类。
具体来说有11类,分别是安全审计、通信、密码支持、用户数据保护、标识和鉴别、安全管理、隐私、TSF保护、资源利