完整性约束条件的作用对象:
- 列级约束(针对字段,key)
主要针对列的类型,取值范围,精度等约束- 对空值的约束。规定某个字段是否为空
- 对取值范围的约束。例如,学生成绩的字段规定为 0 - 100
- 数据类型的约束。包括数据类型,长度,精度等。例如常用的定长 varchar
- 数据格式的约束。例如,学生表中的学号 stu_no 字段,认为规定前四位为入学年份,后面是院系的编号等
- 元组(或称作 row,一条数据)约束
- 元组中字段之间的约束。例如,一个活动的开始时间必须早于它的结束时间
- 表级约束(外键)
- 指多个元组之间,关系之间的联系的约束。例如,学生成绩表中的 stu_no 字段,实际取值源于 学生表中的 stu_no 字段
以上是一些约束的概念,理论上的,如何实现约束,请往下看。
- 指多个元组之间,关系之间的联系的约束。例如,学生成绩表中的 stu_no 字段,实际取值源于 学生表中的 stu_no 字段
实体完整性
实体的完整性是通过主键(primary key)约束和候选键(candidate key)约束来实现的。所以前提条件是要了解键的一些概念和分类:
-
key:用于保证元组的唯一性
- super-key:能够区分唯一的元组的集合
- candidate key:super-key 中最小集
- primary key:candidate key 中人工选择一个(一