当前位置:文档之家› sqlserver2008触发器

sqlserver2008触发器

sqlserver2008触发器
sqlserver2008触发器

初学sql server 2008之触发器

触发器(trigger):是一种特殊的存储过程,可以用来对表实施复杂的完整性约束,保持数据的一致性。当触发器所保护的数据发生改变时,触发器会自动被激活,并执行触发器中所定义的相关操作,从而保证对数据的不完整性约束或不正确的修改。

在SQL SERVER 2008中,有三种类型的触发器:

(1)DML触发器:是指触发器在数据库中发生数据操作语言(DML)事件时将启用。DML事件即指在表或视图中修改数据的insert、update、delete语句也。

(2)DDL触发器:是指当服务器或数据库中发生数据定义语言(DDL)事件时将启用。DDL事件即指在表或索引中的create、alter、drop语句也。

(3)登陆触发器:是指当用户登录SQL SERVER实例建立会话时触发。

不过根据DML触发器触发的方式不同又分为以下两种情况:

(1)AFTER触发器:它是在执行INSERT、UPDATE、DELETE语句操作之后执行触发器操作。它主要是用于记录变更后的处理或检查,一旦发生错误,可以用Rollback Transaction语句来回滚本次扣件,不过不能对视图定义AFTER触发器。

(2)INSTEAD OF触发器:它在执行INSERT、UPDATE、DELETE语句操作之前执行触发器本身所定义的操作。而INSTEAD OF触发器是可以定义在视图上的。

在SQL SERVER 2008中,DML触发器的实现使用两个逻辑表DELETED和INSERTED。这两个表是建立在数据库服务器的内存中,由系统管理的逻辑表,我们对于它只有只读的权限。DELETED和INSERED表的结构和触发器所在的数据表的结构是一样的。当触发器执行完成后,它们也就会被自动删除。

INSERED表用于存放你在操件insert、update、delete语句后,更新的记录。比如你插入一条数据,那么就会把这条记录插入到INSERTED表。

DELETED表用于存放你在操作insert、update、delete语句前,你创建触发器表中数据库。比如你原来的表中有三条数据,那么他也有三条数据。

下面我们就开始创建触发器吧!

触发器定义的格式我就不打一遍,你打开帮助里有的事。

我们先创建一张如下的表吧!然后以它为例吧。

create table table1

(

user_id int primary key identity(1,1),

user_name varchar(3) not null

)

下面就是创建一个简单的after触发器:

create trigger trigMessageList

on table1

after insert,update

as raiserror('数据一致性验证',16,1)

此时如果我们手动打开table1,输入一条,根本就插入不了,我们只能写一条如下的SQL 语句插入一条数据

insert into table1(user_name)values('23')

结果数据是插入成功了,但是会出显如下图所示的提示:

下面我再创建一个稍微有点复杂的after触发器:

--该触发器作用是:如果向table1中插入数据时,

--先检查要向table1插入的这条的USER_ID是否USERS(我创建的另一个表)表中的USER_ID字段中有,如果不存在则不允许插入

create trigger trigInsertedMessages

on table1

after insert

as

