第12章 触发器

合集下载

精品课件-数字电子技术(第三版)(刘守义)-第12章

精品课件-数字电子技术(第三版)(刘守义)-第12章

第 12 章 硬件描述语言
在图12.3所示的二选一电路的构造体中, 用COMPONENT 语句指明了该电路中所使用的已生成的 模块(在这里是AND、 OR、 NOT门电路)供本构造体调用。 用PORT MAP()语句将生成模块的端口与所设计的各模块 (在这里为u1、 u2、 u3、 u4)的端口联系起来, 并定义 相应的信号, 以表示所设计的各模块的连接关系。
PORT (input: IN STD_LOGIC_VECTOR (3 DOWNTO 0); 端口说明, 定义输入和输出信号
第 12 章 硬件描述语言
sel: IN STD_LOGIC_VECTOR (1 DOWNTO 0); y: OUT STD_LOGIC);
END mux4;
ARCHITECTURE rtl OF mux4 IS 定义构造体rtl BEGIN
ENTITY mux IS GENERIC(m: TIME∶=1 ns) PORT(d0, d1, sel: IN BIT; Q: OUT BIT); END mux; ARCHITECTURE connect OF mux IS SIGNAL tmp: BIT BEGIN
cale:
第 12 章 硬件描述语言
2. 构造体主要用来描述实体的内部逻辑, 即描述一个实体 的功能。 构造体的一般说明格式为
ARCHITECTURE 构造体名 OF 实体名 IS
[定义说明]; BEGIN [语句部分]; END 构造体名; VHDL可用3种描述格式来完成构造体, 下面将分别介绍。
第 12 章 硬件描述语言
12.2.2 构造体的描述方式 1. 行为描述方式(Behavioral Descriptions 所谓行为描述, 是指描述该设计单元的功能, 即该硬

第十二章

第十二章

4
触发器简介
由于触发器在数据修改时自动触发, 由于触发器在数据修改时自动触发,因此触发器根据数据的修改操作可 分为INSERT UPDATE,DELETE三种触发器类型 INSERT触发器在向数 INSERT, 三种触发器类型. 分为INSERT,UPDATE,DELETE三种触发器类型.INSERT触发器在向数 据表中插入数据时触发;UPDATE触发器在表中数据被更新时被触发 触发器在表中数据被更新时被触发; 据表中插入数据时触发;UPDATE触发器在表中数据被更新时被触发; DELETE触发器会被数据表中的数据删除操作触发执行 触发器会被数据表中的数据删除操作触发执行. DELETE触发器会被数据表中的数据删除操作触发执行. 另外,触发器根据执行类型还可被分为AFTER触发器和INSTEAD OF触 另外,触发器根据执行类型还可被分为AFTER触发器和INSTEAD OF触 AFTER触发器和 发器: AFTER触发器只有在激活它的语句 INSERT,UPDATE, 触发器只有在激活它的语句( 发器: AFTER触发器只有在激活它的语句(INSERT,UPDATE,DELETE 操作)执行完后才被启用.例如, UPDATE语句中 只有在UPDATE 语句中, UPDATE语句 操作)执行完后才被启用.例如,在UPDATE语句中,只有在UPDATE语句 执行完之后,触发器才被激活执行.如果UPDATE语句失败, AFTER触发 UPDATE语句失败 执行完之后,触发器才被激活执行.如果UPDATE语句失败,则AFTER触发 器不会被激活.在同一个数据表中可以创建多个AFTER触发器. AFTER触发器 器不会被激活.在同一个数据表中可以创建多个AFTER触发器. INSTEAD OF触发器将在数据变动之前被触发,顾名思义,它将取代变 OF触发器将在数据变动之前被触发,顾名思义, 触发器将在数据变动之前被触发 动数据的操作(INSERT,UPDATE,DELETE操作).例如当对一个具有 操作). 动数据的操作(INSERT,UPDATE,DELETE操作).例如当对一个具有 DELETE类型触发器的数据表进行DELETE操作时 类型触发器的数据表进行DELETE操作时, INSTEAD OF DELETE类型触发器的数据表进行DELETE操作时,DELETE 将不会被执行,该触发器中的语句将取代DELETE操作而被执行( DELETE操作而被执行 将不会被执行,该触发器中的语句将取代DELETE操作而被执行(也许这个 触发器中的语句要做的操作却是对数据表中的数据进行INSERT).在同一 INSERT). 触发器中的语句要做的操作却是对数据表中的数据进行INSERT).在同一 个数据表中,每个INSERT,UPDATE或DELETE语句最多可以定义一个 个数据表中,每个INSERT,UPDATE或DELETE语句最多可以定义一个 INSERT OF触发器 触发器. INSTEAD OF触发器.

