【文章內(nèi)容簡介】
增加管理數(shù)據(jù)的功能,同時,服務(wù)器不需將處理能力耗費在顯示數(shù)據(jù)上;(7)可以配置服務(wù)器以優(yōu)化檢索數(shù)據(jù)所需的磁盤輸入/輸出容量,配置客戶端以優(yōu)化從服務(wù)器檢索數(shù)據(jù)的格式;(8)可以將服務(wù)器存儲在一個相對安全的位置,并配備如不間斷電源供應(yīng)系統(tǒng)這樣的設(shè)備,這比完全保護(hù)每個客戶端更經(jīng)濟(jì); (9)維護(hù)任務(wù)(例如備份和恢復(fù)數(shù)據(jù))得到簡化,因為這些任務(wù)都可以集中在中央服務(wù)器上執(zhí)行。本系統(tǒng)采用MVC框架,MVC(ModelViewController)是一種設(shè)計 模式,它強(qiáng)制性地把應(yīng)用程序的輸入、處理和輸出分開。MVC把應(yīng)用程序分成3個核心:模型層、視圖層和控制層,它們分別擔(dān)負(fù)不同的任務(wù)。其中視圖層向用戶顯示相關(guān)的數(shù)據(jù),并能接受用戶的輸入數(shù)據(jù),但是它并不進(jìn)行任何實際的業(yè)務(wù)處理。模型層表示業(yè)務(wù)數(shù)據(jù)和業(yè)務(wù)邏輯。控制層接收用戶輸入并調(diào)用模型和視圖去完成用戶的需求。本系統(tǒng)需要用到的Java相關(guān)技術(shù)有jsp技術(shù)、servlet技術(shù)、jdbc技術(shù)、SSH框架。其中,關(guān)鍵的技術(shù)難點在于Struts技術(shù)的運用。Struts技術(shù)是基于MVC的Web應(yīng)用框架。在Struts框架中,模型層由實現(xiàn)業(yè)務(wù)邏輯的JavaBean組件構(gòu)成,控制層由ActionServlet和Action來實現(xiàn),視圖層由一組JSP文件構(gòu)成。 數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計數(shù)據(jù)庫表如下:(user)屬性類型主鍵/外鍵是否為空注釋idchar(12)主鍵否用戶IDpasswordchar(12)否密碼namechar(8)否用戶名(admin)屬性類型主鍵/外鍵是否為空注釋aidchar(12)外鍵(user)否管理員IDpasswordchar(12)否密碼namechar(8)否用戶名(teacher)屬性類型主鍵/外鍵是否為空注釋tidchar(12)外鍵(user)否教師IDpasswordchar(12)否密碼namechar(8)否用戶名(student)屬性類型主鍵/外鍵是否為空注釋sidchar(12)外鍵(user)否學(xué)生IDpasswordchar(12)否密碼namechar(8)否用戶名classchar(4)班級departmentnchar(20)系科majornchar(20)專業(yè)(course)屬性類型主鍵/外鍵是否為空注釋cidchar(12)外鍵(user)否課程IDnamechar(8)否課程名capcitysmallint課程容量remainsmallint剩余容量classTimesmalldate上課時間classAdressnchar(20)上課地點startSCTimesmalldate開始選課時間endSCTimesmalldate結(jié)束選課時間(selectCourse)屬性類型主鍵/外鍵是否為空注釋sidchar(12)外鍵(student)否學(xué)生IDcidchar(12)外鍵(course)否課程IDnamefloat否成績(judgeTeacher)屬性 類型 主鍵/外鍵是否為空注釋tidchar(12)外鍵(teacher)否教師IDcidchar(12)外鍵(course)否課程IDnamefloat否成績 數(shù)據(jù)庫的完整性和安全性 數(shù)據(jù)庫的完整性數(shù)據(jù)庫的完整性是指數(shù)據(jù)的正確性和相容性。數(shù)據(jù)庫管理系統(tǒng)(DBMS)用一定的機(jī)制來檢查數(shù)據(jù)庫中的數(shù)據(jù)是否滿足規(guī)定的條件——完整性約束條件,數(shù)據(jù)的約束條件是語義的體現(xiàn),將作為模式的一部分存入數(shù)據(jù)庫中。本系統(tǒng)中定義了表與表之間的聯(lián)系有助于實現(xiàn)完整性規(guī)則,一般在程序中實現(xiàn)具體的完整性控制。 數(shù)據(jù)庫的安全性數(shù)據(jù)庫的安全性是指保護(hù)數(shù)據(jù)庫以防止不合法的使用所造成的數(shù)據(jù)泄漏、更改或破壞。在數(shù)據(jù)庫系統(tǒng)中,大量的數(shù)據(jù)集中存放,而且為許多用戶直接共享,是寶貴的信息資源,系統(tǒng)的安全保護(hù)措施就顯得更為重要,它保護(hù)數(shù)據(jù)庫防止惡意的破壞和非法的存取。本系統(tǒng)包括數(shù)據(jù)庫的安全和服務(wù)器的安全。采用管理員表示和鑒定的方法實現(xiàn)數(shù)據(jù)庫的安全,此安全管理措施并不在前臺開發(fā)工具中實現(xiàn),而是在后臺數(shù)據(jù)庫中實現(xiàn)。在登錄數(shù)據(jù)庫時,系統(tǒng)讓管理員戶表示自己的身份,不同的管理員權(quán)限不同,系統(tǒng)進(jìn)行核實,鑒別此管理員是否為合法用戶,若是,系統(tǒng)進(jìn)一步核實用戶,通常要求用戶輸入口令,系統(tǒng)和對用戶口令以鑒別用戶身份。服務(wù)器的安全也是通過用戶在登錄服務(wù)器時輸入合法的用戶名和密碼來實現(xiàn)的。這是一種簡單可行的方法,實現(xiàn)起來比較方便。沒有采用更加復(fù)雜的系統(tǒng)安全管理措施是因為本管理系統(tǒng)一般是應(yīng)用在校園網(wǎng)中,采用安全管理措施主要是為了防止沒有修改權(quán)限的用戶無意間修改了數(shù)據(jù),因此采用用戶標(biāo)識和鑒定的安全管理措施就能夠保障數(shù)據(jù)庫的安全性。當(dāng)插入學(xué)生時,自動的在用戶(admin)表中插入相應(yīng)的學(xué)生編號且級別為密碼為默認(rèn)值create trigger insert_student on studentfor insertas begin declare @id char(20),@name char(20) select @id=,@name= from inserted。 if not exists(select userId from admin where userId=@id) insert into admin(userId,userJiBie,userName) values(@id,1,@name)。 endGO當(dāng)插入教師時,自動的在用戶(admin)表中插入相應(yīng)的教師編號且級別為密碼為默認(rèn)值create trigger insert_teacheron teacherfor insert as begin declare @id char(20),@name char(20) select @id=,@name= from inserted。 if not exists(select userId from admin where userId=@id) insert into admin(userId,userJiBie,userName) values(@id,3,@name)。 endGO當(dāng)插入管理員時,自動的在用戶(admin)表中插入相應(yīng)的管理員編號且級別為密碼為默認(rèn)值create trigger insert_administratoron administratorfor insertas begin declare @id char(20),@name char(20)select @id=,@name= from inserted。 if not exists(select userId from admin where userId=@id) insert into admin(userId,userJiBie,userName) values(@id,5,@name)。 endGO 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計依據(jù)課程管理系統(tǒng)的處理需求,對就數(shù)據(jù)表的設(shè)計及功能如下:(1)班級信息表:存放所有班級的基本信息。(2)課程信息表:存放所有課程的基本信息。(3)學(xué)生信息表:存放學(xué)生的基本信息。(4)教師信息表:存放教師的基本信息。(5)管理員信息表:存放訂管理員的基本信息。(6)選課信息表:存放學(xué)生選課的基本信息。(7)評教表:存放學(xué)生評價教師的基本信息(8)信息表:存放一些登錄信息的表。 實體與屬性之間的關(guān)系ER模型的組成元素有:實體、屬性、聯(lián)系。ER模型用ER圖表示。實體是用戶工作環(huán)境中所涉及的事務(wù),屬性是對實體特征的描述。(1)模型中的實體相當(dāng)于實體集、一個表,而不是單個實體或表中的一行。實體用矩形框表示,實體名稱標(biāo)注在矩形框內(nèi)。用菱形表示實體間的聯(lián)系,菱形框內(nèi)寫上聯(lián)系名,用無向邊把菱形分別與有關(guān)實體相連接,在無向邊旁標(biāo)上聯(lián)系的類型。(2)屬性是實體的性質(zhì)。用橢圓框表示,與實體之間用一條線相連表的主碼是關(guān)鍵屬性,關(guān)鍵屬性項加下劃線。(3)各子系統(tǒng)模塊中主鍵相同的字段之間存在著相互關(guān)聯(lián)的關(guān)系。(4)在程序中實現(xiàn)對他們的完整性和一致性控制。 ER模型管理員學(xué)生課程教師選課N1N管理M管理NMID姓名班級系科專業(yè)學(xué)生ID課程ID密碼成績ID上課時間開始選課時間結(jié)束選課時間講授N1密碼ID課程名姓名密碼ID姓名課程容量剩余容量管理MN上課地點系科 數(shù)據(jù)流圖及程序結(jié)構(gòu)框圖、核心模塊數(shù)據(jù)流圖選課通知學(xué)生評教表教師管理員課程表選課處理評教處理生成網(wǎng)上選課名單選課成功選課時間未到或選課失敗選課表設(shè)置選課時間選課成功評教成績處理錄入成績成績錄入設(shè)置評教時間評教通知、程序結(jié)構(gòu)圖系統(tǒng)采用MVC設(shè)計模式,M(Model)模型層用javabean表示業(yè)務(wù)邏輯連接操作數(shù)據(jù)庫等,V(View)視圖層用jsp表示各用戶界面,C(Control)控制層用Servlet快速的控制反轉(zhuǎn)功能調(diào)用M業(yè)務(wù)邏輯層。因此,系統(tǒng)程序結(jié)構(gòu)為(由于空間有限只列出了部分類的屬性和方法,其他都隱藏了):::