時間:2023-04-08 11:26:42
序論:好文章的創(chuàng)作是一個不斷探索和完善的過程,我們?yōu)槟扑]十篇數(shù)據(jù)庫設(shè)計論文范例,希望它們能助您一臂之力,提升您的閱讀品質(zhì),帶來更深刻的閱讀感受。
2數(shù)據(jù)庫自動分片設(shè)計
管理系統(tǒng)在運(yùn)行中會產(chǎn)生大量的寫操作,進(jìn)而帶來頻繁的磁盤I/O操作,在大數(shù)據(jù)下,最好采用將數(shù)據(jù)庫分布在多臺服務(wù)器上,即分片[7]。本文采用Auto-Sharding(自動分片)及Replic-Set(復(fù)本集)相結(jié)合的方式來減輕單個數(shù)據(jù)庫服務(wù)器的負(fù)載,即在每臺Server上各自運(yùn)行一個實例,組成一個Replic-Set,最后再各運(yùn)行一個實例,組成ConfigServer。直接執(zhí)行Addshard操作即可增加分片以緩解服務(wù)器的壓力,實現(xiàn)動態(tài)擴(kuò)展。分片的實現(xiàn)重點在于片鍵設(shè)計。本文將保存天線參數(shù)信息的集合聲明了一個復(fù)合片鍵{Lacci:1,Day:1}。當(dāng)來自不同的小區(qū)(可以根據(jù)Lacci進(jìn)行判斷)向集群系統(tǒng)插入數(shù)據(jù)時,可以預(yù)計到在大部分情況下,同一小區(qū)的數(shù)據(jù)會落在單個塊或片上。
3數(shù)據(jù)庫查詢的實現(xiàn)
數(shù)據(jù)查詢功能為本數(shù)據(jù)庫設(shè)計的重要功能之一。數(shù)據(jù)庫將小區(qū)信息、天線參數(shù)等相關(guān)的數(shù)據(jù)信息根據(jù)用戶的要求,以界面或報表的形式全部或部分的顯示給用戶。基于本數(shù)據(jù)庫的設(shè)計,用戶通過數(shù)據(jù)查詢菜單進(jìn)入相應(yīng)查詢界面,獲取小區(qū)信息、終端信息及告警信息等。實現(xiàn)“天線工程參數(shù)查詢”功能的工作流程如圖3所示。為了實現(xiàn)小區(qū)天線參數(shù)查詢功能,客戶端需要向數(shù)據(jù)庫發(fā)送2次請求,用戶根據(jù)需求,向控制器發(fā)送查詢請求,控制器處理查詢命令,對相應(yīng)的小區(qū)進(jìn)行信息查詢,待小區(qū)返回信息后,將用戶的查詢命令發(fā)送至對應(yīng)小區(qū),根據(jù)需求讀取有用信息,并返回給用戶。跟關(guān)系型數(shù)據(jù)庫相比,由于省去了大量的多表連接操作,實際上查詢的效率要高于基于關(guān)系型數(shù)據(jù)庫的多表連接查詢。查詢工作的SQL語句如下。
4數(shù)據(jù)庫備份與恢復(fù)
數(shù)據(jù)安全在數(shù)據(jù)庫設(shè)計中有很重要的地位。在各種意外情況下,如計算機(jī)硬件故障等,對數(shù)據(jù)庫進(jìn)行備份和恢復(fù)能夠保障數(shù)據(jù)的完整性和安全性,使得數(shù)據(jù)損失降到最小[8]。本數(shù)據(jù)庫設(shè)計的備份選用的是副本集的方式[7]:在主節(jié)點上進(jìn)行操作,寫入的數(shù)據(jù)被一步地同步到所有的從節(jié)點上,并從主節(jié)點或從節(jié)點上讀取數(shù)據(jù),如果主節(jié)點由于某些原因斷線,會自動將一個從節(jié)點提升為主節(jié)點。在查詢分析器中運(yùn)用SQL語句完成數(shù)據(jù)庫的備份和恢復(fù)。在數(shù)據(jù)庫管理界面中,用戶通過數(shù)據(jù)庫備份與恢復(fù)功能進(jìn)行相應(yīng)操作,確保數(shù)據(jù)的正確行和完整性。
2.信息資料子模塊信息資料子模塊主要實現(xiàn)了專業(yè)信息、課程信息、學(xué)生基本信息和成績的增加、修改和刪除操作。此功能模塊的設(shè)計,都是便于信息查詢模塊的實現(xiàn),重要的是所有的專業(yè)、課程、學(xué)生及成績信息都必須是真實可靠的,否則將會影響到信息查詢模塊功能的實現(xiàn),同時,填加學(xué)生基本信息時,要考慮到整個系統(tǒng)各個模塊之間的聯(lián)系,因為所有其他信息功能的實現(xiàn)都與學(xué)生基本信息有著關(guān)聯(lián)。
3.信息查詢子模塊(1)課程查詢:根據(jù)查詢內(nèi)容(按專業(yè)、按所屬院系、按課程名稱)來查詢學(xué)生的課程信息。(2)學(xué)生資料查詢:根據(jù)查詢內(nèi)容(按學(xué)號、按姓名、按專業(yè)、按班級)來查詢學(xué)生的基本信息。(3)成績查詢:根據(jù)查詢內(nèi)容(按學(xué)號、按姓名、按專業(yè)、按課程)來查詢學(xué)生的成績信息。
二、數(shù)據(jù)庫設(shè)計與實現(xiàn)
多數(shù)據(jù)庫系統(tǒng)是分布式數(shù)據(jù)庫系統(tǒng)的一個重要分支,是一個新興的數(shù)據(jù)庫研究領(lǐng)域。隨著企業(yè)規(guī)模的不斷擴(kuò)大,各部門所需信息既相互交錯,又相對獨(dú)立。這就要求各部門所用的數(shù)據(jù)庫既能高度自治地工作,又能進(jìn)行信息共享。
DM2是采用客戶/服務(wù)器模型,客戶機(jī)與服務(wù)器,服務(wù)器與服務(wù)器均通過網(wǎng)絡(luò)互連,通過消息相互通訊,組成一個緊密耦合的分布式數(shù)據(jù)庫系統(tǒng)。它的工作流程如下:客戶機(jī)登錄到一臺服務(wù)器上,這臺服務(wù)器便成為它的服務(wù)器;它接收來自客戶機(jī)的消息,然后根據(jù)全局?jǐn)?shù)據(jù)字典決定是自己獨(dú)立完成該操作,還是與其它服務(wù)器協(xié)作處理這條消息,處理完成之后,再由服務(wù)器將處理結(jié)果返回給客戶機(jī)。由于DM2上各個服務(wù)器站點的全局字典完全相同,任何全局表的信息都會記入全局字典。若用它來構(gòu)建一個企業(yè)的數(shù)據(jù)庫系統(tǒng),則大量只對企業(yè)某部門有用的信息將會充斥在各部門所有服務(wù)器的全局字典中,增加了冗余。而且,當(dāng)對全局表進(jìn)行DDL操作時,為了確保全局字典的一致性,須對所有服務(wù)器的全局字典進(jìn)行加鎖。DM2對全局字典的封鎖方式是采用令牌環(huán)方式,即令牌繞虛環(huán)(非實環(huán))傳輸,某個服務(wù)器想對全局字典進(jìn)行操作,必須等令牌到達(dá)該服務(wù)器才可以執(zhí)行。每個部門建立的全局表絕大多數(shù)只對本部門有用,當(dāng)對這些表進(jìn)行DDL操作時,卻要對所有服務(wù)器的全局字典進(jìn)行封鎖,通過令牌來實現(xiàn)對全局字典的互斥訪問。這嚴(yán)重?fù)p害了數(shù)據(jù)庫的效率。
為彌補(bǔ)以上不足,在DM2的改進(jìn)版本DM3中增加了協(xié)調(diào)器,用以聯(lián)接各個獨(dú)立的DM3數(shù)據(jù)庫子系統(tǒng),并協(xié)調(diào)各子系統(tǒng)間的各種關(guān)系,使各子系統(tǒng)既能高度自治地工作,又能進(jìn)行有效的信息共享。
一、多數(shù)據(jù)庫體系結(jié)構(gòu)
本系統(tǒng)可看作多個數(shù)據(jù)庫子系統(tǒng)被協(xié)調(diào)器聯(lián)起來的,高度自治的一個聯(lián)邦數(shù)據(jù)庫系統(tǒng)。其中,每個子系統(tǒng)獨(dú)立處理本系統(tǒng)內(nèi)部的事務(wù),而子系統(tǒng)間的信息共享由復(fù)制技術(shù)提供,副本間的一致性由協(xié)調(diào)器協(xié)調(diào)處理,處理所需的信息在初始化時寫入?yún)f(xié)調(diào)器的組間數(shù)據(jù)字典中。當(dāng)對某子系統(tǒng)中的一份數(shù)據(jù)副本進(jìn)行修改時,該子系統(tǒng)會將修改通知協(xié)調(diào)器,由協(xié)調(diào)器對該數(shù)據(jù)的其它副本進(jìn)行修改,從而保證了所有副本的一致性。
由以上可知,子系統(tǒng)彼此并不直接接觸,而是各自都與協(xié)調(diào)器直接相聯(lián),由協(xié)調(diào)器統(tǒng)一管理子系統(tǒng)間的通信。這樣,當(dāng)子系統(tǒng)對副本進(jìn)行修改時,不必關(guān)心相應(yīng)的子系統(tǒng)處于何種狀態(tài),也不必等待回應(yīng)消息,以及異常處理,所有這些都由協(xié)調(diào)器進(jìn)行管理。因此,既提高了系統(tǒng)運(yùn)行的效率,也保證了子系統(tǒng)的獨(dú)立性。
協(xié)調(diào)器主要有三大功能,首先,它對協(xié)調(diào)器和服務(wù)器進(jìn)行初始化,并將有關(guān)信息存入組間字典;其次,它管理不同子系統(tǒng)間的通信,維護(hù)副本的一致性;最后,它在子系統(tǒng)出現(xiàn)崩潰時,進(jìn)行異常管理及恢復(fù)工作。
二、多數(shù)據(jù)庫互聯(lián)機(jī)制的主要策略
多個DM3系統(tǒng)間的信息共享是通過副本實現(xiàn)的,副本的一致性是由協(xié)調(diào)器來維持的,是一種弱一致性。通常,多數(shù)據(jù)庫系統(tǒng)間的一致性是通過協(xié)調(diào)器周期性地訪問服務(wù)器的日志來完成的。由于副本的更新帶有隨機(jī)性,因此,若采用這種方法,可能數(shù)據(jù)被修改多次,但其相對應(yīng)的副本仍未被修改,這樣就損害了數(shù)據(jù)的一致性;也可能數(shù)據(jù)并未被修改,但協(xié)調(diào)器已多次訪問了服務(wù)器的日志了,這樣就降低了系統(tǒng)的效率。
所以,本系統(tǒng)采用的方法是當(dāng)數(shù)據(jù)被修改時,由服務(wù)器通知協(xié)調(diào)器有關(guān)信息,再由協(xié)調(diào)器通知相關(guān)系統(tǒng),修改相關(guān)數(shù)據(jù)。這樣,數(shù)據(jù)的修改及時(仍然是弱一致性),而協(xié)調(diào)器也不會在數(shù)據(jù)未被修改的情況下訪問服務(wù)器,提高了準(zhǔn)確性。
為了使協(xié)調(diào)器正常工作,我們對底層數(shù)據(jù)庫管理系統(tǒng)DM2進(jìn)行了修改。在基表控制塊TV_CTRL_BLOCK中增加一項IsReplication。建表時,該項初始化為false;當(dāng)為該表建立一個副本時,該項賦值為true。具體算法如下。
1、初始化算法。
協(xié)調(diào)器:從用戶或應(yīng)用程序接收待連接的兩個系統(tǒng)中的服務(wù)器名,需復(fù)制的表名;分別登錄到兩個系統(tǒng)的服務(wù)器上;向存有待復(fù)制表的服務(wù)器發(fā)預(yù)復(fù)制消息;等待服務(wù)器消息;若失敗,發(fā)一條失敗的消息給服務(wù)器和用戶或應(yīng)用程序;若成功,從消息中取出待復(fù)制表的有關(guān)信息,根據(jù)這些信息,發(fā)一條建表消息給另一個系統(tǒng)的服務(wù)器;等待服務(wù)器消息;若失敗,發(fā)一條失敗的消息給服務(wù)器和用戶或應(yīng)用程序;若成功,調(diào)數(shù)據(jù)轉(zhuǎn)移程序,進(jìn)行數(shù)據(jù)復(fù)制;將有關(guān)信息寫入組間字典,退出。服務(wù)器:當(dāng)服務(wù)器收到預(yù)復(fù)制消息后,將基表控制塊TV_CTRL_BLOCK中的IsReplication賦為true。同時,取出待復(fù)制表的有關(guān)信息,組成應(yīng)答消息發(fā)給協(xié)調(diào)器。當(dāng)服務(wù)器收到失敗的消息后,將基表控制塊TV_CTRL_BLOCK中的IsReplication賦為false。
2、維護(hù)算法。
協(xié)調(diào)器:從組間字典讀出相關(guān)信息,根據(jù)這些信息,登錄到相應(yīng)系統(tǒng)上;等待消息;從某系統(tǒng)的服務(wù)器上收到一條修改消息后,通過查找組間字典,確定該消息的目的地,然后將它轉(zhuǎn)發(fā)過去;若失敗,定時重發(fā)。
1.1教學(xué)內(nèi)容分析
學(xué)習(xí)《數(shù)據(jù)庫技術(shù)》課程前學(xué)習(xí)者已經(jīng)學(xué)習(xí)了《計算機(jī)技術(shù)基礎(chǔ)》、《C語言》和《數(shù)據(jù)結(jié)構(gòu)》等先行課程,“概念結(jié)構(gòu)設(shè)計”教學(xué)內(nèi)容安排上是在數(shù)據(jù)庫基本概念、關(guān)系數(shù)據(jù)庫、SQL語言和關(guān)系數(shù)據(jù)理論之后,“概念結(jié)構(gòu)設(shè)計”部分包括概念結(jié)構(gòu)設(shè)計的概念、方法與步驟、數(shù)據(jù)抽象和視圖的集成。本部分內(nèi)容的重點是概念結(jié)構(gòu)設(shè)計的方法。難點是根據(jù)具體系統(tǒng)內(nèi)容的描述設(shè)計基本E-R圖。
1.2學(xué)習(xí)者動機(jī)分析
“概念結(jié)構(gòu)設(shè)計”較抽象,學(xué)習(xí)者需要從復(fù)雜的實際應(yīng)用中找出數(shù)據(jù)庫設(shè)計中的關(guān)鍵因素,學(xué)習(xí)者尚不知該內(nèi)容在整個數(shù)據(jù)庫設(shè)計中的重要作用,鑒于此內(nèi)容的難度較大,易使學(xué)習(xí)者知難而退,對學(xué)習(xí)者學(xué)習(xí)的積極性產(chǎn)生負(fù)面影響。
2動機(jī)策略設(shè)計及實施
2.1課程導(dǎo)入
2.1.1教學(xué)內(nèi)容
將49名學(xué)習(xí)者分為5個小組,利用課前時間每組分別分析淘寶、京東、當(dāng)當(dāng)網(wǎng)、1號店、天貓的網(wǎng)上購物流程,并分組進(jìn)行調(diào)查匯報。提出問題:你分析系統(tǒng)中的商品有哪些屬性?訂單包括哪些內(nèi)容?訂單與客戶和商品之間的聯(lián)系及涉及的實體有哪些?訂單有哪些狀態(tài)?知識回顧:實體、屬性和聯(lián)系的概念,選課E-R模型實例。
2.1.2動機(jī)策略應(yīng)用
注意策略:通過問題引入,讓學(xué)習(xí)者主動思考,引起學(xué)習(xí)者有意注意。相關(guān)策略:通過知識回顧,幫助學(xué)習(xí)者建立已有的E-R模型與概念結(jié)構(gòu)模型設(shè)計之間的聯(lián)系,建立腳手架從而降低新知識學(xué)習(xí)難度。自信策略:選取學(xué)習(xí)者們熟知的購物網(wǎng)站為例,增強(qiáng)學(xué)習(xí)者信心。
2.2課堂教學(xué)
2.2.1教學(xué)內(nèi)容
基礎(chǔ)任務(wù):定義購物網(wǎng)站生成訂單的事件,通過E-R模型進(jìn)行概念結(jié)構(gòu)設(shè)計。匯總各小組提交的設(shè)計結(jié)果,總結(jié)學(xué)習(xí)者的概念結(jié)構(gòu)模型設(shè)計,如圖1所示。來源:黑龍江省哲學(xué)社會科學(xué)研究規(guī)劃項目(16EDE07)和哈爾濱師范大學(xué)深化教育教學(xué)綜合改革項目(X2015-2-003)的研究成果。提高任務(wù):上述模型中當(dāng)客戶提交訂單但未購買商品將減少商品的庫存,如何解決這一問題呢?請學(xué)習(xí)者思考并提出問題解決辦法。教師提示可將多對多的聯(lián)系拆分為兩個一對多的聯(lián)系,根據(jù)訂單的狀態(tài)通過程序確定是否實際減少庫存。按照之前分配的小組安排學(xué)習(xí)者討論并提出新的設(shè)計方案,學(xué)習(xí)者討論是教師到各組進(jìn)行引導(dǎo)和巡視[2]。討論:經(jīng)過學(xué)習(xí)者討論,分析新概念模型設(shè)計的合理性。小組匯報并由教師匯總修改后如圖2所示。
2.2.2動機(jī)策略
注意策略:教師播放課前錄制的網(wǎng)上購物過程的動畫,引起學(xué)習(xí)者注意。自信策略:教師按照基礎(chǔ)和提高兩類任務(wù)進(jìn)行分層布置,利于搭建腳手架、激發(fā)學(xué)習(xí)者自主思考,增強(qiáng)自信。
3評價
學(xué)習(xí)者對各自小組設(shè)計的E-R模型進(jìn)行評價,小組間進(jìn)行設(shè)計結(jié)果互評,教師對每個模型的設(shè)計過程、小組合作情況和設(shè)計結(jié)果進(jìn)行總結(jié)性評價。滿意和自信策略:學(xué)習(xí)者經(jīng)過深入思考進(jìn)行互評,體驗設(shè)計被認(rèn)可和逐步求精帶來的喜悅。教師的點評認(rèn)可其設(shè)計結(jié)果提高學(xué)習(xí)者信心。
4結(jié)論
通過該方法的學(xué)習(xí),學(xué)習(xí)者在練習(xí)和期末考試中能夠熟練準(zhǔn)確的對復(fù)雜的需求通過E-R模型進(jìn)行概念結(jié)構(gòu)設(shè)計,因此,ARCS模型應(yīng)用于《數(shù)據(jù)庫技術(shù)》教學(xué)有助于激發(fā)學(xué)習(xí)者學(xué)習(xí)動機(jī),提高學(xué)習(xí)效果。
作者:韓玲玲 單位:哈爾濱師范大學(xué)
2數(shù)據(jù)庫
建設(shè)的主要內(nèi)容城市交通設(shè)施普查及數(shù)據(jù)建庫的主要內(nèi)容:一是建立城市交通設(shè)施數(shù)據(jù)庫,包括基礎(chǔ)地理信息數(shù)據(jù)和交通專題數(shù)據(jù),主要有沿街的交通要素(交通標(biāo)志牌、交叉口等)、停車場、賓館、酒店、學(xué)校、公交站點、加油加氣站、客貨運(yùn)樞紐等以及街道、社區(qū)等界線信息。二是建立城市道路中心線路網(wǎng)數(shù)據(jù)庫和模型,道路的屬性信息包括道路等級、形式、上下行方向、有無隔離帶等;由于道路在城市交通設(shè)施中的重要性,對道路網(wǎng)數(shù)據(jù)要求:①在有中央隔離帶的道路路段兩側(cè)分別繪制,屬性均為單向,取單側(cè)路段的中心線,在路口匯合;②有主輔道的道路路段兩側(cè)分別繪制,主道輔道均為單向,中心線在路口匯合;如果主輔道之間的隔離在進(jìn)入路口前消失,中心線可提前匯合,連接線位置需要在圖中繪出;③單側(cè)主輔道涉及高架道路的,地面道路及高架雙側(cè)均單獨(dú)繪制,取單側(cè)路段的中心線,地面道路中心線在路口匯合,路段時繪圖順序按道路的實際行車方向繪制。三是建立城市公共交通網(wǎng)絡(luò)模型,形成城市交通規(guī)劃中公交換乘分析的重要基礎(chǔ)數(shù)據(jù),主要包括公交實體站點信息表、線路站點信息表、公交線路信息表和站點和線路關(guān)系表等。
3技術(shù)思路
3.1技術(shù)流程根據(jù)技術(shù)要求和內(nèi)容,制定了技術(shù)流程。
3.2主要工作城市交通設(shè)施普查和數(shù)據(jù)建庫主要工作有:內(nèi)業(yè)數(shù)據(jù)預(yù)處理、外業(yè)數(shù)據(jù)普查、內(nèi)業(yè)數(shù)據(jù)錄入、編輯和建庫等,數(shù)據(jù)以ArcGIS10Geodatabase格式存儲。外業(yè)普查根據(jù)城市行政管理劃分為若干個社區(qū)格網(wǎng),以每個社區(qū)格網(wǎng)為單元進(jìn)行交通數(shù)據(jù)調(diào)查;利用現(xiàn)實性好、數(shù)據(jù)豐富的基礎(chǔ)地理底圖,采用實地調(diào)查量測為主的方式采集城市交通數(shù)據(jù),外業(yè)普查成果經(jīng)的100%檢查后,由單位質(zhì)檢部門成果檢查合格后提交內(nèi)業(yè)編輯。內(nèi)業(yè)以社區(qū)為單位,在單個PersonalGeodatabase數(shù)據(jù)庫中作業(yè),經(jīng)過接邊處理、拓?fù)浣⒌?,按行政區(qū)劃、街道、社區(qū)界線合并數(shù)據(jù)庫,形成城市交通設(shè)施數(shù)據(jù)庫。
3.3成果應(yīng)用通過對數(shù)據(jù)庫中的道路和交通信息的分析,利用數(shù)據(jù)信息構(gòu)建道路網(wǎng)模型和公共交通模型,生成的數(shù)據(jù)庫可以應(yīng)用在專業(yè)交通規(guī)劃系統(tǒng)平臺上,進(jìn)行城市道路規(guī)劃設(shè)計、最短路徑分析、道路緩沖區(qū)分析等。
4具體實施
4.1外業(yè)普查外業(yè)普查在作業(yè)底圖上調(diào)查交通設(shè)施信息,同時填寫屬性調(diào)查表和道路調(diào)查表屬性表,并且現(xiàn)場照相,調(diào)查中做到走到看到,不遺漏、分類編碼記錄不錯漏,各類信息要素屬性信息正確、全面;在電子地圖上根據(jù)作業(yè)底圖編輯錄入與檢查交通要素,并且構(gòu)建數(shù)據(jù)庫。作業(yè)組以社區(qū)網(wǎng)格為單元,以街道辦事處或管委會為單位進(jìn)行任務(wù)分配,每一街道辦事處或管委會包含若干社區(qū)單元。
4.2內(nèi)業(yè)數(shù)據(jù)編輯建庫內(nèi)業(yè)編輯作業(yè)分兩部分,一是外業(yè)底圖(含初始調(diào)查底圖和檢查作業(yè)底圖)和調(diào)查記錄表格制作(含空表格記錄和已普查錄入記錄),及時與外業(yè)溝通,制作滿足外業(yè)調(diào)查要求的作業(yè)基礎(chǔ)資料;二是基于模板化及的數(shù)據(jù)錄入和建庫,通過外業(yè)調(diào)查記錄成果錄入基本要素和屬性信息,重點處理道路、公交等交通要素。作業(yè)利用ArcMap10.0相應(yīng)的編輯模塊,開發(fā)的相應(yīng)插件進(jìn)行數(shù)據(jù)編輯錄入,利用ArcToolbox構(gòu)建數(shù)據(jù)庫。
5系統(tǒng)評價
從數(shù)據(jù)成果的數(shù)據(jù)精度、數(shù)據(jù)完整性、屬性精度、邏輯一致性、完整性與正確性、圖面的質(zhì)量和附件質(zhì)量等幾個方面進(jìn)行檢查,認(rèn)為普查數(shù)據(jù)和建庫精度高、屬性結(jié)構(gòu)正確、邏輯一致性表達(dá)準(zhǔn)確、數(shù)據(jù)完整、圖面合理、附件齊全。成果坐標(biāo)基準(zhǔn)采用城市坐標(biāo)系,數(shù)據(jù)采用EsriGeodatabase10.0格式,應(yīng)用個人Geodatabase文件命名社區(qū)編號、數(shù)據(jù)組織和數(shù)據(jù)分層等。通過數(shù)據(jù)庫在專業(yè)交通規(guī)劃系統(tǒng)平臺的測試,交通設(shè)施數(shù)據(jù)各項指標(biāo)符合系統(tǒng)運(yùn)行分析要求。
一、引言
畢業(yè)論文是考察學(xué)生的專業(yè)知識和基本技能的一個綜合性的作業(yè)。但是,隨著畢業(yè)設(shè)計課題的數(shù)量和研究領(lǐng)域的增加,而且就業(yè)壓力的影響導(dǎo)致學(xué)生無法保證正常的畢業(yè)設(shè)計時間,使得畢業(yè)設(shè)計的管理工作和信息收集工作變得復(fù)雜和困難。由于高校畢業(yè)論文綜合評價的特殊性,目前許多高校對畢業(yè)生的畢業(yè)導(dǎo)師選擇和論文選題流程沒有一種快捷而高效的方法,因此,我們迫切需要研究和開發(fā)一個高效的基于Web畢業(yè)設(shè)計管理系統(tǒng)對畢業(yè)生畢業(yè)論文的選擇和完成過程進(jìn)行規(guī)范的管理。
目前國內(nèi)的部分高校有了相似功能的畢業(yè)論文管理系統(tǒng),其模塊的劃分大同小異,都是為了保證信息的充分共享以及方便用戶的操作。主要有南京農(nóng)業(yè)大學(xué)的基于.NET的畢業(yè)設(shè)計管理系統(tǒng),功能主要有學(xué)生平臺、教師平臺、教務(wù)管理平臺、公共數(shù)據(jù)處理平臺等模塊;電子科技大學(xué)畢業(yè)設(shè)計管理系統(tǒng),功能主要有教師出題、論文題目的審核、學(xué)生選擇論文題目、開題報告審核入庫、畢業(yè)論文審核入庫、畢業(yè)論文查詢等模塊;中國礦業(yè)大學(xué)信息工程系畢業(yè)設(shè)計管理系統(tǒng),功能主要有:個人查詢、課題查詢、網(wǎng)上指導(dǎo)、請假手續(xù)、重要通知、論文格式、論文上載等七個模塊。所有各功能模塊的劃分體現(xiàn)了開發(fā)者對數(shù)據(jù)庫建模的思路。而且在運(yùn)行模式上,基本上采用的都是分而治之的設(shè)計思想,即數(shù)據(jù)庫信息(如課題、老師、學(xué)生、論文等)在各院系中是單獨(dú)進(jìn)行的,在各院系之間及院系與教務(wù)部門之間卻沒有提供信息交互的手段。
二、系統(tǒng)概述
(一)總體規(guī)劃
基于對目前其他院校的畢業(yè)論文管理系統(tǒng)的比較分析,總結(jié)其長處,提出了一套高等院校畢業(yè)論文管理系統(tǒng)的研究方案。該系統(tǒng)方案基于Web技術(shù),不僅要面向?qū)W校不同部門的信息資源的共享,還要解決各部門已有的或?qū)⒔⒌男畔⑾到y(tǒng)的資源共享,提高信息資源共享的利用率,系統(tǒng)結(jié)構(gòu)應(yīng)具有跨平臺訪問不同數(shù)據(jù)源的機(jī)制。在教務(wù)信息標(biāo)準(zhǔn)化、規(guī)范化的基礎(chǔ)上,對信息進(jìn)行合理的布局,在提供優(yōu)質(zhì)、高效的業(yè)務(wù)管理和事務(wù)處理的同時,使全校師生可以在任一平臺上對畢業(yè)論文的信息進(jìn)行方便地溝通與交流。同時,系統(tǒng)要具有安全高效的通信機(jī)制,要有效預(yù)防由于Web技術(shù)的應(yīng)用而引發(fā)的信息泄密和對保密信息的非法侵入等安全隱患。
(二)系統(tǒng)架構(gòu)
系統(tǒng)采用三層B/S結(jié)構(gòu),其原理圖如圖1所示。在這種結(jié)構(gòu)中,應(yīng)用服務(wù)器接收到客戶機(jī)的請求頁面指令后,就向數(shù)據(jù)庫服務(wù)器請求有關(guān)的數(shù)據(jù),數(shù)據(jù)庫服務(wù)器從數(shù)據(jù)庫中取出相應(yīng)的數(shù)據(jù)交給應(yīng)用服務(wù)器,應(yīng)用服務(wù)器將之整合成頁面再返回給瀏覽器[2]。該結(jié)構(gòu)主要特點是:客戶端實現(xiàn)零維護(hù),系統(tǒng)維護(hù)和升級方便。軟件程序、數(shù)據(jù)庫、的信息以及其他一些組件都集中在服務(wù)器,用戶除了操作系統(tǒng)及瀏覽器外無需其他軟件,即用戶以Web頁面的形式與系統(tǒng)進(jìn)行交互。
該系統(tǒng)是通過DCOM或HTTP遠(yuǎn)程調(diào)用服務(wù)器端組件對數(shù)據(jù)庫進(jìn)行操作以完成特定的功能。在具體實現(xiàn)上,應(yīng)用服務(wù)器使用通信線程來提供查詢并從后端數(shù)據(jù)庫服務(wù)器獲得結(jié)果。應(yīng)用服務(wù)器接收從客戶機(jī)通過Web瀏覽器或其他界面軟件發(fā)來的信息請求,并連接到服務(wù)器上。接著對請求進(jìn)行處理并從服務(wù)器返回信息。然后,應(yīng)用服務(wù)器與數(shù)據(jù)庫服務(wù)器斷開并把請求的信息返回客戶機(jī)。使用這種方法時,客戶機(jī)不與數(shù)據(jù)庫保持連接,應(yīng)用服務(wù)器只有在進(jìn)行請求并接收請求的結(jié)果時才與數(shù)據(jù)庫保持連接。空閑進(jìn)程并不占用網(wǎng)絡(luò)資源,網(wǎng)絡(luò)流量顯著減少,可以更快地進(jìn)行查詢處理并且響應(yīng)時間得到了改善。如果許多客戶機(jī)都在頻繁請求,可以對這種配置進(jìn)行更改,使應(yīng)用服務(wù)器能預(yù)先與數(shù)據(jù)庫連接,以降低每次處理客戶機(jī)查詢請求時建立連接所需的開銷時間量。
該系統(tǒng)是一個基于Web平臺、涉及畢業(yè)論文管理各環(huán)節(jié)、面向?qū)W校各部門以及各層次用戶的多模塊綜合信息管理系統(tǒng),主要完成畢業(yè)設(shè)計的申報、選題、論文上傳、論文批閱、在線答疑等功能。其相關(guān)的系統(tǒng)功能模塊如圖2所示。
三、系統(tǒng)的相關(guān)設(shè)計
(一)數(shù)據(jù)庫設(shè)計
由于系統(tǒng)內(nèi)部數(shù)據(jù)流量大,數(shù)據(jù)檢索要求高,用戶通過瀏覽器從后臺數(shù)據(jù)庫獲取數(shù)據(jù)信息的響應(yīng)時間也要滿足需求,在該系統(tǒng)中,表示層使用ASP用來開發(fā)網(wǎng)頁,后臺數(shù)據(jù)庫使用ORACLE作為服務(wù)器端的數(shù)據(jù)庫管理。ORACLE是以高級結(jié)構(gòu)化查詢語言(SQL)為基礎(chǔ)的大型關(guān)系數(shù)據(jù)庫,是目前最流行的瀏覽器/服務(wù)器(BROWSER/SERVER)體系結(jié)構(gòu)的數(shù)據(jù)庫之一,ORACLE8.i以來引入了共享SQL和多線程服務(wù)器體系結(jié)構(gòu),提供了基于角色(ROLE)分工的安全保密管理,支持大量多媒體數(shù)據(jù)。因此從性能需求上分析,采用ORACLE來完成底層數(shù)據(jù)庫的開發(fā)。
在具體實現(xiàn)上,系統(tǒng)整體ER圖設(shè)計如圖3示。
其中,教師數(shù)據(jù)表包括教師號、教師名、性別、職稱、所屬學(xué)院(系)、科研情況、電話、電子郵件、登錄密碼等教師基本信息情況;學(xué)生數(shù)據(jù)表包括學(xué)號、姓名、性別、年級、學(xué)院、專業(yè)、班級、電話、電子郵件、登錄密碼等學(xué)生基本信息情況;管理員信息表包括ID號、用戶名、密碼等;課題信息表包括課題號、課題名稱、所屬院系、申報教師、規(guī)定人數(shù)、實選人數(shù)等;論文信息表包括論文號、論文名稱、學(xué)生姓名、所屬院系、指導(dǎo)教師等信息。
(二)界面設(shè)計
系統(tǒng)界面的設(shè)計是創(chuàng)新性的使用了雙樹型結(jié)構(gòu)實現(xiàn)的,即在前臺的WEB系統(tǒng)界面中,針對不同用戶具有不同的操作功能,采用ASP和先進(jìn)的ORACLE數(shù)據(jù)庫技術(shù)展現(xiàn)了“左-右”雙樹型菜單。其中,左邊的菜單樹上是學(xué)生姓名及其已選課題,右邊的樹則是其他已申報的備選課題,通過此雙樹型結(jié)構(gòu)的界面設(shè)計,學(xué)生在方便的選擇自己所傾向的畢業(yè)研究課題,而且還能很便捷地對其選報課題進(jìn)行修改或調(diào)整。同時,由于該雙樹型界面本身所具有的美觀性、友好性以及操作簡便性,從而使得教師和學(xué)生在操作的過程中不需要查看幫助文檔就可以輕松地實現(xiàn)各種相關(guān)的操作。
(三)安全設(shè)計
任何一個應(yīng)用系統(tǒng)都對安全性有一定的要求,即數(shù)據(jù)的保密性和可靠性。而畢業(yè)設(shè)計管理信息系統(tǒng)涉及到學(xué)生檔案等重要信息,其安全性是非常重要的。該系統(tǒng)的安全性,從下面三個方面來實現(xiàn)。
1.分級授權(quán)安全管理。該系統(tǒng)采用分層授權(quán)安全管理,用戶分五種權(quán)限:超級管理員、一般管理員、教師、學(xué)生、過客。用戶登錄系統(tǒng)時,讓用戶錄入用戶名(或者是帳號)和密碼,不同的用戶具有不同的權(quán)限。在安全性上采用多級認(rèn)證體系對各級用戶分級授權(quán),同時各級用戶的操作痕跡相互制約,并采用雙密碼保證超級管理員密碼的內(nèi)部安全。
2.數(shù)據(jù)庫的安全性。數(shù)據(jù)庫的安全性是由Oracle數(shù)據(jù)庫系統(tǒng)本身的安全機(jī)制進(jìn)行控制。Oracle數(shù)據(jù)庫的安全性體現(xiàn)在它對用戶、權(quán)限、角色和用戶配置文件的管理上。用戶是由管理員建立并授權(quán)的一個數(shù)據(jù)庫帳戶,每一個企圖使用Oracle的用戶都必須得到一個合法的用戶帳戶和口令,只有用合法的帳戶和口令連接數(shù)據(jù)庫成功才能操作數(shù)據(jù)庫對象。每個Oracle數(shù)據(jù)庫都有一個叫做DEFAULT的配置文件,它被賦予數(shù)據(jù)庫中所有已經(jīng)存在的用戶和新創(chuàng)建的用戶。在系統(tǒng)中通過修改該配置文件,對數(shù)據(jù)庫所有用戶都限制為使用特定資源。
3.Web服務(wù)器安全保障。Web服務(wù)器的安全依賴于校園網(wǎng)的安全,同時對web服務(wù)器特殊的安全措施。外網(wǎng)用戶通過校園網(wǎng)的VPN技術(shù)與web服務(wù)器進(jìn)行通信,在校園網(wǎng)出口處部署網(wǎng)絡(luò)防火墻,同時在Web服務(wù)器上主機(jī)防火墻和入侵檢測系統(tǒng),對系統(tǒng)進(jìn)一步防護(hù)和監(jiān)測。另外,通過定時的安裝補(bǔ)丁、及時升級、關(guān)閉不必要的服務(wù)進(jìn)一步加強(qiáng)了Web Server層和操作系統(tǒng)的安全。
四、系統(tǒng)性能的優(yōu)化
由于系統(tǒng)基于B/S三層架構(gòu),其性能具有很好地可擴(kuò)展性和可維護(hù)性。為了提高程序的性能,應(yīng)用服務(wù)器采用多線程通信技術(shù),實現(xiàn)多線程服務(wù)器和連接管理器與數(shù)據(jù)庫服務(wù)器的預(yù)先連接,及時、準(zhǔn)確、可靠地采集和傳輸信息[5]。在該技術(shù)的具體實現(xiàn)上,采用的是搶先式多任務(wù),使得系統(tǒng)能執(zhí)行多個進(jìn)程,而每個進(jìn)程也可以同時執(zhí)行多個線程,且進(jìn)程中的線程是并行執(zhí)行的。系統(tǒng)不停地在多個線程之間切換,由于時間很短,看上去多個線程是在同時運(yùn)行。使用這種方法時,客戶機(jī)不需要與數(shù)據(jù)庫始終保持連接,應(yīng)用服務(wù)器只有在進(jìn)行請求并接收請求的結(jié)果時才與數(shù)據(jù)庫保持連接。空閑進(jìn)程并不占用網(wǎng)絡(luò)資源,網(wǎng)絡(luò)流量顯著減少,可以更快地進(jìn)行查詢處理并且響應(yīng)時間得到了改善。多線程服務(wù)器和連接管理器用于保持與服務(wù)器的固定預(yù)先連接,這樣連接可以重復(fù)使用。同時可以在很大程序上提高系統(tǒng)的并發(fā)性。這就更加有效地保證了各級用戶在不同地點可以同時訪問系統(tǒng)中的數(shù)據(jù),加強(qiáng)了系統(tǒng)數(shù)據(jù)共享能力,提高了系統(tǒng)的性能。
五、結(jié)論
本文所討論研究的高等院校畢業(yè)論文管理系統(tǒng)采用了當(dāng)前流行的B/S結(jié)構(gòu)、Internet網(wǎng)絡(luò)技術(shù)和網(wǎng)絡(luò)安全技術(shù)等,突破了原先使用地域的局限性,使整個校園網(wǎng)甚至Internet上的用戶都可訪問系統(tǒng)。用戶可在多地域、任意時間段以不同身份來訪問系統(tǒng)中的數(shù)據(jù),大大加強(qiáng)了系統(tǒng)數(shù)據(jù)共享的能力,有效地促進(jìn)了學(xué)校畢業(yè)論文管理的科學(xué)化、信息化。系統(tǒng)的應(yīng)用能夠高等院校節(jié)約了大量的人力、物力和財力,使高等院校的畢業(yè)論文管理水平得到大幅度的提升,同時在社會上也能夠產(chǎn)生了良好的影響。
參考文獻(xiàn):
[1]劉必榮.本科畢業(yè)設(shè)計教學(xué)存在的問題及對策研究[J].文教資料,2007(8):54-56.
[2]楊永,梁金鈐.基于B/S模式的通用試題庫系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機(jī)工程與科學(xué),2009,31(4):143-145.
[3]馬薇,婁雨.Oracle數(shù)據(jù)庫容災(zāi)備份中的流復(fù)制技術(shù)研究[J].科技通報,2012,28(2):182-184.
[4]劉昌平,范明鈺,王光衛(wèi).可信計算環(huán)境數(shù)據(jù)封裝方法[J].計算機(jī)應(yīng)用研究,2009,26(10):3891-3893.
[5]趙建偉.γ遙測數(shù)據(jù)遠(yuǎn)程通信系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機(jī)工程與設(shè)計,2007,28(16):3849-3851.
科研水平逐漸成為衡量一個高校勢力的重要指標(biāo),高校作為重要的科研機(jī)構(gòu),如何對學(xué)校大量的科研信息進(jìn)行高效、安全的保存、處理、統(tǒng)計、加工等管理操作,將日常的科研管理工作更加規(guī)范化、科學(xué)化,建立高校科研管理系統(tǒng)進(jìn)行科研管理工作是每一個高校必由之路。系統(tǒng)功能的分析與數(shù)據(jù)的結(jié)構(gòu)關(guān)聯(lián)及使用都首先反映在數(shù)據(jù)庫的設(shè)計過程中,高??蒲泄芾硐到y(tǒng)數(shù)據(jù)庫設(shè)計是高校科研管理系統(tǒng)設(shè)計中的一項核心工作,所有的管理工作都必須以數(shù)據(jù)庫為中心,建立高??蒲泄芾硐到y(tǒng)數(shù)據(jù)庫的方法、步驟、技術(shù)等如下:
1 系統(tǒng)需求分析
高校科研管理所設(shè)計的事務(wù)非常繁雜,涉及到校科研處、各個系的科研管理以及個人對科研信息的查詢統(tǒng)計等。所設(shè)計的系統(tǒng)既要有利于科研處的監(jiān)督管理又要有利于各個系及教師的分工協(xié)作。系統(tǒng)功能主要包括??蒲刑幙蒲泄芾?、院系(或部門)科研管理、個人科研信息查詢、校級科研項目整體信息管理。可以劃分為科研信息維護(hù)、科研信息查詢與統(tǒng)計、科研信息報表、科研信息分析、校級課題申報、審批、合同簽定、結(jié)題、其它處理等操作;其中科研信息應(yīng)細(xì)分為學(xué)術(shù)論文、著作、科研項目、科研成果、科研獎勵等信息。
2 用戶需求分析
由于本系統(tǒng)是直接面向網(wǎng)上辦公的,必須適應(yīng)所服務(wù)環(huán)境的各類操作人員,主要包括學(xué)??蒲刑?、各院系(或部門)、普通教師個人(或其他瀏覽者)。
2.1 普通教師個人(或其他瀏覽者)
普通教師個人(或其他瀏覽者)只能按姓名來瀏覽個人的科研信息、進(jìn)行統(tǒng)計打印,個人的科研信息(論文、著作、項目成果等)必須提交本部門審核入錄。
2.2 各院系(或部門)
各院系(或部門)主要職責(zé)是對本部門員工的論文、著作、項目、成果、獎勵等信息進(jìn)行審核后輸入到本系統(tǒng)數(shù)據(jù)庫中,查詢本部門在某時間內(nèi)的科研信息、統(tǒng)計科研情況、打印相關(guān)資料等,同時對本部門的錯誤錄入信息進(jìn)行修改和維護(hù)。
2.3 科研處
主要管理本校的員工信息、論文、著作、各級各類科研項目和成果、科研獎勵等常規(guī)工作,同時,管理校級課題的申報、審批、合同、檢查、結(jié)題等管理,同時,監(jiān)控系統(tǒng)運(yùn)行和各部門的情況。
3 數(shù)據(jù)庫設(shè)計及關(guān)鍵技術(shù)實現(xiàn)
3.1 數(shù)據(jù)庫表創(chuàng)建
根據(jù)系統(tǒng)需求分析,將系統(tǒng)的實現(xiàn)直接定位在更好的適合各層次人員的需求和操作,系統(tǒng)的所有初始化數(shù)據(jù)均采用界面錄入的方法,由各類人員分工完成。根據(jù)我校的實際情況,筆者將科研人員基本信息、論文信息、科研項目信息、成果信息、獲獎情況信息等作為系統(tǒng)的初始化數(shù)據(jù),為個人和院系查詢、統(tǒng)計、打印,科研處操作、加工、管理、集成等工作提供基本的數(shù)據(jù)平臺。主要數(shù)據(jù)表格設(shè)計如下:
科研人員信息表(職工號,姓名,性別,職稱,出生日期,所學(xué)專業(yè),現(xiàn)從事專業(yè),學(xué)歷,學(xué)位,工作時間,所在部門,備注)。
論文信息表(序號,論文名稱,刊物名稱,刊物類別,刊物級別,主辦單位,作者,職工號,發(fā)表時間,刊號,備注)。
論著信息表(序號,著作名稱, 圖書編號,著作類別,出版社,學(xué)科類別,作者,職工號,出版時間,版次,備注)。
科研項目表(序號,項目編號,項目名稱,項目來源,項目類別,完成單位,負(fù)責(zé)人,課題組成員,立項時間,擬定期限,經(jīng)費(fèi)金額, 是否鑒定,鑒定時間,鑒定單位,備注)。
科研成果表(序號,成果名稱,成果類別,成果經(jīng)費(fèi),完成時間,負(fù)責(zé)人,完成單位,是否投入生產(chǎn),經(jīng)濟(jì)效益,備注)。
科研獎勵表(序號,獲獎人員,項目名稱,獎勵名稱,授予單位,時間,備注)。
校級項目管理表(項目編號,項目名稱,課題名稱,負(fù)責(zé)人,所在部門,職務(wù)或職稱,聯(lián)系電話,申報表,申報時間,申報經(jīng)費(fèi),是否批準(zhǔn),批準(zhǔn)日期,批準(zhǔn)經(jīng)費(fèi),合同時間,合同內(nèi)容,是否結(jié)題,結(jié)題時間,鑒定技術(shù)負(fù)責(zé)人,項目成果效益,備注)。
校級鑒定專家表(序號,姓名,性別,出生日期,工作單位,學(xué)歷,學(xué)位,所學(xué)專業(yè),現(xiàn)從事專業(yè),職稱職務(wù),備注)。
在上述表格中,加下劃線字段代表主鍵,加雙劃線字段代表外鍵。其中科研人員信息表之所以選擇(職工號,姓名)作為主鍵,考慮到姓名經(jīng)常作為查詢、操作條件,并在相關(guān)表中作為科技人員的重要描述和限制;為了避免數(shù)據(jù)錄入的無序狀況,數(shù)據(jù)庫表之間建立了嚴(yán)格的參照完整性,并且對所有表都分配了操作權(quán)限,并將錯誤信息及時反饋給操作人員,科研人員信息表、論文信息表、論著信息表通過“職工號”建立參照完整性關(guān)系,在錄入論文、論著時,作者必須是本單位職工,如果科研人員信息表不存在該員工,便給出錯誤提示,提示檢查是否是合法職工,如果是,便可以在科研人員信息表中添加該員工信息后錄入論文、論著信息,否則,拒絕錄入,“職工號”又為組合查詢提供了連接條件支持;同時將科研項目表、科研成果表、校級項目管理表中“負(fù)責(zé)人”和科研人員信息表中的“姓名”建立主鍵、外鍵參照完整性關(guān)系,校級課題的申報負(fù)責(zé)人也必須是本單位某部門的職工;獲獎人員,必須是科研人員信息表中某一職工;將校級鑒定專家表和校級項目管理表通過“鑒定技術(shù)負(fù)責(zé)人”、“姓名”建立參照完整性管理,限定了鑒定技術(shù)負(fù)責(zé)人必須是本校專家表中的專業(yè)人員;所有表的主鍵設(shè)置都加上“姓名”字段,目的是為了符合人們的常規(guī)習(xí)慣,常以某個專業(yè)人員姓名作為操作、查詢條件,科研人員信息表與其他相關(guān)表格建立參照完整性為了限制科研、論文、論著、成果、獎勵等信息的科學(xué)合法性,同時有利于統(tǒng)計和查詢;只有完善的參照完整性,才能使得數(shù)據(jù)庫中數(shù)據(jù)具有一致性和互操作性。
3.2 存儲過程的設(shè)計
轉(zhuǎn)貼于 存儲過程是Transact-SQL語句的集合,它是實現(xiàn)事務(wù)或業(yè)務(wù)規(guī)則的極好途徑,是在數(shù)據(jù)庫服務(wù)器上存儲與執(zhí)行的。使用它,可以大大減少網(wǎng)絡(luò)傳輸流量,提高應(yīng)用程序性能和安全性,而且由于它只在第一次執(zhí)行時被優(yōu)化、編譯。因此,使用存儲過程不僅可以極大地降低應(yīng)用程序的實現(xiàn)難度,而且還可以極大地提高系統(tǒng)的運(yùn)行速度、效率。存儲過程的設(shè)計一定要符合邏輯業(yè)務(wù)規(guī)則和要求,根據(jù)實際,對一些常規(guī)、頻繁使用的查詢、插入數(shù)據(jù)操作使用存儲過程來完成。以下操作可以考慮使用存儲過程來完成:
① 對系統(tǒng)的初始化數(shù)據(jù)時錄入各種基本信息操作。
② 查詢個人、部門科研信息時的查詢操作。
③ 科研處的其他常規(guī)操作。
下面以查詢部門科研信息為例介紹存儲過程使用方法,在此查詢某一部門的論文、論著信息。描述代碼:
CREATE PROCEDURE 論文論著
@a char(20)
as
select 姓名,論文名稱,刊物名稱,刊物類別,刊物級別,發(fā)表時間,備注
from 科研人員信息表,論文信息表
where 科研人員信息表。職工號=論文信息表。職工號 and 所在部門=@a
select 姓名,著作名稱,出版社,出版時間,版次,備注
from 科研人員信息表,論著信息表
where 科研人員信息表。職工號=論著信息表。職工號 and 所在部門=@a
其它操作不再做列述。從提高執(zhí)行效率、提高安全性、共享性方面考慮,盡可能多的使用存儲過程來提高數(shù)據(jù)庫的整體性能。
3.3 觸發(fā)器的使用
使用觸發(fā)器來實現(xiàn)表間的數(shù)據(jù)自動操作,提高系統(tǒng)效率,校級鑒定專家表中的信息主要來源于科研人員信息表中具有副高職稱以上的人員,在輸入或修改科研人員信息時,只要是具有副高級職稱以上的人員,就可以自動添加到校級鑒定專家表中,該操作可以使用觸發(fā)器來實現(xiàn),代碼描述如下:
Create Trigger ptz
On 科研人員信息表
For insert,update
As
Insert into 校級鑒定專家表(姓名,性別,出生日期,工作單位,學(xué)歷,學(xué)位,所學(xué)專業(yè),現(xiàn)從事專業(yè),職稱職務(wù),備注) Select (姓名,性別,出生日期,所在部門,學(xué)歷,學(xué)位,所學(xué)專業(yè),現(xiàn)從事專業(yè), 職稱職務(wù),備注)。
From 科研人員信息表,其中,校級鑒定專家表中的序號是自動生成的標(biāo)識列。
同時,可以用觸發(fā)器來檢驗校級項目負(fù)責(zé)人是否在科研人員信息表中,其中,用事務(wù)以驗證合法性以控制該項操作是否完成。
代碼描述如下:
Create Trigger check1
On 校級項目管理表
For insert
As
begin tran
declare @a char(12)
select @a=負(fù)責(zé)人 from Inserted
If ( select count(*) from科研人員信息表where 姓名=@a)=0
begin
Print '負(fù)責(zé)人不合法'
rollback tran
end
commit tran
其它類似操作不做描述。
在設(shè)計中,堅持使用觸發(fā)器實現(xiàn)盡可能多的實現(xiàn)前臺操作,不僅提高了操作效率、更提高了代碼的安全性和共享性。
3.4 數(shù)據(jù)庫安全設(shè)計
網(wǎng)絡(luò)的安全非常重要,從數(shù)據(jù)庫級、服務(wù)器級和應(yīng)用程序級綜合考慮,在科研管理系統(tǒng)中要根據(jù)不同用戶,設(shè)置不同的權(quán)限、不同的初始化菜單。在本系統(tǒng)中,數(shù)據(jù)庫的安全主要通過數(shù)據(jù)庫的存取控制機(jī)制實現(xiàn)的。首先定義各類管理人員的操作權(quán)限即角色,其次定義數(shù)據(jù)庫登錄,最后依據(jù)用戶權(quán)限表將登錄分配為相應(yīng)的角色。由于人員的復(fù)雜性,角色分為三個層次:科研處級別、二級部門級別、普通教師級別。用戶屬于某一角色,即使用戶職務(wù)調(diào)動時,對用戶增刪,不影響其他用戶的操作,只是角色中用戶數(shù)量的變化。建立專門的系統(tǒng)使用權(quán)限表來記錄用戶和權(quán)限,同時也兼容部門設(shè)置信息,對不同部門分配相應(yīng)的權(quán)限和賬號,科研處是最高管理級別部門。
為了進(jìn)一步保護(hù)數(shù)據(jù)庫,建立備份數(shù)據(jù)庫服務(wù)器,定期進(jìn)行數(shù)據(jù)庫備份和復(fù)制,本系統(tǒng)數(shù)據(jù)庫主要采用SQL Server數(shù)據(jù)庫管理工具進(jìn)行設(shè)計,它具有強(qiáng)大的管理、安全、登陸、網(wǎng)絡(luò)支持功能,且可以和其它數(shù)據(jù)庫進(jìn)行轉(zhuǎn)換,是一種網(wǎng)絡(luò)數(shù)據(jù)庫管理軟件,符合設(shè)計要求。
4 結(jié)束語
該系統(tǒng)數(shù)據(jù)庫主要適用于C/S和B/S混合模式的數(shù)據(jù)庫系統(tǒng),設(shè)計中從整體考慮,建立嚴(yán)格的參照完整性和科學(xué)數(shù)據(jù)庫結(jié)構(gòu),將存儲過程、觸發(fā)器應(yīng)用到數(shù)據(jù)庫設(shè)計中,加大了后臺的功能和效率,對數(shù)據(jù)庫的安全進(jìn)行分級、分類設(shè)置和管理,提高了數(shù)據(jù)庫的安全訪問能力;它的數(shù)據(jù)冗余少,具有更高的數(shù)據(jù)一致性、可操作性和安全性,結(jié)合前臺開發(fā)工具和平臺,可以實現(xiàn)強(qiáng)大的功能設(shè)計和系統(tǒng)實現(xiàn)。結(jié)合本校實際已經(jīng)開發(fā)了一個實用的高??蒲泄芾硐到y(tǒng)并被科研處立項。
參考文獻(xiàn)
中圖分類號:TP315文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2008)35-2049-02
A Teaching Model Research Based on Internet/Intranet in the Information Technology Course
CHEN Fang1, CHEN Zhao2
(1. Pharmacy of East China University and Technology, Shanghai 200237, China; 2. Faculty of Mechanical & Electronic Information of China University of Geosciences, Wuhan 430074, China)
Abstract: At present, colleges for large-scale expansion caused management more difficult, the quality of thesis papers and the value of Paper documents are not to make full use of, this article statements a management system based on B/S model Three-tier architecture, in the middle using ASP technology, background database to SQL Server2000 designed to achieve. The system is reliable, safe, convenient and better able to meet the college paper's management of the basic requirements.
Key words: thesis; B/S module; ASP; SQL server
1 引言
在高等學(xué)校的教務(wù)管理系統(tǒng)中,畢業(yè)論文的選題大都采用人工方式,面對不斷增加的生源,這樣不僅工作量大,而且效率低下,容易出錯,更不方便教師查閱和管理人員的管理。利用計算機(jī)輔助設(shè)計加強(qiáng)畢業(yè)論文課題的管理工作,既提高了論文選題的科學(xué)性,又可大大減輕管理人員的工作強(qiáng)度,提高了工作效率,從而使得管理工作逐步實現(xiàn)制度化、規(guī)范化和程序化。本文設(shè)計與實現(xiàn)的論文管理系統(tǒng)采用B/S的模式,中間采用ASP編程技術(shù),后臺選用SQL Server2000得以實現(xiàn)。
2 系統(tǒng)的總體設(shè)計
2.1 設(shè)計思路
系統(tǒng)以SQL Server2000作為后臺數(shù)據(jù)庫,采用B/S結(jié)構(gòu)即瀏覽器/服務(wù)器結(jié)構(gòu),用戶工作界面是通過WWW瀏覽器來實現(xiàn),極少部分事務(wù)邏輯在前端(Browser)實現(xiàn),主要事務(wù)邏輯在服務(wù)器端(Server)實現(xiàn),形成瀏覽器、Web服務(wù)器與應(yīng)用服務(wù)器、數(shù)據(jù)庫服務(wù)器組成的三層體系結(jié)構(gòu)。主要采用ASP動態(tài)網(wǎng)頁技術(shù),通過ASP,結(jié)合HTML網(wǎng)頁、ASP指令和ActiveX元件,建立動態(tài)、交互且高效的Web服務(wù)器應(yīng)用程序。數(shù)據(jù)庫的訪問通過ODBC(開放式數(shù)據(jù)庫互聯(lián)技術(shù))用SQL實現(xiàn)。系統(tǒng)通過ADO與數(shù)據(jù)庫連接,實現(xiàn)數(shù)據(jù)庫的相關(guān)操作。
2.2 工作流程
實踐論文管理工作中,基本的工作流程分為:1)教師出題;2)學(xué)生選題;3)中期檢查;4)論文答辯;5)論文評優(yōu)五個階段。
畢業(yè)論文管理系統(tǒng)實現(xiàn)論文的出題、審核、選題、、檢索、統(tǒng)計等多項功能。該系統(tǒng)既能讓學(xué)生網(wǎng)上論文選題,又能實現(xiàn)提交論文,這樣為老師和學(xué)生對論文資源的查閱和檢索提供了方便。
系統(tǒng)中主要設(shè)置了八個模塊,分別為:登錄模塊、論文出題模塊、論文選題模塊、論文提交模塊、論文加工模塊、論文查詢模塊、論文統(tǒng)計模塊及系統(tǒng)配置模塊,每個模塊又具有各項多種功能。管理系統(tǒng)結(jié)構(gòu)圖如圖1所示。根據(jù)基本工作流程和各功能模塊,該系統(tǒng)設(shè)置四個角色進(jìn)行分配管理,包括:系統(tǒng)管理員、教師、學(xué)生、教師管理員這四類。各個角色都具有不同的功能,依據(jù)基于角色的訪問控制理論對每個教師進(jìn)行分配角色,以實現(xiàn)相應(yīng)的管理權(quán)限。
2.3 功能模塊的設(shè)計
2.3.1 系統(tǒng)管理員角色
1) 日常管理:日常公告的管理,常用表格的管理,師生上傳文檔的管理,教師出題變更申請受理;
2) 論文選題:論文選題時間設(shè)置,論文選題鎖定情況統(tǒng)計;
3) 中期檢查:中期檢查表審閱,中期評審分組;
4) 后期管理:論文成績評審表審閱,論文上傳情況統(tǒng)計,評閱,答辯,二次答辯,師生最終上傳文檔情況匯總,學(xué)生成績分析與統(tǒng)計;
5) 論文加工:對當(dāng)年度提交的所有論文進(jìn)行標(biāo)引工作,以便查閱和檢索;論文格式轉(zhuǎn)換管理,將所有論文由原來的文檔形式轉(zhuǎn)換成PDF格式,以便保存;
6) 信息維護(hù):管理員、教師、學(xué)生信息的維護(hù),系主任、教學(xué)副院長角色的分配,院系、班級信息的維護(hù),系統(tǒng)數(shù)據(jù)的初始化等。
2.3.2 教師角色
1) 論文出題:教師上傳論文題目,所需學(xué)生人數(shù),課題的來源等相關(guān)信息;
2) 論文選題:對自己提交的課題進(jìn)行學(xué)生的鎖定和退選;
3) 任務(wù)相關(guān):公告瀏覽,論文基本格式的樣張下載;
4) 表格提交:中期檢查表的管理,成績考核表的管理,其他相關(guān)文檔的管理;
5) 學(xué)生文檔管理:對學(xué)生提交的文檔進(jìn)行審閱和管理;
6) 成績管理:對進(jìn)行指導(dǎo)的學(xué)生進(jìn)行論文成績的評定。
2.3.3 學(xué)生角色
1) 論文選題:對于教師的出題情況進(jìn)行查看,并選擇論文;
2) 任務(wù)相關(guān):公告瀏覽,論文基本格式樣張下載;
3) 論文管理:開題相關(guān)文檔管理、論文相關(guān)文檔管理、設(shè)計相關(guān)文檔管理;
4) 論文提交:提交畢業(yè)論文管理;
5) 成績管理:查看中期檢查表、成績考核表,其他相關(guān)文檔。
2.3.4 教師管理員角色
除了具有教師模塊中的所有功能外,教師管理員角色主要添加兩項功能:
1) 論文審核:對教師論文出題質(zhì)量進(jìn)行審核;
2) 統(tǒng)計功能:統(tǒng)計當(dāng)(歷)年度的畢業(yè)論文提交的數(shù)量,學(xué)生成績的統(tǒng)計。
2.4 數(shù)據(jù)庫的設(shè)計
畢業(yè)論文管理系統(tǒng)結(jié)構(gòu)圖
本系統(tǒng)在設(shè)計過程中,盡量考慮到各個模塊中的相似之處,減少表格數(shù)量,提高表格的關(guān)聯(lián)程度,以及減少數(shù)據(jù)庫中數(shù)據(jù)的冗余。根據(jù)數(shù)據(jù)的流程和功能需求,數(shù)據(jù)庫主要包含以下工作表格:
1) 教師數(shù)據(jù)表:存放教師基本信息,數(shù)據(jù)項包括教師工號、密碼、教師姓名、職稱、專業(yè)、聯(lián)系方式、教師個人簡介、系所編號、學(xué)院編號、論文編號;
2) 學(xué)生數(shù)據(jù)表:存放學(xué)生基本信息,數(shù)據(jù)項包括班級、學(xué)號、姓名、密碼、論文編號、成績、綜合排名、興趣愛好、備注;
3) 論文數(shù)據(jù)表:學(xué)年度、論文編號、論文題目、出題教師工號、選題學(xué)生學(xué)號、課題來源、成績;
4) 論文審核表:學(xué)年度、論文編號、審核狀態(tài)、修改意見、次數(shù);
5) 論文選題表:學(xué)年度、學(xué)生學(xué)號、論文編號、論文選擇狀態(tài)、選擇時間;
6) 論文成績表:學(xué)年度、論文編號、教師工號、學(xué)生學(xué)號、成績、評語、評閱時間;
7) 選題管理表:序號、職稱、論文數(shù)量、學(xué)生人數(shù)。
2.5 數(shù)據(jù)庫訪問控制的實現(xiàn)
在數(shù)據(jù)庫中為了實現(xiàn)權(quán)限設(shè)計的安全問題,建立以下七個基本表:
1) 用戶表:序號、用戶名(取教師工號或?qū)W生學(xué)號);
2) 角色表:角色名、用途說明;
3) 權(quán)限控制表:角色名、用戶名;
4) 數(shù)據(jù)庫訪問權(quán)限表:操作權(quán)限、角色名、基本表名、權(quán)限說明;
5) 數(shù)據(jù)庫基本表:基本表名、基本表說明;
6) MIS子功能模塊表:子功能代碼、功能說明;
7) 功能模塊訪問權(quán)限表:子功能模塊代碼、角色名;模塊菜單名、功能說明;
各個表項聯(lián)合起來形成系統(tǒng)的授權(quán)機(jī)制,其運(yùn)行機(jī)制是:當(dāng)用戶通過系統(tǒng)登陸界面后,系統(tǒng)首先利用權(quán)限控制表找出用戶所對應(yīng)的角色,然后利用數(shù)據(jù)庫訪問權(quán)限表和功能模塊訪問權(quán)限表找出該角色所能進(jìn)行的操作(即基本表單名和子功能項代碼),并在角色表中查看該角色的狀態(tài),如果角色處于被激活的狀態(tài),該用戶就可使用該系統(tǒng),如果該角色處于被禁止的狀態(tài),即使該用戶擁有該權(quán)限仍不能執(zhí)行。這樣,系統(tǒng)管理員在進(jìn)行維護(hù)時,若更改功能角色,則只需修改數(shù)據(jù)庫訪問權(quán)限表,功能模塊訪問權(quán)限表和權(quán)限控制表中的記錄即可,而不需修改表的結(jié)構(gòu),大大方便管理員的維護(hù)工作。
這個完整的基于角色的多層應(yīng)用系統(tǒng)安全控制有效地將前端的“菜單層的權(quán)限管理”和后臺的“數(shù)據(jù)庫基本表及相應(yīng)操作權(quán)限”統(tǒng)一起來,實現(xiàn)了權(quán)限設(shè)計的授權(quán)機(jī)制。
3 系統(tǒng)的主要功能實現(xiàn)
系統(tǒng)通過B/S三層結(jié)構(gòu)實現(xiàn)論文的選題管理與論文的提交和評閱,采用瀏覽器、Web服務(wù)器和數(shù)據(jù)庫的三層結(jié)構(gòu),當(dāng)用戶通過瀏覽器提交和評閱時,向Web服務(wù)器發(fā)出請求,Web服務(wù)器訪問用戶的指令后開始執(zhí)行程序,根據(jù)請求從數(shù)據(jù)庫中取出相應(yīng)的數(shù)據(jù),并將數(shù)據(jù)以一定格式返回到客戶端。
3.1 教師論文出題功能的實現(xiàn)
每個教師使用自己的工號和密碼進(jìn)入管理界面,點擊論文出題模塊,系統(tǒng)將根據(jù)論文審核表中的有關(guān)信息查看該教師是首次登錄還是重復(fù)登錄,如果為首次登錄,頁面上將出現(xiàn)相應(yīng)的論文數(shù)據(jù)表,填寫各個字段,包括論文題目,課題來源,學(xué)生要求(比如專業(yè)限制等)、其他要求(比如性別要求等),填寫完畢后選擇提交按鈕實現(xiàn)出題的功能。其中要注意的是管理員在選題管理表中根據(jù)每個教師的職稱對教師的出題數(shù)目和所帶學(xué)生人數(shù)進(jìn)行了限制,比如根據(jù)副教授職稱只能帶兩個畢業(yè)論文題目,一個課題只能有一個學(xué)生選擇等。如果為重復(fù)登錄,將根據(jù)論文審核表中的相關(guān)信息查看該教師有無被退回的題目,如果有,頁面顯示該教師被退回題目的相關(guān)信息,如果沒有,提示該教師出題成功,無需再次出題。
3.2 教師論文選題功能的實現(xiàn)
當(dāng)教師使用自己的工號和密碼進(jìn)入管理界面,點擊論文選題模塊,頁面上將出現(xiàn)論文課題、學(xué)生姓名(點擊學(xué)生姓名鏈接將出現(xiàn)學(xué)生的有關(guān)信息)并同頁面預(yù)設(shè)置有鎖定和退回功能鍵,當(dāng)教師查看符合要求時點擊鎖定功能即能實現(xiàn)雙向選定,否則點擊退回功能,此課題呈現(xiàn)空置狀態(tài),以供其他學(xué)生選擇。
3.3 學(xué)生選題功能的實現(xiàn)
每個學(xué)生使用自己的學(xué)號和密碼進(jìn)入相應(yīng)界面,點擊論文選題模塊,頁面上將出現(xiàn)還沒有被選擇的畢業(yè)論文選題列表,分別有論文數(shù)據(jù)表中以下字段:論文編號、論文題目、出題教師工號(點擊教師工號可出現(xiàn)鏈接教師的有關(guān)信息),并同頁面預(yù)設(shè)置有鎖定和撤銷功能鍵,如果該生已經(jīng)選題,系統(tǒng)將其視為修改選題,修改學(xué)生數(shù)據(jù)表中該學(xué)號學(xué)生記錄中論文編號數(shù)據(jù)即可。
3.4 論文審核功能的實現(xiàn)
教師填寫論文選題之后,系主任要對論文題目進(jìn)行審核。當(dāng)系主任使用自己的工號和密碼進(jìn)入管理界面后,點擊論文審核模塊,頁面上將出現(xiàn)已經(jīng)上傳的論文題目,并同頁面預(yù)設(shè)置確定和修改的功能鍵,如果論文題目不符合要求,系主任點擊修改,并給出修改意見,否則點擊確定通過,這樣教師論文出題成功。此時將該教師工號記錄入此論文數(shù)據(jù)表中,將論文編號記錄入教師信息表中。
4 結(jié)束語
該系統(tǒng)結(jié)合ASP開發(fā)平臺和SQL Server2000 技術(shù),實現(xiàn)了畢業(yè)論文(設(shè)計)階段從選題管理、論文寫作、中期檢查、論文提交等方面進(jìn)行綜合管理的一個系統(tǒng)平臺。整個系統(tǒng)在設(shè)計上保持了各個部分的相對獨(dú)立性同時又是有機(jī)地融合在一起的,體現(xiàn)了各自的特點。在教學(xué)管理應(yīng)用中收到了較好的效果。
根據(jù)目前的管理思路我們也有進(jìn)一步的設(shè)想:1) 逐步實現(xiàn)畢業(yè)論文的網(wǎng)上歸檔功能,和檔案館歸檔軟件形成對接,實現(xiàn)畢業(yè)論文的電子歸檔;2) 通過和圖書館數(shù)據(jù)檢索平臺的功能對接,實現(xiàn)畢業(yè)論文在數(shù)據(jù)庫平臺的電子查閱,由圖書館專業(yè)人員作標(biāo)引工作,實現(xiàn)有序的存儲和高效利用。
參考文獻(xiàn):
[1] 陳芳, 陳朝. RBAC在MIS中的應(yīng)用[J]. 計算機(jī)系統(tǒng)應(yīng)用,2003(1):43-44.
[2] 李杰. 基于ASP畢業(yè)論文選題系統(tǒng)的設(shè)計[J]. 湖南環(huán)境生物職業(yè)技術(shù)學(xué)院學(xué)報,2007,13(2):30-32.
[3] 崔盟. 基于Struts+Ajax的學(xué)位論文管理與服務(wù)系統(tǒng)的設(shè)計和實現(xiàn)[J]. 現(xiàn)代圖書情報,2007(11):7-12.
[4] 嚴(yán)國麗, 等. 基于.NET的論文管理系統(tǒng)的設(shè)計與實現(xiàn)[J]. 電腦學(xué)習(xí),2007,10(5):10-12.
中圖分類號:TP392:J642.477文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2007)17-31327-02
Design and Implementation of Thesis Searching System Based on B/S structure
LIU Qun-Yan,ZHANG Da-Wei
(Library Xi'an Polytechnic University ,Xi'an 710048,China)
Abstract:Based on the B/S structure, a thesis searching system is designed and developed for academic thesis searching by the ASP technique and SQL database. The system can run very stably, has complete functions and satisfies all requirements of thesis search excellently, which provides a good platform for sufficient using of academic thesis.
Key words:thesis search; ASP technology; SQL SERVER; B/S structure
1 前言
學(xué)位論文是高等院?;蚩蒲袡C(jī)構(gòu)的學(xué)生為獲得某一級別的學(xué)位而向?qū)W?;蚱渌鼘W(xué)術(shù)單位提交的學(xué)術(shù)研究論文,是圍繞某一學(xué)科的重點或前沿課題進(jìn)行的創(chuàng)造性研究和探討并加以總結(jié)的產(chǎn)物,所以它是具有較高學(xué)術(shù)價值的科技文獻(xiàn)。但很多高校多年來的博士和碩士論文因查詢不便而不能為教學(xué)和科研充分利用,所以建立基于網(wǎng)絡(luò)的、不受時間和空間約束的論文檢索系統(tǒng)已成為提高高校學(xué)位論文利用率的關(guān)鍵。而購買商業(yè)公司開發(fā)的檢索系統(tǒng)雖然其功能齊全、性能穩(wěn)定,但不僅代價昂貴,而且其過于廣泛,不適合某一高校的學(xué)科特點和該校圖書館的具體情況。所以開發(fā)高校學(xué)位論文檢索系統(tǒng)非常必要,而且具有實際應(yīng)用意義。本文討論了該系統(tǒng)的開發(fā)過程和核心難點技術(shù)。
2 系統(tǒng)技術(shù)分析及開發(fā)環(huán)境
本系統(tǒng)采用三層B/S體系結(jié)構(gòu)為其基本框架,運(yùn)用當(dāng)前應(yīng)用廣泛的動態(tài)web技術(shù)ASP實現(xiàn)其與數(shù)據(jù)庫的強(qiáng)大操作和遠(yuǎn)程客戶端的交流。下面對這些技術(shù)和開發(fā)環(huán)境進(jìn)行分析介紹。
2.1 B/S結(jié)構(gòu)
B/S(Browser/Server)結(jié)構(gòu)即瀏覽器/服務(wù)器結(jié)構(gòu),是把web 技術(shù)和數(shù)據(jù)庫技術(shù)結(jié)合起來的技術(shù),其實現(xiàn)了開發(fā)環(huán)境和應(yīng)用環(huán)境的分離,即用戶端利用相對統(tǒng)一的瀏覽器( IE、Netscape 等) 代替客戶端軟件,實現(xiàn)跨平臺的應(yīng)用服務(wù),B/S通常采用三層分布式體系結(jié)構(gòu),如圖1所示。
圖1 B/S結(jié)構(gòu)
三層B/S結(jié)構(gòu)的工作方式主要是用戶通過瀏覽器表單形式把客戶請求以HTTP 協(xié)議方式發(fā)送到web服務(wù)器,web服務(wù)器向數(shù)據(jù)庫服務(wù)器發(fā)送數(shù)據(jù)請求,數(shù)據(jù)庫服務(wù)器經(jīng)過數(shù)據(jù)處理后將符合條件的數(shù)據(jù)返回到web服務(wù)器,web服務(wù)器把結(jié)果翻譯成HTML模式或各類Script 格式, 返回瀏覽器供用戶閱讀。
本系統(tǒng)采用三層B/S體系結(jié)構(gòu),用戶只要能連接到Internet網(wǎng)絡(luò),就能很方便的在任何時間任何地點查詢學(xué)位論文。
2.2 ASP技術(shù)
ASP(Active Server Page) 是Microsoft 提出的基于服務(wù)器端的腳本執(zhí)行環(huán)境,通過在普通HTML頁面中嵌入的ASP腳本語言(VBScript 、Jscript),就可以建立和執(zhí)行動態(tài)的、交互的、高性能的Web應(yīng)用程序。由于ASP腳本是在服務(wù)器端解釋執(zhí)行的,所以用其設(shè)計的程序獨(dú)立于客戶端瀏覽器且保密性較高;ASP采用ADO技術(shù)訪問數(shù)據(jù)庫,ADO是一組優(yōu)化的訪問數(shù)據(jù)庫專用對象集,提供了完整的站點數(shù)據(jù)庫訪問方案,使ASP訪問數(shù)據(jù)庫十分方便?;谝陨显?,本系統(tǒng)采用ASP技術(shù)來實現(xiàn)其功能。
2.3 系統(tǒng)開發(fā)平臺和環(huán)境
本系統(tǒng)服務(wù)器端采用高性能、高可靠性和高安全性的Microsoft Windows 2003 Server為其操作系統(tǒng),并配置IIS6.0;選取可擴(kuò)充的、高效的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)SQL SERVER 2000為后臺數(shù)據(jù)庫;采用專業(yè)網(wǎng)站開發(fā)編輯器Macromedia Dreamweaver MX 2004為系統(tǒng)開發(fā)工具;開發(fā)語言為HTML和VBScript;客戶端只需要安裝 IE4.0 或Netscape3.0 以上版本的瀏覽器即可使用本系統(tǒng)。
3 系統(tǒng)的總體結(jié)構(gòu)設(shè)計
在開發(fā)此系統(tǒng)之前,作者做了大量的需求分析,充分了解掌握了系統(tǒng)所必需具有的功能,并考慮了人機(jī)功效方面的問題進(jìn)行系統(tǒng)設(shè)計。下面對該系統(tǒng)的功能模塊、web頁面、數(shù)據(jù)庫作總體的設(shè)計。
3.1 功能模塊分析與設(shè)計
根據(jù)用戶對論文檢索精度要求的不同,該系統(tǒng)主要分為兩大模塊,(1)基本檢索模塊,(2)高級檢索模塊,如圖2所示。
圖2 系統(tǒng)工作流程圖
基本檢索模塊:主要適用于對檢索精確度要求不高、對論文庫按某一條件字段進(jìn)行簡單分類檢索的用戶。該模塊的功能要求主要有:用戶選擇某一檢索項并輸入檢索詞,就可檢索到符合該條件的所有記錄,并將檢索結(jié)果分頁顯示;可以瀏覽某一紀(jì)錄的詳細(xì)內(nèi)容,包括摘要。
高級檢索模塊:該模塊適用于對檢索結(jié)果要求精確、多條件查詢的用戶。該模塊的功能要求主要有:可以實現(xiàn)多個條件的與、或、非復(fù)雜查詢;將檢索結(jié)果分頁顯示;可瀏覽某一紀(jì)錄的詳細(xì)信息,包括摘要。
根據(jù)學(xué)位論文的特點和用戶的檢索需求,其檢索選擇項分為七類:論文題名、論文作者、論文導(dǎo)師、關(guān)鍵詞、學(xué)科專業(yè),中文摘要、分類號。
3.2 Web頁面設(shè)計
根據(jù)該系統(tǒng)的模塊及功能,實現(xiàn)該系統(tǒng)需要4個頁面。檢索首頁index.asp,該頁面采用HTML表單的形式收集用戶輸入的檢索詞及檢索選擇項條件;基本檢索Bsearch.asp,該頁實現(xiàn)基本檢索的功能頁面,并將查詢結(jié)果分頁顯示;高級檢索Hsearch.asp,該頁實現(xiàn)高級檢索多選項、多條件的與、或、非查詢功能,并將查詢結(jié)果分頁顯示;記錄詳細(xì)顯示Show.asp, 該頁實現(xiàn)瀏覽某一紀(jì)錄的詳細(xì)信息,本校用戶可查看全文。其頁面間的關(guān)系如圖3所示。
圖3 頁面關(guān)系圖
3.3 后臺數(shù)據(jù)庫設(shè)計
本系統(tǒng)采用SQL SEVER 2000來創(chuàng)建后臺數(shù)據(jù)庫。為了提高數(shù)據(jù)庫服務(wù)器的響應(yīng)速度并確保數(shù)據(jù)安全,本系統(tǒng)采用文件實體和文件參數(shù)分別存放的方法,即在數(shù)據(jù)庫中只保存論文的文件名、存放路徑、文件格式和大小,而在WEB服務(wù)器指定目錄存放學(xué)位論文全文。根據(jù)學(xué)位論文的構(gòu)成特點和用戶的查詢需求,創(chuàng)建的數(shù)據(jù)庫表的字段如下:姓名、學(xué)號、專業(yè)、培養(yǎng)單位、論文題名、分類號、學(xué)位級別、導(dǎo)師姓名、導(dǎo)師單位、提交日期、關(guān)鍵詞、論文頁數(shù)、中文摘要、英文摘要、全文文件名,全文路徑、全文大小、全文格式。
4 系統(tǒng)功能實現(xiàn)及核心技術(shù)
在本系統(tǒng)的開發(fā)過程中,主要解決了三個核心技術(shù)問題。ASP與WEB數(shù)據(jù)庫的連接、多條件的與、或、非復(fù)雜查詢問題和查詢結(jié)果分頁顯示問題。下面來闡述這些問題的解決方法。
4.1 ASP與WEB數(shù)據(jù)庫的連接
ASP與數(shù)據(jù)庫的連接一般有三種方法:(1)通過ODBC DSN建立連接,(2)通過OLE DB建立連接,(3)通過Driver建立連接,本系統(tǒng)選用通過Driver建立連接的方法,使用該方法,程序的可移植性比較好。系統(tǒng)建立連接的過程如下:(1)建立數(shù)據(jù)庫連接對象:set conn = server.createobject ("adodb. connection ");(2)打開要訪問的數(shù)據(jù)庫:conn.open"Driver;Server=;Database=;Uid=;Pwd= "(3)建立記錄集對象:set rs= server. createobject("ADODB.recordset");(4)打開記錄集對象:rs. open strsql,conn,"3","1";(5)利用記錄集對象所提供的屬性對Web 數(shù)據(jù)庫實施操作;(6)關(guān)閉記錄集對象:rs.close;(7)關(guān)閉數(shù)據(jù)連接對象:conn.close;
4.2 檢索功能實現(xiàn)
本系統(tǒng)兩大檢索模塊中,基本檢索模塊中的SQL查詢比較簡單,在這里不予熬述。重點來闡述高級檢索模塊中的動態(tài)多選項、多條件的與、或、非查詢,這是開發(fā)本系統(tǒng)的核心技術(shù)和難點之一。本文采用VBScript中的select case語句來識別用戶的動態(tài)檢索項,用IF語句來控制多條件的查詢,專門設(shè)置變量strhigh2接受用戶所選取的與、或、非條件。SQL查詢語句用變量strsql來保存,而最初的查詢語句是:strsql= "select * from table1 where 1=1 ",后面依據(jù)條件對查詢語句進(jìn)行疊加,如:strsql=strsql& "select * from table1 where name = "liuyan" ",直到條件判斷完畢,最后形成SQL查詢語句,并保存在strsql變量中,執(zhí)行rs.open strsql,conn,"3","1"語句。系統(tǒng)查詢功能實現(xiàn)。
為了提高系統(tǒng)的簡單易用性和查詢結(jié)果的命中精度,本系統(tǒng)支持作者姓名、導(dǎo)師姓名字段的精確查詢,而對字段論文題名、關(guān)鍵詞、論文摘要、提交年份、學(xué)科專業(yè)、分類號實施模糊查詢,如:用SQL語句seletc * from table1 where name like %"& yan & "%實現(xiàn)模糊查詢。
4.3 查詢結(jié)果分頁顯示
在顯示查詢結(jié)果時,如果所有檢索的命中記錄在一頁顯示,將不方便用戶瀏覽,所以系統(tǒng)要求將查詢結(jié)果分頁顯示。而實現(xiàn)查詢結(jié)果分頁顯示關(guān)鍵要解決兩方面的問題:(1)循環(huán)顯示本頁記錄,(2)翻頁控制。
循環(huán)顯示本頁記錄:即當(dāng)前頁記錄的顯示問題。本系統(tǒng)采用雙重嵌套的Do WhileLoop語句來控制當(dāng)前頁記錄的顯示,用 rs.("字段名")顯示記錄字段;采用ADO中數(shù)據(jù)集RecordSet對象的一些屬性來進(jìn)行參數(shù)設(shè)置:用PageSize屬性設(shè)置每頁顯示的記錄數(shù);用PageCount 、RecordCount屬性分別顯示檢索命中的總記錄數(shù)和頁數(shù);用AbsolutePage屬性表示當(dāng)前頁碼;用MoveNext方法來移動記錄指針;并用到了BOF 屬性和EOF 屬性。通過運(yùn)用以上的語句控制與屬性設(shè)置,實現(xiàn)了當(dāng)前頁記錄的顯示。
(2)翻頁控制:系統(tǒng)要求將查詢結(jié)果分多頁顯示,而在進(jìn)行翻頁時,涉及到對頁面bsearch.asp或hsearch.asp(實現(xiàn)檢索和分頁顯示的功能頁)的自身連接,也就是web服務(wù)器端要重新執(zhí)行該頁面程序,重新接收用戶輸入的檢索詞和重新執(zhí)行SQL查詢語句,并且要求正確顯示目標(biāo)頁記錄。所以,在系統(tǒng)進(jìn)行翻頁時,要對兩類參數(shù)進(jìn)行傳遞,分別是用戶輸入的檢索詞、檢索項和當(dāng)前頁數(shù)。本系統(tǒng)采用表單的隱藏域來對這兩類參數(shù)進(jìn)行傳遞,選取Request.form("")來接收用戶從表單輸入的檢索詞和檢索項,而采用Request.querystring("")來接收翻頁時由表單隱藏域傳遞的檢索詞、檢索項參數(shù)和當(dāng)前頁數(shù)參數(shù),并用IF語句來判斷使用前者還是后者;翻頁的自身連接采用URL方式傳遞目標(biāo)頁數(shù)。參數(shù)傳遞正確,系統(tǒng)成功實現(xiàn)翻頁功能。
5 結(jié)束語
采用web技術(shù)、數(shù)據(jù)庫技術(shù)、ASP技術(shù)實現(xiàn)了基于B/S結(jié)構(gòu)的高校學(xué)位論文檢索系統(tǒng)。在此系統(tǒng)開發(fā)過程中,重點研究解決了動態(tài)多選項、多條件的與、或、非復(fù)雜查詢問題,以及檢索結(jié)果分頁顯示的問題。經(jīng)過測試,本系統(tǒng)性能穩(wěn)定、界面友好、易于使用,現(xiàn)已應(yīng)用于西安工程大學(xué)圖書館,解決了高校學(xué)位論文的檢索難題,使得博士、碩士論文能夠被科研和教學(xué)充分利用,提高了學(xué)問論文的利用率,這也是開發(fā)本系統(tǒng)的真正意義所在,作者感到欣慰!
參考文獻(xiàn):
[1]陳健偉,李美軍,施建強(qiáng),等. ASP動態(tài)網(wǎng)站開發(fā)教程[M].北京:清華大學(xué)出版社,2005.188-206.
[2]張固,汪曉平.ASP網(wǎng)絡(luò)應(yīng)用系統(tǒng)典型模塊開發(fā)實例解析[M].北京:人民郵電出版社,2005.53-95.
[3]龍馬工作室.ASP+SQL Server組建動態(tài)網(wǎng)站實例精講[M]. 北京:人民郵電出版社,2005.73-96.
高??蒲泄芾硭O(shè)計的事務(wù)非常繁雜,涉及到??蒲刑?、各個系的科研管理以及個人對科研信息的查詢統(tǒng)計等。所設(shè)計的系統(tǒng)既要有利于科研處的監(jiān)督管理又要有利于各個系及教師的分工協(xié)作。系統(tǒng)功能主要包括??蒲刑幙蒲泄芾?、院系(或部門)科研管理、個人科研信息查詢、校級科研項目整體信息管理??梢詣澐譃榭蒲行畔⒕S護(hù)、科研信息查詢與統(tǒng)計、科研信息報表、科研信息分析、校級課題申報、審批、合同簽定、結(jié)題、其它處理等操作;其中科研信息應(yīng)細(xì)分為學(xué)術(shù)論文、著作、科研項目、科研成果、科研獎勵等信息。
2用戶需求分析
由于本系統(tǒng)是直接面向網(wǎng)上辦公的,必須適應(yīng)所服務(wù)環(huán)境的各類操作人員,主要包括學(xué)??蒲刑帯⒏髟合担ɑ虿块T)、普通教師個人(或其他瀏覽者)。
2.1普通教師個人(或其他瀏覽者)
普通教師個人(或其他瀏覽者)只能按姓名來瀏覽個人的科研信息、進(jìn)行統(tǒng)計打印,個人的科研信息(論文、著作、項目成果等)必須提交本部門審核入錄。
2.2各院系(或部門)
各院系(或部門)主要職責(zé)是對本部門員工的論文、著作、項目、成果、獎勵等信息進(jìn)行審核后輸入到本系統(tǒng)數(shù)據(jù)庫中,查詢本部門在某時間內(nèi)的科研信息、統(tǒng)計科研情況、打印相關(guān)資料等,同時對本部門的錯誤錄入信息進(jìn)行修改和維護(hù)。
2.3科研處
主要管理本校的員工信息、論文、著作、各級各類科研項目和成果、科研獎勵等常規(guī)工作,同時,管理校級課題的申報、審批、合同、檢查、結(jié)題等管理,同時,監(jiān)控系統(tǒng)運(yùn)行和各部門的情況。
3數(shù)據(jù)庫設(shè)計及關(guān)鍵技術(shù)實現(xiàn)
3.1數(shù)據(jù)庫表創(chuàng)建
根據(jù)系統(tǒng)需求分析,將系統(tǒng)的實現(xiàn)直接定位在更好的適合各層次人員的需求和操作,系統(tǒng)的所有初始化數(shù)據(jù)均采用界面錄入的方法,由各類人員分工完成。根據(jù)我校的實際情況,筆者將科研人員基本信息、論文信息、科研項目信息、成果信息、獲獎情況信息等作為系統(tǒng)的初始化數(shù)據(jù),為個人和院系查詢、統(tǒng)計、打印,科研處操作、加工、管理、集成等工作提供基本的數(shù)據(jù)平臺。主要數(shù)據(jù)表格設(shè)計如下:
科研人員信息表(職工號,姓名,性別,職稱,出生日期,所學(xué)專業(yè),現(xiàn)從事專業(yè),學(xué)歷,學(xué)位,工作時間,所在部門,備注)。
論文信息表(序號,論文名稱,刊物名稱,刊物類別,刊物級別,主辦單位,作者,職工號,發(fā)表時間,刊號,備注)。
論著信息表(序號,著作名稱,圖書編號,著作類別,出版社,學(xué)科類別,作者,職工號,出版時間,版次,備注)。
科研項目表(序號,項目編號,項目名稱,項目來源,項目類別,完成單位,負(fù)責(zé)人,課題組成員,立項時間,擬定期限,經(jīng)費(fèi)金額,是否鑒定,鑒定時間,鑒定單位,備注)。
科研成果表(序號,成果名稱,成果類別,成果經(jīng)費(fèi),完成時間,負(fù)責(zé)人,完成單位,是否投入生產(chǎn),經(jīng)濟(jì)效益,備注)。
科研獎勵表(序號,獲獎人員,項目名稱,獎勵名稱,授予單位,時間,備注)。
校級項目管理表(項目編號,項目名稱,課題名稱,負(fù)責(zé)人,所在部門,職務(wù)或職稱,聯(lián)系電話,申報表,申報時間,申報經(jīng)費(fèi),是否批準(zhǔn),批準(zhǔn)日期,批準(zhǔn)經(jīng)費(fèi),合同時間,合同內(nèi)容,是否結(jié)題,結(jié)題時間,鑒定技術(shù)負(fù)責(zé)人,項目成果效益,備注)。
校級鑒定專家表(序號,姓名,性別,出生日期,工作單位,學(xué)歷,學(xué)位,所學(xué)專業(yè),現(xiàn)從事專業(yè),職稱職務(wù),備注)。
在上述表格中,加下劃線字段代表主鍵,加雙劃線字段代表外鍵。其中科研人員信息表之所以選擇(職工號,姓名)作為主鍵,考慮到姓名經(jīng)常作為查詢、操作條件,并在相關(guān)表中作為科技人員的重要描述和限制;為了避免數(shù)據(jù)錄入的無序狀況,數(shù)據(jù)庫表之間建立了嚴(yán)格的參照完整性,并且對所有表都分配了操作權(quán)限,并將錯誤信息及時反饋給操作人員,科研人員信息表、論文信息表、論著信息表通過“職工號”建立參照完整性關(guān)系,在錄入論文、論著時,作者必須是本單位職工,如果科研人員信息表不存在該員工,便給出錯誤提示,提示檢查是否是合法職工,如果是,便可以在科研人員信息表中添加該員工信息后錄入論文、論著信息,否則,拒絕錄入,“職工號”又為組合查詢提供了連接條件支持;同時將科研項目表、科研成果表、校級項目管理表中“負(fù)責(zé)人”和科研人員信息表中的“姓名”建立主鍵、外鍵參照完整性關(guān)系,校級課題的申報負(fù)責(zé)人也必須是本單位某部門的職工;獲獎人員,必須是科研人員信息表中某一職工;將校級鑒定專家表和校級項目管理表通過“鑒定技術(shù)負(fù)責(zé)人”、“姓名”建立參照完整性管理,限定了鑒定技術(shù)負(fù)責(zé)人必須是本校專家表中的專業(yè)人員;所有表的主鍵設(shè)置都加上“姓名”字段,目的是為了符合人們的常規(guī)習(xí)慣,常以某個專業(yè)人員姓名作為操作、查詢條件,科研人員信息表與其他相關(guān)表格建立參照完整性為了限制科研、論文、論著、成果、獎勵等信息的科學(xué)合法性,同時有利于統(tǒng)計和查詢;只有完善的參照完整性,才能使得數(shù)據(jù)庫中數(shù)據(jù)具有一致性和互操作性。
3.2存儲過程的設(shè)計
存儲過程是Transact-SQL語句的集合,它是實現(xiàn)事務(wù)或業(yè)務(wù)規(guī)則的極好途徑,是在數(shù)據(jù)庫服務(wù)器上存儲與執(zhí)行的。使用它,可以大大減少網(wǎng)絡(luò)傳輸流量,提高應(yīng)用程序性能和安全性,而且由于它只在第一次執(zhí)行時被優(yōu)化、編譯。因此,使用存儲過程不僅可以極大地降低應(yīng)用程序的實現(xiàn)難度,而且還可以極大地提高系統(tǒng)的運(yùn)行速度、效率。存儲過程的設(shè)計一定要符合邏輯業(yè)務(wù)規(guī)則和要求,根據(jù)實際,對一些常規(guī)、頻繁使用的查詢、插入數(shù)據(jù)操作使用存儲過程來完成。以下操作可以考慮使用存儲過程來完成:
①對系統(tǒng)的初始化數(shù)據(jù)時錄入各種基本信息操作。
②查詢個人、部門科研信息時的查詢操作。
③科研處的其他常規(guī)操作。
下面以查詢部門科研信息為例介紹存儲過程使用方法,在此查詢某一部門的論文、論著信息。描述代碼:
CREATEPROCEDURE論文論著
@achar(20)
as
select姓名,論文名稱,刊物名稱,刊物類別,刊物級別,發(fā)表時間,備注
from科研人員信息表,論文信息表
where科研人員信息表。職工號=論文信息表。職工號and所在部門=@a
select姓名,著作名稱,出版社,出版時間,版次,備注
from科研人員信息表,論著信息表
where科研人員信息表。職工號=論著信息表。職工號and所在部門=@a
其它操作不再做列述。從提高執(zhí)行效率、提高安全性、共享性方面考慮,盡可能多的使用存儲過程來提高數(shù)據(jù)庫的整體性能。
3.3觸發(fā)器的使用
使用觸發(fā)器來實現(xiàn)表間的數(shù)據(jù)自動操作,提高系統(tǒng)效率,校級鑒定專家表中的信息主要來源于科研人員信息表中具有副高職稱以上的人員,在輸入或修改科研人員信息時,只要是具有副高級職稱以上的人員,就可以自動添加到校級鑒定專家表中,該操作可以使用觸發(fā)器來實現(xiàn),代碼描述如下:
CreateTriggerptz
On科研人員信息表
Forinsert,update
As
Insertinto校級鑒定專家表(姓名,性別,出生日期,工作單位,學(xué)歷,學(xué)位,所學(xué)專業(yè),現(xiàn)從事專業(yè),職稱職務(wù),備注)Select(姓名,性別,出生日期,所在部門,學(xué)歷,學(xué)位,所學(xué)專業(yè),現(xiàn)從事專業(yè),職稱職務(wù),備注)。
From科研人員信息表,其中,校級鑒定專家表中的序號是自動生成的標(biāo)識列。
同時,可以用觸發(fā)器來檢驗校級項目負(fù)責(zé)人是否在科研人員信息表中,其中,用事務(wù)以驗證合法性以控制該項操作是否完成。
代碼描述如下:
CreateTriggercheck1
On校級項目管理表
Forinsert
As
begintran
declare@achar(12)
select@a=負(fù)責(zé)人fromInserted
If(selectcount(*)from科研人員信息表where姓名=@a)=0
begin
Print''''負(fù)責(zé)人不合法''''
rollbacktran
end
committran
其它類似操作不做描述。
在設(shè)計中,堅持使用觸發(fā)器實現(xiàn)盡可能多的實現(xiàn)前臺操作,不僅提高了操作效率、更提高了代碼的安全性和共享性。
3.4數(shù)據(jù)庫安全設(shè)計
網(wǎng)絡(luò)的安全非常重要,從數(shù)據(jù)庫級、服務(wù)器級和應(yīng)用程序級綜合考慮,在科研管理系統(tǒng)中要根據(jù)不同用戶,設(shè)置不同的權(quán)限、不同的初始化菜單。在本系統(tǒng)中,數(shù)據(jù)庫的安全主要通過數(shù)據(jù)庫的存取控制機(jī)制實現(xiàn)的。首先定義各類管理人員的操作權(quán)限即角色,其次定義數(shù)據(jù)庫登錄,最后依據(jù)用戶權(quán)限表將登錄分配為相應(yīng)的角色。由于人員的復(fù)雜性,角色分為三個層次:科研處級別、二級部門級別、普通教師級別。用戶屬于某一角色,即使用戶職務(wù)調(diào)動時,對用戶增刪,不影響其他用戶的操作,只是角色中用戶數(shù)量的變化。建立專門的系統(tǒng)使用權(quán)限表來記錄用戶和權(quán)限,同時也兼容部門設(shè)置信息,對不同部門分配相應(yīng)的權(quán)限和賬號,科研處是最高管理級別部門。