8库完堅性的整性控制 8,1完整性约束条件及完整性控制 8.2 SQL Server的数据完整性及其实现 8.3案例6:活期储蓄管理系统 数裾库的完整性控制 2021/1/21
第8章 数据库完整性及SQL Server的完整性控制 2021/1/21 8.1 完整性约束条件及完整性控制 8.2 SQL Server的数据完整性及其实现 8.3 案例6:活期储蓄管理系统 数据库的完整性控制
8库完堅性的整性控制 数据库的完整性是指数据的正确性、有效性和相容性, 防止错误数据进入数据库,保证数据库中数据的质量。正 确性是指数据的合法性;有效性是指数据是否属于所定乂 的有效范围;相容性是指描述同一现实的数据应该相同 数据库是否具备完整性涉及到数据库系统中的数据是否正 确、可信和一致,保持数据库的完整性是非常重要的 2021/1/21
第8章 数据库完整性及SQL Server的完整性控制 2021/1/21 数据库的完整性是指数据的正确性、有效性和相容性, 防止错误数据进入数据库,保证数据库中数据的质量。正 确性是指数据的合法性;有效性是指数据是否属于所定义 的有效范围;相容性是指描述同一现实的数据应该相同。 数据库是否具备完整性涉及到数据库系统中的数据是否正 确、可信和一致,保持数据库的完整性是非常重要的
8库完堅性的整性控制 8.1完整性约束条件及完整性控制 为了保证数据库的完整性,DBMS必须提供一种功能来保证 数据库中的数据是正确的,避免由于不符合语义的错误数据的 谕入和输出。检査数据库中数据是否满足规定的条件称为“完 整性检査”。数据库中数据应满足的条件称为“完整性约束条 件”,有时也称为完整性规则。 令完整性控制 DBNS中执行完整性检査的子系统称为“完整性子系统”。它的 主要功能有 定义完整性功能,即提供定义完整性约束条件的机制。 ■检査完整性功能,即检査用户发岀的操作请求,看其是否违 背了完整性约束条件 ■控制完整性功能,即监视数据操作的整个过程,如果发现有 违背了完整性约束条件的情况,则采取一定的动作来保证数 据的完整性。 2021/1/21
第8章 数据库完整性及SQL Server的完整性控制 2021/1/21 8.1 完整性约束条件及完整性控制 为了保证数据库的完整性,DBMS必须提供一种功能来保证 数据库中的数据是正确的,避免由于不符合语义的错误数据的 输入和输出。检查数据库中数据是否满足规定的条件称为“完 整性检查”。数据库中数据应满足的条件称为“完整性约束条 件” ,有时也称为完整性规则。 ❖ 完整性控制 DBMS中执行完整性检查的子系统称为“完整性子系统”。它的 主要功能有: ▪ 定义完整性功能,即提供定义完整性约束条件的机制。 ▪ 检查完整性功能,即检查用户发出的操作请求,看其是否违 背了完整性约束条件。 ▪ 控制完整性功能,即监视数据操作的整个过程,如果发现有 违背了完整性约束条件的情况,则采取一定的动作来保证数 据的完整性
8库完堅性的整性控制 令完整性规则 完整性子系统是根据“完整性规则集”工作的。完整性规则集 是由DBA或应用程序员事先向完整性子系统提出的有关数据约束的 一组规则。 每个完整性规则有三个部分组成 什么时候使用规则进行检查(称为规则的“触发条件”) (2)要检査什么样的错误(称为“约束条件”); (3)若检查出错误,应该怎样处理(称为“ELSE’子句)。 2021/1/21
第8章 数据库完整性及SQL Server的完整性控制 2021/1/21 ❖ 完整性规则 完整性子系统是根据“完整性规则集”工作的。完整性规则集 是由DBA或应用程序员事先向完整性子系统提出的有关数据约束的 一组规则。 每个完整性规则有三个部分组成: (1) 什么时候使用规则进行检查(称为规则的“触发条件”); (2) 要检查什么样的错误(称为“约束条件”); (3) 若检查出错误,应该怎样处理(称为“ELSE”子句)
8库完堅性的整性控制 RDBMS中的完整性规则 在 RDBMS中,完整性规则分为三类 ■域完整性规则 域完整性规则是使基本表的列输入有效。域完整性主要由 用户定义的完整性组成。 控制域完整性有效的方法有:限制数据类型、格式、可能 的取值范围、修改列值时必须满足的条件等。 ■实体完整性规则 实体完整性规则用来约束现实世界中的实体是可区分的, 即它们具有惟一性标识。这一规则在关系模型中的体现是基 本表所有主属性都不能取空值(NULL) 参照完整性规则 参照完整性规则用来约束具有参照关系的两个表中,主码 和外码的数据要保持一致。 2021/1/21
第8章 数据库完整性及SQL Server的完整性控制 2021/1/21 ❖ RDBMS中的完整性规则 在RDBMS中,完整性规则分为三类: ▪ 域完整性规则 域完整性规则是使基本表的列输入有效。域完整性主要由 用户定义的完整性组成。 控制域完整性有效的方法有:限制数据类型、格式、可能 的取值范围、修改列值时必须满足的条件等。 ▪ 实体完整性规则 实体完整性规则用来约束现实世界中的实体是可区分的, 即它们具有惟一性标识。这一规则在关系模型中的体现是基 本表所有主属性都不能取空值(NULL)。 ▪ 参照完整性规则 参照完整性规则用来约束具有参照关系的两个表中,主码 和外码的数据要保持一致
8库完堅性的整性控制 8.2 SQL Server的数据完整性及其实现 SQL Server具有较健全的数据完整性控制机制,它使用约束、 默认、规则和触发器4种方法定义和实施数据库完整性功能。 821 SQL Server中的几种约束 今 SQL Server的数据完整性种类 SQL Server2000中的数据完整性包括域完整性、实体完整性 和参照完整性3种。 ■域完整性 域完整性为列级和元组级完整性。它为列或列组指定一个 有效的数据集,并确定该列是否允许为空值(NUL) ■实体完整性 实体完整性为表级完整性,它要求表中所有的元组都应该 有一个惟一标识,即主关键字 ■参照完整性 参照完整性是表级完整性,它维护从表中的外码与主表中 主码的相容关系 2021/1/21
第8章 数据库完整性及SQL Server的完整性控制 2021/1/21 8.2 SQL Server的数据完整性及其实现 SQL Server具有较健全的数据完整性控制机制,它使用约束、 默认、规则和触发器4种方法定义和实施数据库完整性功能。 8.2.1 SQL Server中的几种约束 ❖ SQL Server的数据完整性种类 SQL Server 2000中的数据完整性包括域完整性、实体完整性 和参照完整性3种。 ▪ 域完整性 域完整性为列级和元组级完整性。它为列或列组指定一个 有效的数据集,并确定该列是否允许为空值(NULL)。 ▪ 实体完整性 实体完整性为表级完整性,它要求表中所有的元组都应该 有一个惟一标识,即主关键字。 ▪ 参照完整性 参照完整性是表级完整性,它维护从表中的外码与主表中 主码的相容关系
8库完堅性的整性控制 ☆ SQL Server数据完整性方式 SQL Server使用声明数据完整性和过程数据完整性两种方式 实现数据完整性 ■声明数据完整性 声明数据完整性通过在对象定义中定义、系统本身自动强 制来实现。声明数据完整性包括各种约束、默认和规则。 ■过程数据完整性 过程数据完整性通过使用脚本语言( Transact-SQL)定义 系统在执行这些语言时强制实现数据完整性。过程数据完整 性包括触发器和存储过程等。 SQL Server实现数据完整性的具体方法 SQL Server实现数据完整性的主要方法有4种:约束、默认 规则和触发器。 ■约束 约束通过限制列中的数据、行中的数据和表之间数据来保 证数据完整性 2021/1/21
第8章 数据库完整性及SQL Server的完整性控制 2021/1/21 ❖ SQL Server数据完整性方式 SQL Server使用声明数据完整性和过程数据完整性两种方式 实现数据完整性。 ▪ 声明数据完整性 声明数据完整性通过在对象定义中定义、系统本身自动强 制来实现。声明数据完整性包括各种约束、默认和规则。 ▪ 过程数据完整性 过程数据完整性通过使用脚本语言(Transact-SQL)定义, 系统在执行这些语言时强制实现数据完整性。过程数据完整 性包括触发器和存储过程等。 ❖ SQL Server实现数据完整性的具体方法 SQL Server实现数据完整性的主要方法有4种:约束、默认、 规则和触发器。 ▪ 约束 约束通过限制列中的数据、行中的数据和表之间数据来保 证数据完整性
8库完堅性的整性控制 表8-1 SQL Server2000约束的5种类型和其完整性功能 完整性类型约束类型 完整性功能描述 DEFAULT(默认) 插入数据时,如果没有明确提供列 值,则用默认值作为该列的值 域完整性 CHECK(检查) 指定某个列或列组可以接受值的范 ,或指定数据应满足的条件 PRIMARY KEY((主码)指定主码,确保主码不重复,不允 许主码为空值 实体完整性 UNIQUE(惟一值)冗余 指出数据应具有惟一值,防止出现 参照完整性| FOREIGN KEY(外码)定义外码、被参照表和其主码 2021/1/21
第8章 数据库完整性及SQL Server的完整性控制 2021/1/21 表8-1 SQL Server 2000约束的5种类型和其完整性功能 完整性类型 约束类型 完整性功能描述 域完整性 DEFAULT(默认) 插入数据时,如果没有明确提供列 值,则用默认值作为该列的值 CHECK(检查) 指定某个列或列组可以接受值的范 围,或指定数据应满足的条件 实体完整性 PRIMARY KEY(主码) 指定主码,确保主码不重复,不允 许主码为空值 UNIQUE(惟一值) 指出数据应具有惟一值,防止出现 冗余 参照完整性 FOREIGN KEY(外码) 定义外码、被参照表和其主码
8库完堅性的整性控制 使用 CREATE语句创建约束的语法形式如下 CREATE TABLE〈表名>(,[[,n]]) 其中,的格式和内容为: [ CONSTRAINT] (PRIMARY KEY [CLUSTERED NONCLUSTERED UNIQUE [CLUSTERED NONCLUSTERED [ FOREIGN KEY] REFERENCES CHECK<逻辑表达式 2021/1/21
第8章 数据库完整性及SQL Server的完整性控制 2021/1/21 使用CREATE语句创建约束的语法形式如下: CREATE TABLE (,[][,…n] [,[,…n]] ) 其中,的格式和内容为: [CONSTRAINT] {PRIMARY KEY[CLUSTERED | NONCLUSTERED] | UNIQUE[CLUSTERED|NONCLUSTERED] | [FOREIGN KEY]REFERENCES[()] | DEFAULT | CHECK
8库完堅性的整性控制 的格式和内容为 CONSTRAINT) FOREIGN KEY() REFERENCES(被参照表)()} 2021/1/21
第8章 数据库完整性及SQL Server的完整性控制 2021/1/21 的格式和内容为: CONSTRAINT {{PRIMARY KEY[CLUSTERED|NONCLUSTERED]() |UNIQUE[CLUSTERED|NONCLUSTERED]() |FOREIGN KEY()REFERENCES(被参照表)() |CHECK()}