目录
一、数据库设计
1.设计步骤
规划、需求分析、概念设计、逻辑设计、物理设计、实现、运行维护
2.局部ER模型合并的冲突
属性冲突:属性域冲突、取值单位冲突。
结构冲突:同一对象不同的抽象、同意实体的属性组成不同。
命名冲突:属性名冲突、联系名冲突、实体名冲突、同名异义、异名同义。
3.概念模型的特点
1)能真实、充分地反映现实世界,是显示世界地一个真实模型。
2)易于理解,从而可以用它和不熟悉计算机地用户交换意见。
3)易于更改,当应用环境和应用要求改变时,容易对概念模型修改和扩充。
4)易于向关系、网状、层次等各种数据模型转换。
4.合并E-R图(概念模型->逻辑模型)
1)1个实体型转换为一个关系模式,主键为实体的候选键。
2)两个实体1对1关系时,在两个实体的任意一个形成的关系模式的属性中加入另一个实体的主键和联系的属性。
3)1对n关系时,在n端实体形成的关系模式中加入1端实体的主键和联系的属性。
4)多对多关系时,将联系也形成一个关系模式,该关系模式的属性包含连接的两个实体的主键和联系的属性,主键为连接的两个实体的主键的组合。
5)确定各关系模式的外键。
四、数据库保护
1.一些概念
事务:是一个不可分割的操作序列,这些操作要么都做要么不做。
调度:事务的执行次序称为调度。
事物的性质:
1)原子性:事务是一个不可分割的操作序列。原子性由事务管理子系统完成。
2)一致性:数据不会因为事务的执行而遭到破坏。一致性由编写事务的程序员完成或由系统测试完整性约束自动完成。
3)隔离性:一个事务的执行不必关心其他事务,事务并发执行的结果应当与前后分别执行的结果一致。隔离性由并发控制子系统完成。
4)持久性:事务一旦完成所有操作后,它对数据库的更新应永久地反映在数据库中。即使以后系统出现故障也应保存执行的痕迹。持久性由恢复管理子系统实现。
故障的类型:事物故障、系统故障、介质故障。
恢复的原则:数据的重复存储。
恢复的方法:定期转储、建立日志、恢复(如果数据库已经损坏,恢复最近的备份,按照日志REDO;如果数据库未遭到破坏,只是某些数据不可靠,则先按照日志文件UNDO再REDO)
活锁:可能有某个事物永远处于等待状态而无法执行。
解决:“先到先服务”原则按照请求封锁的顺序建立事务队列,每当数据上的封锁释放,就批准队列中第一个事务执行。
死锁:有两个或多个事务处于等待状态,每个事务都在等待其中另一个事务解除封锁才能执行下去,结果任何一个事务都无法执行。
解决:撤销其中某个事务。
SQL的安全性控制:视图机制、授权子系统
视图:是从一个或几个基本表导出的虚表。视图对应的数据并不实际存储在数据库中,只是在数据字典中存储它的定义。视图可以和基本表一样被查询、删除,但更新操作受到限制。视图具有数据安全性、数据独立性、操作简便性。视图可以用来对无权用户屏蔽数据。
视图的作用:
1)视图不仅可以简化用户对数据的理解,也可以简化操作,使用户不必为后续的操作每次指定全部的条件。
2)通过视图,用户可以被限制在数据的不同子集上。通过试图,用户只能查询和修改他们所能见到的数据,但不能授权到数据库特定行和特定的列上,
3)视图可以帮助用户屏蔽真实表结构变化带来的影响。
授权子系统:允许有特定存取权的用户有选择地、动态地把这些权限授予其他用户。