- 1、本文档共36页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c数据库完整性及sqlserve的完整性控制.ppt
8.1 完整性约束条件及完整性控制 8.2 SQL Server的数据完整性及其实现 8.3 案例6:活期储蓄管理系统 数据库的完整性控制 8.1 完整性约束条件及完整性控制 为了保证数据库的完整性,DBMS必须提供一种功能来保证数据库中的数据是正确的,避免由于不符合语义的错误数据的输入和输出。检查数据库中数据是否满足规定的条件称为“完整性检查”。数据库中数据应满足的条件称为“完整性约束条件”,有时也称为完整性规则。 完整性控制 DBMS中执行完整性检查的子系统称为“完整性子系统”。它的主要功能有: 定义完整性功能,即提供定义完整性约束条件的机制。 检查完整性功能,即检查用户发出的操作请求,看其是否违背了完整性约束条件。 控制完整性功能,即监视数据操作的整个过程,如果发现有违背了完整性约束条件的情况,则采取一定的动作来保证数据的完整性。 完整性规则 完整性子系统是根据“完整性规则集”工作的。完整性规则集是由DBA或应用程序员事先向完整性子系统提出的有关数据约束的一组规则。 每个完整性规则有三个部分组成: (1)??什么时候使用规则进行检查(称为规则的“触发条件”); (2)??要检查什么样的错误(称为“约束条件”); (3)??若检查出错误,应该怎样处理(称为“ELSE”子句)。 RDBMS中的完整性规则 在RDBMS中,完整性规则分为三类: 域完整性规则 域完整性规则是使基本表的列输入有效。域完整性主要由用户定义的完整性组成。 控制域完整性有效的方法有:限制数据类型、格式、可能的取值范围、修改列值时必须满足的条件等。 实体完整性规则 实体完整性规则用来约束现实世界中的实体是可区分的,即它们具有惟一性标识。这一规则在关系模型中的体现是基本表所有主属性都不能取空值(NULL)。 参照完整性规则 参照完整性规则用来约束具有参照关系的两个表中,主码和外码的数据要保持一致。 8.2 SQL Server的数据完整性及其实现 SQL Server具有较健全的数据完整性控制机制,它使用约束、默认、规则和触发器4种方法定义和实施数据库完整性功能。 8.2.1 SQL Server中的几种约束 SQL Server的数据完整性种类 SQL Server 2000中的数据完整性包括域完整性、实体完整性和参照完整性3种。 域完整性 域完整性为列级和元组级完整性。它为列或列组指定一个有效的数据集,并确定该列是否允许为空值(NULL)。 实体完整性 实体完整性为表级完整性,它要求表中所有的元组都应该有一个惟一标识,即主关键字。 参照完整性 参照完整性是表级完整性,它维护从表中的外码与主表中主码的相容关系。 SQL Server数据完整性方式 SQL Server使用声明数据完整性和过程数据完整性两种方式实现数据完整性。 声明数据完整性 声明数据完整性通过在对象定义中定义、系统本身自动强制来实现。声明数据完整性包括各种约束、默认和规则。 过程数据完整性 过程数据完整性通过使用脚本语言(Transact-SQL)定义,系统在执行这些语言时强制实现数据完整性。过程数据完整性包括触发器和存储过程等。 SQL Server实现数据完整性的具体方法 SQL Server实现数据完整性的主要方法有4种:约束、默认、规则和触发器。 约束 约束通过限制列中的数据、行中的数据和表之间数据来保证数据完整性。 触发器 触发器是一种功能强、开销高的数据完整性方法。触发器具有INSERT、UPDATE和DELETE三种类型。一个表可以具有多个触发器。 触发器的用途是维护行级数据的完整性。与CHECK约束相比,触发器能强制实现更加复杂的数据完整性,能执行操作或级联操作,能实现多行数据间的完整性约束,能按定义动态的、实时的维护相关的数据。 默认和规则 默认(DEFAULT)和规则(RULE)都是数据库对象。当它们被创建后,可以绑定到一列或几列上,并可以反复使用。当使用INSERT语句向表中插人数据时,如果有绑定DEFAULT的列,系统就会将DEFAUTLT指定的数据插入;如果有绑定RULE的列,则所插入的数据必须符合RULE的要求。 8.2.2 默认 默认是一种数据库对象,可以绑定到一列或多列上,也可以绑定到用户自定义的数据类型上,其作用类似于DEFAULT约束,能为INSERT语句中没有指定数据的列提供事先定义的默认值。默认值可以是常量
文档评论(0)