数据库课后答案_第1页
数据库课后答案_第2页
数据库课后答案_第3页
数据库课后答案_第4页
数据库课后答案_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

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

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

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

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

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

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

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

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

9、括:(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. 试述关系的自然连接和等值连接的异同之处。自然连接和等值连接都是基于相等比较运算的连接,但是自然连接要去掉重复的属性,而等值连接却不需要去掉重复的属性。8. 以图3-6的数据库为例(可参照图5-1,该数据库的实例)

13、,用关系代数完成以下检索:注意:此处暂以 * 表示连接运算符。1) 检索在仓库WH2工作的职工的工资。职工号,工资(仓库号="WH2"(职工)2) 检索在上海工作的职工的工资。职工号,工资(城市="上海"(仓库) * 职工)3) 检索北京的供应商的名称。供应商名(地址="北京"(供应商)4) 检索目前与职工E6有业务联系的供应商的名称。供应商名(职工号="E6"(订购单) * 供应商)5) 检索所有职工的工资都大于1220元的仓库所在的城市。城市(仓库) -城市(工资<=1220(职工) * 仓库)6) 检索

14、和北京的所有供应商都有业务联系的职工的工资。职工号,工资(职工 * (订购单÷供应商号(地址="北京"(供应商)7) 检索至少和职工E1、E4、E7都有联系的供应商的名称。供应商名(订购单÷(“E1”,”E4”,”E7”) * 供应商)9. 试述关系数据库系统的三层模式结构。略习题四1. 简述客户/服务器结构的概念,并说明客户/服务器结构与文件服务器网络结构的区别。客户/服务器结构的基本思想是应用程序或应用逻辑可以根据需要划分在服务器和客户工作站中,它既不像集中式系统那样所有的应用程序都在主机上执行,也不像文件服务器网络那样所有的应用程序都在客户端执行,

15、它可以使应用程序合理负担在服务器和客户端。客户/服务器结构与文件服务器网络结构的硬件拓扑结构很相似,它们的根本区别在于:客户/服务器结构的服务器可以执行应用程序;而文件服务器的服务器只是一个数据共享器,它不能执行应用程序。2. 在客户/服务器结构中,数据库服务器和客户端计算机是如何分工的?数据库服务器应完成数据管理、信息共享、安全管理、以及一些更高级的管理。它是一个开放的体系结构,可以接受来自各种应用程序和开发工具的客户端的连接;它除了要管理集中的数据库之外,还要处理来自客户端的数据访问请求和将结果反馈给用户(包括管理请求队列、管理缓存、响应服务、管理结果和通知服务完成等)的工作。而客户端计算

16、机是面向最终用户的,所以它的主要任务是提供友好的用户界面,提交数据访问请求以及接收和处理数据库的返回结果,组织返回数据的输出(如生成数据浏览窗口、生成数据报表和图形等),提供初步的数据验证功能等。3. SQL Server在安装后默认创建了哪几个系统数据库?分别叙述它们的作用。SQL Server在安装后默认创建了4系统数据库,它们是:(1) master数据库。master数据库用于存储SQL Server系统的所有系统级信息,包括所有的其它数据库(如建立的用户数据库)的信息(包括数据库的设置、对应的操作系统文件名称和位置等)、所有数据库注册用户的信息以及系统配置设置等。(2) tempdb

17、数据库。tempdb数据库用于保存所有的临时表和临时存储过程,它还可以满足任何其它的临时存储要求。(3) model 数据库。model数据库是一个模板数据库,当使用CREATE DATABASE命令建立新的数据库时,新数据库的第一部分总是通过复制model数据库中的内容创建,剩余部分由空页填充。(4) msdb数据库。msdb数据库用于SQL Server代理程序调度报警和作业等系统操作。4. 试述SQL Server的CREATE DATABASE命令在创建数据库时是如何申请物理存储空间的?通过指定的物理文件名、文件的大小等向操作系统申请物理存储空间。5. 试述SQL Server企业管理

18、器的功能。略。习题五1. 试概述SQL语言的功能。SQL是一种一体化的语言,它包括了数据定义、数据查询、数据操纵和数据控制等方面的功能,它可以完成数据库活动中的全部工作。2. 以图5-1的数据库为例,用SQL完成以下检索: 1) 检索在北京的供应商的名称。SELECT * FROM 供应商 WHERE 地址=北京2) 检索发给供应商S6的订购单号。SELECT 订购单号 FROM 订购单 WHERE 供应商号=S63) 检索出职工E6发给供应商S6的订购单信息。SELECT * FROM 订购单 WHERE 供应商号=S6 AND 职工号=E64) 检索出向供应商S3发过订购单的职工的职工号和