SQL Server从入门到精通(第3版)

SQL Server从入门到精通(第3版)

第17章数据库 的安全机制
第19章 C#+SQL Server实现企业人
事管理系统
第18章 Visual C+++SQL Server实 现酒店客房管理系

第20章 Java+SQL Server实现学生成
绩管理系统
作者介绍
明日科技(中国)有限公司为知名企业家温世仁先生创办的大型高科技企业。
精彩摘录
4
第4章创建与管 理数据库
5
第5章操作数据 表
第7章 SQL函数的 使用
第6章 SQL基础
第8章 SQL数据查 询基础
第9章 SQL数据 高级查询
第10章视图的 使用
1
第11章存储过 程
2
第12章触发器
3
第13章游标的 使用
4
第14章索引与 数据完整性
5
第15章 SQL中 的事务
第16章维护SQL Server数据库
读书笔记
确实是只适合学生看的书了。
我觉得这本书对于有点基础的或者没有接触过的人都友好,没接触过的可以学到ssms的界面操作,有点基础 的可以当做目录回顾一下内容但是想学得深就帮不了了。
目录分析
1
第1章数据库基 础
第2章 L
2
Server数据库
环境搭建
3 第3章 SQL
Server服务的 启动与注册
SQL Server从入门到精通 (第3版)
读书笔记模板
01 思维导图
03 读书笔记 05 作者介绍
目录
02 内容摘要 04 目录分析 06 精彩摘录
思维导图
本书关键字分析思维导图
实例
酒店客房

单稳态触发器

单稳态触发器
的波形信号输出。
2019年7月24日星期三
4
第 12 章 脉冲波形的产生和整形
构成电路:
其周期可以用下面公式计算
T 2.3RC
2019年7月24日星期三
5
第 12 章 脉冲波形的产生和整形
12.1.2 RC基本多谐振荡器
其振荡周期可以用下面公式计算
T 1.4RC
2019年7月24日星期三
6








74HC123功能表


输出
说明
RD
TR
TR
Q
Q
1
0

1

1

0
1
TR↑触发
TR
↓触发 ↑触发
RD
0
×
×
0
1
RD低电平置0
×
1
×
×
×
0
0
1
0
1
TR
为高电平,置0

TR
为低电平,置0

同样有输出脉冲宽度 tW 0.7RextCext
2019年7月24日星期三
14
第 12 章 脉冲波形的产生和整形
12.2.3 单稳态触发器的应用
1.脉冲定时
上图是单稳态触 发器的模块逻辑 表达。用较小的 宽度的脉冲去触 发,可以获得确 定宽度的脉冲输 出,实现定时控 制(如下图)。
2019年7月24日星期三
15
第 12 章 脉冲波形的产生和整形
2.脉冲延迟
某些电路中,要求输入信号出现后电路不立即工作, 而应延迟一段时间后再工作。将输入信号uI1加入第一 级单稳态电路,再级联一级单稳态就获得了延迟tw时 间的脉冲输出。

第12章 有限状态机设计-数字电路与逻辑设计-张俊涛-清华大学出版社

第12章 有限状态机设计-数字电路与逻辑设计-张俊涛-清华大学出版社

// 阻塞赋值
S2: ... ;
... : ... ;
default: ...;
endcase
《数字电路与逻辑设计》
// 第三个always,时序逻辑模块,描述输出
always @ (posedge clk or negedge rst_n) ... //初始化 case(current_state) S1: out1 <= ...; // 非阻塞逻辑 S2: out2 <=... ; default: ...; endcase
CLK 控制器时钟
AD转换控制器
时序过程 always
Current_state Next_state
组合过程 always(1) always(2)
LOCK 锁存过程 always
Q[7..0]
转换数据 输出
模拟量输入
ADC0809
A/D转换时钟 (640kHz)
clk
ALE START
OE ADDR
《数字电路与逻辑设计》
12.3 状态机设计示例 ADC0809是八路8位逐次渐近式A/D转换器,其
内部结构框图和工作时序如图9-21和9-22所示。
Vref(+)
Vref(-)
EOC
IN0~IN7
ADDC~A ALE
8路 模拟开关
地址锁存 与
译码
8位 逐次渐近型
A/D 转换器
三态 锁存 缓冲器
START CLK
// 同步时序逻辑过程,状态转换
always @(posedge clk or negedge rst_n) if (!rst_n) curr_state<=st0; else curr_state<=next_state; // 组合逻辑过程,确定次态 always @(curr_state,eoc) case (curr_state) st0: next_state=st1; st1: next_state=st2; st2: if (eoc) next_state=st3; else next_state=st2; st3: next_state=st4; st4: next_state=st0; default: next_state=st0; endcase

