对于带日志的数据库(logged database),在事务运行过程中,系统将每个更新操作都记录到日志文件中, 并且包含事务开始标记、事务结束标记或“事务回滚”标记。如果该事务在运行过程中出现故障, 那么恢复子系统将对该事务做撤销处理(undo)。具体做法就是反向阅读日志文件,对该事务的每一个更新操作做反操作。注意,“事务回滚”作为事务一部分也要向逻辑日志写纪录。当一个事务很大时, 有可能在其运行过程中横跨所有的日志文件。此时所有的逻辑日志文件都包含该活动事务,包含活动事务的逻辑日志文件是不能被释放的。如果此事务还没有结束,或者因为出错需要“回滚”,那么就需要继续写逻辑日志而此时没有空闲的日志空间可被利用,就会造成了系统瘫痪。Informix管理系统为了避免此类情况发生定义了一个参数LTXHWM,一般情况下,设置它的值为50, 即一个事务横跨的逻辑日志达到整个逻辑日志模块的50%就被定义 为长事务.系统将强制其“回滚”(rollback).
由于存储空间的有限性,业务的快速增长,,升级步伐没有跟上,我们银行业务中长事务偶尔会在关键时出现,如年终结转、季度结息、删除大数据表、卸数重新装载数据库等操作。解决这类问题最根本的办法就是增加逻辑日志空间。但有时事出突然,临时不能解决,又不能影响正常营业,必须当时解决问题。权益之计可以取消数据库的带日志状态,改为 no logged. 此状态下事务的更新操作不再往逻辑日志文件中写,给我们带来的风险是:事务运行过程中出现故障时,恢复子系统就不能“回滚”(roll back)该事务,数据库就被置于\不一致状态\。 但只要按照一定的步骤来处理。就能把风险降到最低或者没有风险。
2.5. 数据库系统体系结构有哪几类,每种类型的特点是什么,关键技术有哪些? 数据库系统分为:集中式数据库系统、客户/服务器数据库系统、并行数据库系统、分布式数据库系统、
集中式数据库系统的特点:将物理数据集中存放在主机上,由主机上的数据库管理系统统一管理整个数据库,用户可从终端上发出数据操作命令,经主机上的数据库管理系统接收处理后,再将所需数据送回终端。集中式数据库系统技术已成熟,数据共享能力、恢复能力较强,但所有数据库的操作均由主机管理,主机负荷较大,一旦主机故障,则导致系统全部瘫痪。
分布式数据库系统使各部门经常要用的数据能够就近存放,从而分散了工作负荷,可靠性较高,局部发生故障不至于引起整个系统瘫痪。分布式数据库系统它在地理位置上是分布在一个含有多个数据库管理系统的计算机网络中,这些数据库管理系统构成分布式数据库管理系统,在分布式数据库管理系统中,每个用户所使用的数据可以不存储在自己使用的计算机上,而是由分布式数据库管理系统在机器之间通过网络从其它机器上传输过来。
客户/服务器数据库系统将数据处理任务分为两个系统,客户机运行数据库应用,数据库服务器运行实际的数据库管理系统(DBMS)。
并行数据库系统是指利用多处理器平台的能力,同时运行多个事务处理,具有支持分布式操作、多线程处理、联机事务处理和决策处理等能力,从而提高数据库系统的响应时间和事务吞吐量。
① 并行数据库的体系结构:并行数据库的体系结构有3种;共享内存、共享磁
盘和无共享资源结构。
② 并行处理技术:并行数据库系统通常采用多进程多线索结构,提供以下4种
不同粒度的并行性: ·不同用户事务间的并行性;
·同一事务内不同查询间的并行性;
·同一查询内不同操作间的并行性; ·同一操作内的并行性。
③ 线程和进程:在一个事务处理中,每个用户的连接都能由操作系统进程或线程〔由操作系统生成的工作单元〕分别完成。由于线程使用很少的内存和CPU资源,因此线程的效率比“进程”的效率高。
2.6.决策支持类应用与OLTP应用对于数据库系统的要求有哪些不同,支持前者的关键
技术有哪些,并简述之。
OLTP:On-Line Transaction Processing在线事务处理。
DSS Decision Support System 决策支持系统。DSS是在管理信息系统(MIS)基础上发展起来的。MIS是利用数据库技术实现各级管理者的管理业务,在计算机上进行各种事务处理工作。DSS则是要为各级管理者提供辅助决策的能力。
决策支持系统主要是以模型库系统为主体,通过定量分析进行辅助决策。其模型库中的模型已经由“数学模型”扩大到数据处理模型、图形模型等多种形式,可以概括为广义模型。决策支持系统的本质是将多个广义模型有机组合起来,对数据库中的数据进行处理而形成决策问题大模型。决策支持系统的辅助决策能力从运筹学、管理科学的单模型辅助决策发展到多模型综合决策,使辅助决策能力上了一个新台阶。
OLTP 数据库 DSS 数据库 OLTP = online transaction processing 联机事物处理
例如:飞机订票,网上交易,BBS等 大量的在线用户和DML操作 大量基于索引的查询
DSS = data warehousing 数据仓库
例如:各种资源资料查询系统 很少的DML操作 大量的全表扫描的查询
用B-tree,reverse key索引,定期索引重
用bitmap索引
建
需要较多的小的“回退段” 不要用分布式查询
需要较少的大的“回退段” 用分布式查询
数据对象的存储参数pctfree 20 或者更
数据对象的存储参数pctfree 0
高
共享程序代码和各种变量常量 启动多线索服务 使用较大的日志文件 listener开多个响应端口
字符变量和线索
使用大的数块,db_file_mutiblock_read_count 使用较小的日志文件 增加sort_area_size
据
注:(数据操作语言DML,即Data manipulation Language)
联机分析处理 (OLAP) 的概念最早是由关系数据库之父E.F.Codd于1993年提出的,他同时提出了关于OLAP的12条准则。OLAP的提出引起了很大的反响,OLAP作为一类产品同联机事务处理 (OLTP) 明显区分开来
当今的数据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing)、联机分析处理OLAP(On-Line Analytical Processing)。OLTP是传统的
关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。下表列出了OLTP与OLAP之间的比较。
OLTP OLAP 用户 功能 DB 计 数据 存取 设操作人员,低层管理人员 日常操作处理 面向应用 决策人员,高级管理人员 分析决策 面向主题 当前的, 最新的细节的, 二维的分立历史的, 聚集的, 多维的集成的, 统一的 的 读/写数十条记录 读上百万条记录 复杂的查询 上百个 100GB-TB 工作单简单的事务 位 用户数 上千个 DB 小
大100MB-GB 2.7. 面向对象的数据库是如何产生的,其基本原理是什么?有哪些创新特性? 面向对象的数据库
OODB是面向对象方法与数据库技术的结合领域。OODB既需要具备传统数据库的必备功能,也需要具有面向对象方法的基本特征。例如:采用面向对象的数据模型,把对象作为存储与检索单位,支持继承与封装,提供面向对象的数据定义语言和数据操纵语言等等。目前OODB的研究与开发有三种途径:
.在传统的数据库管理系统中增加面向对象的功能; .在面向对象的编程语言中增加数据库的功能;
.开发全新的、自成体系的面向对象的数据库。OODB是目前的一个研究热点,需要解决的问题既有理论方面的也有技术方面的。
有些人把面向对象的数据库设计(即数据库模式)思想与面向对象数据库管理系统(OODBMS)理论混为一谈。其实前者是数据库用户定义数据库模式的思路,后者是数据库管理程序的思路。用户使用面向对象方法可以定义任何一种DBMS数据库,即网络型、层次型、关系型和面向对象型等都可以,甚至文件系统设计也照样可以遵循面向对象的思路。
面向对象的思路或称规范可以用于系统分析、系统设计、程序设计,也可以用于数据结构设计、数据库设计。OOSE(面向对象软件工程)自上至下、自始至终地贯彻面向对象思路,是一个一气呵成的统一体。面向对象的数据库设计只是OOSE(面向对象软件工程)的一个环节
2.8.ri?rj一定等于rj? ri吗?在什么条件下ri?rj= rj? ri成立? 2.9.为了设计一个健壮的分布式系统,你必须知道可能发生哪种类型的失败。 2.9.1.请列出在分布式系统中可能的失败类型:
这里所说的失败就是指故障。分布式数据库可能发生的故障有:在局部数据库中发
生“数据丢失故障”及通讯系统故障。
通讯系统故障又包括“报文丢失”和“网络分割”。
局部数据库数据丢失主要由存储介质的故障引起的故障,或是主存中的数据丢失或出错;或是辅助存储器中的数据丢失或出错;或是命令无法执行而数据没错等。
报文丢失是指传送过程中报文的丢失导致数据不正确。这时必然得不到一个肯定的回答,或者报文正确传送了,而应答信息未正确传到。这种报文丢失造成系统的等待状态可以通过一个有限的协议加以解决,即传送报文的数目是有限的。传送的过程一定在有限的时间内完成。因此当一段时间的延迟以后仍收不到回答则认为报文丢失,此时将重发报文。若重新发送若干次后仍然得不到回答,则认为网络发生故障或场地故障。
网络分割指通讯网络中一部分场地和令一部分场地之间完全失去联系,这时称为网络分割。
2.9.2.在你列出的失败类型中,哪些也可能发生在集中式系统中?
局部数据库数据丢失也可发生在集中式的数据库中。
2.9.3.对于每一种失败类型,在失败发生情况下,两段提交机制如何保证事务的原子
性?
《分布式数据库》P123场地故障。
3. 九九年秋季试题
3.1.问答题
3.1.1.分布式数据库系统在系统结构、模式结构、功能模块等方面有何特点? 分布式数据库系统的系统结构
分布式数据库系统的系统结构是C/S模式。在网络环境中,每个具有多用户处理能力的硬件平台都可以成为服务器,也可成为工作站。多个服务器上的数据库对用户来说是一个逻辑上的单一数据库整体,数据一致性、完整性及安全性都是对这一逻辑上的单个数据库进行控制的。服务器对共享数据的存取进行管理,而非数据库管理系统的处理操作可以由客户机来完成。
分布式数据库系统的模式结构
在集中式数据库系统中为了实现较高的数据逻辑独立性和物理独立性,一般采用三级模式体系结构。在分布式数据库系统中为了实现场地透明(分布透明),具有更多级模式。
分布式数据库系统的模式结构分为两部分:集中式数据库的模式结构,代表各场地上局部数据库系统的模式基本结构;分布式数据库系统增加的模式级别,包括全局外模式、全局概念模式、分片模式及分布模式。
(1)全局外模式:它为全局概念模式的子集,表示全局应用所涉及的数据部分。 (2)全局概念模式:它定义分布式数据库的全局逻辑结构。
(3)分片模式:由于分布式数据库的数据可按集中、重复、分割混合方式分布,分片模式用于说明如何放置数据库的特殊部分。分布式数据库可划分逻辑片,逻辑片可以是数据项分割,也可以是数据值分割,或是上述两种。逻辑片可以任意定义,但它们之间是相关的。它们组成不相交或者是不重迭的数据库子集。分片模式定义片段、片段与概念模式之间的映像。
(4)分布模式:它定义片段存放结点。一个片段在物理上可分布到不同结点。根据分
布模式提供的信息,一个全局查询可分为若干子查询,每一个子查询所访问的数据属于同一场地的局部数据库。
分布式数据库系统中所增加的模式和相应的映像,使分布式数据库系统具有分布透明性。
分布式数据库系统的功能模块
3.1.2.给出两种2PL协议,并比较它们的优点缺点? 2PL协议适用条件很简单,要求一个事务内部的所有加锁操作应在所有撤消锁操作之前发生。
数据库系统中采用的常规并发控制技术(如2PL)在不适合工作流系统的情况下,如果采用2PL协议,则所涉及的资源将被长期阻塞,而导致整个系统可用性极低。我们采用分层事务模型的方法,提前提交子事务(任务),释放被封锁住的资源,避免底层子事务(任务)冲突造成的阻塞。这样,任务的正确性由任务调度系统负责,工作流的正确性由工作流系统负责。并且,在定义工作流时,用户必须向系统提供关于工作流的正确性的语义信息。
3.1.3.解释为什么对象类的多继承存在二义性,并通过例子加以说明。 P112,“虚基类”。
3.1.4.对于下述情况,哪种并行性(查询间并行性、操作间并行性、操作内并行性)
有助于正加系统的吞吐量:
查询间并行处理:是指在多处理器和多磁盘上并行执行单个查询。这种并行处理对于加快运行时间较长的查询来说是十分有效的。而在每个查询都是串行执行的任务中,查询间并行处理是没有什么效果的。查询间并行处理有利于提高单个查询的响应时间,而对提高系统的吞吐能力并没有多大帮助作用。 单个查询能以如下两种方式执行:
操作间并行处理:并行执行一个查询表达式中的不同操作,从而加速执行一个查询。 操作内并行处理:并行执行查询内的每个独立的操作,如排序、选择、投影和连接,从而加速该查询的处理速度。 据此推断:
(a) 具有大量小查询的时。
据此推断:具有大量小查询时,应该用查询间并行性 (b) 有些查询非常大且系统的磁盘和处理机数量很多时。
有些查询非常大且系统的磁盘和处理机数量很多时应该用操作间并行性和操作内并行性。
3.2. 下面是某个公司人事数据库的两个全局关系
EMP={eno,ename,title,salary,addr,phone,dno};DEPT={dno,dname}该公司共有3个部门,dno分别为0,1,2。要求将DEPT关系和EMP关系的部分属性(ename,addr,phone)保存在部门0的场地上,EMP关系的部分属性(title,salary)保存在所在部门场地上。根据上述要求,
3.2.1.将全局模式进行分片,写出分片定义和分片条件。 答:对关系PAY分片 分片定义和分片条件