数据库系统及应用课后练习答案_第1页
数据库系统及应用课后练习答案_第2页
数据库系统及应用课后练习答案_第3页
数据库系统及应用课后练习答案_第4页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据库系统及应用(第二版)习题解答习题一1.什么是数据库?数据库是相互关联的数据的集合,它用综合的方法组织数据,具有较小的数据冗余,可供多个用户共享,具有较高的数据独立性,具有安全控制机制,能够保证数据的安全、可靠,允许并发地使用数据库,能有效、及时地处理数据,并能保证数据的一致性和完整性。2.简要概述数据库、数据库管理系统和数据库系统各自的含义。数据库、数据库管理系统和数据库系统是三个不同的概念,数据库强调的是相互关联的数据,数据库管理系统是管理数据库的系统软件,而数据库系统强调的是基于数据库的计算机应用系统。3.数据独立性的含义是什么?数据独立性是指数据的组织和存储方法与应用程序互不依赖、

2、彼此独立的特性。这种特性使数据的组织和存储方法与应用程序互不依赖,从而大大降低应用程序的开发代价和维护代价。4.数据完整性的含义是什么?保证数据正确的特性在数据库中称之为数据完整性。5.简要概述数据库管理员的职责。数据库管理员的职责可以概括如下:(1)首先在数据库规划阶段要参与选择和评价与数据库有关的计算机软件和硬件,要与数据库用户共同确定数据库系统的目标和数据库应用需求,要确定数据库的开发计划;(2)在数据库设计阶段要负责数据库标准的制定和共用数据字典的研制,要负责各级数据库模式的设计,负责数据库安全、可靠方面的设计;(3)在数据库运行阶段首先要负责对用户进行数据库方面的培训;负责数据库的转

3、储和恢复;负责对数据库中的数据进行维护;负责监视数据库的性能,并调整、改善数据库的性能,提高系统的效率;继续负责数据库安全系统的管理;在运行过程中发现问题、解决问题。6.文件系统用于数据管理存在哪些明显的缺陷?文件系统用于数据管理明显存在如下缺陷:(1)数据冗余大。 这是因为每个文件都是为特定的用途设计的,因此就会造成同样的数据在多个文件中重复存储。(2)数据不一致性。这往往是由数据冗余造成的,在进行更新时,稍不谨慎就会造成同一数据在不同文件中的不一致。(3)程序和数据之间的独立性差。 应用程序依赖于文件的存储结构, 使得若修改文件的存储结构则必须修改程序。(4)数据联系弱。文件与文件之间是独

4、立的,文件之间的联系必须通过程序来构造。因此,文件系统是一个不具有弹性的、无结构的数据集合,不能反映现实世界事物之间的联系。习题二1.数据的三种范畴的含义是什么?数据需要我们的认识、理解、整理、规范和加工,然后才能存放到数据库中。数据从现实生活进入到数据库实际经历了现·2·数据库系统及应用习题解答实世界阶段(认识、理解)、信息世界阶段(规范、提升)和机器世界阶段(管理)三种范畴中的概念、术语都有些不同。2.对以下问题分析实体之间的联系,并分别画出E-R 图:,我们也把之称为数据的三种范畴,数据在略3.试述为什么要讨论实体之间的联系类型?实体之间的联系类型决定了数据库设计时的

5、结果,与数据库的设计质量密切相关。4.多对多联系如何转换成一对多联系?并举例说明。通过引入一个表示联系的实体,将原来两个实体之间的一个多对多的联系转换成分别与表示联系的实体之间的两个一对多的联系。例如,仓库和材料两个实体之间存在着多对多的联系,即一个仓库可以存放多种材料,一种材料可以存放在多个仓库;通过引入一个库存实体转换为仓库与库存之间的一对多联系和材料与库存之间的一对多联系。5.解释连接陷阱的概念,在操作数据库时如何避免连接陷阱?所谓连接陷阱就是误认为本来不存在联系的两个实体之间存在联系,从而强行进行连接操作,自然得到错误的结果。为了避免连接陷阱,必须明确实体之间的联系和联系类型,只在有联

