数据库相关知识
来源:互联网 发布:免谷歌软件下载商店 编辑:程序博客网 时间:2024/05/18 23:28
可在写入数据表前,强制检验或转换数据。
触发器发生错误时,异动的结果会被撤销。
部份数据库管理系统可以针对数据定义语言(DDL)使用触发器,称为DDL触发器。
可依照特定的情况,替换异动的指令 (INSTEAD OF)。
SQL Server 包括三种常规类型的触发器:DML 触发器、DDL 触发器和登录触发器。
DML触发器
当数据库中表中的数据发生变化时,包括insert,update,delete任意操作,如果我们对该表写了对应的DML触发器,那么该触发器自动执行。DML触发器的主要作用在于强制执行业 务规则,以及扩展Sql Server约束,默认值等。因为我们知道约束只能约束同一个表中的数据,而触发器中则可以执行任意Sql命令。
DDL触发器
它是Sql Server2005新增的触发器,主要用于审核与规范对数据库中表,触发器,视图等结构上的操作。比如在修改表,修改列,新增表,新增列等。它在数据库结构发生变化时执行,我们主要用它来记录数据库的修改过程,以及限制程序员对数据库的修改,比如不允许删除某些指定表等。
登录触发器
登录触发器将为响应 LOGIN 事件而激发存储过程。与 SQL Server 实例建立用户会话时将引发此事件。登录触发器将在登录的身份验证阶段完成之后且用户会话实际建立之前激发。因此,来自触发器内部且通常将到达用户的所有消息(例如错误消息和来自 PRINT 语句的消息)会传送到 SQL Server 错误日志。如果身份验证失败,将不激发登录触发器。
注:约束,是指对你的表,或表中的列等等,进行某些条件的限制.重点是“限制”.
触发器,是指在你进行一些操作时,比如DELETE UPDATE等操作时,引起的一些另外的操作(是做了摸个动作之后,引起的反应).事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。事务通常由高级数据库操纵语言或编程语言(如SQL,C++或Java)书写的用户程序的执行所引起,并用形如begin transaction和end transaction语句(或函数调用)来界定。事务由事务开始(begin transaction)和事务结束(end transaction)之间执行的全体操作组成。
例如:在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序。
特性
事务是恢复和并发控制的基本单位。
事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。
原子性(atomicity):一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。
一致性(consistency):事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。
隔离性(isolation):一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。
持久性(durability):持久性也称永久性(permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。
事务类型:
(1)手动事务
手动事务允许显式处理若干过程,这些过程包括:开始事务、控制事务边界内的每个连接和资源登记、确定事务结果(提交或中止)以及结束事务。尽管此模型提供了对事务的标准控制,但它缺少一些内置于自动事务模型的简化操作。例如,在手动事务中数据存储区之间没有自动登记和协调。此外,与自动事务不同,手动事务中事务不在对象间流动。
如果选择手动控制分布式事务,则必须管理恢复、并发、安全性和完整性。也就是说,必须应用维护与事务处理关联的 ACID 属性所需的所有编程方法。
(2)自动事务
.NET 页、XML Web services方法或 .NET Framework 类一旦被标记为参与事务,它们将自动在事务范围内执行。您可以通过在页、XML Web services 方法或类中设置一个事务属性值来控制对象的事务行为。特性值反过来确定实例化对象的事务性行为。因此,根据声明特性值的不同,对象将自动参与现有事务或正在进行的事务,成为新事务的根或者根本不参与事务。声明事务属性的语法在 .NET Framework 类、.NET 页和 XML Web services 方法中稍有不同。
- IP数据库相关知识
- 数据库相关知识SQL
- 数据库相关知识整理
- 数据库相关知识
- 数据库相关知识
- 数据库的相关知识
- Oracle数据库相关知识
- 数据库索引相关知识
- 数据库相关知识:
- sqlite 数据库 相关知识
- 数据库锁相关知识
- 数据库相关知识
- 数据库相关知识整理
- 数据库相关知识
- SQLite数据库相关知识
- 数据库的相关知识
- 数据库原理相关知识
- 数据库原理相关知识
- sd/mmc驱动总线函数指针解析
- Ubuntu下Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
- 多维向量vector的初始化
- 计蒜客 数据结构 栈 模板倒水问题
- HDU 2853 Assignment 建图的巧妙性
- 数据库相关知识
- hdu 5831 (Rikka with Parenthesis II)
- 常用数据库validationQuery语句
- Quzrtz介绍
- 【Cocos2d-html5游戏引擎学习笔记(3)】渲染文字
- 树状数组 POJ 2352 HDU 1541 Stars
- 最长公共子序列问题
- 信号
- Python 垃圾回收机制