- 完整性约束条件
概念:是指数据库中数据本身的某些语法或者语义限制、数据之间的逻辑约束以及数据变化时应该遵守的规则等
约束表达形式:通常以谓词逻辑形式表示:原子公式、命题连接词(并且、或者、否则等)
约束对象:关系、元组、属性
约束分类
静态约束
概念:数据库中数据本身的某些语法或者语义限制、数据之间的逻辑约束
分类:
静态属性级约束
数据格式约束
对取值范围约束
取值集合约束
对空值约束
静态元组约束
静态关系约束
实体完整性约束
参照完整性约束
函数依赖约束
统计约束
动态约束
概念:数据变化时遵守的规则
分类
动态属性级约束
修改属性定义约束
修改属性值约束
动态元组约束
动态关系约束
- 实体完整性:要求主键中的任一属性不能为空
- 参照完整性
概念:关系R(被参照关系)的主键FK是关系S(参数关系)中主键PK的一部分或者全部,也即是S中某主键的取值必须在R中存在
举例:
关于参照完整性删除方式:
级联删除:将R中要删除的记录对应的主键值也在S中执行删除,如果S中还有外键也同样进行级联操作
受限删除:这是系统默认删除方式,让S中没有任何元组的外键值等于R中要删除的主键值时,系统才允许删除
置空删除:把S中相应外键值置为空,然后删除被参数关系的元组
关于参照完整性插入方式:
受限插入:当R中存在相同的元组时才允许在S中插入
递归插入:先往R中插入值再向S中插入对应值
- 用户定义的完整性
概念:用户定义的完整性是针对某一个具体数据库的约束性
分类
立即执行约束:一条语句执行完成后立即检查
延迟执行约束:整个事务执行结束后再进行检查
定义完整性的五元组(D,O,A,C,P)
D:表示约束的对象
O:触发的数据库操作
A:对象必须满足的语义条件
C:A对应的谓词
P:违反完整性规则时触发的过程
- 触发器
概念:一个事件的发生必然触发另外一个事件的发生,前一个事件为触发事件,后一个事件为结果事件
作业过程:一般为数据的插入、修改、删除操作
优点:除了保证完整性之外,还有安全性保护功能