19、仓库号。SELECT 职工号,仓库号 FROM 职工 WHERE 职工号 IN( SELECT 职工号 FROM 订购单 WHERE 供应商号=S3 )5) 检索出目前与S3供应商没有联系的职工信息。SELECT * FROM 职工 WHERE 职工号 NOT IN( SELECT 职工号 FROM 订购单 WHERE 供应商号=S3 )6) 检索出目前没有任何订购单的供应商信息。SELECT * FROM 供应商 WHERE NOT EXISTS( SELECT * FROM 订购单 WHERE 供应商号=供应商.供应商号 )7) 检索出和职工E1、E3都有联系的北京的供应商信息。SELEC

20、T * FROM 供应商 WHERE 供应商号 IN( SELECT 供应商号 FROM 订购单 WHERE 职工号=E1 )AND 供应商号 IN( SELECT 供应商号 FROM 订购单 WHERE 职工号=E3 )8) 检索出目前和华通电子公司有业务联系的每个职工的工资。SELECT 职工号,工资 FROM 职工 WHERE 职工号 IN(SELECT 职工号 FROM 订购单 WHERE 供应商号 IN(SELECT 供应商号 FROM 供应商 WHERE 供应商名=华通电子公司)9) 检索出与工资在1220元以下的职工没有联系的供应商的名称。SELECT 供应商名 FROM 供应商

21、 WHERE 供应商号 IN(SELECT 供应商号 FROM 订购单 WHERE 职工号 NOT IN(SELECT 职工号 FROM 职工 WHERE 工资 < 1220)10) 检索出向S4供应商发出订购单的仓库所在的城市。SELECT 城市 FROM 仓库 WHERE 仓库号 IN(SELECT 仓库号 FROM 职工 WHERE 职工号 IN(SELECT 职工号 FROM 订购单 WHERE 供应商号=S4)11) 检索出在上海工作并且向S6供应商发出了订购单的职工号。SELECT 职工号 FROM 职工 WHERE 仓库号 IN(SELECT 仓库号 FROM 仓库 WHE

22、RE 城市=上海) 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 供应商号!=S6)13) 检索出由工资多于1230元的职工向北京的供应商发出的订购单号。SELECT 订购单号 FROM 订

23、购单 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(面积) FROM 仓库17) 检索出向S4供应商发出订购单的那些仓库的平均面积。SELECT AVG(面积) FROM 仓库 WHERE 仓

