第六章 设计数据完整性 2021/2/20 Information College. ChangJun
1 2021/2/20 Information College · ChangJun 第六章 设计数据完整性
回顾 >SQL语言的特点及组成 SQL Server的标识符命名规则 SQL Server的数据类型 创建、删除和修改表的基本方法 2021/2/20 Information College. ChangJun
2 2021/2/20 Information College · ChangJun 回顾 ➢ SQL语言的特点及组成 ➢ SQL Server的标识符命名规则 ➢ SQL Server的数据类型 ➢ 创建、删除和修改表的基本方法
目标 数据完整性基础 使用约束措施 使用规则措施 使用默认值 2021/2/20 Information College. ChangJun 3
3 2021/2/20 Information College · ChangJun 目标 ➢ 数据完整性基础 ➢ 使用约束措施 ➢ 使用规则措施 ➢ 使用默认值
61数据完整性基础 、什么是数据完整性 数据完整性( Data Integrity)是指数据 的正确性和可靠性。 造成无效操作或错误信息的原因: 数据库中存在不符合语义规定的数据。 (垃圾进垃圾出 Garbage In Garbage Out) 2021/2/20 Information College. ChangJun
4 2021/2/20 Information College · ChangJun 6.1 数据完整性基础 • 造成无效操作或错误信息的原因: 一、什么是数据完整性 • 数据完整性(Data Integrity)是指数据 的正确性和可靠性。 数据库中存在不符合语义规定的数据。 (垃圾进垃圾出---Garbage In Garbage Out)
什么是数据完整性 数据库管理系统(DBMS)必须提供一种机 制来检查数据库中的数据,看其是否满足语义 规定的条件。 这些加在数据库数据之上的语义约束条 件就是数据完整性约束条件。 DBMS检查数据是否满足完整性条件的机制 就称为完整性检查 2021/2/20 Information College. ChangJun
5 2021/2/20 Information College · ChangJun • 这些加在数据库数据之上的语义约束条 件就是数据完整性约束条件。 一、什么是数据完整性 • 数据库管理系统(DBMS)必须提供一种机 制来检查数据库中的数据,看其是否满足语义 规定的条件。 • DBMS检查数据是否满足完整性条件的机制 就称为完整性检查
、数据完整性的类型 1、实体完整性( Entity Integrity) 考虑向表中输入哪些值。要求每个实体都必 须拥有一个主键或其他的唯一标识列 2、参照(引用)完整性( Referential1 Integrity) 考虑表间的数据在插入和删除时,数据的 致性。要求建立在主键和外键基础上。 3、用户定义的完整性(User- defined Integrity)。 考虑限制向表中输入的值的范围 2021/2/20 Information College. ChangJun 6
6 2021/2/20 Information College · ChangJun 3、用户定义的完整性(User-defined Integrity)。 考虑限制向表中输入的值的范围。 二、数据完整性的类型 1、实体完整性(Entity Integrity) 考虑向表中输入哪些值。要求每个实体都必 须拥有一个主键或其他的唯一标识列。 2、参照(引用)完整性(Referential Integrity) 考虑表间的数据在插入和删除时,数据的一 致性。要求建立在主键和外键基础上
三、完整性的作用对象 完整性的作用对象可以是:列、元组和表 1.列级约束 对数据类型的约束:包括数据类型、长度、 精度等。 对数据格式的约束:如规定学号的前两位表 示学生的入学年份,第三位表示系的编号,第四 位表示专业编号,第五位代表班的编号等等 对取值范围或取值集合的约束:如学生的成 绩取值范围为0~100 对空值的约束:列是否允许为空。 2021/2/20 Information College. ChangJun
7 2021/2/20 Information College · ChangJun 三、完整性的作用对象 1.列级约束 对数据类型的约束:包括数据类型、长度、 精度等。 对数据格式的约束:如规定学号的前两位表 示学生的入学年份,第三位表示系的编号,第四 位表示专业编号,第五位代表班的编号等等。 对取值范围或取值集合的约束:如学生的成 绩取值范围为0~100。 对空值的约束:列是否允许为空。 完整性的作用对象可以是: 列、元组和表
三、完整性的作用对象 2.元组约束 元组的约束是元组中各个字段之间的联系 的约束,如:开始日期小于结束日期,职工的 最低工资不能低于规定的最低保障金等。 3.关系约束 关系约束是指若干元组之间、关系之间的 联系的约束。比如学号的取值不能重复也不能 取空值,学生选课表中的学号的取值受学生表 中的学号取值的约束等。 2021/2/20 Information College. ChangJun 8
8 2021/2/20 Information College · ChangJun 三、完整性的作用对象 3.关系约束 关系约束是指若干元组之间、关系之间的 联系的约束。比如学号的取值不能重复也不能 取空值,学生选课表中的学号的取值受学生表 中的学号取值的约束等 。 2.元组约束 元组的约束是元组中各个字段之间的联系 的约束,如:开始日期小于结束日期,职工的 最低工资不能低于规定的最低保障金等
四、实现完整性的措施 SQL Server提供了一些措施(方法、途 径)来帮助用户维护数据完整性,其中最主要 的是: 1、约束 2、规则 3、默认值 4、触发器 2021/2/20 Information College. ChangJun
9 2021/2/20 Information College · ChangJun 四、实现完整性的措施 SQL Server 提供了一些措施(方法、途 径)来帮助用户维护数据完整性,其中最主要 的是: 1、约束 2、规则 3、默认值 4、触发器
62使用约束措施 约束定义关于列中允许值的规则,是强制完 整性的标准机制。使用约束优先于使用触发器、 规则和默认值。 SQL Server2000支持五类约束: PRIMARY KEY(主键)约束 FOREIGN KEY(外键)约束 UNIQUE(惟一)约束 CHECK(核查)约束 NULLable约束 2021/2/20 Information College. ChangJun
10 2021/2/20 Information College · ChangJun 6.2 使用约束措施 ➢ PRIMARY KEY(主键)约束 ➢ FOREIGN KEY (外键)约束 ➢ UNIQUE(惟一)约束 ➢ CHECK(核查)约束 ➢ NULLable 约束 约束定义关于列中允许值的规则,是强制完 整性的标准机制。使用约束优先于使用触发器、 规则和默认值。 SQL Server 2000 支持五类约束: