1、简述数据的物理独立性和逻辑独立性
当数据库的存储结构改变了(例如选用了另一种存储结构),由数据库管理员对模式/内模式映像作相应改变,可以使模式保持不变,从而应用程序也不必改变。保证了程序与数据的物理独立性,简称数据的物理独立性。
当需要改变模式时(例如增加新的关系、新的属性、改变属性的数据类型、改变数据间的联系等),有数据库管理员对各个外模式/模式映像作相应改变,而使外模式保持不变,从而不必修改或重写应用程序。而应用程序是依据数据的外模式编写的,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。
2、死锁的诊断与解除
超时法:如果一个事务的等待时间超过了规定的时限,就认为发生了死锁。解除死锁:将其撤销。
等待图法:用事务等待图动态反应所有事务的等待情况。解除死锁:选择一个处理死锁代价最小的事务,将其撤销,释放此事务持有的所有的锁,使其他事务能继续运行下去。
3、事务的特点
事务的ACID特性
原子性:事务中包括的诸操作要么都做,要么都不做
一致性:事务执行的结果必须是使数据库从一个一致性状态到另一个一致性状态
隔离性:一个事务内部的操作及使用的数据对其他并发事务是隔离的
持续性:一个事务一旦提交,它对数据库中数据的改变就应该是永久性的
4、什么是两段锁协议?它的作用是什么?
(1)在对任何数据进行读、写操作之前,首先要申请并获得对该数据的封锁
(2)在释放一个封锁之后,事务不再申请和获得任何其他封锁
作用:若并发执行的所有事务均遵守两段锁协议,则对这些事务的任何并发调度策略都是可串行化的。
5、什么是自主存取控制?什么是强制存取控制?
自主存取控制:用户对不同的数据对象具有不同的存取权限,不同的用户对同一对象也有不同的权限,而且用户还可以将其所有的权限转授给其他用户。
强制存取控制:每一个数据对象被标以一定的密级,每一个用户也被授予某一级别的许可证。对于任意一个对象,只有具有合法许可证的用户才可以存取。