課程管理系統(tǒng)數(shù)據(jù)庫設計及實現(xiàn)_第1頁
課程管理系統(tǒng)數(shù)據(jù)庫設計及實現(xiàn)_第2頁
課程管理系統(tǒng)數(shù)據(jù)庫設計及實現(xiàn)_第3頁
課程管理系統(tǒng)數(shù)據(jù)庫設計及實現(xiàn)_第4頁
課程管理系統(tǒng)數(shù)據(jù)庫設計及實現(xiàn)_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、大學課程設計報告課程設計題目:“課程管理系統(tǒng)”數(shù)據(jù)庫設計與實現(xiàn) 學 院: 專業(yè)班級: 年 級: 姓 名: 學 號: 完成時間: 年 月 日成 績: 指導教師: 目錄第1章課程管理系統(tǒng)功能需求分析第2章 課程管理系統(tǒng)概念結(jié)構(gòu)設計2.1設計E-R圖 2.2 E-R模型向關(guān)系模型的轉(zhuǎn)換第3章創(chuàng)建視圖與索引,授予用戶權(quán)限3.1 創(chuàng)建視圖 3.2 創(chuàng)建索引 3.3 授予權(quán)限 正文一、需求分析1. 近年來,隨著各大高校的規(guī)模不斷擴大,生源的急劇增加,有關(guān)學生的各種信息量也成倍增長。面對龐大的信息量,需要建立一個課程管理系統(tǒng)來提高管理質(zhì)量,讓老師減輕工作量,提高工作效率。建立課程管理系統(tǒng)就是為了實現(xiàn)信息的規(guī)

2、范管理、科學統(tǒng)計與快速查詢,從而減少管理方面的工作量。課程管理系統(tǒng)主要提供教師、學生的學籍管理、成績管理與課程管理功能。 2. 需求功能分析:教師與學生的登錄學生學籍的添加、修改、刪除、查詢課程管理的添加、修改、刪除、查詢教師授課的安排3. 用戶需求分析用戶的需求具體體現(xiàn)在各種信息的提供、保存、更新、查詢方面,這就要求數(shù)據(jù)庫機構(gòu)能充分滿足各種信息的輸入與輸出。收集基本數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)以及數(shù)據(jù)處理流程,組成一份詳盡的數(shù)據(jù)字典,為后面的具體設計打下基礎。 針對課程管理系統(tǒng)的需求,通過對課程管理系統(tǒng)的設計與數(shù)據(jù)流程的分析,設計如下所示的數(shù)據(jù)項與數(shù)據(jù)存儲表:登錄信息:包括用戶號、密碼、權(quán)限學籍信息:包括

3、用戶號、姓名、性別、出生日期、班級、入學日期、家庭住址、電話課程信息:包括課程號、課程名、類型、教師名4.統(tǒng)的總體結(jié)構(gòu)設計 該系統(tǒng)共有三個模塊:登陸模塊、學籍管理模塊、課程信息模塊。這幾個模塊同時還包括數(shù)據(jù)添加、數(shù)據(jù)修改、數(shù)據(jù)刪除、數(shù)據(jù)查詢等幾個基本操作。 (1) 登錄模塊 在登錄界面中教師與學生可登錄。在登錄界面中分別填入用戶名、密碼與身份,然后按確認鍵登錄。如果填入信息有誤則彈出錯誤信息的提示窗口,重新返回登陸窗口。如果填入信息正確則要根據(jù)登錄信息表中登錄者的權(quán)限(“0”或“1”)分別進入教師(“1”)或?qū)W生(“0”)管理系統(tǒng)主界面。 (2) 學籍管理模塊 該模塊主要完成學生基本信息的添加

