一、数据库的事务
事务:
是数据恢复和并发控制的最小单位,是用户执行一系列数据操作的序列集合。
事务具有四大特点(ACID):
①原子性:事务对数据的操作要么全部都做,要么全部不做,就叫做事务的原子性
②一致性:事务执行的结果必须使数据从一个一致性状态转变到另一个一致性状态。事务成功提交时,数据库必须处于一致性状态。
③隔离性:多个事务同时进行时,各个事务之间不会相互影响。
④持久性:事务提交成功,其对数据库的数据操作是永久性的。
并发控制:
是以事务为单位进行的,能够并行进行事务的处理。这样做的好处:
①提高CPU的利用效率,能够最大化的使用CPU资源,提高资源利用率;
②改善短事务的响应时间。
并发操作会带来的问题,会造成数据的不一致性:丢失和覆盖更新、脏读、不可重复读和幻象读。
为了解决并发控制带来的问题,需要有锁的概念:
锁能够在处理事务时,防止其他事务对正在进行的事务的干扰。有两种锁:
①排它锁(X锁):一旦有事务加上排它锁,则其他事务对该数据的操作,只能等到该事务释放该锁后才能进行。
②共享锁(S锁):有事务对数据对象上了S锁,其他事务对该数据只能加上S锁,而不能加X锁,直到该事务释放该数据上的锁,这就保证了其他事务可以读取该数据,在释放锁之前却不能对数据进行任何修改。
即使对事务加上了锁,也会存在一些死锁和活锁的问题。
活锁解决策略:先来先服务;
死锁解决策略:通过超时法或者等待图法来判断是否发生死锁现象,一旦发生,系统会自动检测到,并取消死锁代价最小的事务,以便让其他事务继续进行。
二、视图
视图是关系型数据库提供给用户以多角度观察数据库中数据的一种重要方法。
以表Student为例介绍
Sno | Sname | SbirthDay | Sdept |
定义视图: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
对于权限,不同对象允许的操作权限不同,
对象 | 对象类型 | 权限操作 |
属性列 | Table | SELECT、INSERT、UPDATE、DELETE、ALL PRIVILEGES |
视图 | Table | SELECT、INSERT、UPDATE、DELETE、ALL PRIVILEGES |
基本表 | Table | SELECT、INSERT、UPDATE、DELETE、ALTER、INDEX、ALL PRIVILEGES |
数据库 | Database | CREATETAB |