6、系的实体之间进行关联操作。6.传统的三大数据模型是哪些?它们分别是如何表示实体之间的联系的?传统的三大数据模型是层次模型、网状模型和关系模型。层次模型用层次结构表示联系,它的典型代表IMS用层次型表示联系;网状模型用网状结构表示联系,它的典型代表CODASYL用系表示联系;关系模型用关系表示联系。7.解释存储数据独立性和概念数据独立性的区别。存储数据独立性强调的是应用程序与数据的存储结构相互独立的特性,即修改数据的存储方法或数据结构时不影响应用程序;而概念数据独立性强调的是应用程序与数据的概念结构相互独立的特性,即修改概念结构中的字段时不影响应用程序。8.为什么说概念数据库和外部数据库物理上并

7、不真正存在?只有存储数据库是物理上存在的数据库,概念数据库是存储数据库的抽象,它反映了数据库的全局逻辑结构;而外部数据库是概念数据库的部分抽取,它反映了数据库的局部逻辑结构。9.说明在 DBMS 中存储模式、概念模式和外部模式的作用。存储模式描述了数据库的存储结构,它包括对存储数据库中每个文件以及字段的描述,包括用于实现辅助关键字或存储文件间联系的指针字段的细节。存储数据库利用存储模式组织和存取存储数据库中的文件。如果要修改存储数据库的结构(例如,用倒排文件代替多链表) ,那么仅仅需要把这些修改反映在存储模式中,以使数据库存储系统能够操作新的存储数据库。按这种方法,数据库管理系统可以提供存储(

8、物理)数据独立性。概念模式是对概念数据库的描述,它包括对概念文件及概念文件之间联系的描述。概念数据库不包含真正的数据,一切都是由存储数据库决定的。外部模式则是对外部数据库的描述,它需要说明外部文件、构成外部文件的字段及这些外部文件之间的联系。数据库管理系统提供了外部模式与概念模式之间的映象以及概念模式与存储模式之间的映象,使用户通过外部数据库或概念数据库来操作存储数据库。习题三1.解释属性与值域的区别。属性是二维表中的列,而值域是列或属性的取值范围。2.关系模型的三个组成部分是什么?关系数据模型包括关系数据结构、关系操作集合和关系完整性约束三个重要因素。数据库系统及应用习题解答·3&

9、#183;3.对关系模型的操作都包括哪些?关系数据模型中的操作包括:(1)传统的集合运算: 并( Union )、交( Intersection)、差( Difference )、广义笛卡尔积 ( Extended Cartesian Product);(2)专门的关系运算:选择(Select)、投影( Project)、连接( Join)、除( Divide );(3)有关的数据操作:查询(Query)、插入( Insert)、删除( Delete)、修改( Update)。4.关系模型的完整性规则都有哪些?在关系数据模型中一般将数据完整性分为实体完整性、参照完整性和用户定义完整性。5.试述

10、外部关键字的概念和作用,外部关键字是否允许为空值,为什么?如果一个属性集不是所在关系的关键字,但是是其他关系的关键字,则该属性集称为外部关键字。外部关键字用于实现表与表之间的参照完整性。外部关键字是否允许为空值取决于语义的规定。外部关键字的取值或者为空值、或者为被参照关系中的某个关键字字段的值。6.分别叙述在进行插入、删除、更新操作时都需要进行哪些完整性检查,并说明理由。(1)执行插入操作时需要分别检查实体完整性规则、参照完整性规则和用户定义完整性规则。首先检查实体完整性规则,如果插入元组的主关键字的属性不为空值、并且相应的属性值在关系中不存在(即保持唯一性) ,则可以执行插入操作,否则不可以

11、执行插入操作。接着再检查参照完整性规则,如果是向被参照关系插入元组,则无须检查参照完整性;如果是向参照关系插入元组,则要检查外部关键字属性上的值是否在被参照关系中存在对应的主关键字的值,如果存在则可以执行插入操作,否则不允许执行插入操作。另外,如果插入元组的外部关键字允许为空值,则当外部关键字是空值时也允许执行插入操作。最后检查用户定义完整性规则,如果插入的元组在相应的属性值上遵守了用户定义完整性规则,则可以执行插入操作,否则不可以执行插入操作。(2)执行删除操作时一般只需要检查参照完整性规则。如果删除的是参照关系的元组,则不需要进行参照完整性检查,可以执行删除操作。如果删除的是被参照关系的元

