山东大学数据库简答题

山东大学数据库常考简答


 简述事务的概念及其相关特性。
事务是访问并可能更新各种数据项的一个程序执行单元。事务具有ACID四种特性:
原子性(Atomicity). 事务的所有操作在数据库中要么全部正确反映,要么全部不反映
一致性(Consistency).隔离执行事务时(即,在没有其他事务并发执行的情况下)保持数据库的一致性
隔离性(Isolation).尽管多个事务可能并发执行,但系统保证每个事务都感觉不到系统中有其他事务在并发的执行。中间事务结果对其他并发执行的事务是隐藏的。
持久性(Durability).一个事务成功完成后,它对数据库的改变是永久的,即使系统可能出现故障
关系中的元组有先后顺序吗?为什么?
没有。关系是元组的集合,而集合中的元素是没有顺序的,因此关系中的元组也就没有先后顺序。
简述时间戳排序协议
时间戳:对于系统中的每一个事务Ti,我们把一个唯一的固定的时间戳和它联系起来,记为TS(Ti)。每个数据项Q需要与两个时间戳相关联:W-timestamp(Q)表示成功执行write(Q)的所有事务的最大时间戳;R-timestamp(Q)表示成功执行read(Q)的所有事务的最大的时间戳。
假设事务Ti发出read(Q)操作: 
a. 若TS(Ti)<W-timestamp(Q),则Ti需读入的Q值已被覆盖。因此,read操作被拒绝,
Ti回滚。 
b. 若TS(Ti)>= W-timestamp(Q),则执行read操作,R-timestamp(Q)被设为R-timestamp(Q)
与TS(Ti)两者中的最大值。 
假设事务Ti发出write(Q)操作: 
a. 若TS(Ti)< R-timestamp(Q),则Ti产生的Q值是先前所需要的值,且系统一经假设
该值不会被产生。因此,write操作被拒绝,Ti回滚。 
b. 若TS(Ti) <W-timestamp(Q),则Ti想写入的Q值已过时。因此,write操作被拒绝,
Ti回滚。 
c. 其他情况发生时,执行write操作,将W-timestamp(Q)设为TS(Ti)。
调度方式
多个事务的并发执行存在多种调度方式:Serializable,Conflict-serializable,Avoid cascading abort和Strict。
严格的
在一个事务写入的值在其提交或者中止之前没有其他事务读或者写
避免级联中止的
如果事务仅读已提交事务修改的数据,那么是避免级联终止的。
串行调度(Serial schedule)
各个事务之间没有任何操作交错执行,事务一个一个执行。S=T1T2T3…Tn。
可串行化调度(Serializable schedule)
如果一个调度的结果与某一串行调度执行的结果等价,则称该调度是可串行化调度,否则是不可串调度。
冲突可串行化调度
如果调度中一对连续操作是冲突的,则意味着如果它们的执行顺序交换,则至少i改变其中一个事务的最终执行结果。如果两个连续操作不冲突,则可以在调度中交换顺序。
一个调度S在保证冲突操作的次序不变的情况下,通过交换两个事务不冲突操作的次序得到另一个调度S’,如果S’是串行的,称调度S为冲突可串行化的调度。
如果一个调度满足冲突可串行,则该调度是可串行化调度。但可串行化调度不一定满足冲突可串行。冲突可串行为可串行的充分条件。

两阶段封锁协议
这是一个确保冲突可串行化调度的协议。该协议要求每个事务分两个阶段提出加锁和解锁申请:
(1)增长阶段。事务可以获得锁,但不能释放锁。(开始)
(2)缩减阶段。事务可以释放锁,但不能获得锁。(释放后)
协议确保可串行化。可以证明事务按照它们的封锁点的顺序可串行化 (即事务获取最后一次封锁的时刻)
两阶段封锁协议实现了事务集的串行化调度,但同时,一个事务的失败可能会引起一连串事务的回滚。
严格两阶段封锁协议除了要求封锁是两阶段之外,还要求事务持有的所有排它锁必须在事务提交之后方可释放。这个要求保证未提交事务所写的任何数据,在该事务提交之前均以排它锁封锁,防止其他事务读取这些数据。
强两阶段封锁协议,要求事务提交之前不得释放任何锁。使用锁机制的数据库系统,要么使用严格两阶段封锁协议,要么使用强两阶段封锁协议。
两阶段封锁协议并不保证不会发生死锁,数据库系统必须采取其他的措施,预防和解决死锁问题。
请从程序和数据之间的关系分析文件系统和数据库系统之间的区别和联系
文件系统和数据库系统之间的区别是: (1)文件系统用文件将数据长期保存在外存上,数据库系统用数据库统一存储数据; (2)文件系统中的程序和数据有一定的联系,数据库系统中的程序和数据分离; (3)文件系统用操作系统中的存取方法对数据进行管理,数据库系统用DBMS统一管理和控制数据 (4)文件系统实现以文件为单位的数据共享,数据库系统实现以记录和字段为单位的数据共享。
文件系统和数据库系统之间的联系: (1)均为数据组织的管理技术; (2)均由数据管理软件管理数据,程序与数据之间用存取方法进行转换; (3)数据库系统是在文件系统的基础上发展而来
如何理解空值(NULL),空值在参与运算时有哪些特点?
空值null表示“不知道”或者“不存在”的含义。不是指“0”,也不是“false”,也不是’’。Null参与的关系运算和算术运算结果均为null。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值