当前位置: 首页 > news >正文

北京做网站源代码的广州seo优化外包服务

北京做网站源代码的,广州seo优化外包服务,专业网站建设公司推荐,专业做app软件开发价格一、引言 1、数据库管理系统DBMS为保证定义的事务是一个逻辑工作单元,达到引入事务的目的,实现的事务机制要保证事务具有原子性、一致性、隔离性和持久性,事务的这四个特性也统称为事务的ACID特性 2、当事务保持了ACID特性,才能…

一、引言

1、数据库管理系统DBMS为保证定义的事务是一个逻辑工作单元,达到引入事务的目的,实现的事务机制要保证事务具有原子性、一致性、隔离性和持久性,事务的这四个特性也统称为事务的ACID特性

2、当事务保持了ACID特性,才能使数据库从一个一致性的状态转为另一个一致性的状态

3、数据库的一致性

  • 数据库的当前实例数据也称为数据库状态
  • 用户在数据库中的操作,主要是对数据库的状态值进行查询和更新,每个操作后的数据库状态,正是下一个操作的数据库的作用状态,也就是用户对数据库的操作使数据库从一个状态转变为另一个状态
  • 假设数据库的状态企业的当前业务状态相一致,是一个一致性状态,如果在事务执行过程中,硬件和软件都不出现错误,则事务执行结果不会产生不能解释的数据库状态值。数据库状态能反映用户对数据库的操作,则我们称事务使数据库保持一致性,数据库处于一致性状态

4、数据库可能会在事务执行过程的某一时刻处于不一致的状态,但在事务结束后应处于一致性状态 

二、原子性(Atomicity)

1、 事务的原子性是指事务作为数据库系统的逻辑工作单元,事务中的所有数据库操作是不可分割的

2、事务必须作为整体执行或根本不执行,即事务中包括的所有操作,要么都执行完,要么就根本没有执行,事务的这种“全或无”的特性,称为事务的原子性

3、事务的原子性要求每个事务要么提交,要么因异常终止而回滚。如果事务没有执行完成,其结果就像它根本没有执行一样。

对于该银行转账事务,事务的原子性要求,要么从账户A支出1000元存入账户B中,要么没有从账户A支出,账户B也没有进账,而不能只从账户A支出却没有存入账户B中。

若从账户A支出1000元,但在存入账户B前,事务夭折,比如强行终止事务。可看出终止事务前已从A账户中支出1000元,但还没有存入账户B中

begin transaction
select * from accounts;update accounts
set balance=balance-1000
where acctNo='A'; /* 从账户A中减去1000元 */select * from accounts;

终止事务后,事务不能继续执行 ,前面执行的所有更新操作结果也被DBMS撤销了,数据库中数据的值为事务执行前的值

select * from accounts;

三、一致性(Consistency)

1、事务的一致性是指事务从一个一致的数据库状态开始独立地执行,则事务结束时,数据库也必须再次处于一致性状态,即事务必须保证数据库的一致性

  • 这种一致性不仅包括要满足数据库设计者指定的完整性约束
  • 还要正确反映事务成功提交的结果,使数据库的状态与企业状态一致

对于这个银行转账事务,事务的一致性要求事务的执行不能改变账户A和账户B的资金总额,即应用程序员在编写事务时要确保账户A的支出和账户B存入的资金相等。同时如果数据库设计时要求不能透支转账,即当事务执行的时候,从账户A支出1000元后余额小于0,则事务的执行应该被阻止,满足数据库的完整性约束 

set xact_abort  ON;
begin transaction;select * from accounts;update accounts
set balance=balance-1000
where acctNo='A';   /* 从账户A中减去1000元*/update accounts
set balance=balance+1000
where acctNo='B';   /* 从账户B中加上1000元*/select * from accounts;commit;

2、确保单个事务的一致性是编写该事务的应用程序员的职责,可通过定义一致性约束,来阻止任何违反约束的事务的执行

SET XACT_ABORT ON;

 这一行时针对SQL Server数据库的一个设置命令,用于控制事务处理中的错误处理行为,当 XACT_ABORT设置为ON是,它会影响SQL Server在事务中遇到错误时的行为

(1)即时终止:当一个错误发生时(比如约束冲突、数据类型不匹配等),当前批处理将立即停止执行,而不仅仅在遇到错误的语句上停止。这意味着即是错误发生在事务中间,后续的SQL语句也不会被执行

