数据库管理系统中的酸性质

A. 交易 是一个单一的逻辑工作单元,它访问并可能修改数据库的内容。事务使用读写操作访问数据。 为了保持数据库中的一致性,在事务前后都会遵循某些属性。这些被称为 酸的 财产。

null

图片[1]-数据库管理系统中的酸性质-yiteyi-C++库

原子性 我们的意思是,要么整个交易同时发生,要么根本不发生。没有中间环节,即交易不会部分发生。每个事务被视为一个单元,要么运行到完成,要么根本不执行。它涉及以下两个操作。 — 中止 :如果事务中止,对数据库所做的更改将不可见。 — 犯罪 :如果事务提交,则所做的更改可见。 原子性也被称为“全有或全无规则”。

考虑下面的交易 T 包括 T1 T2 :从账户转账100 X 说明 Y .

图片[2]-数据库管理系统中的酸性质-yiteyi-C++库

如果交易在交易完成后失败 T1 但在项目完成之前 T2 (比如说,在 写(X) 但之前 写(Y) ),则金额已从中扣除 十、 但没有添加到 Y 。这会导致数据库状态不一致。因此,必须完整地执行事务,以确保数据库状态的正确性。

一致性 这意味着必须维护完整性约束,以便数据库在事务前后保持一致。它指的是数据库的正确性。参考上面的例子, 必须保留交易前后的总金额。 全部的 在T之前 发生= 500 + 200 = 700 . 全部的 在T发生后 = 400 + 300 = 700 . 因此,数据库是 一致的 .不一致发生在 T1 完成但是 T2 失败。因此,T是不完整的。

隔离 此属性确保多个事务可以同时发生,而不会导致数据库状态不一致。交易独立进行,不受干扰。在将某个事务中的特定更改写入内存或提交之前,该事务中发生的更改对任何其他事务都不可见。此属性确保并发执行事务将导致一种状态,该状态相当于以某种顺序串行执行这些事务所达到的状态。 允许 十、 = 500, Y = 500. 考虑两个交易 T T”。

图片[3]-数据库管理系统中的酸性质-yiteyi-C++库

认为 T 已被执行至 阅读(Y) 然后 T“ 开始。因此,操作的交错是由于 T“ 读取正确的 X 但不正确的价值观 Y 和由 T”:(X+Y=50000+500=50500) 因此与交易结束时的金额不一致: T:(X+Y=50000+450=50450) . 这会导致数据库不一致,因为损失了50个单元。因此,事务必须独立进行,只有在对主内存进行更改后,才能看到更改。

耐久性: 此属性确保事务完成执行后,数据库的更新和修改会存储在磁盘中并写入磁盘,即使发生系统故障,这些更新和修改也会持续。这些更新现在成为永久性的,并存储在非易失性内存中。因此,交易的效果永远不会消失。

这个 酸的 总的来说,属性提供了一种机制,以确保数据库的正确性和一致性,从而使每个事务都是一组操作,这些操作作用于单个单元,产生一致的结果,与其他操作隔离,并持久地存储所做的更新。

本文由 阿夫尼特·考尔 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 贡献极客。组织 或者把你的文章寄到contribute@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。

如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享