第12章电子电工技术

第12章电子电工技术

时,两个电压比较器的输出 uc1 =1 uc2 =0,输出 uo=1 (2)当 uI上升到 UREF2 uI UREF1 时, 两个电压
比较器的输出 uc1 =1 uc2 =1,输出状态保持不变。 (3)当 uI 上升到 uI UREF1 时,两个电压比较器的
输出 uc1 =0 uc2 =1,输出低电平 uo =0
U T

2 3
VCC
下限阈值电压:
U T
1 3 VCC
回差电压: UT = UT+ – UT–
若要求回差电压可调, 可在5脚接入电压 U CO ,只
uO UOH
回差 电压
UOL
O UT–
1 3
V
CC
UT+
uI
2 3
VCC
要改变外加电压 U CO 的值 就可以改变回差电压的大小。
应用举例:制成温度控制器
用热敏电阻或其他温度传感器制成电桥,把温度的
变化变成电压的变化,经放大后送入施密特触发器电路 的输入端。通过改变 U CO 的大小改变温度设置的上限和 回差。
3. 构成单稳态触发器
单稳态触发器的特点: (1)只有两种状态: 稳态和暂稳态; (2)外来触发(窄)脉冲使: 稳态暂稳态稳态; (3)暂稳态维持一端时间之后又自动返回到稳态; (4)暂稳态持续时间仅取决于电路参数, 与触发脉 冲无关。
1 3
V CC
时,C2
的输出
为0,使基本RS 触发器置1。
3 为输出端。最大输出电流达200mA,由此可直接 驱动继电器、发光二极管、扬声器、指示灯等。
4 为复位端。由此端加负电平可使555电路直接复 位,输出为低电平。
5 是电压控制端。在此端可外加一电压以改变比较 器的参考电压。不用时,经0.01F 的电容接“地”, 以防止干扰的引入。

第十二章 脉冲波形的产生与变换

第十二章 脉冲波形的产生与变换

第12章脉冲波形的产生与变换本章要求了解集成定时器的工作原理,了解用集成定时器组成的单稳态触发器和多谐振荡器的工作原理。

本章内容在数字电路或系统中,常常需要各种脉冲波形,例如时钟脉冲、控制过程的定时信号等。

这些脉冲波形的获取,通常采用两种方法:一种是利用脉冲信号产生器直接产生;另一种则是通过对已有信号进行变换,使之满足系统的要求。

本章以中规模集成电路555定时器为典型电路,主要讨论555定时器构成的施密特触发器、单稳态触发器、多谐振荡器以及555定时器的典型应用。

教学手段在课堂教学中,多采用黑板粉笔、电子教案和实物投影相结合的方式电子教案中包含讲课的梗概、要点、元器件结构、基本电路、电路的演变等等,具有系统性,可以成为学生课后复习的参考资料。

“粉笔+黑板”的传统方式具有其独特的灵活性。

教师在课堂上如果只是照本宣科,即使是非常好的教案也缺乏生气。

同一内容与不同授课对象交流,将会碰撞出不同的火花,这种即兴的东西往往使学生和老师均受益匪浅,而“粉笔+黑板”是最好的表述方式。

此外,还可以通过实物投影增强学生的感性知识。

这样,使得课堂教学生动。

本章学时4学时12.1555集成定时器本节学时1学时本节重点555集成定时器电路组成及基本功能教学内容555定时器是一种应用极为广泛的中规模集成电路。

该电路使用灵活、方便,只需外接少量的阻容元件就可以构成单稳、多谐和施密特触发器。

因而广泛用于信号的产生、变换、控制与检测。

目前生产的定时器有双极型和CMOS两种类型,其型号分别有NE555(或5G555)和C7555等多种。

它们的结构及工作原理基本相同。

通常,双极型定时器具有较大的驱动能力,而CMOS定时器具有低功耗、输入阻抗高等优点。

555定时器工作的电源电压很宽,并可承受较大的负载电流。

