楚孟慧,吳姝瑤
(山東科技大學(xué)電氣信息系,山東濟(jì)南,250031)
隨著計(jì)算機(jī)技術(shù)的發(fā)展,信息的收集與統(tǒng)計(jì)早已經(jīng)離開(kāi)了傳統(tǒng)的紙質(zhì)記錄轉(zhuǎn)而記錄在各種數(shù)據(jù)庫(kù)中。數(shù)據(jù)庫(kù)中的數(shù)據(jù)存儲(chǔ)更容易保存、統(tǒng)計(jì)管理也更加方便快捷。面對(duì)復(fù)雜的學(xué)生公寓管理建立一套完整的數(shù)據(jù)庫(kù)系統(tǒng)來(lái)存儲(chǔ)信息能夠幫助我們更好地管理學(xué)生公寓信息。
實(shí)現(xiàn)一個(gè)學(xué)生公寓管理系統(tǒng)需要完成以下內(nèi)容:
學(xué)生信息管理:學(xué)生信息添加以及成績(jī)、宿舍號(hào)、樓層號(hào)、樓房號(hào)的查詢。實(shí)現(xiàn)學(xué)生信息的動(dòng)態(tài)更新。
管理員信息管理:管理員與學(xué)生身份的不同設(shè)置以及權(quán)限分配設(shè)置。實(shí)現(xiàn)系統(tǒng)的安全和管理員信息的動(dòng)態(tài)更新,通過(guò)管理員權(quán)限可對(duì)學(xué)生用戶進(jìn)行查詢、修改、添加、刪除。保證管理員的優(yōu)先權(quán)限和對(duì)系統(tǒng)的主要控制功能。
學(xué)生入住管理:管理員用戶登陸-->錄入學(xué)生信息-->學(xué)生登錄-->查詢相關(guān)信息-->管理員修改相關(guān)信息-->管理員添加新用戶-->管理員維護(hù)數(shù)據(jù)庫(kù)信息
宿舍管理系統(tǒng)需要實(shí)現(xiàn)宿舍學(xué)生和管理員權(quán)限的區(qū)別登陸,權(quán)限設(shè)定。宿舍管理員應(yīng)擁有、對(duì)宿舍成員的學(xué)號(hào)、姓名、宿舍號(hào)、宿舍樓的增加、刪除、修改、查詢權(quán)限和衛(wèi)生成績(jī)?cè)u(píng)定、修改、查詢。學(xué)生應(yīng)能夠?qū)崿F(xiàn)宿舍成績(jī)、宿舍樓、宿舍號(hào)、管理員的查詢以及新用戶添加的權(quán)限。學(xué)生權(quán)限在管理員權(quán)限之下,保證數(shù)據(jù)庫(kù)的安全性。采用java來(lái)讀取數(shù)據(jù)庫(kù)中的表內(nèi)容在控制后臺(tái)輸出,和錄入。
將實(shí)體以及實(shí)體之間的關(guān)系轉(zhuǎn)化為E-R圖如圖1。其中宿舍樓與宿舍是一對(duì)多的關(guān)系學(xué)生與管理員是多對(duì)多的關(guān)系。
圖1 E-R圖
每個(gè)實(shí)體的關(guān)系模式:
宿舍樓(樓房號(hào),房間數(shù),應(yīng)住人數(shù))
宿舍(宿舍號(hào),住宿費(fèi),床位數(shù),人數(shù))
屬于(樓房號(hào),宿舍號(hào),樓層號(hào))外碼:樓房號(hào),宿舍號(hào)
學(xué)生(學(xué)號(hào),姓名,用戶名,密碼,權(quán)限)
管理員(工號(hào),姓名,性別,電話,用戶名,密碼,權(quán)限)
管理(工號(hào),學(xué)號(hào),成績(jī))外碼:工號(hào),學(xué)號(hào)
入住(宿舍號(hào),學(xué)號(hào),入住時(shí)間)外碼:學(xué)號(hào),宿舍號(hào)
為每個(gè)實(shí)體類新建數(shù)據(jù)表,此處以學(xué)生表和管理員表為例,student表結(jié)構(gòu)如圖2其中學(xué)號(hào)、姓名、用戶名、密碼和權(quán)限分別用stno、name、username、password、power來(lái)表示,其中學(xué)號(hào)為主鍵。管理員表如圖3所示其中管理員工號(hào)、姓名、性別、電話、用戶名、密碼和權(quán)限分別用mno、mname、msex、mtel、username、password、power來(lái) 表 示。其 中nchar(10)表示數(shù)據(jù)類型為char型,對(duì)于常見(jiàn)的姓名、用戶名、電話、密碼等都非常適用。其中10表示字符長(zhǎng)度,當(dāng)用作密碼時(shí)可以將字符長(zhǎng)度改為16、32等更長(zhǎng)的字符長(zhǎng)度,避免因長(zhǎng)度不夠而產(chǎn)生的錯(cuò)誤。not null是與null相反的建表屬性,not null 的設(shè)定會(huì)導(dǎo)致該項(xiàng)在填入表數(shù)據(jù)時(shí)是不可或缺的。
圖2 student學(xué)生表
圖3 managers管理員表
數(shù)據(jù)表結(jié)構(gòu)建立好之后為每個(gè)學(xué)生添加信息如表1。
表1 學(xué)生信息
此處power項(xiàng)中0代表一種權(quán)限,此數(shù)據(jù)庫(kù)將0規(guī)定為學(xué)生權(quán)限,管理員權(quán)限則設(shè)置為1。由于stno是主鍵所以每一行的stno都應(yīng)不同否則數(shù)據(jù)添加不成功。管理員表數(shù)據(jù)添加與學(xué)生表相似此處不再列出。數(shù)據(jù)庫(kù)中的數(shù)據(jù)內(nèi)容到此就準(zhǔn)備結(jié)束了,接下來(lái)要進(jìn)行數(shù)據(jù)庫(kù)的管理操作,需要使用java來(lái)編寫(xiě)鏈接數(shù)據(jù)庫(kù)代碼。
下載鏈接工具包,配置到eclipse中,將sql server數(shù)據(jù)庫(kù)與eclise進(jìn)行鏈接。首先建立實(shí)體類,實(shí)體類中各屬性名稱與數(shù)據(jù)庫(kù)表中名稱協(xié)調(diào)一致,方便調(diào)用。分別建立邏輯層、數(shù)據(jù)庫(kù)訪問(wèn)層。實(shí)現(xiàn)學(xué)生與管理員的權(quán)限限制,實(shí)現(xiàn)學(xué)生信息的增加、刪除、修改、查詢等功能。具體功能如下圖4所示。
圖4 功能列表
數(shù)據(jù)庫(kù)的建立和使用可以使復(fù)雜的數(shù)據(jù)有組織有條理的存儲(chǔ)起來(lái),并對(duì)存儲(chǔ)起來(lái)的數(shù)據(jù)進(jìn)行方便快捷的管理。首先建立數(shù)據(jù)庫(kù)需要精準(zhǔn)的需求分析,這樣在需求的基礎(chǔ)上才能實(shí)現(xiàn)相應(yīng)的功能。其次對(duì)每個(gè)實(shí)體做出E-R圖,對(duì)數(shù)據(jù)中的主鍵和外鍵有著清楚地把握。接下來(lái)建立表結(jié)構(gòu)并且填入表數(shù)據(jù)。最后將數(shù)據(jù)庫(kù)用java語(yǔ)言編寫(xiě)代碼與eclipse等軟件連接,通過(guò)java等編程語(yǔ)言實(shí)現(xiàn)數(shù)據(jù)操作。