24、库号 IN(SELECT 仓库号 FROM 职工 WHERE 职工号 IN(SELECT 职工号 FROM 订购单 WHERE 供应商号=S4)18) 检索出每个城市的供应商个数。SELECT 地址,COUNT(*) FROM 供应商 GROUP BY 地址19) 检索出每个仓库中工资多于1220元的职工个数。SELECT 仓库号,COUNT(*) FROM 职工 WHERE 工资>1220 GROUP BY 仓库号20) 检索出和面积最小的仓库有联系的供应商的个数。SELECT COUNT(*) FROM 供应商 WHERE 供应商号 IN(SELECT 供应商号 FROM 订购单 W

25、HERE 职工号 IN(SELECT 职工号 FROM 职工 WHERE 仓库号 IN(SELECT 仓库号 FROM 仓库 WHERE 面积=(SELECT MIN(面积) FROM 仓库)21) 检索出工资低于本仓库平均工资的职工信息。SELECT * FROM 职工 out WHERE 工资<(SELECT AVG(工资) FROM 职工 inne WHERE 仓库号=out.仓库号)3. 试述关系数据库中视图(View)的含义和作用。在关系数据库中,视图也称作窗口,即视图是操作基本表的窗口。在三层数据库体系结构中,视图是外部数据库,它是从基本表中派生出来的并依赖于基本表,它并不独

26、立存在。利用视图一方面可以限定对数据的访问(对数据列起到安全保护的作用),另一方面又可以简化对数据的访问(用户可以直接通过视图访问数据库)。除此之外,从三层数据库体系结构的角度它还提供了概念数据独立性。4. 以图5-1的数据库为例,用SQL语句完成以下更新操作,并讨论数据完整性约束对这些操作的影响:1) 插入一个新的供应商元组(S9,智通公司,沈阳)。INSERT INTO 供应商 VALUES(S9,智通公司,沈阳)2) 删除目前没有任何订购单的供应商。DELETE FROM 供应商 WHERE 供应商号 NOT IN(SELECT 供应商号 FROM 订购单)3) 删除由在上海仓库工作的职

27、工发出的所有订购单。DELETE FROM 订购单 WHERE 职工号 IN(SELECT 职工号 FROM 职工 WHERE 仓库号 IN(SELECT 仓库号 FROM 仓库 WHERE 城市=上海)4) 北京的所有仓库增加100m2的面积。UPDATE 仓库 SET 面积=面积+100 WHERE 城市=北京5) 给低于所有职工平均工资的职工提高5%的工资。UPDATE 职工 SET 工资=工资*1.05 WHERE 工资<(SELECT AVG(工资) FROM 职工)5. SQL要嵌入到宿主语言中使用要解决哪几方面的问题?把SQL嵌入到宿主语言中使用必须要解决以下三个方面的问题

28、:1) 嵌入识别问题。宿主语言的编译程序不能识别SQL语句,所以首要的问题就是要解决如何区分宿主语言的语句和SQL语句。2) 宿主语言与SQL语言的数据交互问题。SQL语句的查询结果必须能够交给宿主语言处理,宿主语言的数据也要能够交给SQL语句使用。3) 宿主语言的单记录与SQL的多记录的问题。宿主语言一般一次处理一条记录,而SQL常常处理的是记录(元组)的集合,这个矛盾必须解决。6. 试述预编译的作用。宿主语言的编译系统不能识别SQL语句。解决这个问题的一般方法是,为SQL语句加一个特殊的前缀,在用宿主语言的编译系统编译源程序之前,首先由预编译系统将SQL语句转换为宿主语言的合法函数调用。7

29、. 试述游标(Cursor)的作用,并解释实现此功能的诸条语句的用途。宿主语言一般只能在单记录方式下工作,即一次处理一个记录。而SQL语句的查询结果常常是一张表,它包含多个记录,为此需要用游标(CURSOR)作为桥梁做一些特殊处理,即利用游标来临时存放SQL语句的查询结果,并利用游标与宿主语言的主变量进行数据交互。与游标有关的命令共有四条:DECLARE CURSOR、OPEN、FETCH和CLOSE。其中DECLARE CURSOR用SQL SELECT语句说明一个游标;OPEN打开游标,即执行说明游标的SQL SELECT语句;FETCH从游表中读一条记录到主变量;CLOSE关闭游标。8.

