文档库 最新最全的文档下载
当前位置:文档库 › 7实验七 触发器.

7实验七 触发器.

7实验七  触发器.
7实验七  触发器.

实验七触发器

一、实验目的

(1)理解触发器的用途、类型和工作原理

(2)掌握利用T-SQL语句创建和维护触发器的方法

(3)掌握利用企业管理器创建、维护触发器的方法

二、实验内容

1.创建after触发器

(1)创建一个在插入时触发的触发器sc_insert,当向sc表插入数据时,须确保插入的学号已在Student表中存在,并且还须确保插入的课程号在Course表中存在;若不存在,则给出相应的提示信息,并取消插入操作,提示信息要求指明插入信息是学号不满足条件还是课程号不满足条件(注:Student表与sc表的外键约束要先取消)。

create trigger sc_insert

on sc

after insert

as

if not exists(select*from student,inserted

where student.sno=inserted.sno)

begin

print'插入信息的学号不在学生表中!'

if not exists(select*from course,inserted where

https://www.wendangku.net/doc/9a11281808.html,o=https://www.wendangku.net/doc/9a11281808.html,o)

print'插入信息的课程号不在课程表中!'

rollback

end

else

begin

if not exists(select*from course,inserted where

https://www.wendangku.net/doc/9a11281808.html,o=https://www.wendangku.net/doc/9a11281808.html,o)

begin

print'插入信息的课程号不在课程表中!'

rollback

end

end

执行:

①、insert into SC

values('20110112','001','78')

删除外键约束:

alter table SC

drop constraint FK__SC__Sno__182C9B23

②、insert into SC

values('20110002','001','78')

③、insert into SC

values('20110002','006','78')

(2)为Course表创建一个触发器Course_del,当删除了Course表中的一条课程信息时,同时将表sc表中相应的学生选课记录删除掉。

create trigger course_del

on course

after delete

as

if exists(select*from sc,deleted

where https://www.wendangku.net/doc/9a11281808.html,o=https://www.wendangku.net/doc/9a11281808.html,o)

begin

delete from sc

where https://www.wendangku.net/doc/9a11281808.html,o in(select cno from deleted)

end

delete from Course

where Cno='003'

select*from SC

(3)在Course表中添加一个平均成绩avg_Grade字段(记录每门课程的平均成绩),创建一个触发器Grade_modify,当SC表中的某学生的成绩发生变化时,则Course表中的平均成绩也能及时相应的发生改变。

alter table Course

add avg_Grade smallint

update Course

set avg_Grade=(select AVG(Grade)from SC

where https://www.wendangku.net/doc/9a11281808.html,o=https://www.wendangku.net/doc/9a11281808.html,o)

select*from Course

create trigger Grade_modify

on sc

after update

as

if update(grade)

begin

update course

set avg_grade=(select avg(grade)

from sc where https://www.wendangku.net/doc/9a11281808.html,o=https://www.wendangku.net/doc/9a11281808.html,o

group by cno)

end

update SC

set Grade='90'

where Sno='20050001'and Cno='001'

(4)测试上述三个触发器。

测试过程在(1)、(2)、(3)中均给出

2.创建instead of 触发器

(1)创建一视图Student_view,包含学号、姓名、课程号、课程名、成绩等属性,在Student_view上创建一个触发器Grade_moidfy,当对Student_view中的学生的成绩进行修改时,实际修改的是sc中的相应记录。

create view Student_view

as

select s.Sno,Sname,https://www.wendangku.net/doc/9a11281808.html,o,Cname,Grade

from Student s,Course c,SC

where s.Sno=SC.Sno and https://www.wendangku.net/doc/9a11281808.html,o=https://www.wendangku.net/doc/9a11281808.html,o

select*from Student_view

create trigger Grade_moidfy

on Student_view

instead of update

as

if UPDATE(Grade)

begin

update SC

set Grade=(select Grade from inserted)where Sno=(select Sno from inserted)and

Cno=(select Cno from inserted)

end

update Student_view

set Grade=40

where Sno='20110001'and Cno='002'

select*from Student_view

select*from SC

(2)在SC表中插入一个getcredit字段(记录某学生,所选课程所获学分的情况),创建一个触发器ins_credit,当更改(注:含插入时)SC表中的学生成绩时,如果新成绩大于等于60分,则该生可获得这门课的学分,且该学分须与Course表中的值一致;如果新成绩小于60分,则该生未能获得学分,修改值为0。

alter table SC

add getcredit smallint

select*from SC

update SC

set getcredit=(select credit from Course

where https://www.wendangku.net/doc/9a11281808.html,o=https://www.wendangku.net/doc/9a11281808.html,o) where Grade>=60

update SC

set getcredit=0

where Grade<60

create trigger ins_credit

on SC

instead of update,insert

as

begin

declare@s_no char(8),@c_no char(3),@new_grade smallint,@cred smallint

select@s_no=sno,@c_no=cno,@new_grade=grade from inserted

select@cred=credit from course where cno=@c_no

if(@new_grade>=60)

begin

delete from SC where sno=@s_no and cno=@c_no

insert into SC values(@s_no,@c_no,@new_grade,@cred) end

else

begin

delete from SC where sno=@s_no and cno=@c_no

insert into SC values(@s_no,@c_no,@new_grade,0) end

end

insert into SC(sno,cno,grade)values('20081800','002',85)

(3)测试上述两个触发器。

测试结果在(1)、(2)中均已给出

3. 使用T-SQL语句管理和维护

(1)用系统存储过程sp_helptrigger查看触发器Grade_modify的相关信息

sp_helptrigger Student_view

(2)使用系统存储过程sp_helptext查看触发器Grade_modify中的定义内容。sp_helptext Grade_moidfy

(3) 使用select语句查看触发器Grade_modify的定义内容。

select o.id,c.text

from sysobjects o inner join syscomments c

on o.id=c.id

where o.type='TR'and https://www.wendangku.net/doc/9a11281808.html,='Grade_modify'

(4)用系统存储过程sp_depends查看触发器Grade_modify的相关性。

sp_depends Grade_modify

(5)将sc_insert触发器改为instead of 触发器,实现的功能不变。drop trigger sc_insert

create trigger sc_insert

on sc

instead of insert

as

if not exists(select*from student,inserted

where student.sno=inserted.sno) begin

print'插入信息的学号不在学生表中!'

if not exists(select*from course,inserted where https://www.wendangku.net/doc/9a11281808.html,o=https://www.wendangku.net/doc/9a11281808.html,o)

print'插入信息的课程号不在课程表中!'

rollback

end

else

begin

if not exists(select*from course,inserted where https://www.wendangku.net/doc/9a11281808.html,o=https://www.wendangku.net/doc/9a11281808.html,o)

begin

print'插入信息的课程号不在课程表中!'

rollback

end

end

insert into SC

values('20110005','001','78','6')

(6)将触发器sc_insert删除。

drop trigger sc_insert

4.使用SQL Server Management Studio管理存储过程

(1)在SQL Server Management Studio中重新创建刚删除的触发器sc_insert 选中SC表,展开→右击“触发器”→新建触发器

出现如下界面:

编写余下的SQL语句:

CREATE TRIGGER sc_insert

ON SC

INSTEAD OF INSERT

AS

BEGIN

if not exists(select*from student,inserted

where student.sno=inserted.sno) begin

print'插入信息的学号不在学生表中!'

if not exists(select*from course,inserted where https://www.wendangku.net/doc/9a11281808.html,o=https://www.wendangku.net/doc/9a11281808.html,o)

print'插入信息的课程号不在课程表中!'

rollback

end

else

begin

if not exists(select*from course,inserted where https://www.wendangku.net/doc/9a11281808.html,o=https://www.wendangku.net/doc/9a11281808.html,o)

begin

print'插入信息的课程号不在课程表中!'

rollback

end

end

END

(2)查看触发器sc_insert 的内容。

展开表SC→触发器→选择sc_insert触发器→查看依赖关系

出现如下界面:

(3)删除触发器sc_insert

选中sc_insert触发器,右击→删除

实验七 触发器解读

实验七、触发器 一、实验目的 (1)理解触发器的用途、类型和工作原理。 (2)掌握利用T-SQL语句创建和维护触发器的方法。(3)掌握利用SQL Server Management Studio创建、维护触发器的方法。 二、实验内容、 1、创建AFTER触发器 (1)创建一个在插入时触发的触发器sc_insert,当向SC表插入数据时,须确保插入的学号已在Student表中存在,并且还须确保插入课程号在Course表中存在;若不存在,则给出相应的提示信息,并取消插入操作,提示信息要求指明插入信息是学号不满足条件还是课程号不满足条件。(注:Student表与SC表的外键约束要先取消。)

(2)为Course表创建一个触发器Course_del,当删除了Course表中的一条课程信息时,同时将表SC中相应的学生选课记录也删除。 (3)在Course表中添加一个平均成绩avg_modify,当SC表中某学

生的成绩发生变化时,则Course表中的平均成绩也能及时相应发生改变。 (4)测试上述三个触发器。

2、创建INSERTED OF 触发器 (1)创建一视图student_view,包含学号、姓名、课程号、课程名、成绩等属性,在student_view上创建一个触发器grade_modify,当对student_view中的学生的成绩进行修改时,实际修改的是SC中的相应记录。

(2)在Student表中插入一个getcredit字段(记录学生所获学分的情况),创建一个触发器ins_credit,当更改(注:含插入时)SC表中的学生成绩时,如果新成绩大于等于60分,则该生可获得这门课的学分,如果新成绩小于60分,则该生未能获得这门课的学分。 (3)测试上述两个触发器。

存储过程与触发器实验

第一章存储过程与触发器实验 实验目的 1.理解存储过程的工作原理和作用。 2.掌握存储过程设置和程序设计过程。 3.理解触发器的工作原理和作用。 4.掌握触发器编写方法。 实验环境 采用IBM DB2或Sybase数据库管理系统作为实验平台。其中,DB2可以采用DB2 Express-C或DB2 V8 Enterprise。 实验完成人:李肇臻,谢锦 实验内容 一、存储过程实验 1.针对下面2个完整性约束条件,建立存储过程,实现当数据导入或更新时,可以自动修改拥塞率、半速率话务量比例 (1)拥塞率=拥塞数量/呼叫数量 (2)半速率话务量比例=半速率话务量/全速率话务量 在DB2CMD中运行,win7用管理员权限。 create procedure M() language SQL begin update CALLDATA set "callcongs"="congsnum"/"callnum" where "congsnum"<>0 and "callnum"<>0; update CALLDATA set "rate"="thtraff"/"traff" where "thtraff"<>0 and "traff"<>0; end @ 2.将存储过程添加到数据库服务器上

3.在客户端编写调用存储过程的主程序 4.运行客户端程序,调用存储过程,观察存储过程执行过程和数据更新情况;调用就用db2 CALL M() 二、触发器实验 1. 针对下列约束条件,分别建立1个触发器: 1)每个小区/扇区最多占用14个TCH频点,合法频点范围在[1,60]之间。当向小区中新加入频点时,如果小区中现有频点数目已达到14个,则用新加入的频点替换现有频点中的最小频点;当修改或新加入频点时,如果发现频点不在合法范围内,则输出提示信息,并拒绝该操作。 create trigger first_1 after insert on FREQUENCY

数据库实验报告(7)-触发器

桂林航天工业学院学生实验报告 实验七 实验名称触发器实验日期2019.11.12 实验目的 1.了解触发器的基本原理,掌握创建触发器的方法。 2.掌握修改和删除触发器的方法,能够设计简单的触发器。 实验内容触发器 实验方法及步骤 1、创建一个触发器InsStud,当向student表插入一条记录时,同时把该记录插入到关系student2。 CREATE TRIGGER InsStud on student FOR INSERT AS insert into student2 select*from inserted 2、向student表中插入一条记录('201215130','张三','男',20,'CS'),查看student和student2表中记录的变化是什么? student和student2表中都能插入('201215130','张三','男',20,'CS')这条记录 insert student values('201215130','张三','男',20,'CS'); select*from student select*from student2 3、创建一个触发器DelStud,当向student表删除一条记录时,同时把该记录从student2表删除掉。

CREATE TRIGGER DelStud on student FOR delete AS delete student2 select*from deleted 4、删除student表中的sno为201215130的元组,同时查看student2表中元组的变化是什么? student和student2表中都能删除('201215130','张三','男',20,'CS')这条记录。 delete student where sno='201215130' select*from student select*from student2 5、为course表创建一个名为del_rollback_tr的DELETE触发器,该触发器的作用是禁止删除course表中的记录。 CREATE TRIGGER del_rollback_tr on course FOR delete AS if (exists(select*from deleted)) rollback insert course values('8','张','5',2); delete course where cno='8'

触发器功能的模拟实现实验报告-

武汉轻工大学数学与计算机学院 数字逻辑实验报告 学校:武汉轻工大学 院系:数学与计算机学院 班级:计算机类1304班 姓名:田恒 学号: 1305110089 指导老师:刘昌华 2014年12月10日

目录 1、实验名称 2、实验目的 3、实验原理 4、实验环境 5、实验内容 一、DFF仿真分析 二、“维持阻塞”型DFF仿真分析 三、思考练习 四、故障排除 五、实验总结

【实验名称】触发器功能的模拟实现 【实验目的】学习时序电路的设计,了解基本触发器的功能,利用QuartusII软件的原理图输入,设计一个钟控R-S触发器形成的D触发器和边沿触发型D触发器,并验证其功能。 【实验原理】(1)钟控R-S触发器,在时钟信号作用期间,当输入R、S同时为1时,触发器会出现状态不稳定现象。为了解决这个问题,对钟控R-S触发器的控制电路进行修改,用G4门的输出信号替换G3门的S输入信号,将剩下的输入R记作D,就形成只有一个输入端的D触发器。 (2)在上述D触发器的基础上增加“维持”、“阻塞”结构,从而形成“维持阻塞”型D触发器。

【实验环境】PC机(Windows xp,QuartusII) 【实验内容】QuartusII开发数字电路的设计流程完成DFF和“维持阻塞”型D触发器的原理设计输入,编译仿真和波形仿真。 一、DFF仿真分析: step1、启动QuartusII Step2、建立工作库目录文件夹以便设计工程项目的存储 Step3、输入设计:根据上部原理图完成原理图文件,截图如下: Step4、单击存盘命令新建工程 Step5、编译综合 Step6、仿真测试 Step7、仿真结果

实验七触发器

实验七触发器 文件编码(008-TTIG-UTITD-GKBTT-PUUTI-WYTUI-8256)

实验七触发器 一、实验目的 (1)理解触发器的用途、类型和工作原理 (2)掌握利用T-SQL语句创建和维护触发器的方法 (3)掌握利用企业管理器创建、维护触发器的方法 二、实验内容 1.创建after触发器 (1)创建一个在插入时触发的触发器sc_insert,当向sc表插入数据时,须确保插入的学号已在Student表中存在,并且还须确保插入的课程号在Course表中存在;若不存在,则给出相应的提示信息,并取消插入操作,提示信息要求指明插入信息是学号不满足条件还是课程号不满足条件(注:Student表与sc表的外键约束要先取消)。 create trigger sc_insert on sc after insert as

if not exists(select*from student,inserted where= begin print'插入信息的学号不在学生表中!' if not exists(select*from course,inserted where= print'插入信息的课程号不在课程表中!' rollback end else begin if not exists(select*from course,inserted where= begin print'插入信息的课程号不在课程表中!' rollback end

end 执行: ①、insert into SC values(,'001','78') 删除外键约束: alter table SC drop constraint FK__SC__Sno__182C9B23 ②、insert into SC values(,'001','78') ③、insert into SC values('','006','78') (2)为Course表创建一个触发器Course_del,当删除了Course表中的一条课程信息时,同时将表sc表中相应的学生选课记录删除掉。 create trigger course_del on course after delete

实验五触发器及其应用(仿真)一、实验目的

实验五 触发器及其应用(仿真) 一、实验目的 1.掌握JK 触发器和D 触发器的逻辑功能。 2.掌握触发器相互转换的方法。 3.掌握集成JK 触发器和集成D 触发器的使用方法。 二、实验相关知识 1.JK 触发器 数字集成触发器74112内部有两个独立的下降沿触发的JK 触发器,其逻辑符号和仿真元件引线排列 如图5-1所示。 CLR 是异步置0端D R , PRE 是异步置1端D S 。特性方程是: 2.D 触发器 数字集成触发器7474内部有两个独立的上升沿触发的D 触发器,其逻辑符号和仿真元件引线排列如图5-2所示。其特点是次态(Q n+1)输出仅取决于CP 上升沿到达时D 端输入信号的状态,而与在此以前或以后D 的状态无关。其特性方程是: Q n+1 = D 三、实验预习要求与思考 1.阅读实验相关知识。 2.按要求设计“实验内容”中的电路,画出逻辑图。 n n n Q K Q J Q 1 (b ) 仿真元件引线排列 (a ) 逻辑符号 图5-1 74112的逻辑符号和仿真元件引线排列 1J C1 1K Q > J CP K R D S D R S Q (a ) 逻辑符号 (b ) 仿真元件引线排列 图5-2 7474的逻辑符号和仿真元件引线排列

四、实验内容 1.设计电路验证JK触发器74112的逻辑功能。建议示波器A通道接时钟脉冲、B通道接输出端Q,Q 和Q端接指示灯。 表5-1 JK触发器逻辑功能验证表 (1)由表5-1可以得出PRE’和CLR’的优先级哪个高? (2)由表5-1可以得出JK触发器的特性方程:。 2.设计电路验证D触发器7474的逻辑功能。建议示波器A通道接时钟脉冲、B通道接输出端Q,Q 和Q端接指示灯。 表5-2 D触发器逻辑功能验证表 (1)比较7474和74112的复位、置位端的异同。 (2)由表5-2可以得出D触发器的特性方程: 。 3.比较D触发器、JK触发器逻辑表达式,用适当的逻辑门实现D触发器与JK触发器的逻辑功能互相转换,并验证之。 4.任选一种触发器设计一个四人抢答器。要求当四人中任一人先按下开关后,有LED指示,其他人再按开关无效;复位后又可正常工作。画出原理图,仿真验证。 提示:利用复位端清零,抢答者的起始端接地,抢答成功者先按下开关时,D由0变1,Q变为高电平,同时用Q的反,通过与非门封锁其他人的抢答开关。

大数据库实验6触发器实验报告材料

淮海工学院计算机工程学院实验报告书 课程名:《数据库原理及应用》 题目:存储过程和触发器 班级:软件132 学号: 2013122907 姓名:孙莹莹 评语: 成绩:指导教师: 批阅时间:年月日

一.目的与要求 1.掌握存储过程的创建方法; 2.掌握存储过程的执行、修改和删除等操作; 3.掌握触发器的创建方法; 4.掌握触发器的使用、修改和删除等相关内容 二.实验内容 基于前面建立的factory数据库,使用T-SQL语句完成如下各小题的功能: 1.创建一个为worker表添加职工记录的存储过程Addworker; 2.创建一个存储过程Delworker删除worker表中指定职工号的记录。 3.显示存储过程Delworker; 4.删除存储过程Addworker和Delworker. 三.实验步骤 1 . (1)建立存储过程 USE factory GO CREATE PROCEDURE Addworker @no int=NULL, @name char(10)=NULL, @sex char(2)=NULL, @birthday datetime=NULL, @na char(2)=NULL, @wtime datetime=NULL, @depno int=NULL AS IF @no IS NULL OR @name IS NULL OR @sex IS NULL OR @birthday IS NULL OR @depno IS NULL BEGIN PRINT '请重新输入该职工信息!' PRINT '你必须提供职工号、姓名、性别、出生日期、部门号' RETURN END BEGIN TRANSACTION INSERT INTO worker VALUES(@no,@name,@sex,@birthday,@na,@wtime,@depno) IF @@error<>0 BEGIN ROLLBACK TRAN RETURN END

基本RS触发器实验

第5章基本RS触发器 5.同步触发器(同步RS触发器) 目的与要求: 1 掌握时序电路的定义、分类、触发器的特点。 2 掌握基本RS触发器的电路结构、工作原理、逻辑功能。 3 掌握同步RS触发器的工作原理、逻辑功能。 4 掌握触发器逻辑功能的表示方法。 5 掌握时序电路的一些基本概念。 重点与难点:1 基本概念要正确建立。难点:现态、次态、不定状态的正确理解。 2 基本RS触发器的逻辑功能、触发方式。 5.1概述 一、触发器的概念 复习:组合电路的定义?构成其电路的门电路有何特点?组合电路与时序电路的区别? 门电路:在某一时刻的输出信号完全取决于该时刻的输入信号,没有记忆作用。 触发器:具有记忆功能的基本逻辑电路,能存储二进制信息(数字信息)。 触发器有三个基本特性: (1)有两个稳态,可分别表示二进制数码0和1,无外触发时可维持稳态; (2)外触发下,两个稳态可相互转换(称翻转),已转换的稳定状态可长期保持下来,这就使得触发器能够记忆二进制信息,常用作二进制存储单元。 (3)有两个互补输出端,分别用Q和Q 二、触发器的逻辑功能描述: 特性表、激励表(又称驱动表)、特性方程、状态转换图和波形图(又称时序图) 三、触发器的分类:根据 逻辑功能不同:RS触发器、D触发器、JK触发器、T触发器和触发器等。 触发方式不同:电平触发器、边沿触发器和主从触发器等。 电路结构不同:基本RS触发器,同步触发器、维持阻塞触发器、主从触发器和边沿触发器等。 5.2 触发器的基本形式 5.2.1 基本RS触发器 一、由与非门组成的基本RS触发器 1.电路结构 电路组成:两个与非门输入和输出交叉耦合(反馈延时)。逻辑图如图(a)所示。 逻辑符号如图(b)所示。

实验五 存储过程和触发器的定义和使用3

实验五存储过程和触发器的定义和使用 一、实验目的 1、掌握局部变量、全局变量、流程控制语句的使用方法 2、了解存储过程的类型和作用,并掌握使用对象资源管理器和Transact-SQL语句创建 存储过程的方法及使用方法。 3、理解触发器的特点和作用,并掌握使用Transact-SQL语言创建触发器的方法 二、实验内容 1.在学生成绩库中中有如下各表: 学生表(Student) 学号姓名性别出生日期专业所在系联系电话020101杨颖01980-7-20计算机应用计算机88297147 020102方露露01981-1-15信息管理计算机88297147 020103俞奇军11980-2-20信息管理计算机88297151 020104胡国强11980-11-7信息管理计算机88297151 020105薛冰11980-7-29水利工程水利系88297152 020201秦盈飞01981-3-10电子商务经济系88297161 020202董含静01980-9-25电子商务经济系88297062 020203陈伟11980-8-7电子商务经济系88297171 020204陈新江11980-7-20房建水利系88297171 create database学生成绩数据库 create table Student ( 学号Char(6)not null, 姓名Char(8)not null, 性别Bit not null, 出生日期smalldatetime, 专业Char(10), 所在系Char(10), 联系电话Char(11)null ) 课程表(Course) 课程号课程名教师开课学期学时学分 101计算机原理陈红2453 102计算方法王颐3453 103操作系统徐格2604 104数据库原理及应用应对刚3755 105网络基础吴江江4453 106高等数学孙中文1906 107英语陈刚1906 108VB程序设计赵红韦3705

实验二D触发器的设计和仿真

实验报告 哈尔滨工程大学教务处制 实验二 D触发器的设计和仿真 一、实验目的 1、学习模拟数字电路单元的基本设计方法。 2、学习Cadence工具下电路设计的基本操作和方法。 3、学习Sprectre工具的仿真操作方法。 二、实验内容

本实验通过设计一个异步清零的D触发器电路学习Cadence工具下电路的设计和仿真方法。实验内容包括:完成反相器、与非门、传输门电路的设计和仿真验证;完成各个单元电路symbol的建立;利用建立的单元电路symbol完成D触发器电路的设计和仿真;分析仿真结果。该电路设计采用上华CSMC0.5umCMOS工艺设计,工作电压5V。 三、实验步骤 1、登陆到UNIX系统。 在登陆界面,输入用户名和密码,用户名和密码都为学生学号。 2、Cadence的启动。 启动Cadence软件的命令有很多,不同的启动命令可以启动不同的工具集,常用的启动命令有icfb,icca等,也可以单独启动单个工具。 3、原理图的输入。 (1)Composer的启动。在CIW窗口新建一个单元的Schematic 视图。 (2)添加器件。在comparator schematic窗口点击Add-Instance 或者直接点i,就可以选择所需的器件。 (3)添加连线。执行Add-Wire,将需要连接的部分用线连接起来。 (4)添加管脚。执行Add-Pin和直接点p,弹出添加管脚界面。 (5)添加线名。为设计中某些连线添加有意义的名称有助于在

波形显示窗口中显出该条线的信号名称,也可以帮助检查电路错误。点击Add-Wire Name,弹出新窗口,为输入输出线添加名称。为四端的MOS器件的衬底添加名称vdd!或gnd!,其中!表示全局变量。 (6)添加电源信号。选择Vdd和Gnd的symbol各一个,在两个symbol之间连接一个vdc,设置直流电压5V。 (6)保存并检查。点击schematic窗口上的Check and Save按钮,察看是否有警告或者错误。如果有,察看CIW窗口的提示。 4、电路仿真。 (1)启动模拟仿真环境。在comparator schematic窗口,选择Tools-Analog Environment,弹出模拟仿真环境界面。 (2)选择仿真器。在仿真窗口,选择Setup-Simulator/Directory/Host,设置仿真器为spectre,然后点击OK。 (3)设置模型库。 (4)设置分析类型。在仿真窗口,点击Choose Analyses按钮,弹出Choose Analyses窗口,该窗口中列出了各种仿真类型,在本实验中只需进行瞬态仿真,所以选择tran,时间设为3um。 (5)设置设计变量,在仿真窗口中,点击Edit Variables 按钮,弹出变量设置窗口,点击Copy From按钮,整个设计本扫描一遍,设计中的各个变量被列出来。 (6)创建网表。选择Simulation-Netlist-Create,产生了该设计的网表。 (7)设置波形显示工具。Cadence中有两种波形显示工具:AWD

数字电路实验报告第七章触发器

数字电路与逻辑设计基础实验 任课教师:陈志坚 实验名称:触发器(实验七) 云南大学信息学院 一、实验目的 ⑴学习触发器逻辑功能的测试方法 ⑵进一步熟悉RS触发器、集成D触发器和JK触发器的逻辑功能及其触发方式二、实验器材 ⑴直流稳压电源、数字逻辑实验箱 ⑵74LS00、74LS74、74LS76 三、实验内容和仿真

1.基本RS触发器 基本RS触发器用与非门74LS00构成,按图7-1接好线。在输入端加上不同的信号,通过发光二极管观察电路输出端的状态。把结果填入自制的表中。 图7-1 基本RS触发器图7-2 D触发器的预置和清零功能 用带预置和清除的双D型触发器74LS74来测试上升沿触发集成D型触发器的逻辑功能。先按图7-2接线,在时钟脉冲的不同电平状态,改变预置端PRE 和清除端CLR的信号,通过发光二极管观察触发器的输出状态。把结果填入自制的表中。然后,按图7-3接线,测试D触发器的逻辑功能。 在D触发器的逻辑功能测试中,先将数据输入端D分别置入“0”或“1”,再用清零端CLR和预置端PRE分别将触发器的输出端清除为“0”或置位为“1”,最后再用单脉冲按钮向触发器的时钟输入端CLK发出脉冲的上升边沿和下降边沿,同时观察电路输出端Q的输出状态,把结果填入表7-1中。 注意:清零和置位之后,清除端CLK和预置端PRE必须置成“1”状态。 图7-3 D触发器逻辑功能测试7-4 JK触发器清除和预置功能的测试

D触发器仿真(1) D触发器仿真(2

1 3.JK触发器 用带预置和清除的双JK触发器74LS76来测试下降沿触发集成JK触发器的逻辑功能。先按图7-4接线,改变预置端PRE和清除端CLR的信号,通过发光二极管观察触发器Q输出端的输出状态。把结果填入自制的表中。然后,按图7-5接线,测试JK触发器的逻辑功能。 图7-5 JK触发器逻辑功能测试

存储过程和触发器(数据库实验5)

数据库基础与实践实验报告实验五存储过程和触发器 班级:惠普测试142 学号:1408090213 姓名:闫伟明 日期:2016-11-14

1 实验目的: 1)掌握SQL进行存储过程创建和调用的方法; 2)掌握SQL进行触发器定义的方法,理解触发器的工作原理; 3)掌握触发器禁用和重新启用的方法。 2 实验平台: 操作系统:Windows xp。 实验环境:SQL Server 2000以上版本。 3 实验内容与步骤 利用实验一创建的sch_id数据库完成下列实验内容。 1.创建存储过程JSXX_PROC,调用该存储过程时可显示各任课教师姓名及其所教课程名称。 存储过程定义代码: CREATE PROCEDURE JSXX_PROC AS SELECT tn 教师姓名,cn 所教课程FROM T,TC,C WHERE T.tno=TC.tno AND https://www.wendangku.net/doc/9a11281808.html,o=https://www.wendangku.net/doc/9a11281808.html,o 存储过程执行语句与执行结果截图: EXECUTE JSXX_PROC 2.创建存储过程XM_PROC,该存储过程可根据输入参数(学生姓名)查询并显示该学生的学号、 所学课程名称和成绩;如果没有该姓名学生,则提示“无该姓名的同学”。 存储过程定义代码:

CREATE PROCEDURE XM_PROC @sname VARCHAR(100) AS BEGIN IF EXISTS(SELECT NULL FROM S WHERE sn=@sname) SELECT S.sno 学号,cn 课程,score 成绩FROM S,SC,C WHERE https://www.wendangku.net/doc/9a11281808.html,o=https://www.wendangku.net/doc/9a11281808.html,o AND SC.sno=S.sno AND S.sn=@sname ELSE PRINT'无该姓名的同学。' END 运行截图: 3.创建存储过程XBNL_PROC,该存储过程可根据输入参数(专业名词,默认值为计算机专业), 统计并显示该专业各年龄段男、女生人数。如果没有该专业,则显示“无此专业”。 存储过程定义代码: CREATE PROCEDURE XBNL_PROC @departName VARCHAR(30)='计算机', @begin INT, @end INT AS

实验七 触发器的仿真

实验七触发器的仿真 实验目的 1.用逻辑图和VHDL语言设计D锁存器,并进行仿真与分析; 2.参看Maxplus中器件7474(边沿D触发器)的逻辑功能,用VHDL语言设计边沿触发式D触发器,并进行仿真与分析。 3.参看Maxplus中器件7476(边沿JK触发器)的逻辑功能,用VHDL语言设计边沿触发式JK触发器,并进行仿真与分析。 1.D锁存器(D Latch) 实验设计思想 使能端EN输入为1时,输出Q与输入D值相同;使能端EN输入为0时,输出Q保持不变。 实验原理图 实验VHDL源程序 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY ex71 IS PORT( C,D:IN STD_LOGIC; Q,QN:BUFFER STD_LOGIC); END ex71; architecture bhv OF ex71 IS BEGIN PROCESS(C,D,Q) BEGIN IF (C='1') THEN Q<=D;ELSE Q<=Q;END IF; QN<=NOT Q; END PROCESS; END bhv; 实验波形仿真

Preset , Clear and Complementary Outputs) 实验原理图

实验VHDL源程序 library ieee; use ieee.std_logic_1164.all; entity ex72 is port( D,CLK,PR_L,CLR_L:IN std_logic; Q,QN:out std_logic); end ex72; architecture vhb of ex72 is signal PR,CLR:STD_LOGIC; BEGIN process(CLR_L,CLR,PR_L,PR,CLK) begin PR<=not PR_L;CLR<=not CLR_L; if(CLR AND PR)='1'then Q<='1';QN<='1'; elsif CLR='1' then Q<='0';QN<='1'; elsif PR='1'then Q<='1';QN<='0'; elsif (CLK'event and CLK='1')then Q<=D;QN<=not D; end if; end process; end vhb; 实验波形仿真

实验七设计基本触发器

实验七设计基本触发器一、实验准备 该实验不需要使用七个模块组中的功能单元,所以拨码开关状态;拨码开关MODEL_SEL5-8全置于“OFF状态,以使用JTAG下载方式,这里用户可根据自己所用的下载线来选择适当的下载方式。矚慫润厲钐瘗睞枥庑赖賃軔朧。 二、实验目的 熟悉利用Quartusll开发数字电路的基本流程和Quartusll软件的相关操作, 介绍Quartusll的软件,掌握基本的设计思路,软件环境参数配置,仿真,管脚分配,下载等基本操作。 了解VHDL或原理图设计方法与定制IP模块的思想。 掌握基本触发器的设计思路及工作原理 三、实验原理 通过开关分别输入单bit的数据,并用开关作为控制信号,实现置位和复位。将 T触发器的结果分别在2个LED上显示。聞創沟燴鐺險爱氇谴净祸測樅。 四、实验内容 1、用VHDL语言设计D触发器和T触发器;注意时钟要用到分频电路。 2、用Quartusll软件进行编译,仿真,下载到实验平台进行验证。 五、设计原理框图 六、引脚分配情况 D A21 CLK P25 CLR F6 P SET B21 QT AA11 Q AC10 MODEL SEL1-3 均置于“OFF D触发器和

Q,QT 为D 触发器和T 触发器的输出信号,分别对应平台上的 LED0和LED7。CLR,PSET 为高电平清零和置位信号, CLK 为时钟信号。残骛楼諍锩瀨濟溆塹籟婭骤東。 七、结果分析 波形仿真 如上所述,Q,QT 作为D 触发器和T 触发器的输出信号,分别对应平台 CLR,PSET 为高电平清零和置位信号, CLK 为时 这里简单列出波形图, 实际可以自己加上其他的 八、VHDL 源程序代码 --D flip flop library IEEE; use IEEE.std_logic_1164.all; ENTITY DFFL OP IS PORT ( D: in STD_LOGIC; CLK,CLR, PSET: in STD_LOGIC;-- 时钟,清零,置位 Q: out STD LOGIC --输出 ); END DFFL OP; ARCHITECTURE FFA OF DFFL OP IS BEGIN P ROCESS(CLK ,P SET,CLR) BEGIN Q<='1'; ELSIF CLR='1' THEN Q<='0'; ELSIF CLK'EVENT AND CLK='1' THEN Name CLK CLR £ FS ET G QT Value a 11.£5 ] B B B B B B ]ps ISO. 0 ILS 11.25 ns -J ______________ -rLZFLZFLFLJnLJn_J^ 4S0 0 ns 从上图可以看出, 上的LED0和LED7,正确对应了结果。 钟信 号,都实现了相应的功能, 限于篇幅, 信号进行仿真。酽锕极額閉镇桧猪訣锥顧荭钯。 --输入 IF P SET='1' THEN --异步置位 --异步7冃零

数据库存储器与触发器实验报告(互联网+)

南昌航空大学实验报告 二0一七年 5 月 3 日 课程名称:数据库概论实验名称:存储器与触发器 班级:xxx 姓名:xxx 同组人: 指导教师评定:签名: 一、实验环境 1.Windows2000或以上版本; 2.SQLServer2000或2005。 二、实验目的 1.掌握存储过程的创建,修改,使用,删除; 2.掌握触发器的创建,修改,使用,删除。 三、实验步骤及参考源代码 1.创建过程代码: CREATE PROCEDURE C_P_Proc(@ccna varchar(10),@cno char(4)OUTPUT,@cna varchar(10)OUTPUT,@pna varchar(20)OUTPUT,@num int OUTPUT) AS SELECT @cna=cna,@cno=https://www.wendangku.net/doc/9a11281808.html,o,@pna=pna,@num=num FROM cp,customer,paper WHERE https://www.wendangku.net/doc/9a11281808.html,o=https://www.wendangku.net/doc/9a11281808.html,o AND paper.pno=cp.pno AND cna=@ccna;

6.执行存储过程C_P_Pro,实现对李涛,钱金浩等不同顾客的订阅信息查询execute C_P_Proc@name='李涛' execute C_P_Proc@name='钱金浩' 7,删除存储过程C_P_Prcc DROP PROCEDURE C_P_PROC (4)在DingBao数据库中针对PAPER创建插入触发器TR_PA PER_I、删除触发器TR_PAPER_D、修改触发器TR_PAPER_U。具体要求如下。

<1>对PAPER的插入触发器:插入报纸记录,单价为负值或为空时,设定为10元。 CREATE TRIGGER TR_PAPER_I ON paper FOR INSERT AS DECLARE @ippr FLOAT; declare @ipno int; SELECT @ippr=ppr,@ipno=pno from inserted begin if @ippr<0 or @ippr is NULL begin raiserror('报纸的单价为空或小于零!',16,1) update paper set ppr=10 where paper.pno=@ipno end

施密特、单稳态触发器仿真实验

上海大学 本科生课程作业 题目:数字电子技术课程实践项目二 课程名称:数字电子技术 学院:机电工程与自动化学院 姓名:张炜 学号:12122030

题目要求:用555定时器构成的单稳态触发器、多谐振荡器、施密特触发器进行设计和仿真 1.单稳态触发器: 1.1 工作原理: 单稳态电路的组成和波形下图所示。当电源接通后,Vcc 通过电阻R 向电容C 充电,待电容上电压Vc 上升到2/3Vcc 时,RS 触发器置0,即输出Vo 为低电平,同时电容C 通过三极管T 放电。当触发端2的外接输入信号电压Vi <1/3Vcc 时,RS 触发器置1,即输出Vo 为高电平,同时,三极管T 截止。电源Vcc 再次通过R 向C 充电。输出电压维持高电平的时间取决于RC 的充电时间,当t=t W 时,电容上 的充电电压为;CC RC t CC C V e V v w 321=??? ? ??-=-,所以输出电压的脉宽 t W =RCln3≈1.1RC 。一般R 取1k Ω~10M Ω,C >1000pF 。 值得注意的是:t 的重复周期必须大于t W ,才能保证放一个正倒置脉冲起作用。由上式可知,单稳态电路的暂态时间与VCC 无关。因此用555定时器组成的单稳电路可以作为精密定时器。 单稳态电路的电路图和波形图

1.2 555单稳态触发器的设计: 1.2.1 电路设计基本原理: 单稳态触发器具有稳态和暂稳态两个不同的工作状态。在外界触发脉冲作用下,它能从稳态翻转到暂稳态,在暂稳态维持一段时间以后,在自动返回稳态;暂稳态维持时间的长短取决于电路本身的参数,与触发脉冲的宽度和幅度无关。由于单稳态触发器具有这些特点,常用来产生具有固定宽度的脉冲信号。 按电路结构的不同,单稳态触发器可分为微分型和积分型两种,微分型单稳态触发器适用于窄脉冲触发,积分型适用于宽脉冲触发。无论是哪种电路结构,其单稳态的产生都源于电容的充放电原理。 用555定时器构成的单稳态触发器是负脉冲触发的单稳态触发器,其暂稳态维持时间为T w=lnRC=1.1RC,仅与电路本身的参数R、C 有关。 1.2.2 实验数据及分析结论: 单稳态触发器实验电路下图所示

实验七-8421码检测电路

实验七8421码检测电路的设计 姓名:张跃佳 班级:电自2班 学号: 实验时间:2015.12.24

【实验目的】 1.了解检测电路的工作原理 2.进一步掌握同步时序逻辑电路的设计方法 【实验仪器及器件】 1.实验箱、万用表、示波器 2.74LS73、74LS74、74LS00、74LS20、74LS197 【实验原理】 本实验要求设计一个8421BCD码(串行输入)检测电路。此电路是用来检测串行的8421码传输过程中是否发生错误。假定8421BCD码传送过程中是由低到高串行送数,例如十进制2(代码为0010)是按0、1、0、0次序传送的。如果在传送过程中代码发生错误,出现非法数码(不在0000到1001之间的代码)则检测电路发生一脉冲信号。 实验所用触发器为JK触发器,要求自己设计、自己安装和测试。 设计提示 本实验的设计关键是建立原始状态图和状态表。根据要求8421BCD码是由低位到高位传送,该电路每四个码元检测一次,当电路收到第四个码元时,若判断是非法码,则输出为1,否则输出为0.可见此电路为米里时序电路。 设检测电路初始状态为S ,当电路接收第一个码元后,根据输入是0还是1, 将分别转到两个不同的新状态S 1和S 2 ,从S 1 或S 2 出发,接收到第二个码元后, 又根据是0还是1,又转到两个不同的新状态,类推到接收到的第三、四码元后电路执行统一的动作。在接收到第四个码元后,根据接收的代码判断是否是非法码而确定其输出是否为1,并且电路回到初始状态S ,准备接受新的一组码组。 根据上面的分析很容易做出原始状态和状态表了。这样做出的元素状态表有15个状态,经过化简后只剩下6个状态。化简后的状态如表(一)。由简化状态表,根据状态分配原则,可得许多分配方案,其中一种分配方案如表(二),得到的结果是:

数据库实验三触发器的创建修改及删除

昆明理工大学信息工程与自动化学院学生实验报告 ( 2010 —2011 学年第二学期) 课程名称:数据库高级应用开课实验室:计算中心208 2011年 5月 17日 年级、专业、班学号姓名成绩 实验项目名称触发器的创建、修改及删除指导教师 教师 评语 教师签名: 年月日一、实验目的、要求 目的:了解触发器的功能 掌握触发器的使用方法 要求:实现简单触发器的使用 二、实验所用仪器、材料 微型计算机一台 SQL server 2008 三、实验原理 触发器与存储过程非常相似,触发器也是SQL 语句集,两者惟一的区别是触发器不能用EXECUTE 语句调用,而是在用户执行Transact-SQL 语句时自动触发(激活)执行。触发器是一个在修改指定表中的数据时执行的存储过程。经常通过创建触发器来强制实现不同表中的逻辑相关数据的引用完整性或者一致性。由于用户不能绕过触发器,所以可以用它来强制实施复杂的业务规则,以此确保数据的完整性。触发器不同于存储过程。触发器主要是通过事件进行触发而被执行的,而存储过程可以通过存储过程名字而被直接调用。当对某一表进行诸如UPDATE、INSERT、DELETE 这些操作时,SQL Server 就会自动执行触发

器所定义的SQL 语句,从而确保对数据的处理必须符合由这些SQL 语句所定义的规则。 四、实验过程及数据记录 创建触发器BB(修改表S中的数据时SC中的数据也同时修改了) CREATE TRIGGER BB ON S FOR UPDATE AS IF UPDATE(S#) BEGIN UPDA TE SC SET SC.S#=A.S#FROM INSERTED A,DELETED B WHERE SC.S#=B.S# END 查看表SC的数据 SELECT*FROM SC WHERE S#='200510405101' 修改表S中的数据 UPDA TE S SET S#='000000000000' 查看表SC中的数据(验证触发器的效果) SELECT*FROM SC WHERE S#='000000000000'

实验6 数据库实验——存储过程和触发器

实验6 存储过程与触发器 一、实验目的 1、加深与巩固对存储过程与触发器概念的理解。 2、掌握触发器的简单应用。 3、掌握存储过程的简单应用。 二、实验内容 一)存储过程: 1、创建一存储过程,求l+2+3+…+n,并打印结果。 CREATE PROCEDURE addresult AS DECLARE @n int=10,/*最后一个数*/ @i int=0, @result int=0 /*结果*/ BEGIN WHILE(@i<=@n) BEGIN SET @result=@result+@i SET @i=@i+1 END PRINT'1+2+3+、、、+n的结果就是:' PRINT @result RETURN(@result) END GO 2.调用上面的addresult存储过程,打印l十2+3+…+10的结果。EXEC addresult

3、修改上述存储过程为addresult1,使得@n为输入参数,其具体值由用户调用此存储过程时指定。 CREATE PROCEDURE addresult1 @n int=10 /*最后一个数*/ AS DECLARE @i int=0, @result int=0 /*结果*/ BEGIN WHILE(@i<=@n) BEGIN SET @result=@result+@i SET @i=@i+1 END PRINT'1+2+3+、、、+n的结果就是:' PRINT @result RETURN(@result) END GO 4、调用上面修改后的addresult1存储过程,打印l+2+3+…+100的结果。 EXEC addresult1 100 5.修改上述存储过程为addresult2,将@n参数设定默认值为10,并改设@sum为输出参数,让主程序能够接收计算结果。

D触发器的设计和仿真讲解

实验一、D触发器的设计和仿真 一、实验目的 1、学习模拟数字电路单元的基本设计方法。 2、学习Cadence工具下电路设计的基本操作和方法。 3、学习Sprectre工具的仿真操作方法。 二、实验内容 本实验通过设计一个异步清零的D触发器电路学习Cadence工具下电路的设计和仿真方法。实验内容包括:完成反相器、与非门、传输门电路的设计和仿真验证;完成各个单元电路symbol的建立;利用建立的单元电路symbol完成D 触发器电路的设计和仿真;分析仿真结果。该电路设计采用上华CSMC0.5umCMOS 工艺设计,工作电压5V。 三、实验步骤 1、登陆到UNIX系统。 在登陆界面,输入用户名和密码,用户名和密码都为学生学号。 2、Cadence的启动。 启动Cadence软件的命令有很多,不同的启动命令可以启动不同的工具集,常用的启动命令有icfb,icca等,也可以单独启动单个工具。 3、原理图的输入。 (1)Composer的启动。在CIW窗口新建一个单元的Schematic视图。 (2)添加器件。在comparator schematic窗口点击Add-Instance或者直接点i,就可以选择所需的器件。 (3)添加连线。执行Add-Wire,将需要连接的部分用线连接起来。 (4)添加管脚。执行Add-Pin和直接点p,弹出添加管脚界面。 (5)添加线名。为设计中某些连线添加有意义的名称有助于在波形显示窗口中显出该条线的信号名称,也可以帮助检查电路错误。点击Add-Wire Name,弹出新窗口,为输入输出线添加名称。为四端的MOS器件的衬底添加名称vdd!或gnd!,其中!表示全局变量。

相关文档