(计算机应用技术专业论文)银行支付系统数据一致性和完整性的研究.pdf_第1页
(计算机应用技术专业论文)银行支付系统数据一致性和完整性的研究.pdf_第2页
(计算机应用技术专业论文)银行支付系统数据一致性和完整性的研究.pdf_第3页
(计算机应用技术专业论文)银行支付系统数据一致性和完整性的研究.pdf_第4页
(计算机应用技术专业论文)银行支付系统数据一致性和完整性的研究.pdf_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

山东大学硕士学位论文 摘要 本课题主要结合目前网络应用系统开发中的数据一致性和完整性技术对银行支 付系统在数据一致性和完整性方面采用的关键技术和实现进行分析和研究。网络应用 系统主要实现跨越网络透明访问和处理各种异构信息资源,使其协同工作完成复杂的 应用。它的主要特点是整个应用分布在网络环境下不同的节点上,而这些节点可能具 有不同的环境配置,包括硬件、操作系统、数据库以及其他系统软件等。这种应用分 布的特点决定了网络应用系统中数据的分布性。如何保证分布数据之间的一致性以及 整个系统数据的完整性成为网络应用系统开发中不容忽视的一个问题。如果数据的一 致性和完整性无法保证,那么系统的数据将失去其实际的应用价值。因此对网络应用 系统开发中的数据一致性和完整性技术的研究具有十分重要的实用价值。 银行支付系统作为金融业的一个网络应用系统,是在中国现代化支付系统 ( c n a p s ) 建设的基础上实现的。它主要完成全国不同金融机构间的支付结算业务, 如:汇兑、委托收款等。该系统从结构上包括银行行内客户端系统、行内服务端系统、 前置机系统三大部分。一笔支付业务的办理,其数据需要经过由行内客户端至行内服 务端,再由行内服务端至前置机,最终发送至c n a p s 或者相反的过程。数据在系统的 各部分之间进行传输,并进行不同的存储和处理。如果数据在传输过程中被篡改或受 到其他破坏,则将造成数据的不完整,由这些不完整的数据产生的处理结果是可想而 知的。同样,如果数据在存储和处理过程中产生异常,将造成同一项数据在物理上的 不一致或者不同数据在逻辑上的不致,这种不一致性将给系统带来无法预料的灾 难。数据一旦失去了一致性和完整性,就意味着数据的正确性存在问题,这种问题轻 则影响局部业务的处理,严重时将会导致整个支付业务秩序的混乱。因此如何保证业 务数据在传输和处理中的完整性以及在系统各部分中的一致性成为关系到整个系统 正确稳定运行的重要条件。 本文重点研究:首先对目前网络应用系统开发中数据一致性和完整性的保障技术 进行了分析和探讨,其中包括应用服务进程的并发控制、数据库的事务管理、数据的 访问控制、数据的完整和可靠传输、数据存储以及其他一些硬件加密技术等。然后结 合银行支付系统的业务流程及功能,对系统在数据一致性和完整性方面需要进行控制 的环节进行了分析,包括支付往帐数据的一致性和完整性、支付往报数据的致性和 完整性、支付来帐数据的一致性和完整性、支付来报数据的一致性和完整性以及数据 传输中的一致性和完整性等等。最后对银行支付系统的各个部分,从录入校验、并发 控制、事务管理、数据传输、权限控制等方面对系统在数据一致性和完整性方面采用 的关键技术及实现进行了论述。本课题的分析和研究,为银行支付系统在数据一致性 和完整性方面的保证提供了切实可行的实现技术,同时也对其他网络应用系统开发在 山东大学硕士学位论文 数据一致性和完整性保证方面提供了具有实践和借鉴意义的解决方案。 关键词:一致性和完整性、并发控制、事务管理、访问控制、数据传输 i i 山东大学硕士学位论文 a b s t r a c t t h et h e s i sm a i n l ya n a l y s e sa n dr e s e a r c h e st h ek e yt e c h n o l o g i e sa d o p t e d a n di m p i e m e n to ft h ed a t ac o n s i s t e n c ya n di n t e g r a l i t yi nt h eb a n kp a y m e n t s y s t e m ,c o m b i n i n gt h et e c h n o l o g yi nt h en e t w o r ka p p i i c a t i o nd e v e l o p m e n ta t p r e s e n t t h en e t w o r ka p p l i c a t i o n sa c c o m p l i s ht h ea c c e s sa n dp r o c e s st ot h e i s o m e r o u si n f o r m a t i o nt r a n s p a r e n t l y , a n dm a k et h e mw o r kc o o p e r a t i v e l yt o f i n i s ht h ec o m p l i c a t e da p p l i c a t i o n s i t sc h a r a c t e r i s t i ci st h a tt h ew h o l e a p p l i c a t i o ni sd i s t r i b u t e da td i f f e r e n tn o d e sw i t hd i f f e r e n te n v i r o n m e n t c o n f i g u r a t i o n s ,i n c l u d i n gt h eh a r d w a r e ,t h eo p e r a t i n gs y s t e m ,t h ed a t a b a s ea n d o t h e rs y s t e ms o f t w a r ee t c t h ea p p l i c a t i o nd i s t r i b u t i o nd e t e r m i n e st h ed a t a d i s t r i b u t i o ni nt h en e t w o r ks y s t e m i th a sb e c o m eap r o b l e mt h a tc a nn o tb e n e g l e c t e dh o wt oe n s u r et h ec o n s i s t e n c ya n di n t e g r a l i t yo ft h e s ed i s t r i b u t e d d a t a i fi td o e s n tw o r k ,t h ed a t aw i l ll o s et h e i rp r a c t i c a lv a l u e t h e r e f o r e , t h er e s e a r c ha b o u tt h et e c h n o l o g i e sf o rt h ed a t ac o n s i s t e n c ya n di n t e g r a l i t y i sv e r yw o r t h f u l a saf i n a n c i a ln e t w o r ka p p l i c a t i o n ,t h eb a n kp a y m e n ts y s t e mi sb a s e do n t h ec n a p s i tm a i n l yd e a l sw i t ht h ep a y m e n ta n db a l a n c ea m o n gt h ed i f f e r e n t f i n a n c i a li n s t i t u t i o n si no u rc o u n t r y ,s u c ha st h e e x c h a n g e ,t r u s tm a k i n g c o l l e c t i o n sa n ds oo n t h eb a n kp a y m e n ts y s t e mh a st h r e ep a r t ss u c ha st h e b a n ki n n e rc l i e n t ,t h eb a n ki n n e rs e r v e ra n dt h ep r e p o s i t i v es y s t e m w h e na p a y m e n tb u s i n e s si sd e a l e dw i t h ,t h ed a t aw i l lh a v et og of r o mt h eb a n ki n n e r c l l e n tt ot h eb a n ki n n e rs e r v e r ,a n dt h e nt ot h ep r e p o s i t i v em a c h i n e ,a n d f i n a l l yt ot h ec n a p so rt h ec o n t r a r yp r o c e s s t h ed a t ai st r a n s f e r r e da m o n g t h e s ep a r t so ft h es y s t e m ,a n di ss t o r e da n dp r o c e s s e dd i f f e r e n t l y i ft h ed a t a i sm o d i f i e dp u r p o s e l yo rd a m a g e d ,t h e yw i l ln o tb ei n t e g r a t e d t h er e s u l tf r o m t h ed a t ai s o b v i o u s s i m i l a r l y ,i f t h ed a t a s t o r a g ea n dp r o c e s sb e c o m e a b n o r m a l ,t h es a m ed a t aw il ln o tb ec o n s i s t e n tp h y s i c a l l ya n dt h ed i f f e r e n t d a t aw i l ln o tb ec o n s i s t e n tl o g i c a l l y t h en o n c o n s i s t e n c yw i l lb r i n gt h e u n e x p e c t e dd i s a s t e r o n c et h ed a t al o s et h ec o n s i s t e n c ya n di n t e g r a l i t y ,i t m e a n st h ed a t ah a sb e e nn o tv a l i d t h e s ew i i ii n f l u e n c et h en o r m a lp r o c e s s o fp a y m e n tb u s i n e s s t h u sk e e p i n gt h ed a t ac o n s i s t e n c ya n di n t e g r a l i t yh a s b e c o m ea ni m p o r t a n tc o n d i t i o nc o n c e r n e dw i t ht h er u n n i n gc o r r e c t l yf o rt h e w h o l es y s t e m i l l 山东大学硕士学位论文 t h ef o c a lp o i n t so ft h et h e s i s :f i r s t l y ,a n a y s ea n dr e s e a r c ht h e t e c h n o l o g yu s e dt oe n s u r et h ed a t ac o n s i s t e n c ya n di n t e g r a l i t yi nt h en e t w o r k a p p l i c a t i o nd e v e l o p m e n t ,i n c l u d i n gt h es u h s e q u e n c ec o n t r o lo ft h ea p p l i c a t i o n p r o c e s s e s ,t h et r a n s a c t i o nm a n a g e m e n to ft h ed a t a b a s e ,t h ea c c e s sc o n t r o lf o r t h ed a t a ,t h ec o m p l e t ea n dr e l i a b l ed a t at r a n s m i s s i o n ,t h ed a t as t o r a g ea n d s o m eo t h e re n c r y p tt e c h n o l o g yw i t hh a r d w a r ea n ds oo n t h e n ,c o m b i n i n gt h e b u s i n e s sf l o w sa n df u n c t i o n so ft h eb a n kp a y m e n ts y s t e m ,a n a l y s et h ep r o b l e m s a b o u tt h ed a t ac o n s i s t e n c ya n di n t e g r a l i t yi nt h es y s t e m ,i n c u d i n gt h ep a y m e n t g o i n ga c c o u n t ,t h ep a y m e n tg o i n gi n f o r m a t i o n ,t h ep a y m e n tc o m i n ga c c o u n t ,t h e p a y m e n tc o m i n gi n f o r m a t i o na n ds of o r t h l a s t l yf o rt h e s ep a r t so ft h eb a n k p a y m e n ts y s t e m ,f r o mm a n yc o n t r o la s p e c t s ,d e s c r i b et h ek e yt e c h n o l o g i e su s e d f o rt h ed a t ac o n s i s t e n c ya n di n t e g r a l i t y t h ea n a l y s i sa n dr e s e a r c hi nt h e t h e s i sa f f o r dp r e s s i n ga n df e a s i b l et e c h n o l o g i e s f o r t h eb a n kp a y m e n t s y s t e m ,a n da l s op u tf o r w a r dp r a c t i c a la n dr e f e r e n t i a ls c h e m ef o rt h ea s s u r a n c e o ft h ed a t ac o n s i s t e n c ya n di n t e g r a l i t yf o ro t h e rn e t w o r ka p p l i c a t i o n d e v e l o p m e n t k e y w o r d s t h ed a t ac o n s i s t e n c ya n di n t e g r a l i t y ,t h es u b s e q u e n c ec o n t r o l , t h et r a n s a c t i o nm a n a g e m e n t ,t h ea c c e s sc o n t r o l ,d a t at r a n s m i s s i o n i v 山东大学硕士学位论文 原创性声明和关于论文使用授权的说明 原刨性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独立 进行研究所取得的成果。除文中已经注明引用的内容外,本论文不包含 任何其他个人或集体已经发表或撰写过的科研成果。对本文的研究作出 重要贡献的个人和集体,均已在文中以明确方式标明。本声明的法律责 任由本人承担。 论文作者签名:圣差 日期: 泓r d 址o 关于学位论文使用授权的声明 本人完全了解山东大学有关保留、使用学位论文的规定,同意学校保留或向国家有关 部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅;本人授权山东大学可以将 本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或其他复制手 段保存论文和汇编本学位论文。 ( 保密论文在解密后应遵守此规定) 论文作者签名:至鑫导师签名:亟堡丝日期: k | o 山东大学硕士学位论文 1 引言 1 1 课题背景与意义 近几年来,无论是中央银行还是商业银行,都对银行业务的电子化进行了大量投 资。取得了显著的效果。各家商业银行都基本上建立起了全国范围的通讯网络并以网 络为基础实现了银行业务的电子化支付和清算,大大加速银行业务范围和业务模式的 发展。但是随着国内经济的快速增长,对资金的周转速度提出越来越高的要求。为了 减少资金在途时间,并保证资金的安全性,解决商业银行间的跨行汇兑问题,人民银 行建设了全国性的中国现代化支付系统c n a p s 。c n a p s 是从中国的现实情况出发、预 测未来的市场需求以及借鉴外国,特别是发达国家支付系统建设的经验建立起来的。 c n a p s 是一个全国性的大型支付网络与结算系统,从结构上,银行支付系统是 c n a p s 系统的一个组成部分。整个系统的开通将大大降低跨行资金周转的周期,使不 同金融机构之间资金汇划业务由原来的一天甚至多天缩短为几十分钟甚至几分钟,但 与此同时,支付风险也随之增大。所谓支付风险,是在支付过程中,由于伪造支付指 令、付款行清算资金头寸不足或支付系统环境失误等原因,使支付交易延误和失败而 引起的。支付风险的存在,给资金的安全带来很大的威胁。参与支付清算的金融机构, 可能由于一家出现支付风险,波及另一家,因而也产生支付风险,这种风险连锁反应, 可能危及整个支付清算秩序,从而给整个国民经济带来严重的后果。银行支付系统数 据的一致性和完整性关系到整个系统数据的正确性、有效性和相容性,如果无法保证, 将导致系统无法正常运行,从而也将增大系统的支付风险,因此必须采取必要的技术 手段给予保障,将系统的支付风险降至最低。 本课题将对银行支付系统开发中存在的数据一致性和完整性问题进行深入研究 和分析,并结合目前比较成熟的保障技术提出系统在实现中采取的控制技术。通过本 课题的分析和研究,将从应用的角度保证系统处理数据的正确性、有效性和一致性, 增强系统的健壮性,保证系统稳定可靠的运行。 1 2 本课题的工作 银行支付系统的特点是行内系统的数据与前置机系统的数据独立存放在各自的 服务器上,在业务逻辑上二者呈松耦合状态,系统在进行一笔支付业务数据处理时, 首先需要由行内客户端传送至行内服务端,再由行内服务端传至前置机,最终发送至 第1 页 山东大学硕士学位论文 c n a p s 。其间每个子系统都对数据进行了不同的处理,如果在处理过程中任何一个环 节出现数据传送丢失或遭受破坏等,都将导致业务无法正常运行,因此保证数据的一 致性和完整性成为该系统开发中不可忽视的一部分。本课题将结合网络应用开发中在 数据一致性和完整性方面的保障技术,对银行支付系统在数据一致性和完整性保障方 面的问题进行研究和分析,并对系统在这两方面的采用的关键技术及相应实现进行详 细的论述。 1 3 本文的组织 本文的内容按以下结构进行组织: 首先对本课题的提出背景和研究意义进行概要论述; 第一部分对网络应用系统开发中在数据一致性和完整性保障方面的技术进行详 细的分析和研究,主要包括进程并发控制、数据事务管理、数据访问控制、数据 传输等几个方面; 第二部分主要结合银行支付系统的业务流程和功能,对系统在数据一致性和完整 性方面需要进行控制的环节进行了分析,包括支付往帐、支付往报、支付来帐、 支付来报以及数据传输等; 第三部分结合银行支付系统的开发,对其中各个部分阻及各部分之间在数据一致 性和完整性保障方面所采用的关键技术及相应实现进行论述; 最后对本课题的研究内容进行了总结。 第2 页 山东大学硕士学位论文 2 数据一致性和完整性技术 数据的一致性一方面是指物理上的一致,即表示同一个事实的数据应相同,也称 数拓的相容性,如:对数据库中多个地方涉及到的同一个数据项,其数据应该为一致 的状态;另一方面是指逻辑上的一致,即不同数据之间业务逻辑的一致性。因此当交 易作用于多项数据或多台主机处理时,要求所有的数据处理项必须保证同时成功或同 时失败,从而保持数据间的一载和同步。 数据的完整性是指接收方收到的数据与原始定义的数据严格相同,即数据不能被 非授权地修改或删除,并且在数据受损的情况下应能通过数据的备份完全恢复。它包 括数据的正确性和有效性。 数据的一致性和完整性是数据质量的两个重要方面。随着信息化建设的发展,数 据质量目前已成为基于数据仓库、商业智能等管理分析类软件成功应用的关键。建 立在不一致、不准确的数据基础上的分析、挖掘工作得到的只能是一堆毫无意义的数 据和没有任何价值的结论,其中的道理非常简单,即输入的是垃圾数据,输出的还是 垃圾数据( gig0 ,ga rbagei1 1ge trbage0ut ) ,而由此做出 的决策也必然是错误的决策。因此保证数据的一致性和完整性是应用系统设计和开发 中不容忽视的问题,应该在系统开发的各个阶段上采取相应的措施来予以保证。 本章将从应用服务进程的并发控制、数据库的事务管理、数据的访问控制、数据 的完整传输、数据存储几个方面对目前在应用系统开发中常用的一致性和完整性保证 技术进行详细分析和研究。 2 。1 进程并发控制 在分南式系统中的并发诸进程可共享若干系统资源,包括共享文件、共享变量、 共享外设等,进程在共享资源上如何协调工作,才能不至于发生冲突,且保证共享资 源的正确性和完整性,这就涉及到进程并发控制阐题。在集中式系统中进程受中央 c p u 控制,并发进程的协同控制是操作系统及其提供的系统服务的功能。分布式系统 的并发控制有更多的复杂因素要考虑。分布式系统中进程通信模式有同步、异步之分。 在并发进程控制中。对异步通信,消息传输的时间没有任何限制,而对同步通信,刚 设定一个消息传输的最大延迟时间,如若等待超时,则认为对方进程失效。在分布式 系统中,进程的并发控制是通过进程通信来实现的。但是,进程通信有可能因为网络 系统中,进程的并发控制是通过进程通信来实现的。但是,进程通信有可能因为网络 第3 页 山东大学硕士学位论文 2 数据一致性和完整性技术 数据的一致性一方面是指物理上的一致,即表示同一个事实的数据应相同,也称 数据的相容性,如:对数据库中多个地方涉及到的同一个数据项,其数据应该为一致 的状态;另一方面是指逻辑上的一致,即不同数据之间业务逻辑的一致性。因此当交 易作用于多项数据或多台主机处理时,要求所有的数据处理项必须保证同时成功或同 时失败,从而保持数据间的一致和同步。 数据的完整性是指接收方收到的数据与原始定义的数据严格相同,即数据不能被 非授权地修改或删除,并且在数据受损的情况下应能通过数据的备份完全恢复。它包 括数据的正确性和有效性。 数据的一致性和完整性是数据质量的两个重要方面。随着信息化建设的发展,数 据质量目前已成为基于数据仓库、商业智能等管理分析类软件成功应用的关键。建 立在不一致、不准确的数据基础上的分析、挖掘工作得到的只能是一堆毫无意义的数 据和没有任何价值的结论,其中的道理非常简单,即输入的是垃圾数据,输出的还是 垃圾数据( gig0 ,garbage ir lgarbageout ) ,而由此做出 的决策也必然是错误的决策。因此保证数据的一致性和完整性是应用系统设计和开发 中不容忽视的问题,应该在系统开发的各个阶段上采取相应的措施来予以保证。 本章将从应用服务进程的并发控制、数据库的事务管理、数据的访问控制、数据 的完整传输、数据存储几个方面对目前在应用系统开发中常用的一致性和完整性保证 技术进行详细分析和研究。 2 1 进程并发控制 在分布式系统中的并发诸进程可共享若干系统资源,包括共享文件、共享变量、 共享外设等,进程在共享资源上如何协调工作,才能不至于发生冲突,且保证共享资 源的正确性和完整性,这就涉及到进程并发控制问题。在集中式系统中,进程受中央 c p u 控制,并发进程的协同控制是操作系统及其提供的系统服务的功能。分布式系统 的并发控制有更多的复杂因素要考虑。分布式系统中进程通信模式有同步、异步之分。 在并发进程控制中,对异步通信,消息传输的时间没有任何限制,而对同步通信,则 设定一个消息传输的最大延迟时间,如若等待超时,则认为对方进程失效。在分布式 系统中,进程的并发控制是通过进程通信来实现的。但是,进程通信有可能因为网络 第3 页 山东大学硕士学位论文 传输过程中消息中断或破坏而失败。因此,假定分布式系统是建立在可靠网络通信基 础之上,即假设网络连接和传输一定是可靠的,消息从发送方发出之后,一定可以在 规定的时间范围内到达接收方。可靠网络通信屏蔽了网络传输过程中消息丢失以及消 息重发的实现细节,只要在规定时间内不能收到对方的应答,就认为对方进程失效。 分布式系统中的进程失效处理是进程并发控制中一个必须考虑的问题。 为了检查进程是否失效,可为每个进程扩充失效检测服务,专门处理进程失效检 测的轮询。假设对组进程中的每个进程p ,每隔t 秒向所有其他进程发出“pg o o d ” 的消息。消息传输的最大延迟时间是d 秒。对包含有失效检测服务的进程q ,如若在 ( t + d ) 秒内收不到进程p 发来的消息,则q 发出“p 失效可疑”的消息,只是指出 进程p 可能失效,并非精确指出p 真正失效了。系统处置可疑失效进程的方法有很多 种。在多数情况下,只是给出进程可能失效的提示及相关信息。关于轮询消息间隔时 间t 的大小,则依据分布式系统的情况决定。如果太小,就可能检测到许多未失效的 进程而报告失败,并且过多的轮询消息会阻塞或浪费网络信道资源;如果太大,则有 可能使得已经失效的进程不能及时发现。 在单机系统中,为解决多个并发进程对共享资源访问的冲突问题,通常将该共享 资源设置为临界区,并使用加锁、管道、消息、全局信号量、共享内存、信号灯等同 步控制,使得任何时间只有一个进程进入临界区。同样在分布式系统中当多个并发进 程要求访问共享资源时,也要保证这些临界资源的互斥利用。 互斥的主要目标是保证在任何一个时刻,最多只能有一个进程访问临界区。一个 正常的互斥算法必须满足: 不死锁。当临界区可用时,进程不应该无限等待而没有一个进程可以进入。 无饥饿现象。每个对临界区的请求最终都必须得到满足。 公平性。对i i 缶界区的请求必须按照提出的次序得到批准。通常是基于逻辑时 钟来确定请求时间的顺序。 在分布式系统中实现临界区互斥的最简单的方法,就是在并发的多个进程中选举 一个进程作为协调者。任何一个进程,如果想进入临界区,首先要将请求发给协调者 申请进入许可,如若当时临界区中没有任何其他进程,则协调者发给申请进程同意进 入的许可。该进程一旦得到准入许可,即可马上进入临界区;如若当时在临界区中已 有进程,则协调者就不能给申请进程准入许可,可以向申请进程发出拒绝应答,同时 第4 页 山东大学硕士学位论文 阻塞该申请进程并将其放入等待队列。一个进入i | 缶界区的进程完成执行任务而退出临 界区时,要给协调者进程发送一个释放临界区的消息,从而使协调者将准入许可发给 等待队列中的第一个进程,并使其退出等待队列并进入临界区。该算法的示意图如图 1 : ( a ) o 释 ( b ) 图1 临界区互斥 上图中3 表示协调进程,0 、1 、2 均表示申请进程。 以上算法可广泛用于分布式资源调度,实现较简单。但是如果协调者进程发生故 障,则会影响到整个系统的运行。并且在正常情况下,协调者进程也是一个瓶颈。由 此,我们可考虑其他两种算法: 非基于权标的算法 在这种算法中,所有进程相互通信来决定哪个进程可以执行临界区。其中假 定消息按它们发送的顺序被接收,而且发出的消息最后一定会被收到。设一 组进程p i ,与p i 相关的l c i 是一个全局逻辑时间。每个进程维护一个请求 队列,算法规则如下: 1 、每个请求进入临界区的进程p i 发送带时戳的消息给所有的进程( 包括p i 自身) 。 2 、当一个进程收到请求资源的消息时,就将该消息放在它的局部请求队列中 并发回一个带时戳的应答。 3 、进程p i 释放资源时,发送带时戳的消息给所有的进程。 第5 页 山东大学硕士学位论文 4 、当进程p j 收到来自p i 的释放资源的消息时,就从其局部请求队列中清除 所有来自p i 的请求。如果p j 进入临界区的请求在其局部请求队列的顶部, 并且p j 已经从所有其他进程处收到时戳比p j 请求时戳大的应答信息时, 进程p j 被允许进入临界区。 该算法的示意图如图2 : 请求斗 应答一 p 1 释放 图2 非基于权标的互斥算法 利用时戳,以上的算法需要3 ( n 1 ) 个消息来保证1 1 个进程集的互斥。并且 该算法只在非常理想的条件下才可行。由于网络通信时间的延迟,要求消息按照 其发送时间的先后而被接收,一般是不现实的。再考虑进程失效的话,算法将会 更加复杂。 基于权标的算法 权标代表一个控制点,它在所有进程间传递。一个进程拥有权标时即可进入 临界区。 假定系统中共享某一资源的多个进程p i ( o 堇i 尽可能晚地访问关键资源。例如,设计和编写应用程序,以便$ q l 语句获取 和更新数据的时间尽可能地接近提交点。这样将减少锁定数据的时间总量, 从而减少其他应用程序进程无法使用该数据的时间。 尽可能快地提交事务。通常,在达到数据一致性临界点之后,尽快发出c o 卿i i t 语句是一种较好的s q l 编程技术。这将有助于避免不必要的锁竞争,甚至在 只读应用程序中也可采用该处理。类似地,我们在应用程序中一旦检测出s q l 故障,就发出r o l l b a c k 语句。这将阻止未成功的s q l 语句不必要地、过长 时间地锁定数据资源。 尽可能快地关闭游标。这是另一个可帮助提高并发性的编程实践。通过尽快 发出c l o s ec u r s o r 语句,应用程序将释放那些锁以及它们所持有的数据资 源。 应用程序重试逻辑。即当程序接收死锁或超时状况的指示时,该应用程序代 码应重试该操作,甚至允许重试多次。这就使得应用程序有可能从该状况中 第9 员 山东大学硕士学位论文 恢复,而无需操作人员从外部干涉或提供帮助。 以一致次序访问数据。在多数环境中,时常会发生不同的应用程序需要访问 同一数据的情况。要在开发环境中规定应用程序以相同的次序访问数据。例 如,要求所有应用程序按升序访问表x y z 中各行。如果那样,第一个访问表 x y z 的应用程序就可能会延迟其他应用程序,但不会导致死锁的状况。 在有些数据库管理系统中,应用程序的某些编译选项会影响应用程序将经历 的并发性程度。因此选择合适的应用编译选项也可提高应用的并发性。 2 2 2 数据库恢复机制 虽然目前计算机硬软件技术已经发展到相当高的水平,但硬件的故障、系统软件 和应用软件的错误、操作员的失误以及恶意的破坏仍然是不可避免的。这些故障轻则 造成运行事务的非正常中断,影响数据库中数据的正确性,重则破坏数据库,使数据库 中的数据部分或全部丢失。为了保障各种故障发生后,数据库中的数据都能从错误状 态恢复到某种逻辑一致的状态,数据库管理系统中恢复子系统是必不可少的各种现 有数据库系统运行情况表明,数据库所采用恢复技术是否行之有效,不仅对系统的可 靠程度起着决定性作用,而且对系统的运行效率也有很大影响,是衡量系统性能优劣 的重要指标。 事务是d b m s 的不可分割的工作单位,即一个事务中包含的操作要么全部执行, 要么全部不执行。也就是说,每个运行事务对数据库的影响或者都反映在数据库中, 或者都不反映在数据库中,二者必居其一。如果数据库中只包含成功事务提交的结果, 此数据库状态就称为“一致状态”。如果数据库运行发生故障,有些事务尚未完成就 被迫中断,这些未完成事务对数据库所做的修改有一部分己写入物理数据库,这时数 据库就处于一种不一致的状态,就需要d b m s 的恢复子系统根据故障类型采取相应的 措施,将数据库恢复到某种一致状态。 2 2 2 1 故障的种类 数据库运行过程中可能发生的故障主要有以下几类: 1 ) 事务故障及恢复:事务在运行过程中由于种种原因,如输入数据的错误、运 算溢出、违反了某些完整性限制、某些应用程序的错误以及并行事务发生死 锁等,使事务未运行至正常终点之前就被撤销,这种情况称为“事务故障”。 第1 0 页 山东大学硕士学位论文 当发生事务故障后,那些未运行至正常终点的事务可能己将对数据库的部分 修改写回磁盘。恢复程序要在不影响其他事务运行的前提下,清除该事务对 数据库的所有修改,使得这个事务象从未启动过一样,这种恢复操作称为“事 务撤销”。 2 ) 系统故障与恢复:系统故障是指系统在运行过程中,由于某种原因,如操作 系统或数据库管理系统代码错误,操作员操作失误、特定类型的硬件错误( 如 c p u 故障) ,突然停电等造成系统运行停止,致使事务在执行过程中以非正常 方式终止,这时内存中的信息丢失,而存储在外存储设备上的数据未受影响, 这种情况称为“系统故障”。系统故障时,有些尚未完成的事务的结果己记 入物理数据库,系统重新启动后,恢复程序要把这些事务滚回( r o l lb a c k ) , 清除他们对数据库的所有修改,使这些事务象从来没有运行过一样。即撤销 全部未完成的事务,使数据库恢复到逻辑一致的状态。系统出故障时,有些 己完成事务提交的结果可能还有一部分甚至全部留在缓冲区而未写回磁盘的 物理数据库中,系统故障使得这些事务对数据库的修改部分或全部丢失,造 成数据库中的数据不一致状态,在系统重新启动后应将这些事务已提交的结 果重新写入数据库,即重做这些已提交的事务,将数据库恢复到一致状态。 3 ) 介质故障及恢复:系统在运行过程中,由于某种硬件故障,如磁盘坏损、磁 头碰撞或由于操作系统的某种潜在错误、瞬时强磁场干扰,使存储在外存上 的数据部分损失或全部损失,称为“介质故障”。此类故障比前两种故障的 可能性虽然小的多,但破坏性却最大。介质故障发生后,存储在磁盘上的数 据被破坏,重新启动后,恢复程序装入数据库发生介质故障前某个时期的副 本,并将此时所有成功事务全部重作,也就是将这些事务已提交的结果重新 记入数据库。 4 ) 计算机病毒:计算机病毒是一种人为破坏计算机正常工作的特殊程序。通过 读写染有病毒的计算机系统的程序与数据,这些病毒可以迅速繁殖和传播, 危害计算机系统和数据库。目前大多数病毒是在i b mp c 机上传播的。有些病 毒一侵入系统就马上摧毁系统,有些病毒有较长的潜伏期,有的病毒则只在 特定的日期才发生破坏作用,有些病毒感染系统所有的程序和数据,有的则 只影响特定的程序和数据。多数病毒一开始并不摧毁整个计算机系统,如他 第1 1 页 山东大学硕士学位论文 们只在数据库中或其他数据文件中造成局部破坏。计算机病毒已成为对计算 机系统安全性的重要威胁,为此已研制了不少检查、诊断、消灭计算机病毒 的软件,也研制了多种预防病毒的“疫苗”,但新的病毒软件仍在不断出现, 对数据库的威胁仍然存在,因此一旦数据库被破坏,仍要用恢复技术把数据 库恢复成一致的状态。 2 2 2 2 故障的恢复 以上主要介绍了数据库系统中可能发生的故障。数据库系统可能发生的各类故障 对数据库的影响总结起来有两类:一类是数据库本身被破坏,如发生介质故障,或被 计算机病毒所破坏;另一类是数据库本身并没有被破坏,但由于有些事务在运行中被 中断,使得数据库中可能包含了未完成事务对数据库的修改,破坏数据库中数据的正 确性,使数据库处于不一致的状态,如发生事务故障、系统故障和某种只破坏内存中 数据的病毒发作。对于不同类型的故障在恢复时需要做不同的操作,这些操作都是 利用存储在系统其他地方的冗余数据来重建数据库中已经被破坏或已经不正确的那 部分数据。这个原理虽然简单,但实现技术却相当复杂。以下是恢复操作在数据库中 的具体实现: 后援副本、日志文件和恢复 数据恢复就是利用存储在系统其他地方的冗余数据来重建被破坏的数据库中 的数据。在数据库中记录的冗余数据有两种:一种是后备副本,又称为后援副本: 另一种是日志文件。下面是利用后备副本和日志文件来实现的恢复操作。 1 ) 后备副本与转储:后备副本是指在故障发生前某一时刻数据库的事务一 致性的副本,因此它是数据库的一个备用的数据文本,就称为后备副本 或后援副本。这些备用的数据文本妥善地保存起来,当数据库受到破坏 时就可以将后备副本重新装入,把数据库恢复起来。 2 ) 日志文件( l 0 6f i l e ) :日志文件是用来记录对数据的每一次更新操作的 文件。有了曰志文件,d b m s 就可以根据日志文件进行事务故障恢复和系 统故障恢复,并结合后援副本进行介质故障恢复了。事务在运行过程中, 系统将事务中每个更新操作登记在日志文件中。对每个事务,日志文件 登记的内容包括:事务开始( b e g i nt r a n s a c t i o n ) 标记,事务结束( c o m m i t 或r o l lb a c k ) 标记和每个更新操作。这里事务开始和结束标记和每个更 第1 2 页 山东大学硕士学位论文 新操作均是作为一个1 5 1 志记录( l o gr e c o r d ) 存放在日志文件中。每个 记录包括:事务标志( 标明是哪个事务) ,操作的类型( 插入、修改或删 除) ,更新前数据的旧值( 对插入操作而言,此项为空值) 和更新后数据 的新值( 对删除操作而言,次项为空值) 。登记的次序严格按并行事务执行 的时间次序。 恢复 1 ) 事务故障恢复:事务故障是指事务未运行至正常终点前被撤销,这时恢 复子系统应对此事务做事务撤销处理( u n d o ) ,反向阅读日志文件,找出 该事务的所有更新操作,对每一个更新操作做他的逆处理,即若记录中 是插入操作,则做删除操作;若记录中是删除操作,则做插入操作;若是 修改操作,则用修改前的值替代修改后值。如此处理直至读到此事务的 开始标记,事务故障恢复完成。 2 ) 系统故障恢复:系统故障发生时,造成数据库不一致的原因有两个,一 是由于一些未完成事务对数据库的更新已写入数据库;二是由于一些己 提交事务对数据库的更新还留在缓冲区尚未写入数据库。因此,基本的 恢复算法分为两步: 根据日志文件建立重作队列和撤销队列。 对撤销队列中事务进行撤销( u n d o ) 处理,对重作队列中事务进行重 作( r e d o ) 处理。 3 ) 介质故障与病毒破坏的恢复:在发生介质故障和遭病毒破坏时,磁盘上的 物理数据库被破坏,这时的恢复操作可以分三步: 重装转储的后援副本,使数据库恢复到转储时的一致状态; 从故障点开始反向读日志文件,找出己提交事务标记将其记入重作队 列: 从起始点开始正向阅读日志文件,根据重作队列中记录,重作所有已 完成事务,将数据库恢复至故障前某一时刻的一致状态。 2 3 数据访问控制 在数据库中对数据的访问可从实例、数据库、数据库对象和应用程序包等多个层 次加以控制。其中所有对实例的存取都要受到数据库以外的相关安全设施的管理。这 第1 3 页 山东大学硕士学位论文 些安全设施可以是操作系统的部分,也可以是其他独立的系统。它用于保证用户确实 以其声称的身份进入系统,通常它还为用户分配用户名及口令,在较复杂的系统中, 还要把具有相同特征的用户组织成用户组。而对数据库和其内部数据对象的存取要受 到数据库管理系统的控制。系统管理人员可针对用户角色为用户或用户组分配不同的 权限。在数据库应用系统设计中,需要明确相应的安全目标,确保敏感数据不能被无 权知道的用户随意存取。在数据访闯控制方面,主要有以下几个方面:。3 1 l 、认证 核实用户身份的过程即认证。典型的认证手段是强迫用户提供用户名和口令。 系统对其进行验证,确定用户身份的真伪。 2 、权限和特权 对数据库对象的存取控制主要是通过为用户指定某种权限或授予某些特权来 进行的。 权限是一组高层次的用户权力,通常授予那些需要对数据库和实例进行管理 和维护的用户,用于控制对实例内部对象的存取和能否执行某项管理任务; 特权是针对于某个数据库对象如:表、视图等的用户权力,通常授予那些只 需要对数据库对象进行存取的用户。它有三种类型: 拥有者特权 对于大多数数据库对象,创建对象的用户通常对于该对象具有全面的控制。 可以对数据库对象进行存取,也可将该数据库对象上的特权赋予其他用户。 个体特权 允许用户对数据库对象执行特定操作,如表的查询、插入、更改或删除等。 隐式特权 当用户被显式赋予某些高层次特权时自动赋予用户的特权。它不会随着其撤 销而自动撤销。 3 、审计 认证、权限和特权可用于控制对数据的已知存取或预期存取,但这些手段不 足以防止对数据的未知存取或未预期存取。因此,即使数据库具有限制用户对数 据库以及数据库对象进行存取的能力,对系统的使用进行监控还是非常必要的, 因此提供了审计的机制。审计与特定实例相关,它会记录实例和实例中的数据库 第1 4 页 山东大学硕士学位论文 中发生的可审计事件。审计可为一个单独的操作生成多条审计记录,每个审计记 录可属于不同的类别。它允许对与安全相关的事件进行监控。 2 。4 数据传输 目前,基于网络的分布式应用系统越来越多,涉及数据传输的处理也随之增加, 但随之而来也带来了数据传输中的安全问题,这种安全包括数据在由发送端至接收端 传输的过程中不被非法窃取,泄漏或篡改,同时能够保证在传输前后数据的一致性。 前者通常采用对传输数据进行加密检验的手段来保证,后者则主要涉及可

温馨提示

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

评论

0/150

提交评论