30、 试述为什么需要动态SQL语句,分析游标和动态游标的区别。有时候在编程序时SQL语句或语句的参数和格式不能确定,应用程序只能在执行时才知道需要什么样的SQL语句,即必须在应用程序执行时动态建立SQL语句。定义游标的SQL语句是静态的;而定义动态游标的SQL语句是动态生成的。习题六1. 什么是存储过程?为什么要使用存储过程?存储过程是经过预编译的T-SQL语句的集合,它存放在数据库中,当用户执行存储过程时,存储过程在数据库服务器上运行。利用存储过程可以避免在网络上传输大量无用的信息或原始数据,只需要传输调用存储过程的指令和数据库服务器返回的处理结果,这样可以大大提高网络数据库应用系统的性能。2.

31、 试为如下问题编写、建立存储过程,并定义合适的过程返回状态码和信息(均以图5-1的数据库为例):1) 插入一个新的供应商元组。CREATE PROCEDURE ins_sup(sno CHAR(3),sname CHAR (16),addr CHAR (10)ASINSERT INTO 供应商 VALUES(sno,sname,addr)IF ERROR = 0 RETURN 0ELSERETURN -12) 给指定城市的所有仓库增加x m2的面积。CREATE PROCEDURE upd_wh_area(city char(10),area numeric)ASUPDATE 仓库 SET 面

