5.2数据库的完整性 ● 数据库安全性是防止非法用户的非法操作,而 完整性是是防止不合语义的数据 ●数据库完整性的实现机制 -DBMS检查数据库中的数据是否满足语义规定的条 件,这些加在数据库数据之上的语义约束条件称为 数据库完整性约束条件 而DBMS中检查数据是否满足完整性条件的机制称 完整性检查
5.2 数据库的完整性 ⚫ 数据库安全性是防止非法用户的非法操作,而 完整性是是防止不合语义的数据 ⚫ 数据库完整性的实现机制 – DBMS检查数据库中的数据是否满足语义规定的条 件,这些加在数据库数据之上的语义约束条件称为 数据库完整性约束条件 – 而DBMS中检查数据是否满足完整性条件的机制称 完整性检查
5.2.1完整性约束条件 完整性约束条件作用的对象可以分为:列级、元 组级和关系级三个粒度 一列级约束主要约束列的取值类型、范围、精度排序等 一元组级约束主要约束记录中各个字段之间的联系 一关系级约束主要是约束多个记录或关系之间的联系 。完整性约束就其状态可以分为静态和动态的 一静态主要是反映数据库的状态是合理的 -动态主要是反映数据库的状态变迁是否合理
5.2.1完整性约束条件 ⚫ 完整性约束条件作用的对象可以分为:列级、元 组级和关系级三个粒度 – 列级约束主要约束列的取值类型、范围、精度排序等 – 元组级约束主要约束记录中各个字段之间的联系 – 关系级约束主要是约束多个记录或关系之间的联系 ⚫ 完整性约束就其状态可以分为静态和动态的 – 静态主要是反映数据库的状态是合理的 – 动态主要是反映数据库的状态变迁是否合理
1)静态列级约束 -对数据类型的约束,包括数据的类型、长度、单位、 精度等,如char(10)。 -对数据格式的约束,如日期YYMM/DD 一 对取值范围或集合的约束。 -对空值的约束 -其他约束 2)静态元组级约束 一静态元组约束只作用于单个元组上,如高考成绩, 某个字段为其他个字段的和
1) 静态列级约束 – 对数据类型的约束,包括数据的类型、长度、单位、 精度等,如char(10)。 – 对数据格式的约束,如日期YY/MM/DD – 对取值范围或集合的约束。 – 对空值的约束 – 其他约束 2) 静态元组级约束 – 静态元组约束只作用于单个元组上,如高考成绩, 某个字段为其他个字段的和
3)静态关系级约束 一静态关系约束常见有四种 ●实体完整性约束 ●参照完整性约束 ●函数依赖约束 ●统计约束 4)动态列级约束 -修改定义时的约束:如由空改为非空 一修改列值时的约束:如新旧值之间有某种要求 5)动态元组级约束 一修改后的值与原来多个字段相关 6)动态关系级约束 -关系变化前后的状态限制,主要是事务的一致性和原 子性
3) 静态关系级约束 – 静态关系约束常见有四种 ⚫实体完整性约束 ⚫参照完整性约束 ⚫函数依赖约束 ⚫统计约束 4)动态列级约束 – 修改定义时的约束:如由空改为非空 – 修改列值时的约束:如新旧值之间有某种要求 5 )动态元组级约束 – 修改后的值与原来多个字段相关 6 )动态关系级约束 – 关系变化前后的状态限制,主要是事务的一致性和原 子性
5.2.2完整性控制 。完整性控制机制应该具有的功能 -定义功能:定义约束条件 -检查功能:检查用户的操作请求是否违背了完整性 约束条件 -执行动作:在发现用户的操作违背了完整性约束条 件后,能采取一定的动作来保证数据的完整性 ●检查功能分两类 -立即执行约束(immediate constraint) - 延迟执行约束(deferred constraint) 如帐号之间的转移与“借贷平衡约束
5.2.2完整性控制 ⚫ 完整性控制机制应该具有的功能 –定义功能:定义约束条件 –检查功能:检查用户的操作请求是否违背了完整性 约束条件 –执行动作:在发现用户的操作违背了完整性约束条 件后,能采取一定的动作来保证数据的完整性 ⚫ 检查功能分两类 –立即执行约束(immediate constraint) –延迟执行约束(deferred constraint) 如帐号之间的转移与“借贷平衡约束