12、组,则检查被删除元组的主关键字属性的值是否被参照关系中某个元组的外部关键字引用,如果未被引用则可以执行删除操作;否则可能有三种情况:1)不可以执行删除操作,即拒绝删除;2)可以删除,但需同时将参照关系中引用了该元组的对应元组一起删除,即执行级联删除;3)可以删除,但需同时将参照关系中引用了该元组的对应元组的外部关键字置为空值,即空值删除。(3)执行更新操作可以看作是先删除旧的元组,然后再插入新的元组。所以执行更新操作时的完整性检查综合了上述两种情况。7.试述关系的自然连接和等值连接的异同之处。自然连接和等值连接都是基于相等比较运算的连接,但是自然连接要去掉重复的属性,而等值连接却不需要去掉重复

13、的属性。8.以图 3-6 的数据库为例(可参照图5-1,该数据库的实例) ,用关系代数完成以下检索:注意:此处暂以* 表示连接运算符。1)检索在仓库 WH2 工作的职工的工资。 职工号,工资 (仓库号 ="WH2" (职工 )2)检索在上海工作的职工的工资。·4·数据库系统及应用习题解答 职工号,工资 (城市 =" 上海 "(仓库 ) * 职工 )3)检索北京的供应商的名称。 供应商名 (地址 =" 北京 "(供应商 )4)检索目前与职工 E6 有业务联系的供应商的名称。 供应商名 (职工号 ="E6&q

14、uot; (订购单 ) * 供应商 )5)检索所有职工的工资都大于 1220 元的仓库所在的城市。 城市 (仓库 ) - 城市 (工资 <=1220(职工 ) * 仓库 )6)检索和北京的所有供应商都有业务联系的职工的工资。 职工号,工资 (职工 * ( 订购单÷ 供应商号 ( 地址 =" 北京 " (供应商 )7)检索至少和职工E1、 E4、E7 都有联系的供应商的名称。 供应商名 (订购单÷ (“E1”,”E4”,”E7”) * 供应商 )9.试述关系数据库系统的三层模式结构。略习题四1.简述客户 /服务器结构的概念,并说明客户/服务器结构与文

15、件服务器网络结构的区别。客户 /服务器结构的基本思想是应用程序或应用逻辑可以根据需要划分在服务器和客户工作站中,它既不像集中式系统那样所有的应用程序都在主机上执行,也不像文件服务器网络那样所有的应用程序都在客户端执行,它可以使应用程序合理负担在服务器和客户端。客户 /服务器结构与文件服务器网络结构的硬件拓扑结构很相似,它们的根本区别在于:客户/ 服务器结构的服务器可以执行应用程序;而文件服务器的服务器只是一个数据共享器,它不能执行应用程序。2. 在客户 /服务器结构中,数据库服务器和客户端计算机是如何分工的?数据库服务器应完成数据管理、信息共享、安全管理、以及一些更高级的管理。它是一个开放的体

16、系结构,可以接受来自各种应用程序和开发工具的客户端的连接;它除了要管理集中的数据库之外,还要处理来自客户端的数据访问请求和将结果反馈给用户(包括管理请求队列、管理缓存、响应服务、管理结果和通知服务完成等)的工作。而客户端计算机是面向最终用户的,所以它的主要任务是提供友好的用户界面,提交数据访问请求以及接收和处理数据库的返回结果,组织返回数据的输出(如生成数据浏览窗口、生成数据报表和图形等),提供初步的数据验证功能等。3. SQL Server 在安装后默认创建了哪几个系统数据库?分别叙述它们的作用。SQL Server 在安装后默认创建了4 系统数据库,它们是:(1)master 数据库。 m

17、aster数据库用于存储SQL Server 系统的所有系统级信息,包括所有的其它数据库(如建立的用户数据库)的信息(包括数据库的设置、对应的操作系统文件名称和位置等)、所有数据库注册用户的信息以及系统配置设置等。(2)tempdb 数据库。 tempdb 数据库用于保存所有的临时表和临时存储过程,它还可以满足任何其它的临时存储要求。(3)model数据库。model 数据库是一个模板数据库,当使用CREATE DATABASE命令建立新的数据库时,新数据库的第一部分总是通过复制model 数据库中的内容创建,剩余部分由空页填充。(4)msdb 数据库。msdb 数据库用于SQL Server

18、 代理程序调度报警和作业等系统操作。4.试述SQL Server的CREATE DATABASE命令在创建数据库时是如何申请物理存储空间的?数据库系统及应用习题解答·5·通过指定的物理文件名、文件的大小等向操作系统申请物理存储空间。5.试述 SQL Server 企业管理器的功能。略。习题五1.试概述 SQL 语言的功能。SQL 是一种一体化的语言,它包括了数据定义、数据查询、数据操纵和数据控制等方面的功能,它可以完成数据库活动中的全部工作。2.以图 5-1 的数据库为例,用 SQL 完成以下检索:1)检索在北京的供应商的名称。SELECT * FROM供应商 WHERE

19、地址 =北京 2)检索发给供应商S6 的订购单号。SELECT 订购单号FROM订购单 WHERE供应商号 =S63)检索出职工 E6 发给供应商 S6 的订购单信息。SELECT * FROM订购单 WHERE 供应商号 =S6AND 职工号 =E64)检索出向供应商S3 发过订购单的职工的职工号和仓库号。SELECT 职工号 ,仓库号 FROM职工 WHERE 职工号 IN( SELECT 职工号 FROM 订购单 WHERE 供应商号 = S3)5)检索出目前与S3 供应商没有联系的职工信息。SELECT * FROM职工 WHERE职工号 NOT IN( SELECT 职工号 FROM

20、 订购单 WHERE 供应商号 = S3)6)检索出目前没有任何订购单的供应商信息。SELECT * FROM供应商 WHERE NOT EXISTS( SELECT * FROM订购单WHERE 供应商号 =供应商 .供应商号 )7)检索出和职工E1、E3 都有联系的北京的供应商信息。SELECT * FROM供应商 WHERE 供应商号 IN( SELECT 供应商号 FROM订购单 WHERE职工号 = E1)AND供应商号 IN( SELECT 供应商号 FROM订购单 WHERE职工号 = E3)8)检索出目前和华通电子公司有业务联系的每个职工的工资。SELECT 职工号 ,工资 F

