数据库系统及应用课后练习答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《数据库系统及应用》(第二版)习题解答
习题一
1.什么就是数据库?
数据库就是相互关联的数据的集合,它用综合的方法组织数据,具有较小的数据冗余,可供多个用户共享,具有较高的数据独立性,具有安全控制机制,能够保证数据的安全、可靠,允许并发地使用数据库,能有效、及时地处理数据,并能保证数据的一致性与完整性。

2.简要概述数据库、数据库管理系统与数据库系统各自的含义。

数据库、数据库管理系统与数据库系统就是三个不同的概念,数据库强调的就是相互关联的数据,数据库管理系统就是管理数据库的系统软件,而数据库系统强调的就是基于数据库的计算机应用系统。

3.数据独立性的含义就是什么?
数据独立性就是指数据的组织与存储方法与应用程序互不依赖、彼此独立的特性。

这种特性使数据的组织与存储方法与应用程序互不依赖,从而大大降低应用程序的开发代价与维护代价。

4.数据完整性的含义就是什么?
保证数据正确的特性在数据库中称之为数据完整性。

5.简要概述数据库管理员的职责。

数据库管理员的职责可以概括如下:
(1)首先在数据库规划阶段要参与选择与评价与数据库有关的计算机软件与硬件,要与数据库用户共同确定数据库系统的目标与数据库应用需求,要确定数据库的开发计划;
(2)在数据库设计阶段要负责数据库标准的制定与共用数据字典的研制,要负责各级数据库模式的设计,负责数据库安全、可靠方面的设计;
(3)在数据库运行阶段首先要负责对用户进行数据库方面的培训;负责数据库的转储与恢复;负责对数据库中的数据进行维护;负责监视数据库的性能,并调整、改善数据库的性能,提高系统的效率;继续负责数据库安全系统的管理;在运行过程中发现问题、解决问题。

6.文件系统用于数据管理存在哪些明显的缺陷?
文件系统用于数据管理明显存在如下缺陷:
(1)数据冗余大。

这就是因为每个文件都就是为特定的用途设计的,因此就会造成同样的数据在多个文件中重复存储。

(2)数据不一致性。

这往往就是由数据冗余造成的,在进行更新时,稍不谨慎就会造成同一数据在不同文件中的不一致。

(3)程序与数据之间的独立性差。

应用程序依赖于文件的存储结构,使得若修改文件的存储结构则必须修改程序。

(4)数据联系弱。

文件与文件之间就是独立的,文件之间的联系必须通过程序来构造。

因此,文件系统就是一个不具有弹性的、无结构的数据集合,不能反映现实世界事物之间的联系。

习题二
1.数据的三种范畴的含义就是什么?
数据需要我们的认识、理解、整理、规范与加工,然后才能存放到数据库中。

数据从现实生活进入到数据库实际经历了现实世界阶段(认识、理解)、信息世界阶段(规范、提升)与机器世界阶段(管理),我们也把之称为数据的三种范畴,数据在三种范畴中的概念、术语都有些不同。

2.对以下问题分析实体之间的联系,并分别画出E-R图:

3.试述为什么要讨论实体之间的联系类型?
实体之间的联系类型决定了数据库设计时的结果,与数据库的设计质量密切相关。

4.多对多联系如何转换成一对多联系?并举例说明。

通过引入一个表示联系的实体,将原来两个实体之间的一个多对多的联系转换成分别与表示联系的实体之间的两个一对多的联系。

例如,仓库与材料两个实体之间存在着多对多的联系,即一个仓库可以存放多种材料,一种材料可以存放在多个仓库;通过引入一个库存实体转换为仓库与库存之间的一对多联系与材料与库存之间的一对多联系。

5.解释连接陷阱的概念,在操作数据库时如何避免连接陷阱?
所谓连接陷阱就就是误认为本来不存在联系的两个实体之间存在联系,从而强行进行连接操作,自然得到错误的结果。

