數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告_第1頁
數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告_第2頁
數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告_第3頁
數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告_第4頁
數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

千里之行,始于足下讓知識(shí)帶有溫度。第第2頁/共2頁精品文檔推薦數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告TYYGROUPsystemofficeroom【TYYUA16H-TYY-TYYYUA8Q8-

數(shù)據(jù)庫課程設(shè)計(jì)

教學(xué)管理系統(tǒng)

前言(4)

相關(guān)技術(shù)介紹(4)

第一章需求分析(4)

任務(wù)概述(5)

目標(biāo)(5)

運(yùn)行環(huán)境(5)

數(shù)據(jù)流圖(5)

數(shù)據(jù)字典(6)

系統(tǒng)流程分析(6)

其次章概念結(jié)構(gòu)設(shè)計(jì)(7)

第三章規(guī)律結(jié)構(gòu)設(shè)計(jì)(8)

規(guī)律結(jié)構(gòu)設(shè)計(jì)(8)

規(guī)范化處理(10)

第四章數(shù)據(jù)庫物理設(shè)計(jì)(11)

索引表(10)

系統(tǒng)配置(11)

視圖(11)

第五章數(shù)據(jù)庫的實(shí)施(11)

創(chuàng)建數(shù)據(jù)庫及數(shù)據(jù)庫對(duì)象(11)

完整性約束創(chuàng)建(13)

數(shù)據(jù)庫的維護(hù)及備份(14)

維護(hù)(14)

檢測(cè)并改善數(shù)據(jù)庫性能(14)

備份(14)

第六章前臺(tái)用戶界面(14)

第七章結(jié)論與體味(17)

安裝本軟件之前,需要確保計(jì)算機(jī)具有如下配置,這也是最低硬件要求:

使用1G內(nèi)存

不小于40MB的可用硬盤空間

(2)、軟件配置

安裝本軟件之前,需要確保計(jì)算機(jī)已安裝:MicorsoftWindowsXP及以上的操作系統(tǒng).NETFramework以上

數(shù)據(jù)流圖

系名稱Varchar201{漢字}20系信息表課程號(hào)Int44{數(shù)字}4課程信息表成果表

唯一標(biāo)示一個(gè)課程的編號(hào)

課程名稱Varchar201{漢字}20課程信息表

任課教師Varchar88{數(shù)字}8課程信息表這節(jié)課的負(fù)責(zé)老師考試成果

Int

3

1{數(shù)字}3

成果表

系統(tǒng)流程分析

前面的分析中我們確定了系統(tǒng)各個(gè)功能模塊,屬于靜態(tài)建模的范圍。在系統(tǒng)運(yùn)行時(shí)刻的動(dòng)態(tài)模型應(yīng)當(dāng)由系統(tǒng)流程打算。從上面的功能描述中,我們可以把各個(gè)系統(tǒng)分為5個(gè)模塊:用戶驗(yàn)證,師生信息管理,課程信息管理,成果管理和信息查詢。在每個(gè)模塊下又提供更為詳細(xì)的功能。具體的系統(tǒng)模塊關(guān)系圖如圖3所示。

圖3、程序流程圖

通過對(duì)囫圇管理系統(tǒng)的功能分析,可以定義出系統(tǒng)的功能模塊圖,從中再細(xì)分各模塊,可以得到系統(tǒng)概要模塊如下:

圖4、功能模塊圖2數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)

采納E-R圖的分析辦法,首先對(duì)局部視圖舉行分析設(shè)計(jì),然后再實(shí)現(xiàn)視圖集成。

在視圖集成時(shí),注重要盡量消退矛盾和冗余。在這里直接給出視圖集成后的E-R圖,如圖5所示。E-R圖如下

圖5、實(shí)體E-R圖3數(shù)據(jù)庫規(guī)律結(jié)構(gòu)設(shè)計(jì)

按照E-R圖,我們可以創(chuàng)建以下數(shù)據(jù)表。系統(tǒng)管理員表

系統(tǒng)管理員(admin)存儲(chǔ)了登錄本系統(tǒng)的用戶的登錄ID和密碼,權(quán)限以及鹽值

表1、系統(tǒng)管理員表

字段名稱數(shù)據(jù)類型可否為空約束條件說明ADMIN_USERVarchar(50)NOTNULL

主鍵管理員IDADMIN_PSWD

Varchar(256)NOTNULL

無管理員密碼哈希值A(chǔ)DMIN_PERMITVarchar(1)

NOTNULL

管理員權(quán)限

驗(yàn)證失反饋信息查

