内容发布更新时间 : 2024/11/17 6:51:58星期一 下面是文章的全部内容请认真阅读。
第六章课后习题答案
6.2事务的COMMIT语句和ROLLBACK语句各做什么事情?p152
答:COMMIT语句表示事务执行成功的结束,此时告诉系统,数据库要进入一个新的正确状态,该事务对数据库的所有更新都已交付实施;ROLLBACK语句操作表示事务不成功的结束,此时告诉系统,已发生错误,数据库可能处在不正确的状态,该事务对数据库的更新必须撤销,数据库应该恢复该事务到初始状态。
6.3试述事务的四个性质,并说明每一个性质由DBMS的哪个子系统实现?每一个性质对数据库系统有什么益处?
答:原子性:一个事务对数据库的所有操作,是一个不可分割的工作单元,这些操作要么全部执行,要么什么也不做(由DBMS的事务管理子系统来实现);
一致性:一个事务独立执行的结果,应(由DBMS的完整性子系统执行测试任务); 隔离性(由DBMS的并发控制子系统实现); 持久性(由DBMS的恢复管理子系统实现的)。 6.4典型的数据库恢复策略是什么? 答:(1)平时做好两件事 转储和建立日志。
(2)一旦发生故障,分两种情况处理:一是如果数据库遇到灾难性故障,利用数据库备份和日志执库行redo已提交的事务,把数据库恢复到事故前的状态。二是如果数据库只是破坏了数据的一致性,利用日志库undo不可靠的修改,redo已提交的缓冲区中的事务。
6.5 DBS中有哪些类型的故障?哪些故障破坏了数据库?哪些没有破坏DB,但其中的数据变的不正确? 答:有事务故障(不破坏数据库);系统故障(为破坏数据库,但其中某些数据变得不正确);介质故障(破坏数据库)。 6.6 检查点机制的主要思想是什么?
答:在DBS运行时,数据库管理系统定时设置检查点。在检查点时刻才真正做到把对数据库的修改写到磁盘,并在日志文件上写入一条检查点记录(以便恢复用)数据库需要恢复时,只有在检查点后面的那些事务需要恢复,一般DBMS产品自动实行检查点操作,无须人为干预。
6.7 什么是undo操作和redo操作?为什么要这样设置?
答:undo操作是反向扫描日志文件,撤销对数据库的更新操作,使数据库恢复到更新前的状态; Redo操作正向扫描日志文件,重新做一次更新,使数据库恢复到更新后的状态。
6.8 COMMIT操作和检查点时的操作有什么联系?你认为应该如何恰当协调这两种操作才有利于DB的恢复?
答:在采用检查点方法的基本恢复算法中根据日志文件,建立事务重做对列和事务撤销队列,此时。从头扫描日志文件,找出在故障前已经提交的事务(这些事务执行了COMMIT操作),将其事务标识记入重做队列。 同时还要找出故障发生时尚未完成的事务(这些事务还未执行COMMIT),将其事务标识记入撤销队列。 6.9 数据库的并发操作会带来哪些问题?如何解决? 答:丢失更新问题;度脏数据问题;不可重复读问题。 解决的方法是用封锁机制。
6.10 用X锁和S锁时各有哪些操作?x锁和s锁时如何协调的? 答:x锁:
申请X锁操作“X FIND R” 接触X锁操作“X RELEASE R”
S锁:
申请s锁操作“S FIND R” 升级和写操作“UPDX R”
解除s锁操作“SRELEASE R”获准s锁的事务只能读数据,不能更新数据,若要更新则先把s锁升级为x锁。
6.11 为什么x锁要保留到事务终点,而s锁可随时解除?
答:在一个事务上对数据加上x锁后,并且对数据进行了修改,如果过早的解除x锁,有可能使其他事物读了未提交的数据,引起丢失其他事务的更新;由于s锁只允许读数据,因此解除s锁的操作不必等到事务的结束,可随时根据需要接触s锁。
6.12 什么是封锁粒度?封锁粒度的大小对并发系统有什么影响? 答:封锁对象的大小称为封锁粒度。
封锁粒度与系统的并发度和并发控制的开锁密切相关,封锁的粒度越大并发度也就越小,同时系统的开销也就越小;相反,封锁粒度越小,并发度就越大,系统的开销也就越大。
6.13 在封锁技术中,封锁协议可成哪三个级别?各解决了并发调度中的什么问题? 答:封锁协议分为一级封锁协议,解决了“丢失修改”; 二级封锁协议,解决了“丢失修改、读脏数据”;
、 、
、 、 、
、
三级封锁协议,解决了“丢失修改、度脏数据、不可重复读”。 6.14 试述 串行调度 与 可串行化调度 的区别?
答:如果有n个事务串行调度,可有n!种不同的有效调度。事务串行调度的结果都是正确的,至于依照何种次序执行,视外界环境而定,系统无法预料;而可串行化调度每个事务中语句的先后顺序在各种调度中始终保持一致,在这个前提下如果一个并发调度的执行结果与某一串行调度的执行结果等价。
6.16 什么是数据库的完整性?DBMS的完整性子系统的主要功能是什么?
答:数据库中完整性一词指数据的正确性、有效性和相容性,防止错误的数据进入数据库。
子系统的主要功能有:监督事务的执行,并测试是否违反完整性规则;若有违反现象,则采取恰当的操作,例如拒绝操作,报告违反情况,改正错误等方法来处理。 6.17 SQL中的完整性约束有哪些? 答:域约束、基本表约束、断言。
6.18参照完整性规则在SQL中可以用哪几种方法实现? 答:no action(默认),cascade,restrict,set null或set default。
6.19 删除参照关系的元组时,对依赖关系有哪些影响?修改参照关系的主键时,对依赖关系有哪些影响? 答:1、删除参照表中元组时的考虑: No action:对依赖表没有影响。
Cascade:将依赖表中所有外键值与参照表中要删除的主键值相对应的元组一起删除。 Restrict:只有当依赖表中没有一个外键值与要删除的参照表中主键值相对应删除。
Set null:删除参照表中元组时,将依赖表中所有与参照表中被删除的主键值相对应的外键值均置为空。
Set default:删除参照表中元组时,将依赖表中所有与参照表中被删除的主键值相对应的外键值均置为预先定义好的默认 值。
修改参照表中主键时的考虑:
No action:对依赖表没有影响。
Cascade:将依赖表与参与表中要修改的主键值相对应的所有外键值一起修改。
Restrict:只有当依赖表中没有外键值与参照表中要修改的主键值相对应时,系统才修改参照表中主键值,否则拒绝此修改操作。
Set null:修改参照表中主键时,将依赖表中所有与这个主键值相对应的外键值均置为空值。
Set default:修改参照表中主键时,将依赖表中所有与这个主键值相对应的外键值均置为预先定义好的默认值。 6.23什么是触发器?触发器有那两个级别?个同于什么场合?
触发器是一个能由系统自动执行对数据库修改的语句。触发器有时也称主动规则或事件-条件-动作规则。 两个级别:元组集触发器和语句集触发器
6.24什么是数据库的安全性?有哪些级别的安全措施?
数据库的安全性是指保护数据库,纺织部合法的使用,以免数据的泄密,更改或破坏。 1 环境级2 职员级3 OS级4网络级5 DBS级
6.26 什么是权限?用户访问数据库有哪些权限?对数据库模式有哪些修改权限? 答:用户(应用程序)使用数据库的方式成为权限。 访问数据库有四个权限:读(read)权限、插入(insert)、修改(update)、删除(delete); 修改数据库模式也有四个权限:索引(index)权限:允许用户创建和删除索引。 资源(resource)权限:允许用户创建新的关系。
修改(alteration)权限:允许用户在关系结构中加入或删除属性。 撤销(drop):允许用户撤销关系。 6.27 SQL的视图机制有哪些优点?
答:有三个优点:数据安全性、逻辑数据独立性、操作简便性。 6.28 SQL2中的用户权限有哪几类?
答:select、insert、delete、update、references、usage。 6.29 试述SQL中用户跟角色这两个概念?
答:在SQL中用户是实际的人或是访问数据库的应用程序;而角色是一组有相同权限的用户,实际上角色是属于目录一级的概念。
6.30 安全性措施中强制存取控制是如何实现的?
答:对每个数据对象赋予一定的密级,级别从高低有:绝密级、机密级、秘密级、公用级,每个用户也具有相应的级别,称为许可证级别,密级和许可证级别都是有序的,如绝密>机密>秘密>公用,采用规则是:一是用户只能查看比它级别低
或是同级的数据,二是用户只能修改和它同级的数据。
第七章
7.1 SQL Server 2000的版本有哪四种?各自的适用范围是什么? 答:①企业版:作为生产数据库服务器使用。
②标准版:作为小工作组或部门的数据库服务器使用。
③个人版:供移动的用户使用,这些用户又是从网络上断开,但所运行的应用程序需要SQL Server数据存储。 ④开发版:供程序员来开发将SQL Server 2000用作数据存储的应用程序。只能将开发版作为开发和测试系统使用,不能作为生产服务器使用。
7.2 在安装SQL Server 2000时,安装程序会自动创建哪些系统数据库和范例数据库?这些数据库各有哪些用途?
答:安装数据库会自动创建4个系统数据库(Master、Model、Msdb、Tempdb)和两个范例数据库(Northwind、Pubs). ①Master数据库:记录了所有SQL Server 2000的系统信息、登陆账号、系统配置设置、系统中所有数据库及其系统信息和存储介质信息。
②Model数据库:是SQL Server 2000为用户创建数据库提供的模板数据库,每个新建的数据库都是在一个Model数据库的副本上扩展而生成的,所以对Model数据库的修改一定要小心。
③Msdb数据库:主要用于SQL Server 2000存储任务计划信息、事件处理信息、备份恢复信息以及异常报告等。 ④Tempdb数据库:存放所有临时表和临时的存储程序,并且供SQL Server 2000存放目前使用的表中,它是一个全局的资源,临时表和存储程序可供所有用户使用。每次SQL Server 2000启动时它会自动重建并且重设为默认大小,使用中它会依需求自动增长。
⑤Northwind数据库:是SQL Server 2000提供的范例数据库,它包含一个称为Northwind Traders公司的销售数据库。
⑥Pubs数据库:也是一个SQL Server 2000提供的范例数据库,它包含一个书籍出版公司的数据库范例。 7.3 SQL Server 2000中主要有哪些工具?各有哪些功能?
答:①查询分析器;执行T-SQL的最佳轻量级工具,是最重要的工具之一。
②导入和导出数据:提供了导入、到处以及在SQL Server 2000和OLE DB、ODBC及文件间转换数据的功能。 ③服务管理器:可以用来启动和停止SQL Server的主要服务和指示其当前状态。
④服务器网络实用工具:是SQL Server 2000服务器端的网络配置界面,能够配置SQL Server与用户的通信方式。 ⑤客户端网络实用工具:可以用来配置客户端-服务器端的链接。 ⑥链接丛书:提供了联机文档,包括有关操作的说明。
⑦企业管理器:用来管理数据库的应用程序,是最重要的工具之一。
⑧事件探查器:可以监察SQL Server的运行情况和时间,并将选定的信息显示在屏幕上,或记录在表、文件之中。 ⑨在IIS中配置SQL XML支持:可以用来配置SQL Server 2000中的XML支持功能。 7.4 什么是服务管理器?有哪些优点?
答:服务管理器可以用来启动、暂停和停止SQL Server的服务,在没有启动SQL Server服务时不能进行数据库操作。 优点:①是一种DBA工具,使用它可以启动指定的SQL Server实例与进程。 ②提供了在任意服务器上启动和停止任意SQL Server进程的简便方法。 ③提供了对于SQL Server进程运行状态的可视化指示。 7.5 什么是查询分析器?有哪些优点?
答:查询分析器提供了图形界面来执行一个或多个T-SQL语句。
用户以文件的方式编辑T-SQL语句,然后发送给服务器,并接受执行的结果。使用这个工具,用户可以交互的设计
和测试T-SQL语句、批处理和脚本。 7.6 什么是企业管理器?有哪些优点?
答:企业管理器是用户管理SQL Server 2000的主要工具和图形界面。
在企业管理器中可以完成几乎所有的管理工作;也能够连接或者注册多个SQL Server的实例,从而减少管理不同服务器的工作。
7.7 什么是存储过程?有哪些优点?
答:存储过程是存放在服务器上预编译好的SQL语句。
其优点主要有提供了安全机制、改进了执行性能、减少了网络流量和执行代码的重要性。 7.8 什么是触发器?有哪些优点?
答:触发器是SQL Server是程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程。 触发器的开销非常低,运行触发器所占用的时间主要花费在引用其他存于内存或磁盘上的表上,使用触发器还可以使用自
定义的错误信息,实现多表的级联修改等功能。 7.9 什么是用户自定义函数?有哪些优点和缺点? 答:SQL Server 2000允许用户创建自己的自定义函数。其同时具有试图和存储过程的优点,它可以像试图一样用在select语句的from子句中,而且它还可以接受参数。缺点是牺牲了可移植性。 7.11 在数据库的导入和导出工作的功能是什么?
答:它可以完成多个数据库之间的数据转移和转换。
7.12 用户在访问SQL Server数据库的数据,必须经过哪三个认证过程? 答①身份验证;
②验证用户是否是该数据库的合法用户;
③当用户操作数据库中的数据或对象时,他必须具有所要进行操作的操作权; 7.13 SQL Server 2000中,有哪两种身份认证模式? 答:windows身份验证模式和混合验证模式。 7.14 什么是角色?其作用是什么?
答:具有相同权限的用户就称为角色。其作用是:有了角色就不用直接管理每个具体的数据库权限,而只将数据库用户放到合适的角色即可,当工作发生变化时,只要更改角色的权限无需改变角色中的成员。 7.15 什么是T-SQL?
答:由于标准的SQL的DML只能用于修改或返回数据,没有提供用于开发过程和算法的编程结构,也没有包含用于控制和调整数据库专用的命令。所以每种功能完备的数据库产品必须使用一些各自专有的SQL语言扩展来弥补SQL标准的一些不足之处,在SQL Server中这种扩展称为Transact-SQL,简称T-SQL;
7.16 试解释下列名词:临时表、局部临时表、全局临时表、表变量。
答:临时表:是临时的适合用来在不同的对象之间传递数据或者为临时的任务短时间保存数据 ; 局部临时表:创建时必须使用由字符“#”开头的表名; 全局临时表:创建时必须使用由两个字符“#”开头的表名;
表变量:类似于临时表,优点在于它存于内存中表变量和变量有相同的作用域和生命周期;
第八章
8.1 PowerBuilder有哪些特点?
答:①采用面向对象的编程方法和事件驱动的工作原理; ②支持跨平台开发,具有开放的数据库连接系统; ③无须记住各种语句格式即可轻松编写语句; ④人性化设计,大大提高了程序员的编程效率; ⑤独特的库文件画板和层次清晰的系统资源树;
⑥系统提供11种不同“显示风格”的数据窗口,以满足不同用户的需求; ⑦提供了规范化的工作空间对象,让程序员更方便的管理创建的应用对象; 8.2PowerBuilder 9.0的开发空间有那三个层次? 答:工作空间、目标和库文件;
8.3什么是“数据窗口”?他有什么特点?
答:数据窗口是一个对象,它包含了对数据库中数据进行特定操作的信息。只要定义好一个数据窗口对象,以后就可以在多个应用程序中使用该数据窗口对象;数据窗口式封装了对数据库中数据操作的对象,他极大的方便了应用程序对数据库的使用;数据窗口是一个智能化的窗口,在数据窗口中,用户不必使用SQL语句就可以对数据库进行查询、插入、删除和修改操作。
第九章
1.在面向对象技术中有哪些基本数据类型?有哪些复合数据类型? 基本数据类型:浮点型,字符,字符串,布尔型,枚举型。
复合数据类型:行类型,数组类型,列表类型,包类型,集合类型。
2.什么是对象联系图?图中椭圆,小圆圈,单箭头,双箭头,双线箭头,双向箭头这些结构各代表什么含义?
对象联系图是对ER图的扩充,在数据结构之间允许嵌套和递归,能够真实地反映现实世界数据之间的各种联系。 1) 椭圆代表对象类型(相当于试题类型)
2)小圆圈表示属性是基本数据类型(整型,实型,字符串型)
3)单箭头表示属性值是单值(属性可以是基本数据类型,也可以是另一个对象类型) 4)双箭头表示属性值是多值(属性可以是基本数据类型,也可以是另一个对象类型) 5)双线箭头表示对象类型之间超类与子类联系。(从子类指向超类)
6)双向箭头表示两个属性之间值的联系为逆联系。 3.什么是UML?
UML适用于各类系统的建模,为了实现这种大范围应用能力,UML被定义成比较粗放和具有普遍性,以满足不同系统的建模。通过提供不同类型生动的图,UML能表达系统多方面的透视,这些图有类图,用例图,状态图,组件图等9种。
4. 类图:描述了系统的静态结构,包括类和类图间联系。 类被表示为三个部分组成的方框。 对象是类的实例。
关联是对类的实例之间联系的命名,相当于ER模型中的联系类型。 联系元数:与关联有关的类的个数,称为关联元数或度数。
关联角色:关联的端部,也就是与关联相连的类,称为关联角色。
重复度:重复度是指在一个给定的联系中有多少对象参与,即关联角色的重复度。 关联类:类图中关联本身也可以有属性或自己的操作,称为“关联类”,在类图中关联类用虚线与关联线相连。 抽象类是一种没有直接对象,但他的子孙可以有直接对象的类。 具体类是指有直接对象的类。
概化:从子类到超类的抽象化过程。 特化:从超类到子类的具体化过程。
聚合表达了成分对象和聚合对象之间的“is part of”(一部分)的联系,聚合实际上是一种较强的形式的关联联系,在类图中,用空的菱形表示。
复合:一种较强形式的聚合,用实心菱形表示。 5.类图中的重复度与ER图中实体的基数有什么异同?
重复度类似于ER模型中实体基数的概念。但这是两个相反的概念。实体基数是指与一个实体有联系的另一端实体数目的最小、最大值,基数应写在这一端实体的边上。而重复度是指参与关联的这一端对象数目的最小、最大值,重复度应写在这一端类的边上。
8.ODBC技术与传统的数据库编程方式有什么区别/ 传统的数据编程方式是“主语言+DML”。虽然ANSI和ISO定义了关系数据库查询语言标准SQL,但是在ODBC技术出现之前,一个特定的前端应用却不能访问不同数据库服务器上的数据。
各厂商的SQL版本不同,每个RDBMS厂商都对标准SQL进行了独特的扩充或解释,使得不同的RDBMS提供的SQL互不兼容。
不同厂商的RDBMS在客户机与数据库服务器之间使用了不同的通信协议。
而与此同时,RDBMS产品却迅速增加,因此有必要建立一个公共的、与数据无关的应用程序设计接口。所谓公共接口API就是为开发者提供单一的编程接口,这样同一个应用程序就可以访问不同的数据库服务器。 9.ODBC技术有什么作用?其卓越贡献是什么?
ODBC为应用程序提供了一套CLI函数库和基于DLL的运行支持环境。 CLI:Call-Level Interface,调用层接口 DLL:Dynamic Link Library,动态链接库
ODBC的卓越贡献是使用应用程序具有良好的互用性和可移植性,并且具备同时访问多种DBS的功能,从而克服了传统数据库应用程序的缺陷。对用户来说,ODBS驱动程序屏蔽掉了不同DBS的差异。 10.ODBC的体系结构有哪几层?试述各层之间的联系。 ODBC是一个分层体系结构,由纵向四部分构成,
·ODBC数据库应用程序:用宿主语言和ODBC函数编写的应用程序用于访问数据库。 ·驱动程序管理器:为应用程序加载、调用和卸载DB驱动程序。
·DB驱动程序:处理ODBC函数,想数据源提交用户请求执行的SQL语句。 ·数据源:是DB驱动程序与DBS之间连接的命名。
11.ODBC数据应用程序的主要功能是什么?主要完成哪些任务?
应用程序的主要功能是:调用ODBC函数,递交SQL语句给DBMS,检索出结果,并进行处理。应用程序要完成ODBC外部接口的所有工作。
应用程序主要完成以下8个任务: ·连接数据库
·向数据源发送SQL语句
·为SQL语句执行结果分配存储空间,定义所读取的数据格式
·读取结果 ·处理错误
·向用户提交处理结果
·请求事务的提交和回退操作 ·断开与数据源的连接
12.什么是驱动程序管理器?驱动程序管理器的主要功能是什么?
驱动程序管理器是一个动态链接库,用于连接各种DBS的DBMS驱动程序,管理应用程序和DBMS驱动程序之间的交互作用。
驱动管理器的主要功能是;
·为应用程序加载DBMS驱动程序
·检查ODBC调用参数的合法性和记录ODBC函数的调用 ·为不同驱动程序的ODBC函数提供单一的入口 ·调用正确的DBMS驱动程序 ·提供驱动程序信息
13.什么是DBMS驱动程序?主要任务是什么?
应用程序通过调用驱动程序所支持的函数来操纵数据库。驱动程序也是一个动态链接库(DDL)。当应用程序调用函数
SQLconnect时,驱动程序管理器加载驱动程序。 驱动程序完成以下任务:
·建立应用程序与数据源的连接
·向数据源提交用户请求执行的SQL语句
·根据应用程序的要求,将发送给数据源的数据或是从数据源返回的数据进行数据格式和类型的转换 ·把处理结果返回给应用程序
·将执行过程中的DBS返回的错误转换成ODBC定义的标准错误代码,病返回给应用程序 ·根据需要定义和使用光标 14.什么是ODBC数据源?
数据源是驱动程序与DBS连接的桥梁。数据源不是DBS,而是用于表达一个ODBC驱动程序和DBMS特殊连接的命名。
在连接中,用户数据源名来代表用户名、服务器名、所连接的数据库名等,可以将数据源名看成是与一个具体数据库建立的连接。 15.什么是SQL\\CLI?
公共接口API就是为开发者提供单一的编程接口,这样同一个应用程序就可以访问不同的数据库服务器。 在SQL标准中,被称为“调用层接口”。 SQL\\CLI是ODBC技术的延续。CLI定义了一套可以再宿主语言调用的公共函
数,每一个函数具有一个名称和一个要求的算法。使用SQL\\CLI时,函数调用中SQL语句将作为字符串参数动态地创建和传递。
16.在SQL\\CLI中,宿主程序与数据库交互的有关信息记录在运行时数据结果中。请回答这些信息将保存在那四种类型的记
录中?这四种记录用于保存什么信息?
此信息保存在以下四种类型的记录中,表示为C数据类型中的复合结构: ·环境记录:用作为一个容器,设置环境信息,以保存一个或多个数据库连接
·连接记录:保存一个特定数据库连接所需的信息,表示应用系统与数据源之间的连接。 ·语句记录:保存一个SQL语句所需的信息。 ·描述记录:保存元祖或参数的有关信息。
17.有哪些典型的数据库应用系统开发工具?这些工具有些什么共同的特点?
软件开发工具和环境有PowerBuilder9.0、Delphi7.0、VisualBasic6.0和Developer/2000等。这些工具都可以在客户机撒
谎那个通过ODBC接口与诸如Oracle、Sybase、SQLSever等服务器端的数据库相连。