zoukankan      html  css  js  c++  java
  • 数据库的事务

    一,概念:

           事务(transaction)是一个操作序列。这些操作要么都做,要么都不做,是一个不可分割的工作单位。事务通过以BEGIN TRANSACTION开始,以commit 或rollback操作结束,commit即提交,提交事务中所有的操作,事务正常结束。rollback即回滚,撤销已做的所有操作,回滚到事务开始时的状态。事务是数据库区别于文件系统的重要特性之一。

    例如在flask中,我们一次数据库提交操:

        try:
            db.session.add(task)
            db.session.commit()
        except Exception as e:
            db.session.rollback()
            raise e
    

     二,特性:

    • 原子性
    • 一致性
    • 隔离性
    • 持久性

    三,事务是如何实现的?

    在事务的ACID特性中,C即一致性是事务的根本追求,而对数据一致性的破坏主要来自两个方面

    • 1.事务的并发执行
    • 2.事务故障或系统故障

    数据库系统是通过并发控制技术和日志恢复技术来避免这种情况发生的。

    并发控制技术保证了事务的隔离性,使数据库的一致性状态不会因为并发执行的操作被破坏。
    日志恢复技术保证了事务的原子性,使一致性状态不会因事务或系统故障被破坏。同时使已提交的对数据库的修改不会因系统崩溃而丢失,保证了事务的持久性。

    全世界的程序员们联合起来吧!
  • 相关阅读:
    T-SQL逻辑查询的各阶段
    linqtosql(GroupBy/Having/Count/Sum/Min/Max/Avg操作符)
    jquery获取select下拉框的值以及change时间绑定
    英汉翻译功能的简单实现
    jQuery zTree默认加载一级几点
    Linq第一篇
    vs2015+win10搭开发环境
    asp.net mvc 中使用静态页
    .net中的异步操作
    (转载)TFS2013安装+配置
  • 原文地址:https://www.cnblogs.com/chaojiyingxiong/p/15260227.html
Copyright © 2011-2022 走看看