先虹伶
摘 要:在本研究中針對(duì)sql server登錄觸發(fā)器技術(shù)進(jìn)行分析,并將其運(yùn)用于高校教務(wù)管理系統(tǒng)中,表明該登陸觸發(fā)器信息輸入可實(shí)現(xiàn)數(shù)據(jù)完整性維護(hù),具有良好的應(yīng)用效果,希望能給相關(guān)工作人員提供幫助。
關(guān)鍵詞:SQLSERVER;觸發(fā)器;數(shù)據(jù);完整性
近年來(lái)隨著信息技術(shù)的發(fā)展,以及高校不斷深入開(kāi)展教學(xué)改革,其教學(xué)管理方面逐漸實(shí)現(xiàn)變革,隨近年來(lái)推行學(xué)分制使高校教務(wù)管理工作日益復(fù)雜,因此對(duì)于高校教務(wù)管理來(lái)說(shuō),紛紛逐漸采用教務(wù)管理系統(tǒng),在該系統(tǒng)中學(xué)生課程是重要數(shù)據(jù),也是貫穿排課,選課,教學(xué)計(jì)劃,成績(jī),基本信息等多項(xiàng)管理活動(dòng),是與教務(wù)系統(tǒng)中所有子系統(tǒng)具有一定聯(lián)系的,就目前高校所使用的教學(xué)管理系統(tǒng)來(lái)說(shuō)可實(shí)現(xiàn)日常教學(xué)管理功能,但由于在系統(tǒng)設(shè)計(jì)過(guò)程上存在一些缺陷,導(dǎo)致后期在數(shù)據(jù)庫(kù)完整性維護(hù)方面存在一些難度。比如現(xiàn)有系統(tǒng)中對(duì)于學(xué)生學(xué)習(xí)管理以及選課數(shù)據(jù)是無(wú)關(guān)聯(lián)性的數(shù)據(jù)表,當(dāng)學(xué)生退學(xué)時(shí)其學(xué)習(xí)信息發(fā)生變動(dòng)將會(huì)刪除基本信息,但與其相關(guān)的選課數(shù)據(jù)仍在另一數(shù)據(jù)庫(kù)中,導(dǎo)致內(nèi)部數(shù)據(jù)出現(xiàn)不一致,最終該學(xué)生所選課程成績(jī)無(wú)法提交。目前對(duì)于教務(wù)管理系統(tǒng)來(lái)說(shuō),無(wú)法解決數(shù)據(jù)完整性的問(wèn)題,尤其對(duì)于教務(wù)管理人員來(lái)說(shuō)需要避免出現(xiàn)數(shù)據(jù)不一致的問(wèn)題,因此在本研究中提出登錄觸發(fā)器以解決數(shù)據(jù)完整性。
1登錄觸發(fā)器
數(shù)據(jù)完整性從一定程度上也是指數(shù)據(jù)庫(kù)中的數(shù)據(jù)有效性,正確性,可防止數(shù)據(jù)庫(kù)存在語(yǔ)義不符合規(guī)定的數(shù)據(jù),或者系統(tǒng)輸入輸出無(wú)效信息,在數(shù)據(jù)庫(kù)中數(shù)據(jù)完整性主要包括參照、實(shí)體、用戶自定義完整性,當(dāng)數(shù)據(jù)完整性存在問(wèn)題時(shí),可以借助登錄觸發(fā)器進(jìn)行技術(shù)檢測(cè)。觸發(fā)器是通過(guò)事件觸發(fā)而實(shí)現(xiàn)自動(dòng)執(zhí)行的程序,可用于確保數(shù)據(jù)完整性,是基于表實(shí)現(xiàn)創(chuàng)建或多個(gè)數(shù)據(jù)修改的相關(guān)聯(lián),在指定表中當(dāng)數(shù)據(jù)發(fā)生變化,可以自動(dòng)生成。當(dāng)用戶對(duì)數(shù)據(jù)表進(jìn)行修改刪除時(shí),該觸發(fā)器可自動(dòng)執(zhí)行功能,因此觸發(fā)器能夠從一定程度上確保表實(shí)施完整性約束,其保護(hù)數(shù)據(jù)發(fā)生變化時(shí)會(huì)自動(dòng)激活,防止出現(xiàn)數(shù)據(jù)的錯(cuò)誤修改,在數(shù)據(jù)庫(kù)中按照事件不同,可將發(fā)起分為ddl和dml觸發(fā)器,其中后者是目前數(shù)據(jù)庫(kù)發(fā)生數(shù)據(jù)語(yǔ)言,使觸發(fā)器被觸發(fā)執(zhí)行,目前主要運(yùn)用于修改數(shù)據(jù),強(qiáng)制執(zhí)行業(yè)務(wù)以及數(shù)據(jù)完整性檢查中,而前者前者是在數(shù)據(jù)庫(kù)或者服務(wù)器出現(xiàn)語(yǔ)義語(yǔ)音事件時(shí)可以被調(diào)用,結(jié)合觸發(fā)時(shí)機(jī)可將其分為after和instead of觸發(fā)器,前者是指操作完成執(zhí)行之后觸發(fā),而后者是在操作被執(zhí)行前觸發(fā)并能夠用于替代這種操作,結(jié)合觸發(fā)方式觸發(fā)器分為update,insert,delete型觸發(fā)器,在應(yīng)用觸發(fā)器時(shí)通常設(shè)計(jì)兩個(gè)表,包括delete和insert的表,在向表中進(jìn)行數(shù)據(jù)插入,更新時(shí)會(huì)觸發(fā)insert,觸發(fā)器執(zhí)行功能,新的記錄能夠直接插入到相應(yīng)的Excel表中,以及觸發(fā)器中delete表可用于保存已經(jīng)刪除的數(shù)據(jù)記錄,當(dāng)觸發(fā)delete觸發(fā)器時(shí)能夠在第2列表中存放刪除記錄,修改記錄實(shí)際上是與插入記錄相同的,同時(shí)進(jìn)行舊記錄的刪除,當(dāng)定義update觸發(fā)器表修改時(shí),表中原始數(shù)據(jù)會(huì)移動(dòng)到delete表,經(jīng)過(guò)修改之后將所有的數(shù)據(jù)插入到insert的表,這兩個(gè)表是與被觸發(fā)表具有相似結(jié)構(gòu)的,在系統(tǒng)中儲(chǔ)存無(wú)法實(shí)現(xiàn)數(shù)據(jù)修改,但用戶可以引用數(shù)據(jù)表,當(dāng)觸發(fā)器執(zhí)行時(shí)兩個(gè)表也會(huì)被系統(tǒng)自動(dòng)刪除,在觸發(fā)器創(chuàng)建過(guò)程中需要制定下列內(nèi)容,觸發(fā)器的名稱基于表、視圖種類激活的修改語(yǔ)句,執(zhí)行語(yǔ)句可以利用sql語(yǔ)句進(jìn)行觸發(fā)器的創(chuàng)建,具體格式如下。
2教務(wù)管理系統(tǒng)中登錄觸發(fā)器設(shè)計(jì)流程
對(duì)于目前的教務(wù)管理系統(tǒng)來(lái)說(shuō),可將其分為選課管理,學(xué)籍管理,成績(jī),排課管理系統(tǒng)在不同的子系統(tǒng)中,比如學(xué)籍管理系統(tǒng)學(xué)籍發(fā)生變動(dòng),對(duì)于數(shù)據(jù)完整性具有嚴(yán)格要求,變動(dòng)學(xué)習(xí)會(huì)影響學(xué)生的選課數(shù)據(jù)成績(jī),如果僅依靠人為方式進(jìn)行數(shù)據(jù)變動(dòng),則會(huì)使工作人員面臨較大的工作量,而且很容易出現(xiàn)錯(cuò)誤,如果依靠程序調(diào)用sql語(yǔ)句時(shí)會(huì)出現(xiàn)浪費(fèi)系統(tǒng)資源的問(wèn)題,增加設(shè)計(jì)難度,引入觸發(fā)器之后,學(xué)習(xí)變動(dòng)可觸發(fā)相應(yīng)的選課成績(jī)數(shù)據(jù)實(shí)現(xiàn)自動(dòng)更新,在這一過(guò)程中可以在數(shù)據(jù)庫(kù)服務(wù)器上完成提升系統(tǒng)運(yùn)行性能,比如以學(xué)生退學(xué)作為研究對(duì)象,在整個(gè)管理系統(tǒng)中需要?jiǎng)h除相應(yīng)學(xué)習(xí)信息,在沒(méi)有觸發(fā)器使用的情況下,能夠分別對(duì)學(xué)生成績(jī)表信息表刪除對(duì)應(yīng)信息記錄,這種操作能夠確保數(shù)據(jù)完整性,同時(shí)引入這種觸發(fā)器之后,管理人員只需要?jiǎng)h除信息表信息便可以自動(dòng)刪除相應(yīng)的子系統(tǒng)中的詳細(xì)記錄,簡(jiǎn)化流程操作,同時(shí)還能夠從一定程度上確保數(shù)據(jù)的完整性。
在數(shù)據(jù)庫(kù)中通常會(huì)存在多個(gè)關(guān)聯(lián)表操作,進(jìn)一步能夠闡明觸發(fā)器確保數(shù)據(jù)完整性的使用應(yīng)用,在數(shù)據(jù)庫(kù)程序設(shè)計(jì)中經(jīng)常會(huì)遇到一個(gè)數(shù)據(jù)表操作,同時(shí)還會(huì)關(guān)聯(lián)多個(gè)數(shù)據(jù)表,確保數(shù)據(jù)表的數(shù)據(jù)完整性,一致性,通常采用的數(shù)據(jù)表包括存儲(chǔ)用戶信息表,存儲(chǔ)大版塊信息表,回復(fù)信息表等。在具體使用觸發(fā)器時(shí)需要進(jìn)行需求分析,之后構(gòu)建觸發(fā)器,執(zhí)行觸發(fā)器流程,進(jìn)而能夠使數(shù)據(jù)庫(kù)中的各個(gè)關(guān)聯(lián)表記錄保持一致,該過(guò)程是數(shù)據(jù)庫(kù)自動(dòng)完成的。
3觸發(fā)器實(shí)現(xiàn)分析
在本研究中我們以學(xué)生數(shù)據(jù)管理作為研究對(duì)象,進(jìn)一步說(shuō)明教務(wù)系統(tǒng)中登錄出觸發(fā)器的設(shè)計(jì)和具體實(shí)現(xiàn)流程。比如某學(xué)生課程成績(jī)分別對(duì)應(yīng)的內(nèi)容,包括學(xué)號(hào),姓名,性別,專業(yè),班級(jí),出生年月,籍貫;課程編號(hào),名稱類型,學(xué)時(shí),學(xué)分;學(xué)號(hào),成績(jī),課程編號(hào)等。如果出現(xiàn)學(xué)生退學(xué),則管理人員需要及時(shí)刪除相對(duì)應(yīng)表中的信息記錄,同時(shí)還需要在成績(jī)表中刪除選課記錄,確保數(shù)據(jù)的一致性完整性,構(gòu)建觸發(fā)器代碼如下。
當(dāng)出現(xiàn)學(xué)號(hào)變更時(shí),此時(shí)的管理任務(wù)需要修改學(xué)生表的學(xué)號(hào),并修改選課表學(xué)號(hào),確保數(shù)據(jù)的一致性完整性,具體的觸發(fā)器代碼建立如下所示。
當(dāng)新開(kāi)設(shè)必修課時(shí),在課本中插入對(duì)應(yīng)的課程信息后,還需要向成績(jī)表中插入相關(guān)記錄,可實(shí)現(xiàn)成績(jī)自動(dòng)填充,確保數(shù)據(jù)的一致性完整性,觸發(fā)器構(gòu)建代碼如下所示。
當(dāng)前在高校教務(wù)管理過(guò)程中,為確保數(shù)據(jù)的完整性和一致性,在系統(tǒng)設(shè)計(jì)開(kāi)發(fā)時(shí),需要了解目前教務(wù)系統(tǒng)對(duì)于數(shù)據(jù)操作的相關(guān)規(guī)則,能夠合理進(jìn)行觸發(fā)器的設(shè)計(jì),確保數(shù)據(jù)完整性。
小結(jié)
在本研究中以某教務(wù)管理系統(tǒng)數(shù)據(jù)完整性約束作為研究對(duì)象進(jìn)行深入分析,結(jié)合教務(wù)管理工作特點(diǎn),能夠?qū)ο到y(tǒng)典型觸發(fā)器進(jìn)行設(shè)計(jì),通過(guò)sqls server數(shù)據(jù)庫(kù)實(shí)現(xiàn)確保數(shù)據(jù)完整性,這對(duì)于教務(wù)管理系統(tǒng)人員來(lái)說(shuō)是十分重要的,能夠確保數(shù)系統(tǒng)實(shí)現(xiàn)高效運(yùn)行,提升系統(tǒng)的安全性,可靠性,在教務(wù)系統(tǒng)中利用這種登錄觸發(fā)器可解決典型問(wèn)題,該方法可被運(yùn)用于其他數(shù)據(jù)庫(kù)的運(yùn)行維護(hù)中。
參考文獻(xiàn)
[1]趙輝, 陸冷飛. SQL Server觸發(fā)器在保持?jǐn)?shù)據(jù)庫(kù)完整性中的應(yīng)用[J]. 電腦開(kāi)發(fā)與應(yīng)用, 2007, 20(3):43-45.
[2]王軍弟, 劉瑞玲. SQL Server中約束與觸發(fā)器差異比較[J]. 電腦與信息技術(shù), 2011(02):79-81.
[3]沈晨鳴. 基于SQL SERVER觸發(fā)器技術(shù)的實(shí)現(xiàn)[J]. 江蘇廣播電視大學(xué)學(xué)報(bào), 2002, 13(3).