RDMS 第一篇 第二节 Transaction & Language

RDMS二个非常重要特征:事务的ACID特性与SQL

可靠数据库的事务(Transaction),应具有ACID的四个特性:

  • 原子性(Atomicity)
  • 一致性(Consistency)
  • 隔离性(Isolation)
  • 持久性(Durability)

一个事务是一个只包含所有读/写操作成功的集合,即使在高并发环境下也可以提供数据的完整性。

  • 默认情况下一条SQL就是一个单独事务,只有在显式事务标记后,才能将代码块放在一个事务中执行。

保障事务的原子性是数据库管理系统的责任,为此许多数据库采用事务日志机制。

ANSI SQL-92的四种事务隔离级别:未提交读(READ UNCOMMITED)、已提交读(READ COMMITED)、可重复读(REPEATABLE READ)、可串行读(SERIALIZABLE),不同事务隔离级别,对脏读、不可重复读、幻读、丢失更新、并发模型、更新冲突检测处理是不一样的。
一般默认已提交读(READ COMMITED),SQLServer有6种事务隔离级别,Oracle有2种事务隔离级别。

理解RDBMS中的事务的锁与日志机制,是它们确保了ACID。

  • 事务中对数据库的改变在写入到数据库之前,首先写入到事务日志中。而事务日志是按照顺序排号的(LSN)。
  • 尽管RDBMS提供多版本并发控制(MVCC),但并发控制都是通过锁完成。因此,锁会增加执行的串行性,影响并发性。

结构化查询语言(Structured Query Language):是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。

  • SQL是高级的非过程化编程语言,允许用户在高层数据结构上工作。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注