21、ROM 职工 WHERE职工号 IN(SELECT 职工号FROM 订购单 WHERE 供应商号 IN(SELECT 供应商号FROM供应商 WHERE供应商名 = 华通电子公司 )9)检索出与工资在1220 元以下的职工没有联系的供应商的名称。select distinct 供应商名 ,供应商号from供应商where 供应商号 not in -('s4','s7')- 该供应商无与 E3 的订单(select distinct供应商号·6·数据库系统及应用习题解答from订购单where供应商号is not null and职工号in (

22、select职工号 - 该职工工次低于1220,只有E3from职工where工资 <1220)- 该供应商有下过订单and 供应商号in(select distinct 供应商号from 订购单 )10)检索出向S4 供应商发出订购单的仓库所在的城市。SELECT 城市 FROM 仓库 WHERE 仓库号 IN(SELECT 仓库号FROM 职工 WHERE职工号 IN(SELECT 职工号FROM 订购单 WHERE供应商号 ='S4')11)检索出在上海工作并且向S6 供应商发出了订购单的职工号。SELECT 职工号 FROM 职工 WHERE仓库号 IN(SELE

23、CT 仓库号FROM 仓库 WHERE城市 ='上海 ')AND职工号 IN(SELECT 职工号FROM 订购单 WHERE供应商号 ='S6')12)检索出在广州工作并且只向S6 供应商发出了订购单的职工号。SELECT 职工号 FROM 职工 WHERE仓库号 IN(SELECT 仓库号FROM 仓库 WHERE城市 ='广州 ') AND职工号 IN(SELECT 职工号FROM 订购单 WHERE供应商号 ='S6') AND职工号 NOT IN(SELECT 职工号FROM 订购单 WHERE供应商号 !='S

24、6')13) 检索出由工资多于 1230 元的职工向北京的供应商发出的订购单号。SELECT 订购单号FROM 订购单 WHERE 职工号 IN(SELECT 职工号FROM 职工 WHERE 工资 >1230) AND供应商号 IN(SELECT 供应商号FROM 供应商 WHERE 地址 ='北京 ')14)检索出仓库的个数。SELECT COUNT(*) FROM 仓库15)检索出有最大面积的仓库信息。SELECT * FROM仓库 WHERE 面积 =(SELECT MAX( 面积 ) FROM仓库 )16)检索出所有仓库的平均面积。SELECT AVG(

25、 面积 ) FROM 仓库17)检索出向 S4 供应商发出订购单的那些仓库的平均面积。SELECT AVG( 面积 ) FROM 仓库 WHERE 仓库号 IN(SELECT 仓库号FROM 职工 WHERE 职工号 IN(SELECT 职工号FROM 订购单 WHERE 供应商号 ='S4')18)检索出每个城市的供应商个数。SELECT 地址 ,COUNT(*) FROM供应商GROUP BY地址数据库系统及应用习题解答·7·19)检索出每个仓库中工资多于1220 元的职工个数。SELECT 仓库号 ,COUNT(*) FROM 职工 WHERE 工资