双极型定时器电源电压范围为5~16V,最大负载电流可达200mA;CMOS定时器电源电压范围为3~18V,最大负载电流在4mA以下。

电工与电子技术第十二章习题详解(陶桓齐)华中科技大学出版社

电工与电子技术第十二章习题详解(陶桓齐)华中科技大学出版社

第12章习题解答12-1 已知由与非门组成的基本RS触发器和输入端D R、D S的波形如题图12-1所示,试对应地画出Q 和Q的波形,并说明状态“不定”的含义。

题图12-1解:12.2 已知可控RS触发器CP、R和S的波形如题图12-2所示,试画出输出Q的波形。

设初始状态分别为0和1两种情况。

题图12-2解:12-3 在主从结构的JK触发器中,已知CP、J、K的波形如题图12-3所示,试画出Q端的波形。

设初始状态Q=0。

题图12-3解:12-4 维持阻塞型D触发器的输入D和时钟脉冲CP的波形如题图12-4所示,试画出Q端的波形。

设初始状态Q = 0。

题图12-4解:12-5 在T触发器中,已知T和CP的波形如题图12.5所示,试画出Q端的波形。

设初始状态Q= 0。

题图12-5解:12-6 写出题图12-6所示电路的逻辑关系式,说明其逻辑功能。

题图12-6解:逻辑关系为:Q D AQ BQ==+所以其功能为JK触发器。

12-7 如题图12-7所示的电路和波形,试画出D端和Q端的波形。

设初始状态Q= 0。

题图12-7解:12-8 将主从型JK触发器转换为T'触发器有几种方案?画出外部连线图。

解:12-9 电路如题图12-9所示。

画出Q0端和Q1端在六个时钟脉冲CP作用下的波形。

设初态Q1=Q0= 0。

题图12-9解:12-10 用题图12.10(a)所给器件构成电路,并在示波器上观察到如图12.10(b)所示波形。

试问电路是如何连接的?请画出逻辑电路图。

(a) (b)题图12-10解:12-11 已知如题图12.11(a)所示电路的各输入端信号如题图12-11(b)所示。

试画出触发器输出端Q0和Q1的波形。

设触发器的初态均为0。

(a) (b)题图12-11解:12-12 已知电路和时钟脉冲CP及输入端A的波形如题图12-12所示,试画出输出端Q、1Q的波形。

假定各触发器初态为1。

(a ) (b )题图12-12解:12-13 已知题图12-13(a )所示电路中输入A 及CP 的波形如题图12-13(b )所示。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

6.
方法:
企业管理器 T-SQL语句
一、使用T-SQL语句创建触发器
其语法形式如下:
CREATE TRIGGER trigger_name ON {table|view} [WITH ENCRYPTION] FOR {[DELETE][,][INSERT][,][ UPDATE ]} AS sql_statement

分析执行过程
2.创建删除触发器

例12-2:为student 表建立delete 触发器以自动更新class表的学生人数。 use jwgl Go /*如果存在同名的触发器,则删除之 */ If exists(select name from sysobjects Where type=‘TR’ AND name=‘student_delete’) Drop TRIGGER student_delete Go /*建立删除触发器*/ Create TRIGGER student_delete on student For delete As
1.创建insert触发器

例12-1:为student 表建立insert 触发器以自动更新class表的 学生人数。
use jwgl Go /*如果存在同名的触发器,则删除之 */ If exists(select name from sysobjects Where type=‘TR’ AND name=‘student_insert’) Drop TRIGGER student_insert Go /*建立插入触发器*/ Create TRIGGER student_insert on student For insert As
12.1
12.1 概述

触发器(Trigger)是一种实施复杂数据完整性的特殊存储过程, 在对表或视图执行UPDATE、INSERT或DELETE语句时自 动触发执行,以防止对数据进行不正确、未授权或不一致的 修改。 触发器是一种特殊类型的存储过程,它不同于前面介绍过的 存储过程。触发器主要是通过事件进行触发而被执行的,而 存储过程可以通过存储过程名称而被直接调用。 触发器是一个功能强大的工具,它使每个站点可以在有数据 修改时自动强制执行其业务规则。触发器可以用于 SQL Server 约束、默认值和规则的完整性检查。
运行 Select *from class where class_id=‘g99403’ Exec spAddStudent ‘g9940306’,’程涛’,‘男’,‘1981-922’,‘g99403’,’1999-9-1’,’南京市御道街2号’ Select *from class where class_id=‘g99403’