为了避免连接陷阱,必须明确实体之间的联系与联系类型,只在有联系的实体之间进行关联操作。

6.传统的三大数据模型就是哪些?它们分别就是如何表示实体之间的联系的?
传统的三大数据模型就是层次模型、网状模型与关系模型。

层次模型用层次结构表示联系,它的典型代表IMS用层次型表示联系;网状模型用网状结构表示联系,它的典型代表CODASYL用系表示联系;关系模型用关系表示联系。

7.解释存储数据独立性与概念数据独立性的区别。

存储数据独立性强调的就是应用程序与数据的存储结构相互独立的特性,即修改数据的存储方法或数据结构时不影响应用程序;而概念数据独立性强调的就是应用程序与数据的概念结构相互独立的特性,即修改概念结构中的字段时不影响应用程序。

8.为什么说概念数据库与外部数据库物理上并不真正存在?
只有存储数据库就是物理上存在的数据库,概念数据库就是存储数据库的抽象,它反映了数据库的全局逻辑结构;而外部数据库就是概念数据库的部分抽取,它反映了数据库的局部逻辑结构。

9.说明在DBMS中存储模式、概念模式与外部模式的作用。

存储模式描述了数据库的存储结构,它包括对存储数据库中每个文件以及字段的描述,包括用于实现辅助关键字或存储文件间联系的指针字段的细节。

存储数据库利用存储模式组织与存取存储数据库中的文件。

如果要修改存储数据库的结构(例如,用倒排文件代替多链表),那么仅仅需要把这些修改反映在存储模式中,以使数据库存储系统能够操作新的存储数据库。

按这种方法,数据库管理系统可以提供存储(物理)数据独立性。

概念模式就是对概念数据库的描述,它包括对概念文件及概念文件之间联系的描述。

概念数据库不包含真正的数据,一切都就是由存储数据库决定的。

外部模式则就是对外部数据库的描述,它需要说明外部文件、构成外部文件的字段及这些外部文件之间的联系。

数据库管理系统提供了外部模式与概念模式之间的映象以及概念模式与存储模式之间的映象,使用户通过外部数据库或概念数据库来操作存储数据库。

习题三
1.解释属性与值域的区别。

属性就是二维表中的列,而值域就是列或属性的取值范围。

2.关系模型的三个组成部分就是什么?
关系数据模型包括关系数据结构、关系操作集合与关系完整性约束三个重要因素。

3.对关系模型的操作都包括哪些?
关系数据模型中的操作包括:
(1)传统的集合运算:并(Union)、交(Intersection)、差(Difference)、广义笛卡尔积(Extended Cartesian Product);
(2)专门的关系运算:选择(Select)、投影(Project)、连接(Join)、除(Divide);
(3)有关的数据操作:查询(Query)、插入(Insert)、删除(Delete)、修改(Update)。

4.关系模型的完整性规则都有哪些?
在关系数据模型中一般将数据完整性分为实体完整性、参照完整性与用户定义完整性。

5.试述外部关键字的概念与作用,外部关键字就是否允许为空值,为什么?
如果一个属性集不就是所在关系的关键字,但就是就是其她关系的关键字,则该属性集称为外部关键字。

外部关键字用于实现表与表之间的参照完整性。

外部关键字就是否允许为空值取决于语义的规定。

外部关键字的取值或者为空值、或者为被参照关系中的某个关键字字段的值。

6.分别叙述在进行插入、删除、更新操作时都需要进行哪些完整性检查,并说明理由。

(1)执行插入操作时需要分别检查实体完整性规则、参照完整性规则与用户定义完整性规则。

首先检查实体完整性规则,如果插入元组的主关键字的属性不为空值、并且相应的属性值在关系中不存在(即保持唯一性),则可以执行插入操作,否则不可以执行插入操作。

