`
lcy0202
  • 浏览: 176489 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

数据库的约束和触发器的区别

阅读更多

 约束和触发器在特殊情况下各有优势。触发器的主要好处在于 可以进行比约束更加复杂的检查和操作。因此,触发器可以支持约束的所有功能;但它在所给出的功能上并不总是最好的方法,并不是效率最高的。


实体完整性总应在最低级别上通过索引进行强制,这些索引或是 PRIMARY KEY 和 UNIQUE 约束的一部分,或是在约束之外独立创建的。假设功能可以满足应用程序的功能需求,域完整性应通过 CHECK 约束进行强制,而引用完整性 (RI) 则应通过 FOREIGN KEY 约束进行强制,所以此时一般是用约束进行完整性和一致性进行维护。


如果约束所支持的功能无法满足应用程序的功能要求时(尤其是一些复杂的操作时),触发器就极为有用。


 约束只能通过标准的系统错误信息传递错误信息。如果应用程序要求使用(或能从中获益)自定义信息和较为复杂的错误处理,则必须使用触发器。


总的来说,触发器比约束更加灵活,适合更复杂的操作,而约束则对于普通的操作而言是效率最高的;对于维护数据库的完整性、一致性,首选是约束(也就是外键、主键等)来进行操作,因为效率最高,其次是触发器,因为对于所有业务对数据库的操作都能维护数据库的完整性和一致性。

分享到:
评论

相关推荐

    Oraclet中的触发器

    行触发器和语句触发器的区别表现在:行触发器要求当一个DML语句操走影响数据库中的多行数据时,对于其中的每个数据行,只要它们符合触发约束条件,均激活一次触发器;而语句触发器将整个语句操作作为触发事件,当它...

    数据库和ado知识

    筛选(Having的使用),它和where的区别 类型转换(CAST,CONVERT) union,union all的使用 一次插入多条数据 字符串函数 ADO.NET主要类 数据库连接字符串 SqlConnection类的State属性 SqlCommand类的方法: ...

    函数、主外键、约束、触发器、存储过程及SQL命令大全

    datepart与datename的区别、Java中调用SQL+Server存储过程示例、JSP来操作SQL+SERVER中存储过程、SQL SERVER 2005登录验证设置SQL_Server触发器创建、删除、修改、查看示例、SQL_Server基本函数、经典SQL语句大全_主...

    教室管理系统数据库系统设计

    安全性先通过视图机制,不同的用户只能访问系统授权的视图,这样可提供系统数据一定程度上的安全性,再通过分配权限、设置权限级别来区别对待不同操作者对数据库的操作来提高数据库的安全性;系统平台的安全性体现在...

    数据库+研究生复试+求职+面试题

    8. 基本表和视图的区别和联系 9. 为什么索引底层用B+树而不用B树、红黑树、hash 10. B+树的优势 11. 索引的优点和缺点 2. 解释1到4范式和BC范式? 3. 如何判断复杂关系模式中的候选码 4. 什么是数据库设计? ... ..

    数据库设计模板.docx

    4 逻辑设计 3 5 物理设计 4 5.1 表汇总 4 5.2 表[X]:[XXX表] 4 5.3 视图的设计 6 5.4 存储过程、函数及触发器的设计 6 6 安全性设计 6 6.1 防止用户直接操作数据库的方法 6 6.2 用户帐号密码的加密方法 7 6.3 角色...

    数据库概念的复习总结

    31、触发器的作用:(1) 触发器可以查询其它表,而且可以包含复杂的 SQL 语句。它们主要用于强制复杂的业务规则或要求;(2) 触发器还有助于强制引用完整性,以便在添加、更新或删除表中的行时保留表之间已定义的...

    数据库实验五.docx

    课内任务: 1. 在person表上创建一个触发器,当修改表person中的员工工号时,级联修改表pay中该员工的工号信息。 ...因此,INSTEAD OF 触发器的动作要早于表的约束处理。 for触发器只能是在执行

    数据库设计思想.docx

    *用户定义完整性:它是一些业务规则,用存储过程和触发器来实现。 =================================================================================== 防止数据库设计打补丁的方法是"三少原则" (1) 一个数据库...

    oracle数据库经典题目

    12.根据约束的作用域,约束可以分为表级约束和列级约束两种。列级约束是字段定义的一部分,只能够应用在一个列上;而表级约束的定义独立于列的定义,它可以应用于一个表中的多个列。 13.填写下面的语句,使其可以为...

    数据库参考教程-数据库设计规范4net.xlsx

    ,架构设计和详细设计脱节,S026,,,,, D011,数据字段的约束,例如默认值、计算字段的公式、是否允许空值,,,,,,, ,,,,,,,,, ,,,,,,,,, ,,,,,,,,, ,,,,,,,,, ,,,,,,,,, ,,,,,,,,, ,,,,,,,,, ,,,,,,,,, ,,,,,,,,, ,,,,,,,,...

    [数据库设计]超市管理系统设计

    同过SQL语言,对数据库的查询、插入、修改、删除等操作。 3.3 性能需求 3.3.1静态数值需求  a. 支持的终端数为4台;  b. 处理并发的40个链接; 3.3.2 精度需求  在精度需求上,根据使用需要,在各项数据的...

    数据库 面试题 实战解答

    9、 where和Having区别:10、on和in的区别:11、union和union ALL 的区别:12、数据库的备份类型:13、数据库运行于哪种状态下可以防止数据的丢失?14、SQL 约束有哪几种?15、数据库的乐观锁和悲观锁是什么?16、事务...

    Oracle11g从入门到精通

     Oracle数据库系统是数据库领域最优秀的数据库之一,《Oracle11g从入门到精通》以Oracle最新版本Oracle 11g为蓝本,系统地讲述了Oracle数据库的概念、管理和应用开发等内容。  全书结构合理、内容翔实、示例丰富...

    数据库-教材订购系统.doc

    3 安全性和完整性要求 1) 安全性要求 安全性可先通过视图机制,不同的用户只能访问系统授权的视图,这样可提供系统数 据一定程度上的安全性,再通过分配权限、设置权限级别来区别对待不同操作者对数据 库的操作来...

    Oracle11g从入门到精通2

     Oracle数据库系统是数据库领域最优秀的数据库之一,《Oracle11g从入门到精通》以Oracle最新版本Oracle 11g为蓝本,系统地讲述了Oracle数据库的概念、管理和应用开发等内容。  全书结构合理、内容翔实、示例丰富...

    Oracle.11g.从入门到精通 (1/2)

    4.6.1 触发器的基本原理 4.6.2 创建触发器 4.6.3 执行触发器 4.6.4 删除触发器 第5章 熟悉SQL*Plus-Oracle数据库环境 5.1 进入和退出SQL*Plus环境 5.1.1 启动SQL*Plus 5.1.2 创建SQL*Plus快捷方式 5.1.3 退出SQL*...

Global site tag (gtag.js) - Google Analytics