钻石显然是十分贵重的东西,正因为贵重,所以我们会严肃的区分真品和膺品。确定钻石是真是假的一个简单而(至少在电影里)流行的测试是让它在一片玻璃上滚。因为钻石是众所周知最坚硬的材料,真正的钻石很容易切割玻璃表面;而赝品,尤其是用玻璃本身制作的赝品,则无法做到。
        对软件开发人员来说,数据库也有这么贵重。如果使用数据库的话,需要确保它安全存储数据并允许您将来检索数据。您还希望数据库允许多个程序使用数据库而不会相互干扰。为了演示,假设您拥有一个银行。银行的数据库必须具备下列功能:

  • 安全存储合适的数据
  • 快速检索合适的数据
  • 支持多个并行的用户会话

这些任务可以合称为 ACID 测试;ACID 是 Atomicity(原子性)、Consistency(一致性)、Isolation(隔离性)和 Durability(持久性)的缩略词。 
 
         原子性 指数据库操作可以组合到一起,当作单个单元处理。

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

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

持久性 保证数据库是安全的,不会异常终止。当电源断电时,如果电视或计算机不工作,这可能是小麻烦,但同样的事情对于数据库来说就不一样了。如果银行计算机在转移资金时掉电,导致交易丢失,您就不会是个快乐的客户了。持久性保证如果数据库在资金转移期间异常终止,则当数据库重新启动时,它将能够恢复交易并继续正常的操作。

什么是数据库的ACID测试?相关推荐

  1. 数据库的ACID四原则

    数据库的ACID四原则及: 事物的原子性(Atomic).一致性(Consistent).独立性(Isolated)及持久性(Durable). 1.事务的原子性是指一个事务要么全部执行,要么不执行. ...

  2. 谈谈对数据库中ACID、CAP、BASE的认识

    2019独角兽企业重金招聘Python工程师标准>>> ACID.CAP.BASE的区别与联系 这得从关系型数据库关系型数据库(RDBMS)和非关系型数据库(NoSQL)说起. RD ...

  3. 开发人员学Linux(4):使用JMeter对网站和数据库进行压力测试

    前言 表面看来,JMeter与本系列课程似乎关系不大,但实际上在后面的很多场景中起着重要作用:如何获知修改了某些代码或者设置之后系统性能是提升了还是下降了呢?商业的压力测试工具LoadRunner确实 ...

  4. Jmeter连接SqlServer数据库进行压力测试

    Jmeter连接SqlServer数据库进行压力测试 前提准备:先安装jdbc驱动 驱动下载链接地址:http://pan.baidu.com/s/1bpDpjSr 密码:v6tn 下载解压之后,讲s ...

  5. 数据库事务ACID详解(转载)

    转载自:http://blog.csdn.net/shuaihj/article/details/14163713 谈谈数据库的ACID 一.事务 定义:所谓事务,它是一个操作序列,这些操作要么都执行 ...

  6. php连接access带密码,phpadodb连接带密码access数据库实例,测试成功

    include('./class/adodb/adodb.inc.php'); //实例化db类,链接 $db = ADONewConnection('ado_access'); $access = ...

  7. tpch测试mysql_MySQL数据库之MySQL-tpch 测试工具简要手册

    本文主要向大家介绍了MySQL数据库之MySQL-tpch 测试工具简要手册 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. tpch是TPC(Transaction Proce ...

  8. 完成GitHub上squirrel 的运行(数据库的模糊测试)

    文章目录 一.squirrel的介绍 squirrel链接 建议下载Ubuntu 18.04 编译安装clang/llvm(建议9.0以上) 将squirrel的文件下载到Ubuntu上 下载dock ...

  9. mysql数据库编程题题_mysql数据库编程题测试

    <mysql数据库编程题测试>由会员分享,可在线阅读,更多相关<mysql数据库编程题测试(3页珍藏版)>请在人人文库网上搜索. 1.1.自行创建测试数据2.查询"生 ...

最新文章

  1. 一次 Java 内存泄漏排查过程,学习学习
  2. PCB线宽与电流的关系
  3. json-schema 可视化编辑器发布了
  4. 【转】C/S,B/S区别
  5. 数据库索引为什么会失效
  6. Java学习笔记2.3.6 运算符与表达式 - 条件运算符
  7. 操作系统实验_Chcore -- 上交IPADS操作系统银杏书配套Lab实验笔记 - Lab2内存管理(一)...
  8. js不用reverse反转数组代码_10个JavaScript代码片段,帮助你成为更好的开发者
  9. mysql 删除数据表大小没变_为什么数据删除了,表文件大小不变?
  10. 用python批量爬qq号_简单教程 8位QQ靓号爬取并过滤 – Python版
  11. Canvas实现太极图案并旋转
  12. for循环,for循环嵌套
  13. Excel打开时自动开一个sheet1页面
  14. 有奖体验 CODING 产品,iPad Pro、HHKB 键盘等超级礼包等你来!
  15. CEAA自动汇编脚本常用命令
  16. 硬件学习_差模与共模
  17. 点击行的数据回填到模态框
  18. 科学家提激进研究理论:人类世界或为虚拟空间
  19. 2014小学计算机统计表,2014年春小学部考试成绩统计表.xls
  20. Linux获取登录凭证总结

热门文章

  1. c语言里 t是什么作用,c语言里的\t是什么意思
  2. 做3D建模月薪平均多少?
  3. 西南大学计算机学院推免,2020西南大学计算机与信息科学学院推免夏令营通知...
  4. 【ps】ps cc中普通形状如何变成实时形状
  5. 20155236 《信息安全系统设计基础》课程总结
  6. python 实例四
  7. angularjs 验证身份证格式 和 一般JS验证身份证格式
  8. 转帖: 80分钟打造娱乐型ubuntu7.10
  9. Android主线程里不允许网络操作
  10. 图像处理:JPG、PNG及BMP的区别?