信件結(jié)束語(精選5篇)
信件結(jié)束語范文第1篇
關鍵詞:計算機繪圖程序給排水設計
目前,幾乎所有的設計院都配備了給排水設計軟件包,但是設計人員在使用軟件過程中,常常會遇到諸多不便之處。如建筑外框不認,初始化數(shù)據(jù)輸入不直觀,數(shù)據(jù)輸入不當時出錯,修改不便等等。設計人員或是用鼠標,或是用AutoCAD“硬畫”。這種方式出圖效率很低,而且圖面質(zhì)量難以保證。
1程序設計目的
針對上述軟件包使用不便或適應性不強等問題,筆者幾年來在這一方面做了一些探索,用AutoLisp成功地開發(fā)一套比較完善且易學實用的系列化小程序。此程序的特點在于遵循傳統(tǒng)繪圖習慣,進行平面化設計的思路,按照傳統(tǒng)繪圖方式,靈活運用各個程序段,加強人機對話,力求機器的自動生成。
2主要程序介紹
本程序組中包含程序段40余條,分為工具類與專業(yè)類,其中主要程序段有:
TK•LSP&TK•DCL:圖庫管理程序。
XX•LSP:由平面圖生成系統(tǒng)圖程序(原圖)。
GG•LSP:標注給水管道管徑并進行分層處理程序。
PG.LSP:標注排水管道管徑并進行分層處理程序。
GB•LSP:對給水管管徑及管段長度計算統(tǒng)計程序。
PB•LSP:對排水管管徑及管段長度計算統(tǒng)計程序。
ZT•LSP:對總體排水管道管徑及管段長度進行計算并標注程序。
GDPM•LSP:自動生成排水管道剖面并同時標注程序。
GCL•LSP:對給排水工程量對照定額進行工程概算程序。
DE•LSP:調(diào)出事先輸入的定額程序。
LB•LSP:對給排水管管徑及管段長度并進行列表處理程序。
3使用方法
本程序是依托建筑或其他專業(yè)提供的平面圖,按傳統(tǒng)手工制圖的方法與步驟進行平面設計。筆者把給排水的圖元分為直線,多義線,圖塊(帶屬性),文字等等。
設計人員在繪制給水平面圖時。用PLINE線繪制水平管,繪制給水立管時插入一個帶有立管高度屬性的圖塊。排水平面圖的繪制方法與給水相同。繪制其它給排水附件如衛(wèi)生設備、閥門、消火栓、水嘴等附件均采用不同圖塊表達,這種作圖方式直觀、簡捷、明快。在各層圖面線條完成后,應用GG•LSP、PG•LSP程序標注其管徑。在標注管徑的時候,程序?qū)Υ诉M行分層分類管理。配合CAD將各層平面設計完成并確認無誤后,把各層另存為相應各層系統(tǒng)圖圖名,此時設計人員可將用圖塊表達的系統(tǒng)圖圖元如:水嘴、存水彎、消火栓、甚至標準化的系統(tǒng)圖元等插入圖中,并將各管段安裝高度給出。確認無誤后,用XX•LSP程序?qū)⒋藞D進行圖形處理。使之成為具有透視效果的系統(tǒng)透視圖,再用JL•LSP程序?qū)⒆髌矫鎴D時輸入的立管高度屬性取出,并繪制成給水立管,將此圖適當處理后,最后把各層系統(tǒng)圖組合起來便成為給水透視圖。
繪制排水系統(tǒng)圖時,先用LG•LSP程序生成排水立管,在各排水點插入各種存水彎、排水栓等,再用XX•LSP程序?qū)⑵矫鎴D進行圖形處理,使之成為具有透視效果的系統(tǒng)透視圖,最后把各層支管與立管聯(lián)接好,排水系統(tǒng)圖就形成了。
最后,再用CSD命令對圖面進行美化,由于采用程序繪制的圖元是由PLINE,BLOCK等組成,且是分層,分類放置的。據(jù)此,可用LB•LSP程序中有關命令,取出圖中的類、層、塊、點、線等特性,進行歸類、計算、列表并生成一個主要材料表,自動列于圖中。如果調(diào)出事先輸入的定額,給出工程特征參數(shù),就可用KS•LSP程序中有關命令,計算出一個概算表。材料表、概算表都能自動生成。至于給水總圖的繪制,給水圖可類似繪出。排水總圖繪制水比較復雜。ZT•LSP程序中包含了各管段的計算、繪制及標注等工具,并可自動生成管道剖面。其程序可節(jié)省繪圖時間50%。本系列程序如果加載于其他成功軟件包之上,功效更加明顯。
4程序舉例
限于篇幅,這里僅列其中之一以供同行們參考。
;本程序?qū)LKINE,BLOCK,TEXT等圖元分別進
;行旋轉(zhuǎn)與平移處理,達到平面圖形的透視效
;果。程序?qū)INE,DIM,SOLID等圖元進行刪
;除。
(defunc:xx(/xxyk1k2k3stn)
(setqss(ssget)ang(/pi4);選擇需要進行旋轉(zhuǎn)與平移處理的對象(實體)
(setqy(cadr(nth1(entsel″n選擇水平線″))))
;Y用戶選擇的旋轉(zhuǎn)基準線
(setqe(ssnamess0)n0)
(setqk1(list″a″)k2(list″b″)k3(list″c″))
;初始化k1k2k3放置實
;體名的列表,并設“a”“b”“c”為結(jié)束標記
(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語句結(jié)束
);if語句結(jié)束
(setqn(=1n))
(setqe(ssnamessn))
);while語句結(jié)果
(setqn0)
(if(/=(ntnk2)″b″)(setq1(entget(nthnk2))(setq1nil))
(while1;while語句開始
;對所選項的PLINE線實體進行旋轉(zhuǎn)處理,角度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語句結(jié)束
(setqn(=1n))
(if(/=(nthnk2)″b″)(setq1(entget(nthnk2)))
(setq1nil))
);while語句結(jié)束
(setqn0)
(if(/=(ntnk1)″a″)(setq1(entget(nthnk1)))
(setq1nil))
while1;while語句開始,對所選的
;TEXT、BLOCK、ATTRIBUTE等實
;體進行旋轉(zhuǎn)及平移處理,角度
;45度
if(=nil(assoc111))(setqp1(cdr(assoc101)))
;if語句開始
(if(=0.0(nth1(assoc111)))(setqp1(cdr
(assoc101)));if語句開始
(setqp1(cdr(assoc111)))
);if語句結(jié)束,本語句對文字對齊方式的判斷,并提取高度和插入點信息
);if語句結(jié)束,本語句對是否為文字的判斷,并提取高度和插入點信息
(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語名結(jié)束,本語句對文字對齊方式的判斷,并修改高度和插入點信息
);if語名結(jié)束,本語句對是否為文字的判斷,并修改高度和插入點信息
(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語句結(jié)束,修改中屬性的插入點信息
(setqang(/(cdr(assoc501))2))
(setq1(subst(cons50ang)(assoc501)1))
(entmod1);通過修改塊的插入角度信息進行旋轉(zhuǎn)
(setqn(+1n)
(if(/=(nthnk1)″a″)(setq1(entget(nthnk1)))(setq1nil))
);while語句結(jié)束
(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語句結(jié)束
(setqn(+1n))
);while語句結(jié)束
(redraw)
);defun結(jié)束
信件結(jié)束語范文第2篇
關鍵詞:英語;社交信函;寫作技巧
中圖分類號:G712 文獻標志碼:A 文章編號:1674-9324(2023)35-0276-02
社交信函是人們在生活和工作中經(jīng)常使用的溝通方式,它所包含的范圍非常廣泛,有祝賀信、邀請信、感謝信、投訴信和道歉信等等。從形式上看,社交信函可分為正式信函和非正式信函兩種。通常在正式場合使用的都是正式信函,它具有結(jié)構完整、內(nèi)容精確等特點。而在非正式場合進行書信往來時,通常使用的都是非正式信函,它的格式可根據(jù)具體情況進行適當省略,并具有重點突出、簡潔明了的特點。下面筆者就從信函的構成、格式、內(nèi)容等方面對上述幾種信函進行介紹。
一、信函的構成
傳統(tǒng)信函包含以下部分,即信封、信頭、信內(nèi)地址、收信人稱呼、信函正文、結(jié)束敬語、署名和附件。
二、信函的格式
社交信函的格式跟信件的格式是一致的。
1.信封(Envelope)。通常情況下,書信人要在信封的正面寫上寫信人和收信人的姓名及地址。寫信人的姓名和地址要寫在信封的左上角;收信人的姓名和地址要寫在信封的中下方。需要注意的是地址都要由小到大來寫。
2.信頭(Heading)。信頭通常寫在信紙的右上角,內(nèi)容包括寫信人的地址及寫信日期。在非正式信件中可將地址省略,寫出日期即可。日期要用“月日,年”或“日月,年”的格式來寫,具體的“日”要用序數(shù)詞來表示,如June 1st,2023或是1st June,2023。
3.信內(nèi)地址(Inside Address)。信內(nèi)地址要寫在信紙的左端,包括收信人姓名、職務和地址,非正式信件中此部分可省略。
4.收信人稱呼(Salutation)。收信人稱呼要寫在信內(nèi)地址下一行的行首,首字母要大寫并與地址的首字母對齊。需要注意的是,稱呼后面一定要有逗號。由于寫信人與收信人的關系不同,所以寫信時要用相應的稱呼來表示,如對不認識的男士可用: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個字符。正文的內(nèi)容要以簡明扼要、重點突出、層次分明為原則,此外還要注意措辭的準確性,注意避免拼寫、語法等錯誤,盡量保持頁面整潔,避免出現(xiàn)涂抹或添減內(nèi)容的現(xiàn)象。對于大部分社交信函來說,正文部分通常都是用三段式來表示,下面筆者就根據(jù)不同的社交信函總結(jié)出一些常用的套用句型和表達法。(1)祝賀信(Letter of Congratulation)。第一段:表明自己已經(jīng)得知對方的喜訊。第二段:表達自己的喜悅之情。第三段:給對方真心的祝福。寫作模板: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)。第一段:發(fā)出邀請。第二段:活動的具體時間、地點和內(nèi)容。第三段:要求對方給予回復。寫作模版: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)。第一段:感謝的內(nèi)容。第二段:敘述事情的經(jīng)過。第三段:再次表示感謝。寫作模板:Thank you very much for感謝的內(nèi)容.敘述事情的經(jīng)過.My appreciation to you for your generous help is beyond my words.(4)投訴信(Letter of Complaint)。第一段:投訴的具體事情。第二段:詳述事情的經(jīng)過以及給自己帶來的不便。第三段:希望對方及時調(diào)查并給出公平的解決辦法。寫作模板:I am writing the letter to complain about具體事情.Unfortunately 事情的經(jīng)過,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)。第一段:表示道歉。第二段:解釋錯誤,并表明不會再發(fā)生類似情況。第三段:提出彌補措施,再次表示歉意。寫作模板: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.結(jié)束敬語(Complimentary Closing)。結(jié)束敬語要寫在正文下空2~3行的右下角處,后面也要有逗號。不同稱呼要用不同的結(jié)束敬語來配合。親友間可用Yours,/Lovely,/Sincerely,;對長輩可用Respectfully yours;對不熟悉的人,可直接用Yours;在正式信函中,要用Faithfully yours。
7.署名(Signature)。署名要寫在結(jié)束語的下一行,寫明寫信人的名字,如果需要寫明該人的頭銜,則需另起一行,寫在名字下方。
8.附件(Attachment)。附件需寫在信件的左下角,要注明Encl.或Enc,同時還要說明附件的內(nèi)容和份數(shù)。
參考文獻:
信件結(jié)束語范文第3篇
稱呼(Salutation),正文(Body of Letter)、結(jié)束語(Complimentary Close)、署名Signature,
有時在書信后面還有附言(Postscript)、附件(Enclosure),這得視具體情況而定。下面將分別說明。
1. 信頭(Heading)
信頭是指寫信人的地址和寫信日期, 一般寫在或打在第一面信紙的右上角,先寫地址再寫日期,地址的寫法是從小到大,先寫門牌號、路號,再寫區(qū)名、市名、省名,最后寫國名。時間的寫法對英國人和美國人而言是不同的。英國人習慣按日、月、年的順序?qū)懀?/p>
而美國人習慣按月、日、年的順序?qū)。例如?/p>
英式:1st October,1999
美式:October 1,1999
在使用前一種形式時,月和年之間的逗號可用可不用,但是在后一種形式中,必需要使用逗號。
信頭的寫法有縮進式和齊頭式?s進式每行開頭向右縮進一兩個字母;齊頭式左邊對齊排列,如下所示:
縮進式 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. 信內(nèi)地址 (Inside Address)
信內(nèi)地址要寫出收信人的姓名和地址。一般給比較生疏的親友的信和公事信件要寫出信內(nèi)地址,而熟悉朋友可以省去這一步驟。信內(nèi)地址寫出在日期下一兩行的左上角,第一行寫收信人的稱呼姓名,然后寫出地址。地質(zhì)也是從小到大寫出,分縮進式和齊頭式兩種。例如:
縮進式
The President
Oxford University
England
齊頭式
Jiang Bin
64Heping Road
P.R.China
3. 稱呼(Salutation)
稱呼是對收信人的稱謂。在信內(nèi)地址下一兩行處頂格寫起,自成一行。末尾用逗號或冒號。
當給一位熟悉的人寫信時可以用Dear 或是My Dear。在英國,My Dear 比Dear親切,而在美國,Dear比My Dear 親切。
當給一位你不知婚否的女性寫信時,可以用Ms.……,這是指"……女士"。
在給不熟悉的人寫信時,可以用Dear sir, Dear Madam, Dear sirs, Gentleman 等等。
4. 正文(Body of Letter)
正文是一封信的主體部分。通常在稱呼的下一行寫出。正文也可采用齊頭式或縮進式的方法。齊頭式是反映每段開頭一行和后面行并齊?s進式是指每段的第一行向右縮進幾個字母。信箋講究簡潔、效率。開頭幾句簡單地寒暄后就不如正題,在結(jié)尾處要有祝愿和敬語。
常用的開頭語有:
I have received your letter of July Ist. 7月1 日來信已經(jīng)收悉。
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 ……很榮幸告訴你……。
常用的結(jié)束套話有:
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. 結(jié)束語(Complimentary Close)
結(jié)束語在正文之后隔一兩行的偏右方開始寫出。開頭字母用大寫,以后的字母用小寫,最后一個詞后面用逗句。
6. 署名(Signature)
在結(jié)束語的下方是簽名,先手寫出,再打出來。如果收信人不認識寫出信人,可以在署名前用括號標出Mr.、Miss或Ms。在名稱下面可注上頭銜。如:
Yours sincerely,
Lucy Blake (手寫)
Lucy Blake (Miss)(打印)
Sales Manager
7. 附言(Postscript),附件(Enclosure)
在信件正文寫作時可能漏掉了某些事,或臨時發(fā)生了某事需要補充時,可以在信下面左下方寫出上P.S.
如果隨信有附件可在愛左下端注明。如:
信件結(jié)束語范文第4篇
關鍵詞:數(shù)據(jù)庫;DML觸發(fā)器;數(shù)據(jù)完整性;T-SQL
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2023)34-8087-04
數(shù)據(jù)完整性(Data Integrity)是數(shù)據(jù)安全的三個基本要點之一[1],是數(shù)據(jù)庫應用系統(tǒng)開發(fā)的重要內(nèi)容。它是指數(shù)據(jù)的精確性(Accuracy) 和可靠性(Reliability),是應防止數(shù)據(jù)庫中存在不符合語義規(guī)定的數(shù)據(jù)和防止因錯誤信息的輸入輸出造成無效操作或錯誤信息而提出的。數(shù)據(jù)完整性分為四類:實體完整性(Entity Integrity)、域完整性(Domain Integrity)、參照完整性(Referential Integrity)、用戶定義完整性(User-definedIntegrity)。其中域完整性,實體完整性和參照完整性,是關系模型必須滿足的完整性約束條件[2]。對數(shù)據(jù)庫的完整性控制和安全性控制均屬于DBMS提供的數(shù)據(jù)保護機制。完整性控制主要包含完整性約束、并發(fā)控制、故障恢復三種,其中完整性約束是完整性控制的核心。完整性約束可以通過DBMS或應用程序來實現(xiàn),基于DBMS的完整性約束作為模式的一部分存入數(shù)據(jù)庫中,通過DBMS實現(xiàn)的數(shù)據(jù)完整性按照數(shù)據(jù)庫設計步驟進行設計,而由應用軟件實現(xiàn)的數(shù)據(jù)庫完整性則納入應用軟件設計[3]。DBMS級的數(shù)據(jù)完整性相當于語法級的數(shù)據(jù)完整性,而要完成語義級數(shù)據(jù)完整性,除了需建立在語法級數(shù)據(jù)完整性的基礎上,還應完成在應用系統(tǒng)層次上的完整性和一致性處理邏輯,在這些邏輯執(zhí)行期間利用語法級的數(shù)據(jù)完整性來最終實現(xiàn)對應用系統(tǒng)可用和有效的應用級數(shù)據(jù)完整性。
DBMS級數(shù)據(jù)完整性實現(xiàn)機制包括數(shù)據(jù)類型、規(guī)則、默認值、約束、觸發(fā)器和XML架構[4]。DBMS級數(shù)據(jù)完整性除了可有效防止不符合語義規(guī)定的數(shù)據(jù),也可用于定義與實現(xiàn)業(yè)務邏輯規(guī)則。由于集中定義更利于降低應用程序的復雜性及提高應用程序的運行效率。但當實施相對復雜的數(shù)據(jù)完整性時,使用觸發(fā)器相對更為靈活。
1 觸發(fā)器的概述
觸發(fā)器(Trigger)是用戶定義在關系表上的一類由事件驅(qū)動的特殊存儲過程。一般存儲過程是通過調(diào)用過程名及提供所需對應參數(shù)而被執(zhí)行。觸發(fā)器不能被顯式調(diào)用,而是通過對它所綁定的數(shù)據(jù)表執(zhí)行相關事件激活觸發(fā)器而被執(zhí)行的。SQL Server 2023 實現(xiàn)了三種類型的觸發(fā)器: 數(shù)據(jù)操縱語言(DML,Data Manipulation Language)觸發(fā)器,在向表中插入、更新或刪除數(shù)據(jù)等事件發(fā)生時被觸發(fā);數(shù)據(jù)定義語言觸發(fā)器(DDL,Data Definition Language),在創(chuàng)建、修改或刪除數(shù)據(jù)庫對象時觸發(fā);登錄觸發(fā)器,在登錄的身份驗證階段完成之后且用戶會話實際建立之前為響應 LOGON 事件而觸發(fā)[5]。
2 DML觸發(fā)器的分類
在觸發(fā)器中,應用最為廣泛當屬DML觸發(fā)器。DML 觸發(fā)器可用于強制業(yè)務規(guī)則和數(shù)據(jù)完整性、查詢其他表并包括復雜的 Transact-SQL 語句。
DML的觸發(fā)事件包括 INSERT、UPDATE 或 DELETE語句。 DML觸發(fā)器一旦被定義,任何用戶對表或視圖的Insert、Update和Delete操作均由服務器自動激活相應的觸發(fā)器,在DBMS核心層進行集中的完整性控制[6]。DML觸發(fā)器可分為After 觸發(fā)器、Instead of 觸發(fā)器、CLR觸發(fā)器。
After觸發(fā)器是指導致觸發(fā)器被觸發(fā)的事件被成功執(zhí)行后(如果是在存儲過程,而且有事務,則要在事務提交之后),觸發(fā)器才會被激活執(zhí)行,若激活操作違反約束或發(fā)生錯誤,則激活操作會被拒絕或回滾,觸發(fā)器不被觸發(fā);而Instead of 觸發(fā)器是指激活觸發(fā)器的操作(Insert、Update、Delete)被觸發(fā)器中所定義的操作替代,激活觸發(fā)器的語句并不被實際執(zhí)行,但數(shù)據(jù)更改的變動仍可反映到Inserted和Deleted兩張臨時表中;CLR觸發(fā)器將執(zhí)行托管代碼中編寫的方法,而不用執(zhí)行T-SQL存儲過程。
3 DML觸發(fā)器與約束
實體完整性(Entity Integrity)通?赏ㄟ^PRIMARY KEY約束 和 UNIQUE 約束進行強制;域完整性可通過CHECK 約束進行強制;引用完整性(Referential Integrity)則應通過 FOREIGN KEY 約束進行強制。 當約束支持的功能無法滿足應用程序的功能要求時,DML 觸發(fā)器則表現(xiàn)為比約束更為精細和強大的數(shù)據(jù)控制能力。
1) 約束通常通過標準化的系統(tǒng)錯誤信息來傳遞錯誤消息,DML觸發(fā)器可自定義消息和錯誤處理。
2) 若未使用REFERENCES 子句定義級聯(lián)引用完整性約束,則可通過DML 觸發(fā)器將更改或刪除以級聯(lián)方式傳遞給數(shù)據(jù)庫中的相關表。
3) DML觸發(fā)器可根據(jù)應用程序的需要定義比CHECK 約束定義的限制更為復雜的其他限制。
4) DML 觸發(fā)器可以防止惡意或錯誤的 INSERT、UPDATE 以及 DELETE 操作。例如,可通過觸發(fā)器對不可更新視圖進行數(shù)據(jù)操縱。
4 DML觸發(fā)器工作原理
觸發(fā)器由時間條件、觸發(fā)事件和動作組成。確定觸發(fā)器的邏輯結(jié)構,就是確定觸發(fā)器的時間條件、觸發(fā)事件和動作以及觸發(fā)器的選項[7]。將觸發(fā)器和觸發(fā)它的語句作為可在觸發(fā)器內(nèi)回滾的單個事務對待。如果檢測到錯誤則整個事務即自動回滾[8]。在使用觸發(fā)器過程中,因觸發(fā)器被觸發(fā)后所產(chǎn)生的Inserted和Deleted兩張邏輯表發(fā)揮著重要作用。它們具有只讀性,并在觸發(fā)器執(zhí)行完畢后從內(nèi)存中刪除,而非實際存儲在數(shù)據(jù)庫中的物理表。這兩張表的表結(jié)構與觸發(fā)器所在的數(shù)據(jù)表結(jié)構完全一致。
若觸發(fā)事件為Insert操作,觸發(fā)器被觸發(fā)后,將對觸發(fā)器所屬表新增記錄的副本填充至Inserted表中;若觸發(fā)事件為Update操作,觸發(fā)器被觸發(fā)后,將對觸發(fā)器所屬表被修改記錄更新后的副本填充至Inserted表中,將被修改記錄更新前的記錄副本填充至Deleted表中;若觸發(fā)事件為Delete操作,觸發(fā)器被觸發(fā)后,將對觸發(fā)器所屬表中被刪除記錄的副本填充至Deleted表。通過這兩張邏輯表,可了解數(shù)據(jù)在作前后的差異狀態(tài),并基于此差異采取行動。
5 DML觸發(fā)器的應用
下面以學生成績管理庫(PXSCJ)為例,說明觸發(fā)器在數(shù)據(jù)完整性方面的具體應用。PXSCJ庫包含學生信息表XSB(學號,姓名,性別,出生年月,專業(yè),總學分,備注);課程信息表KCB(課程號,課程名,開課學期,學時,學分);成績CJB表(學號,課程號,成績)。
5.1 強制參照完整性
在從表中創(chuàng)建觸發(fā)器,當向從表插入新記錄或更新記錄時,觸發(fā)器被觸發(fā),檢查假設插入或更新操作完成后,從表中外鍵的數(shù)據(jù)是否存在于主表中的主鍵或唯一鍵,若不存在則插入或更新操作不允許被執(zhí)行。同時,代碼設計應滿足于多行記錄同時入的情況。如為保證向成績表CJB插入或更新記錄后,該記錄的學號能存在于學生信息表XSB、課程號能存在于課程信息表KCB,創(chuàng)建觸發(fā)器CJB_ trigger。實現(xiàn)過程如下:
5.2 級聯(lián)更新或刪除
當需要實現(xiàn)主從表數(shù)據(jù)級聯(lián)一致時,可直接基于從表創(chuàng)建外鍵約束,但由于外鍵約束會導致當需要對主表的主鍵或唯一鍵進行修改或刪除操作時無法執(zhí)行。因此,通過創(chuàng)建觸發(fā)器,可實現(xiàn)主從表級聯(lián)更新或刪除,從而提高數(shù)據(jù)操作的靈活性。如:當修改學生信息表XSB中某個學生的學號時,能實現(xiàn)級聯(lián)修改該生在成績表CJB中對應的記錄的學號;當刪除學生信息表XSB中某個學生的記錄時,能實現(xiàn)級聯(lián)刪除該生在成績表CJB中對應的記錄,創(chuàng)建觸發(fā)器XSB_delup。同理,當修改課程信息表KCB中某門課程的課程號時,能實現(xiàn)級聯(lián)修改該生在成績表CJB中對應的記錄的課程號;當刪除課程信息表KCB中某門課程的記錄時,能實現(xiàn)級聯(lián)刪除該生在成績表CJB中對應的記錄,創(chuàng)建觸發(fā)器KCB_delup。實現(xiàn)過程如下:
5.3 實現(xiàn)用戶定義業(yè)務規(guī)則
在數(shù)據(jù)庫里,數(shù)據(jù)表之間經(jīng)常會出現(xiàn)某些數(shù)據(jù)列相互之間存在業(yè)務規(guī)則上的相關性,則可通過創(chuàng)建觸發(fā)器提高維護效率。當對表間相關列的數(shù)據(jù)進行增、改、刪的操作時,能同時自動更新對應列的數(shù)據(jù),使相關列之間的數(shù)據(jù)自動保持一致,從而降低人工維護成本。如:在學生信息表XSB、學生成績表CJB、課程信息表KCB中,有一個相關三張表的特殊列,即學生信息表XSB的總學分。當對CJB進行增、改、刪成績時,或?qū)CB的學分列進行修改時,要求XSB的總分列要實現(xiàn)同步更新。利用觸發(fā)器讓其實現(xiàn)自動更新,保證相關列數(shù)據(jù)的一致性。
1) 向?qū)W生成績表CJB添加學生課程成績時,若成績大于等于60時,即可獲得相應的學分,并重新累計于學生信息表XSB中的總學分列,當刪除學生成績表CJB中的記錄時,學生信息表XSB中的總學分應亦能自動發(fā)生更新。當對CJB表進行更新操作時,若修改列僅為課程號或成績時,則只需獲得記錄在被修改前后的總學分差值,然后累加至XSB表中對應記錄的原總學分即可。但若修改列為學號,則需修改XSB表中兩個學生的總學分。因此,必須對觸發(fā)器CJB_trigger進行進一步優(yōu)化和整合,最后代碼為:
5.4 更新不可更新視圖
在PXSCJ數(shù)據(jù)庫中創(chuàng)建視圖stu_view,包含學號、姓名、專業(yè)、課程號、課程名、成績。該視圖依賴于基表XSB、CJB、KCB,屬不可更新的視圖。通過在視圖上創(chuàng)建instead of觸發(fā)器,當向視圖插入數(shù)據(jù)時,分別向XSB、CJB、KCB插入數(shù)據(jù),從而實現(xiàn)向視圖插入數(shù)據(jù)的功能。
6 結(jié)束語
通過上述實例可知,觸發(fā)器在維護數(shù)據(jù)庫數(shù)據(jù)完整性時表現(xiàn)出強大的功能,尤其對于處理較為復雜的業(yè)務規(guī)則定義時所具備的靈活性,大大提高了數(shù)據(jù)庫系統(tǒng)的開發(fā)效率。值得注意的是觸發(fā)器不可濫用,尤其是當形成觸發(fā)器鏈的時候容易出現(xiàn)連環(huán)觸發(fā)而導致錯誤,并造成不必要的損耗[9]。
參考文獻:
[1] 360百科.數(shù)據(jù)完整性[EB/OL].(2023-04-14). .
[2] 劉艷春.運用SQL Server 開發(fā)軟件參照完整性實現(xiàn)方法[J].計算機技術與發(fā)展,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] 王珊,薩師煊.數(shù)據(jù)庫系統(tǒng)概論[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] 貝爾實驗室.數(shù)據(jù)庫系統(tǒng)概念[M].4版.北京:機械工業(yè)出版社,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.
信件結(jié)束語范文第5篇
關鍵詞 默認值;數(shù)據(jù)庫;圖書編目;影響
中圖分類號 G2 文獻標識碼 A 文章編號 1674-6708(2023)170-0072-02
1 圖書的機編錄入流程
首先要安排好圖書和期刊的編目工作錄入流程,然后再針對性研究各個環(huán)節(jié)對編目工作的影響。圖書錄入流程:
1)整理:將同一復本圖書整理排列在一起,將入同一庫室圖書整理排列在一起。例如:入社科庫和入自然科學庫的分開排列。
2)制定條碼:將制定好的條碼按大小順序粘貼在圖書上后,將圖書按條碼順序排列。
3)可依條碼大小依次用掃碼器將書目信息掃入編目系統(tǒng)(先掃ISBN碼)。
4)對MARC數(shù)據(jù)能套錄的套錄,但對套錄數(shù)據(jù)要認真核對各字段;不能套錄的圖書應作詳盡的著錄。
5)錄入館藏信息:錄入復本量、登錄號、條碼號、收藏庫室、種次號、著者號、索書號等館藏數(shù)據(jù)。
6)設計書標并打印、粘貼、驗收、入庫。
2 提高編目效率方法
在準備環(huán)節(jié)首先要有序,清楚圖書的歸類、整理、排序;期刊的整理裝訂應先裝訂后錄入還是先錄入合訂信息后再裝訂,對業(yè)務進程影響很大(另行探討)。
1)錄入環(huán)節(jié):首先能掃碼錄入盡量掃碼錄入;要充分利用ISBN、ISSN、lSRN、ISRC、統(tǒng)一刊號、統(tǒng)一發(fā)行號、條形碼、登錄號的掃碼功能;條形碼和登錄號應設為一致并自動生成。通過掃碼可大大提高編目效率并且準確率很高。其次在前臺對一些各類文獻共性相同的錄入數(shù)據(jù),能在前臺設為缺省默認的則設為缺省默認。在前臺實現(xiàn)不了的,應研究在后臺能否實現(xiàn)創(chuàng)建默認。當然,后臺研究層次更深,需研究性結(jié)合大量DB及DBMS知識。
2)驗收環(huán)節(jié):首先完成錄入的圖書和期刊(合訂冊)一定還要按登錄號順序擺放,千萬不能亂;以便為設計打印完成的書標和書脊作好粘貼準備。其次要研究人工驗收環(huán)節(jié)與錄入工作流程的嵌入節(jié)點,使錄入錯誤在驗收的各個節(jié)點上盡早提前發(fā)現(xiàn);因糾錯工作越提前,對后續(xù)環(huán)節(jié)的影響就越小。如在已粘貼完書標后糾錯,會是很麻煩,將大大影響編目效率。
3 默認值約束
目前,絕大多數(shù)中小圖書館的集成管理系統(tǒng),都是建立在SQLserver數(shù)據(jù)庫管理軟件系統(tǒng)下創(chuàng)建的數(shù)據(jù)庫基礎上的前臺應用;它的應用結(jié)構屬客戶機/服務器結(jié)構。
文獻資源的編目、標引、著錄工作是通過前臺應用系統(tǒng)的編目模塊、驗收模塊或維護模塊錄入的。在錄入過程中有很多著錄數(shù)據(jù)是有共性的。例如:經(jīng)整理歸類后,同一批次圖書的復本量、入藏庫室等是相同的;同一批期刊的區(qū)分號,裝訂后的入藏庫室等也是相同的。這樣就引發(fā)一個課題:這些同一批資源個體都相同的數(shù)據(jù),就無需一次次的每條記錄重復錄入;如果在前臺能夠設為默認都要設為默認。但由于不同開發(fā)商開發(fā)的前臺應用系統(tǒng)不同;在前臺不同應用系統(tǒng)對默認的應用也是不同的,且大多數(shù)前臺集成管理系統(tǒng),對很多錄入數(shù)據(jù)在前臺是不能進行默認設置的。
但基于所有圖書集成管理系統(tǒng)的共同特點,幾乎所有中小圖書館集成管理系統(tǒng)的后臺數(shù)據(jù)庫創(chuàng)建和管理,都是通過SQLserver數(shù)據(jù)庫管理軟件來完成的;那么可不可以通過SQLserver來創(chuàng)建一些前臺不能設置的默認哪?經(jīng)深入研究后得出的答案是可行的。經(jīng)研究發(fā)現(xiàn),在SQLserver的DBMS中,為實現(xiàn)數(shù)據(jù)完整性(也就是實現(xiàn)數(shù)據(jù)的正確性和相容性),要通過T-SQL語言加在數(shù)據(jù)庫數(shù)據(jù)之上一些語義約束條件;這些約束有的是列級(字段)約束、元組(行)約束,有的是關系約束。通過T-SQL語句能夠?qū)崿F(xiàn)的完整性約束有:1)實體完整性(PRIMARY KEY)――行約束。2)參照完整性(F0REIGN KEY)――關系約束。3)用戶定義完整性:(1)默認值約束(DEFAULT);(2)檢查約束(CHECK)也叫列取值范圍約束;(3)惟一值約束(UNIQUE)。
為實現(xiàn)用戶定義完整性,其手段之一是默認值約束。默認值約束用Default約束(也叫缺省值約束)來實現(xiàn),它用于提供數(shù)據(jù)庫基本表中列的默認值。也就是說,當數(shù)據(jù)庫中的某一基本表(例如館藏表)的某一列(例如收藏庫室列)需要創(chuàng)建默認值(如默認值為“自然科學書庫”)時,是可以通過Default約束來實現(xiàn)的。創(chuàng)建后,默認值約束的特點是:當表中插入數(shù)據(jù)時,如果沒有為有“Default約束”的列提供值,則系統(tǒng)自動使用“DefauIt約束”定義的默認值。
4 后臺創(chuàng)建默認值約束對前臺編目著錄的影響
由圖書管理系統(tǒng)的應用結(jié)構(C/S結(jié)構)可以分析出,前臺的默認值設置都是通過前臺應用程序提出給后臺DBMS后,由后臺創(chuàng)建的,而通過后臺創(chuàng)建默認值約束是完全可以大大提高編目效率的。下面通過實例來說明具體創(chuàng)建方法。T-SQL編程方法如下面實例:
1)創(chuàng)建復本量的默認值為5本。
打開服務器中的SQLserver軟件中的“企業(yè)管理器”――打開“工具”中的“SQL查詢分析器”。寫入T-SQL命令:
USE 中文圖書(庫名) ALTER TABLE 對應表名(如‘訂購表’)
ADD C0NSTRAINT 約束名(如DF-FB) DEFAULT 5 F0R 復本量(字段名)
GO
執(zhí)行程序后創(chuàng)建完成。
2)創(chuàng)建已裝訂期刊的收藏庫室的默認值為“過刊庫”。
USE 中文期刊(庫名) ALTER TABLE 館藏信息(表名)
ADD CONSTRAINT DF-GCG(約束名) DEFAULT‘過刊庫’FOR 收藏庫室(字段名) GO
若要更改已建立默認值,必須先刪除已創(chuàng)建的默認值約束。
3)刪除例2中創(chuàng)建的約束名為DF-GCS的“社會科學”默認值。
USE 中文圖書 ALTER TABLE 館藏表
DROP CONSTRAINT DF-GCS GO
執(zhí)行程序后,默認值約束將終止。若要創(chuàng)建新默認值,只要按例2中語法創(chuàng)建即可。
通過1)、2)例中T-SQL語句的執(zhí)行,可完成創(chuàng)建圖書編目數(shù)據(jù)的復本量為5本、期刊編目數(shù)據(jù)的收藏庫室為“過刊庫”。默認值的創(chuàng)建完成后,在前臺編目中:圖書的復本量就默認為5本,期刊的收藏庫室就默認為“過刊庫”書庫。通過3)例可終止、取消默認值;沒有默認值,前臺著錄時就要反復、逐一錄入需著錄信息。
5 結(jié)論
版權聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 yyfangchan@163.com (舉報時請帶上具體的網(wǎng)址) 舉報,一經(jīng)查實,本站將立刻刪除