前言: 概念性的知识到这一章马上结尾了,还剩下数据库的恢复技术,接下来会给大家出具体的操作文章。
定义: 数据库的完整性是指数据的正确性和相容性。
实体完整性 :
- 定义实体完整性:
-关系模型的实体完整性在CREATE TABLE中用PRIMARY KEY定义。对单属性构成的码有两种说明方法,一种是定义为列级约束条件,另一种是定义为表级约束条件。对多个属性构成的码只有一种说明方法,即定义为表级约束条件。
例如: 将Student表中的Sno属性定义为码。
- 实体完整性检查和违约处理:
(1) 检査主码值是否唯一,如果不唯一则拒绝插入或修改。
(2) 检査主码的各个属性是否为空,只要有一个为空就拒绝插入或修改。
由于检查竹马是否唯一用的是全表扫描,很费时间,所以关系数据库一般建立一个B+树索引来提高效率。
解释: 查找25。 25小于51,在左侧,25在12和30之间,往中间找。 总之:小了往左找,大了向右找,不大不小在中间。
**参照完整性 **
- 定义参照完整性:
-关系模型的参照完整性在CREATE TABLE中用FOREIGN KEY短语定义哪些列为外码,用REFERENCES短语指明这些外码参照哪些表的主码。
- 参照完整性検查和违约处理
用户定义的完整性 用户定义的完整性就是针对某一具体应用的数据必须满足的语义要求。
- 属性上的约束条件:在CREATE TABLE中定义属性的同时,可以根据应用要求定义属性上的约束条件。包括:
・列值非空(NOTNULL)。
・列值唯一(UNIQUE)。
・检査列值是否满足一个条件表达式(CHECK短语) - 元组上的约束条件
与属性上约束条件的定义类似,在CREATE TABLE语句中可以用CHECK短语定义元组上的约束条件,即元组级的限制。同属性值限制相比,元组级的限制可以设置不同属性之间的取值的相互约束条件。
完整性约束子句
- 完整性约束命名子句
-CONSTRAINT <完整性约束条件名> <完整性约束条件>,完整性约束条件包括 NOT NULL、UNIQUE、PRIMARY KEY、FOREIGN KEY、CHECK短语等。
- 修改表中的完整性限制
-可以使用ALTER TABLE语句修改表中的完整性限制s
断言 在SQL中可以使用数据定义语言中的CREATE ASSERTION语句,通过声明性断言来指定更具一般性的约束。
1、创建断言的语句格式
-----------CREATE ASSERTIONS <言名 > <CHECK 子句>
2.删除断言的语句格式
-----------DROP ASSERTION <断言名>
触发器:触发器(trigger)是用户定义在关系表上的一类由事件驱动的特殊过程。
- 定义触发器
-触发器又叫做事件-条件-动作规则