26、>1220 GROUP BY仓库号20)检索出和面积最小的仓库有联系的供应商的个数。SELECT COUNT(*) FROM供应商 WHERE供应商号 IN(SELECT 供应商号FROM订购单 WHERE职工号 IN(SELECT 职工号FROM职工 WHERE仓库号 IN(SELECT 仓库号FROM仓库 WHERE面积 =(SELECT MIN( 面积 ) FROM仓库 )21)检索出工资低于本仓库平均工资的职工信息。SELECT * FROM职工 out WHERE 工资 <(SELECT AVG( 工资 ) FROM职工 inne WHERE 仓库号 =out.仓库号 )

27、3.试述关系数据库中视图(View )的含义和作用。在关系数据库中,视图也称作窗口,即视图是操作基本表的窗口。在三层数据库体系结构中,视图是外部数据库,它是从基本表中派生出来的并依赖于基本表,它并不独立存在。利用视图一方面可以限定对数据的访问(对数据列起到安全保护的作用),另一方面又可以简化对数据的访问(用户可以直接通过视图访问数据库) 。除此之外,从三层数据库体系结构的角度它还提供了概念数据独立性。4.以图 5-1 的数据库为例,用SQL 语句完成以下更新操作,并讨论数据完整性约束对这些操作的影响:1) 插入一个新的供应商元组( S9,智通公司,沈阳) 。INSERT INTO供应商VALU

28、ES('S9',' 智通公司 ','沈阳 ')2) 删除目前没有任何订购单的供应商。DELETE FROM供应商WHERE供应商号NOT IN(SELECT 供应商号FROM 订购单 )3) 删除由在上海仓库工作的职工发出的所有订购单。DELETE FROM订购单WHERE职工号IN(SELECT职工号FROM职工WHERE仓库号IN(SELECT仓库号FROM仓库WHERE城市 ='上海 ')4) 北京的所有仓库增加 100m2 的面积。UPDATE 仓库SET 面积 =面积 +100 WHERE城市 ='北京 '

29、;5) 给低于所有职工平均工资的职工提高5%的工资。UPDATE职工SET工资 =工资 *1.05 WHERE工资 <(SELECT AVG( 工资 ) FROM职工 )5.SQL 要嵌入到宿主语言中使用要解决哪几方面的问题?把 SQL 嵌入到宿主语言中使用必须要解决以下三个方面的问题:1)嵌入识别问题。宿主语言的编译程序不能识别SQL 语句,所以首要的问题就是要解决如何区分宿主语言的语句和SQL 语句。2)要能够交给3)宿主语言与SQL 语言的数据交互问题。SQL 语句的查询结果必须能够交给宿主语言处理,宿主语言的数据也SQL 语句使用。宿主语言的单记录与SQL 的多记录的问题。宿主语

30、言一般一次处理一条记录,而 SQL 常常处理的是记录(元组)的集合,这个矛盾必须解决。·8·数据库系统及应用习题解答6.试述预编译的作用。宿主语言的编译系统不能识别SQL 语句。解决这个问题的一般方法是,为SQL 语句加一个特殊的前缀,在用宿主语言的编译系统编译源程序之前,首先由预编译系统将SQL 语句转换为宿主语言的合法函数调用。7.试述游标( Cursor)的作用,并解释实现此功能的诸条语句的用途。宿主语言一般只能在单记录方式下工作,即一次处理一个记录。而SQL 语句的查询结果常常是一张表,它包含多个记录,为此需要用游标(CURSOR )作为桥梁做一些特殊处理,即利用游

