第一篇:教務系統數據庫總結報告
教務系統數據庫總結報告
常州信息學院 網絡095 在信息時代的今天,數據成為傳遞信息的重要載體,而隨著信息的不斷增加,數據也變得相當繁瑣。因此數據庫的出現,正是為數據的處理提供了良好的媒介。
例如一所大學,通常由校長辦公司、教務處、財務處、學工處、團委、招就處、科技處。同時下設各系以及各分處。因此這些工作如果處理起來,或許需要幾百人,而且還不能保證信息處理的有效性與正確率。如果使用數據庫,我們可以輕松解決這些問題。學校行政管理,可以使用數據庫系統,保證每個教師的所帶課程,上班情況,工資情況以及每位教師獲獎與資歷等信息,都可以通過數據庫統一管理。學生方面,每個學生自從正式錄取輸入檔案信息后,到入學注冊都可用教務系統數據庫來管理。學生的選課、排課,考試成績、課堂表現,在校表現,生活狀況等、以及就業乃至畢業離校都可以通過系統來自動管理。
系統處理信息方便而準確,近一萬人的學生和老師,系統可以用很短的時間處理。所需的工作僅是首次的信息輸入,如果需要,便可以永久保存。信息處理準確性高,雖然數據信息量大,但是系統依然能很好的處理。因此對于學校來說,教務管理系統的使用可以極大的方便教務教學任務,很大幅度的提高工作效率。
數據庫可以說是信息處理的載體,龐大的數據通過數據庫實現了有序而快速的調入與調出。數據庫之所以能如此高效率的工作,得益于其工作原理。在關系數據庫中,對數據的操作幾乎全部建立在一個或多個關系表格上,通過對這些關系表格的分類、合并、連接或選取等運算來實現數據的管理。dBASEII就是這類數據庫管理系統的典型代表。對于一個實際的應用問題(如人事管理問題),有時需要多個關系才能實現。用dBASEII建立起來的一個關系稱為一個數據庫(或稱數據庫文件),而把對應多個關系建立起來的多個數據庫稱為數據庫系統。dBASEII的另一個重要功能是通過建立命令文件來實現對數據庫的使用和管理,對于一個數據庫系統相應的命令序列文件,稱為該數據庫的應用系統。因此,可以概括地說,一個關系稱為一個數據庫,若干個數據庫可以構成一個數據庫系統。數據庫系統可以派生出各種不同類型的輔助文件和建立它的應用系統。因此具備這樣的功能,數據庫才能在信息處理中發揮著重要的作用。、在數據庫的學習中,我們可以利用企業管理器和查詢分析器兩種方式快速爾簡單的使用數據庫。利用企業管理器操作起來全部是圖形界面,簡單易學。查詢分析器全部用代碼實現,雖然代碼比較繁瑣,但是這樣實現快捷,功能強大。在數據庫的學習中,剛開始主要是利用企業管理器,去創建一些數據庫,表格及一些屬性關系及應用。后來,可以使用
查詢分析器借助代碼做一些簡單的查詢,數據庫和表格的創建。但是其中的一些關系及屬性無法創建,這也正是數據庫學習的核心與關鍵。
得力于數據庫在信息處理中扮演如此重要的作用,因此數據庫的學習應該作為以后學習的重點,相信在不久的將來,數據庫一定會在互聯網中發揮著更加重要的作用,數據庫也定會成為今后的熱門專業和學習方向。
第二篇:數據庫程序設計---教務輔助管理系統
數據庫設計實例 教務管理系統
數據庫實驗七 數據庫設計
題目要求:
設計一個教務管理系統。要求管理包括:學生的檔案,學生選課的情況,學生每學期的綜合測評,教師檔案,教師工作量等等。具體考核方法根據自己了解的實際情況處理。
假設此次設計的教務系統是整個學生管理系統數據庫中的一部分,整個系統至少還包括學籍管理等其他子系統。
在初期設計時,先關注與教務系統有關的數據。在完成對教務管理系統的建模后再對整個系統進行合并,總終得到整個系統的設計方案。
一、需求分析
1、根據分析可以畫出該教務管理系統的數據流圖:
學生 選課 上課 考試 測評 選課單 允許考試 成績單 老師檔案 課程簡介 教室安排 試卷 考場安排 測評報告單 學生名單 教師 選定教材 申報 課表
2、數據字典
數據結構:學生
含義說明:是教務管理系統的一個核心數據結構,定義了學生的有關信息
組成:學號、姓名
數據項:學號
含義說明:唯一標識每一個學生
別名:學生編號 類型:字符型 長度:9位
取值范圍:190000000 – 999999999
取值含義:前四位表明學生所在年級,后五位安順序編號
數據項:姓名
含義說明:表示學生的姓名 類型:字符型 長度:10位
取值范圍:任意字符
數據結構:教師
含義說明:教務管理系統的核心數據結構之一,定義了教師的有關信息 組成:教師號,教師姓名
數據項:教師號
含義說明:教師的編號 類型:字符型 長度:5位
取值范圍:10000 – 99999
數據項:教師姓名
含義說明:教師的姓名 類型:字符型 長度:10位
取值范圍:任意合法的字符
數據結構:課程
含義說明:教務管理系統的核心數據結構之一,定義了課程的有關信息 組成:課程號,課程名,課程描述,教師,教室,教科書,學分
數據項:課程號
含義說明:課程的編號 類型:字符型 長度:4
取值范圍:0001 – 9999
數據項:課序號
含義說明:對于同一課程,由不同老師教授,用課序號來區分 類型:字符型 長度:2
取值范圍:01 – 99
數據項:課程名
含義說明:課程的名稱 類型:字符型 長度:10
取值范圍:任意合法的字符
數據項:課程描述
含義說明:課程內容的基本描述 類型:字符型 長度:200
取值范圍:任意合法字符
數據項:教科書
含義說明:課程所用的教科書 類型:字符型 長度:20
取值范圍:任意合法字符
數據項:學分
含義說明:課程的學分 類型:整型 長度:1
取值范圍:1-9
數據結構:教室
含義說明:上課所用的教室
組成:教室編號,教室地址,教室容量
數據項:教室編號
含義說明:教室的編號 類型:字符 長度:5
取值范圍:00001-99999
數據項:教室地址
含義說明:標明教室的地址 類型:字符 長度:30
取值范圍:任意合法的字符
數據項:教室容量
含義說明:教室的容納學生的數量 類型:整型
取值范圍:正整數
數據結構:選課記錄
含義說明:紀錄學生選課的紀錄 組成:學生,課程,成績
數據項:成績
含義說明:選課學生本學期的成績
類型:浮點數
范圍:0.0 – 100.0
處理過程:分配教室
說明:為所有課程分配上課教室 輸入:課程,教室 輸出:教室安排
處理:學期課程決定后,要為每個課程安排上課地點,要求上課的地點不能沖突且上課人數不能超過教室容量。
處理過程:分配考場
說明:在考試日期,為所有課程分配考場
輸入:課程,教室
輸出:考場安排
處理:為每個課程安排考場,考試時間和地點不能沖突且考試人數不能超過考場容量。
數據存儲:成績單
說明:記錄學生本學期所有課程成績 流入數據流:學生所有的選課記錄 流出數據流:學生的成績單 數據量:由學生的人數決定 存取方式:隨機存取
二、概念結構設計
1、根據需求分析畫出E-R圖:
選修 學生 教師 課程 m n 講授 1 n 教科書 n
成績 教室 開設 1 n
2、根據E-R圖寫出各個實體的屬性描述
學生:{學號,姓名}
課程:{課程號,課程名,課程描述,學分} 教師:{教師號,教師名,課程數} 教室:{教室編號,地址,容量}
3、視圖的集成
假設在學生管理系統的學籍管理系統中存在另一個學生實體,其中還包括以下信息:性別,所屬專業,所屬班級。為了使兩個實體保持一致,對兩個實體取并集得到新的學生實體: 學生:{學號,姓名,性別,專業,班級}
三、邏輯結構設計
1、由E-R圖向數據模型的轉換
一個實體型轉換為一個關系模式。實體的屬性就是關系的屬性。實體的碼就是關系的碼。所以,E-R圖中的屬性描述可直接轉換為相應的關系模式。
2、對于剩余的一對多和多對多聯系可以如下表示
學生-課程:{學號,課程號,課序號,成績} 課程-教師:{課程號,課序號,教師號} 課程-教科書:{課程號,課序號,教科書}
教室-課程:{教室號,時間,課程號,課序號}
其中 課程-教師 與 課程-教科書 具有相同的主碼,可以合并成一個關系 教學:{課程號,課序號,教師號,教科書}
最后得到的關系模式為
學生:{學號,姓名,性別,專業,班級} 課程:{課程號,課程名,課程描述,學分} 教師:{教師號,教師名,課程數} 教室:{教室號,地址,容量}
學生-課程:{學號,課程號,課序號,成績} 教學:{課程號,課序號,教師號,教科書} 教室-課程:{教室號,時間,課程號,課序號}
3、用戶外模式
根據需求,為計算綜合測評增加一個外模式,因為綜合測評只在學期末進行,查詢次數不多,所以沒有必要用冗余的方法來提高查詢效率,只需要建立一個外模式視圖即可。
測評{學號,學生姓名,平均成績}
4、根據設計寫出相應的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
--級聯更新
ON DELETE CASCADE,--級聯刪除
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
為了符合數據的參照完整性約束,避免學生選課的時候選擇一個不存在的課程號-課序號組,增加一個外鍵約束。ALTER TABLE sc
ADD CONSTRAINT fk_sc_tech FOREIGN KEY(Cno,SCno)REFERENCES tech(Cno,SCno)
ON UPDATE CASCADE
ON DELETE CASCADE
為了在插入一個新課程時能級聯更新教師的工作量,增加一個觸發器。此任務也可以通過建立一個外模式視圖來動態統計,為了練習的目的這里采用了觸發器
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 關于課程容量:如何保證選課的學生數量不超過教室的容量?
初步解決辦法是:在學生選課時建立暫時不考慮容量問題,都加滲透一個臨時的SC表中。然后,在選課結束后將未超額的記錄直接加滲透SC表,超額的課程進行抽簽,將命中部分學生的選課記錄插入SC表,直到人數符合課程容量的要求為止。
抽簽的功能較適合用頂層的高級語言來實現。在選課結束后,選超額課程的學生需登陸選課系統進行抽簽,抽簽的過程可以使用概率算法,如果抽中,系統再將選課記錄插入SC表,否則就從臨時表中刪除。所以,在數據庫系統中,沒有對SC表的插滲入滲出操作進行約束。
本文來自CSDN博客,轉載請標明出處: http://blog.csdn.net/lesky/archive/2006/12/25/1460 966.aspx
數據庫設計---教務管理系統
2009年12月03日 星期四 11:04 P.M.題目要求:
設計一個教務管理系統。要求管理包括:學生的檔案,學生選課的情況,學生每學期的綜合測評,教師檔案,教師工作量等等。具體考核方法根據自己了解的實際情況處理。
假設此次設計的教務系統是整個學生管理系統數據庫中的一部分,整個系統至少還包括學籍管理等其他子系統。
在初期設計時,先關注與教務系統有關的數據。在完成對教務管理系統的建模后再對整個系統進行合并,總終得到整個系統的設計方案。
一、需求分析
1、根據分析可以畫出該教務管理系統的數據流圖: 學生
選課
上課
考試
測評
選課單
允許考試
成績單
老師檔案
課程簡介
教室安排
試卷
考場安排
測評報告單 學生名單
教師
選定教材
申報
課表
2、數據字典 數據結構:學生
含義說明:是教務管理系統的一個核心數據結構,定義了學生的有關信息 組成:學號、姓名 數據項:學號
含義說明:唯一標識每一個學生 別名:學生編號 類型:字符型 長度:9位
取值范圍:190000000 – 999999999
取值含義:前四位表明學生所在年級,后五位安順序編號 數據項:姓名
含義說明:表示學生的姓名 類型:字符型 長度:10位 取值范圍:任意字符
數據結構:教師 含義說明:教務管理系統的核心數據結構之一,定義了教師的有關信息
組成:教師號,教師姓名
數據項:教師號
含義說明:教師的編號
類型:字符型
長度:5位
取值范圍:10000 – 99999
數據項:教師姓名
含義說明:教師的姓名
類型:字符型
長度:10位
取值范圍:任意合法的字符
數據結構:課程
含義說明:教務管理系統的核心數據結構之一,定義了課程的有關信息 組成:課程號,課程名,課程描述,教師,教室,教科書,學分
數據項:課程號 含義說明:課程的編號 類型:字符型 長度:4 取值范圍:0001 – 9999 數據項:課序號
含義說明:對于同一課程,由不同老師教授,用課序號來區分 類型:字符型 長度:2
取值范圍:01 – 99 數據項:課程名 含義說明:課程的名稱 類型:字符型 長度:10
取值范圍:任意合法的字符 數據項:課程描述
含義說明:課程內容的基本描述 類型:字符型 長度:200
取值范圍:任意合法字符 數據項:教科書
含義說明:課程所用的教科書 類型:字符型 長度:20
取值范圍:任意合法字符 數據項:學分 含義說明:課程的學分 類型:整型 長度:1 取值范圍:1-9 數據結構:教室
含義說明:上課所用的教室
組成:教室編號,教室地址,教室容量 數據項:教室編號 含義說明:教室的編號 類型:字符 長度:5
取值范圍:00001-99999 數據項:教室地址 含義說明:標明教室的地址 類型:字符 長度:30
取值范圍:任意合法的字符 數據項:教室容量
含義說明:教室的容納學生的數量 類型:整型 取值范圍:正整數 數據結構:選課記錄
含義說明:紀錄學生選課的紀錄 組成:學生,課程,成績
數據項:成績
含義說明:選課學生本學期的成績
類型:浮點數 范圍:0.0 – 100.0 處理過程:分配教室
說明:為所有課程分配上課教室 輸入:課程,教室 輸出:教室安排
處理:學期課程決定后,要為每個課程安排上課地點,要求上課的地點不能沖突且上課人數不能超過教室容量。
處理過程:分配考場
說明:在考試日期,為所有課程分配考場
輸入:課程,教室
輸出:考場安排
處理:為每個課程安排考場,考試時間和地點不能沖突且考試人數不能超過考場容量。
數據存儲:成績單
說明:記錄學生本學期所有課程成績 流入數據流:學生所有的選課記錄 流出數據流:學生的成績單 數據量:由學生的人數決定 存取方式:隨機存取
二、概念結構設計
1、根據需求分析畫出E-R圖:
選修
學生
教師
課程
m n 講授 n 教科書
n 成績
教室
開設 n
2、根據E-R圖寫出各個實體的屬性描述 學生:{學號,姓名}
課程:{課程號,課程名,課程描述,學分} 教師:{教師號,教師名,課程數} 教室:{教室編號,地址,容量}
3、視圖的集成
假設在學生管理系統的學籍管理系統中存在另一個學生實體,其中還包括以下信息:性別,所屬專業,所屬班級。為了使兩個實體保持一致,對兩個實體取并集得到新的學生實體: 學生:{學號,姓名,性別,專業,班級}
三、邏輯結構設計
1、由E-R圖向數據模型的轉換
一個實體型轉換為一個關系模式。實體的屬性就是關系的屬性。實體的碼就是關系的碼。所以,E-R圖中的屬性描述可直接轉換為相應的關系模式。
2、對于剩余的一對多和多對多聯系可以如下表示 學生-課程:{學號,課程號,課序號,成績} 課程-教師:{課程號,課序號,教師號} 課程-教科書:{課程號,課序號,教科書} 教室-課程:{教室號,時間,課程號,課序號}
其中 課程-教師 與 課程-教科書 具有相同的主碼,可以合并成一個關系 教學:{課程號,課序號,教師號,教科書} 最后得到的關系模式為
學生:{學號,姓名,性別,專業,班級} 課程:{課程號,課程名,課程描述,學分} 教師:{教師號,教師名,課程數} 教室:{教室號,地址,容量}
學生-課程:{學號,課程號,課序號,成績} 教學:{課程號,課序號,教師號,教科書} 教室-課程:{教室號,時間,課程號,課序號}
3、用戶外模式
根據需求,為計算綜合測評增加一個外模式,因為綜合測評只在學期末進行,查詢次數不多,所以沒有必要用冗余的方法來提高查詢效率,只需要建立一個外模式視圖即可。測評{學號,學生姓名,平均成績}
4、根據設計寫出相應的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--級聯更新 ON DELETE CASCADE,--級聯刪除 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
為了符合數據的參照完整性約束,避免學生選課的時候選擇一個不存在的課程號-課序號組,增加一個外鍵約束。ALTER TABLE sc
ADD CONSTRAINT fk_sc_tech FOREIGN KEY(Cno,SCno)REFERENCES tech(Cno,SCno)ON UPDATE CASCADE ON DELETE CASCADE
為了在插入一個新課程時能級聯更新教師的工作量,增加一個觸發器。此任務也可以通過建立一個外模式視圖來動態統計,為了練習的目的這里采用了觸發器 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 關于課程容量:如何保證選課的學生數量不超過教室的容量?
初步解決辦法是:在學生選課時建立暫時不考慮容量問題,都加入一個臨時的SC表中。然后,在選課結束后將未超額的記錄直接加入SC表,超額的課程進行抽簽,將命中部分學生的選課記錄插入SC表,直到人數符合課程容量的要求為止。
抽簽的功能較適合用頂層的高級語言來實現。在選課結束后,選超額課程的學生需登陸選課系統進行抽簽,抽簽的過程可以使用概率算法,如果抽中,系統再將選課記錄插入SC表,否則就從臨時表中刪除。
所以,在數據庫系統中,沒有對SC表的插入操作進行約束。
第三篇:數據庫實習報告-教務管理系統.
數據庫系統課程設計 學生姓名: 班 學 號: 指導教師:
教務管理系統
1、需求分析 1.1 信息要求: 教務管理系統涉及的實體有: ●教師——工作證號、姓名、職稱、電話等;●學生——學號、姓名、性別、出生年月等;●班級——班號、最低總學分等;
●系——系代號、系名和系辦公室電話等;●課程——課序號、課名、學分、上課時間及名額等。這些實體之間的聯系如下: ●每個學生都屬于一個班,每個班都屬于一個系,每個教師也都屬于一個系。●每個班的班主任都由一名教師擔任。
●一名教師可以教多門課,一門課可以有幾位主講老師,但不同老師講的同一門課其課序號是不同 的(課序號是唯一的。
●一名同學可以選多門課,一門課可被若干同學選中。●一名同學選中的課若已學完,應該記錄有相應成績。
●本單位學生、教師都有重名,工作證號、學號可以作為標識。1.2 處理要求: 教學系統主要提供數據維護、選課和信息查詢。其中常見的查詢有:系統中各對象的基本信息查詢。查 詢指定班、系的學生信息(名單、人數等。查詢學生的成績、學分情況。查詢教師授課情況和學生選課情 況??。
1.3 安全性與完整性要求: ●安全性要求: 1.系統應設置訪問用戶的標識以鑒別是否是合法用戶, 并要求合法用戶設置其密碼, 保證用戶身份不被 盜用;2.系統應對不同的數據設置不同的訪問級別,限制訪問用戶可查詢和處理數據的類別和內容;
3.系統應對不同用戶設置不同的權限,區分不同的用戶,如學生,教師,系統管理員。
●完整性要求: 1.各種信息記錄的完整性,關鍵信息記錄內容不能為空;2.各種數據間相互的聯系的正確性;3.相同的數據在不同記錄中的一致性。1.4 系統功能的設計和劃分
根據如上得到的用戶需求,我們將本系統按照所完成的功能分成以下幾部分: 第一部分:用戶管理部分 第二部分:管理員管理部分 各部分完成的功能如下:
1、用戶管理部分
1、處理用戶注冊
2、處理用戶登錄
3、用戶可以查詢學生信息。
4、用戶可以查詢快件信息。
5、用戶可以提交與查詢報修信息。
6、用戶可以插入與刪除用戶自己的離返校信息。
7、用戶可以修改用戶自己密碼。
2、管理員管理部分
1、處理管理員登錄
2、管理員可以查詢學生信息。
3、管理員可以發布與更新快件信息。
4、管理員可以插入、修改與查詢報修信息。
5、管理員可以插入與查詢學生夜歸信息。
6、管理員可以查詢在校與離校學生信息。
7、管理員可以修改管理員密碼。
2、概念設計(1 概念模型(E-R 圖 :
選修聯系的分 E-R 圖 負責聯系的分 E-R 圖
授課聯系的分 E-R 圖
教務管理系統的總 E-R 圖(2 數據字典 :
(3數據流圖
查詢 課程信息 課程信息表 課程信息 查詢 課 程 成績信息 信 息 教師 學 生 選課信息信 息 查詢學 生信息 修改教 師信息 教 師 信 息 系 信 息 課 程 選課信息 信 息 學生 學 生 信 息 選課信息 修改學 教 師 信 息 生信息 查詢教 師信息 選課信息 選課 已 選 課 信 息 成績信息 選 課 表 登記 成績 成 績 信 息 查詢 選課信息 選課信息 查詢 系 信 息 班 級 信 息 學生信息 學生信息表 教師信息 教師信息表 學生信息 教師信息 班 級 信 息 班級信息 查詢 系信息 班級信息表 系信息表 總 數 據 流 圖 班級信息 查詢 系信息
3、邏輯結構設計
-R 圖向關系模型的轉換(關系的碼用下橫線表出)教師(工作證號,姓名,職稱,電話,系代號)代碼表示:Teacher(Tno, Tname, Title, Tel, Dno 此為“教師”實體對應的關系模式。其中 1:n 聯系“工作”與此關系模式合并,Dno 為外碼。存在的函數 依賴為 Tno →(Tname,Title,Tel,Dno),且不存在多值依賴,所以滿足 4NF。學生(學號,姓名,性別,出生年月,班號)代碼表示:Student(Sno, Sname, Ssex, Sbirth, Class 此為“學生”實體對應的關系模式。其中 1:n 聯系“屬于”與此關系模式合并,Class 為外碼。存在的函數 依賴為 Sno →(Sname,Ssex,Sbirth,Class),且不存在多值依賴,所以滿足 4NF。系(系代號,系名,系辦公室電話)代碼表示:Department(Dno, Dname, Dphone 此為“系”實體對應的關系模式。存在的函數依賴為 Dno →(Dname,Dphone),且不存在多值依賴,所 以滿足 4NF。課程(課序號,課名,學分,上課時間,名額,工作證號)代碼表示:Course(Cno, Cname, Credit, Ctime, Cnum, Tno 此為“課程”實體對應的關系模式。其中 1:n 聯系“授課”與此關系模式合并,Tno 為外碼。存在的函數 依賴為 Cno →(Cname,Credit,Ctime,Cnum,Tno),且不存在多值依賴,所以滿足 4NF。選課(學號,課序號,成績)代碼表示:SC(Sno, Cno, Grade 此為 m: 聯系 n “選修” 所對應的關系模式。Sno 和 Cno 均為外部碼。存在的函數依賴為完全函數依賴(Sno,Cno)→ Grade,且不存在多值依賴,所以滿足 4NF。班級(班號,最低總學分,工作證號,系代號)代碼表示:Class(Class, TotalCredit, Tno, Dno 此為“班級”實體對應的關系模式。其中 1:n 聯系“屬于”和 1:1 聯系“負責”與此關系模式合并,Tno 和 Dno 為外碼。該關系模式中存在傳遞函數依賴:Class → Tno,(Tno Class,Tno → Dno,可得 Class → Dno,故 Class 不屬于
3NF。解決方法是將其模式分解為:Class(Class, TotalCredit, Tno 和 T-D(Tno, Dno,分解后的關系模式滿足 4NF,并且 T-D 與 Teacher 的碼相同,可合并為同一模式。但 是考慮到系統要經常進行系的學生信息查詢,此時就不得不對 Student、Class 和 Teacher 三個表進行連接 查詢,而連接是影響查詢效率的主要原因,所以取消對 Class 的模式分解。此時 Class 關系模式滿足 2NF。
設計用戶子模式 為了方便程序查詢,建立了如下用戶視圖:
1、某系的學生信息視圖(學號,姓名,性別,出生年月,班號)
2、某系的教師信息視圖(工作證號,教師姓名,職稱,電話,負責班級)
3、某課程的學生成績單(學號,姓名,班級,成績)
4、教師授課信息表(工作證號,教師姓名,職稱,教授課程,學分,上課時間)
5、學生已選課表(課序號,課名,學分,授課教師,上課時間,名額)
4、物理設計 4.1 選擇存取方法
1、數據庫管理系統自動在每個表的主碼上建立索引,通常為 B + 樹索引。
2、在 Student 表 Sname 列上建立 Stu_name 索引,因為查詢操作很多都使通過學生姓名進行的。
3、在 Teacher 表 Tname 列上建立 Tea_name 索引,因為查詢操作很多都使通過教師姓名進行的。4.2 確定數據庫的存儲結構
1、為了提高系統性能,根據具體情況將數據的易變部分與穩定部分、經常存取部分和存取頻率較低部 分分開存放。
2、DBMS 產品一般都提供了一些系統配置變量、存儲分配參數,根據應用環境確定這些參數值,并且 在系統運行時還要根據系統實際運行情況進行調整,以使系統性能最佳。4.3 評價物理結構 根據所選用的 DBMS,如 SQL Server 2000,從定量估算各種方案的存儲空間、存取時間和維護代價入 手,對估算結果進行權衡、比較,選擇一個較優的合理的物理結構。
5、系統實施 編寫關系模式,載入數據。分期分批地組織數據入庫,先輸入小批量數據做調試用,待試運行基本合 格后,再大批量輸入數據,逐步增加數據量,逐步完成運行評價。需要注意的是,要首先調試運行 DBMS 的 恢復功能,做好數據庫的轉儲和恢復工作?;?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;/*查詢某個系的學生信息*/ 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;/*查詢班級的學生信息*/ SELECT Sno, Sname, Ssex, Birth FROM Student WHERE Class = '114072';SELECT COUNT(* FROM Student WHERE Class='114072';/*查詢學生的成績、學分*/ 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、針對不同的應用要求制定不同的轉儲計劃,一旦發生故障盡快將數據庫恢復到某種一致的狀態,并
盡可能減少對數據庫的破壞;
2、根據實際情況修改數據庫原有的安全性、完整性控制;
3、在數據庫運行過程中,監督系統運行,對監測數據進行分析,找出改進系統性能的方法;
4、數據庫運行一段時間后,由于記錄不斷增、刪、改,會使數據庫的物理存儲情況變壞,降低數據的 存取效率,數據庫性能下降。這時應按原設計要求重新安排存儲位置、回收垃圾、減少指針鏈等,提高系 統性能。當原有的數據庫設計不能滿足新的需求,需要重構造數據庫,調整數據庫的模式和內模式。
7、用戶手冊(<五號宋體>,具體內容:使用、操作說明。)
8、附錄(<五號宋體>,源程序清單和結果:源程序必須有注釋,以及必要的測試數據和運行結果數據,提倡 用英文描述。)
第四篇:數據庫課程設計 計算機教務管理系統
中北大學
數據庫課程設計
說 明 書
學 院、系: 專
業: 學 生 姓 名: 設 計 題 目:
李翰超
軟件學院 軟件工程
學 號: 1221010619
計算機等級考試教務管理系統
起 迄 日 期: 2014年5月26日-2014年6月20日 指 導 教 師:
2012 年 6月 21 日.引言
隨著全國計算機等級考試的全面推廣,我市學生每年參加兩次全國計算機等級考試,考試管理工作量相當大。但是靠人工的方式管理等級考試相關的信息,這種管理方式存在著許多缺點,如:工作效率低、統計容易出錯,另外時間一長,將產生大量的文件和數據,這對于查找、更新和維護都帶來了不少的困難。所以開發一個計算機等級考試成績管理系統是非常必要的。2.需求分析
計算機等級考試分為若干種類:如:計算機一級VB、C語言;計算機二級VB、C語言、C++;計算機三級數據庫、網絡技術;計算機四級數據庫工程師、網絡工程師。對于每個種類,考試分為筆試和機試.計算機等級考試工作過程如下:每個考生在報名時,登記姓名、性別、報考種類、學校、身份證號、個人照片等??荚囖k公室根據考生報考的種類,以及所在的考區來安排考場,編排準考證號碼,打印準考證。考生參加考試后,登記每個考生每項的成績,并計算出每個考生筆試和機試的成績是否都>=60分。對機試和筆試都>=60分的考生,按所在考區打印通過證書,同一考區按準考證號碼順序打印出通過證書,分發給考生;計算機四級只要筆試成績>=60則通過;打印成績表供考試辦公室留存、備查。
開發計算機等級考試成績管理系統,有計算機輔助實現上述過程,代替人工操作,節省人力、時間,提高工作效率。
2.1 處理對象(1)用戶帳號密碼管理 對考點代碼,考點名稱進行管理 用戶與密碼進行管理(2)報名管理功能模塊
報各庫錄入(姓名不能不空,之間不能有空格)增加、刪除、修改、瀏覽(3)準考證管理模塊
準考證生成規則:xxx+yy+zz+kk 其中XXX為考點代碼;YY為語言代碼,XX為考場號,KK為座位號(4)考務管理功能模塊
考生信息查詢、瀏覽 成績管理模塊
成績數據錄入、接收
成績合成(總成績=筆試成績*0.6+上機成績*0.4),按大于或等于60合格
2.2數據字典:
考生信息表(考生主鍵(主鍵),姓名,性別,出生年份,民族,身份證號,聯系地址,聯系電話,備注)
準考證表(準考證號主鍵,準考證號)
成績表(成績表主鍵,筆試成績,上機成績,總成績)
級別語言代碼表(級別語言代碼主鍵,級別語言代碼,級別,語言)考生考點信息表(考生考點主鍵,考點代碼,考點名稱,)用戶帳號管理(用戶帳號主鍵,用戶名,密碼)
信息操作表(考生主鍵(主鍵),準考證號主鍵, 級別語言代碼主鍵,考生考點主鍵,用戶帳號主鍵)
3.E-R圖
4.關系模型
考生信息表(考生主鍵(主鍵),姓名,性別,出生年份,民族,身份證號,聯系地址,聯系電話,備注)
準考證表(準考證號主鍵,準考證號)
成績表(成績表主鍵,筆試成績,上機成績,總成績)
級別語言代碼表(級別語言代碼主鍵,級別語言代碼,級別,語言)
考生考點信息表(考生考點主鍵,考點代碼,考點名稱,)用戶帳號管理(用戶帳號主鍵,用戶名,密碼)
信息操作表(考生主鍵(主鍵),準考證號主鍵, 級別語言代碼主鍵,考生考點主鍵,用戶帳號主鍵)
其模式定義:
見附件:模式定義。
5.物理設計
本數據庫共有5張表組成,其中t_manage表為管理表,而其他4張表:t_grade,t_information,t_level,t_regist都為基本表,當要查詢所需要的信息時,就用連接查詢將管理表和基本表連接在一起,從而看到想看到信息。
6.數據庫實施
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.系統調試
通過sql語句對其進行調試,以測試其正確性,如圖1,2,3,4,5
圖 1 6
圖 2
圖 3 7
圖 4 用自然連接查詢:
圖 5
8.心得體會
本次課程設計主要設計一個計算機管理系統,我的大體思路就是將基本信息錄入到基本表當中,并保證沒有重復屬性,然后設計一個管理表,讓其它基本表參照這個管理表,這個管理表當中只有各表主鍵,需要查看信息時,就將兩表連接。。
這次課設我覺得有兩個難點,一個是表間的參照,另一個是約束條件的設置,尤其是約束條件一定要充分考慮到,還有當有那種范圍值的約束時要在建表后要用alter修改,而不是在定義時直接約束。
最后一點是關于主鍵的問題,主鍵最好別用學號什么的,最好應該用連續的、無意義的數字,create sequence之后,每加一個元組就用一次nextval,這樣可以讓電腦自動排號。
第五篇:教務管理系統 數據庫實例設計
第17章 數據庫系統設計實例
本章以一個考務管理系統的設計過程為例,介紹在VB 6.0+SQL Server 2000環境中開發數據庫系統的一般方法。
17.1 系統概述
17.1.1 系統功能
本系統用于從考生報名、產生準考證到錄取考生和打印成績單即對考生考試和錄取全過程進行管理的考務系統,包含主要功能如下:
? ? ? ? ? ? 考生報名,按報名順序產生報名號
產生準考生號和以緊湊方式打印準考證 輸入考生考試成績和輸入錄取合格標準 根據合格標準錄取上線考生 打印考生成績單和考生錄取通知書 設置系統用戶和系統初始化
17.1.2 設計技巧
本系統設計中的一些技巧如下: ? ? ? ? 公共模塊設計(參見17.4節的Module1.Bas模塊)SQL Server數據庫設計(參見17.3節)VB菜單設計方法(包括菜單項的有效性設計,對于“一般操作員”,使若干菜單項無效。參見menu多文檔窗體設計過程)統一的數據編輯設計方法:以ksb表為例進行說明:為了編輯其記錄,設計了edks窗體,在其中的DataGrid數據網格控件中顯示所有已輸入的考生記錄。用戶可以先通過“設置條件”框架查找到滿足指定條件的考生記錄,然后選擇“修改”或“刪除”命令按鈕進行考生記錄的修改或刪除,或者選擇“添加”命令按鈕輸入新的考生記錄。? ? ? VB報表設計方法(包括使用Data Report設計器和PrintForm方法)圖像數據的存取方法(參見edks窗體設計過程)事件編程技術:一些數據編輯窗體(如edks等窗體)上有兩個事件過程即Load和Activate,它們的執行過程是:在啟動本窗體時先執行Load(僅執行一次)事件過程,