退出系統(tǒng)

信息增刪登錄界師生信息管課程信息管成果管理用戶驗(yàn)證

信息查詢勝利

同學(xué)信息管

教工信息管

師生信息管選課管課程信息管成果管理信息查詢

教學(xué)管理系統(tǒng)

身份驗(yàn)綜合查

統(tǒng)計(jì)報(bào)

系信息管理MMN

成果同學(xué)選課

課程系

教工屬于

屬于

教授NN

N1

1

權(quán)

管理

用戶

SaltVarchar(10)NOTNULL無管理員密碼鹽值

同學(xué)信息表

同學(xué)信息表(student)存放了小學(xué)的全部同學(xué)的基本信息,全部有關(guān)同學(xué)的操作都與這個(gè)表有關(guān)。通過時(shí)光戳自動(dòng)生成入學(xué)時(shí)光。信息從表中刪除時(shí)加入歷史表留底。

表2、同學(xué)信息表

字段名稱數(shù)據(jù)類型可否為空約束條件說明

SnoVarchar(50)NOTNULL主鍵同學(xué)學(xué)號(hào)

NOTNULL無同學(xué)姓名

SnameVarchar

(50)

SsexVarchar(1)NOTNULL無同學(xué)性別

S_DnoVarchar(50)NOTNULL外鍵同學(xué)所在系號(hào)SindateDatetimeNOTNULL時(shí)光戳形成同學(xué)入學(xué)時(shí)光老師信息表

老師信息表(teacher)存放了小學(xué)的全部老師的基本信息,全部有關(guān)老師的操作都與這個(gè)表有關(guān)。通過時(shí)光戳自動(dòng)生成入職時(shí)光。信息從表中刪除時(shí)加入歷史表留底。

表3、老師信息表

字段名稱數(shù)據(jù)類型可否為空約束條件說明

NOTNULL主鍵老師工號(hào)

TnoVarchar

(50)

NOTNULL無老師姓名

TnameVarchar

(50)

TsexVarchar(1)NOTNULL無老師性別

T_DnoVarchar(50)NOTNULL外鍵老師所在系號(hào)TindateDatetimeNOTNULL時(shí)光戳形成老師入職時(shí)光系信息表

系信息表(department)存放了小學(xué)的全部系的基本信息,并且與同學(xué)表以及老師表有緊密聯(lián)系

表4、系信息表

字段名稱數(shù)據(jù)類型可否為空約束條件說明

NOTNULL主鍵系號(hào)

DnoVarchar

(50)

DnameVarchar

NOTNULL無系名稱

(50)

DsummaryTextNULL無系簡(jiǎn)介課程信息表

課程信息表(course)記錄了小學(xué)中全部課程的信息。

表5、課程信息表

字段名稱數(shù)據(jù)類型可否為空約束條件說明

NOTNULL主鍵課程號(hào)

CnoVarchar

(50)

CnameVarchar

NOTNULL無課程名稱

(50)

NOTNULL外鍵任課教師工號(hào)

C_TnoVarchar

(50)

成果信息表

成果表(sc)記錄了某個(gè)同學(xué)在某們課程得到的成果。

表6、成果表

字段名稱數(shù)據(jù)類型可否為空約束條件說明

NOTNULL主鍵、外鍵同學(xué)學(xué)號(hào)

SnoVarchar

(50)

NOTNULL主鍵、外鍵課程名稱

CnoVarchar

(50)

GradeIntNULL無當(dāng)科成果歷史表

歷史表(history)記錄了離校同學(xué)或離職老師的信息,通過觸發(fā)器自動(dòng)生成,盡量避開手動(dòng)添加。作為留底超過一定數(shù)量應(yīng)賦予收拾。

字段名稱數(shù)據(jù)類型可否為空約束條件說明

HnoVarchar

NOTNULL主鍵曾用標(biāo)示號(hào)

(50)

NOTNULL無姓名

hnameVarchar

(50)

hSexVarchar(1)NOTNULL無性別

hdepartmentVarchar

NOTNULL無曾在系名

(50)

hindateDatetimeNOTNULL無入學(xué)日期

houtdateDatetimeNOTNULL時(shí)光戳形成離校日期審計(jì)表

審計(jì)表(Accesslog)記錄了除管理員外的數(shù)據(jù)庫用戶對(duì)數(shù)據(jù)庫的使用狀況,處于平安性考慮,用自立的數(shù)據(jù)庫舉行保存,并且只給予管理員權(quán)限舉行查看。只可通過系統(tǒng)舉行數(shù)據(jù)添加,嚴(yán)禁手工操作數(shù)據(jù)!

