数据库事务、锁定、阻塞与死锁全解析
1. 理解事务
事务是关系数据库系统的重要组成部分,它定义了一个工作单元,这个单元可以包含一个或多个 Transact - SQL 语句。在事务中,所有语句要么全部应用,要么都不应用。
1.1 事务的作用
以图书库存系统为例,当一本书被售出时,会影响两个表: BookInventory 和 BookSales 。如果书售出, BookInventory 表中的 numQuantity 会减少,同时 BookSales 表会新增一条记录,记录订单号、售出书籍的 ID 和销售日期。事务可防止部分更新,确保数据库的一致性。
1.2 事务的日志记录
在事务开始时,SQL Server 会将 Transact - SQL 语句所做的更改写入事务日志文件。若任何语句失败,整个事务将回滚,不会进行任何数据修改;若事务成功,则提交事务并进行修改。
1.3 事务的 ACID 特性
事务需通过 ACID 测试,ACID 代表原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation 或 Independence)和持久性(Durability),具体如下:
|特性|描述|
| ---- | ---- |
|原子性|原子事务是一个“全有或全无”的实体,要么执行所有步骤,要么都不执行。|
|一致性|在一致的事务中,任何数据修改都不应违反数据库的结构或设计规则。
超级会员免费看
订阅专栏 解锁全文
1332

被折叠的 条评论
为什么被折叠?