(2)自动回滚:在批处理因错误终止时,如果当前处于事务中,这个事务会自动被自动回滚,回归到事务开始签的状态,确保数据的一致性

(3)减少不确定状态:使用SET XACT_ABORT ON可以减少数据库中因部分事务执行而可能导致的数据不一致问题,因为它确保了要么整个事务成功,要么完全不改变数据库状态

四、隔离性(Asolation)

1、隔离性是事务在并发执行时应具有的特性。如同在操作系统中允许多个进程并发执行来提高系统资源的利用率一样

2、在多用户的现代数据库系统中,系统有能力同时并发执行多个事务,来提高系统的事务吞吐量,减少事务等待时间充分发挥数据库共享资源的特点

3、一个事务可能同时包含多个数据库操作,多个事务同时并发执行,则不同事务间的数据库操作可能会交错执行并可能对同一个数据库对象进行操作 

事务作为一个逻辑工作单元,在用户看起来,事务内的操作是不能被其他不属于该事务的数据库操作分隔开的

4、事务的隔离性就是指一个事务正常执行不被来自并发执行的事务中的数据库操作所干扰的特性

5、每个事务都应感觉不到系统中有其他事务在并发地执行

比如大家经常会在12306网站订票,甚至是抢票,我们的每个预定操作对系统来说就是一个并发的事务,系统会保证事务间的隔离性,当两个人分别用手机登录自己的账户同时抢同一车次的一张余票时,只会让一个人预定到,而在数据库管理系统没有实现事务机制前,则可能会出现两个人抢到同一座位的情况

五、持久性(Durability)

1、事务的持久性也称永久性

2、是指一个事务一旦提交,它对数据库中数据的更新就应持久地保存在数据库中

3、后序的其他操作或系统故障等,不应该其执行结果有任何影响

对于银行转账事务,事务的持久性要求当事务提交后,即客户确认转账成功并离开,不管银行的操作计算机或存放数据库的磁盘出现任何故障,都不会引起与这次转账相关的数据丢失

set xact_abort  ON;
begin transaction;select * from accounts;update accounts
set balance=balance-1000
where acctNo='A';   /* 从账户A中减去1000元*/update accounts
set balance=balance+1000
where acctNo='B';   /* 从账户B中加上1000元*/select * from accounts;commit;select * from accounts;

六、小结

执行的事务保持ACID特性是数据库保持一致性的前提,由于并发执行的事务会破坏事务的隔离性,系统出现的各类故障会破坏事务的原子性和持久性,数据库管理提供DBMS必须对事务进行处理,对并发执行的事务进行并发控制,保证事务的隔离性,对发生故障后系统中的事务更新结果进行恢复保证事务的原子性和持久性。此外,利用DBMS的完整性约束机制,保证事务的一致性 

http://www.khdw.cn/news/5072.html

相关文章:

  • 如何利用站群做网站网站数据查询
  • 鞍山网站深圳seo顾问
  • 博彩网站做代理郑州seo哪家专业
  • 怎样做网站的测试与维护seo的中文名是什么
  • 武汉专注于企业网站服务如何制作自己的网页
  • 校园网站 建设 意义提高工作效率的句子
  • vs做网站不用建项目重庆百度关键词优化软件
  • javase可以做网站吗外链工具
  • 网络开发软件宁波搜索引擎优化seo
  • 一小时做网站保定百度推广优化排名
  • 广州建设网站开发互动营销的方式有哪些
  • 深圳集团网站建设公司怎么在网络上推广
  • 乡镇医院网站建设seo网站优化课程
  • 上传了网站标志怎么弄温州网站建设
  • 怎么做商业网站模板seo技术学院
  • 网站设计分析怎么写郑州网站优化公司
  • 政府网站集约化建设培训ppt百度指数数据官网
  • 如何做资源论坛网站热词分析工具
  • 网站后台建设公司seo专员是什么职业
  • 团购网站功能模块廊坊百度关键词优化
  • 广州网页设计招聘网站网页的优化方法
  • 做网站 找风投企业网站推广渠道有哪些
  • 网站开发者的常用工具今日军事新闻最新消息新闻
  • 石景山区城乡建设委员会网站智慧教育
  • 创意工作室网站企业推广是什么意思
  • 网站500无锡网站关键词推广
  • 欧美做视频网站百度站长工具添加不了站点
  • 房屋中介网站怎么做三一crm手机客户端下载
  • 营口做网站价格专业技能培训机构
  • 做网站卖东西送上门什么企业需要网络营销和网络推广