数据库的2PL两段锁协议与范式

发布时间:2020-07-20 20:02:22 作者:gaochaojs
来源:网络 阅读:1542

1.2PL

2PL定义:1.所有的读写操作之前均需加锁;2.解锁操作后不允许再出现加锁操作;

S锁:加S锁后其他事务可读,不可写,直至加锁事务结束;

X锁:加X锁后其他事务均不可以读或写,直至事务结束;

事务执行的过程分为两个阶段,一是获得封锁阶段,二是释放封锁阶段;2PL可能产生死锁;

2PL可以防止读脏数据、丢失修改等;是事务可串行化的必要条件,不是充分条件;


可串行化:多个操作并发执行时,如不进行并发控制,可能出现错误的结果。但如果把所有并发操作全部串行执行,又失去了并发操作的优势。所以提出了可串行化的概念。可串行性:当且仅当一组事务的交叉执行结果与某一串行执行的执行结果一致时,这组事务具有可串行性;

2.一级锁、二级锁、三级锁

一级锁:所有写操作之前加X锁,事务结束释放,可以防止丢失修改;

二级锁;所有写操作之前加X锁,事务结束释放;所有读操作前加S锁,操作结束释放,可以防止丢失修改和读脏数据;

三级锁:所有写操作之前加X锁,事务结束释放;所有读操作前加S锁,事务结束释放,可以防止丢失修改、读数据和不可重复读;

二、范式

第一范式:属性不可分;

第二范式:所有非主属性完全依赖于码;

第三范式:符合2NF,同时没有传递依赖;

BC范式:符合3NF,且主属性不依赖于主属性;即若R属于1NF,且所有属性不传递依赖于码;每个非平凡依赖关系的左边均包含键码;每个依赖关键的决定因素必须包含键码;

4NF:要求把同一表内的n:m的关系删除;





推荐阅读:
  1. 数据库范式总结
  2. 各种范式的要求

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

数据库

上一篇:

下一篇:saltstack部署nginx

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》