4、、修改、刪除、查詢等功能。根據(jù)登錄時權(quán)限的判斷,權(quán)限為“0”時,是學生進入該模塊,只可對自己的學籍進行查詢,添加、修改、刪除功能不可用;權(quán)限為“1”時,教師進入該模塊,此時可進行所有學生學籍的查詢、添加、修改、刪除,在此模塊中定義了8個數(shù)據(jù)來進行學生的信息存儲,如果修改某個記錄,可單擊修改按鈕進行數(shù)據(jù)的編輯,此時界面數(shù)據(jù)內(nèi)容與數(shù)據(jù)庫內(nèi)容將同時更新。 (4)課程管理模塊 該模塊主要完成存儲課程的所有信息的添加、修改、刪除、查詢等功能。根據(jù)登錄時權(quán)限的判斷,權(quán)限為“0”時,學生進入該模塊,只可進行課程查詢,添加、修改、刪除功能不可用;權(quán)限為“1”時,教師進入該模塊,可進行查詢、添加、修改、刪除,在

5、此模塊中定義了6個數(shù)據(jù)來進行課程的信息存儲,如果修改某一紀錄,可單擊修改單按鈕進行課程記數(shù)據(jù)的編輯,此時界面數(shù)據(jù)內(nèi)容與數(shù)據(jù)庫內(nèi)容將同時更新。2、 概念設計數(shù)據(jù)字典1數(shù)據(jù)項名數(shù)據(jù)類型長度注明學生學號字符型106位十進制數(shù)學生姓名字符型8年齡字符型16籍貫字符型8學生出生地入學時間日期型教室編號字符型10以A,B,C,D開頭,后接4位十進制數(shù)教室所屬校區(qū)字符型10A,B,C,D教學樓字符型8管理員代碼字符型 206位十進制數(shù)管理員姓名字符型8管理員電話字符型20課程代碼字符型84位十進制數(shù)學院代碼字符型102位十進制數(shù)課程名字符型8課程人數(shù)數(shù)值型課程所屬校區(qū)字符型10A,B,C,D班級代碼字符型1

6、04位十進制數(shù)專業(yè)代碼字符型102位十進制數(shù)班級名字符型8班級學生數(shù)數(shù)值型學院代碼字符型102位十進制數(shù)專業(yè)名字符型8學院名字符型10學院人數(shù)字符型10教工號字符型106位十進制數(shù)教師姓名字符型8教師電話字符型20教師郵箱字符型30課程管理系統(tǒng)數(shù)據(jù)庫中的E-R圖3、 邏輯設計將上面的E-R圖轉(zhuǎn)化為如下關(guān)系模型,下劃橫線代表關(guān)系的主鍵:學生(學號,姓名,年齡,籍貫,入學時間,專業(yè)代碼,班級代碼,學院代碼)班級(班級代碼,專業(yè)代碼,班級名,學生數(shù))專業(yè)(專業(yè)代碼,學院代碼。專業(yè)名稱)學院(學院代碼,學院名,學員人數(shù))教師(教工號,教師姓名,教師電話,教師郵箱)從屬(加工號,學院代碼)課程(課程代碼

7、,學院代碼,課程名,人數(shù),學分)管理員(管理員代碼,管理員姓名,管理員電話,管理員郵箱)教室(教室編號,所屬校區(qū),教學樓)安排(課程代碼,教工號,教室編號,管理員代碼,上課時間)分配(學號,教室編號)選擇(學號,課程代碼)二、轉(zhuǎn)化后的關(guān)系模型如圖:三、數(shù)據(jù)庫實現(xiàn)1、 數(shù)據(jù)庫視圖的創(chuàng)建1)創(chuàng)建一個學號為20105263的學生的查詢視圖;Create view 學生信息(學生學號,所選課程名稱,所在班級代號,老師姓名,上課教室)asselect學生學號,課程名,班級代碼,教師姓名,教室編號from學生,課程,班級,教師,教室 where學生.班級代碼=班級.班級代碼and 學生.學院代碼=學院.

