信件结束语(精选5篇)
信件结束语范文第1篇
关键词:计算机绘图程序给排水设计
目前,几乎所有的设计院都配备了给排水设计软件包,但是设计人员在使用软件过程中,常常会遇到诸多不便之处。如建筑外框不认,初始化数据输入不直观,数据输入不当时出错,修改不便等等。设计人员或是用鼠标,或是用AutoCAD“硬画”。这种方式出图效率很低,而且图面质量难以保证。
1程序设计目的
针对上述软件包使用不便或适应性不强等问题,笔者几年来在这一方面做了一些探索,用AutoLisp成功地开发一套比较完善且易学实用的系列化小程序。此程序的特点在于遵循传统绘图习惯,进行平面化设计的思路,按照传统绘图方式,灵活运用各个程序段,加强人机对话,力求机器的自动生成。
2主要程序介绍
本程序组中包含程序段40余条,分为工具类与专业类,其中主要程序段有:
TK•LSP&TK•DCL:图库管理程序。
XX•LSP:由平面图生成系统图程序(原图)。
GG•LSP:标注给水管道管径并进行分层处理程序。
PG.LSP:标注排水管道管径并进行分层处理程序。
GB•LSP:对给水管管径及管段长度计算统计程序。
PB•LSP:对排水管管径及管段长度计算统计程序。
ZT•LSP:对总体排水管道管径及管段长度进行计算并标注程序。
GDPM•LSP:自动生成排水管道剖面并同时标注程序。
GCL•LSP:对给排水工程量对照定额进行工程概算程序。
DE•LSP:调出事先输入的定额程序。
LB•LSP:对给排水管管径及管段长度并进行列表处理程序。
3使用方法
本程序是依托建筑或其他专业提供的平面图,按传统手工制图的方法与步骤进行平面设计。笔者把给排水的图元分为直线,多义线,图块(带属性),文字等等。
设计人员在绘制给水平面图时。用PLINE线绘制水平管,绘制给水立管时插入一个带有立管高度属性的图块。排水平面图的绘制方法与给水相同。绘制其它给排水附件如卫生设备、阀门、消火栓、水嘴等附件均采用不同图块表达,这种作图方式直观、简捷、明快。在各层图面线条完成后,应用GG•LSP、PG•LSP程序标注其管径。在标注管径的时候,程序对此进行分层分类管理。配合CAD将各层平面设计完成并确认无误后,把各层另存为相应各层系统图图名,此时设计人员可将用图块表达的系统图图元如:水嘴、存水弯、消火栓、甚至标准化的系统图元等插入图中,并将各管段安装高度给出。确认无误后,用XX•LSP程序将此图进行图形处理。使之成为具有透视效果的系统透视图,再用JL•LSP程序将作平面图时输入的立管高度属性取出,并绘制成给水立管,将此图适当处理后,最后把各层系统图组合起来便成为给水透视图。
绘制排水系统图时,先用LG•LSP程序生成排水立管,在各排水点插入各种存水弯、排水栓等,再用XX•LSP程序将平面图进行图形处理,使之成为具有透视效果的系统透视图,最后把各层支管与立管联接好,排水系统图就形成了。
最后,再用CSD命令对图面进行美化,由于采用程序绘制的图元是由PLINE,BLOCK等组成,且是分层,分类放置的。据此,可用LB•LSP程序中有关命令,取出图中的类、层、块、点、线等特性,进行归类、计算、列表并生成一个主要材料表,自动列于图中。如果调出事先输入的定额,给出工程特征参数,就可用KS•LSP程序中有关命令,计算出一个概算表。材料表、概算表都能自动生成。至于给水总图的绘制,给水图可类似绘出。排水总图绘制水比较复杂。ZT•LSP程序中包含了各管段的计算、绘制及标注等工具,并可自动生成管道剖面。其程序可节省绘图时间50%。本系列程序如果加载于其他成功软件包之上,功效更加明显。
4程序举例
限于篇幅,这里仅列其中之一以供同行们参考。
;本程序对PLKINE,BLOCK,TEXT等图元分别进
;行旋转与平移处理,达到平面图形的透视效
;果。程序对LINE,DIM,SOLID等图元进行删
;除。
(defunc:xx(/xxyk1k2k3stn)
(setqss(ssget)ang(/pi4);选择需要进行旋转与平移处理的对象(实体)
(setqy(cadr(nth1(entsel″n选择水平线″))))
;Y用户选择的旋转基准线
(setqe(ssnamess0)n0)
(setqk1(list″a″)k2(list″b″)k3(list″c″))
;初始化k1k2k3放置实
;体名的列表,并设“a”“b”“c”为结束标记
(whilee
;while语句开始,对所选项实体进行旋分类处理
(setqst(cdr(assoc0(entgete))))
(if(=st″LWPOLYLINE″)(setqk2(consek2))
;if语句开始
(if(or(=st″CILCLE″)(=ST″insert")(=st"TEXT);if语句开始
(setqk1(consek1))
(entdele)
);if语句结束
);if语句结束
(setqn(=1n))
(setqe(ssnamessn))
);while语句结果
(setqn0)
(if(/=(ntnk2)″b″)(setq1(entget(nthnk2))(setq1nil))
(while1;while语句开始
;对所选项的PLINE线实体进行旋转处理,角度45度
(if(/=(cdr(assoc0(entget(nthnk2))))"ABC")
;if语句开始对复合弧线不处理
(progn(setqz(cdr(assoc381)))
p1(assoc101)la(cdr(assoc81))
m(-(length1)(length(memberp11)))
p2(cdr(nth(+m4)1))p1(cdrp1)
;p1起点坐标,p2终点坐标
(setqx1(carp1)x2(carp2)y1(cadrp1)
y2(cadrp2)dy1(-y1y)dy2(-y2y))
(setqp3(list(+x1(*(cosang)dy1))(+y1z(*(-(sinang)1)dy1)))
p4(list(+x2(*(cosang)dy2))(=y2z(*(-(sinang)1)dy2))))
(setq1(subst(cons380.0)(assoc381)1)
;修改高度信息
1(subst(cons10p3)(nthm1)1)
;修改起点坐标信息
1(subst(cons10p4)(mthm4)1)1))
;修改终点坐标信息
(entmod1)
));if语句结束
(setqn(=1n))
(if(/=(nthnk2)″b″)(setq1(entget(nthnk2)))
(setq1nil))
);while语句结束
(setqn0)
(if(/=(ntnk1)″a″)(setq1(entget(nthnk1)))
(setq1nil))
while1;while语句开始,对所选的
;TEXT、BLOCK、ATTRIBUTE等实
;体进行旋转及平移处理,角度
;45度
if(=nil(assoc111))(setqp1(cdr(assoc101)))
;if语句开始
(if(=0.0(nth1(assoc111)))(setqp1(cdr
(assoc101)));if语句开始
(setqp1(cdr(assoc111)))
);if语句结束,本语句对文字对齐方式的判断,并提取高度和插入点信息
);if语句结束,本语句对是否为文字的判断,并提取高度和插入点信息
(setqx1(carp1)y1(cadrp1)z(nth2p1))
(setqdy1(-y1y)
(setqp3(list(=x1(*(cosang)dy1))(=y1z(*(-(sinang)1))))
(if(=nil(assoc111));if语句开始
(progn(setq1(subst(cons10p3)(assoc101)1))
(entmod1))
(if(=0.0(nth1(assoc111)));if语句开始
(progn(setq1(subst(cons10p3)(assoc101)1))
(entmod1)
);endofPROGN
(progn(setq1(subst(cons11p3)(assoc111)1))
(entmod1)
);endofPROGN
);if语名结束,本语句对文字对齐方式的判断,并修改高度和插入点信息
);if语名结束,本语句对是否为文字的判断,并修改高度和插入点信息
(setqname(cdr(assoc01)))
(if(=(cdr(assoc661))1);if语句开始,是否为带属性的块
(progn(setq11(entget(entnext(cdr(assoc-11))))
(setqp1(cdr(assoc1111)))
(setqx1(carp1)y1(cadrp1)
(setqp3(list(+x1(*(cosang)dy1))(+y1z(*(-(sinang)1)dy1))))
(setq11(subst(cons11p3)(assoc1111)11))
(entmod11)
));if语句结束,修改中属性的插入点信息
(setqang(/(cdr(assoc501))2))
(setq1(subst(cons50ang)(assoc501)1))
(entmod1);通过修改块的插入角度信息进行旋转
(setqn(+1n)
(if(/=(nthnk1)″a″)(setq1(entget(nthnk1)))(setq1nil))
);while语句结束
(setqn0)
(while(<n(sslengthss));while语句开始,对名为“ZXR-2035”的块
;进行高度平移处理
(setqstl(entget(ssnamessn)))
(setqpt1(cdr(assoc10stl)))
(if(/=″ZXR-2035″(cdr(assoc2(entget(ssnamessn)))));if语句开始
(progn
(setqpt1(list(carpt1)(cadrpot1)0))
(setqstl(subst(cons10pt1)(assoc10st1(st1))
(entmodst1)));if语句结束
(setqn(+1n))
);while语句结束
(redraw)
);defun结束
信件结束语范文第2篇
关键词:英语;社交信函;写作技巧
中图分类号:G712 文献标志码:A 文章编号:1674-9324(2023)35-0276-02
社交信函是人们在生活和工作中经常使用的沟通方式,它所包含的范围非常广泛,有祝贺信、邀请信、感谢信、投诉信和道歉信等等。从形式上看,社交信函可分为正式信函和非正式信函两种。通常在正式场合使用的都是正式信函,它具有结构完整、内容精确等特点。而在非正式场合进行书信往来时,通常使用的都是非正式信函,它的格式可根据具体情况进行适当省略,并具有重点突出、简洁明了的特点。下面笔者就从信函的构成、格式、内容等方面对上述几种信函进行介绍。
一、信函的构成
传统信函包含以下部分,即信封、信头、信内地址、收信人称呼、信函正文、结束敬语、署名和附件。
二、信函的格式
社交信函的格式跟信件的格式是一致的。
1.信封(Envelope)。通常情况下,书信人要在信封的正面写上写信人和收信人的姓名及地址。写信人的姓名和地址要写在信封的左上角;收信人的姓名和地址要写在信封的中下方。需要注意的是地址都要由小到大来写。
2.信头(Heading)。信头通常写在信纸的右上角,内容包括写信人的地址及写信日期。在非正式信件中可将地址省略,写出日期即可。日期要用“月日,年”或“日月,年”的格式来写,具体的“日”要用序数词来表示,如June 1st,2023或是1st June,2023。
3.信内地址(Inside Address)。信内地址要写在信纸的左端,包括收信人姓名、职务和地址,非正式信件中此部分可省略。
4.收信人称呼(Salutation)。收信人称呼要写在信内地址下一行的行首,首字母要大写并与地址的首字母对齐。需要注意的是,称呼后面一定要有逗号。由于写信人与收信人的关系不同,所以写信时要用相应的称呼来表示,如对不认识的男士可用:Dear sir(s),Gentlemen;对不认识的女士可用:Dear madam(s),Ladies;对性别未知者可用:Dear sir(s)or madam(s),Ladies or Gentlemen。
称呼认识的人可用Dear Mr./Mrs./Miss+姓名来表示,如Dear Mr.Smith;称呼朋友或特别亲近的人直接用dear加上名字即可,如Dear Helen;称呼上级领导要用敬称,有时可加上对方的头衔表示尊重,如Respectable Mr.Johnson,Dear Professor Smith。
5.正文(Body)。正文通常是在收件人称呼下空1~2行开始写的。如果信函是齐列式的,则每段的开头不需要空字符。如果信函是缩行式的,则每段开头需要缩进4个字符。正文的内容要以简明扼要、重点突出、层次分明为原则,此外还要注意措辞的准确性,注意避免拼写、语法等错误,尽量保持页面整洁,避免出现涂抹或添减内容的现象。对于大部分社交信函来说,正文部分通常都是用三段式来表示,下面笔者就根据不同的社交信函总结出一些常用的套用句型和表达法。(1)祝贺信(Letter of Congratulation)。第一段:表明自己已经得知对方的喜讯。第二段:表达自己的喜悦之情。第三段:给对方真心的祝福。写作模板:I am so delighted to hear the good news that 喜讯.As a/an写信人身份,I am proud of your success.Please accept my heartiest congratulations and best wishes.(2)邀请信(Letter of Invitation)。第一段:发出邀请。第二段:活动的具体时间、地点和内容。第三段:要求对方给予回复。写作模版:You are cordially invited to participate in活动.The party/meeting/get-together will be held at时间点on星期in月/年on地点.We look forward to hearing from you soon.(3)感谢信(Letter of Thanks)。第一段:感谢的内容。第二段:叙述事情的经过。第三段:再次表示感谢。写作模板:Thank you very much for感谢的内容.叙述事情的经过.My appreciation to you for your generous help is beyond my words.(4)投诉信(Letter of Complaint)。第一段:投诉的具体事情。第二段:详述事情的经过以及给自己带来的不便。第三段:希望对方及时调查并给出公平的解决办法。写作模板:I am writing the letter to complain about具体事情.Unfortunately 事情的经过,which has put us to great inconvenience.We shall be glad to have your explanation,and also to know what you propose to do in this matter.(5)道歉信(Letter of Apology)。第一段:表示道歉。第二段:解释错误,并表明不会再发生类似情况。第三段:提出弥补措施,再次表示歉意。写作模板:I’m writing to express my sincere apology for具体事情.对错误进行解释.We trust that there will be no repetition of this problem.提出弥补措施.Once again my apologies for the inconvenience we have caused.
6.结束敬语(Complimentary Closing)。结束敬语要写在正文下空2~3行的右下角处,后面也要有逗号。不同称呼要用不同的结束敬语来配合。亲友间可用Yours,/Lovely,/Sincerely,;对长辈可用Respectfully yours;对不熟悉的人,可直接用Yours;在正式信函中,要用Faithfully yours。
7.署名(Signature)。署名要写在结束语的下一行,写明写信人的名字,如果需要写明该人的头衔,则需另起一行,写在名字下方。
8.附件(Attachment)。附件需写在信件的左下角,要注明Encl.或Enc,同时还要说明附件的内容和份数。
参考文献:
信件结束语范文第3篇
称呼(Salutation),正文(Body of Letter)、结束语(Complimentary Close)、署名Signature,
有时在书信后面还有附言(Postscript)、附件(Enclosure),这得视具体情况而定。下面将分别说明。
1. 信头(Heading)
信头是指写信人的地址和写信日期, 一般写在或打在第一面信纸的右上角,先写地址再写日期,地址的写法是从小到大,先写门牌号、路号,再写区名、市名、省名,最后写国名。时间的写法对英国人和美国人而言是不同的。英国人习惯按日、月、年的顺序写,
而美国人习惯按月、日、年的顺序写。例如:
英式:1st October,1999
美式:October 1,1999
在使用前一种形式时,月和年之间的逗号可用可不用,但是在后一种形式中,必需要使用逗号。
信头的写法有缩进式和齐头式。缩进式每行开头向右缩进一两个字母;齐头式左边对齐排列,如下所示:
缩进式 Wang Ming
Dept. of Chemical Engineering
Dalian University of Technology
Dalian 116023
Liaoning Province
P. R. China
齐头式
Wang Ming
Dept. of Chemical Engineering
Dalian University of Technology
Dalian 116023
Liaoning Province
P. R. China
2. 信内地址 (Inside Address)
信内地址要写出收信人的姓名和地址。一般给比较生疏的亲友的信和公事信件要写出信内地址,而熟悉朋友可以省去这一步骤。信内地址写出在日期下一两行的左上角,第一行写收信人的称呼姓名,然后写出地址。地质也是从小到大写出,分缩进式和齐头式两种。例如:
缩进式
The President
Oxford University
England
齐头式
Jiang Bin
64Heping Road
P.R.China
3. 称呼(Salutation)
称呼是对收信人的称谓。在信内地址下一两行处顶格写起,自成一行。末尾用逗号或冒号。
当给一位熟悉的人写信时可以用Dear 或是My Dear。在英国,My Dear 比Dear亲切,而在美国,Dear比My Dear 亲切。
当给一位你不知婚否的女性写信时,可以用Ms.……,这是指"……女士"。
在给不熟悉的人写信时,可以用Dear sir, Dear Madam, Dear sirs, Gentleman 等等。
4. 正文(Body of Letter)
正文是一封信的主体部分。通常在称呼的下一行写出。正文也可采用齐头式或缩进式的方法。齐头式是反映每段开头一行和后面行并齐。缩进式是指每段的第一行向右缩进几个字母。信笺讲究简洁、效率。开头几句简单地寒暄后就不如正题,在结尾处要有祝愿和敬语。
常用的开头语有:
I have received your letter of July Ist. 7月1 日来信已经收悉。
I have the pleasure to tell you that …….很高兴告诉你……。
I am very much delighted to receive your letter. 非常高兴收到你的来信。
It is my honor to inform you that ……很荣幸告诉你……。
常用的结束套话有:
I am looking forward to hearing from you 盼早日回信。
Wish best regards. 祝好。
Thank you for your help 感谢你的帮助!
Wish my best wishes for your success. 祝你成功。
Wishing you a happy holiday. 祝假日愉快!
Hoping to hear from you soon. 希望能尽快收到你的回信。
5. 结束语(Complimentary Close)
结束语在正文之后隔一两行的偏右方开始写出。开头字母用大写,以后的字母用小写,最后一个词后面用逗句。
6. 署名(Signature)
在结束语的下方是签名,先手写出,再打出来。如果收信人不认识写出信人,可以在署名前用括号标出Mr.、Miss或Ms。在名称下面可注上头衔。如:
Yours sincerely,
Lucy Blake (手写)
Lucy Blake (Miss)(打印)
Sales Manager
7. 附言(Postscript),附件(Enclosure)
在信件正文写作时可能漏掉了某些事,或临时发生了某事需要补充时,可以在信下面左下方写出上P.S.
如果随信有附件可在爱左下端注明。如:
信件结束语范文第4篇
关键词:数据库;DML触发器;数据完整性;T-SQL
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2023)34-8087-04
数据完整性(Data Integrity)是数据安全的三个基本要点之一[1],是数据库应用系统开发的重要内容。它是指数据的精确性(Accuracy) 和可靠性(Reliability),是应防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。数据完整性分为四类:实体完整性(Entity Integrity)、域完整性(Domain Integrity)、参照完整性(Referential Integrity)、用户定义完整性(User-definedIntegrity)。其中域完整性,实体完整性和参照完整性,是关系模型必须满足的完整性约束条件[2]。对数据库的完整性控制和安全性控制均属于DBMS提供的数据保护机制。完整性控制主要包含完整性约束、并发控制、故障恢复三种,其中完整性约束是完整性控制的核心。完整性约束可以通过DBMS或应用程序来实现,基于DBMS的完整性约束作为模式的一部分存入数据库中,通过DBMS实现的数据完整性按照数据库设计步骤进行设计,而由应用软件实现的数据库完整性则纳入应用软件设计[3]。DBMS级的数据完整性相当于语法级的数据完整性,而要完成语义级数据完整性,除了需建立在语法级数据完整性的基础上,还应完成在应用系统层次上的完整性和一致性处理逻辑,在这些逻辑执行期间利用语法级的数据完整性来最终实现对应用系统可用和有效的应用级数据完整性。
DBMS级数据完整性实现机制包括数据类型、规则、默认值、约束、触发器和XML架构[4]。DBMS级数据完整性除了可有效防止不符合语义规定的数据,也可用于定义与实现业务逻辑规则。由于集中定义更利于降低应用程序的复杂性及提高应用程序的运行效率。但当实施相对复杂的数据完整性时,使用触发器相对更为灵活。
1 触发器的概述
触发器(Trigger)是用户定义在关系表上的一类由事件驱动的特殊存储过程。一般存储过程是通过调用过程名及提供所需对应参数而被执行。触发器不能被显式调用,而是通过对它所绑定的数据表执行相关事件激活触发器而被执行的。SQL Server 2023 实现了三种类型的触发器: 数据操纵语言(DML,Data Manipulation Language)触发器,在向表中插入、更新或删除数据等事件发生时被触发;数据定义语言触发器(DDL,Data Definition Language),在创建、修改或删除数据库对象时触发;登录触发器,在登录的身份验证阶段完成之后且用户会话实际建立之前为响应 LOGON 事件而触发[5]。
2 DML触发器的分类
在触发器中,应用最为广泛当属DML触发器。DML 触发器可用于强制业务规则和数据完整性、查询其他表并包括复杂的 Transact-SQL 语句。
DML的触发事件包括 INSERT、UPDATE 或 DELETE语句。 DML触发器一旦被定义,任何用户对表或视图的Insert、Update和Delete操作均由服务器自动激活相应的触发器,在DBMS核心层进行集中的完整性控制[6]。DML触发器可分为After 触发器、Instead of 触发器、CLR触发器。
After触发器是指导致触发器被触发的事件被成功执行后(如果是在存储过程,而且有事务,则要在事务提交之后),触发器才会被激活执行,若激活操作违反约束或发生错误,则激活操作会被拒绝或回滚,触发器不被触发;而Instead of 触发器是指激活触发器的操作(Insert、Update、Delete)被触发器中所定义的操作替代,激活触发器的语句并不被实际执行,但数据更改的变动仍可反映到Inserted和Deleted两张临时表中;CLR触发器将执行托管代码中编写的方法,而不用执行T-SQL存储过程。
3 DML触发器与约束
实体完整性(Entity Integrity)通常可通过PRIMARY KEY约束 和 UNIQUE 约束进行强制;域完整性可通过CHECK 约束进行强制;引用完整性(Referential Integrity)则应通过 FOREIGN KEY 约束进行强制。 当约束支持的功能无法满足应用程序的功能要求时,DML 触发器则表现为比约束更为精细和强大的数据控制能力。
1) 约束通常通过标准化的系统错误信息来传递错误消息,DML触发器可自定义消息和错误处理。
2) 若未使用REFERENCES 子句定义级联引用完整性约束,则可通过DML 触发器将更改或删除以级联方式传递给数据库中的相关表。
3) DML触发器可根据应用程序的需要定义比CHECK 约束定义的限制更为复杂的其他限制。
4) DML 触发器可以防止恶意或错误的 INSERT、UPDATE 以及 DELETE 操作。例如,可通过触发器对不可更新视图进行数据操纵。
4 DML触发器工作原理
触发器由时间条件、触发事件和动作组成。确定触发器的逻辑结构,就是确定触发器的时间条件、触发事件和动作以及触发器的选项[7]。将触发器和触发它的语句作为可在触发器内回滚的单个事务对待。如果检测到错误则整个事务即自动回滚[8]。在使用触发器过程中,因触发器被触发后所产生的Inserted和Deleted两张逻辑表发挥着重要作用。它们具有只读性,并在触发器执行完毕后从内存中删除,而非实际存储在数据库中的物理表。这两张表的表结构与触发器所在的数据表结构完全一致。
若触发事件为Insert操作,触发器被触发后,将对触发器所属表新增记录的副本填充至Inserted表中;若触发事件为Update操作,触发器被触发后,将对触发器所属表被修改记录更新后的副本填充至Inserted表中,将被修改记录更新前的记录副本填充至Deleted表中;若触发事件为Delete操作,触发器被触发后,将对触发器所属表中被删除记录的副本填充至Deleted表。通过这两张逻辑表,可了解数据在作前后的差异状态,并基于此差异采取行动。
5 DML触发器的应用
下面以学生成绩管理库(PXSCJ)为例,说明触发器在数据完整性方面的具体应用。PXSCJ库包含学生信息表XSB(学号,姓名,性别,出生年月,专业,总学分,备注);课程信息表KCB(课程号,课程名,开课学期,学时,学分);成绩CJB表(学号,课程号,成绩)。
5.1 强制参照完整性
在从表中创建触发器,当向从表插入新记录或更新记录时,触发器被触发,检查假设插入或更新操作完成后,从表中外键的数据是否存在于主表中的主键或唯一键,若不存在则插入或更新操作不允许被执行。同时,代码设计应满足于多行记录同时入的情况。如为保证向成绩表CJB插入或更新记录后,该记录的学号能存在于学生信息表XSB、课程号能存在于课程信息表KCB,创建触发器CJB_ trigger。实现过程如下:
5.2 级联更新或删除
当需要实现主从表数据级联一致时,可直接基于从表创建外键约束,但由于外键约束会导致当需要对主表的主键或唯一键进行修改或删除操作时无法执行。因此,通过创建触发器,可实现主从表级联更新或删除,从而提高数据操作的灵活性。如:当修改学生信息表XSB中某个学生的学号时,能实现级联修改该生在成绩表CJB中对应的记录的学号;当删除学生信息表XSB中某个学生的记录时,能实现级联删除该生在成绩表CJB中对应的记录,创建触发器XSB_delup。同理,当修改课程信息表KCB中某门课程的课程号时,能实现级联修改该生在成绩表CJB中对应的记录的课程号;当删除课程信息表KCB中某门课程的记录时,能实现级联删除该生在成绩表CJB中对应的记录,创建触发器KCB_delup。实现过程如下:
5.3 实现用户定义业务规则
在数据库里,数据表之间经常会出现某些数据列相互之间存在业务规则上的相关性,则可通过创建触发器提高维护效率。当对表间相关列的数据进行增、改、删的操作时,能同时自动更新对应列的数据,使相关列之间的数据自动保持一致,从而降低人工维护成本。如:在学生信息表XSB、学生成绩表CJB、课程信息表KCB中,有一个相关三张表的特殊列,即学生信息表XSB的总学分。当对CJB进行增、改、删成绩时,或对KCB的学分列进行修改时,要求XSB的总分列要实现同步更新。利用触发器让其实现自动更新,保证相关列数据的一致性。
1) 向学生成绩表CJB添加学生课程成绩时,若成绩大于等于60时,即可获得相应的学分,并重新累计于学生信息表XSB中的总学分列,当删除学生成绩表CJB中的记录时,学生信息表XSB中的总学分应亦能自动发生更新。当对CJB表进行更新操作时,若修改列仅为课程号或成绩时,则只需获得记录在被修改前后的总学分差值,然后累加至XSB表中对应记录的原总学分即可。但若修改列为学号,则需修改XSB表中两个学生的总学分。因此,必须对触发器CJB_trigger进行进一步优化和整合,最后代码为:
5.4 更新不可更新视图
在PXSCJ数据库中创建视图stu_view,包含学号、姓名、专业、课程号、课程名、成绩。该视图依赖于基表XSB、CJB、KCB,属不可更新的视图。通过在视图上创建instead of触发器,当向视图插入数据时,分别向XSB、CJB、KCB插入数据,从而实现向视图插入数据的功能。
6 结束语
通过上述实例可知,触发器在维护数据库数据完整性时表现出强大的功能,尤其对于处理较为复杂的业务规则定义时所具备的灵活性,大大提高了数据库系统的开发效率。值得注意的是触发器不可滥用,尤其是当形成触发器链的时候容易出现连环触发而导致错误,并造成不必要的损耗[9]。
参考文献:
[1] 360百科.数据完整性[EB/OL].(2023-04-14). .
[2] 刘艳春.运用SQL Server 开发软件参照完整性实现方法[J].计算机技术与发展,2023,23(6):117-121.
[3] Behrend A,Doranc,Manthey R.SQL Triggers Reacting on Time Events:An Extension Proposal[C]//Proceedings of the 13th East European Conference on Advances in Databases and Information Systems,2009.
[4] 王珊,萨师煊.数据库系统概论[M].4版.北京:高等教育出版社,2006:160-163.
[5] Natarajan J,Bruchez R,Shaw S,et al. Pro T - SQL 2023 programmer’s guide[ M] . GRE:Springer,2023.
[6] 贝尔实验室.数据库系统概念[M].4版.北京:机械工业出版社,2003:161.
[7] Fakas G J,Cawley B,Cai Zhi.Autom ated Generation of Personal Data Reports from Relational Databases[J].Journal of Information &Knowled ge Management (JIKM ),2023,10(2) :193-208.
信件结束语范文第5篇
关键词 默认值;数据库;图书编目;影响
中图分类号 G2 文献标识码 A 文章编号 1674-6708(2023)170-0072-02
1 图书的机编录入流程
首先要安排好图书和期刊的编目工作录入流程,然后再针对性研究各个环节对编目工作的影响。图书录入流程:
1)整理:将同一复本图书整理排列在一起,将入同一库室图书整理排列在一起。例如:入社科库和入自然科学库的分开排列。
2)制定条码:将制定好的条码按大小顺序粘贴在图书上后,将图书按条码顺序排列。
3)可依条码大小依次用扫码器将书目信息扫入编目系统(先扫ISBN码)。
4)对MARC数据能套录的套录,但对套录数据要认真核对各字段;不能套录的图书应作详尽的著录。
5)录入馆藏信息:录入复本量、登录号、条码号、收藏库室、种次号、著者号、索书号等馆藏数据。
6)设计书标并打印、粘贴、验收、入库。
2 提高编目效率方法
在准备环节首先要有序,清楚图书的归类、整理、排序;期刊的整理装订应先装订后录入还是先录入合订信息后再装订,对业务进程影响很大(另行探讨)。
1)录入环节:首先能扫码录入尽量扫码录入;要充分利用ISBN、ISSN、lSRN、ISRC、统一刊号、统一发行号、条形码、登录号的扫码功能;条形码和登录号应设为一致并自动生成。通过扫码可大大提高编目效率并且准确率很高。其次在前台对一些各类文献共性相同的录入数据,能在前台设为缺省默认的则设为缺省默认。在前台实现不了的,应研究在后台能否实现创建默认。当然,后台研究层次更深,需研究性结合大量DB及DBMS知识。
2)验收环节:首先完成录入的图书和期刊(合订册)一定还要按登录号顺序摆放,千万不能乱;以便为设计打印完成的书标和书脊作好粘贴准备。其次要研究人工验收环节与录入工作流程的嵌入节点,使录入错误在验收的各个节点上尽早提前发现;因纠错工作越提前,对后续环节的影响就越小。如在已粘贴完书标后纠错,会是很麻烦,将大大影响编目效率。
3 默认值约束
目前,绝大多数中小图书馆的集成管理系统,都是建立在SQLserver数据库管理软件系统下创建的数据库基础上的前台应用;它的应用结构属客户机/服务器结构。
文献资源的编目、标引、著录工作是通过前台应用系统的编目模块、验收模块或维护模块录入的。在录入过程中有很多著录数据是有共性的。例如:经整理归类后,同一批次图书的复本量、入藏库室等是相同的;同一批期刊的区分号,装订后的入藏库室等也是相同的。这样就引发一个课题:这些同一批资源个体都相同的数据,就无需一次次的每条记录重复录入;如果在前台能够设为默认都要设为默认。但由于不同开发商开发的前台应用系统不同;在前台不同应用系统对默认的应用也是不同的,且大多数前台集成管理系统,对很多录入数据在前台是不能进行默认设置的。
但基于所有图书集成管理系统的共同特点,几乎所有中小图书馆集成管理系统的后台数据库创建和管理,都是通过SQLserver数据库管理软件来完成的;那么可不可以通过SQLserver来创建一些前台不能设置的默认哪?经深入研究后得出的答案是可行的。经研究发现,在SQLserver的DBMS中,为实现数据完整性(也就是实现数据的正确性和相容性),要通过T-SQL语言加在数据库数据之上一些语义约束条件;这些约束有的是列级(字段)约束、元组(行)约束,有的是关系约束。通过T-SQL语句能够实现的完整性约束有:1)实体完整性(PRIMARY KEY)――行约束。2)参照完整性(F0REIGN KEY)――关系约束。3)用户定义完整性:(1)默认值约束(DEFAULT);(2)检查约束(CHECK)也叫列取值范围约束;(3)惟一值约束(UNIQUE)。
为实现用户定义完整性,其手段之一是默认值约束。默认值约束用Default约束(也叫缺省值约束)来实现,它用于提供数据库基本表中列的默认值。也就是说,当数据库中的某一基本表(例如馆藏表)的某一列(例如收藏库室列)需要创建默认值(如默认值为“自然科学书库”)时,是可以通过Default约束来实现的。创建后,默认值约束的特点是:当表中插入数据时,如果没有为有“Default约束”的列提供值,则系统自动使用“DefauIt约束”定义的默认值。
4 后台创建默认值约束对前台编目著录的影响
由图书管理系统的应用结构(C/S结构)可以分析出,前台的默认值设置都是通过前台应用程序提出给后台DBMS后,由后台创建的,而通过后台创建默认值约束是完全可以大大提高编目效率的。下面通过实例来说明具体创建方法。T-SQL编程方法如下面实例:
1)创建复本量的默认值为5本。
打开服务器中的SQLserver软件中的“企业管理器”――打开“工具”中的“SQL查询分析器”。写入T-SQL命令:
USE 中文图书(库名) ALTER TABLE 对应表名(如‘订购表’)
ADD C0NSTRAINT 约束名(如DF-FB) DEFAULT 5 F0R 复本量(字段名)
GO
执行程序后创建完成。
2)创建已装订期刊的收藏库室的默认值为“过刊库”。
USE 中文期刊(库名) ALTER TABLE 馆藏信息(表名)
ADD CONSTRAINT DF-GCG(约束名) DEFAULT‘过刊库’FOR 收藏库室(字段名) GO
若要更改已建立默认值,必须先删除已创建的默认值约束。
3)删除例2中创建的约束名为DF-GCS的“社会科学”默认值。
USE 中文图书 ALTER TABLE 馆藏表
DROP CONSTRAINT DF-GCS GO
执行程序后,默认值约束将终止。若要创建新默认值,只要按例2中语法创建即可。
通过1)、2)例中T-SQL语句的执行,可完成创建图书编目数据的复本量为5本、期刊编目数据的收藏库室为“过刊库”。默认值的创建完成后,在前台编目中:图书的复本量就默认为5本,期刊的收藏库室就默认为“过刊库”书库。通过3)例可终止、取消默认值;没有默认值,前台著录时就要反复、逐一录入需著录信息。
5 结论
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 yyfangchan@163.com (举报时请带上具体的网址) 举报,一经查实,本站将立刻删除