数据库经典问题
时间:2022-03-13 23:29
1、存储过程的优点是什么? 存储过程的优点: 1.提高性能 2.减轻网络拥塞 3.一致性较好 4.改善安全机制
2、什么是触发器?触发器有哪几种?触发器有什么优点?
一个触发器是由T-SQL语句集组成的代码块,在响应某些动作时激活该语句集
有insert,delete,update触发器
它防止了对数据的不正确、未授权的和不一致的改变
3、常见的几种约束有哪些?分别代表什么意思?如何使用?
1)实体完整性:主键保证了实体完整性,一个表只有一个主键,但一个主键可有包含多个字段,主键字段不能为空
2)参照完整性:外键保证了引用完整性,一个表可以有多个外键
3)用户定义完整性:CHECK保证了域完整性, 一个表中可以有多个检查性约束
4、事务:是一系列的数据库操作,是数据库应用的基本逻辑单位。
事务性质:ACID特性
10、日志文件 redo 和 undo的作用
在事务T开始开始之前,日志中写入记录<T start>,执行过程中,T执行任何write(X)操作前先要向日志中写入适当的新的记录,当T提交时,日志中写入记录<T commit>,总的来说就是先写日志,后更新记录。
在这里我们先说恢复的一般方法:
(1)正向扫描日志文件(从头到尾),找出故障发生前已经提交的事务(存在begin transaction和commit记录),将其标识记入重做(redo)队列。同时找出故障发生时未完成的事务(只有begin transaction,没commit),将其标识记入(undo)队列
(2)对undo队列的各事务进行撤销处理。进行undo的处理方法是,反向扫描日志文件,对每个undo事务的更新操作执行反操作,即将日志记录中“更新前的值”写入数据库。
(3)对重做日志中的各事务进行重做操作。进行redo的处理方法是,正向扫描日志,对每个redo事务重新执行日志文件登记操作。即将日志中“更新后的值”写入数据库。