接着再检查参照完整性规则,如果就是向被参照关系插入元组,则无须检查参照完整性;如果就是向参照关系插入元组,则要检查外部关键字属性上的值就是否在被参照关系中存在对应的主关键字的值,如果存在则可以执行插入操作,否则不允许执行插入操作。

另外,如果插入元组的外部关键字允许为空值,则当外部关键字就是空值时也允许执行插入操作。

最后检查用户定义完整性规则,如果插入的元组在相应的属性值上遵守了用户定义完整性规则,则可以执行插入操作,否则不可以执行插入操作。

(2)执行删除操作时一般只需要检查参照完整性规则。

如果删除的就是参照关系的元组,则不需要进行参照完整性检查,可以执行删除操作。

如果删除的就是被参照关系的元组,则检查被删除元组的主关键字属性的值就是否被参照关系中某个元组的外部关键字引用,如果未被引用则可以执行删除操作;否则可能有三种情况:
1)不可以执行删除操作,即拒绝删除;
2)可以删除,但需同时将参照关系中引用了该元组的对应元组一起删除,即执行级联删除;
3)可以删除,但需同时将参照关系中引用了该元组的对应元组的外部关键字置为空值,即空值删除。

(3)执行更新操作可以瞧作就是先删除旧的元组,然后再插入新的元组。

所以执行更新操作时的完整性检查综合了上述两种情况。

7.试述关系的自然连接与等值连接的异同之处。

自然连接与等值连接都就是基于相等比较运算的连接,但就是自然连接要去掉重复的属性,而等值连接却不需要去掉重复的属性。

8.以图3-6的数据库为例(可参照图5-1,该数据库的实例),用关系代数完成以下检索:
注意:此处暂以 * 表示连接运算符。

1)检索在仓库WH2工作的职工的工资。

π
(σ仓库号="WH2"(职工))
职工号,工资
2)检索在上海工作的职工的工资。

π
(σ城市="上海"(仓库) * 职工)
职工号,工资
3)检索北京的供应商的名称。

π
(σ地址="北京"(供应商))
供应商名
4)检索目前与职工E6有业务联系的供应商的名称。

π
(σ职工号="E6"(订购单) * 供应商)
供应商名
5)检索所有职工的工资都大于1220元的仓库所在的城市。

π
(仓库) -π城市(σ工资<=1220(职工) * 仓库)
城市
6)检索与北京的所有供应商都有业务联系的职工的工资。

π
(职工* (订购单÷π供应商号(σ地址="北京"(供应商))))
职工号,工资
7)检索至少与职工E1、E4、E7都有联系的供应商的名称。

π
(订购单÷(“E1”,”E4”,”E7”) * 供应商)
供应商名
9.试述关系数据库系统的三层模式结构。


习题四
1.简述客户/服务器结构的概念,并说明客户/服务器结构与文件服务器网络结构的区别。

客户/服务器结构的基本思想就是应用程序或应用逻辑可以根据需要划分在服务器与客户工作站中,它既不像集中式系统那样所有的应用程序都在主机上执行,也不像文件服务器网络那样所有的应用程序都在客户端执行,它可以使应用程序合理负担在服务器与客户端。

客户/服务器结构与文件服务器网络结构的硬件拓扑结构很相似,它们的根本区别在于:客户/服务器结构的服务器可以执行应用程序;而文件服务器的服务器只就是一个数据共享器,它不能执行应用程序。

2.在客户/服务器结构中,数据库服务器与客户端计算机就是如何分工的?
数据库服务器应完成数据管理、信息共享、安全管理、以及一些更高级的管理。

它就是一个开放的体系结构,可以接受来自各种应用程序与开发工具的客户端的连接;它除了要管理集中的数据库之外,还要处理来自客户端的数据访问请求与将结果反馈给用户(包括管理请求队列、管理缓存、响应服务、管理结果与通知服务完成等)的工作。

而客户端计算机就是面向最终用户的,所以它的主要任务就是提供友好的用户界面,提交数据访问请求以及接收与处理数据库的返回结果,组织返回数据的输出(如生成数据浏览窗口、生成数据报表与图形等),提供初步的数据验证功能等。

