课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
掌握数据库的架构开发与应用技术是目前大多数软件开发程序员都需要具备的一个编程能力,下面我们就通过案例分析来了解一下,数据库事务基础知识与特性分享。
事务,就是用来保证数据操作符合业务逻辑要求而实现的一系列功能。换句话说,如果数据库不支持事务,上层业务系统的程序员就需要自己写代码,以保证相关数据处理逻辑的正确性。
原子性:如果你要给家人转账,必须在你的账户里扣掉100块,在家人账户里加上100块,这两笔操作需要一起完成,业务逻辑才是正确的。但是程序在做修改时,肯定会有先后顺序,试想一下程序扣了你的钱,这个时候程序崩溃了,家人账户的钱没有加上,那这100块是不是消失了?你是不是要发疯?那么,就把这两笔操作放进一个事务里,通过原子性保证,这两笔操作要么都成功,要么都失败。这样才能保证业务逻辑的正确性。
一致性:有很多文章讲过一致性,但是很多人会把一致性跟原子性混在一起说。事务的一致性指的是,每一个事务必须保证执行之后所有库内的规则依旧成立,比如内外键、constraint、触发器等。
因此实现事务的时候,必须要保证相关联的触发器以及其他内部规则都执行成功,事务才算执行成功。如果在减去资产总额时出错,数据库就会进入不一致的状态,那么这笔转帐交易也不能成功。
那么一致性跟原子性的区别到底在哪里呢?原子性是指多个用户指令之间必须作为一个整体完成或失败,而一致性更多是数据库内的相关数据规则同时完成或失败。
持久性:事务只要提交了,对数据库的修改就会保存下来不会丢了。简单来说,只要提交了,数据库就算崩溃了,重启之后你刚存的100块依然在你的账户里。
隔离性:每个事务相对于其他的事务有一定独立性、不能互相影响,因为数据库需要支持并发的操作来提高效率。在并发操作时,一定要通过操作之间的隔离来保证业务逻辑的正确性。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。