数据库恢复 夏英 (xiayingacqupt. edu. cn) 重庆邮电大学计算机学院
1 数据库恢复 夏英 (xiaying@cqupt.edu.cn) 重庆邮电大学计算机学院
主要内容 事务及其特性 故障种类及对数据库造成的影响 数据库恢复技术 日志、备份、检查点 数据库恢复策略 利用日志重建数据库所作更新
2 主要内容 事务及其特性 故障种类及对数据库造成的影响 数据库恢复技术 日志、备份、检查点 数据库恢复策略 利用日志重建数据库所作更新
相关概念 数据的完整性:即数据的合理性、相容性、正 确性。我们希望数据库中的数据在任何时候都 是正确的。 数据库的一致状态:满足所有约束,基本要求 一致数据库:数据库处在一致状态下
3 相关概念 数据的完整性:即数据的合理性、相容性、正 确性。我们希望数据库中的数据在任何时候都 是正确的。 数据库的一致状态: 满足所有约束,基本要求 一致数据库: 数据库处在一致状态下
完整性约束(或一致性约束) 指数据库中的数据必须满足的条件或约定 例如: ■x是R的关键码,取值不能为空且唯一 属性x的长度为10 任何职工的工资不能超过平均工资的两倍 属性A的值与属性B的值相等 学生所选的课程必须是学校开设的课程
4 完整性约束(或一致性约束) 指数据库中的数据必须满足的条件或约定 例如: x 是 R 的关键码,取值不能为空且唯一 属性x的长度为10 任何职工的工资不能超过平均工资的两倍 属性A的值与属性B的值相等 学生所选的课程必须是学校开设的课程 …
■为维护数据库的完整性,DBMS必须: 1.提供定义完整性约束条件的机制 SQL描述的完整性,包括关系模型的实体完整性、 参照完整性和用户定义完整性 ●这些完整性一般由SQL的数据定义语言语句来实现
为维护数据库的完整性,DBMS必须: 1. 提供定义完整性约束条件的机制 SQL描述的完整性,包括关系模型的实体完整性、 参照完整性和用户定义完整性 这些完整性一般由SQL的数据定义语言语句来实现
2.提供完整性检查的方法 ●DBMS中检查数据是否满足完整性约束条件的机制 称为完整性检查。 ●一般在Ⅰ NSERT、 UPDATE、 DELETE语句执行后开 始检査,也可以在事务提交时检查
数据库完整性(续) 2. 提供完整性检查的方法 DBMS中检查数据是否满足完整性约束条件的机制 称为完整性检查。 一般在INSERT、UPDATE、DELETE语句执行后开 始检查,也可以在事务提交时检查
3.违约处理 ●数据库管理系统若发现用户的操作违背了完整性约束 条件,就采取一定的动作 拒绝( NO ACTION)执行该操作 级连( CASCADE)执行其他操作
数据库完整性(续) 3. 违约处理 数据库管理系统若发现用户的操作违背了完整性约束 条件,就采取一定的动作 拒绝(NO ACTION)执行该操作 级连(CASCADE)执行其他操作 … …
实体完整性检查和违约处理 插入元组或修改主码列操作时,DBMS自动检查和处理: 主码值是否唯一,如果不唯一则拒绝操作 主码各属性是否为空,只要有一个为空就拒绝操作
实体完整性检查和违约处理 插入元组或修改主码列操作时,DBMS自动检查和处理: 主码值是否唯一,如果不唯一则拒绝操作 主码各属性是否为空,只要有一个为空就拒绝操作
可能破坏参照完整性的情况及违约处理 被参照表(例如 Student)参照表(例如SC)违约处理 可能破坏参照完整性 插入元组拒绝 可能破坏参照完整性 修改外码值 拒绝 删除元组 可能破坏参照完整性拒绝级连删除设置为 空值 修改主码值 可能破坏参照完整性拒绝级连修改/设置为 空值
• 可能破坏参照完整性的情况及违约处理 被参照表(例如Student) 参照表(例如SC) 违约处理 可能破坏参照完整性 插入元组 拒绝 可能破坏参照完整性 修改外码值 拒绝 删除元组 可能破坏参照完整性 拒绝/级连删除/设置为 空值 修改主码值 可能破坏参照完整性 拒绝/级连修改/设置为 空值
用户定义完整性的检查和违约处理 ■插入元组或修改属性的值时,DBMS检查属性上的 约束条件是否被满足 ■如果不满足则操作被拒绝执行
用户定义完整性的检查和违约处理 插入元组或修改属性的值时,DBMS检查属性上的 约束条件是否被满足 如果不满足则操作被拒绝执行