数据库笔记#5:数据库完整性
实体完整性
-
检查主码值是否唯一,如果不唯一则拒绝插入或修改
-
检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改
-
为避免对基本表进行全表扫描,RDMBS核心一般都在主码上自动建立一个 索引
参照完整性
- 外码,一个参照完整性将两个表中的相应元组联系起来
- 对被参照表和参照表进行增删改的时候有可能破坏参照完整性,必须进行检查
用户定义的完整性
- 针对某一具体应用的数据必须满足的语义要求
- 属性上的:NOT NULL、UNIQUE或CHECK
- 元组上的:CREATE TABLE的CHECK
完整性约束命名字句
1 | CONSTRAINT <完整性约束条件名> <完整性约束条件>; |
- 完整性约束条件包括:
NOT NULL
、UNIQUE
、PRIMARY KEY()
、FOREIGN KEY() REFERENCES
、CHECK
- 查询
NOT NULL
和CHECK
约束,使用字段SEARCH_CONDITION
- 查询
UNIQUE
和PRIMARY KEY
约束,使用字段INDEX_NAME
断言
1 | CREATE ASSERTION <断言名> <CHECK字句> |
触发器
1 | CREATE TRIGGER <触发器名> |
- 触发器只能定义在基本表上,不能定义在视图上
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 二零拾肆!