if exists(select*from inserted a where https://www.doczj.com/doc/be12841352.html,er_id not in(select USER_ID from USERS))

begin

raiserror('数据一致性验证',16,1)

rollback transaction

end

inserted of触发器和after触发器写法差不多,在此就不多写了。

下面创建一个简单的DDL触发器:

--它的作用是:防止数据库Test(我创建的一个实验数据库)中的任一表被修改或删除

create trigger trigDB

on database

for drop_table,alter_table

as

print'你一定要禁用触发器“trigDB"才能删除或修改这个数据库的表' rollback

删除触发器:

drop trigger trigDB

ON DATABASE

一定要记得加上ON DATABASE这条,否则就删除不了。

最后再来条开启和禁用触发器的语句:

disable trigger trigDB on database--禁用触发器

enable trigger trigDB on database--开启触发器

一﹕触发器是一种特殊的存储过程﹐它不能被显式地调用﹐而是在往表中插入记录﹑更新记录或者删除记录时被自动地激活。所以触发器可以用来实现对表实施复杂的完整性约`束。

二﹕ SQL Server为每个触发器都创建了两个专用表﹕Inserted表和Deleted表。这两个表由系统来维护﹐它们存在于内存中而不是在数据库中。这两个表的结构总是与被该触发器作用的表的结构相同。触发器执行完成后﹐与该触发器相关的这两个表也被删除。 Deleted表存放由于执行Delete或Update语句而要从表中删除的所有行。 Inserted表存放由于执行Insert或Update语句而要向表中插入的所有行。

三﹕Instead of 和 After触发器

SQL Server2000提供了两种触发器﹕Instead of 和After 触发器。

这两种触发器的差别在于他们被激活的同﹕

Instead of触发器用于替代引起触发器执行的T-SQL语句。除表之外﹐Instead of 触发器也可以用于视图﹐用来扩展视图可以支持的更新操作。

After触发器在一个Insert,Update或Deleted语句之后执行﹐进行约束检查等动作都在After触发器被激活之前发生。After触发器只能用于表。一个表或视图的每一个修改动作(insert,update和delete)都可以有一个instead of 触发器﹐一个表的每个修改动作都可以有多个After触发器。

四﹕触发器的执行过程如果一个Insert﹑update或者delete语句违反了约束﹐那幺After触发器不会执行﹐因为对约束的检查是在After触发器被激动之前发生的。所以After触发器不能超越约

束。

Instead of 触发器可以取代激发它的操作来执行。它在Inserted表和Deleted表刚刚建立﹐其它任何操作还没有发生时被执行。因为Instead of 触发器在约束之前执行﹐所以它可以对约束进行一些预处

理。

五﹕使用T-SQL语句来创建触发器基本语句如下﹕

create trigger trigger_name

on {table_name | view_name}

{for | After | Instead of } [ insert, update,delete ]

as sql_statement

六﹕删除触发器:基本语句如下﹕

drop trigger trigger_name

七:查看数据库中已有触发器:

-- 查看数据库已有触发器

use jxcSoftware go select * from sysobjects where xtype='TR'

-- 查看单个触发器 exec sp_helptext '触发器名'

八﹕修改触发器:

基本语句如下﹕ alter trigger trigger_name

on {table_name | view_name}

{for | After | Instead of } [ insert, update,delete ]

as sql_statement

1、触发器实例

Create Table Student( --学生表

StudentID int primary key, --学号

.... )

Create Table BorrowRecord( --学生借书记录

BorrowRecord int identity(1,1), --流水号

StudentID int , --学

BorrowDate datetime, --借出时

ReturnDAte Datetime, --归还时

... )

用到的功能有: 1.如果我更改了学生的学号,我希望他的借书记录仍然与这个学生相关(也就是同时更改借书记录表的学号);

2.如果该学生已经毕业,我希望删除他的学号的同时,也删除它的借书记录。等等。

这时候可以用到触发器。对于1,创建一个Update触发器:

Create Trigger truStudent

On Student --在Student表中创建触发

for Update --为什么事件触发

As --事件触发后所要做的事情

if Update(StudentID)

begin

Update BorrowRecord

Set StudentID=i.StudentID

From BorrowRecord br , Deleted d ,Inserted i --Deleted和Inserted临时

Where br.StudentID=d.StudentID

end

理解触发器里面的两个临时的表:Deleted , Inserted 。注意Deleted 与Inserted分别表示触发事件的表“旧的一条记录”和“新的一条记录”。一个数据库系统中有两个虚拟表用于存储在表中记录改动的信息,分别是:

虚拟表Inserted 虚拟表Deleted

在表记录新增时存放新增的记录不存储记录

修改时存放用来更新的新记录存放更新前的记录

删除时不存储记

录存放被删除的记录

一个Update 的过程可以看作为:生成新的记录到Inserted表,复制旧的记录到Deleted表,然后删除Student记录并写入新纪录。

对于2,创建一个Delete触发器

Create trigger trdStudent

On Student

for Delete

As

Delete BorrowRecord

From BorrowRecord br , Delted d

Where br.StudentID=d.StudentID

从这两个例子我们可以看到了触发器的关键:A.2个临时的表;B.触发机制。

SQL触发器实例2

USE Master

GO

IF EXISTS (SELECT NAME FROM SYSOBJECTS WHERE XTYPE = 'U' AND NAME = '卷烟库存表')

DROP TABLE 卷烟库存表

GO

IF EXISTS (SELECT NAME FROM SYSOBJECTS WHERE XTYPE = 'U' AND NAME = '卷烟销售表') DROP TABLE 卷烟销售表

GO

--业务规则:销售金额 = 销售数量 * 销售单价业务规则。

CREATE TABLE 卷烟销售表

( 卷烟品牌 VARCHAR(40) PRIMARY KEY NOT NULL,

购货商 VARCHAR(40) NULL,

销售数量 INT NULL,

销售单价 MONEY NULL,

销售金额 MONEY NULL

)

GO

--业务规则:库存金额 = 库存数量 * 库存单价业务规则。

CREATE TABLE 卷烟库存表

( 卷烟品牌 VARCHAR(40) PRIMARY KEY NOT NULL,

库存数量 INT NULL,

库存单价 MONEY NULL,

库存金额 MONEY NULL

)

GO

--创建触发器,示例1

/* 创建触发器[T_INSERT_卷烟库存表],这个触发器较简单。

说明:每当[卷烟库存表]发生 INSERT 动作,则引发该触发器。

触发器功能:强制执行业务规则,保证插入的数据中,库存金额 = 库存数量 * 库存单价。

注意: [INSERTED]、[DELETED]为系统表,不可创建、修改、删除,但可以调用。

重要:这两个系统表的结构同插入数据的表的结构。 */

IF EXISTS (SELECT NAME FROM SYSOBJECTS WHERE XTYPE = 'TR' AND NAME = 'T_INSERT_卷烟库存表') DROP TRIGGER T_INSERT_卷烟库存表

GO

CREATE TRIGGER T_INSERT_卷烟库存表

ON 卷烟库存表

FOR INSERT

AS

--提交事务处理

BEGIN TRANSACTION

--强制执行下列语句,保证业务规则

UPDATE 卷烟库存表

SET 库存金额 = 库存数量 * 库存单价

WHERE 卷烟品牌 IN (SELECT 卷烟品牌 from INSERTED)

COMMIT TRANSACTION

GO

/* 针对[卷烟库存表],插入测试数据:

注意,第一条数据(红塔山新势力)中的数据符合业务规则,

第二条数据(红塔山人为峰)中,[库存金额]空,不符合业务规则,

第三条数据(云南映像)中,[库存金额]不等于[库存数量]乘以[库存单价],不符合业务规则。

第四条数据库存数量为0。

请注意在插入数据后,检查[卷烟库存表]中的数据是否库存金额 = 库存数量 * 库存单价。 */ INSERT INTO 卷烟库存表(卷烟品牌,库存数量,库存单价,库存金额)

SELECT '红塔山新势力',100,12,1200 UNION ALL

SELECT '红塔山人为峰',100,22,NULL UNION ALL

SELECT '云南映像',100,60,500 UNION ALL

SELECT '玉溪',0,30,0 GO

--查询数据

SELECT * FROM 卷烟库存表

GO

/*

结果集

RecordId 卷烟品牌库存数量库存单价库存金额

-------- ------------ -------- ------- ---------

1 红塔山新势力 100 12.0000 1200.0000

2 红塔山人为峰 100 22.0000 2200.0000

3 云南映像 100 60.0000 6000.0000

4 玉溪 0 30.0000 .0000

(所影响的行数为 4 行)

*/

--触发器示例2

/* 创建触发器[T_INSERT_卷烟销售表],该触发器较复杂。

说明: 每当[卷烟库存表]发生 INSERT 动作,则引发该触发器。触发器功能:实现业务规则。

业务规则: 如果销售的卷烟品牌不存在库存或者库存为零,则返回错误。

否则则自动减少[卷烟库存表]中对应品牌卷烟的库存数量和库存金额。 */

IF EXISTS (SELECT NAME FROM SYSOBJECTS WHERE XTYPE = 'TR' AND NAME = 'T_INSERT_卷烟销售表') DROP TRIGGER T_INSERT_卷烟销售表

GO

CREATE TRIGGER T_INSERT_卷烟销售表

ON 卷烟销售表

FOR INSERT

AS

BEGIN TRANSACTION

--检查数据的合法性:销售的卷烟是否有库存,或者库存是否大于零

IF NOT EXISTS (

SELECT 库存数量

FROM 卷烟库存表

WHERE 卷烟品牌 IN (SELECT 卷烟品牌 FROM INSERTED) )

BEGIN

--返回错误提示 RAISERROR('错误!该卷烟不存在库存,不能销售。',16,1)

--回滚事务

ROLLBACK

RETURN

END

IF EXISTS ( SELECT 库存数量 FROM 卷烟库存表 WHERE 卷烟品牌 IN (SELECT 卷烟品牌 FROM INSERTED) AND 库存数量 <= 0 ) BEGIN --返回错误提示 RAISERROR('错误!该卷烟库存小于等于0,不能销售。',16,1) --回滚事务 ROLLBACK RETURN END

--对合法的数据进行处理

--强制执行下列语句,保证业务规则

UPDATE 卷烟销售表

SET 销售金额 = 销售数量 * 销售单价

WHERE 卷烟品牌

IN (SELECT 卷烟品牌 FROM INSERTED)

DECLARE @卷烟品牌 VARCHAR(40)

SET @卷烟品牌 = (SELECT 卷烟品牌 FROM INSERTED)

DECLARE @销售数量 MONEY

SET @销售数量 = (SELECT 销售数量 FROM INSERTED)

UPDATE 卷烟库存表

SET 库存数量 = 库存数量 - @销售数量, 库存金额 = (库存数量 - @销售数量)*库存单价

WHERE 卷烟品牌 = @卷烟品牌

COMMIT TRANSACTION

GO

--请大家自行跟踪[卷烟库存表]和[卷烟销售表]的数据变化。

--针对[卷烟销售表],插入第一条测试数据,该数据是正常的。

INSERT INTO 卷烟销售表(卷烟品牌,购货商,销售数量,销售单价,销售金额)

SELECT '红塔山新势力','某购货商',10,12,1200

GO

--针对[卷烟销售表],插入第二条测试数据,该数据销售金额不等于销售单价 * 销售数量。

--触发器将自动更正数据,使销售金额等于销售单价 * 销售数量。

INSERT INTO 卷烟销售表(卷烟品牌,购货商,销售数量,销售单价,销售金额)

SELECT '红塔山人为峰','某购货商',10,22,2000

GO

--针对[卷烟销售表],插入第三条测试数据,该数据中的卷烟品牌在卷烟库存表中找不到对应。

--触发器将报错。

INSERT INTO 卷烟销售表(卷烟品牌,购货商,销售数量,销售单价,销售金额)

SELECT '红河V8','某购货商',10,60,600

GO

/* 消息 50000,级别 16,状态 1,过程 T_INSERT_卷烟销售表,第 15 行错误!

该卷烟不存在库存,不能销售。消息 3609,级别 16,状态 1,第 1 行事务在触发器中结束。批处理已中止。 */

--针对[卷烟销售表],插入第三条测试数据,该数据中的卷烟品牌在卷烟库存表中库存为0。

--触发器将报错。

INSERT INTO 卷烟销售表(卷烟品牌,购货商,销售数量,销售单价,销售金额)

SELECT '玉溪','某购货商',10,30,300

GO

/* 消息 50000,级别 16,状态 1,过程 T_INSERT_卷烟销售表,第 29 行错误!该卷烟库存小于等于0,不能销售。消息 3609,级别 16,状态 1,第 1 行事务在触发器中结束。批处理已中止。 */

--查询数据

SELECT * FROM 卷烟库存表

SELECT * FROM 卷烟销售表

GO

补充:

1、本示例主要通过一个简单的业务规则实现来进行触发器使用的说明,具体的要根据需要灵活处理;

2、关于触发器要理解并运用好 INSERTED ,DELETED 两个系统表;

3、本示例创建的触发器都是 FOR INSERT ,具体的语法可参考:

Trigger语法

CREATE TRIGGER trigger_name

ON { table | view }

[ WITH ENCRYPTION ] --用于加密触发器

{

{ { FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ UPDATE ] } [ WITH APPEND ]

[ NOT FOR REPLICATION ]

AS

[ { IF UPDATE ( column )

[ { AND | OR } UPDATE ( column ) ]

[ ...n ]

| IF ( COLUMNS_UPDATED ( ) { bitwise_operator } updated_bitmask ) { comparison_operator } column_bitmask [ ...n ]

} ]

sql_statement [ ...n ]

}

}

4、关于触发器,还应该注意

(1)、DELETE 触发器不能捕获 TRUNCATE TABLE 语句。

(2)、触发器中不允许以下 Transact-SQL 语句:

ALTER DATABASE CREATE DATABASE DISK INIT

DISK RESIZE DROP DATABASE LOAD DATABASE

LOAD LOG RECONFIGURE RESTORE DATABASE

RESTORE LOG

(3)、触发器最多可以嵌套 32 层。

*/

--修改触发器

--实质上,是将 CREATE TRIGGER ... 修改为 ALTER TRIGGER ...即可。

--删除触发器

DROP TRIGGER xxx

GO

--删除测试环境

DROP TABLE 卷烟库存表

GO

DROP TABLE 卷烟销售表

GO

DROP TRIGGER T_INSERT_卷烟库存表

GO

DROP TRIGGER T_INSERT_卷烟销售表

GO

##################################################################

触发器的基础知识和例子

:create trigger tr_name

on table/view

{for | after | instead of } [update][,][insert][,][delete]

[with encryption]

as {batch | if update (col_name) [{and|or} update (col_name)] }

说明:

1 tr_name :触发器名称

2 on table/view :触发器所作用的表。一个触发器只能作用于一个表

3 for 和after :同义

4 after 与instead of :sql 2000新增项目afrer 与 instead of 的区别

After

在触发事件发生以后才被激活,只可以建立在表上

Instead of

代替了相应的触发事件而被执行,既可以建立在表上也可以建立在视图上

5 insert、update、delete:激活触发器的三种操作,可以同时执行,也可选其一

6 if update (col_name):表明所作的操作对指定列是否有影响,有影响,则激活触发器。此外,因为delete 操作只对行有影响,

所以如果使用delete操作就不能用这条语句了(虽然使用也不出错,但是不能激活触发器,没意义)。

7 触发器执行时用到的两个特殊表:deleted ,inserted

deleted 和inserted 可以说是一种特殊的临时表,是在进行激活触发器时由系统自动生成的,其结构与触发器作用的表结构是一

样的,只是存放的数据有差异。

下面表格说明deleted 与inserted 数据的差异

deleted 与inserted 数据的差异

Inserted

存放进行insert和update 操作后的数据

Deleted

存放进行delete 和update操作前的数据

注意:update 操作相当于先进行delete 再进行insert ,所以在进行update操作时,修改前的数据拷贝一条到deleted 表中,修改后

的数据在存到触发器作用的表的同时,也同时生成一条拷贝到insered表中

集成触发器及其应用电路设计

华中科技大学 电子线路设计、测试与实验》实验报告 实验名称:集成运算放大器的基本应用 院(系):自动化学院 地点:南一楼东306 实验成绩: 指导教师:汪小燕 2014 年6 月7 日

、实验目的 1)了解触发器的逻辑功能及相互转换的方法。 2)掌握集成JK 触发器逻辑功能的测试方法。 3)学习用JK 触发器构成简单时序逻辑电路的方法。 4)熟悉用双踪示波器测量多个波形的方法。 (5)学习用Verliog HDL描述简单时序逻辑电路的方法,以及EDA技术 、实验元器件及条件 双JK 触发器CC4027 2 片; 四2 输入与非门CC4011 2 片; 三3 输入与非门CC4023 1 片; 计算机、MAX+PLUSII 10.2集成开发环境、可编程器件实验板及专用电缆 三、预习要求 (1)复习触发器的基本类型及其逻辑功能。 (2)掌握D触发器和JK触发器的真值表及JK触发器转化成D触发器、T触发器、T 触发器的基本方法。 (3)按硬件电路实验内容(4)(5),分别设计同步3 分频电路和同步模4 可逆计数器电路。 四、硬件电路实验内容 (1)验证JK触发器的逻辑功能。 (2)将JK触发器转换成T触发器和D触发器,并验证其功能。 (3)将两个JK触发器连接起来,即第二个JK触发器的J、K端连接在一起, 接到第一个JK触发器的输出端Q两个JK触发器的时钟端CP接在一起,并输入1kHz 正方波,用示波器分别观察和记录CP Q、Q的波形(注意它们之间的时序关系),理解2分频、4分频的概念。 (4)根据给定的器件,设计一个同步3分频电路,其输出波形如图所示。然后组装电路,并用示波器观察和记录CP Q、Q的波形。 (5)根据给定器件,设计一个可逆的同步模4 计数器,其框图如图所示。图中,M为控制变量,当M=0时,进行递增计数,当M=1时,进行递减计数;Q、 Q为计数器的状态输出,Z为进位或借位信号。然后组装电路,并测试电路的输入、输出

数据库原理课程设计报告报告实验创建存储过程与触发器

存储过程与触发器实验日期和时间: 2016 年 5 月13 日、星 期 五第节 实验室:DJ2-信息管理实验室 班级:学号:姓名: 实验环境: 1.硬件:笔记本电脑 2.软件:SQL Server 2012 实验原理: 存储过程概念:存储过程是事先编好的,存储在数据库中的一组被编译了的T-SQL命令集合,这些命令用来完成对数据库的指定操作。存储过程可以接受用户的输入参数、向客户端返回表格或标量结果和消息、调用数据定义语言(DDL)和数据操作语言(DML)语句,然后返回输入参数。 触发器概念:触发器(trigger)是SQL server 提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作( insert,delete, update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等。 实验任务: 此作业成绩得分根据你完成的任务的难度和数量评分,完成后在实验室给老师演示验收,课后提交电子版报告。如额外完成自拟题目应当事先将所拟题目提交给老师或在报告中明确标注题意。 假定有学校的图书馆管理信息系统,可以用于日常管理书库和同学们的借还书工作。 以下列出参考的库表情况: 根据管理的业务需求来分析,该管理信息系统的数据库应至少包括如下数据表:(打★号的是必须有的表) 1.★图书现有库存表。作用:记录图书的现有库存情况。至少包括:书号、书名、 作者、简介、类别、价格、出版社、出版日期、现有库存数量、最小库存量、库 存总量、库存位置等。 2.★读者信息表。作用:记录读者信息。至少包括:读者编号、证件类型、证件号 码、姓名、性别、职业(可填写教师、学生、教工、其它……)、所属单位、地址、 联系电话等。 3.★借书记录表。作用:记录借书情况,以及是否归还。至少包括:借阅ID(主键, 可设置为自动编号)、书号、读者编号、借阅数量、借阅日期、是否归还、管理员 编号……等。 4.★还书记录表。作用:记录还书情况。至少包括:还书ID(主键,可设置为自动 编号)、书号、读者编号、归还数量、归还日期、是否超期(超过假设45天为超 期)、超期天数、管理员编号……等。(附:为简化操作,续借可视为归还后再借)。 5.管理员信息表。作用:记录负责管理书库和借书还书工作的管理员信息。至少包 括:管理员编号、职工编号(在职工档案表中的职工编号)、用户名、密码、管理

D触发器的设计

目录 第一章绪论0 简介0 集成电路0 版图设计1 软件介绍1 标准单元版图设计1 标准单元版图设计的概念1 标准单元版图设计的历史1 标准单元的版图设计的优点2 标准单元的版图设计的特点2 第二章D触发器的介绍 2 简介2 维持阻塞式边沿D触发器3 电路工作过程3 状态转换图和时序图3 同步D触发器3 电路结构3 逻辑功能4 真单相时钟(TSPC)动态D触发器4 第三章工艺基于TSPC原理的D触发器设计5 电路图的设计5 创建库与视图5 基于TSPC原理的D触发器电路原理图5 创建D触发器版图6 设计步骤6 器件规格7 设计规则的验证及结果8 第四章课程设计总结9 参考文献 9 第一章绪论 简介 集成电路 集成电路(Integrated Circuit,简称IC)是20世纪60年代初期发展起来的一种新型半导体器件。它是经过氧化、光刻、扩散、外延、蒸铝等半导体制造工艺,把构成具有一定功能的电路所需的半导体、电阻、电容等元件及它们之间的连接导线全部集成在一小块硅片上,然后焊接封装在一个管壳内的电子器件。其封装外壳有圆壳式、扁平式或双列直插式等多种形式。是一种微型电子器件或部件,采

用一定的工艺,把一个电路中所需的晶体管、二极管、电阻、电容和电感等元件及布线互连一起,制作在一小块或几小块半导体晶片或介质基片上,然后封装在一个管壳内,成为具有所需电路功能的微型结构;其中所有元件在结构上已组成一个整体,使电子元件向着微小型化、低功耗和高可靠性方面迈进了一大步。集成电路发明者为杰克·基尔比(基于硅的集成电路)和罗伯特·诺伊思(基于锗的集成电路)。当今半导体工业大多数应用的是基于硅的集成电路。 版图设计 版图(Layout)是集成电路设计者将设计并模拟优化后的电路转化成的一系列几何图形,包含了集成电路尺寸大小、各层拓扑定义等有关器件的所有物理信息。集成电路制造厂家根据版图来制造掩膜。版图的设计有特定的规则,这些规则是集成电路制造厂家根据自己的工艺特点而制定的。不同的工艺,有不同的设计规则。设计者只有得到了厂家提供的规则以后,才能开始设计。版图在设计的过程中要进行定期的检查,避免错误的积累而导致难以修改。很多集成电路的设计软件都有设计版图的功能,Cadence 的Virtuoso的版图设计软件帮助设计者在图形方式下绘制版图。 对于复杂的版图设计,一般把版图设计分成若干个子步骤进行: (1)划分为了将处理问题的规模缩小,通常把整个电路划分成若干个模块。(2)版图规划和布局是为了每个模块和整个芯片选择一个好的布图方案。(3)布线完成模块间的互连,并进一步优化布线结果。 (4)压缩是布线完成后的优化处理过程,他试图进一步减小芯片的面积。软件介绍 目前大部分IC 公司采用的是UNIX 系统,使用版本是SunSolaris。版图设计软件通常为Cadence ,它是一个大型的EDA 软件,它几乎可以完成电子设计的方方面面,包括ASIC 设计、FPGA设计和PCB 设计。软件操作界面人性化,使用方便,安全可靠,但价格较昂贵。 标准单元版图设计 标准单元版图设计的概念 标准单元,也叫宏单元。它先将电路设计中可能会遇到的所有基本逻辑单元的版图, 按照最佳设计的一定的外形尺寸要求, 精心绘制好并存入单元库中。实际设计ASIC电路时, 只需从单元库中调出所要的元件版图, 再按照一定的拼接规则拼接, 留出规则而宽度可调的布线通道, 即可顺利地完成整个版图的设计工作了。 基本逻辑单元的逻辑功能不同, 其版图面积也不可能是一样大小的。但这些单元版图的设计必须满足一个约束条件, 这就是在某一个方向上它们的尺寸必须是完全一致的, 比如说它们可以宽窄不一, 但它们的高度却必须是完全相等的,这就是所谓的“等高不等宽”原则。这一原则是标准单元设计法得以实施的根本保证。 标准单元版图设计的历史 随着集成电路产业迅猛的发展,工艺水平不断提高,集成电路特征尺寸循着摩尔定律不断缩小。设计芯片时需要考虑的因素越来越多,芯片设计的复杂程度也越来越高。因而尽可能复用一些已经通过工艺验证的IP核可以提高设计的效率,降低芯片设计的成本。

Win7下Ms_Sql_Server2008安装图解

Win7常用软件安装之Ms Sql Server2008安装图解 注意: 1. 先走控制面板里找到iis安装,步骤如下 点“程序”, 点“打开或关闭Windows功能”

在“Internet information servers 可承载的web核心”上打勾,点确定,ok 2. 安装vs2008sp1,在微软官网可下载,要先安装vs后才可以安装sp1,下载安装 打开

安装vs sp1成功,继续sqlservers2008安装: 安装SQL2008的过程与SQL2005的程序基本一样,只不过在安装的过程中部分选项有所改变,当然如果只熟悉SQL2000安装的同志来说则是一个革命性的变动。 -------------------------------------------------------------- 开始学习数据库,准备安装SQL Server 2008,在微软网站找到了下载地址,3.28G,之所以这么大,是因为该ISO 文件同时包含了IA64、64、x86 三种版本,x86 约占1.5G 多一些,直接下载地址如下: https://www.doczj.com/doc/be12841352.html,/download/B/8/0/B808AF59-7619-4A71-A447-F597DE74A C44/SQLFULL_CHS.iso 如果你的机器上已安装有Visual Studio 2008,在安装之前最好安装Visual Studio 2008 SP1,为什么这么做?偶也不知道,只是SQL Server 2008 发行说明中有此一条,我也没试过不安装SP1 有什么后果。 开始安装,启动,出现了一个CMD 窗口,真不知道微软的开发人员是怎么想的,用命令行程序做载入和系统检查,而且这个CMD 窗口会一直持续到安装结束。 安装程序风格变化很大,相较2005 也有很大变化:

数据库原理实验报告S11-数据库触发器的创建

实验11 数据库触发器的建立 实验日期和时间:2014.11.28 实验室:软件工程室 班级:12计科3 学号:20124122 姓名:张翔 实验环境: 1.硬件:内存4.00GB 处理器 2.50Hz 2.软件:Windows 7旗舰版Microsoft SQL Server 2005 实验原理: 1.理解触发器的概念、和一般存储过程的区别、触发器的优点和使用原则。 2.掌握触发器的创建、执行、查看、修改和删除方法。 一、触发器的概念: 触发器是一种特殊类型的存储过程。一般的存储过程通过存储过程名称被直接调用,而触发器主要是通过当某个事件发生时自动被触发执行的。触发器可以用于SQL Server约束、默认值和规则的完整性检查,还可以完成难以用普通约束实现的复杂功能。 当创建数据库对象或在数据表中插入记录、修改记录或者删除记录时,SQL Server就会自动执行触发器所定义的SQL语句,从而确保对数据的处理必须符合由这些SQL语句所定义的规则。触发器和引起触发器执行的SQL语句被当作一次事务处理,如果这次事务未获得成功,SQL Server会自动返回该事务执行前的状态。 使用触发器有以下优点: ?触发器是自动的执行的,。 ?触发器可以通过数据库中的相关表进行层叠更改,如可以在“学生表”中的学号列上创建一个删除触发器,当删除“学生表”的记录时,自动级联删除“成绩表”中的个匹配行。 ?触发器可以强制限制。这些限制比用CHECK约束所定义的更复杂,与CHECK约束不同的是,触发器可以引用其他表中的列。 触发器可以分为DML触发器和DDL触发器两种 ?DDL触发器用于响应各种数据定义语言(DDL) 事件。这些事件主要对应于Transact-SQL 中的CREATE、ALTER 和DROP 语句,以及执行类似DDL 操作的某些系统存储过程。它们用于执行管理任务,并强制影响数据库的业务规则。 ?DML触发器是在用户使用数据操作语言(DML) 事件编辑数据时发生。DML 事件是针对表或视图的INSERT、UPDATE 或DELETE 语句。DML触发器有助于在表或视图中修改数据时强制业务规则,扩展数据完整性。 DML触发器又分为AFTER触发器和INSTEAD OF触发器两种: ?AFTER触发器:这种类型的触发器将在数据变动(INSERT、UPDA TE和DELETE 操作)完成以后才被触发。可以对变动的数据进行检查,如果发现错误,将拒绝接受或回滚变动的数据。AFTER触发器只能在表上定义。在同一个数据表中可以创建多个AFTER触发器。 ?INSTEAD OF触发器:INSTEAD OF触发器将在数据变动以前被触发,并取代变动数据的操作,而去执行触发器定义的操作。INSTEAD OF触发器可以在表或视图上定义。每个INSERT、UPDATE和DELETE语句最多定义一个INSTEAD OF触发器。 二、创建触发器

集成触发器功能测试及转换

深圳大学实验报告 课程名称:数字电路与逻辑设计 实验项目名称:集成触发器功能测试及转换 学院: 专业、班级: 指导教师: 报告人:学号: 实验报告提交时间: 2014-12-18 教务处制

一、实验目的与要求 1.悉并掌握RS、D、JK、T触发器的构成、工作原理和功能测试方法; 2.掌握不同逻辑功能触发器的相互转换; 3. 掌握三态触发器和锁存器的功能及使用方法; 4. 学会触发器、三态触发器、锁存器的应用。 二、预习要求 (1)复习各种触发器的工作原理、逻辑功能及不同结构形式触发器的触发方式、工作特性; (2)熟悉集成D触发器、JK触发器、三态输出RS触发器、D锁存器的引脚排列及功能; (3)复习各种触发器之间的功能转换方法。 三、实验说明 触发器是具有记忆作用的基本单元,在时序电路中时必不可少的。触发器具有两个基本性质: (1)在一定条件下,触发器可以维持在两种稳定状态上(0或1状态之一保持不变); (2)在一定的外加信号作用下,触发器可以从一种状态转变成另一种稳定状态(0-1或1-0),也就是说,触发器可记忆二进制的0或1,故被用作二进制的存储单元。 触发器可以根据有无时钟脉冲分为两大类:基本触发器和钟控触发器。从逻辑功能,即从触发器次态和现态以及输入信号之间的关系上,可以将钟控触发器分为RS触 发器、D触发器、JK触发器、T触发器等几种类型。当CP有效时, RS触发器的特性方程是:Q n+1=S+RQ n(约束条件:SR=0) D触发器的特性方程是:Q n+1=D JK触发器的特性方程是:Q n+1n n T触发器的特性方程是:Q n+1n n T’触发器的特性方程是:Q n+1=Q n 钟控触发器若按触发器方式,可分为电平触发(高电平触发、低电平触发)、边沿触发(上升沿触发、下降沿触发)和主从触发三种。电平触发:在时钟脉冲CP高(低)电平期间,触发器接受控制输入信号,从而改变其状态。电平触发方式的根本缺陷是空翻问题。边沿触发:仅在时钟CP的下降沿(1-0变化边沿)或上升边沿(0-1变化边沿)触发器才能接受控制输入信号,从而改变状态。主从触发:在时钟脉冲CP高电平期间,主触发器接受控制输入信号,时钟脉冲CP下降沿时刻从触发器可以改变状态——变为主触发器的状态。 四、实验设备 1.双踪示波器; 2.RXB-1B数字电路实验箱; 3.74LS74(双上升沿D触发器)、74LS76(霜下降沿JK触发器)、74LS86(四2输入异或门)。

数据库系统实验报告 触发器

实验4 触发器 1、通过序列和触发器实现借阅表中借阅流水号字段的自动递增。 Create or replace sequence bwnum_id Minvalue 1 Maxvalue 1.0E28 Start with 1 Increment by 1 Cache 20; Create or Replace Trigger tri_bwnum_id Before Insert On borrow For Each Row Begin Select bwnum_id.Nextval Into :new.bwnum From DUAL; End;

2、通过序列和触发器实现预约表中预约流水号字段的自动递增 Create sequence pnum_id Minvalue 1 Maxvalue 1.0E28 Start with 1 Increment by 1 Cache 20; Create or Replace Trigger tri_pnum_id Before Insert On preborrow For Each Row Begin Select pnum_id.Nextval Into :new.pnum From DUAL; End;

3、修改实验三借书功能的存储过程。 该存储过程要求: (1)借书时输入借书证号,图书编号。(即该函数有2个输入参数) (2)借书时,借书日期为系统时间。 *该存储过程主体部分只有insert into语句。 create or replace Procedure p_borrow (P_BNUM IN BORROW.BNUM%TYPE, P_RNUM IN BORROW.RNUM%TYPE) as begin insert into BORROW (BNUM,RNUM,BDATE) values(P_BNUM,P_RNUM,TO_CHAR(SYSDATE(),'YY/MM/DD')); commit; end; 4、建立与借书存储过程相对应的触发器,当借阅表中加入借阅信息时,该触发器触发,自动修改所借图书的是否借出改为‘是’。 Create or Replace Trigger tri_borrow_insert

触发器原理转换及设计

实验五触发器原理,转换及设计 2.5.1 实验目的 (1)掌握基本D,J_K触发器的电路结构及逻辑功能。 (2)掌握各种触发器之间的相互转换及应用。 2.5.2 实验仪器设备与主要器件 试验箱一个,双踪示波器一台;稳压电源一台,函数发生器一台。74LS74双D正沿触发器;74LS75锁存器74LS76双J-K触发器。 2.5.3 实验原理 前面所述的各种集成电路均属组合逻辑电路,该电路某一时刻的输出状态只有该时刻的输入状态决定。 数字系统中的另一类电路称为时序逻辑电路。构成时序逻辑电路的基本器件是触发器。具有两种不同稳定状态的存储二进制信息的基本单元统称为双稳态器件,常芝锁存器或触发器。 2.5.4 实验内容 (1)测试D触发器的逻辑功能。将D触发器74LS74的SD,RD和D分别接逻辑开关,CP接单词没冲,按D触发器的逻辑功能进行测试,记录测试功能,观察CP与Q之间的关系,画出同步波形。 D触发器的特征表: CP D Q n Q n+1 * * * * ↑0 * 0 ↑ 1 * 1 仿真图: 波形图如图示:上图为CP波形,下图为Q波形:

当D=0时,Q=0; 当D=1时,Q=1; 图2-5-5的仿真图:

波形图: 由波形图看出时钟每触发2个周期时,电路输出1个周期信号,即该电路实现了二分频功能。 (2)测试J-K触发器的逻辑功能,测试结果与图2-5-2所示的特征表对照,并按图2-5-8所试点链接,用函数发生器输出1KHZ的0-5v方波信号作为时钟脉冲,记录CP,Q1,Q2的同步波形。 真值表: CPJKQnQn+1 * ** * Qn ↓↓00 00 0 1 0保持 1 ↓↓10 10 0 1 1置1 1 ↓↓01 01 0 1 0置0 0 ↓↓11 11 0 1 1必翻 0 仿真图: 波形图:由上到下依次为CP,Q1,Q2的波形;

安装SQL Server 2008 注意及问题解决

SQL Server 2008 安装过程及部分错误解决 本文分为三部分: 一、SQL Server 2008完全卸载过程 二、SQL Server 2008安装过程 三、我在安装过程中所遇到的问题及解决办法 (1)创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke的错误解决办法(2)找不到方法 “boolean microsoft.sqlserver.configuration.msiextensionmetadata.get_isslipstreamorpatch()" (3)“试图执行未授予权限” (4)出现以下错误:对路径 “C:\Windows\system32\perf-ReportServer$MSSQLSERVER3-rsctr.dll”的访问被拒绝。(5)“重启电脑失败” 一、SQL Server 2008完全卸载 1、程序与功能中,右键SQL Server 2008删除 2、进入删除SQL Server 2008,一路下一步下去

3、在程序和功能中,还有SQL Server 2008相关 如果前面卸载比较顺利,相关的组件不多,继续删除SQL Server 2008 Native Client等红框中的组件 4、如果前面没有卸载干净,下载Windows Installer Clean UP选择SQL Server 2008相关移除

再使用SRVINSTW移除SQL Server 2008相关服务。我后来卸载的时候,在程序和功能卸的就很干净,用不着这两个小工具了。 5、清理注册表:开始-运行-regedit.exe 在注册表里找到对应的文件夹,删除 (1)HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ Microsoft SQL Server (2)HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server Native Client 10.0 (3)HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer (4)HKEY_CURRENT_USER\Software\Microsoft\Microsoft SQL Server 下面是我在网上搜到还需要删除的文件夹,但是我一般就删除上面的文件夹就好。 ④HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSSQLServer ⑤HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SQLSERVER AGENT ⑥HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services \MSSQLServerADHelper 6、找到C盘Program Files里Microsoft SQL Server,Microsoft SQL Server Compact Edition文件夹,删除。如果当初装在别的盘就去相对应的位置找,但C盘Microsoft SQL Server文件夹还要删。删除不顺利用360强力删除。 7、重启计算机

触发器之间的功能转换

触发器之间的功能转换(考过)(填空)一、转换的目的: 触发器的逻辑功能和电路结构无对应关系。同一功能的触发器可用不同结构实现;同一结构触发器可做成不同的逻辑功能。 二、触发器之间转换的方法: 1、写特征方程 写出已有触发器和待求触发器的特征方程。 2、变换特征方程 变换待求触发器的特征方程,使之形式与已有触发器的特征方程一致。 3、比较系数 根据方程式,如果变量相同、系数相等则方程一定相等的原则,比较已有和待求触发器的特征方程,求出转换逻辑。4、画逻辑图 根据转换逻辑画出逻辑图。 注意: (1)现有触发器的特征方程不能变换。 (2)关键是变换待求触发器的特性方程; (3)难点是解决已有触发器的输入端的接法.

三、注意: 1、触发器之间的转换方法也可适合任何两种逻辑功能触发器之间的相互转换。 2、掌握好触发器之间的转换方法,可使逻辑电路不受触发器类型的控制,能更好的应用自如的设计出更简单的逻辑功能电路。 四、举例 1.D 触发器转换成JK 触发器 (1) 写特征方程 D 触发器的特征方程: D Q n =+1 JK 触发器的特征方程:n n 1n Q K Q J Q +=+ (2) 变换特征方程 变换JK 触发器的特征方程,使之形式与已有D 触发器的特征方程一致。 D Q K Q J Q =+=+n n 1n (3)比较系数,求出转换逻辑 将两个触发器的特征方程进行比较,可见,使D 触发器 的输入为n n n n Q K Q J Q K Q J D =+=,则D 触发器实现JK 触发 器的功能。 (4)画逻辑图 将D 触发器的输入信号用转换逻辑连接实现JK 触发器的功

基于TSPC原理的触发器工艺版图设计

苏州市职业大学 课程设计说明书 名称基于TSPC原理的D触发器0.35μm工艺版图设计2011年12月19日至2011年12月23日共1 周 院系电子信息工程系 班级 姓名

目录 第1章:绪论 (3) 1.1 版图设计的基础知识 (3) 1.1.1 版图设计流程 (3) 1.1.2 版图设计步骤 (3) 1.1.3 版图设计规则 (4) 1.1.4 版图设计验证 (5) 1.2 标准单元版图的设计 (6) 1.2.1 标准单元库的定义 (6) 1.2.2 标准单元库用途 (6) 1.2.3 标准单元设计方法 (6) 第2章:D触发器的介绍 (7) 2.1 D触发器 (7) 2.2 维持阻塞D触发器 (7) 2.2.1 维持阻塞D触发器的电路结构 (7) 2.2.2 维持阻塞D触发器的工作原理 (8) 2.2.3 维持阻塞D触发器的功能描述 (9) 2.3 同步D触发器 (9) 2.3.1 同步D触发器的电路结构 (9) 2.3.2 同步D触发器的工作原理 (10) 2.3.3 逻辑功能表示方法 (10) 2.4 基于TSPC原理的D触发器 (11) 2.4.1 构成原理 (11) 2.4.2 仿真波形 (11) 第3章:0.35um工艺基于TSPC原理的D触发器设计 (12) 3.1 动态D触发器电路图的设计步骤及电路图 (12) 3.2 动态D触发器版图的设计步骤及电路图 (13) 3.3 DRC、LVS验证 (14) 第4章:心得体会 (15) 参考文献 (16)

第1章:绪论 1.1 版图设计的基础知识 1.1.1 版图设计流程 版图设计是创建工程制图(网表)的精确的物理描述的过程,即定义各工艺层图形的形状、尺寸以及不同工艺层相对位置的过程。其中版图设计的流程如图1.1.1所示。 图1.1.1 1.1.2 版图设计步骤 作为后端设计者,是集成电路从设计走向制造的桥梁,设计步骤包括以下几部分: 1、布局:安排各个晶体管、基本单元和复杂单元在芯片上的位置。 2、布线:设计走线、门间、单元间的互连。 3、尺寸确定:确定晶体管尺寸(W、L)、互连尺寸(连线宽度)以及晶体管与互连之间的相对尺寸等。 4、版图编辑(Layout Editor):规定各个工艺层上图形的形状、尺寸和位置。 5、布局布线(Place and route):给出版图的整体规划和各图形间的连接。 6、版图检查(Layout Check):设计规则检查(DRC,Design Rule Check)、电器规则检查

数据库触发器机制的设计与实现

数据库触发器机制的设计与实现 摘要:根据当前数据库应用需求和技术发展现状,研究了数据库管理系统管理系统触发器机制实现的关键技术问题,并以GKD-BaseGKD-Base为原型,在已有的GKD-Base PL/SQL 引擎基础上实现了数据库的触发器功能。关键词: PL/SQL引擎 Rete网络双Hash结构触发器 数据库管理系统作为信息系统的核心部件,在信息化时代所充当的角色是其它任何软件所不能替代的。当前数据库应用的一个普遍要求是数据库管理系统能够在一些数据库相关事件发生时触发预先定义的操作,实现信息管理的自动化,因此引进了触发器机制。触发器可以增强引用完整性,加强复杂业务的规则,或者监控数据库的变动,并执行一定的数据操作。触发器机制实现主要涉及触发事件的检测以及触发条件的判决等关键技术问题,以及对触发器的编译存储和调用执行等具体操作。本文以国产数据库管理系统GKD-Base为原型,在兼容Oracle 规范的PL/SQL引擎基础上,提出一套解决方案,对触发器的关键技术问题进行了探讨,并设计实现了数据库的触发器机制,扩展了数据库管理系统GKD-Base的功能。1 GKD-Base PL/SQL 引擎GKD-BASE数据库是一个具有自主知识产权的数据库管理系统,具有兼容SQL89标准的SQL引擎,能够为用户提供一个统一、有效的数据库访问接口(XAPI),实现对数据库的各种操作。为了融合SQL语言强大的集合数据处理能力处理能力和第三代语言(3GL)灵活的过程处理能力,在GKD-Base上已初步实现了兼容Oarcle PL/SQL V.23的PL/SQL引擎。GKD-Base PL/SQL引擎包括编译器、解释器和异常处理三个模块。在编译阶段,根据PL/SQL语言兼有过程式语句和SQL语句的特点,采取分而治之策略,把过程语句和SQL语句分开处理。对于SQL语句,编译器首先建立SQL语句结点,进行相应的变量绑定和语法检查;检查无误后产生语法树形式的中间代码。对于过程语句,编译器将对语句成分进行语法分析,对声明的变量和数据类型建立相应的符号表,最终产生语法树形式的中间代码。解释器的作用是对编译器生成的中间代码进行解释执行。解释器与编译器对应,具有相对独立的SQL语句解释模块和过程语句解释模块。另外,解释器还包括执行状态堆栈的管理、与GKD-Base SQL引擎的调用接口。异常处理模块主要实现程序运行时的错误检查和报告,并支持用户自定义异常和预定义异常的检查和处理。GKD-Base PL/SQL引擎可以实现对过程式语句、SQL语句与游标、存储子程序及包的编译和解释执行。2 触发器实现的关键问题触发器定义了当某些数据库相关事件发生时数据库应采取的动作。触发器可增强引用完整性,加强复杂业务的规则,或者监控数据库的变动,其实现主要涉及到触发事件的检测以及触发条件的判决等关键技术问题。2.1 触发器的事件检测机制触发器事件检测机制包括对事件的检测和存储,是实现触发器的关键。触发器检测的事件类型比较简单,基本事件主要包括对数据的插入、删除以及更新等。GKD-Base的触发器在对事件检测时,直接在相关事件发生的前后调用检测函数截获并分析事件消息,以确定是否对触发器点火。触发器事件检测机制实现的关键在于对触发事件的存储。触发事件具有时间顺序,因此存储时也必须按照严格的时间顺序进行存储。综合比较各个商用和实验数据库系统的事件表存储机制,选择了Starburst的双的双HASH链表存储机制,如图1。 这里,变迁表分为两种类型:NEW和OLD,分别对应于触发器行级别操作中的NEW值和OLD值。变迁表中存储了事件类型、当前数据表以及事件作用的元组。系统可以通过这个驻留内存的双HASH链表实现数据库变迁的快速定位和跟踪处理。2.2 触发器的条件判决机制触发器的条件判决机制是触发器的核心,根据SQL99标准的定义,可以将触发器分为前触发、约束判定和后触发三种类型。这三种类型触发器的判决顺序策略如图2。 触发器的条件评估是影响触发器机制的最关键因素。在数据库环境中,大多数数据修改行为只能影响数据库的一小部分内容,因此没必要每次都从头开始评估触发器规则条件,Rete

D触发器的设计

目录 第一章绪论 (1) 1.1 简介 (1) 1.1.1 集成电路 (1) 1.1.2 版图设计 (1) 1.2 软件介绍 (2) 1.3 标准单元版图设计 (2) 1.3.1 标准单元版图设计的概念 (2) 1.3.2 标准单元版图设计的历史 (2) 1.3.3 标准单元的版图设计的优点 (3) 1.3.4 标准单元的版图设计的特点 (3) 第二章 D触发器的介绍 (4) 2.1 简介 (4) 2.2 维持阻塞式边沿D触发器 (4) 2.2.1 电路工作过程 (4) 2.2.2 状态转换图和时序图 (5) 2.3 同步D触发器 (5) 2.3.1 电路结构 (5) AHA12GAGGAGAGGAFFFFAFAF

2.3.2 逻辑功能 (6) 2.4 真单相时钟(TSPC)动态D触发器 (6) 第三章 0.35um工艺基于TSPC原理的D触发器设计 (8) 3.1 电路图的设计 (8) 3.1.1 创建库与视图 (8) 3.1.2 基于TSPC原理的D触发器电路原理图 (8) 3.2 创建 D触发器版图 (9) 3.2.1 设计步骤 (9) 3.2.2 器件规格 (11) 3.3 设计规则的验证及结果 (11) 第四章课程设计总结 (13) 参考文献 (14) AHA12GAGGAGAGGAFFFFAFAF

第一章绪论 1.1 简介 1.1.1 集成电路 集成电路(Integrated Circuit,简称IC)是20世纪60年代初期发展起来的一种新型半导体器件。它是经过氧化、光刻、扩散、外延、蒸铝等半导体制造工艺,把构成具有一定功能的电路所需的半导体、电阻、电容等元件及它们之间的连接导线全部集成在一小块硅片上,然后焊接封装在一个管壳内的电子器件。其封装外壳有圆壳式、扁平式或双列直插式等多种形式。是一种微型电子器件或部件,采用一定的工艺,把一个电路中所需的晶体管、二极管、电阻、电容和电感等元件及布线互连一起,制作在一小块或几小块半导体晶片或介质基片上,然后封装在一个管壳内,成为具有所需电路功能的微型结构;其中所有元件在结构上已组成一个整体,使电子元件向着微小型化、低功耗和高可靠性方面迈进了一大步。集成电路发明者为杰克·基尔比(基于硅的集成电路)和罗伯特·诺伊思(基于锗的集成电路)。当今 AHA12GAGGAGAGGAFFFFAFAF

Microsoft SQL Server 2008安装图解要点

Microsoft SQL Server 2008 安装图解 简介 版本:Microsoft SQL Server 2008 R2官方中文版 下载地址:https://www.doczj.com/doc/be12841352.html,/html/4610.html 软件大小:1.47G 操作系统:Windows 7 安装日志 下载完成,双击运行 图 1 安装文件 选择文件解压地址,单击OK 图 2 解压目录 解压中 图 3 解压中

解压完成 图 4 解压完成 打开解压的文件夹,找到setup.exe,双击运行 图 5 setup.exe 进入SQL Server安装中心后跳过“计划”内容,直接选择界面左侧列表中的“安装”,如图6所示,进入安装列表选择。

图 6 SQL Server安装中心-计划 如图7所示,进入SQL Server安装中心-安装界面后,右侧的列表显示了不同的安装选项。本文以全新安装为例说明整个安装过程,因此这里选择第一个安装选项“全新SQL Server独立安装或现有安装添加功能”。 图7 SQL Server安装中心-安装

之后进入“安装程序支持规则”安装界面,安装程序将自动检测安装环境基本支持情况,需要保证通过所有条件后才能进行下面的安装,如图8所示。当完成所有检测后,点击“确定”进行下面的安装。 图8 安装程序支持规则 接下来是SQL Server2008版本选择和密钥填写,本文以“Enterprise Evaluat ion”为例介绍安装过程,密钥可以向Microsoft官方购买,如图9所示。

图9 产品密钥 在许可条款界面中,需要接受Microsoft软件许可条款才能安装SQL Server 2008,如图10所示。

数据库原理游标及触发器实验

《数据库原理》实验报告要求 报告的主要内容 一、实验目的 根据各实验项目的实验目的撰写,具体在附件中给出。 二、实验环境 操作系统:Windows XP,数据库管理系统(DBMS):SQL Server2008 三、实验要求 根据各实验项目要求撰写,具体在附件中给出。 四、实验内容及完成情况 自己所完成的内容,进行了哪些操作、编写了哪些程序及执行后的结果,包括一些错误结果及解决办法等。 五、实验体会 具体要求 1、 本实验属综合性实验,要使用学校统一的报告纸,附加纸张要 挟在报告纸内并左侧装订; 2、 报告纸的封面要填写完整,项目要与实验日历中的项目完全一 致,否则将返回重写; 3、 报告第四项“实验内容及完成情况”中,只允许对操作结果和 程序运行结果进行打印,其余内容必须用钢笔或水性笔书写, 报告要整洁; 4、 严禁出现雷同报告,如果出现雷同,雷同报告的所有学生本次实 验将作不及格或最低分处理。如果出现不及格实验项目将取消考 试资格。

实验目的及要求 实验三、存储过程及游标 实验目的: 综合运用程序设计和数据结构,使用游标完成具有较完整功能的存储过程。 实验要求: 根据所给的excel表格,完成实验内容。 说明:“招生表”中部分属性保存的是代码值,请按所给代码表完成如下要求。 1.使用SQL语句创建数据库,并在数据库中完成表的创建。(报告中要分析各个表的主键和外键是什么) 创建数据库studentManage

2.写一个存储过程,功能是查询所有招生信息。使用游标完成逐行输出,每行要有行号。(在查询结果中,要求各类代码要替换成具体的文字信息,例如:政治面貌不要显示“01”,而要显示“中共党员”。)

数据库建立触发器

江西理工大学应用科学学院 数据库技术及应用实验报告 实验名称SQL数据库存储过程及触发器的创建 日期2012、4、2 专业班级电子商务091班 实验人阳东学号40号 实验要求: 1、用T-SQL语言创建名为查看课程成绩的存储过程: 输入任一课程名,则显示课程、编号、名称、教师编号、学生的学号以及 对应课程成绩。 2、用T-SQL语言创建触发器: 当对表插入数据时,性别只为男or女,否则弹出错误提示框。 实验目的: 学会使用T-SQL语言创建数据库存储过程以及触发器。 实验内容及步骤: 一、创建存储过程: 1、启动SQL Server企业管理器。 2、在“控制台根目录”窗口左边窗格中,展开“SQL Server组”→“数据库” 结点,然后建立“英才大学信息管理系统”数据库。 3、在数据库中建立相应的表“课程名、成绩表”,并在两个表中键入相应的 内容。 4、选择“朱虹美”数据库,然后点击工具中的“SQL查询分析器”菜单命令 ,进入“查询分析器”窗口。 5、在“查询分析器”窗口,输入并执行如下命令: CREATE PROC 查看课程成绩@课程名char(12) AS SELECT 课程.课程编号,课程.课程名称,课程.教师编号,成绩.学号,成绩.成绩 FROM 课程INNER JOIN 成绩ON 课程.课程编号=成绩.课程编号 WHERE 课程.课程名称=@课程名 结果如图所示: 然后再次进入“查询分析器”窗口,执行存储过程,有三种方法: 1)EXEC 查看课程成绩@课程名='软件工程' 2)EXEC 查看课程成绩数据库原理

3) Declare @X char(12) EXEC @X=查看课程成绩'程序设计' 二、创建触发器。 1、启动SQL Server企业管理器。 2、在“控制台根目录”窗口左边窗格中,展开“SQL Server组”→“数据库” 结点,点击“英才大学信息管理系统”数据库。 3、在数据库中建立相应的表“学生”,并在表中键入相应的内容。 4、选择“英才大学信息管理系统”数据库,然后点击工具中的“SQL查询分析器” 菜单命令进入“查询分析器”窗口。 5、在“查询分析器”窗口,输入并执行如下命令: CREATE TRIGGER Trigger_学生_性别ON 学生 FOR INSERT AS IF EXISTS(SELECT*FROM 学生WHERE 性别NOT IN('男','女')) BEGIN RAISERROR('请输入合法的姓名!',16,1) ROLLBACK TRANSACTION END 建立触发器完毕。 然后在表中添加不符合规格的数据,则显示错误提示框:

cad d触发器设计

摘要 本设计是基于ZeniEDA D触发器的设计。本文分四个部分,其中详细叙述了D 触发器的电路设计和版图设计两个部分。第一部分是绪论,主要有集成电路CAD的发展现状、Zeni软件的说明以及集成电路设计流程等内容。第二部分是D触发器的电路设计,首先对Spice仿真进行了说明,然后就是D触发器的总体方案和D触发器的功能描述,还对D触发器的各个功能模块的设计与仿真作了详细说明。第三部分是D触发器的版图设计,首先对版图设计的逻辑划分、布线布局理论等进行了简明的阐述,然后对D触发器的各个单元模块的版图设计进行了说明,并给出了每个功能模块的版图以及D触发器的总版图,最后给出了D触发器的DRC验证和LVS 验证以及导出GDS-Ⅱ文档。本设计几乎涉及了集成电路CAD设计的各个流程,并作了详细的描述与说明。 关键词:D触发器;反相器;与非门;传输门;版图

目录 摘要.................................................................................................................. I 1绪论 . (1) 1.1集成电路CAD的发展现状 (5) 1.2Zeni软件说明 (6) 1.3集成电路设计流程 (3) 2电路设计 (5) 2.1Spice仿真说明 (5) 2.2总体方案及功能描述 (6) 2.3单元模块电路设计及仿真 (8) 3版图设计 (14) 3.1版图设计基础 (14) 3.2单元模块版图设计 (15) 3.3D触发器版图设计 (17) 3.4版图验证 ....................................................... 1错误!未定义书签。 3.5导出GDS-Ⅱ文档 (20) 4总结与体会 (21) 参考文献:................................................................... 错误!未定义书签。致谢 . (23)

数据库触发器的分类和区别

Oracle触发器的分类和使用 摘要:在Oracle中,触发器是一种特殊的存储过程,它在发生某种数据库事件时由Oracle 系统自动触发。触发器通常用于加强数据的完整性约束和业务规则等,对于表来说,触发器可以实现比CHECK约束更为复杂的约束。本文介绍了Oracle触发器的概念,功能,优缺点,组成等方面。详细解读了Oracle触发器在各方面的应用并配合相关实例。 关键字:Oracle、触发器、介绍、应用 一、触发器的介绍 1.1 触发器的概念 在Oracle中,触发器是一种特殊的存储过程,它在发生某种数据库事件时由Oracle系统自动触发发器,通常用于加强数据的完整性约束和业务规则等。 触发器与存储过程的区别在于:存储过程是由用户或应用程序显式调用的,而触发器是不能被直接调用的,而是由一个事件来启动运行。即触发器是当某个时间发生时自动地隐式运行。 1.2 触发器的功能 ●允许/限制对表的修改 ●自动生成派生列,比如自增字段 ●强制数据一致性 ●提供审计和日志记录 ●防止无效的事务处理 ●启用复杂的业务逻辑 1.3 触发器的优缺点 优点:触发器可通过数据库中的相关表实现级联更改,不过,通过级联引用完整性约束可以更有效地执行这些更改。触发器可以强制比用CHECK 约束定义的约束更为复杂的约束。与CHECK 约束不同,触发器可以引用其它表中的列。例如,触发器可以使用另一个表中的SELECT 比较插入或更新的数据,以及执行其它操作,如修改数据或显示用户定义错误信息。触发器也可以评估数据修改前后的表状态,并根据其差异采取对策。一个表中的多个同类触发器(INSERT、UPDA TE 或DELETE)允许采取多个不同的对策以响应同一个修改语句。 缺点:触发器功能强大,轻松可靠地实现许多复杂的功能,但是它也具有一些缺点那就是由于我们的滥用会造成数据库及应用程序的维护困难。在数据库操作中,我们可以通过关系、触发器、存储过程、应用程序等来实现数据操作。同时规则、约束、缺省值也是保证数据完整性的重要保障。如果我们对触发器过分的依赖,势必影响数据库的结构,同时增加了维护的复杂程序。 1.4 触发器的组成

相关主题
文本预览
相关文档 最新文档