基于SQLServer触发器的数据完整性应用.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第 25 卷第 2 期2009 第 25 卷第 2 期 2009 年 4 月 山西大同大学学报(自然科学版) Journal of Shanxi Datong University(Natural Science) Vol.25.No.2 Apr.2009 基于 S QL S e rve r 触发器的数据完整性应用 邓景顺, 吕秉东 (山西大同大学数学与计算机科学学院, 山西大同 037009) 摘 要:探讨了 SQL Server 数据库中数据完整性概念及实现方法, 重点给出用 SQL Server 触发器实现复杂参照 完整性的应用. 关键词:SQL Server 数据完整性 触发器 中图分类号: TP392 文献标识码: A 文章编号:1674-0874(2009)02-0008-03 数据完整性(Data Integrity) 是指数据库中的数 据在逻辑上的一致性和正确性. 数据完整性分为 4 类: 实体完整性 (Entity Integrity)、域完整性(Domain Integrity)、参照完整性(Referential Integrity)、用户定 义 的 完 整 性 (User -defined Integrity) [1].SQL Server 2000 提供了两种主要机制来强制业务规则和数据 完整性: 约束和触发器. 有主键(PRIMARY KEY) 约 束、外键(FOREIGN KEY)约束、惟一性(UNIQUE)约 束、检查(CHECK )约束、规则(RULE)、缺省值(DE- FAULT)、触发器(TRIGGER)等[2], 本文将重点阐述用 触发器实现数据完整性. 1 实现数据完整性方法 1.1 使用主键约束 1.3 使用检查约束 检查约束用于检查一个列或整个表的输入值 是否满足指定的检查条件, 在表中添加或修改记录 时, 如果不满足这个检查条件, 则这条记录将被系 统拒绝. 使用检查约束可以实现域完整性. 1.4 使用触发器 前几种方法属于被动的约束机制, 这些方法在 检查出某些操作违反约束时, 只能执行一些简单的 操作, 而触发器则可以完成比较复杂的完整性操作, 在约束所支持的功能无法满足应用的功能要求时, 用户可以使用触发器来强制参照完整性, 或者保持 同表中相关联的数据逻辑一致性, 强制复杂的业务 规则, 从而确保数据完整性. 同时用户在使用数据 库时, 可以不必关心各种数据间的复杂关系和运算, 可降低使用成本及系统维护成本. 触发器是一种特殊的存储过程, 它在指定的表 中的数据发生变化时自动生效, 当用户对数据表进 行插入、修改、删除时, 触发器就会自动执行. 因此 根据触发方式来分, 触发器也分为三类: INSERT 触 发器、UPDATE 触发器、DELETE 触发器. 根据触 发时机来分, 触发器又可分为: AFTER 触发器和 INSTEAD OF 触发器, 本文后面提到的都指 AFTER 触发器. 执行触发器时, 系统创建了两个特殊的逻辑表: inserted 表和 deleted 表, 下面分别介绍: inserted 表: 当向表中插入数据时, INSERT 触 发器触发执行, 新的记录插入到触发器表和 insert- ed 表中. 数据表中应有一个列或多个列的组合, 其值能 唯一地标识表中的每一行, 选择这样的一列或多列 作为主键 可保证表中 数 据 的 惟 一 性 , 通 过 定 义 PRIMARY KEY 约束来创建主键, 一个表只能有一 个 PRIMARY KEY 约束, 而且 PRIMARY KEY 约束 中的列不能取空值. SQL Server 2000 为主键创建唯 一索引, 实现实体完整性. 1.2 使用外键约束 外键约束主要用来维护两个表之间的一致性 关系. 外键的建立主要是通过将一个表中的某些列 包含到另一个表中的主键所在列, 这些列就是另一 个表的外键, 定义为外键的列要参照另一个表中定 义为主键的列, 它确保了两个表中都存在相应的数 据.通过外键约束可以实现参照完整性. deleted 表: 用于保存已从表中删除的记录, 当 deleted 表: 用于保存已从表中删除的记录, 当 触发一个 DELETE 触发器时, 被删除的记录存放到 deleted 表中. 修改一条记录等于插入一条新记录, 同时删除 旧记录. 当对定义了 UPDATE 触发器的表记录修改 时, 表中原记录移到 deleted 表, 修改过的记录插入 到 inserted 表及被修改的表中[3]. 这两个表总是与被触发的表有相同的结构, 存 储在系统内存中, 不允许用户对其修改, 但用户可 以引用表中数据, 当触发器完成工作时, 二表也被 系统删除.

文档评论(0)

小教资源库 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档