ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

并发控制&NoSQL 和 New 数据库

2022-01-26 20:02:37  阅读:184  来源: 互联网

标签:封锁 事务 NoSQL 数据库 并发 死锁 New


并发控制

1、数据库中为什么要并发控制?并发控制技术能保证事务的哪些特性?

数据库时共享资源,通常有多个事务同时执行。当多个事务同时并发地存取时就会产生同时读/写同一个数据。若对并发操作不加以控制就可能导致存取不正确的数据,破坏事务的一致性。

并发控制保证了事务的一致性和隔离性

2、并发操作会产生哪几类数据的不一致?用什么方法可以避免

1)丢失修改,两个事务对同一个数据同时进行修改,那么就会有一个事务的操作被另一个事务的修改覆盖掉。

2)不可重复读,一个事务读了某一数据以后,另一个事务对其进行了更新操作,那么再次读的时候就会得到与上次不一样的数据。

3)读取脏数据,一个事务修改了某一数据并把其写回磁盘,另一个事务读取了这个数据以后,之前那个事务因为某种原因撤销了。

避免不一致性的方法就是并发控制,常用的并发控制有封锁法、时间戳法、乐观控制法、多版本并发控制法等

3、封锁和封锁的类型

封锁就是事务 T 对某一数据进行操作前,先向系统发送请求,对其加锁,加锁以后事务就对这个数据有了一定的控制权,在事务 T 释放锁之前,其他事务不能对该数据进行更新或者读取

封锁类型有:排它锁、共享锁

4、 三级协议分别能解决哪些问题

加 X 锁,直到事务结束再释放。解决了丢失修改问题。

在 1 基础上加 S 锁,读完后可以释放,解决了读取脏数据的问题。

在 1 基础上加 S 锁,直到事务结束再释放,解决了不可重复读问题

5、活锁、活锁产生原因和解决办法

当一系列封锁操作无法按照其正确顺序执行时,就可能导致事务无限等待某个封锁。

避免活锁的方法就是使用 FCFS

6、死锁、死锁的解决办法

死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。这些永远在互相等待的进程称为死锁进程。

防止死锁的方法有两种:预防死锁、死锁诊断与解除

预防死锁有两种办法:一次封锁法、顺序封锁法

死锁诊断与解决:超时法、事务等待图法

解除法:选择处理死锁代价最小的事务,将其解除

7、什么样的并发调度是正确的调度

可串行化的并发调度是正确的调度。可串行化调度定义:多个事务并发执行是正确的,当且

仅当其结果与按某一次序执行的串行执行的结果相同。

8、如何保证并发调度的正确性

冲突可串行化,使用两段锁协议

NoSQL 和 New 数据库

自 1970 年以来,数据库技术发展到了第四代,第一代是 60~70 年早期的层次和网状数据库系统,第二代是 70 年代中期开始的关系数据库系统,第三代是 80 年出现的对象数据库系统和以及 90 年出现的对关系模型进行扩展,使关系数据库系统具有面向对象功能。

自 2000 年以来,Web 技术、社交网络、移动计算和物联网的进步导致全球范围应用程序生成的半结构化、非结构化数据呈现爆炸式增长势态,此类应用程序产生了各种不同的需求,包括水平可扩展能力、支撑大规模海量数据处理能力,系统要具有高可用性和容错能力以应对硬件和软件故障,并且可以通过利用额外资源响应客户端请求,从而提高查询处理速率,这就导致了第四代数据库技术 NoSQL 和 NewSQL 技术的出现。

NoSQL 数据库的关键特征是:(1)采用图形、树、键值、文档等表格模型以外的数据模型;(2)数据库设计时没有固定的模式定义;(3)提供对水平可扩展性的隐式支持;(4)具有最终一致性而不是强一致性。NoSQL 的另一个重要概念是 CAP 定理,它对分布式系统至关重要的属性提供了一些约束,即:一致性、可用性和分区容错性。CAP 定理表明,分布式系统在任何给定时间最多只能满足其中 2 个属性。

NewSQL 是最新一代的数据库系统,它不仅提供 NoSQL 数据库系统具有的可扩展性和可

用性,还保留了传统关系数据库的 ACID 特性、关系数据模型和 SQL 查询语言

标签:封锁,事务,NoSQL,数据库,并发,死锁,New
来源: https://blog.csdn.net/weixin_45750404/article/details/122707820

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有