8、學院代碼2)創(chuàng)建一個教工號為5132的教師的查詢視圖;Create view 教師信息(所教課程名稱,所教班級代號,所屬學院,上課教室)asselect 課程名,班級代碼,學院,教室編號from 課程,班級,學院,教室,教師 where 教師.教工號=5132;3)創(chuàng)建一個管理員的查詢視圖Create view 管理員視圖(課程名稱,老師姓名,學生姓名,教室編號)asselect 課程名,教師姓名,學生姓名,教室編號from 課程,教師,學生,教室;2、索引的創(chuàng)建我們可以在視圖學生信息中的”學號列”上創(chuàng)建一個索引Created index stu_index on 學生信息(學號)。3、權(quán)限管

9、理,安全性設計授予權(quán)限1. 給學生一個可以查看課程安排的權(quán)限Grant select on 安排 to 學生2. 給教師一個可以查看學生選擇課程情況的權(quán)限Grant select on 選擇 to 教師3. 給教師一個可以查看課程安排的權(quán)限Grant update on 安排 to 教師4.給學生一個可以查看自己的選課的權(quán)限Grant select on 選擇 to 學生4. 給管理員一個可以查看課程安排的權(quán)限Grant select on 安排to 管理員6.給管理員一個刪除教師與學生所選課程的權(quán)限Grant update on 課程 to 管理員代碼附錄if exists(select 1

10、 from sys.sysforeignkey where role='FK_分配_分配_學生') then alter table 分配 delete foreign key FK_分配_分配_學生end if;if exists(select 1 from sys.sysforeignkey where role='FK_學生_屬于_班級') then alter table 學生 delete foreign key FK_學生_屬于_班級end if;if exists(select 1 from sys.sysforeignkey where role

11、='FK_學生_所在_專業(yè)') then alter table 學生 delete foreign key FK_學生_所在_專業(yè)end if;if exists(select 1 from sys.sysforeignkey where role='FK_學生_所屬_學院') then alter table 學生 delete foreign key FK_學生_所屬_學院end if;if exists(select 1 from sys.sysforeignkey where role='FK_選擇_選擇_學生') then alter

