數(shù)據(jù)庫課程設(shè)計報告教務(wù)管理系統(tǒng)設(shè)計說明_第1頁
數(shù)據(jù)庫課程設(shè)計報告教務(wù)管理系統(tǒng)設(shè)計說明_第2頁
數(shù)據(jù)庫課程設(shè)計報告教務(wù)管理系統(tǒng)設(shè)計說明_第3頁
數(shù)據(jù)庫課程設(shè)計報告教務(wù)管理系統(tǒng)設(shè)計說明_第4頁
數(shù)據(jù)庫課程設(shè)計報告教務(wù)管理系統(tǒng)設(shè)計說明_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、PAGE22 / NUMPAGES22數(shù)據(jù)庫系統(tǒng)課程設(shè)計學(xué)生:班 學(xué) 號: 指導(dǎo)教師:中國地質(zhì)大學(xué) 年 月 日教務(wù)管理系統(tǒng)1、需求分析教務(wù)管理系統(tǒng)該教學(xué)系統(tǒng)主要提供數(shù)據(jù)維護、學(xué)生選課和教師授課信息查詢功能。其實現(xiàn)的功能(即其包含的查詢)有:系統(tǒng)中對教師、學(xué)生基本信息的錄入;系統(tǒng)中對教師、學(xué)生的基本信息查詢;查詢學(xué)生的選課情況;查詢教師的授課情況;還包括學(xué)生選課功能。該數(shù)據(jù)庫系統(tǒng)包括學(xué)生密碼表、學(xué)生信息表、教師信息表、教師密碼表、學(xué)生選課表、課程匹配表,管理員密碼表七個關(guān)系表,基本情況如下:三密碼表均有相應(yīng)賬戶和密碼;教師信息表有工作證號、性別、族別、政治面貌、出生年月、聯(lián)系方式、所在系、所在學(xué)

2、院、職稱;學(xué)生表有學(xué)號、性別、族別、政治面貌、出生年月、聯(lián)系方式、班號、所在系、所在學(xué)院;課程有課程名、學(xué)分、名額、上課時間信息;授課表有課程號、工作證號信息;學(xué)生選課表有課程名稱、課程號、授課老師、授課時間、授課地點、剩余容量、工作證號、成績。課程匹配表則有課程號,學(xué)號,學(xué)生,班號,所在專業(yè),所在學(xué)院,成績。每個學(xué)生都屬于一個班,每個教師也都屬于一個系。一名教師可以教多門課,一門課可以有幾位主講老師,一名同學(xué)可以選多門課。學(xué)生、教師都有可以有重名,工作證號、學(xué)號可以作為標(biāo)識。系統(tǒng)中的實體: 教師:工作證號、性別、職稱、等; 學(xué)生:學(xué)號、性別、出生年月、職位、等; 班級:班號、最低總學(xué)分、人數(shù)

3、等; 系:系代號、系名、系辦公室等; 課程:課序號、課名、學(xué)分、上課時間、名額等。實體間關(guān)系: 每個學(xué)生都屬于一個班,每個班都屬于一個系,每個教師也都屬于一個系; 每個班的班主任都由一名教師擔(dān)任; 一名教師可以教多門課,一門課可以有幾位主講老師,但不同老師講的同一門課其課序號是不同的(課序號是唯一的); 一名同學(xué)可以選多門課,一門課可被若干同學(xué)選中; 一名同學(xué)選中的課若已學(xué)完,應(yīng)該記錄有相應(yīng)成績; 本單位學(xué)生、教師都有重名,工作證號、學(xué)號可以作為標(biāo)識。系統(tǒng)的需求:教學(xué)系統(tǒng)主要提供數(shù)據(jù)維護、選課和信息查詢;系統(tǒng)中各對象的基本信息錄入與查詢;指定班、系的學(xué)生信息查詢;學(xué)生的成績、學(xué)分情況查詢;教師