表8、審計(jì)表

經(jīng)過對(duì)初始關(guān)系模式的規(guī)范化處理以下關(guān)系模式中不存在部分函數(shù)依靠和傳遞函數(shù)依靠,已經(jīng)達(dá)到3NF。(加粗代表主碼,斜體外碼)

Admin(ADMIN_USER,ADMIN_PSWD,ADMIN_PERMIT)

Student(Sno,Sname,Ssex,S_Dno,Sindate)

Teacher(Tno,Tname,Tsex,T_Dno,Tindate)

Department(Dno,Dname,Dsummary)

Course(Cno,Cname,C_Tno)

SC(Sno,Cno,Grade)

4物理結(jié)構(gòu)設(shè)計(jì)

數(shù)據(jù)庫在物理上的存儲(chǔ)結(jié)構(gòu)與存儲(chǔ)辦法稱為數(shù)據(jù)庫的物理結(jié)構(gòu),它依靠于選定的數(shù)據(jù)庫管理系統(tǒng)。為一個(gè)給定的規(guī)律數(shù)據(jù)模型選取一個(gè)最適合應(yīng)用要求的物理結(jié)構(gòu)的過程,就是物理結(jié)構(gòu)設(shè)計(jì)。

數(shù)據(jù)庫的物理結(jié)構(gòu)設(shè)計(jì)通常分為兩步:

(1)確定數(shù)據(jù)庫的物理結(jié)構(gòu),在關(guān)系數(shù)據(jù)庫中主要指存取辦法和存儲(chǔ)結(jié)構(gòu);

(2)對(duì)物理結(jié)構(gòu)舉行評(píng)價(jià),評(píng)價(jià)的中的是時(shí)光和空間效率。

創(chuàng)建數(shù)據(jù)庫及建立索引以及完整性約束

使用工具NavicatforSQL,創(chuàng)建了school數(shù)據(jù)庫及Accesslog數(shù)據(jù)庫并生成相關(guān)數(shù)據(jù)庫模型,圖如下

建立各數(shù)據(jù)庫間的索引關(guān)系。

系統(tǒng)配置

在mysql配置文件中的mysqld設(shè)置項(xiàng)中寫入如下配置:

init-connect='insertinto

values(connection_id(),now(),user(),current_user());'

當(dāng)非超級(jí)管理員銜接數(shù)據(jù)庫時(shí)自動(dòng)向?qū)徲?jì)表中寫入審計(jì)記錄。

創(chuàng)建受限用戶a,只允許其對(duì)school數(shù)據(jù)庫中student,teacher,course,sc,department表舉行增刪改查操作,否決其他權(quán)限。

視圖

用SQL管理工具建立常用的一個(gè)視圖,即同學(xué)_成果視圖。

菜單欄中單擊工具→向?qū)А鷶?shù)據(jù)庫→創(chuàng)建視圖向?qū)В暨x你所要建的試圖的對(duì)象,挑選列名,根據(jù)提醒,最后單擊完成即可。

使用SQL語句建立視圖的命令如下:

createviewstudent_sc

as

selectsno,sname,,cname,grade

fromstudentjoinscon=

joincourseon=

5數(shù)據(jù)庫實(shí)施

創(chuàng)建數(shù)據(jù)庫及數(shù)據(jù)庫對(duì)象

*********************************************************CREATEDATABASEschool;

USEschool;

CREATETABLEAdmin(

ADMIN_USERVARCHAR(50)NOTNULL,

ADMIN_PSWDVARCHAR(50)NOTNULL,

ADMIN_PERMITVARCHAR(50)NOTNULL,

SaltVARCHAR(10)NOTNULL,

PRIMARYKEY(ADMIN_USER)

);

CREATETABLEStudent(

SnoVARCHAR(50)NOTNULL,

SnameVARCHAR(50)NOTNULL,

SsexVARCHAR(1)NOTNULL,

S_DnoVARCHAR(50)NOTNULL,

SindateDATETIMENOTNULL,

PRIMARYKEY(Sno)

);

CREATETABLETeacher(

TnoVARCHAR(50)NOTNULL,

TnameVARCHAR(50)NOTNULL,

TsexVARCHAR(1)NOTNULL,

T_DnoVARCHAR(50)NOTNULL,

TindateDATETIMENOTNULL,

PRIMARYKEY(Tno)

);