31、标来临时存放SQL语句的查询结果,并利用游标与宿主语言的主变量进行数据交互。 与游标有关的命令共有四条:DECLARECURSOR 、OPEN 、FETCH和 CLOSE 。其中DECLARE CURSOR用SQL SELECT语句说明一个游标;OPEN打开游标, 即执行说明游标的SQL SELECT语句; FETCH从游表中读一条记录到主变量; CLOSE 关闭游标。8.试述为什么需要动态SQL 语句,分析游标和动态游标的区别。有时候在编程序时SQL 语句或语句的参数和格式不能确定,应用程序只能在执行时才知道需要什么样的在应用程序执行时动态建立SQL 语句。定义游标的SQL 语句是静态的;而

32、定义动态游标的SQL 语句是动态生成的。SQL 语句,即必须习题六1. 什么是存储过程?为什么要使用存储过程?存储过程是经过预编译的T-SQL 语句的集合,它存放在数据库中,当用户执行存储过程时,存储过程在数据库服务器上运行。利用存储过程可以避免在网络上传输大量无用的信息或原始数据,只需要传输调用存储过程的指令和数据库服务器返回的处理结果,这样可以大大提高网络数据库应用系统的性能。2.试为如下问题编写、建立存储过程,并定义合适的过程返回状态码和信息(均以图5-1 的数据库为例):1) 插入一个新的供应商元组。CREATE PROCEDURE ins_sup(sno CHAR(3),sname

33、CHAR (16),addr CHAR (10)ASINSERT INTO供应商VALUES(sno,sname,addr)IF ERROR = 0RETURN 0ELSERETURN -1-调用exec ins_sup 'aa','存储过程插入的供应商','地址 '-查看结果select * from 供应商2) 给指定城市的所有仓库增加 x m2 的面积。CREATE PROCEDURE upd_wh_area(city char(10),area numeric)数据库系统及应用习题解答·9·ASUPDATE 仓库SET

34、 面积 =面积+ area WHERE 城市 =cityIF ERROR = 0RETURN 0ELSERETURN 1-调用exec upd_wh_area 广'州 ',1000-查看结果select * from 仓库3) 检索某职工发给某供应商的订购单信息。CREATE PROCEDURE get_ord(eno CHAR(4),sno CHAR(3)ASSELECT * FROM订购单WHERE职工号 =eno AND供应商号IF ERROR = 0RETURN 0ELSERETURN -1=sno4) 检索在某城市工作并且向某供应商发了订购单的职工号。CREATE P

35、ROCEDURE get_eno(city CHAR(10),sno CHAR(3)ASSELECT 职工号FROM职工WHERE 仓库号IN(SELECT 仓库号 FROM 仓库 WHERE 城市 =city) AND 职工号 IN (SELECT 职工号 FROM 订购单 WHERE 供应商号 =sno)IF ERROR = 0RETURN 0ELSERETURN-13.试述触发器的概念和作用。触发器可以看作是一类特殊的存储过程,它在满足某个特定条件时自动触发执行。触发器是为表上的更新、插入、删除操作定义的,也就是说当表上发生更新、插入或删除操作时触发器将执行。触发器可以用于数据参照完整性

36、和以下一些场合:触发器可以通过级联的方式对相关的表进行修改。比如,对父表的修改,可以引起对子孙表的一系列修改,从而保证数据的一致性和完整性。触发器可以禁止或撤消违反参照完整性的修改。触发器可以强制比用CHECK 约束定义更加复杂的限制。4.利用触发器为图5-1 数据库的订购单关系建立参照完整性。·10·数据库系统及应用习题解答建立插入触发器CREATE TRIGGER ord_ins_triggerON 订购单FOR INSERTASIF (SELECT COUNT(*) FROM职工e,INSERTED iWHERE e.职工号 =i. 职工号 )=0 OR(SELECT

37、 COUNT(*) FROM供应商s,INSERTED iWHERE s. 供应商号 =i. 供应商号 )=0)BEGINRAISERROR (' 非法职工号或非法供应商号', 1, 1)ROLLBACK TRANSACTIONEND建立更新触发器略习题七1.讨论数据库安全都与哪些安全问题有关?数据库安全实际涉及到很多方面,除了数据库管理系统应该具有安全保护功能之外,还需要从管理机制、人员行为、操作系统安全和网络安全等多个方面采取措施。2.试述数据库的自主存取控制和强制存取控制的区别和各自的特点。自主存取控制的特点是由用户“自主”地控制数据库对象的访问权限;而强制存取控制的特点