32、积=面积 + area WHERE 城市=cityIF ERROR = 0 RETURN 0ELSERETURN -13) 检索某职工发给某供应商的订购单信息。CREATE PROCEDURE get_ord(eno CHAR(4),sno CHAR(3)ASSELECT * FROM 订购单 WHERE 职工号=eno AND 供应商号=snoIF ERROR = 0 RETURN 0ELSERETURN -11.列出向项目J1提供零件P1的供应商号;SELECT SNO FROM SPJ WHERE PNO=P1 AND JNO=J1;2.列出零件号码,该零件是由供应商提供给在同一城市的工

33、程项目;SELECT UNIQUE PNO FROM S,SPJ,J WHERE S.SNO=SPJ.SNO AND SPJ.JNO=J.JNO AND J.CITY=S.CITY;3.列出供应商号,该供应商提供了最小号码的红色零件;SELECT SNO FROM SPJ WHERE PNO=(SELECT MIN(PNO) FROM P WHERE COLOR=RED);4.列出供应商号码,该供应商至少提供一种由提供了红色零件的供应商提供的零件;SELECT UNIQUE SNO FROM SPJ WHERE PNO IN (SELECT PNO FROM SPJ WHERE SNO IN

34、(SELECT SNO FROM SPJ WHERE PNO IN (SELECT PNO FROM P WHERE COLOR=COLOR);5.列出在工程项目J1中由一个以上供应商提供的零件号码.SELECT PNO FROM SPJ WHERE JNO=J1 GROUP BY PNO HAVING COUNT(*)>1;4) 检索在某城市工作并且向某供应商发了订购单的职工号。CREATE PROCEDURE get_eno(city CHAR(10),sno CHAR(3)ASSELECT 职工号 FROM 职工 WHERE 仓库号 IN (SELECT 仓库号 FROM 仓库 W

35、HERE 城市=city) AND 职工号 IN(SELECT 职工号 FROM 订购单 WHERE 供应商号=sno)IF ERROR = 0 RETURN 0ELSERETURN 13. 试述触发器的概念和作用。触发器可以看作是一类特殊的存储过程,它在满足某个特定条件时自动触发执行。触发器是为表上的更新、插入、删除操作定义的,也就是说当表上发生更新、插入或删除操作时触发器将执行。触发器可以用于数据参照完整性和以下一些场合:s 触发器可以通过级联的方式对相关的表进行修改。比如,对父表的修改,可以引起对子孙表的一系列修改,从而保证数据的一致性和完整性。s 触发器可以禁止或撤消违反参照完整性的修

36、改。s 触发器可以强制比用CHECK约束定义更加复杂的限制。4. 利用触发器为图5-1数据库的订购单关系建立参照完整性。建立插入触发器CREATE TRIGGER ord_ins_triggerON 订购单 FOR INSERTASIF (SELECT COUNT(*) FROM 职工 e,INSERTED i WHERE e.职工号=i.职工号)=0 OR(SELECT COUNT(*) FROM 供应商 s,INSERTED i WHERE s.供应商号=i. 供应商号)=0)BEGINRAISERROR ('非法职工号或非法供应商号', 1, 1)ROLLBACK TRA

37、NSACTIONEND建立更新触发器略习题七1. 讨论数据库安全都与哪些安全问题有关?数据库安全实际涉及到很多方面,除了数据库管理系统应该具有安全保护功能之外,还需要从管理机制、人员行为、操作系统安全和网络安全等多个方面采取措施。2. 试述数据库的自主存取控制和强制存取控制的区别和各自的特点。自主存取控制的特点是由用户“自主”地控制数据库对象的访问权限;而强制存取控制的特点是严格的分层次管理,有严格的等级制度。3. 试述角色管理在数据库安全控制中的作用。角色管理类似于用户组的管理,可以将数据库的所有用户划分成不同的角色,这样可以简化用户管理,使用户管理和权限管理更加简洁、清楚。4. 试述SQL

38、 Server的系统预定义角色为安全管理提供了哪些便利。SQL Server的系统管理是由系统管理员(默认是sa用户)负责的,而系统预定义角色正是系统管理员职责的分解,通过一些系统预定义角色的用户来协助系统管理员进行管理,可以减轻系统管理员(sa用户)的工作负担,对系统管理来说又有更明确的职责划分。5. 试述语句授权和对象授权各自的含义和作用。语句授权是指对执行创建数据库对象的语句的授权,这种权限一般归系统管理员(sa)或数据库管理员(DBO)管理;对象授权是指对可以在数据库对象执行的操作的授权,这种权限一般由数据库对象拥有者(DBOO)管理,也可以由系统管理员(sa)或数据库管理员(DBO)

39、管理。6. 试述GRANT语句中WITH GRANT OPTION子句的作用。WITH GRANT OPTION子句说明被授权用户可以将指定的对象权限授予其他用户。该子句仅对对象权限有效,对语句权限无效。7. 试述在REVOKE语句中GRANT OPTION FOR子句和CASCADE子句的作用。GRANT OPTION FOR说明只收回WITH GRANT OPTION权限;CASCADE说明级联收回由于WITH GRANT OPTION授予的所有权限。GRANT OPTION FOR要与CASCADE一同使用,因为要收回WITH GRANT OPTION权限,也应该一同收回由于该子句产生的

40、所有授权。8. 试述禁止权限语句DENY的作用。禁止权限语句DENY的作用是禁止用户从角色继承指定的权限。9. 什么是数据库的审计功能?系统管理员(或数据库管理员)可以通过审计日志审计、跟踪所有用户对数据库的操作活动,可以确定哪些客户、什么时间、进行了哪些操作(任何操作)等,这种功能称作数据库的审计功能。10. 统计数据库有哪些特殊的安全性问题?统计数据库的安全性问题主要是指不允许从统计信息推导出名细信息。习题八1. 什么是事务?事务是构成单一逻辑工作单元的操作集合。2. 解释事务的ACID性质。事务的ACID性质指事务具有原子性(即不可分割)、一致性(要能保证数据库的一致性)、隔离性(事务的

41、原子性和一致性不受其他事务的影响)和持久性(事务对数据库所施加的所有更新都是永久的)。3. 并发控制都会产生哪些干扰问题?并讨论之。并发事务可能会存在的干扰问题主要有:s 丢失更新问题s 未提交依赖问题s 不一致分析问题s 幻象读问题讨论略。4. 请举出两个并发的程序进行更新操作时相互干扰的例子。略5. 利用事务概念和封锁技术重做第4题,使干扰不发生。略6. 分别解释共享封锁、更新封锁和独占封锁的含义。共享封锁是为读操作设置的一种封锁,目的是想读到一组不变的数据,也就是在读数据的过程中,不允许其他用户对该数据进行任何修改操作。这种封锁可以保证最大的并发性,任何数量的用户都可以同时对同样的数据施

42、加这种共享锁。当需要对一个记录或一组记录进行更新时(只是修改,不包括插入和删除)使用更新封锁,该封锁的目的是防止其他用户在同一时刻修改同一记录。已经实施更新封锁的记录,拒绝来自其他用户的更新封锁或独占封锁。独占封锁也叫排他封锁,这是最严格的一类封锁。当需要对表实施插入、删除或修改操作时,应该使用独占封锁。已经实施独占封锁的表,拒绝来自其他用户的任何封锁,但不拒绝其他用户的一般读操作。7. 什么是死锁?如何避免发生死锁?当两个(或多个)并发的事务分别等待对方释放封锁的资源,而使事务处于长期等待状态的现象称为死锁。为了避免死锁,一般可以采取两种方式:s 相同顺序法:所有的事务约定都按相同的顺序来封

43、锁表;s 一次封锁法:为了完成一个事务,一次性封锁所需要的全部表。8. 什么是事务的隔离性?如何划分事务的隔离级别?事务的隔离性是指一个事务应该与其他事务“隔离”,它在完成过程中不受其他事务的影响和干扰。“隔离”则意味着并发程度的降低。为了既能保证数据的一致性、又尽可能提高系统的并发执行效率,为此将隔离级别划分为如下4个级别:s 未提交读(READ UNCOMMITTED):事务隔离的最低级别,仅可保证不读取物理损坏的数据,这是4个隔离级别中限制最小的级别。s 提交读(READ COMMITTED):可以保证不读取“脏”数据。s 可重复读(REPEATABLE READ):可以保证读一致性,避

44、免不一致分析问题。s 可串行化(SERIALIZABLE):事务隔离的最高级别,事务之间完全隔离;如果事务在可串行化隔离级别上运行,则可以保证任何并发重叠事务均是串行的。9. 试叙述在备份与恢复技术中数据库日志的作用。日志则是对备份的补充,它可以看作是一个值班日记,它将记录下所有对数据库的更新操作。这样就可以在备份完成时立刻刷新并启用一个数据库日志,数据库日志是实时的,它将忠实地记录下所有对数据库的更新操作。因此,当磁盘出现故障造成数据库损坏时,就可以首先利用备份恢复数据库(恢复大部分数据),然后再运行数据库日志,即将备份后所做的更新操作再重新做一遍,从而将数据库完全恢复。10. 试述在SQL

45、 Server中利用文件和文件组备份为数据库恢复提供了什么样的便利?利用文件和文件组进行备份,则当建立数据库的某个物理存储介质出现故障时,可以只恢复发生故障的存储介质上的物理文件或文件组,而不需要恢复整个数据库,这可以大大缩短数据库恢复所需要的时间。11. 针对不同的故障类型(事务故障和介质故障),试讨论恢复的策略和方法。略12. 试讨论备份系统数据库的重要性。系统数据库(在SQL Server上特别是master数据库)是管理用户数据库的数据库,如果系统数据库一旦损坏,整个系统的使用都将受到影响。所以系统数据库的安全和可靠是用户数据库可以正常使用的基础。习题九1. 理解、定义如下术语,并分别

46、给出两个例子:函数依赖、部分函数依赖、完全函数依赖、传递函数依赖、主属性。略2. 找出图5-1所示数据库各个关系中的函数依赖。仓库关系上的函数依赖:仓库号城市,仓库号面积职工关系上的函数依赖:职工号仓库号,职工号工资订购单关系上的函数依赖:订购单号职工号,订购单号供应商号,订购单号订购日期供应商关系上的函数依赖:供应商号供应商名,供应商名供应商号,供应商号地址,供应商名地址3. 试证明如下结论(引理9.1):XA1A2An的充分必要条件是XAk成立(k=1,2, ,n)。证明:略4. 设有关系模式R(U,F),U=A,B,C,D,E,F=ABE,DEB,BC,CE,EA1) 计算所有函数依赖左

47、部关于函数依赖集F的属性集闭包;(AB)+=A,B,C,E(DE)+=A,B,C,D,EB+=A,B,C,EC+=A,C,EE+=A,E2) 确定关系模式R上的所有侯选关键字;DE3) 求F的所有最小覆盖。Fm=F-AB->E5. 假设有一个名为参加的关系,该关系有属性:职工(职工名)、工程(工程名)、时数(花费在工程上的小时数)和工资(职工的工资);一个参加记录描述一个职工花费在一个工程上的总时数和他的工资;另外,一个职工可以参加多个工程,多个职工可以参加同一个工程。请回答如下各问题:用A、B、C、D分别代表属性职工、工程、时数和工资,则:1) 确定这个关系的关键字;AB2) 找出这个