12、 table 選擇 delete foreign key FK_選擇_選擇_學生end if;drop index if exists 學生.所屬_FK;drop index if exists 學生.所在_FK;drop index if exists 學生.屬于_FK;drop index if exists 學生.學生_PK;drop table if exists 學生;/*=*/* Table: 學生 */*=*/create table 學生 ( 學號 varchar(10) not null, 專業(yè)代碼 varchar(10) not null, 班級代碼 varchar(10)

13、 not null, 學院代碼 varchar(10) not null, 學生姓名 varchar(8) null, 年齡 varchar(16) null, 籍貫 varchar(8) null, 入學時間 timestamp null, constraint PK_學生 primary key (學號);/*=*/* Index: 學生_PK */*=*/create unique index 學生_PK on 學生 (學號 ASC);/*=*/* Index: 屬于_FK */*=*/create index 屬于_FK on 學生 (班級代碼 ASC);/*=*/* Index: 所

14、在_FK */*=*/create index 所在_FK on 學生 (專業(yè)代碼 ASC);/*=*/* Index: 所屬_FK */*=*/create index 所屬_FK on 學生 (學院代碼 ASC);alter table 學生 add constraint FK_學生_屬于_班級 foreign key (班級代碼) references 班級 (班級代碼) on update restrict on delete restrict;alter table 學生 add constraint FK_學生_所在_專業(yè) foreign key (專業(yè)代碼) references

15、 專業(yè) (專業(yè)代碼) on update restrict on delete restrict;alter table 學生 add constraint FK_學生_所屬_學院 foreign key (學院代碼) references 學院 (學院代碼) on update restrict on delete restrict;if exists(select 1 from sys.sysforeignkey where role='FK_學生_屬于_班級') then alter table 學生 delete foreign key FK_學生_屬于_班級end i

16、f;if exists(select 1 from sys.sysforeignkey where role='FK_班級_包含_專業(yè)') then alter table 班級 delete foreign key FK_班級_包含_專業(yè)end if;drop index if exists 班級.包含_FK;drop index if exists 班級.班級_PK;drop table if exists 班級;/*=*/* Table: 班級 */*=*/create table 班級 ( 班級代碼 varchar(10) not null, 專業(yè)代碼 varchar(

17、10) not null, 班級名 varchar(8) null, 學生數(shù) integer null, 班主任 char(10) null, constraint PK_班級 primary key (班級代碼);/*=*/* Index: 班級_PK */*=*/create unique index 班級_PK on 班級 (班級代碼 ASC);/*=*/* Index: 包含_FK */*=*/create index 包含_FK on 班級 (專業(yè)代碼 ASC);alter table 班級 add constraint FK_班級_包含_專業(yè) foreign key (專業(yè)代碼)

18、references 專業(yè) (專業(yè)代碼) on update restrict on delete restrict; if exists(select 1 from sys.sysforeignkey where role='FK_專業(yè)_含有_學院') then alter table 專業(yè) delete foreign key FK_專業(yè)_含有_學院end if;if exists(select 1 from sys.sysforeignkey where role='FK_學生_所在_專業(yè)') then alter table 學生 delete fore

19、ign key FK_學生_所在_專業(yè)end if;if exists(select 1 from sys.sysforeignkey where role='FK_班級_包含_專業(yè)') then alter table 班級 delete foreign key FK_班級_包含_專業(yè)end if;drop index if exists 專業(yè).所屬_FK;drop index if exists 專業(yè).專業(yè)_PK;drop table if exists 專業(yè);/*=*/* Table: 專業(yè) */*=*/create table 專業(yè) ( 專業(yè)代碼 varchar(10)

20、 not null, 學院代碼 varchar(10) not null, 專業(yè)名 varchar(8) null, constraint PK_專業(yè) primary key (專業(yè)代碼);/*=*/* Index: 專業(yè)_PK */*=*/create unique index 專業(yè)_PK on 專業(yè) (專業(yè)代碼 ASC);/*=*/* Index: 所屬_FK */*=*/create index 所屬_FK on 專業(yè) (學院代碼 ASC);alter table 專業(yè) add constraint FK_專業(yè)_含有_學院 foreign key (學院代碼) references 學院

21、 (學院代碼) on update restrict on delete restrict; if exists(select 1 from sys.sysforeignkey where role='FK_安排_安排_課程') then alter table 安排 delete foreign key FK_安排_安排_課程end if;if exists(select 1 from sys.sysforeignkey where role='FK_課程_開設_學院') then alter table 課程 delete foreign key FK_課程

22、_開設_學院end if;if exists(select 1 from sys.sysforeignkey where role='FK_選擇_選擇2_課程') then alter table 選擇 delete foreign key FK_選擇_選擇2_課程end if;drop index if exists 課程.開設_FK;drop index if exists 課程.課程_PK;drop table if exists 課程;/*=*/* Table: 課程 */*=*/create table 課程 ( 課程代碼 varchar(8) not null, 學

23、院代碼 varchar(10) not null, 課程名 varchar(8) null, 人數(shù) integer null, 所屬校區(qū) varchar(10) null, constraint PK_課程 primary key (課程代碼);/*=*/* Index: 課程_PK */*=*/create unique index 課程_PK on 課程 (課程代碼 ASC);/*=*/* Index: 開設_FK */*=*/create index 開設_FK on 課程 (學院代碼 ASC);alter table 課程 add constraint FK_課程_開設_學院 fore

24、ign key (學院代碼) references 學院 (學院代碼) on update restrict on delete restrict; if exists(select 1 from sys.sysforeignkey where role='FK_專業(yè)_含有_學院') then alter table 專業(yè) delete foreign key FK_專業(yè)_含有_學院end if;if exists(select 1 from sys.sysforeignkey where role='FK_從屬_從屬2_學院') then alter tabl

25、e 從屬 delete foreign key FK_從屬_從屬2_學院end if;if exists(select 1 from sys.sysforeignkey where role='FK_學生_所屬_學院') then alter table 學生 delete foreign key FK_學生_所屬_學院end if;if exists(select 1 from sys.sysforeignkey where role='FK_課程_開設_學院') then alter table 課程 delete foreign key FK_課程_開設_

26、學院end if;drop index if exists 學院.學院_PK;drop table if exists 學院;/*=*/* Table: 學院 */*=*/create table 學院 ( 學院代碼 varchar(10) not null, 學院名 varchar(8) null, 學院人數(shù) integer null, constraint PK_學院 primary key (學院代碼);/*=*/* Index: 學院_PK */*=*/create unique index 學院_PK on 學院 (學院代碼 ASC); if exists(select 1 from

27、 sys.sysforeignkey where role='FK_安排_安排4_管理員') then alter table 安排 delete foreign key FK_安排_安排4_管理員end if;drop index if exists 管理員.教務處_PK;drop table if exists 管理員;/*=*/* Table: 管理員 */*=*/create table 管理員 ( 管理員代碼 varchar(20) not null, 學生姓名 varchar(8) null, 教師電話 varchar(20) null, 管理員郵箱 char(10

28、) null, constraint PK_管理員 primary key (管理員代碼);/*=*/* Index: 教務處_PK */*=*/create unique index 教務處_PK on 管理員 (管理員代碼 ASC); if exists(select 1 from sys.sysforeignkey where role='FK_從屬_從屬_教師') then alter table 從屬 delete foreign key FK_從屬_從屬_教師end if;if exists(select 1 from sys.sysforeignkey where

29、 role='FK_安排_安排2_教師') then alter table 安排 delete foreign key FK_安排_安排2_教師end if;drop index if exists 教師.教師_PK;drop table if exists 教師;/*=*/* Table: 教師 */*=*/create table 教師 ( 教工號 varchar(10) not null, 學生姓名 varchar(8) null, 教師電話 varchar(20) null, 教師郵箱 varchar(30) null, constraint PK_教師 primar

30、y key (教工號);/*=*/* Index: 教師_PK */*=*/create unique index 教師_PK on 教師 (教工號 ASC); if exists(select 1 from sys.sysforeignkey where role='FK_分配_分配2_教室') then alter table 分配 delete foreign key FK_分配_分配2_教室end if;if exists(select 1 from sys.sysforeignkey where role='FK_安排_安排3_教室') then al

31、ter table 安排 delete foreign key FK_安排_安排3_教室end if;drop index if exists 教室.教室_PK;drop table if exists 教室;/*=*/* Table: 教室 */*=*/create table 教室 ( 教室編號 varchar(10) not null, 所屬校區(qū) varchar(10) null, 教學樓 varchar(8) null, constraint PK_教室 primary key (教室編號);/*=*/* Index: 教室_PK */*=*/create unique index 教

32、室_PK on 教室 (教室編號 ASC); if exists(select 1 from sys.sysforeignkey where role='FK_選擇_選擇_學生') then alter table 選擇 delete foreign key FK_選擇_選擇_學生end if;if exists(select 1 from sys.sysforeignkey where role='FK_選擇_選擇2_課程') then alter table 選擇 delete foreign key FK_選擇_選擇2_課程end if;drop inde

33、x if exists 選擇.選擇2_FK;drop index if exists 選擇.選擇_FK;drop index if exists 選擇.選擇_PK;drop table if exists 選擇;/*=*/* Table: 選擇 */*=*/create table 選擇 ( 學號 varchar(10) not null, 課程代碼 varchar(8) not null, constraint PK_選擇 primary key clustered (學號, 課程代碼);/*=*/* Index: 選擇_PK */*=*/create unique clustered index 選擇_PK on 選擇 (學號 ASC,課程代碼 ASC);/*=*/* Index: 選擇_FK */*=*/create index 選擇_FK on 選擇 (學號 ASC);/*=*/* Index: 選擇2_FK */*=*/create index 選擇2_FK on 選擇 (課程代碼 ASC);alter table 選擇 add constraint FK_選擇_選擇_學生 foreign key (學號) references 學生 (學號) on update restrict on delete restri

溫馨提示

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

評論

0/150

提交評論