38、是严格的分层次管理,有严格的等级制度。3.试述角色管理在数据库安全控制中的作用。角色管理类似于用户组的管理,可以将数据库的所有用户划分成不同的角色,这样可以简化用户管理,使用户管理和权限管理更加简洁、清楚。4.试述 SQL Server 的系统预定义角色为安全管理提供了哪些便利。SQL Server 的系统管理是由系统管理员(默认是sa 用户)负责的,而系统预定义角色正是系统管理员职责的分解,通过一些系统预定义角色的用户来协助系统管理员进行管理,可以减轻系统管理员(sa 用户)的工作负担,对系统管理来说又有更明确的职责划分。5.试述语句授权和对象授权各自的含义和作用。语句授权是指对执行创建数据

39、库对象的语句的授权,这种权限一般归系统管理员(象授权是指对可以在数据库对象执行的操作的授权,这种权限一般由数据库对象拥有者sa)或数据库管理员(DBO )管理;对(DBOO )管理,也可以由系统管理员 (sa)或数据库管理员(DBO )管理。6.试述GRANT语句中WITH GRANT OPTION子句的作用。WITH GRANT OPTION 子句说明被授权用户可以将指定的对象权限授予其他用户。该子句仅对对象权限有效,对语句权限无效。7.试述在 REVOKE 语句中 GRANT OPTION FOR子句和 CASCADE 子句的作用。数据库系统及应用习题解答·11·GRA

40、NT OPTION FOR说明只收回WITH GRANT OPTION权限; CASCADE说明级联收回由于WITH GRANT OPTION授予的所有权限。GRANT OPTION FOR要与CASCADE一同使用,因为要收回WITH GRANT OPTION权限,也应该一同收回由于该子句产生的所有授权。8.禁止权限语句试述禁止权限语句DENY 的作用。DENY 的作用是禁止用户从角色继承指定的权限。9.什么是数据库的审计功能?系统管理员(或数据库管理员)可以通过审计日志审计、跟踪所有用户对数据库的操作活动,可以确定哪些客户、什么时间、进行了哪些操作(任何操作)等,这种功能称作数据库的审计功

41、能。10.统计数据库有哪些特殊的安全性问题?统计数据库的安全性问题主要是指不允许从统计信息推导出名细信息。习题八1.什么是事务?事务是构成单一逻辑工作单元的操作集合。2.解释事务的ACID 性质。事务的ACID性质指事务具有原子性(即不可分割)、一致性(要能保证数据库的一致性)、隔离性(事务的原子性和一致性不受其他事务的影响)和持久性(事务对数据库所施加的所有更新都是永久的)。3.并发控制都会产生哪些干扰问题?并讨论之。并发事务可能会存在的干扰问题主要有:丢失更新问题未提交依赖问题不一致分析问题幻象读问题讨论略。4.请举出两个并发的程序进行更新操作时相互干扰的例子。略5.利用事务概念和封锁技术

42、重做第4 题,使干扰不发生。略6.分别解释共享封锁、更新封锁和独占封锁的含义。共享封锁是为读操作设置的一种封锁,目的是想读到一组不变的数据,也就是在读数据的过程中,不允许其他用户对该数据进行任何修改操作。这种封锁可以保证最大的并发性,任何数量的用户都可以同时对同样的数据施加这种共享锁。当需要对一个记录或一组记录进行更新时(只是修改,不包括插入和删除)使用更新封锁,该封锁的目的是防止其他用户在同一时刻修改同一记录。已经实施更新封锁的记录,拒绝来自其他用户的更新封锁或独占封锁。独占封锁也叫排他封锁,这是最严格的一类封锁。当需要对表实施插入、删除或修改操作时,应该使用独占封锁。已经实施独占封锁的表,