48、关系中的所有函数依赖;AB->C , A->D3) 指出这个关系上的哪些函数依赖会带来操作异常现象;D对关键字AB的部分函数依赖可能会带来如下问题:数据冗余:一个职工参加多个工程,则职工的工资值会重复;更新异常:当改变职工的工资时,可能会只修改了一部分,从而造成数据不一致;插入异常:当一个职工尚未承担工程,但要插入职工信息(如工资)则不允许(因为没有完整的关键字);删除异常:当某个工程结束,删除工程信息时,可能会将职工信息(如工资)一同删除(如果职工只参加了一项工程)。4) 这个关系是第几范式关系?2NF5) 计算该关系上函数依赖集的最小覆盖;Fm=AB->C, A->

49、D6) 将该关系分解成尽可能高的范式,并指明是第几范式?分解为R1(A,B,C)和R2(A,D)结果为4NF6. 一个关系有4个字段A、B、C、D,这里A和B构成复合关键字,问满足下列函数依赖的关系是第几范式?1) A、B、C、D都函数依赖于AB。BCNF或4NF2) A、B、C、D都函数依赖于AB,而D还函数依赖于C。2NF3) A、B、C、D都函数依赖于AB,而D还函数依赖于B。1NF4) A、B、C、D都函数依赖于AB,而B还函数依赖于C。3NF7. 设有关系模式R(A, B, C, D, E),并有函数依赖ABD, ACE, BCD,DA,EB,现将R分解成关系模式S(A, B, C)

