第五章 数据库完整性

关系模型的实体完整性 CREATE  TABLE中用PRIMARY KEY定义 单属性构成的码有两种说明方法 定义为列级约束条件 定义为表级约束条件 对多个属性构成的码只有一种说明方法 定义为表级约束条件

实体完整性检查和违约处理:插入或对主码列进行更新操作时,关系数据库管理系统按照实体完整性规则自动进行检查。包括: 检查主码值是否唯一,如果不唯一则拒绝插入或修改 检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改

参照完整性定义:关系模型的参照完整性定义 在CREATE  TABLE中用FOREIGN KEY短语定义哪些列为外码 用REFERENCES短语指明这些外码参照哪些表的主码

参照完整性检查和违约处理:一个参照完整性将两个表中的相应元组联系起来 对被参照表和参照表进行增删改操作时有可能破坏参照完整性,必须进行检查

参照完整性违约处理 (1) 拒绝(NO ACTION)执行 不允许该操作执行。该策略一般设置为默认策略 (2) 级联(CASCADE)操作 当删除或修改被参照表(Student)的一个元组造成了与参照表(SC)的不一致,则删除或修改参照表中的所有造成不一致的元组 (3)设置为空值(SET-NULL) 当删除或修改被参照表的一个元组时造成了不一致,则将参照表中的所有造成不一致的元组的对应属性设置为空值。

用户定义的完整性是:针对某一具体应用的数据必须满足的语义要求 关系数据库管理系统提供了定义和检验用户定义完整性的机制,不必由应用程序承担 

属性上约束条件的定义:CREATE TABLE时定义属性上的约束条件 列值非空(NOT NULL) 列值唯一(UNIQUE) 检查列值是否满足一个条件表达式(CHECK)

属性上的约束条件检查和违约处理 插入元组或修改属性的值时,关系数据库管理系统检查属性上的约束条件是否被满足 如果不满足则操作被拒绝执行

在CREATE TABLE时可以用CHECK短语定义元组上的约束条件,即元组级的限制 同属性值限制相比,元组级的限制可以设置不同属性之间的取值的相互约束条件

元组上的约束条件检查和违约处理 插入元组或修改属性的值时,关系数据库管理系统检查元组上的约束条件是否被满足 如果不满足则操作被拒绝执行

1.完整性约束命名子句 CONSTRAINT <完整性约束条件名><完整性约束条件> <完整性约束条件>包括NOT NULL、UNIQUE、PRIMARY KEY短语、FOREIGN KEY短语、CHECK短语等

猜你喜欢

转载自blog.csdn.net/Fred_TT/article/details/83590609