3.SQL Server在安装后默认创建了哪几个系统数据库?分别叙述它们的作用。

SQL Server在安装后默认创建了4系统数据库,它们就是:
(1)master数据库。

master数据库用于存储SQL Server系统的所有系统级信息,包括所有的其它数据库(如建立的用户数据库)的信息(包括数据库的设置、对应的操作系统文件名称与位置等)、所有数据库注册用户的信息以及系统配置设置等。

(2)tempdb数据库。

tempdb数据库用于保存所有的临时表与临时存储过程,它还可以满足任何其它的临时存储要求。

(3)model 数据库。

model数据库就是一个模板数据库,当使用CREATE DATABASE命令建立新的数据库时,新数据库的第一部分总就是通过复制model数据库中的内容创建,剩余部分由空页填充。

(4)msdb数据库。

msdb数据库用于SQL Server代理程序调度报警与作业等系统操作。

4.试述SQL Server的CREATE DATABASE命令在创建数据库时就是如何申请物理存储空间的?
通过指定的物理文件名、文件的大小等向操作系统申请物理存储空间。

5.试述SQL Server企业管理器的功能。

略。

习题五
1.试概述SQL语言的功能。

SQL就是一种一体化的语言,它包括了数据定义、数据查询、数据操纵与数据控制等方面的功能,它可以完成数据库活动中的全部工作。

2.以图5-1的数据库为例,用SQL完成以下检索:
1)检索在北京的供应商的名称。

SELECT * FROM 供应商WHERE 地址=’北京’
2)检索发给供应商S6的订购单号。

SELECT 订购单号FROM 订购单WHERE 供应商号=’S6’
3)检索出职工E6发给供应商S6的订购单信息。

SELECT * FROM 订购单WHERE 供应商号=’S6’ AND 职工号=’E6’
4)检索出向供应商S3发过订购单的职工的职工号与仓库号。

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都有联系的北京的供应商信息。

SELECT * 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 distinct 供应商名,供应商号
from 供应商
where 供应商号not in --('s4','s7')--该供应商无与E3的订单
(select distinct 供应商号
from 订购单
where 供应商号is not null and
职工号in (select 职工号--该职工工次低于1220,只有E3
from 职工
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
(SELECT 仓库号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 供应商号!='S6')
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 A VG(面积) FROM 仓库
17)检索出向S4供应商发出订购单的那些仓库的平均面积。

SELECT A VG(面积) FROM 仓库WHERE 仓库号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 订购单WHERE 职工号IN
(SELECT 职工号FROM 职工WHERE 仓库号IN
(SELECT 仓库号FROM 仓库WHERE 面积=
(SELECT MIN(面积) FROM 仓库))))
21)检索出工资低于本仓库平均工资的职工信息。

SELECT * FROM 职工out WHERE 工资<
(SELECT A VG(工资) FROM 职工inne WHERE 仓库号=out、仓库号)
3.试述关系数据库中视图(View)的含义与作用。

在关系数据库中,视图也称作窗口,即视图就是操作基本表的窗口。

在三层数据库体系结构中,视图就是外部数据库,它就是从基本表中派生出来的并依赖于基本表,它并不独立存在。

利用视图一方面可以限定对数据的访问(对数据列起到安全保护的作用),另一方面又可以简化对数据的访问(用户可以直接通过视图访问数据库)。

除此之外,从三层数据库体系结构的角度它还提供了概念数据独立性。

4.以图5-1的数据库为例,用SQL语句完成以下更新操作,并讨论数据完整性约束对这些操作的影响:
1) 插入一个新的供应商元组(S9,智通公司,沈阳)。

INSERT INTO 供应商V ALUES('S9','智通公司','沈阳')
2) 删除目前没有任何订购单的供应商。