CREATETABLEDepartment(

DnoVARCHAR(50)NOTNULL,

DnameVARCHAR(50)NOTNULL,

DsummaryTEXT,

PRIMARYKEY(Dno)

);

CREATETABLECourse(

CnoVARCHAR(50)NOTNULL,

CnameVARCHAR(50)NOTNULL,

C_TnoVARCHAR(50)NOTNULL,

PRIMARYKEY(Cno)

);

CREATETABLESC(

SnoVARCHAR(50)NOTNULL,

CnoVARCHAR(50)NOTNULL,

GradeINT,

PRIMARYKEY(Sno,Cno)

);

CREATETABLEHISTORY(

HNOVARCHAR(50)NOTNULL,

HNAMEVARCHAR(50)NOTNULL,

HSEXVARCHAR(50)NOTNULL,

HDEPARTMENTVARCHAR(50)NOTNULL,

HINDATEDATETIMENOTNULL,

HOUTDATEDATETIMENOTNULL,

PRIMARYKEY(HNO)

);

CREATEDATABASEAccesslog;

UseAccesslong;

CREATETABLEAccesslong(

IDINT,

TIMETIMESTAMP,

LOCALNAMEVARCHAR(50),

MATCHNAMEVARCHAR(50),

PRIMARYKEY(ID

);

*********************************************************

完整性約束

*********************************************************

useschool;

altertablestudentaddconstraintFK_ID0foreignkey(S_Dno)REFERENCESdepartment(Dno);

altertableteacheraddconstraintFK_ID1foreignkey(T_Dno)REFERENCESdepartment(Dno);

altertablecourseaddconstraintFK_ID2foreignkey(C_Tno)REFERENCESteacher(Tno);

altertablescaddconstraintFK_ID3foreignkey(Sno)REFERENCES

student(Sno);

altertablescaddconstraintFK_ID4foreignkey(Cno)REFERENCES

course(Cno);

***************************************************************************

***************************************************************************

CREATEDEFINER=`root`@`localhost`TRIGGER`indate`BEFOREINSERTON

`student`

FOREACHROWset=current_date;

CREATEDEFINER=`root`@`localhost`TRIGGER`olddata`BEFOREDELETEON

`student`

FOREACHROWbegin

insertintohistory(hno,hname,hsex,hindate,houtdate)

values,,,,current_date);

updatehistoryh,departmentpset=where=;

end;

*********************************************************

數(shù)據(jù)庫的維護(hù)

在數(shù)據(jù)庫運(yùn)行階段,對(duì)數(shù)據(jù)庫常常性的維護(hù)工作主要是有DBA完成,它包括:

1.數(shù)據(jù)庫的轉(zhuǎn)儲(chǔ)和恢復(fù)

2.數(shù)據(jù)庫的平安性和完整性控制

3.數(shù)據(jù)庫性能的監(jiān)督、分析和改造

4.數(shù)據(jù)庫的重組織與重構(gòu)造

維護(hù)

數(shù)據(jù)庫既是分享的資源,又要舉行適當(dāng)?shù)谋C?。DBA必需對(duì)數(shù)據(jù)庫平安性和完整性控制負(fù)起責(zé)任。尤其在計(jì)算機(jī)網(wǎng)絡(luò)普遍引應(yīng)用的今日,保證數(shù)據(jù)平安、防止黑客襲擊、防止病毒入侵等,都是DBA所需要面向的。根據(jù)設(shè)計(jì)階段提供的平安防范和故障恢復(fù)規(guī)范,DBA要常常檢查系統(tǒng)的平安是否受到侵害,按照用戶的實(shí)際需要授予用戶不同的操作權(quán)限。數(shù)據(jù)庫在運(yùn)行過程中,因?yàn)閼?yīng)用環(huán)境發(fā)生變化,對(duì)平安性的要求可能發(fā)生變化,DBA要按照實(shí)際狀況準(zhǔn)時(shí)調(diào)節(jié)相應(yīng)的授權(quán)和密碼,以保證數(shù)據(jù)庫的平安性。同樣數(shù)據(jù)庫的完整性約束條件也可能會(huì)隨應(yīng)用環(huán)境的轉(zhuǎn)變而轉(zhuǎn)變,這時(shí)DBA也要對(duì)其舉行調(diào)節(jié),以滿足用戶的要求。