4、授課情況和學(xué)生選課情況查詢。系統(tǒng)的組成:教務(wù)管理系統(tǒng)包括教師管理子系統(tǒng)、學(xué)生管理子系統(tǒng)、管理員管理子系統(tǒng)。其中各個系統(tǒng)中擁有獨自的一套查詢、添加、刪除、更新操作。系統(tǒng)管理員進行數(shù)據(jù)維護的操作。2、概念設(shè)計(1)概念模型(E-R圖): 選課E-R圖名額 授課E-R圖工作證號課程號XX課名性別學(xué)分 名額 總E-R圖m學(xué)生選課學(xué)號XX專業(yè)課程恩教師授課nmn工作證號課程號XX (2)數(shù)據(jù)字典: 數(shù)據(jù)項1區(qū)別老師的數(shù)據(jù)項Bigint20決定性別等教師屬性2允許重名Char10決定性別等教師屬性3老師性別Char104所在系Char105老師的聯(lián)系方式Bigint206登錄驗證Char207登錄驗證Ch

5、ar208所在學(xué)院Char309所屬民族Char3010老師的職稱Char2011老師的政治面貌Char2012學(xué)院Bigint2013老師出生年月Char2014區(qū)別學(xué)生的數(shù)據(jù)項Bigint20決定性別等學(xué)生屬性15允許重名Char1016學(xué)生性別Char1017允許重復(fù)Char18允許空值Char1019學(xué)生聯(lián)系方式Char1120登錄驗證Char2021登錄驗證Char2022所在學(xué)院Char3023所屬民族Char3024學(xué)生的政治面貌Char2025學(xué)生聯(lián)系方式Bigint26區(qū)別課程的數(shù)據(jù)項Char10決定課名學(xué)分等課程屬性27課程名稱Char1028所含學(xué)分Char1029上課日

6、期Char3030課程限制最高人數(shù)Char1031學(xué)生所選課課程號Char10由課程表課程號和學(xué)生表學(xué)號決定32學(xué)生學(xué)號Char2033學(xué)生所選課課程號Char10由課程表課程號和學(xué)生表學(xué)號決定34教師工作證號nchar20 數(shù)據(jù)流1工作證號教師信息2插入的信息教師信息3學(xué)號學(xué)生信息4插入的信息學(xué)生信息5學(xué)號課程信息7選課信息課程匹配表8學(xué)號選課信息9課程號課程匹配表總數(shù)據(jù)流圖錄入選課查詢評價5.0 更新: 數(shù)據(jù)結(jié)構(gòu)1教師實體工作證號、性別、族別、政治面貌、出生年月、聯(lián)系方式、所在系、所在學(xué)院、職稱2學(xué)生實體學(xué)號、性別、族別、政治面貌、出生年月、聯(lián)系方式、所在系、所在學(xué)院、班號3課程實體課程號

7、、課名、余量、上課時間、上課地點4學(xué)生實體和課程實體學(xué)號、課程號、成績5教師實體和課程實體工作證號、課程號3、邏輯結(jié)構(gòu)設(shè)計關(guān)系的描述根據(jù)數(shù)據(jù)庫系統(tǒng)設(shè)計的最基本的要求,消除依賴集F中的部分依賴和傳遞依賴,消除插入異常、刪除異常、修改異常,達到第三式無損和保持依賴,從而得到以下關(guān)系模型以與其主碼:教師(工作證號、性別、所在系、用戶名、用戶密碼)學(xué)生(學(xué)號、性別、年齡、所在系、班號、用戶名、用戶密碼)課程(課程號、課程名、學(xué)分、名額、上課時間)選課(課程號、學(xué)號)授課(課程號、工作證號)以上加下劃線的表示關(guān)系模型里面的主碼。實體間的聯(lián)系分析教師班級: 1:1;系教師: 1:n;系班級: 1:n;班級