12.3触发器实施数据完整性实例
1.
实现参照完整性
[例12-5] 向teacher_course_class 表中添加一行数据,检查所插入数据 的有效性。确保教师(teacher_id)存在teacher表中,课程 (course_id)存在于course表中,班级(class_id)存在于 class表中。 Create trigger tcc_insert on teacher_course_class For insert As If( (not exists(select teacher_id from teacher where teacher_id in (select teacher_id from inserted )) ) or
use jwgl
Go /*如果存在同名的触发器,则删除之 */ If exits(select name from sysobjects Where type=‘TR’ AND name=‘student_update’) Drop TRIGGER student_update Go /*建立更新触发器*/ Create TRIGGER student_update on student For update As

只要对表中的数据进行更新,这种更新无论是对表中的一行或多行, 还是一列或多列,都将执行触发器。 实际应用中,可能只关心特定的列是否被更新。若特定的列被更新, 则执行触发器,否则不执行触发器:If update <列名>

例12-4:根据例12-3,使用if update 优化,只对特定的列更新执行触发 器操作。


分类:
INSERT触发器 UPDATE触发器 DELETE触发器
触发器的优点

触发器是自动的:当对表中的数据作了任何修改(比如手工 输入或者应用程序采取的操作)之后立即被激活。 触发器可以通过数据库中的相关表进行层叠更改。 触发器可以强制限制,这些限制比用 CHECK 约束所定义的 更复杂。
Declare @NumOfStuent Tinyint Select @NumOfStuent=c.student_num from class c,inserted I where c.class_id=I.class_id If (@NumOfStuent>0) begin update class set student_num=student_num+1 from class c, inserted I where c.class_id=I.class_id end Else begin update class set student_num=( select count(s.student_id) from student s,inserted I where s.class_id=I.class_id) from class c,inserted I where c.class_id=I.class_id end go
第12章 触发器
计算机系 软件教研室
第12章 触发器
目标:
触发器的基本概念及工作原理 如何创建触发器
触发器如何实现数据完整性
如何查看、修改、删除触发器
第12章 触发器
概述 12.2 触发器的创建 12.3 触发器实施数据完整性实例 12.4 查看修改和删除触发器 12.5 注意事项 练习
update department set teacher_num=( select count(t.teacher_id) from teacher t,inserted I where t.department_id=I.department_id) From department d,inserted I where d.department_id=i. department_id update department set teacher_num=( select count(t.teacher_id) from teacher t,deleted e where t.department_id=e.department_id) From department d, deleted e where d.department_id=e.department_id go
3.
4.
触发器为数据库对象,其名称必须遵循标识符的命名规则。
虽然触发器可以引用当前数据库以外的对象,但只能在当前数据库 中创建触发器。
5.
虽然不能在临时表或系统表上创建触发器,但是触发器可以引用临 时表。
当创建一个触发器时必须指定: ⑴名称;⑵在其上定义触发器的 表;⑶触发器将何时激发;⑷激活触发器的数据修改语句。
end go
二、使用企业管理器创建触发器

在企业管理器中,展开指定的服务器和数据库项,然后 展开要在其上创建触发器的表所在的数据库,用右键单击该 表,从弹出的快捷菜单中选择所有任务子菜单下的管理触发 器选项,则会出现触发器属性对话框。在该对话框中,在名 称文本框中选择新建,然后在文本框中输入触发器文本。单 击“检查语法”按钮,则可以检查语法是否正确。单击“应 用”按钮,则在名称下拉列表中会有新创建的触发器名称。 最后,单击“确定”按钮,即可关闭该对话框,成功创建触 发器。 举例
/* 如果更新teacher表中的department_id 列,则执行对department表的 teacher_num列的更新*/ if update (department) begin
update department set teacher_num=( select count(t.teacher_id) from teacher t,inserted I where t.department_id=I.department_id) From department d,inserted I where d.department_id=i. department_id update department set teacher_num=( select count(t.teacher_id) from teacher t,deleted e where t.department_id=e.department_id) From department d, deleted e where d.department_id=e.department_id

运行
Select * from department Update teacher set department_id=‘dep_01’ where teacher_name=‘潘惠’ Select * from department

分析执行过程

Deleted 表和inserted 表 问题:

触发器的工作原理
相关概念
触发器表 Insert 表和delete 表:临时表,结构,内存

分类及工作原理:
Insert触发器的工作原理 delete触发器的工作原理
相关文档
最新文档