数据库事务,视图和权限管理

一、数据库的事务

事务:

是数据恢复和并发控制的最小单位,是用户执行一系列数据操作的序列集合。

 

事务具有四大特点(ACID):

①原子性:事务对数据的操作要么全部都做,要么全部不做,就叫做事务的原子性

②一致性:事务执行的结果必须使数据从一个一致性状态转变到另一个一致性状态。事务成功提交时,数据库必须处于一致性状态。

③隔离性:多个事务同时进行时,各个事务之间不会相互影响。

④持久性:事务提交成功,其对数据库的数据操作是永久性的。

 

并发控制:

是以事务为单位进行的,能够并行进行事务的处理。这样做的好处:

①提高CPU的利用效率,能够最大化的使用CPU资源,提高资源利用率;

②改善短事务的响应时间。

并发操作会带来的问题,会造成数据的不一致性:丢失和覆盖更新、脏读、不可重复读和幻象读。

 

为了解决并发控制带来的问题,需要有锁的概念:

锁能够在处理事务时,防止其他事务对正在进行的事务的干扰。有两种锁:

①排它锁(X锁):一旦有事务加上排它锁,则其他事务对该数据的操作,只能等到该事务释放该锁后才能进行。

②共享锁(S锁):有事务对数据对象上了S锁,其他事务对该数据只能加上S锁,而不能加X锁,直到该事务释放该数据上的锁,这就保证了其他事务可以读取该数据,在释放锁之前却不能对数据进行任何修改。

 

即使对事务加上了锁,也会存在一些死锁和活锁的问题。

活锁解决策略:先来先服务;

死锁解决策略:通过超时法或者等待图法来判断是否发生死锁现象,一旦发生,系统会自动检测到,并取消死锁代价最小的事务,以便让其他事务继续进行。

 

二、视图

视图是关系型数据库提供给用户以多角度观察数据库中数据的一种重要方法。

以表Student为例介绍

SnoSnameSbirthDaySdept

定义视图:create view Student_View as select Sno,Sname,SbirthDay from Student where Sdept="计算机"[WITH CHECK OPYION]

删除视图:drop view Student_View

查询视图:select * from Student_View

更新视图:更删改查操作与SQL语句一致

 

三、权限管理

授权:GRANT ALL PRIVILEGES ON Student to Tom WHIT GRANT OPTION

收权:REVOKE UPDATE(Score) ON Student from Tom

拒接访问:DENY ALL PREVILEGES ON Student  to Tom

对于权限,不同对象允许的操作权限不同,

对象对象类型权限操作
属性列TableSELECT、INSERT、UPDATE、DELETE、ALL PRIVILEGES
视图TableSELECT、INSERT、UPDATE、DELETE、ALL PRIVILEGES
基本表TableSELECT、INSERT、UPDATE、DELETE、ALTER、INDEX、ALL PRIVILEGES
数据库DatabaseCREATETAB

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值