丢失数据,污读,不可重读怎么区分

丢失数据,污读,不可重读怎么区分,第1张

主要是一致性问题.常见并发并发一致性问题包括:丢失的修改、不可重复读、读脏数据、幻影读(幻影读在一些资料中往往与不可重复读归为一类).答案补充 不可重复读是指事务T1读取数据后,事务T2执行更新 *** 作,使T1无法再现前一次读取结果.具体地讲,不可重复读包括三种情况:

事务T1读取某一数据后,事务T2对其做了修改,当事务1再次读该数据时,得到与前一次不同的值.例如,T1读取B=100进行运算,T2读取同一数据B,对其进行修改后将B=200写回数据库.T1为了对读取值校对重读B,B已为200,与第一次读取值不一致.

事务T1按一定条件从数据库中读取了某些数据记录后,事务T2删除了其中部分记录,当T1再次按相同条件读取数据时,发现某些记录神密地消失了.

事务T1按一定条件从数据库中读取某些数据记录后,事务T2插入了一些记录,当T1再次按相同条件读取数据时,发现多了一些记录.(这也叫做幻影读) 答案补充 读"脏"数据是指事务T1修改某一数据,并将其写回磁盘,事务T2读取同一数据后,T1由于某种原因被撤消,这时T1已修改过的数据恢复原值,T2读到的数据就与数据库中的数据不一致,则T2读到的数据就为"脏"数据,即不正确的数据.

产生上述三类数据不一致性的主要原因是并发 *** 作破坏了事务的隔离性.并发控制就是要用正确的方式调度并发 *** 作,使一个用户事务的执行不受其它事务的干扰,从而避免造成数据的不一致性.答案补充 两个事务T1和T2读入同一数据并修改,T2提交的结果破坏了T1提交的结果,导致T1的修改被丢失,即丢失的修改.

这三者都是数据库事务的错误情况。

1、脏读:事务A读到了事务B未提交的数据。

2、不可重复读:事务A第一次查询得到一行记录row1,事务B提交修改后,事务A第二次查询得到row1,但列内容发生了变化。

3、幻读:事务A第一次查询得到一行记录row1,事务B提交修改后,事务A第二次查询得到两行记录row1和row2。

扩展资料

数据库的基本结构分三个层次,反映了观察数据库的三种不同角度。

以内模式为框架所组成的数据库叫做物理数据库;以概念模式为框架所组成的数据叫概念数据库;以外模式为框架所组成的数据库叫用户数据库。

1、物理数据层。

它是数据库的最内层,是物理存贮设备上实际存储的数据的集合。这些数据是原始数据,是用户加工的对象,由内部模式描述的指令 *** 作处理的位串、字符和字组成。

2、概念数据层。

它是数据库的中间一层,是数据库的整体逻辑表示。指出了每个数据的逻辑定义及数据间的逻辑联系,是存贮记录的集合。它所涉及的是数据库所有对象的逻辑关系,而不是它们的物理情况,是数据库管理员概念下的数据库。

3、用户数据层。

它是用户所看到和使用的数据库,表示了一个或一些特定用户使用的数据集合,即逻辑记录的集合。数据库不同层次之间的联系是通过映射进行转换的。

参考资料:百度百科--数据库

两种方法设置ACCESS数据不可重复, 都在Access表设计视图内设置。

1.将字段设置为主键。

2.将字段的“索引”(Indexed)属性设置为“索引,无重复”(Yes, No duplicates)。

涉及表结构,通常不会在前台程序中进行修改。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9997642.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存