drop function people
4.触发器。
Create trigger XXX On table
[ for /after /instead of ] Insert,delete,update As 触发器实际需要触发内容
For:用法同after
After:执行完sql语句之后进行检查,检查不符合条件的话回滚 roll back 。after触发器只能在表上指定。
Instead of :指定触发器时代替SQL语句执行的,其优先级高于触发语句的操作。 例:
为 student表建立触发器T1,当插入或更新表中的数据时,保证所操作的记录的sage值大于0。 create trigger T1 on student after insert,update as begin
declare @sage int
select @sage = inserted.sage from inserted if(@sage < 0) begin
print '年龄错误' rollback transaction
end
end
update student set sage = 38 where sno = '01'
insert into student(sno,sname,ssex,sage,sdept) values('2007011','张三','男',55,'ma')
为student表建立触发器T2,禁止删除编号为“0001”的学生。 insert into student(sno,sname,ssex,sage,sdept) values('0001','傻大个','男',19,'is')
create trigger T2 on student after delete as begin
declare @sno char(10)
select @sno = deleted.sno from deleted if(@sno = '0001')
begin
print '禁止删除学号0001信息' rollback transaction
end
end
delete student where sno = '0001'
drop trigger T2
第十章
1.事务。
是一系列的数据库操作,是数据库应用程序的基本逻辑单元。
是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割
的工作单元。 2.事务的四个特性。
原子性:事务是数据库的逻辑工作单位,事务总包括的诸操作要么全做,要么全不做。 一致性:数据库只包含成功事务提交的结果,就说数据库处于一致性状态。
隔离性:一个事务的执行不能被其他事务干扰。即一个事务的内部操作及使用的数据对
其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰。
持续性:指一个事务一旦提交,他对数据库中数据的改变就应该是永久性的。
事务是恢复和并发控制的基本单位。 3.数据库恢复。
把数据库从错误状态恢复到某一已知的正确状态的功能。
1. 运行事务非正常中断。 2. 数据丢失。
4.故障种类。
运行事务非正常中断----------恢复-事务撤销。 系统故障、介质故障、计算机病毒。
5.恢复实现技术。
数据恢复的基本原理:冗余。
建立冗余数据最常用的技术是数据转储和登记日志文件。
6. 数据转储。
静态转储:是在系统中无运行事务时进行的转储操作。
动态转储:是指转储期间允许对数据库进行存取或修改。即转储和用户事务可以并发执
行。
海量转储:每次转储全部数据库。
增量转储:指每次只转储上一次转储后更新过的数据。
7.日志文件。
是用来记录事务对数据库的更新操作的文件。 在事务故障恢复和系统故障恢复必须用日志文件。
在动态转储方式中必须建立日志文件,后备副本和日志文件结合起来才能有效地恢复数
据库。
在静态转储中也建立日志文件……
8.登记日志文件(对数据库的操作记录)。
登记的次序严格按并发事务执行的时间次序。 必须先写日志文件,后写数据库。
9.事务故障的恢复。
恢复子系统应利用日志文件撤销此事务已对数据库进行的修改,系统自动进行。
10.系统故障恢复。
导致故障原因可能有两个:
1. 未完成事务对数据库的更新可能已写入数据库。
2. 已提交事务对数据库的更新可能还留在缓冲区没来得及写入数据库。
恢复策略是 撤销故障发生时未完成的事物,重做已完成的事物。 11.介质故障的恢复。
数据库副本。
第十一章
1. 并发操作带来的数据不一致性。 并发操作破坏了事务的隔离性。
丢失修改:两个事务同时读入同一数据并修改,T2提交的结构破坏了T1提交的结果,
导致T1的修改被丢失。
不可重复读:事务1读取数据后,事务2执行更新操作,使T1无法再现前一次读取结
果。
读脏数据:事务1修改某一数据并将其写回磁盘,事务2读取同一数据后,T1由于某