43、拒绝来自其他用户的任何封锁,但不拒绝其他用户的一般读操作。7.什么是死锁?如何避免发生死锁?当两个(或多个)并发的事务分别等待对方释放封锁的资源,而使事务处于长期等待状态的现象称为死锁。为了避免死锁,一般可以采取两种方式:·12·数据库系统及应用习题解答相同顺序法:所有的事务约定都按相同的顺序来封锁表;一次封锁法:为了完成一个事务,一次性封锁所需要的全部表。8.什么是事务的隔离性?如何划分事务的隔离级别?事务的隔离性是指一个事务应该与其他事务“隔离”,它在完成过程中不受其他事务的影响和干扰。“隔离”则意味着并发程度的降低。为了既能保证数据的一致性、又尽可能提高系统的并发执行

44、效率,为此将隔离级别划分为如下4 个级别:未提交读( READUNCOMMITTED):事务隔离的最低级别,仅可保证不读取物理损坏的数据,这是4 个隔离级别中限制最小的级别。提交读( READ COMMITTED):可以保证不读取“脏”数据。可重复读( REPEATABLE READ ):可以保证读一致性,避免不一致分析问题。可串行化( SERIALIZABLE):事务隔离的最高级别,事务之间完全隔离;如果事务在可串行化隔离级别上运行,则可以保证任何并发重叠事务均是串行的。9.试叙述在备份与恢复技术中数据库日志的作用。日志则是对备份的补充,它可以看作是一个值班日记,它将记录下所有对数据库的更新

45、操作。这样就可以在备份完成时立刻刷新并启用一个数据库日志,数据库日志是实时的,它将忠实地记录下所有对数据库的更新操作。因此,当磁盘出现故障造成数据库损坏时,就可以首先利用备份恢复数据库(恢复大部分数据),然后再运行数据库日志,即将备份后所做的更新操作再重新做一遍,从而将数据库完全恢复。10.试述在 SQL Server 中利用文件和文件组备份为数据库恢复提供了什么样的便利?利用文件和文件组进行备份,则当建立数据库的某个物理存储介质出现故障时,可以只恢复发生故障的存储介质上的物理文件或文件组,而不需要恢复整个数据库,这可以大大缩短数据库恢复所需要的时间。11.针对不同的故障类型(事务故障和介质故

46、障),试讨论恢复的策略和方法。略12.系统数据库(在试讨论备份系统数据库的重要性。SQL Server 上特别是master 数据库)是管理用户数据库的数据库,如果系统数据库一旦损坏,整个系统的使用都将受到影响。所以系统数据库的安全和可靠是用户数据库可以正常使用的基础。习题九1.理解、定义如下术语,并分别给出两个例子:函数依赖、部分函数依赖、完全函数依赖、传递函数依赖、主属性。略2.找出图 5-1 所示数据库各个关系中的函数依赖。仓库关系上的函数依赖:仓库号城市,仓库号面积职工关系上的函数依赖:职工号仓库号,职工号工资订购单关系上的函数依赖:订购单号职工号,订购单号供应商号,订购单号订购日期供

47、应商关系上的函数依赖:数据库系统及应用习题解答·13·供应商号供应商名,供应商名供应商号,供应商号地址,供应商名地址3.试证明如下结论(引理9.1):X A 1 A 2 An 的充分必要条件是X A k 成立( k=1,2, ,n)。证明:略4.设有关系模式 R( U ,F ) ,U= A,B,C,D,E ,F= AB E, DEB,B C,CE,E A1)计算所有函数依赖左部关于函数依赖集F 的属性集闭包;(AB) +=A,B,C,E(DE) +=A,B,C,D,EB+=A,B,C,EC+=A,C,EE+=A,E2)确定关系模式 R 上的所有侯选关键字;DE3)求 F 的

48、所有最小覆盖。Fm=F- AB - >E5.假设有一个名为参加的关系,该关系有属性:职工(职工名)、工程(工程名) 、时数(花费在工程上的小时数)和工资(职工的工资);一个参加记录描述一个职工花费在一个工程上的总时数和他的工资;另外,一个职工可以参加多个工程,多个职工可以参加同一个工程。请回答如下各问题:用 A 、 B、C、 D 分别代表属性职工、工程、时数和工资,则:1)确定这个关系的关键字;AB2)找出这个关系中的所有函数依赖;AB- >C , A- >D3)指出这个关系上的哪些函数依赖会带来操作异常现象;D 对关键字 AB 的部分函数依赖可能会带来如下问题:数据冗余:一个职工参加多个工程,则职工的工资值会重复;更新异常:当改变职工的工资时,可能会只修改了一部分,从而造成数据不一致;插入异常

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论