什么是数据库的ACID测试?

本文介绍了数据库ACID特性的核心概念及其对银行业的重要性。原子性确保事务作为一个整体执行,一致性保持数据完整,隔离性防止并发操作冲突,持久性保证数据在故障后的完整性。
        钻石显然是十分贵重的东西,正因为贵重,所以我们会严肃的区分真品和膺品。确定钻石是真是假的一个简单而(至少在电影里)流行的测试是让它在一片玻璃上滚。因为钻石是众所周知最坚硬的材料,真正的钻石很容易切割玻璃表面;而赝品,尤其是用玻璃本身制作的赝品,则无法做到。
        对软件开发人员来说,数据库也有这么贵重。如果使用数据库的话,需要确保它安全存储数据并允许您将来检索数据。您还希望数据库允许多个程序使用数据库而不会相互干扰。为了演示,假设您拥有一个银行。银行的数据库必须具备下列功能:
    • 安全存储合适的数据
    • 快速检索合适的数据
    • 支持多个并行的用户会话
        这些任务可以合称为 ACID 测试;ACID 是 Atomicity(原子性)、Consistency(一致性)、Isolation(隔离性)和 Durability(持久性)的缩略词。 
 
        原子性 指数据库操作可以组合到一起,当作单个单元处理。 

        一致性 保证此单个单元(或事务)中的所有操作要么都成功执行,要么都不执行。换句话说,数据库不能处于未完成状态。要了解这些特征为何如此重要,可考虑这样一个银行事务:即钱从储蓄帐户转到支票帐户。如果在将钱从储蓄帐户减去之后、加到支票帐户之前,转帐处理失败,那么您就会变穷,而银行将会有一个愤怒的(前)客户!原子性使得这两个操作 —— 从储蓄帐户减钱和向支票帐户加钱 —— 被当作单个事务进行处理。一致性保证事务中的这两个操作同时成功或同时失败。这样,您的钱就不会丢失了。

        隔离性 指独立的数据库事务集合以不相互冲突的方式执行。仍使用这个银行类比,考虑两个客户同时在帐户之间转移资金。数据库必须分别跟踪两个转帐;否则,资金可能进入错误的帐户,而银行可能得多两个愤怒的(前)客户。

        持久性 保证数据库是安全的,不会异常终止。当电源断电时,如果电视或计算机不工作,这可能是小麻烦,但同样的事情对于数据库来说就不一样了。如果银行计算机在转移资金时掉电,导致交易丢失,您就不会是个快乐的客户了。持久性保证如果数据库在资金转移期间异常终止,则当数据库重新启动时,它将能够恢复交易并继续正常的操作。
 
ACID属性是数据库管理系统中事务处理的核心原则,它包括原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)四个方面的特性。为了深入了解这些概念,可以参考《同济大学计算机基础课件PPT之第7章数据库基础.ppt》。 参考资源链接:[同济大学计算机基础课件PPT之第7章数据库基础.ppt](https://wenku.youkuaiyun.com/doc/5pa9juk324?spm=1055.2569.3001.10343) 原子性确保了事务中所有操作要么全部完成,要么全部不完成,不会出现中间状态。一致性是指事务必须保证数据库从一个一致性状态转换到另一个一致性状态,即在事务执行前后的数据完整性约束不变。隔离性指的是并发执行的事务之间不应相互影响,避免脏读、不可重复读和幻读等问题。持久性是指一旦事务提交,对数据库的更改就是永久性的,即使系统发生故障也不会丢失数据。 在实际应用中,比如网上银行转账系统,就需要严格遵守ACID属性。当用户A向用户B转账时,事务必须保证要么整个转账过程成功,要么失败回滚到原始状态,这是原子性的体现。转账前后,银行系统的总金额必须保持一致,即一致性。在多用户并发操作的情况下,事务要保证对其他用户不可见,这是隔离性的要求。一旦转账成功,即使发生系统故障,这笔交易的数据也不应丢失,这就是持久性的意义。 对于数据库系统的学习者来说,掌握ACID属性是理解事务处理的基础。除了阅读PPT课件之外,还可以通过实际编写和测试数据库事务代码来加深理解。《同济大学计算机基础课件PPT之第7章数据库基础.ppt》中的内容将帮助你建立起对ACID属性的理论基础,从而更好地应用在实际开发中。 参考资源链接:[同济大学计算机基础课件PPT之第7章数据库基础.ppt](https://wenku.youkuaiyun.com/doc/5pa9juk324?spm=1055.2569.3001.10343)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值