2345浏览器官方网站,乔拓云智能建站免费注册,外贸公司网站,访问国外网站用什么dns前言实体完整性参照完整性用户定义的完整性SQL Server中常用的完整性约束感谢 #x1f496; 前言
按照数据模型的三大要素#xff0c;关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。本篇文章将介绍这三部分内容中的第三部分即关系完整性。关于前两部分可… 前言实体完整性参照完整性用户定义的完整性SQL Server中常用的完整性约束感谢 前言
按照数据模型的三大要素关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。本篇文章将介绍这三部分内容中的第三部分即关系完整性。关于前两部分可以参考下面的文章【数据库系统概论】关系数据库中的关系数据结构、【数据库系统概论】关系数据库中的关系操作。关于数据模型可以参考这篇文章【数据库系统概论】数据模型。
关系完整性是由一组完整性规则来定义的。完整性规则是对关系的某种约束条件。关系模型中有三类完整性实体完整性、参照完整性和用户定义的完整性。其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件被称作是关系的两个不变性。
下面分别来介绍这三类完整性。
实体完整性
实体完整性规则若属性A指一个或一组属性是基本关系R的主属性则属性A不能取空值。
所以实体完整性定义了主码的取值规则即主码必须唯一且非空。一旦我们设置了主码DBMS就会自动认为主码唯一且非空。
参照完整性
参照完整性规则若属性或属性组F 是关系R 的外码它与关系S 的主码相对应关系R 和S不一定是不同的关系则对于R 中的每个元组在F 上的值要么等于S 中某个元组的主码值要么取空值。
外码是什么呢假如这里有两个关系学生学号姓名性别年龄专业号和 专业专业号专业名。“专业号”是专业表的主码但不是学生表的主码那么“专业号”对学生表来说就是外码。按照参照完整性规则学生关系中每个元组的“专业号”属性只能取下面两类值
空值表示尚未给该学生分配专业。非空值这时该值必须是专业关系中某个元组的“专业号”值即该学生不可能分配到一个不存在的专业中也即被参照关系“专业”中一定存在一个元组它的主码值等于该参照关系“学生”中的外码值。
用户定义的完整性
用户定义的完整性反映了数据必须满足的现实语义要求。例如在学生关系中若按照应用的要求学生不能没有名字则可以定义学生姓名不能取空值某个属性如学生的成绩的取值范围可以定义在0~100之间等。 关系模型应该提供定义和检验这类完整性的机制以便使用统一的系统方法处理它们而不需要由应用程序承担这一功能。 在早期的关系数据库管理系统中没有提供定义和检验这些完整性的机制因此需要由应用开发人员在应用系统的程序中进行检查。例如在关于学生成绩需要在应用程序中对输入的成绩进行判断看是否在0~100之间如果在就插入这条记录如果不在则给出错误信息。
SQL Server中常用的完整性约束
主码约束:PRIMARY KEY唯一性约束:UNIQUE非空值约束:NOT NULL参照完整性约束(外码约束)FOREIGN KEY......REFERENCES检查约束:CHIECK()默认值约束:DEFAULT
感谢
好啦这次的分享就到这里感谢大家看到这里