目前許多DBMS產(chǎn)品都提供了檢測(cè)系統(tǒng)性能參數(shù)的工具,DBA可以利用系統(tǒng)提供的這些工具,常常對(duì)數(shù)據(jù)庫的存儲(chǔ)空間及響應(yīng)時(shí)光舉行分析評(píng)價(jià);結(jié)合用戶的反映狀況確定改進(jìn)措施;準(zhǔn)時(shí)改正運(yùn)行中發(fā)覺的錯(cuò)誤;按用戶的要求對(duì)數(shù)據(jù)庫的現(xiàn)有功能舉行適當(dāng)?shù)臄U(kuò)充。但要注重在增強(qiáng)新功能時(shí)應(yīng)保證原有功能和性能不受傷害。

數(shù)據(jù)庫建立后,除了數(shù)據(jù)本身是動(dòng)態(tài)變化外,隨著應(yīng)用環(huán)境的變化,數(shù)據(jù)庫本身也必需變化以適應(yīng)應(yīng)用要求。

數(shù)據(jù)庫運(yùn)行一段時(shí)光后,因?yàn)橛涗浽诓粩嘣鰪?qiáng)、刪除和修改,會(huì)轉(zhuǎn)變數(shù)據(jù)庫的物理存儲(chǔ)結(jié)構(gòu),使數(shù)據(jù)庫的物理特性受到破壞,從而降低數(shù)據(jù)庫存儲(chǔ)空間的利用率和數(shù)據(jù)的存取效率,使數(shù)據(jù)庫的性能下降。因此,需要對(duì)數(shù)據(jù)庫舉行重新組織,即重新支配數(shù)據(jù)的存儲(chǔ)位置,回收垃圾,削減指針鏈,改進(jìn)數(shù)據(jù)庫的響應(yīng)時(shí)光和空間利用率,提高系統(tǒng)性能。這與操作系統(tǒng)對(duì)“磁盤碎片”的處理的概念相像。數(shù)據(jù)庫的重組只是使數(shù)據(jù)庫的物理存儲(chǔ)結(jié)構(gòu)發(fā)生變化,而數(shù)據(jù)庫的規(guī)律結(jié)構(gòu)不變,所以按照數(shù)據(jù)庫的三級(jí)模式,可以知道數(shù)據(jù)庫重組對(duì)系統(tǒng)功能沒有影響,只是為了提高系統(tǒng)的性能。

由此可知,數(shù)據(jù)庫的重組并不會(huì)轉(zhuǎn)變?cè)O(shè)計(jì)的數(shù)據(jù)規(guī)律結(jié)構(gòu)和物理結(jié)構(gòu),而數(shù)據(jù)庫的重構(gòu)造則不同,它部分修改原數(shù)據(jù)庫的模式或內(nèi)模式,這主要是由于數(shù)據(jù)庫的應(yīng)用環(huán)境發(fā)生了變化,如需求變化、設(shè)計(jì)調(diào)節(jié)等。例如增強(qiáng)新的數(shù)據(jù)項(xiàng)、轉(zhuǎn)變數(shù)據(jù)類型、轉(zhuǎn)變數(shù)據(jù)庫的容量、增強(qiáng)或刪除索引、修改完整性約束等。

DBMS普通都提供了重新組織和構(gòu)造數(shù)據(jù)庫的應(yīng)用程序,以協(xié)助DBA完成數(shù)據(jù)庫的重組和重構(gòu)工作。

只要數(shù)據(jù)庫系統(tǒng)在運(yùn)行,就需要不斷地舉行修改、調(diào)節(jié)和維護(hù)。一旦應(yīng)用變化太大,數(shù)據(jù)庫重新組織和構(gòu)造也無濟(jì)于事,這就表明數(shù)據(jù)庫應(yīng)用系統(tǒng)的生命周期結(jié)束,

應(yīng)當(dāng)建立新系統(tǒng),重新設(shè)計(jì)數(shù)據(jù)庫。從頭開頭數(shù)據(jù)庫設(shè)計(jì)工作,標(biāo)準(zhǔn)著一個(gè)新的數(shù)據(jù)庫應(yīng)用系統(tǒng)生命周期的開頭。

6前臺(tái)用戶界面

基于C#編寫了這個(gè)教務(wù)管理系統(tǒng),并以完成了所以要求功能。

數(shù)據(jù)庫銜接字符串:publicstaticstringConn="Database='school';DataSource='localhost';UserId='a';Password='a';charset='utf8';pooling=true";

數(shù)據(jù)庫銜接代碼MySqlConnectionconn=new

MySqlConnection(connectionString)

用戶登錄界面

登錄實(shí)現(xiàn)核心代碼

stringsql=("select*fromadminwhereADMIN_USER='{0}'",;

reader=,,sql,null);

if

{

();

strin

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論