50、和其他一些关系模式,请给出在关系模式S上成立的函数依赖。ACB,BCA习题十1. 试叙述概念数据库设计和逻辑数据库设计的区别,并说明各自的主要工作内容。概念数据库设计是不依赖于任何数据库管理系统的,它是对用户信息需求的归纳。概念设计的结果得到的是数据库的概念结构,或称概念数据模型,由于它是从现实世界的角度进行的抽象和描述,所以与具体的硬件环境和软件环境均无关。而在逻辑数据库首先要考虑实现数据库的数据库管理系统所支持的数据模型是什么,并将概念数据模型转换为数据库管理系统支持的数据模型。一般在概念设计阶段主要工作内容有:s 确定实体;s 确定实体的属性;s 确定实体的标识属性(关键字);s 确定实

51、体间的联系和联系类型;s 确定实现实体间联系的属性(外部关键字或连接属性);s 画出表示概念模型的E-R图;除此之外,为了以后对模式进行规范化,还需要:s 确定属性间的依赖关系。而在逻辑设计阶段一般主要工作内容有:s 确定各个关系模式的主关键字,考虑实体完整性;s 确定各个关系模式的外部关键字,考虑参照完整性;s 确定各个关系模式中属性的约束、规则和默认值,考虑域完整性;s 根据用户需求设计视图;s 考虑安全方案和用户使用权限等。2. 物理数据库设计主要包括哪些内容?物理数据库设计的内容是设计数据库的存储结构和物理实现方法。一般包括如下内容:s 估算数据库的数据存储量;s 设计数据库设备;s

