数据库系统原理--笔记整理.doc
数据库系统原理
(1)授权
grant的一般格式为:grant权限on对象类型to用户
其语义是将指定操作对象的指定操作权限授予指定的用户;
不同对象类型允许的操作权限
例如:把查询student权限授权给用户U1;
GrantselectontablestudenttoU1;
(2)收回权限
revoke格式:revoke权限on对象类型from用户
例如:把用户U4修改学生学号的权限收回
Revokeupdate(sno)ontablestudentfromu4;
超键(superkey)、候选键(candidatekey)和主键(primarykey)的区别?
超键(superkey):在关系中能唯一标识元组的属性集称为关系模式的超键
候选键(candidatekey):不含有多余属性的超键称为候选键
主键(primarykey):用户选作元组标识的一个候选键程序主键
比如一个小范围的所有人,没有重名的,考虑以下属性
身份证姓名性别年龄
身份证唯一,所以是一个超键
姓名唯一,所以是一个超键
(姓名,性别)唯一,所以是一个超键
(姓名,性别,年龄)唯一,所以是一个超键
--这里可以看出,超键的组合是唯一的,但可能不是最小唯一的
身份证唯一,而且没有多余属性,所以是一个候选键
姓名唯一,而且没有多余属性,所以是一个候选键
--这里可以看出,候选键是没有多余属性的超键
考虑输入查询方便性,可以选择身份证为主键
也可以考虑习惯选择姓名为主键
--主键是选中的一个候选键
封锁粒度与系统的并发度成反比。
试述事务的四个性质,并说明每一个性质由DBMS的哪个子系统实现?每一个性质对数据库系统有什么益处?
答:原子性:一个事务对数据库的所有操作,是一个不可分割的工作单元,这些操作要么全部执行,要么什么也不做(由DBMS的事务管理子系统来实现);
一致性:一个事务独立执行的结果,应(由DBMS的完整性子系统执行测试任务);
隔离性(由DBMS的并发控制子系统实现);
持久性(由DBMS的恢复管理子系统实现的)。
6.9数据库的并发操作会带来哪些问题?如何解决?
答:丢失更新问题;度脏数据问题;不可重复读问题。
解决的方法是用封锁机制。
6.11为什么x锁要保留到事务终点,而s锁可随时解除?
答:在一个事务上对数据加上x锁后,并且对数据进行了修改,如果过早的解除x锁,有可能使其他事物读了未提交的数据,引起丢失其他事务的更新;由于s锁只允许读数据,因此解除s锁的操作不必等到事务的结束,可随时根据需要接触s锁。
6.12什么是封锁粒度?封锁粒度的大小对并发系统有什么影响?
答:封锁对象的大小称为封锁粒度。
封锁粒度与系统的并发度和并发控制的开锁密切相关,封锁的粒度越大并发度也就越小,同时系统的开销也就越小;相反,封锁粒度越小,并发度就越大,系统的开销也就越大。
删除参照关系的元组时,对依赖关系有哪些影响?修改参照关系的主键时,对依赖关系有哪些影响?
答:1、删除参照表中元组时的考虑:
Noaction:对依赖表没有影响。
Cascade:将依赖表中所有外键值与参照表中要删除的主键值相对应的元组一起删除。
Restrict:只有当依赖表中没有一个外键值与要删除的参照表中主键值相对应删除。
Setnull:删除参照表中元组时,将依赖表中所有与参照表中被删除的主键值相对应的外键值均置为空。
Setdefault:删除参照表中元组时,将依赖表中所有与参照表中被删除的主键值相对应的外键值均置为预先定义好的默认
值。
2、修改参照表中主键时的考虑:
Noaction:对依赖表没有影响。
Cascade:将依赖表与参与表中要修改的主键值相对应的所有外键值一起修改。
Restrict:只有当依赖表中没有外键值与参照表中要修改的主键值相对应时,系统才修改参照表中主键值,否则拒绝此修改操作。
Setnull:修改参照表中主键时,将依赖表中所有与这个主键值相对应的外键值均置为空值。
Setdefault:修改参照表中主键时,将依赖表中所有与这个主键值相对应的外键值均置为预先定义好的默认值。
7.1SQLServer2000的版本有哪四种?各自的适用范围是什么?
答:①企业版:作为生产数据库服务器使用。
②标准版:作为小工作组或部门的数据库服务器使用。
③个人版:供移动的用户使用,这些用户又是从网络上断开,但所运行的应用程序需要SQLServer数据存储。
④开发版:供程序员来开发将SQLServer2000用作数据存储的应用程序。只能