DELETE FROM 供应商WHERE 供应商号NOT IN
(SELECT 供应商号FROM 订购单)
3) 删除由在上海仓库工作的职工发出的所有订购单。

DELETE FROM 订购单WHERE 职工号IN
(SELECT 职工号FROM 职工WHERE 仓库号IN
(SELECT 仓库号FROM 仓库WHERE 城市='上海'))
4) 北京的所有仓库增加100m2的面积。

UPDA TE 仓库SET 面积=面积+100 WHERE 城市='北京'
5) 给低于所有职工平均工资的职工提高5%的工资。

UPDA TE 职工SET 工资=工资*1、05 WHERE 工资<
(SELECT A VG(工资) FROM 职工)
5.SQL要嵌入到宿主语言中使用要解决哪几方面的问题?
把SQL嵌入到宿主语言中使用必须要解决以下三个方面的问题:
1)嵌入识别问题。

宿主语言的编译程序不能识别SQL语句,所以首要的问题就就是要解决如何区分宿主语言的语句与SQL语句。

2)宿主语言与SQL语言的数据交互问题。

SQL语句的查询结果必须能够交给宿主语言处理,宿主语言的数据也要能够交给SQL语句使用。

3)宿主语言的单记录与SQL的多记录的问题。

宿主语言一般一次处理一条记录,而SQL常常处理的就是记录(元组)的集合,这个矛盾必须解决。

6.试述预编译的作用。

宿主语言的编译系统不能识别SQL语句。

解决这个问题的一般方法就是,为SQL语句加一个特殊的前缀,在用宿主语言的编译系统编译源程序之前,首先由预编译系统将SQL语句转换为宿主语言的合法函数调用。

7.试述游标(Cursor)的作用,并解释实现此功能的诸条语句的用途。

宿主语言一般只能在单记录方式下工作,即一次处理一个记录。

而SQL语句的查询结果常常就是一张表,它包含多个记录,为此需要用游标(CURSOR)作为桥梁做一些特殊处理,即利用游标来临时存放SQL语句的查询结果,并利用游标与宿主语言的主变量进行数据交互。

与游标有关的命令共有四条:DECLARE CURSOR、OPEN、FETCH与CLOSE。

其中DECLARE CURSOR用SQL SELECT语句说明一个游标;OPEN打开游标,即执行说明游标的SQL SELECT语句;FETCH从游表中读一条记录到主变量;CLOSE关闭游标。

8.试述为什么需要动态SQL语句,分析游标与动态游标的区别。

有时候在编程序时SQL语句或语句的参数与格式不能确定,应用程序只能在执行时才知道需要什么样的SQL语句,即必须在应用程序执行时动态建立SQL语句。

定义游标的SQL语句就是静态的;而定义动态游标的SQL语句就是动态生成的。

习题六
1.什么就是存储过程?为什么要使用存储过程?
存储过程就是经过预编译的T-SQL语句的集合,它存放在数据库中,当用户执行存储过程时,存储过程在数据库服务器上运行。

利用存储过程可以避免在网络上传输大量无用的信息或原始数据,只需要传输调用存储过程的指令与数据库服务器返回的处理结果,这样可以大大提高网络数据库应用系统的性能。

2.试为如下问题编写、建立存储过程,并定义合适的过程返回状态码与信息(均以图5-1的数据库为例):
1)插入一个新的供应商元组。

CREATE PROCEDURE ins_sup
(@sno CHAR(3),@sname CHAR (16),@addr CHAR (10))
AS
INSERT INTO 供应商V ALUES(@sno,@sname,@addr)
IF @@ERROR = 0
RETURN 0
ELSE
RETURN -1
--调用
exec ins_sup 'aa','存储过程插入的供应商','地址'
--查瞧结果
select * from 供应商
2)给指定城市的所有仓库增加x m2的面积。