52、安排数据库的存储;s 设计索引;s 设计备份策略等。3. 到Sybase公司的网站()下载PowerDesigner的试用版,实践利用PowerDesigner进行数据库建模的方法和过程。略习题十一1. 面向对象数据库是在什么背景下产生的?为什么需要面向对象数据库?在信息管理领域之外还有很多新的应用领域迫切需要使用数据库,如计算机辅助设计(CAD)、多媒体技术(音频、视频文件的存储和处理)等,这些应用往往需要存储大量的复杂类型的数据,同时面向对象的概念和技术也强烈地引发了数据库对复杂数据类型的支持,从而推动了面向对象数据库的发展。由于关系数据库不直接支持复杂数据类型,致使一些必须使用复杂数据类

53、型的应用实现起来不是很方便、并且效率较低。另外关系模型也不支持构造类型和继承,这都使得人们希望发展面向对象的数据库。2. 什么是对象的封装性、继承性和多态性?封装性是指将类的数据和操作封装在类定义中,对用户来讲类的“功能”是可见的,而实现部分是封装在类定义中的,用户是看不见的。这种封闭性保证了每个对象的实现都独立于其他对象的细节,从而有利于保证软件的质量。继承性是指可以利用已有的类去定义新的类。如果根据类A定义类B,则说类B继承了类A,同时把类A称作基类,把类B称作子类。子类不仅可以继承基类的所有性质,还可以在子类中定义新的性质。继承性使得基类中的代码可以共享和重用,所以继承性有助于软件可重用

54、性的实现。多态性是指同一个函数可以有多种作用,即: 同一个函数根据不同的引用对象可以完成不同的功能; 同一个函数即便引用同一个对象,但由于传递的参数不同也可以完成不同的功能。多态性可以为整个应用和所有对象内部提供一个一致的接口,没有必要为相同的动作命名和编写不同的函数,它完全可以根据引用的对象不同、传递的消息不同来完成不同的功能。这样做也与现实世界中管理和运作方法相吻合。3. 面向对象数据库的研究方法主要有哪些?面向对象数据库的研究方法目前主要有以下三种:s 扩充关系数据模型。将成熟的关系数据库与面向对象数据库方法结合起来,可减少研制工作量、缩短研制周期。这种方法的弱点是不能全面支持面向对象的

55、特征。s 在面向对象语言中嵌入数据库功能而形成面向对象数据库。该方法的关键是如何在面向对象语言中增加持久性对象的存储管理。使用此方法受到面向对象语言的一些限制。s 开发全新的数据模型,从底层实现面向对象数据库系统。这是最彻底的方法,缺点是难度大,一方面缺乏统一的数据模式及形式化理论,另一方面在查询优化、视图及数据库工具方面仍为空白。4. 面向对象数据库应该具备哪些基本特征?一个面向对象数据库系统应该具备如下的基本内容和特征:s 在数据模型方面支持对象、复合对象、封装、类、继承、重载、滞后联编、多态性等基本概念。其中复合对象的概念包括支持生成复合对象的构造器(元组、集合、包、列表、数组等)。s

56、数据库管理系统除了具有传统的数据库管理系统所具有的功能(如并发控制、故障和恢复)外,还支持永久对象、长事务处理和嵌套事务,具有版本管理和模式演化的能力,能维护数据完整性,适合在分布式环境下工作。s 数据库访问界面要支持消息传递,提供计算能力完备的数据库程序设计语言,能解决数据库语言与宿主语言的某些不匹配问题,提供类似SQL的非过程化查询功能。5. SQL99支持ORDBMS、还是OODBMS?SQL99支持的是ORDBMS。6. 比较RDBMS、ORDBMS和OODBMS,然后分别描述一个适合使用RDBMS、ORDBMS和OODBMS的应用,并说明原因。略习题十二1. 解释ODBC的概念。ODBC(O

温馨提示

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

评论

0/150

提交评论