8、學(xué)生: 1:n;課程教師: m:n;課程學(xué)生: m:n4、物理設(shè)計4.1物理存儲結(jié)構(gòu)1存取教師信息教師實體其中一項或多項項信息教師信息或任課信息2存取學(xué)生信息學(xué)生實體其中一項或多項項信息學(xué)生信息或選課信息3存取課程信息課程實體其中一項或多項項信息課程信息或選課信息或任課信息4存取選課信息學(xué)生所有選課記錄選課信息或課程信息4.1.1數(shù)據(jù)庫 我本次課程設(shè)計采用了SQL sever平臺進行存儲建立基本表與信息。編寫關(guān)系模式,載入數(shù)據(jù)。其存在多種存取方法。并且首先要運行調(diào)試軟件的運行恢復(fù)部分,確保數(shù)據(jù)日后的轉(zhuǎn)儲與恢復(fù)。4.1.2基本表Student表- DROP TABLE IF EXISTS Stu

9、dent;CREATE TABLE student ( 學(xué)號 bigint() NOT NULL, char(30) NOT NULL,性別 char(10) DEFAULT NULL, 族別 char(30) NOT NULL, 政治面貌 char(20) NOT NULL, 出生年月 char(30) NOT NULL, 聯(lián)系方式 bigint() NOT NULL, 班號bigint()NOT NULL,所在專業(yè) char(20) NOT NULL,所在學(xué)院 char(20) NOT NULL, PRIMARY KEY (學(xué)號), KEY () ENGINE=InnoDB DEFAULT

10、 CHARSET=utf8;- Teacher表- DROP TABLE IF EXISTS Teacher;CREATE TABLE Teacher ( 工作證號 bigint() NOT NULL, char(30) NOT NULL,性別 char(10) DEFAULT NULL, 族別 char(30) NOT NULL, 政治面貌 char(20) NOT NULL, 出生年月 char(30) NOT NULL, 聯(lián)系方式 bigint() NOT NULL, 職稱char(20)NOT NULL,所在專業(yè) char(20) NOT NULL,所在學(xué)院 char(20) NOT

11、NULL,學(xué)院char(20)NOT NULL, PRIMARY KEY (工作證號) ENGINE=InnoDB DEFAULT CHARSET=utf8;- 選課表- DROP TABLE IF EXISTS studentchoose;CREATE TABLE studentchoose ( cNum varchar(7) NOT NULL, Name1 varchar(5) NOT NULL, Unit varchar(20) NOT NULL, PRIMARY KEY (cNum) ENGINE=InnoDB DEFAULT CHARSET=utf8;- - studentchoos

12、e表- DROP TABLE IF EXISTS stock;CREATE TABLE stock ( 課程名稱 char(30) NOT NULL, 課程號 bigint() NOT NULL, 授課老師 char(30) NOT NULL, 授課時間 char(30) NOT NULL, 剩余容量 char(30) NOT NULL, 工作證號 char(30) NOT NULL, 成績 bigint() NOT NULL, PRIMARY KEY (課程號),) ENGINE=InnoDB DEFAULT CHARSET=utf8;- - ATapparier表- DROP TABLE

13、IF EXISTS ATapparier;CREATE TABLE ATapparier ( 課程號 bigint() NOT NULL, 學(xué)號 bigint() NOT NULL, char(30) NOT NULL,班號char(20)NOT NULL,所在專業(yè) char(20) NOT NULL,所在學(xué)院 char(20) NOT NULL,成績char(20)NOT NULL, PRIMARY KEY (課程號) ENGINE=InnoDB DEFAULT CHARSET=utf8;DROP TABLE IF EXISTS ATapparier;CREATE TABLE ATappar

14、ier ( 課程號 bigint() NOT NULL, 學(xué)號 bigint() NOT NULL, char(30) NOT NULL,班號char(20)NOT NULL,所在專業(yè) char(20) NOT NULL,所在學(xué)院 char(20) NOT NULL,成績char(20)NOT NULL, PRIMARY KEY (課程號) ENGINE=InnoDB DEFAULT CHARSET=utf8;4.2索引設(shè)計4.2.1存儲安排方法選擇: 教務(wù)管理系統(tǒng)是一個多用戶共享系統(tǒng),對同一個關(guān)系要建立多條存取路徑才能滿足多用戶的多種應(yīng)用要求。數(shù)據(jù)庫管理系統(tǒng)一般提供多種存取方法:第一類是縮陰

15、方法,目前主要是B+樹索引方法;第二類是聚簇方法;第三類是Hash方法。我們現(xiàn)在主要采用B+樹索引存取方法。 4.2.2索引一個屬性經(jīng)常在查詢條件中出現(xiàn),則考慮這個(組)屬性上建立索引(或組合索引);如果一個屬性經(jīng)常作為最大值和最小值等聚集函數(shù)的參數(shù),則考慮在這個屬性上建立索引;如果一個(組)屬性經(jīng)常在操作的條件中出現(xiàn),則考慮在這個(組)屬性上建立索引學(xué)號,工作證號,課程號。4.2.3存儲路徑的建立 我將表和索引放在不同的磁盤上,在查詢時,由于磁盤驅(qū)動器秉性工作,可以提高物理I/O讀寫的效率;將比較大的表,如“選課信息”,分別放在兩個磁盤上,以加快存取速度,這在多用戶環(huán)境下特別有效;另外將日志

16、文件與數(shù)據(jù)庫對象9表、索引等)放在不同的磁盤上,以改進系統(tǒng)的性能。5、系統(tǒng)實施5.1DBMS&語言選擇 我選用的是SQL Sever系統(tǒng)的語言,基于Microsoft Visual Studio 2010平臺呃C#語言編寫的界面。較為簡單容易。5.2數(shù)據(jù)輸入在SQL Sevel 中進行一些數(shù)據(jù)的手動輸入(或查詢語句進行輸入)用以進行測試,之后用戶可在管理系統(tǒng)中進行相關(guān)信息的添加。Studentchoose表初始信息:Studentbase表初始信息:Teacherbase表初始信息:Adminmessage表初始信息:5.3 編寫代碼 因為要連接數(shù)據(jù)庫,采用VS2010的連接工具來進行數(shù)據(jù)庫的

17、連接。String conn = Data Source=.;Initial Catalog=cyh st class;Integrated Security=True;/語句在編寫代碼的時候遇到很多問題,比如常見的幾個問題就是少添加頭文件,查詢不對,SQL語句使用不對,高級查詢等等一系列問題。5.4 過程實施在實現(xiàn)選課功能的時候,首先在數(shù)據(jù)庫對本學(xué)期要開設(shè)的課程進行預(yù)制,之后學(xué)生選課,只能一次選擇一門,之后輸入課程號,同時將登陸時的學(xué)會設(shè)置為全局變量,在C#中進行換頁傳值,將學(xué)號等個人信息在學(xué)生主頁進行顯示,選課時,則將所選課程與自己的學(xué)號以插入的方式插入Studentchoose,之后,之

18、后分別從學(xué)生選課表調(diào)用顯示到學(xué)生課程信息,教師授課信息中,之后在教師批改成績時,將成績與studentchoose表聯(lián)系對應(yīng),完成學(xué)生-課程-成績的三位一體的對應(yīng)關(guān)系,命名為STapparier,之后進行更新操作,并同步SQL查詢顯示到學(xué)生成績查詢界面。管理員則是對所有信息進行匯總查詢修改,將不同信息封裝起來,對于教師和學(xué)生實體部分顯示,對于管理員全部顯示。同時對于學(xué)生還可進行注冊報道,數(shù)據(jù)庫中為每個學(xué)生提供了一個學(xué)號和初始密碼,學(xué)生到校后進入教務(wù)系統(tǒng)修改密碼,補充個人資料,完成數(shù)據(jù)入庫,以供后期使用。6、運行維護一、恢復(fù)數(shù)據(jù)庫的方法對于事物部故障:恢復(fù)時要在不影響其他事務(wù)運行的情況下,強行回

19、滾該事務(wù),即撤銷該事務(wù)已經(jīng)做出的任何的對數(shù)據(jù)庫的修改;對于系統(tǒng)故障:一方面,在系統(tǒng)重新啟動時讓所有非正常終止的事務(wù)滾回,強行撤銷所有未完成事務(wù);另一方面,把已完成的事務(wù)提交的結(jié)果重新寫入數(shù)據(jù)庫;對于介質(zhì)故障:在故障發(fā)生前對數(shù)據(jù)庫進行轉(zhuǎn)儲,即使用數(shù)據(jù)庫鏡像功能,根據(jù)實際情況要求自動把整個數(shù)據(jù)庫或其中的關(guān)鍵數(shù)據(jù)復(fù)制到另一個磁盤上,防患于未然。二、數(shù)據(jù)庫恢復(fù)實現(xiàn)技術(shù)1、采用轉(zhuǎn)儲的方法定期地將整個數(shù)據(jù)庫復(fù)制到磁帶或另一個磁盤上保存起來,稱為后備副本或后援副本。(動態(tài)轉(zhuǎn)儲和靜態(tài)轉(zhuǎn)儲);2、通過登記日志文件,進行事務(wù)故障恢復(fù)和系統(tǒng)故障恢復(fù),并協(xié)助后備副本進行介質(zhì)故障恢復(fù)。三、數(shù)據(jù)庫恢復(fù)策略1、事務(wù)故障的恢

20、復(fù):(1)反向掃描日志文件,查找該事務(wù)的更新操作;(2)對該事務(wù)的更新操作執(zhí)行逆操作,即將日志記錄中“更新前的值”寫入數(shù)據(jù)庫;(3)繼續(xù)反向掃描日志文件,查找該事物的其他操作,做同樣處理,直到事物開始標(biāo)志為止。2、系統(tǒng)故障的恢復(fù):(1)正向掃描日志文件,找出在故障發(fā)生前已經(jīng)提交的事務(wù),將其事務(wù)標(biāo)識記入重做隊列。同時找出故障發(fā)生時尚未完成的事務(wù),將其事務(wù)標(biāo)識記入撤銷隊列。(2)反向掃描日志文件,對每個UNDO事務(wù)的更新操作執(zhí)行逆操作,即將日志記錄中“更新前的值”寫入數(shù)據(jù)庫。(3)正向掃描日志文件,對每個REDO事務(wù)重新執(zhí)行日志文件登記操作。即將日志記錄中“更新前的值”寫入數(shù)據(jù)庫。3、介質(zhì)故障的恢

21、復(fù):重裝數(shù)據(jù)庫(1)裝入最新的數(shù)據(jù)庫后備副本,使數(shù)據(jù)庫恢復(fù)到最近一次轉(zhuǎn)儲時的一致性狀態(tài)。(2)裝入相應(yīng)的日志文件副本,重做已完成的事務(wù)。7、總結(jié)數(shù)據(jù)庫課程設(shè)計是上大學(xué)以來的最痛苦的一個課程設(shè)計。在上學(xué)期平時的實習(xí)中,我覺得數(shù)據(jù)庫相較于C+程序編寫與有關(guān)運用數(shù)據(jù)結(jié)構(gòu)的程序編寫來說,相對容易簡單。本以為這次的課程設(shè)計也不過很簡單就能完成??墒侨f萬沒想到,真的從設(shè)計到開發(fā)出一個數(shù)據(jù)庫系統(tǒng)遠比編程可怕多了。首先,數(shù)據(jù)庫的需求設(shè)計簡直是讓我們這種之前沒有過設(shè)計經(jīng)驗的人摸不到頭腦,不知從何下手。也可能由于上學(xué)期在學(xué)習(xí)數(shù)據(jù)庫時沒有讓我們想著設(shè)計一個大型的需要注意細節(jié)的數(shù)據(jù)庫,所以感覺概念都很模糊。數(shù)據(jù)字典是

22、啥?。坎皇窍犬婨R圖嗎?數(shù)據(jù)流圖又是什么。?那ER圖畫完就能建表了?那么數(shù)據(jù)庫和EXEL表格又有什么區(qū)別啊等等此類我總會冒出的小白問題層出不窮。在三個題目:教務(wù)、書店、病房中,我選擇了看起來好像參與者比較少,比較簡單的教務(wù)管理系統(tǒng)。但是著手設(shè)計起來真的是很難,因為個人主觀的因素比較大,比較靈活,最后做成一個什么樣子的數(shù)據(jù)庫是由你自己來決定的,所以有一些度要自己把握。如果放開了去想,去做,都會復(fù)雜龐大到無法完成。就在我想著自己構(gòu)想的龐大數(shù)據(jù)庫該如何實現(xiàn)復(fù)雜的功能時,感覺很恐怖。但還是硬著頭皮開始做。一開始遇到很大挫折,在嘗試了兩天的C+后,我覺得很難,于是,開始自學(xué)C#,相比C+,C#相對簡單一

23、點,去圖書館翻遍了C#編程寶典之類的書后,在室友引導(dǎo)下開始設(shè)計。一開始覺得自己設(shè)計的數(shù)據(jù)庫沒問題,覺得不難,但是越往后做發(fā)現(xiàn)很多數(shù)據(jù)再傳遞的時候走不到共享,一方面是自己編程能力不夠,對于DATAGRIDVIEW這個控件掌握太少,在顯示值,單元格傳值的時候很難,后來決定改變設(shè)計,從改變SQL的表格入手,刪除了不必要的表,盡量用少的表完成。這樣一來對窗體設(shè)計要求更高,還有就是對SQL高級查詢語句的要求更高?,F(xiàn)在想想發(fā)現(xiàn)最大的問題一個是C#中Datagridview控件的單元格與數(shù)據(jù)庫交互傳值,另一個就是SQL高級復(fù)雜的查詢語句使用與C#中的textbox,或者數(shù)據(jù)庫其他表的查詢。這兩個問題在最后幾

24、天難住我了,最后和學(xué)長,室友,以與大量去論壇求助,百度找方法,看博客加上自己摸索,一個一個解決了,受益匪淺。除此之外遇到的問題就是數(shù)據(jù)庫的設(shè)計問題,要實現(xiàn)更多的功能,一個方法是將各個數(shù)據(jù)分裝在各個表里,調(diào)用一個個單體,但是這樣造成數(shù)據(jù)過于龐大,同樣最好的解決方法是少量的存儲空間,大量的調(diào)用,將常用的數(shù)據(jù)匹配在一起,這點在我的STapparier表中有所體現(xiàn),將實體的主鍵找到相應(yīng)的聯(lián)系裝在一個表里,之后調(diào)用其他表進行自然連接,實現(xiàn)調(diào)用,這樣層次清楚,也達到了三式。但是最后設(shè)計出來的數(shù)據(jù)庫和我最初的設(shè)計的差別還是蠻大,所以我認(rèn)為好的數(shù)據(jù)庫是改出來的,好的數(shù)據(jù)庫很難一次成功,每一次實踐都是我們下一場設(shè)計的寶貴經(jīng)驗。通過這次課程設(shè)計我知道為什么系統(tǒng)分析師會這么搶手了。也許程序員的工作評估是一個程序的時間復(fù)雜度與空間復(fù)雜度,那么系統(tǒng)分析師的工作評估可能就是整個系統(tǒng)

溫馨提示

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

最新文檔

評論

0/150

提交評論