第五章数据库完整性
- 5.1_数据库完整性概述
- 5.2_实体完整性
- 5.2_参照完整性
- 5.3_用户定义的完整性
5.1_数据库完整性概述
1.数据库的完整性:
数据的正确性和相容性
2.数据的完整性和安全性的区别:
数据的完整性:防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正确的数据
数据的安全性:保护数据库防止恶意的破坏和非法的存取
3.为维护数据库的完整性,DBMS必须:
- 提供定义完整性约束条件的机制
- 提供完整性检查的方法
- 违约处理
5.2_实体完整性
实体完整性就是主键的primary key定义
1.提供定义完整性约束条件的机制:
- 列级约束:create table table_name(id int primary key)–在当前列直接定义primary
- 表级约束:create table table_name(id int,primary key(id))–在当前表中单独定义primary
2.提供完整性检查的方法和违约处理:
- 检查主码值是否唯一,如果不唯一则拒绝插入或修改
- 检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改
5.2_参照完整性
实体完整性就是外键的foreign key的定义
1.提供定义完整性约束条件的机制:
- 表级约束:create table table_name(id int,foreign key(id) references table_name(id))–只有表级约束
2.提供完整性检查的方法和违约处理:
5.3_用户定义的完整性
用户定义的完整性就是针对某一具体属性值必须满足的语义要求
1.提供定义完整性约束条件的机制:(CREATE TABLE时定义)
- 列值非空(NOT NULL)
- 列值唯一(UNIQUE)
- 检查列值是否满足一个布尔表达式(CHECK)
例:CREATE TABLE SC
(Sno int UNIQUE,
age int NOT NULL,
sex char(2),
check(sex in (‘男’,‘女’) and age > 18)- -性别只能是男或女,年龄大于18
)
2.提供完整性检查的方法和违约处理: