第一篇:教務(wù)系統(tǒng)數(shù)據(jù)庫總結(jié)報告
教務(wù)系統(tǒng)數(shù)據(jù)庫總結(jié)報告
常州信息學(xué)院 網(wǎng)絡(luò)095 在信息時代的今天,數(shù)據(jù)成為傳遞信息的重要載體,而隨著信息的不斷增加,數(shù)據(jù)也變得相當(dāng)繁瑣。因此數(shù)據(jù)庫的出現(xiàn),正是為數(shù)據(jù)的處理提供了良好的媒介。
例如一所大學(xué),通常由校長辦公司、教務(wù)處、財務(wù)處、學(xué)工處、團委、招就處、科技處。同時下設(shè)各系以及各分處。因此這些工作如果處理起來,或許需要幾百人,而且還不能保證信息處理的有效性與正確率。如果使用數(shù)據(jù)庫,我們可以輕松解決這些問題。學(xué)校行政管理,可以使用數(shù)據(jù)庫系統(tǒng),保證每個教師的所帶課程,上班情況,工資情況以及每位教師獲獎與資歷等信息,都可以通過數(shù)據(jù)庫統(tǒng)一管理。學(xué)生方面,每個學(xué)生自從正式錄取輸入檔案信息后,到入學(xué)注冊都可用教務(wù)系統(tǒng)數(shù)據(jù)庫來管理。學(xué)生的選課、排課,考試成績、課堂表現(xiàn),在校表現(xiàn),生活狀況等、以及就業(yè)乃至畢業(yè)離校都可以通過系統(tǒng)來自動管理。
系統(tǒng)處理信息方便而準(zhǔn)確,近一萬人的學(xué)生和老師,系統(tǒng)可以用很短的時間處理。所需的工作僅是首次的信息輸入,如果需要,便可以永久保存。信息處理準(zhǔn)確性高,雖然數(shù)據(jù)信息量大,但是系統(tǒng)依然能很好的處理。因此對于學(xué)校來說,教務(wù)管理系統(tǒng)的使用可以極大的方便教務(wù)教學(xué)任務(wù),很大幅度的提高工作效率。
數(shù)據(jù)庫可以說是信息處理的載體,龐大的數(shù)據(jù)通過數(shù)據(jù)庫實現(xiàn)了有序而快速的調(diào)入與調(diào)出。數(shù)據(jù)庫之所以能如此高效率的工作,得益于其工作原理。在關(guān)系數(shù)據(jù)庫中,對數(shù)據(jù)的操作幾乎全部建立在一個或多個關(guān)系表格上,通過對這些關(guān)系表格的分類、合并、連接或選取等運算來實現(xiàn)數(shù)據(jù)的管理。dBASEII就是這類數(shù)據(jù)庫管理系統(tǒng)的典型代表。對于一個實際的應(yīng)用問題(如人事管理問題),有時需要多個關(guān)系才能實現(xiàn)。用dBASEII建立起來的一個關(guān)系稱為一個數(shù)據(jù)庫(或稱數(shù)據(jù)庫文件),而把對應(yīng)多個關(guān)系建立起來的多個數(shù)據(jù)庫稱為數(shù)據(jù)庫系統(tǒng)。dBASEII的另一個重要功能是通過建立命令文件來實現(xiàn)對數(shù)據(jù)庫的使用和管理,對于一個數(shù)據(jù)庫系統(tǒng)相應(yīng)的命令序列文件,稱為該數(shù)據(jù)庫的應(yīng)用系統(tǒng)。因此,可以概括地說,一個關(guān)系稱為一個數(shù)據(jù)庫,若干個數(shù)據(jù)庫可以構(gòu)成一個數(shù)據(jù)庫系統(tǒng)。數(shù)據(jù)庫系統(tǒng)可以派生出各種不同類型的輔助文件和建立它的應(yīng)用系統(tǒng)。因此具備這樣的功能,數(shù)據(jù)庫才能在信息處理中發(fā)揮著重要的作用。、在數(shù)據(jù)庫的學(xué)習(xí)中,我們可以利用企業(yè)管理器和查詢分析器兩種方式快速爾簡單的使用數(shù)據(jù)庫。利用企業(yè)管理器操作起來全部是圖形界面,簡單易學(xué)。查詢分析器全部用代碼實現(xiàn),雖然代碼比較繁瑣,但是這樣實現(xiàn)快捷,功能強大。在數(shù)據(jù)庫的學(xué)習(xí)中,剛開始主要是利用企業(yè)管理器,去創(chuàng)建一些數(shù)據(jù)庫,表格及一些屬性關(guān)系及應(yīng)用。后來,可以使用
查詢分析器借助代碼做一些簡單的查詢,數(shù)據(jù)庫和表格的創(chuàng)建。但是其中的一些關(guān)系及屬性無法創(chuàng)建,這也正是數(shù)據(jù)庫學(xué)習(xí)的核心與關(guān)鍵。
得力于數(shù)據(jù)庫在信息處理中扮演如此重要的作用,因此數(shù)據(jù)庫的學(xué)習(xí)應(yīng)該作為以后學(xué)習(xí)的重點,相信在不久的將來,數(shù)據(jù)庫一定會在互聯(lián)網(wǎng)中發(fā)揮著更加重要的作用,數(shù)據(jù)庫也定會成為今后的熱門專業(yè)和學(xué)習(xí)方向。
第二篇:數(shù)據(jù)庫程序設(shè)計---教務(wù)輔助管理系統(tǒng)
數(shù)據(jù)庫設(shè)計實例 教務(wù)管理系統(tǒng)
數(shù)據(jù)庫實驗七 數(shù)據(jù)庫設(shè)計
題目要求:
設(shè)計一個教務(wù)管理系統(tǒng)。要求管理包括:學(xué)生的檔案,學(xué)生選課的情況,學(xué)生每學(xué)期的綜合測評,教師檔案,教師工作量等等。具體考核方法根據(jù)自己了解的實際情況處理。
假設(shè)此次設(shè)計的教務(wù)系統(tǒng)是整個學(xué)生管理系統(tǒng)數(shù)據(jù)庫中的一部分,整個系統(tǒng)至少還包括學(xué)籍管理等其他子系統(tǒng)。
在初期設(shè)計時,先關(guān)注與教務(wù)系統(tǒng)有關(guān)的數(shù)據(jù)。在完成對教務(wù)管理系統(tǒng)的建模后再對整個系統(tǒng)進行合并,總終得到整個系統(tǒng)的設(shè)計方案。
一、需求分析
1、根據(jù)分析可以畫出該教務(wù)管理系統(tǒng)的數(shù)據(jù)流圖:
學(xué)生 選課 上課 考試 測評 選課單 允許考試 成績單 老師檔案 課程簡介 教室安排 試卷 考場安排 測評報告單 學(xué)生名單 教師 選定教材 申報 課表
2、數(shù)據(jù)字典
數(shù)據(jù)結(jié)構(gòu):學(xué)生
含義說明:是教務(wù)管理系統(tǒng)的一個核心數(shù)據(jù)結(jié)構(gòu),定義了學(xué)生的有關(guān)信息
組成:學(xué)號、姓名
數(shù)據(jù)項:學(xué)號
含義說明:唯一標(biāo)識每一個學(xué)生
別名:學(xué)生編號 類型:字符型 長度:9位
取值范圍:190000000 – 999999999
取值含義:前四位表明學(xué)生所在年級,后五位安順序編號
數(shù)據(jù)項:姓名
含義說明:表示學(xué)生的姓名 類型:字符型 長度:10位
取值范圍:任意字符
數(shù)據(jù)結(jié)構(gòu):教師
含義說明:教務(wù)管理系統(tǒng)的核心數(shù)據(jù)結(jié)構(gòu)之一,定義了教師的有關(guān)信息 組成:教師號,教師姓名
數(shù)據(jù)項:教師號
含義說明:教師的編號 類型:字符型 長度:5位
取值范圍:10000 – 99999
數(shù)據(jù)項:教師姓名
含義說明:教師的姓名 類型:字符型 長度:10位
取值范圍:任意合法的字符
數(shù)據(jù)結(jié)構(gòu):課程
含義說明:教務(wù)管理系統(tǒng)的核心數(shù)據(jù)結(jié)構(gòu)之一,定義了課程的有關(guān)信息 組成:課程號,課程名,課程描述,教師,教室,教科書,學(xué)分
數(shù)據(jù)項:課程號
含義說明:課程的編號 類型:字符型 長度:4
取值范圍:0001 – 9999
數(shù)據(jù)項:課序號
含義說明:對于同一課程,由不同老師教授,用課序號來區(qū)分 類型:字符型 長度:2
取值范圍:01 – 99
數(shù)據(jù)項:課程名
含義說明:課程的名稱 類型:字符型 長度:10
取值范圍:任意合法的字符
數(shù)據(jù)項:課程描述
含義說明:課程內(nèi)容的基本描述 類型:字符型 長度:200
取值范圍:任意合法字符
數(shù)據(jù)項:教科書
含義說明:課程所用的教科書 類型:字符型 長度:20
取值范圍:任意合法字符
數(shù)據(jù)項:學(xué)分
含義說明:課程的學(xué)分 類型:整型 長度:1
取值范圍:1-9
數(shù)據(jù)結(jié)構(gòu):教室
含義說明:上課所用的教室
組成:教室編號,教室地址,教室容量
數(shù)據(jù)項:教室編號
含義說明:教室的編號 類型:字符 長度:5
取值范圍:00001-99999
數(shù)據(jù)項:教室地址
含義說明:標(biāo)明教室的地址 類型:字符 長度:30
取值范圍:任意合法的字符
數(shù)據(jù)項:教室容量
含義說明:教室的容納學(xué)生的數(shù)量 類型:整型
取值范圍:正整數(shù)
數(shù)據(jù)結(jié)構(gòu):選課記錄
含義說明:紀(jì)錄學(xué)生選課的紀(jì)錄 組成:學(xué)生,課程,成績
數(shù)據(jù)項:成績
含義說明:選課學(xué)生本學(xué)期的成績
類型:浮點數(shù)
范圍:0.0 – 100.0
處理過程:分配教室
說明:為所有課程分配上課教室 輸入:課程,教室 輸出:教室安排
處理:學(xué)期課程決定后,要為每個課程安排上課地點,要求上課的地點不能沖突且上課人數(shù)不能超過教室容量。
處理過程:分配考場
說明:在考試日期,為所有課程分配考場
輸入:課程,教室
輸出:考場安排
處理:為每個課程安排考場,考試時間和地點不能沖突且考試人數(shù)不能超過考場容量。
數(shù)據(jù)存儲:成績單
說明:記錄學(xué)生本學(xué)期所有課程成績 流入數(shù)據(jù)流:學(xué)生所有的選課記錄 流出數(shù)據(jù)流:學(xué)生的成績單 數(shù)據(jù)量:由學(xué)生的人數(shù)決定 存取方式:隨機存取
二、概念結(jié)構(gòu)設(shè)計
1、根據(jù)需求分析畫出E-R圖:
選修 學(xué)生 教師 課程 m n 講授 1 n 教科書 n
成績 教室 開設(shè) 1 n
2、根據(jù)E-R圖寫出各個實體的屬性描述
學(xué)生:{學(xué)號,姓名}
課程:{課程號,課程名,課程描述,學(xué)分} 教師:{教師號,教師名,課程數(shù)} 教室:{教室編號,地址,容量}
3、視圖的集成
假設(shè)在學(xué)生管理系統(tǒng)的學(xué)籍管理系統(tǒng)中存在另一個學(xué)生實體,其中還包括以下信息:性別,所屬專業(yè),所屬班級。為了使兩個實體保持一致,對兩個實體取并集得到新的學(xué)生實體: 學(xué)生:{學(xué)號,姓名,性別,專業(yè),班級}
三、邏輯結(jié)構(gòu)設(shè)計
1、由E-R圖向數(shù)據(jù)模型的轉(zhuǎn)換
一個實體型轉(zhuǎn)換為一個關(guān)系模式。實體的屬性就是關(guān)系的屬性。實體的碼就是關(guān)系的碼。所以,E-R圖中的屬性描述可直接轉(zhuǎn)換為相應(yīng)的關(guān)系模式。
2、對于剩余的一對多和多對多聯(lián)系可以如下表示
學(xué)生-課程:{學(xué)號,課程號,課序號,成績} 課程-教師:{課程號,課序號,教師號} 課程-教科書:{課程號,課序號,教科書}
教室-課程:{教室號,時間,課程號,課序號}
其中 課程-教師 與 課程-教科書 具有相同的主碼,可以合并成一個關(guān)系 教學(xué):{課程號,課序號,教師號,教科書}
最后得到的關(guān)系模式為
學(xué)生:{學(xué)號,姓名,性別,專業(yè),班級} 課程:{課程號,課程名,課程描述,學(xué)分} 教師:{教師號,教師名,課程數(shù)} 教室:{教室號,地址,容量}
學(xué)生-課程:{學(xué)號,課程號,課序號,成績} 教學(xué):{課程號,課序號,教師號,教科書} 教室-課程:{教室號,時間,課程號,課序號}
3、用戶外模式
根據(jù)需求,為計算綜合測評增加一個外模式,因為綜合測評只在學(xué)期末進行,查詢次數(shù)不多,所以沒有必要用冗余的方法來提高查詢效率,只需要建立一個外模式視圖即可。
測評{學(xué)號,學(xué)生姓名,平均成績}
4、根據(jù)設(shè)計寫出相應(yīng)的SQL語句:
CREATE TABLE student(Sno
VARCHAR(9)
CONSTRAINT pk_student PRIMARY KEY,Sname
VARCHAR(10)NOT NULL,Sex
VARCHAR(1)
NOT NULL,Major
VARCHAR(10)
NOT NULL,Class
VARCHAR(10)
NOT NULL,CHECK
(Sex = 'f' OR Sex = 'm'))
CREATE TABLE course(Cno
VARCHAR(4)
CONSTRAINT pk_course PRIMARY KEY,Cname
VARCHAR(10)
NOT NULL,Describe
VARCHAR(200),Mark
INTEGER)
CREATE TABLE teacher(Tno
VARCHAR(5)
CONSTRAINT teacher_pk PRIMARY KEY,Tname
VARCHAR(10)
NOT NULL,Ccnt
INTEGER
NOT NULL DEFAULT 0)
CREATE TABLE classroom(Rno
VARCHAR(5)CONSTRAINT pk_classroom PRIMARY KEY,Locate
VARCHAR(30)NOT NULL,Cap
INTEGER CHECK
(Cap > 0))
CREATE TABLE tech(Cno
VARCHAR(4)NOT NULL CONSTRAINT fk_course_cno FOREIGN KEY REFERENCES course(Cno)ON UPDATE CASCADE
--級聯(lián)更新
ON DELETE CASCADE,--級聯(lián)刪除
SCno
VARCHAR(2)NOT NULL,Tno
VARCHAR(5)CONSTRAINT fk_teacher_tno FOREIGN KEY REFERENCES teacher(Tno)
ON UPDATE CASCADE
ON DELETE CASCADE,Book
VARCHAR(20)
CONSTRAINT pk_tech PRIMARY KEY(Cno,SCno))
CREATE TABLE SC(Sno
VARCHAR(9)NOT NULL CONSTRAINT fk_student_sno FOREIGN KEY REFERENCES student(Sno)
ON UPDATE CASCADE
ON DELETE CASCADE,Cno
VARCHAR(4)NOT NULL CONSTRAINT fk_sc_course_cno FOREIGN KEY REFERENCES course(Cno)
ON UPDATE CASCADE
ON DELETE CASCADE,SCno
VARCHAR(2)NOT NULL,Score FLOAT
CONSTRAINT pk_sc PRIMARY KEY(Sno,Cno,SCno))
CREATE TABLE RC(Rno
VARCHAR(5)CONSTRAINT fk_classroom_rno FOREIGN KEY REFERENCES classroom(Rno)
ON UPDATE CASCADE
ON DELETE CASCADE,Time
DATETIME,Cno
VARCHAR(4)NOT NULL CONSTRAINT fk_rc_course_cno FOREIGN KEY REFERENCES course(Cno)
ON UPDATE CASCADE
ON DELETE CASCADE,SCno
VARCHAR(2)NOT NULL
CONSTRAINT pk_rc PRIMARY KEY(Rno,Time))
為進行綜合測評增加一個外模式 CREATE VIEW assess AS
SELECT SC.sno, sname, AVG(score)as average FROM SC,Student where SC.sno = student.sno
GROUP BY SC.sno,sname
為了符合數(shù)據(jù)的參照完整性約束,避免學(xué)生選課的時候選擇一個不存在的課程號-課序號組,增加一個外鍵約束。ALTER TABLE sc
ADD CONSTRAINT fk_sc_tech FOREIGN KEY(Cno,SCno)REFERENCES tech(Cno,SCno)
ON UPDATE CASCADE
ON DELETE CASCADE
為了在插入一個新課程時能級聯(lián)更新教師的工作量,增加一個觸發(fā)器。此任務(wù)也可以通過建立一個外模式視圖來動態(tài)統(tǒng)計,為了練習(xí)的目的這里采用了觸發(fā)器
CREATE TRIGGER workcnter On tech AFTER INSERT ,UPDATE, DELETE AS BEGIN
DECLARE @T VARCHAR(5)
IF EXISTS
(SELECT TOP 1 Tno FROM INSERTED)
BEGIN
SET @T =(SELECT TOP 1 Tno FROM INSERTED)
UPDATE teacher SET Ccnt = Ccnt + 1 WHERE Tno = @T
END
IF EXISTS
(SELECT TOP 1 Tno FROM DELETED)
BEGIN
SET @T =(SELECT TOP 1 Tno FROM DELETED)
UPDATE teacher SET Ccnt = Ccnt1 WHERE Tno = @T END END 關(guān)于課程容量:如何保證選課的學(xué)生數(shù)量不超過教室的容量?
初步解決辦法是:在學(xué)生選課時建立暫時不考慮容量問題,都加滲透一個臨時的SC表中。然后,在選課結(jié)束后將未超額的記錄直接加滲透SC表,超額的課程進行抽簽,將命中部分學(xué)生的選課記錄插入SC表,直到人數(shù)符合課程容量的要求為止。
抽簽的功能較適合用頂層的高級語言來實現(xiàn)。在選課結(jié)束后,選超額課程的學(xué)生需登陸選課系統(tǒng)進行抽簽,抽簽的過程可以使用概率算法,如果抽中,系統(tǒng)再將選課記錄插入SC表,否則就從臨時表中刪除。所以,在數(shù)據(jù)庫系統(tǒng)中,沒有對SC表的插滲入滲出操作進行約束。
本文來自CSDN博客,轉(zhuǎn)載請標(biāo)明出處: http://blog.csdn.net/lesky/archive/2006/12/25/1460 966.aspx
數(shù)據(jù)庫設(shè)計---教務(wù)管理系統(tǒng)
2009年12月03日 星期四 11:04 P.M.題目要求:
設(shè)計一個教務(wù)管理系統(tǒng)。要求管理包括:學(xué)生的檔案,學(xué)生選課的情況,學(xué)生每學(xué)期的綜合測評,教師檔案,教師工作量等等。具體考核方法根據(jù)自己了解的實際情況處理。
假設(shè)此次設(shè)計的教務(wù)系統(tǒng)是整個學(xué)生管理系統(tǒng)數(shù)據(jù)庫中的一部分,整個系統(tǒng)至少還包括學(xué)籍管理等其他子系統(tǒng)。
在初期設(shè)計時,先關(guān)注與教務(wù)系統(tǒng)有關(guān)的數(shù)據(jù)。在完成對教務(wù)管理系統(tǒng)的建模后再對整個系統(tǒng)進行合并,總終得到整個系統(tǒng)的設(shè)計方案。
一、需求分析
1、根據(jù)分析可以畫出該教務(wù)管理系統(tǒng)的數(shù)據(jù)流圖: 學(xué)生
選課
上課
考試
測評
選課單
允許考試
成績單
老師檔案
課程簡介
教室安排
試卷
考場安排
測評報告單 學(xué)生名單
教師
選定教材
申報
課表
2、數(shù)據(jù)字典 數(shù)據(jù)結(jié)構(gòu):學(xué)生
含義說明:是教務(wù)管理系統(tǒng)的一個核心數(shù)據(jù)結(jié)構(gòu),定義了學(xué)生的有關(guān)信息 組成:學(xué)號、姓名 數(shù)據(jù)項:學(xué)號
含義說明:唯一標(biāo)識每一個學(xué)生 別名:學(xué)生編號 類型:字符型 長度:9位
取值范圍:190000000 – 999999999
取值含義:前四位表明學(xué)生所在年級,后五位安順序編號 數(shù)據(jù)項:姓名
含義說明:表示學(xué)生的姓名 類型:字符型 長度:10位 取值范圍:任意字符
數(shù)據(jù)結(jié)構(gòu):教師 含義說明:教務(wù)管理系統(tǒng)的核心數(shù)據(jù)結(jié)構(gòu)之一,定義了教師的有關(guān)信息
組成:教師號,教師姓名
數(shù)據(jù)項:教師號
含義說明:教師的編號
類型:字符型
長度:5位
取值范圍:10000 – 99999
數(shù)據(jù)項:教師姓名
含義說明:教師的姓名
類型:字符型
長度:10位
取值范圍:任意合法的字符
數(shù)據(jù)結(jié)構(gòu):課程
含義說明:教務(wù)管理系統(tǒng)的核心數(shù)據(jù)結(jié)構(gòu)之一,定義了課程的有關(guān)信息 組成:課程號,課程名,課程描述,教師,教室,教科書,學(xué)分
數(shù)據(jù)項:課程號 含義說明:課程的編號 類型:字符型 長度:4 取值范圍:0001 – 9999 數(shù)據(jù)項:課序號
含義說明:對于同一課程,由不同老師教授,用課序號來區(qū)分 類型:字符型 長度:2
取值范圍:01 – 99 數(shù)據(jù)項:課程名 含義說明:課程的名稱 類型:字符型 長度:10
取值范圍:任意合法的字符 數(shù)據(jù)項:課程描述
含義說明:課程內(nèi)容的基本描述 類型:字符型 長度:200
取值范圍:任意合法字符 數(shù)據(jù)項:教科書
含義說明:課程所用的教科書 類型:字符型 長度:20
取值范圍:任意合法字符 數(shù)據(jù)項:學(xué)分 含義說明:課程的學(xué)分 類型:整型 長度:1 取值范圍:1-9 數(shù)據(jù)結(jié)構(gòu):教室
含義說明:上課所用的教室
組成:教室編號,教室地址,教室容量 數(shù)據(jù)項:教室編號 含義說明:教室的編號 類型:字符 長度:5
取值范圍:00001-99999 數(shù)據(jù)項:教室地址 含義說明:標(biāo)明教室的地址 類型:字符 長度:30
取值范圍:任意合法的字符 數(shù)據(jù)項:教室容量
含義說明:教室的容納學(xué)生的數(shù)量 類型:整型 取值范圍:正整數(shù) 數(shù)據(jù)結(jié)構(gòu):選課記錄
含義說明:紀(jì)錄學(xué)生選課的紀(jì)錄 組成:學(xué)生,課程,成績
數(shù)據(jù)項:成績
含義說明:選課學(xué)生本學(xué)期的成績
類型:浮點數(shù) 范圍:0.0 – 100.0 處理過程:分配教室
說明:為所有課程分配上課教室 輸入:課程,教室 輸出:教室安排
處理:學(xué)期課程決定后,要為每個課程安排上課地點,要求上課的地點不能沖突且上課人數(shù)不能超過教室容量。
處理過程:分配考場
說明:在考試日期,為所有課程分配考場
輸入:課程,教室
輸出:考場安排
處理:為每個課程安排考場,考試時間和地點不能沖突且考試人數(shù)不能超過考場容量。
數(shù)據(jù)存儲:成績單
說明:記錄學(xué)生本學(xué)期所有課程成績 流入數(shù)據(jù)流:學(xué)生所有的選課記錄 流出數(shù)據(jù)流:學(xué)生的成績單 數(shù)據(jù)量:由學(xué)生的人數(shù)決定 存取方式:隨機存取
二、概念結(jié)構(gòu)設(shè)計
1、根據(jù)需求分析畫出E-R圖:
選修
學(xué)生
教師
課程
m n 講授 n 教科書
n 成績
教室
開設(shè) n
2、根據(jù)E-R圖寫出各個實體的屬性描述 學(xué)生:{學(xué)號,姓名}
課程:{課程號,課程名,課程描述,學(xué)分} 教師:{教師號,教師名,課程數(shù)} 教室:{教室編號,地址,容量}
3、視圖的集成
假設(shè)在學(xué)生管理系統(tǒng)的學(xué)籍管理系統(tǒng)中存在另一個學(xué)生實體,其中還包括以下信息:性別,所屬專業(yè),所屬班級。為了使兩個實體保持一致,對兩個實體取并集得到新的學(xué)生實體: 學(xué)生:{學(xué)號,姓名,性別,專業(yè),班級}
三、邏輯結(jié)構(gòu)設(shè)計
1、由E-R圖向數(shù)據(jù)模型的轉(zhuǎn)換
一個實體型轉(zhuǎn)換為一個關(guān)系模式。實體的屬性就是關(guān)系的屬性。實體的碼就是關(guān)系的碼。所以,E-R圖中的屬性描述可直接轉(zhuǎn)換為相應(yīng)的關(guān)系模式。
2、對于剩余的一對多和多對多聯(lián)系可以如下表示 學(xué)生-課程:{學(xué)號,課程號,課序號,成績} 課程-教師:{課程號,課序號,教師號} 課程-教科書:{課程號,課序號,教科書} 教室-課程:{教室號,時間,課程號,課序號}
其中 課程-教師 與 課程-教科書 具有相同的主碼,可以合并成一個關(guān)系 教學(xué):{課程號,課序號,教師號,教科書} 最后得到的關(guān)系模式為
學(xué)生:{學(xué)號,姓名,性別,專業(yè),班級} 課程:{課程號,課程名,課程描述,學(xué)分} 教師:{教師號,教師名,課程數(shù)} 教室:{教室號,地址,容量}
學(xué)生-課程:{學(xué)號,課程號,課序號,成績} 教學(xué):{課程號,課序號,教師號,教科書} 教室-課程:{教室號,時間,課程號,課序號}
3、用戶外模式
根據(jù)需求,為計算綜合測評增加一個外模式,因為綜合測評只在學(xué)期末進行,查詢次數(shù)不多,所以沒有必要用冗余的方法來提高查詢效率,只需要建立一個外模式視圖即可。測評{學(xué)號,學(xué)生姓名,平均成績}
4、根據(jù)設(shè)計寫出相應(yīng)的SQL語句: CREATE TABLE student(Sno VARCHAR(9)CONSTRAINT pk_student PRIMARY KEY, Sname VARCHAR(10)NOT NULL, Sex VARCHAR(1)NOT NULL, Major VARCHAR(10)NOT NULL, Class VARCHAR(10)NOT NULL, CHECK(Sex = 'f' OR Sex = 'm'))
CREATE TABLE course(Cno VARCHAR(4)CONSTRAINT pk_course PRIMARY KEY, Cname VARCHAR(10)NOT NULL, Describe VARCHAR(200), Mark INTEGER)
CREATE TABLE teacher(Tno VARCHAR(5)CONSTRAINT teacher_pk PRIMARY KEY, Tname VARCHAR(10)NOT NULL,Ccnt INTEGER NOT NULL DEFAULT 0)
CREATE TABLE classroom(Rno VARCHAR(5)CONSTRAINT pk_classroom PRIMARY KEY, Locate VARCHAR(30)NOT NULL, Cap INTEGER CHECK(Cap > 0))
CREATE TABLE tech(Cno VARCHAR(4)NOT NULL CONSTRAINT fk_course_cno FOREIGN KEY REFERENCES course(Cno)ON UPDATE CASCADE--級聯(lián)更新 ON DELETE CASCADE,--級聯(lián)刪除 SCno VARCHAR(2)NOT NULL,Tno VARCHAR(5)CONSTRAINT fk_teacher_tno FOREIGN KEY REFERENCES teacher(Tno)ON UPDATE CASCADE ON DELETE CASCADE, Book VARCHAR(20)
CONSTRAINT pk_tech PRIMARY KEY(Cno,SCno))
CREATE TABLE SC(Sno VARCHAR(9)NOT NULL CONSTRAINT fk_student_sno FOREIGN KEY REFERENCES student(Sno)ON UPDATE CASCADE ON DELETE CASCADE,Cno VARCHAR(4)NOT NULL CONSTRAINT fk_sc_course_cno FOREIGN KEY REFERENCES course(Cno)ON UPDATE CASCADE ON DELETE CASCADE, SCno VARCHAR(2)NOT NULL, Score FLOAT
CONSTRAINT pk_sc PRIMARY KEY(Sno,Cno,SCno))
CREATE TABLE RC(Rno VARCHAR(5)CONSTRAINT fk_classroom_rno FOREIGN KEY REFERENCES classroom(Rno)ON UPDATE CASCADE ON DELETE CASCADE, Time DATETIME,Cno VARCHAR(4)NOT NULL CONSTRAINT fk_rc_course_cno FOREIGN KEY REFERENCES course(Cno)ON UPDATE CASCADE ON DELETE CASCADE, SCno VARCHAR(2)NOT NULL
CONSTRAINT pk_rc PRIMARY KEY(Rno,Time))
為進行綜合測評增加一個外模式 CREATE VIEW assess AS
SELECT SC.sno, sname, AVG(score)as average FROM SC,Student where SC.sno = student.sno GROUP BY SC.sno,sname
為了符合數(shù)據(jù)的參照完整性約束,避免學(xué)生選課的時候選擇一個不存在的課程號-課序號組,增加一個外鍵約束。ALTER TABLE sc
ADD CONSTRAINT fk_sc_tech FOREIGN KEY(Cno,SCno)REFERENCES tech(Cno,SCno)ON UPDATE CASCADE ON DELETE CASCADE
為了在插入一個新課程時能級聯(lián)更新教師的工作量,增加一個觸發(fā)器。此任務(wù)也可以通過建立一個外模式視圖來動態(tài)統(tǒng)計,為了練習(xí)的目的這里采用了觸發(fā)器 CREATE TRIGGER workcnter On tech AFTER INSERT ,UPDATE, DELETE AS BEGIN
DECLARE @T VARCHAR(5)IF EXISTS(SELECT TOP 1 Tno FROM INSERTED)BEGIN
SET @T =(SELECT TOP 1 Tno FROM INSERTED)UPDATE teacher SET Ccnt = Ccnt + 1 WHERE Tno = @T END
IF EXISTS(SELECT TOP 1 Tno FROM DELETED)BEGIN
SET @T =(SELECT TOP 1 Tno FROM DELETED)UPDATE teacher SET Ccnt = Ccnt-1 WHERE Tno = @T END END 關(guān)于課程容量:如何保證選課的學(xué)生數(shù)量不超過教室的容量?
初步解決辦法是:在學(xué)生選課時建立暫時不考慮容量問題,都加入一個臨時的SC表中。然后,在選課結(jié)束后將未超額的記錄直接加入SC表,超額的課程進行抽簽,將命中部分學(xué)生的選課記錄插入SC表,直到人數(shù)符合課程容量的要求為止。
抽簽的功能較適合用頂層的高級語言來實現(xiàn)。在選課結(jié)束后,選超額課程的學(xué)生需登陸選課系統(tǒng)進行抽簽,抽簽的過程可以使用概率算法,如果抽中,系統(tǒng)再將選課記錄插入SC表,否則就從臨時表中刪除。
所以,在數(shù)據(jù)庫系統(tǒng)中,沒有對SC表的插入操作進行約束。
第三篇:數(shù)據(jù)庫實習(xí)報告-教務(wù)管理系統(tǒng).
數(shù)據(jù)庫系統(tǒng)課程設(shè)計 學(xué)生姓名: 班 學(xué) 號: 指導(dǎo)教師:
教務(wù)管理系統(tǒng)
1、需求分析 1.1 信息要求: 教務(wù)管理系統(tǒng)涉及的實體有: ●教師——工作證號、姓名、職稱、電話等;●學(xué)生——學(xué)號、姓名、性別、出生年月等;●班級——班號、最低總學(xué)分等;
●系——系代號、系名和系辦公室電話等;●課程——課序號、課名、學(xué)分、上課時間及名額等。這些實體之間的聯(lián)系如下: ●每個學(xué)生都屬于一個班,每個班都屬于一個系,每個教師也都屬于一個系?!衩總€班的班主任都由一名教師擔(dān)任。
●一名教師可以教多門課,一門課可以有幾位主講老師,但不同老師講的同一門課其課序號是不同 的(課序號是唯一的。
●一名同學(xué)可以選多門課,一門課可被若干同學(xué)選中?!褚幻瑢W(xué)選中的課若已學(xué)完,應(yīng)該記錄有相應(yīng)成績。
●本單位學(xué)生、教師都有重名,工作證號、學(xué)號可以作為標(biāo)識。1.2 處理要求: 教學(xué)系統(tǒng)主要提供數(shù)據(jù)維護、選課和信息查詢。其中常見的查詢有:系統(tǒng)中各對象的基本信息查詢。查 詢指定班、系的學(xué)生信息(名單、人數(shù)等。查詢學(xué)生的成績、學(xué)分情況。查詢教師授課情況和學(xué)生選課情 況??。
1.3 安全性與完整性要求: ●安全性要求: 1.系統(tǒng)應(yīng)設(shè)置訪問用戶的標(biāo)識以鑒別是否是合法用戶, 并要求合法用戶設(shè)置其密碼, 保證用戶身份不被 盜用;2.系統(tǒng)應(yīng)對不同的數(shù)據(jù)設(shè)置不同的訪問級別,限制訪問用戶可查詢和處理數(shù)據(jù)的類別和內(nèi)容;
3.系統(tǒng)應(yīng)對不同用戶設(shè)置不同的權(quán)限,區(qū)分不同的用戶,如學(xué)生,教師,系統(tǒng)管理員。
●完整性要求: 1.各種信息記錄的完整性,關(guān)鍵信息記錄內(nèi)容不能為空;2.各種數(shù)據(jù)間相互的聯(lián)系的正確性;3.相同的數(shù)據(jù)在不同記錄中的一致性。1.4 系統(tǒng)功能的設(shè)計和劃分
根據(jù)如上得到的用戶需求,我們將本系統(tǒng)按照所完成的功能分成以下幾部分: 第一部分:用戶管理部分 第二部分:管理員管理部分 各部分完成的功能如下:
1、用戶管理部分
1、處理用戶注冊
2、處理用戶登錄
3、用戶可以查詢學(xué)生信息。
4、用戶可以查詢快件信息。
5、用戶可以提交與查詢報修信息。
6、用戶可以插入與刪除用戶自己的離返校信息。
7、用戶可以修改用戶自己密碼。
2、管理員管理部分
1、處理管理員登錄
2、管理員可以查詢學(xué)生信息。
3、管理員可以發(fā)布與更新快件信息。
4、管理員可以插入、修改與查詢報修信息。
5、管理員可以插入與查詢學(xué)生夜歸信息。
6、管理員可以查詢在校與離校學(xué)生信息。
7、管理員可以修改管理員密碼。
2、概念設(shè)計(1 概念模型(E-R 圖 :
選修聯(lián)系的分 E-R 圖 負(fù)責(zé)聯(lián)系的分 E-R 圖
授課聯(lián)系的分 E-R 圖
教務(wù)管理系統(tǒng)的總 E-R 圖(2 數(shù)據(jù)字典 :
(3數(shù)據(jù)流圖
查詢 課程信息 課程信息表 課程信息 查詢 課 程 成績信息 信 息 教師 學(xué) 生 選課信息信 息 查詢學(xué) 生信息 修改教 師信息 教 師 信 息 系 信 息 課 程 選課信息 信 息 學(xué)生 學(xué) 生 信 息 選課信息 修改學(xué) 教 師 信 息 生信息 查詢教 師信息 選課信息 選課 已 選 課 信 息 成績信息 選 課 表 登記 成績 成 績 信 息 查詢 選課信息 選課信息 查詢 系 信 息 班 級 信 息 學(xué)生信息 學(xué)生信息表 教師信息 教師信息表 學(xué)生信息 教師信息 班 級 信 息 班級信息 查詢 系信息 班級信息表 系信息表 總 數(shù) 據(jù) 流 圖 班級信息 查詢 系信息
3、邏輯結(jié)構(gòu)設(shè)計
-R 圖向關(guān)系模型的轉(zhuǎn)換(關(guān)系的碼用下橫線表出)教師(工作證號,姓名,職稱,電話,系代號)代碼表示:Teacher(Tno, Tname, Title, Tel, Dno 此為“教師”實體對應(yīng)的關(guān)系模式。其中 1:n 聯(lián)系“工作”與此關(guān)系模式合并,Dno 為外碼。存在的函數(shù) 依賴為 Tno →(Tname,Title,Tel,Dno),且不存在多值依賴,所以滿足 4NF。學(xué)生(學(xué)號,姓名,性別,出生年月,班號)代碼表示:Student(Sno, Sname, Ssex, Sbirth, Class 此為“學(xué)生”實體對應(yīng)的關(guān)系模式。其中 1:n 聯(lián)系“屬于”與此關(guān)系模式合并,Class 為外碼。存在的函數(shù) 依賴為 Sno →(Sname,Ssex,Sbirth,Class),且不存在多值依賴,所以滿足 4NF。系(系代號,系名,系辦公室電話)代碼表示:Department(Dno, Dname, Dphone 此為“系”實體對應(yīng)的關(guān)系模式。存在的函數(shù)依賴為 Dno →(Dname,Dphone),且不存在多值依賴,所 以滿足 4NF。課程(課序號,課名,學(xué)分,上課時間,名額,工作證號)代碼表示:Course(Cno, Cname, Credit, Ctime, Cnum, Tno 此為“課程”實體對應(yīng)的關(guān)系模式。其中 1:n 聯(lián)系“授課”與此關(guān)系模式合并,Tno 為外碼。存在的函數(shù) 依賴為 Cno →(Cname,Credit,Ctime,Cnum,Tno),且不存在多值依賴,所以滿足 4NF。選課(學(xué)號,課序號,成績)代碼表示:SC(Sno, Cno, Grade 此為 m: 聯(lián)系 n “選修” 所對應(yīng)的關(guān)系模式。Sno 和 Cno 均為外部碼。存在的函數(shù)依賴為完全函數(shù)依賴(Sno,Cno)→ Grade,且不存在多值依賴,所以滿足 4NF。班級(班號,最低總學(xué)分,工作證號,系代號)代碼表示:Class(Class, TotalCredit, Tno, Dno 此為“班級”實體對應(yīng)的關(guān)系模式。其中 1:n 聯(lián)系“屬于”和 1:1 聯(lián)系“負(fù)責(zé)”與此關(guān)系模式合并,Tno 和 Dno 為外碼。該關(guān)系模式中存在傳遞函數(shù)依賴:Class → Tno,(Tno Class,Tno → Dno,可得 Class → Dno,故 Class 不屬于
3NF。解決方法是將其模式分解為:Class(Class, TotalCredit, Tno 和 T-D(Tno, Dno,分解后的關(guān)系模式滿足 4NF,并且 T-D 與 Teacher 的碼相同,可合并為同一模式。但 是考慮到系統(tǒng)要經(jīng)常進行系的學(xué)生信息查詢,此時就不得不對 Student、Class 和 Teacher 三個表進行連接 查詢,而連接是影響查詢效率的主要原因,所以取消對 Class 的模式分解。此時 Class 關(guān)系模式滿足 2NF。
設(shè)計用戶子模式 為了方便程序查詢,建立了如下用戶視圖:
1、某系的學(xué)生信息視圖(學(xué)號,姓名,性別,出生年月,班號)
2、某系的教師信息視圖(工作證號,教師姓名,職稱,電話,負(fù)責(zé)班級)
3、某課程的學(xué)生成績單(學(xué)號,姓名,班級,成績)
4、教師授課信息表(工作證號,教師姓名,職稱,教授課程,學(xué)分,上課時間)
5、學(xué)生已選課表(課序號,課名,學(xué)分,授課教師,上課時間,名額)
4、物理設(shè)計 4.1 選擇存取方法
1、數(shù)據(jù)庫管理系統(tǒng)自動在每個表的主碼上建立索引,通常為 B + 樹索引。
2、在 Student 表 Sname 列上建立 Stu_name 索引,因為查詢操作很多都使通過學(xué)生姓名進行的。
3、在 Teacher 表 Tname 列上建立 Tea_name 索引,因為查詢操作很多都使通過教師姓名進行的。4.2 確定數(shù)據(jù)庫的存儲結(jié)構(gòu)
1、為了提高系統(tǒng)性能,根據(jù)具體情況將數(shù)據(jù)的易變部分與穩(wěn)定部分、經(jīng)常存取部分和存取頻率較低部 分分開存放。
2、DBMS 產(chǎn)品一般都提供了一些系統(tǒng)配置變量、存儲分配參數(shù),根據(jù)應(yīng)用環(huán)境確定這些參數(shù)值,并且 在系統(tǒng)運行時還要根據(jù)系統(tǒng)實際運行情況進行調(diào)整,以使系統(tǒng)性能最佳。4.3 評價物理結(jié)構(gòu) 根據(jù)所選用的 DBMS,如 SQL Server 2000,從定量估算各種方案的存儲空間、存取時間和維護代價入 手,對估算結(jié)果進行權(quán)衡、比較,選擇一個較優(yōu)的合理的物理結(jié)構(gòu)。
5、系統(tǒng)實施 編寫關(guān)系模式,載入數(shù)據(jù)。分期分批地組織數(shù)據(jù)入庫,先輸入小批量數(shù)據(jù)做調(diào)試用,待試運行基本合 格后,再大批量輸入數(shù)據(jù),逐步增加數(shù)據(jù)量,逐步完成運行評價。需要注意的是,要首先調(diào)試運行 DBMS 的 恢復(fù)功能,做好數(shù)據(jù)庫的轉(zhuǎn)儲和恢復(fù)工作。基本 SQL 語言代碼如下: CREATE SCHEMA “TeachAffair” AUTHORIZATION Gao CREATE TABLE Department(Dno CHAR(3 PRIMARY KEY, Dept CHAR(20 UNIQUE NOT NULL, Dphone CHAR(11,;CREATE TABLE Teacher(Tno CHAR(6 PRIMARY KEY, Tname CHAR(20 NOT NULL, Title CHAR(8, Tel CHAR(11,Dno CHAR(3, FOREIGN KEY(Dno REFERENCES Department(Dno;CREATE TABLE Class(Class CHAR(6 PRIMARY KEY, TotalCredit NUMERIC(4,1, Tno CHAR(6, Dno CHAR(3, FOREIGN KEY(Tno REFERENCES Teacher(Tno, FOREIGN KEY(Dno REFERENCES Department(Dno;CREATE TABLE Student(Sno CHAR(11 PRIMARY KEY, Sname CHAR(20 NOT NULL, Ssex CHAR(2, Sbirth DATETIME, Class CHAR(6, FOREIGN KEY(Class REFERENCES Class(Class;CREATE TABLE Course(Cno CHAR(6 PRIMARY KEY, Cname CHAR(20 NOT NULL, Credit NUMERIC(2,1, Ctime DATETIME, Cnum SMALLINT, Tno CHAR(6, FOREIGN KEY(Tno REFERENCES Teacher(Tno;CREATE TABLE SC(Sno CHAR(11 NOT NULL, Cno CHAR(6 NOT NULL, Grade SMALLINT CHECK(Grade>=0 AND Grade<=100, PRIMARY KEY(Sno, Cno, FOREIGN KEY(Sno REFERENCES Student(Sno ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY(Cno REFERENCES Course(Cno ON DELETE NO ACTION ON UPDATE CASCADE,;/*建立索引*/ CREATE UNIQUE INDEX Stu_name ON Student(Sname;CREATE UNIQUE INDEX Tea_name ON Teacher(Tname;CREATE UNIQUE INDEX SCno ON SC(Sno ASC, Cno DESC;/*查詢某個系的學(xué)生信息*/ CREATE VIEW GIS_Student AS SELECT * FROM Student WHERE Class IN(SELECT Class FROM Class WHERE Dname='GIS' WITH CHECK OPTION;SELECT * FROM GIS_Student;SELECT COUNT(* FROM GIS_Student;/*查詢班級的學(xué)生信息*/ SELECT Sno, Sname, Ssex, Birth FROM Student WHERE Class = '114072';SELECT COUNT(* FROM Student WHERE Class='114072';/*查詢學(xué)生的成績、學(xué)分*/ SELECT SC.Cno, Cname, Credit, Grade FROM Course, SC WHERE Sno = '20071000500' AND SC.Cno=Course.Cno;SELECT SUM(Credit FROM SC,Course WHERE Sno='20071000500' AND SC.Cno=Couse.Cno;/*查詢教師授課信息*/ SELECT Course.* FROM Course WHERE Tno='100123';SELECT Student.Sno,Sname,Class,Grade FROM Course,SC,Student WHERE Tno='100123' AND Course.Cno=SC.Cno AND SC.Sno=Student.Sno;
6、運行維護
1、針對不同的應(yīng)用要求制定不同的轉(zhuǎn)儲計劃,一旦發(fā)生故障盡快將數(shù)據(jù)庫恢復(fù)到某種一致的狀態(tài),并
盡可能減少對數(shù)據(jù)庫的破壞;
2、根據(jù)實際情況修改數(shù)據(jù)庫原有的安全性、完整性控制;
3、在數(shù)據(jù)庫運行過程中,監(jiān)督系統(tǒng)運行,對監(jiān)測數(shù)據(jù)進行分析,找出改進系統(tǒng)性能的方法;
4、數(shù)據(jù)庫運行一段時間后,由于記錄不斷增、刪、改,會使數(shù)據(jù)庫的物理存儲情況變壞,降低數(shù)據(jù)的 存取效率,數(shù)據(jù)庫性能下降。這時應(yīng)按原設(shè)計要求重新安排存儲位置、回收垃圾、減少指針鏈等,提高系 統(tǒng)性能。當(dāng)原有的數(shù)據(jù)庫設(shè)計不能滿足新的需求,需要重構(gòu)造數(shù)據(jù)庫,調(diào)整數(shù)據(jù)庫的模式和內(nèi)模式。
7、用戶手冊(<五號宋體>,具體內(nèi)容:使用、操作說明。)
8、附錄(<五號宋體>,源程序清單和結(jié)果:源程序必須有注釋,以及必要的測試數(shù)據(jù)和運行結(jié)果數(shù)據(jù),提倡 用英文描述。)
第四篇:數(shù)據(jù)庫課程設(shè)計 計算機教務(wù)管理系統(tǒng)
中北大學(xué)
數(shù)據(jù)庫課程設(shè)計
說 明 書
學(xué) 院、系: 專
業(yè): 學(xué) 生 姓 名: 設(shè) 計 題 目:
李翰超
軟件學(xué)院 軟件工程
學(xué) 號: 1221010619
計算機等級考試教務(wù)管理系統(tǒng)
起 迄 日 期: 2014年5月26日-2014年6月20日 指 導(dǎo) 教 師:
2012 年 6月 21 日.引言
隨著全國計算機等級考試的全面推廣,我市學(xué)生每年參加兩次全國計算機等級考試,考試管理工作量相當(dāng)大。但是靠人工的方式管理等級考試相關(guān)的信息,這種管理方式存在著許多缺點,如:工作效率低、統(tǒng)計容易出錯,另外時間一長,將產(chǎn)生大量的文件和數(shù)據(jù),這對于查找、更新和維護都帶來了不少的困難。所以開發(fā)一個計算機等級考試成績管理系統(tǒng)是非常必要的。2.需求分析
計算機等級考試分為若干種類:如:計算機一級VB、C語言;計算機二級VB、C語言、C++;計算機三級數(shù)據(jù)庫、網(wǎng)絡(luò)技術(shù);計算機四級數(shù)據(jù)庫工程師、網(wǎng)絡(luò)工程師。對于每個種類,考試分為筆試和機試.計算機等級考試工作過程如下:每個考生在報名時,登記姓名、性別、報考種類、學(xué)校、身份證號、個人照片等。考試辦公室根據(jù)考生報考的種類,以及所在的考區(qū)來安排考場,編排準(zhǔn)考證號碼,打印準(zhǔn)考證。考生參加考試后,登記每個考生每項的成績,并計算出每個考生筆試和機試的成績是否都>=60分。對機試和筆試都>=60分的考生,按所在考區(qū)打印通過證書,同一考區(qū)按準(zhǔn)考證號碼順序打印出通過證書,分發(fā)給考生;計算機四級只要筆試成績>=60則通過;打印成績表供考試辦公室留存、備查。
開發(fā)計算機等級考試成績管理系統(tǒng),有計算機輔助實現(xiàn)上述過程,代替人工操作,節(jié)省人力、時間,提高工作效率。
2.1 處理對象(1)用戶帳號密碼管理 對考點代碼,考點名稱進行管理 用戶與密碼進行管理(2)報名管理功能模塊
報各庫錄入(姓名不能不空,之間不能有空格)增加、刪除、修改、瀏覽(3)準(zhǔn)考證管理模塊
準(zhǔn)考證生成規(guī)則:xxx+yy+zz+kk 其中XXX為考點代碼;YY為語言代碼,XX為考場號,KK為座位號(4)考務(wù)管理功能模塊
考生信息查詢、瀏覽 成績管理模塊
成績數(shù)據(jù)錄入、接收
成績合成(總成績=筆試成績*0.6+上機成績*0.4),按大于或等于60合格
2.2數(shù)據(jù)字典:
考生信息表(考生主鍵(主鍵),姓名,性別,出生年份,民族,身份證號,聯(lián)系地址,聯(lián)系電話,備注)
準(zhǔn)考證表(準(zhǔn)考證號主鍵,準(zhǔn)考證號)
成績表(成績表主鍵,筆試成績,上機成績,總成績)
級別語言代碼表(級別語言代碼主鍵,級別語言代碼,級別,語言)考生考點信息表(考生考點主鍵,考點代碼,考點名稱,)用戶帳號管理(用戶帳號主鍵,用戶名,密碼)
信息操作表(考生主鍵(主鍵),準(zhǔn)考證號主鍵, 級別語言代碼主鍵,考生考點主鍵,用戶帳號主鍵)
3.E-R圖
4.關(guān)系模型
考生信息表(考生主鍵(主鍵),姓名,性別,出生年份,民族,身份證號,聯(lián)系地址,聯(lián)系電話,備注)
準(zhǔn)考證表(準(zhǔn)考證號主鍵,準(zhǔn)考證號)
成績表(成績表主鍵,筆試成績,上機成績,總成績)
級別語言代碼表(級別語言代碼主鍵,級別語言代碼,級別,語言)
考生考點信息表(考生考點主鍵,考點代碼,考點名稱,)用戶帳號管理(用戶帳號主鍵,用戶名,密碼)
信息操作表(考生主鍵(主鍵),準(zhǔn)考證號主鍵, 級別語言代碼主鍵,考生考點主鍵,用戶帳號主鍵)
其模式定義:
見附件:模式定義。
5.物理設(shè)計
本數(shù)據(jù)庫共有5張表組成,其中t_manage表為管理表,而其他4張表:t_grade,t_information,t_level,t_regist都為基本表,當(dāng)要查詢所需要的信息時,就用連接查詢將管理表和基本表連接在一起,從而看到想看到信息。
6.數(shù)據(jù)庫實施
create table t_grade(grade number primary key, write number, shangji number, totalgrade number);alter table t_grade add constraint write check(write<=40 and write>=0);alter table t_grade add constraint shangji check(shangji<=60 and
shangji>=0);alter table t_grade add constraint totalgrade check
(totalgrade=write+shangji);
insert into t_grade values(001,40,50,90);insert into t_grade values(002,30,50,80);insert into t_grade values(003,20,60,80);insert into t_grade values(004,25,50,75);insert into t_grade values(005,30,40,70);create table t_information(information number, sname varchar2(20)not null, gender varchar2(2)check(gender='n' or gender='v'), birth number, nation varchar2(20)not null, idnumber char(18), address varchar2(20)not null, phone number not null, note varchar2(20),primary key(information));alter table t_information add constraint birth check(birth<=20020101 and
birth>=19200101);
insert into t_information values
(006,'ling','n',19950302,'han','***014','shanxi','0101111',null);insert into t_information values
(007,'wang','n',19950607,'han','***014','shanxi','0101241',null);insert into t_information values
(008,'john','n',19950504,'german','***014','german','010234511' ,'forgien');insert into t_information values
(009,'liu','v',19930407,'han','***014','shanxi','010123511',nul l);insert into t_information values
(010,'yuan','n',19910408,'han','***014','shanxi','0101211',null);create table t_level(leve number primary key, codes number not null, language varchar2(15)not null);insert into t_level values(015,01,'chinese');insert into t_level values(016,01,'chinese');insert into t_level values(017,02,'chinese');insert into t_level values(018,01,'english');insert into t_level values(019,01,'chinese');
create table t_regist(regist number, place varchar2(14), registnumber varchar2(9), primary key(regist));
insert into t_regist values(020,10101,'14010101');insert into t_regist values(021,10201,'14010102');insert into t_regist values(022,11101,'14010103');insert into t_regist values(023,12101,'14010104');insert into t_regist values(024,15103,'14010105');create table t_user(use number, username varchar2(14)not null, code varchar2(20)not null, primary key(use));
insert into t_user values(025,'ling','asasn');insert into t_user values(026,'wang','asasn');insert into t_user values(027,'john','sdrhy');insert into t_user values(028,'liu','eryery');insert into t_user values(029,'yuan','hjlmyu');
create table t_manage(information number, grade number, leve number, use number, regist number, foreign key(grade)references t_grade(grade), foreign key(information)references t_information(information), foreign key(leve)references t_level(leve), foreign key(regist)references t_regist(regist), foreign key(use)references t_user(use));
insert into t_manage values(006,001,015,025,020);5
insert into t_manage values(007,002,016,026,021);insert into t_manage values(008,003,017,027,022);insert into t_manage values(009,004,018,028,023);insert into t_manage values(010,005,019,029,024);
7.系統(tǒng)調(diào)試
通過sql語句對其進行調(diào)試,以測試其正確性,如圖1,2,3,4,5
圖 1 6
圖 2
圖 3 7
圖 4 用自然連接查詢:
圖 5
8.心得體會
本次課程設(shè)計主要設(shè)計一個計算機管理系統(tǒng),我的大體思路就是將基本信息錄入到基本表當(dāng)中,并保證沒有重復(fù)屬性,然后設(shè)計一個管理表,讓其它基本表參照這個管理表,這個管理表當(dāng)中只有各表主鍵,需要查看信息時,就將兩表連接。。
這次課設(shè)我覺得有兩個難點,一個是表間的參照,另一個是約束條件的設(shè)置,尤其是約束條件一定要充分考慮到,還有當(dāng)有那種范圍值的約束時要在建表后要用alter修改,而不是在定義時直接約束。
最后一點是關(guān)于主鍵的問題,主鍵最好別用學(xué)號什么的,最好應(yīng)該用連續(xù)的、無意義的數(shù)字,create sequence之后,每加一個元組就用一次nextval,這樣可以讓電腦自動排號。
第五篇:教務(wù)管理系統(tǒng) 數(shù)據(jù)庫實例設(shè)計
第17章 數(shù)據(jù)庫系統(tǒng)設(shè)計實例
本章以一個考務(wù)管理系統(tǒng)的設(shè)計過程為例,介紹在VB 6.0+SQL Server 2000環(huán)境中開發(fā)數(shù)據(jù)庫系統(tǒng)的一般方法。
17.1 系統(tǒng)概述
17.1.1 系統(tǒng)功能
本系統(tǒng)用于從考生報名、產(chǎn)生準(zhǔn)考證到錄取考生和打印成績單即對考生考試和錄取全過程進行管理的考務(wù)系統(tǒng),包含主要功能如下:
? ? ? ? ? ? 考生報名,按報名順序產(chǎn)生報名號
產(chǎn)生準(zhǔn)考生號和以緊湊方式打印準(zhǔn)考證 輸入考生考試成績和輸入錄取合格標(biāo)準(zhǔn) 根據(jù)合格標(biāo)準(zhǔn)錄取上線考生 打印考生成績單和考生錄取通知書 設(shè)置系統(tǒng)用戶和系統(tǒng)初始化
17.1.2 設(shè)計技巧
本系統(tǒng)設(shè)計中的一些技巧如下: ? ? ? ? 公共模塊設(shè)計(參見17.4節(jié)的Module1.Bas模塊)SQL Server數(shù)據(jù)庫設(shè)計(參見17.3節(jié))VB菜單設(shè)計方法(包括菜單項的有效性設(shè)計,對于“一般操作員”,使若干菜單項無效。參見menu多文檔窗體設(shè)計過程)統(tǒng)一的數(shù)據(jù)編輯設(shè)計方法:以ksb表為例進行說明:為了編輯其記錄,設(shè)計了edks窗體,在其中的DataGrid數(shù)據(jù)網(wǎng)格控件中顯示所有已輸入的考生記錄。用戶可以先通過“設(shè)置條件”框架查找到滿足指定條件的考生記錄,然后選擇“修改”或“刪除”命令按鈕進行考生記錄的修改或刪除,或者選擇“添加”命令按鈕輸入新的考生記錄。? ? ? VB報表設(shè)計方法(包括使用Data Report設(shè)計器和PrintForm方法)圖像數(shù)據(jù)的存取方法(參見edks窗體設(shè)計過程)事件編程技術(shù):一些數(shù)據(jù)編輯窗體(如edks等窗體)上有兩個事件過程即Load和Activate,它們的執(zhí)行過程是:在啟動本窗體時先執(zhí)行Load(僅執(zhí)行一次)事件過程,