CREATE PROCEDURE upd_wh_area
(@city char(10),@area numeric)
AS
UPDA TE 仓库SET 面积=面积+ @area WHERE 城市=@city
IF @@ERROR = 0
RETURN 0
ELSE
RETURN –1
--调用
exec upd_wh_area '广州',1000
--查瞧结果
select * from 仓库
3)检索某职工发给某供应商的订购单信息。

CREATE PROCEDURE get_ord
(@eno CHAR(4),@sno CHAR(3))
AS
SELECT * FROM 订购单WHERE 职工号=@eno AND 供应商号=@sno
IF @@ERROR = 0
RETURN 0
ELSE
RETURN -1
4)检索在某城市工作并且向某供应商发了订购单的职工号。

CREATE PROCEDURE get_eno
(@city CHAR(10),@sno CHAR(3))
AS
SELECT 职工号FROM 职工WHERE 仓库号IN
(SELECT 仓库号FROM 仓库WHERE 城市=@city) AND 职工号IN
(SELECT 职工号FROM 订购单WHERE 供应商号=@sno)
IF @@ERROR = 0
RETURN 0
ELSE
RETURN -1
3.试述触发器的概念与作用。

触发器可以瞧作就是一类特殊的存储过程,它在满足某个特定条件时自动触发执行。

触发器就是为表上的更新、插入、删除操作定义的,也就就是说当表上发生更新、插入或删除操作时触发器将执行。

触发器可以用于数据参照完整性与以下一些场合:
♦触发器可以通过级联的方式对相关的表进行修改。

比如,对父表的修改,可以引起对子孙表的一系列修改,从而保证数据的一致性与完整性。

♦触发器可以禁止或撤消违反参照完整性的修改。

♦触发器可以强制比用CHECK约束定义更加复杂的限制。

4.利用触发器为图5-1数据库的订购单关系建立参照完整性。

建立插入触发器
CREATE TRIGGER ord_ins_trigger
ON 订购单FOR INSERT
AS
IF ((SELECT COUNT(*) FROM 职工e,INSERTED i
WHERE e、职工号=i、职工号)=0 OR
(SELECT COUNT(*) FROM 供应商s,INSERTED i
WHERE s、供应商号=i、供应商号)=0)
BEGIN
RAISERROR ('非法职工号或非法供应商号', 1, 1)
ROLLBACK TRANSACTION
END
建立更新触发器

习题七
1.讨论数据库安全都与哪些安全问题有关?
数据库安全实际涉及到很多方面,除了数据库管理系统应该具有安全保护功能之外,还需要从管理机制、人员行为、操作系统安全与网络安全等多个方面采取措施。

2.试述数据库的自主存取控制与强制存取控制的区别与各自的特点。

自主存取控制的特点就是由用户“自主”地控制数据库对象的访问权限;而强制存取控制的特点就是严格的分层次管理,有严格的等级制度。

3.试述角色管理在数据库安全控制中的作用。

角色管理类似于用户组的管理,可以将数据库的所有用户划分成不同的角色,这样可以简化用户管理,使用户管理与权限管理更加简洁、清楚。

4.试述SQL Server的系统预定义角色为安全管理提供了哪些便利。

SQL Server的系统管理就是由系统管理员(默认就是sa用户)负责的,而系统预定义角色正就是系统管理员职责的分解,通过一些系统预定义角色的用户来协助系统管理员进行管理,可以减轻系统管理员(sa用户)的工作负担,对系统管理来说又有更明确的职责划分。

5.试述语句授权与对象授权各自的含义与作用。

语句授权就是指对执行创建数据库对象的语句的授权,这种权限一般归系统管理员(sa)或数据库管理员(DBO)管理;对象授权就是指对可以在数据库对象执行的操作的授权,这种权限一般由数据库对象拥有者(DBOO)管理,也可以由系统管理员(sa)或数据库管理员(DBO)管理。

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权限,也应该一同收回由于该子句产生的所有授权。

8.试述禁止权限语句DENY的作用。

相关文档
最新文档