數(shù)據(jù)庫設(shè)計(jì)實(shí)例 教務(wù)管理系統(tǒng)
《數(shù)據(jù)庫設(shè)計(jì)實(shí)例 教務(wù)管理系統(tǒng)》由會員分享,可在線閱讀,更多相關(guān)《數(shù)據(jù)庫設(shè)計(jì)實(shí)例 教務(wù)管理系統(tǒng)(9頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、數(shù)據(jù)庫實(shí)驗(yàn)七數(shù)據(jù)庫設(shè)計(jì) 題目要求: 設(shè)計(jì)一個(gè)教務(wù)管理系統(tǒng)。要求管理包括:學(xué)生的檔案,學(xué)生選課的情況,學(xué) 生每學(xué)期的綜合測評,教師檔案,教師工作量等等。具體考核方法根據(jù)自己了解 的實(shí)際情況處理。 假設(shè)此次設(shè)計(jì)的教務(wù)系統(tǒng)是整個(gè)學(xué)生管理系統(tǒng)數(shù)據(jù)庫中的一部分,整個(gè)系統(tǒng) 至少還包括學(xué)籍管理等其他子系統(tǒng)。 在初期設(shè)計(jì)時(shí),先關(guān)注與教務(wù)系統(tǒng)有關(guān)的數(shù)據(jù)。在完成對教務(wù)管理系統(tǒng)的建 模后再對整個(gè)系統(tǒng)進(jìn)行合并,總終得到整個(gè)系統(tǒng)的設(shè)計(jì)方案。 一、需求分析 1、 根據(jù)分析可以畫出該教務(wù)管理系統(tǒng)的數(shù)據(jù)流 圖: 學(xué)生 選課 上課 考試 測評 選課單 允許考試 成績單 老師檔案 課程簡介 教室安排
2、 試卷 考場安排 測評報(bào)告單 學(xué)生名單 教師 選定教材 申報(bào) 課表 2、 數(shù)據(jù)字典 數(shù)據(jù)結(jié)構(gòu):學(xué)生(相當(dāng)于實(shí)體) 含義說明:是教務(wù)管理系統(tǒng)的一個(gè)核心數(shù)據(jù)結(jié) 構(gòu),定義了學(xué)生的有關(guān)信息 組成:學(xué)號、姓名 數(shù)據(jù)項(xiàng):學(xué)號(相當(dāng)于屬性) 含義說明:唯一標(biāo)識每一個(gè)學(xué)生 別名:學(xué)生編號 類型:字符型 長度:9位 取值范圍:190000000 - 999999999 取值含義:前四位表明學(xué)生所在年級,后五位 安順序編號 數(shù)據(jù)項(xiàng):姓名 含義說明:表示學(xué)生的姓名 類型:字符型 長度:10位 取值范圍:任意字符 數(shù)據(jù)結(jié)構(gòu):教師 含義說明:教務(wù)管理系統(tǒng)的核心數(shù)據(jù)結(jié)構(gòu)之一,定義了教
3、師的有關(guān)信息 組成:教師號,教師姓名 數(shù)據(jù)項(xiàng):教師號 含義說明:教師的編號 類型:字符型 長度:5位 取值范圍:10000 - 99999 數(shù)據(jù)項(xiàng):教師姓名 含義說明:教師的姓名 類型:字符型 長度:10位 取值范圍:任意合法的字符 數(shù)據(jù)結(jié)構(gòu):課程 含義說明:教務(wù)管理系統(tǒng)的核心數(shù)據(jù)結(jié)構(gòu)之 一,定義了課程的有關(guān)信息 組成:課程號,課程名,課程描述,教師,教 室,教科書,學(xué)分 數(shù)據(jù)項(xiàng):課程號 含義說明:課程的編號 類型:字符型 長度:4 取值范圍:0001 - 9999 數(shù)據(jù)項(xiàng):課序號 含義說明:對于同一課程,由不同老師教授, 用課序號來區(qū)分 類型:字符型
4、 長度:2 取值范圍:01 - 99 數(shù)據(jù)項(xiàng):課程名 含義說明:課程的名稱 類型:字符型 長度:10 取值范圍:任意合法的字符 數(shù)據(jù)項(xiàng):課程描述 含義說明:課程內(nèi)容的基本描述 類型:字符型 長度:200 取值范圍:任意合法字符 數(shù)據(jù)項(xiàng):教科書 含義說明:課程所用的教科書 類型:字符型 長度:20 取值范圍:任意合法字符 數(shù)據(jù)項(xiàng):學(xué)分 含義說明:課程的學(xué)分 類型:整型 長度:1 取值范圍:1-9 數(shù)據(jù)結(jié)構(gòu):教室 含義說明:上課所用的教室 組成:教室編號,教室地址,教室容量 數(shù)據(jù)項(xiàng):教室編號 含義說明:教室的編號 類型:字符 長度:5 取值范圍:00001-99999 數(shù)據(jù)項(xiàng):教室
5、地址 含義說明:標(biāo)明教室的地址 類型:字符 長度:30 取值范圍:任意合法的字符 數(shù)據(jù)項(xiàng):教室容量 含義說明:教室的容納學(xué)生的數(shù)量 類型:整型 取值范圍:正整數(shù) 數(shù)據(jù)結(jié)構(gòu):選課記錄 含義說明:紀(jì)錄學(xué)生選課的紀(jì)錄 組成:學(xué)生,課程,成績 數(shù)據(jù)項(xiàng):成績 含義說明:選課學(xué)生本學(xué)期的成績 類型:浮點(diǎn)數(shù) 范圍:0.0 -100.0 處理過程:分配教室 說明:為所有課程分配上課教室 輸入:課程,教室 輸出:教室安排 處理:學(xué)期課程決定后,要為每個(gè)課程安排上 課地點(diǎn),要求上課的地點(diǎn)不能沖突且上課人數(shù) 不能超過教室容量。 處理過程:分配考場 說明:在考試日期,為所有課程分配考場 輸入
6、:課程,教室 輸出:考場安排 處理:為每個(gè)課程安排考場,考試時(shí)間和地點(diǎn) 不能沖突且考試人數(shù)不能超過考場容量。 數(shù)據(jù)存儲:成績單 說明:記錄學(xué)生本學(xué)期所有課程成績 流入數(shù)據(jù)流:學(xué)生所有的選課記錄 流出數(shù)據(jù)流:學(xué)生的成績單 數(shù)據(jù)量:由學(xué)生的人數(shù)決定 存取方式:隨機(jī)存取 二、概念結(jié)構(gòu)設(shè)計(jì) 1、根據(jù)需求分析畫出E-R圖: 選修 學(xué)生 教師 課程 m n 講授 1 n 教科書 n 成績 教室 開設(shè) 1 n 2、根據(jù)E-R圖寫出各個(gè)實(shí)體的屬性描述 學(xué)生:{學(xué)號,姓名} 課程:{課程號,課程名,課程描述,學(xué)分} 教師:{教師號,教師名,課程數(shù)} 教室:{
7、教室編號,地址,容量} 3、視圖的集成 假設(shè)在學(xué)生管理系統(tǒng)的學(xué)籍管理系統(tǒng)中存在另 一個(gè)學(xué)生實(shí)體,其中還包括以下信息:性別, 所屬專業(yè),所屬班級。為了使兩個(gè)實(shí)體保持一 致,對兩個(gè)實(shí)體取并集得到新的學(xué)生實(shí)體: 學(xué)生:{學(xué)號,姓名,性別,專業(yè),班級} 三、邏輯結(jié)構(gòu)設(shè)計(jì) 1、 由E-R圖向數(shù)據(jù)模型的轉(zhuǎn)換 一個(gè)實(shí)體型轉(zhuǎn)換為一個(gè)關(guān)系模式。實(shí)體的屬性 就是關(guān)系的屬性。實(shí)體的碼就是關(guān)系的碼。所 以,E-R圖中的屬性描述可直接轉(zhuǎn)換為相應(yīng)的 關(guān)系模式。 2、 對于剩余的一對多和多對多聯(lián)系可以如下表示 學(xué)生-課程:{學(xué)號,課程號,課序號,成績} 課程-教師:{課程號,課序號,教師號} 課程-教科書:{課
8、程號,課序號,教科書} 教室-課程:{教室號,時(shí)間,課程號,課序號} 其中課程-教師與課程-教科書具有相同的 主碼,可以合并成一個(gè)關(guān)系 教學(xué):{課程號,課序號,教師號,教科書} 最后得到的關(guān)系模式為 學(xué)生:{學(xué)號,姓名,性別,專業(yè),班級} 課程:{課程號,課程名,課程描述,學(xué)分} 教師:{教師號,教師名,課程數(shù)} 教室:{教室號,地址,容量} 學(xué)生-課程:{學(xué)號,課程號,課序號,成績} 教學(xué):{課程號,課序號,教師號,教科書} 教室-課程:{教室號,時(shí)間,課程號,課序號} 3、 用戶外模式 根據(jù)需求,為計(jì)算綜合測評增加一個(gè)外模式, 因?yàn)榫C合測評只在學(xué)期末進(jìn)行,查詢次數(shù)不多, 所以沒有必要用
9、冗余的方法來提高查詢效率, 只需要建立一個(gè)外模式視圖即可。 測評{學(xué)號,學(xué)生姓名,平均成績} 4、 根據(jù)設(shè)計(jì)寫出相應(yīng)的SQL語句 CREATE TABLE student ( Sno VARCHAR(9) CONSTRAINT pk_student PRIMARY KEY, Sname VARCHAR(10) NOT NULL, Sex VARCHAR(l) NOT NULL, Major VARCHAR(10) NOT NULL, Class VARCHAR(10) NOT NULL, CHECK (Sex = f OR Sex = 'm') ) CREATE T
10、ABLE course ( Cno VARCHAR(4) CONSTRAINT pk_course PRIMARY KEY, Cname VARCHAR(10) NOT NULL, Describe VARCHAR(200), Mark INTEGER ) CREATE TABLE teacher CONSTRAINT NOT NULL, NOT NULL ( Tno VARCHAR(5) teacher_pk PRIMARY KEY, Tname VARCHAR(10) Ccnt INTEGER DEFAULT 0 ) CREATE TABLE classro
11、om ( 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
12、 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)
13、 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) CONSTRA
14、INT 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 (R
15、no,Time) ) 為進(jìn)行綜合測評增加一個(gè)外模式 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é)生選 課的時(shí)候選擇一個(gè)不存在的課程號-課序號組, 增加一個(gè)外鍵約束。 ALTER TABLE sc ADD CONSTRAINT fk_sc_tech FOREIGN KEY (Cno,SCno) REFERENCES tech(Cno
16、,SCno) ON UPDATE CASCADE ON DELETE CASCADE 為了在插入一個(gè)新課程時(shí)能級聯(lián)更新教師的工 作量,增加一個(gè)觸發(fā)器。此任務(wù)也可以通過建立一 個(gè)外模式視圖來動態(tài)統(tǒng)計(jì),為了練習(xí)的目的這里采 用了觸發(fā)器 CREATE TRIGGER workenter 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 FRO
17、M 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é)生選課時(shí)建立暫時(shí)不考慮容量問題,都加入一個(gè)臨時(shí) 的SC表中。然后,在選課結(jié)束后將未超額的記錄直接加入SC表,超額的課程 進(jìn)行抽簽,將命中部分學(xué)生的選課記錄插入SC表,直到人數(shù)符合課程容量的要 求為止。 抽簽的功能較適合用頂層的高級語言來實(shí)現(xiàn)。在選課結(jié)束后,選超額課程的 學(xué)生需登陸選課系統(tǒng)進(jìn)行抽簽,抽簽的過程可以使用概率算法,如果抽中,系統(tǒng) 再將選課記錄插入SC表,否則就從臨時(shí)表中刪除。 所以,在數(shù)據(jù)庫系統(tǒng)中,沒有對SC表的插入操作進(jìn)行約束。 Trackback: n.n et/TrackBack.aspx?PostId = 1460966
- 溫馨提示:
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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 領(lǐng)導(dǎo)班子2024年度民主生活會對照檢查材料范文(三篇)
- 金融工作主題黨課講稿范文(匯編)
- 鍋爐必備學(xué)習(xí)材料
- 鍋爐設(shè)備的檢修
- 主題黨課講稿:走中國特色金融發(fā)展之路加快建設(shè)金融強(qiáng)國(范文)
- 鍋爐基礎(chǔ)知識:啟爐注意事項(xiàng)技術(shù)問答題
- 領(lǐng)導(dǎo)班子2024年度民主生活會“四個(gè)帶頭”對照檢查材料范文(三篇)
- 正常運(yùn)行時(shí)影響鍋爐汽溫的因素和調(diào)整方法
- 3.鍋爐檢修模擬考試復(fù)習(xí)題含答案
- 司爐作業(yè)人員模擬考試試卷含答案-2
- 3.鍋爐閥門模擬考試復(fù)習(xí)題含答案
- 某公司鍋爐安全檢查表
- 3.工業(yè)鍋爐司爐模擬考試題庫試卷含答案
- 4.司爐工考試題含答案解析
- 發(fā)電廠鍋爐的運(yùn)行監(jiān)視和調(diào)整