“課程管理系統”數據庫設計及實現_第1頁
“課程管理系統”數據庫設計及實現_第2頁
“課程管理系統”數據庫設計及實現_第3頁
“課程管理系統”數據庫設計及實現_第4頁
免費預覽已結束,剩余31頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

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

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

6、A,B,C,D班級代碼字符型104 位十進制數專業代碼字符型102 位十進制數班級名字符型8班級學生數數值型學院代碼字符型102 位十進制數專業名字符型8學院名字符型10學院人數字符型10教工號字符型106 位十進制數5教師姓名字符型8教師電話字符型20教師郵箱字符型30課程管理系統數據庫中的E-R 圖3、邏輯設計將上面的 E-R 圖轉化為如下關系模型,下劃橫線代表關系的主鍵:學生(學號,姓名,年齡,籍貫,入學時間,專業代碼,班級代碼,學院代碼)班級(班級代碼,專業代碼,班級名,學生數)專業(專業代碼,學院代碼。專業名稱)學院(學院代碼,學院名,學員人數)6教師(教工號,教師姓名,教師電話,教

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

8、 .班級代碼 =班級 .班級代碼 and 學生 .學院代碼 =學院 . 學院代碼2)創建一個教工號為5132 的教師的查詢視圖;Create view 教師信息(所教課程名稱,所教班級代號,所屬學院,上課教室)asselect 課程名,班級代碼,學院,教室編號from 課程,班級,學院,教室,教師where 教師 .教工號 =5132;3)創建一個管理員的查詢視圖Create view 管理員視圖(課程名稱,老師姓名,學生姓名,教室編號)asselect 課程名,教師姓名,學生姓名,教室編號from 課程,教師,學生,教室;82、索引的創建我們可以在視圖學生信息中的”學號列”上創建一個索引Cr

9、eated index stu_index on學生信息 ( 學號 ) 。3、權限管理,安全性設計授予權限1.給學生一個可以查看課程安排的權限Grant select on 安排 to 學生2.給教師一個可以查看學生選擇課程情況的權限Grant select on 選擇 to 教師3.給教師一個可以查看課程安排的權限Grant update on 安排 to 教師4.給學生一個可以查看自己的選課的權限Grant select on 選擇 to 學生4.給管理員一個可以查看課程安排的權限Grant select on 安排 to 管理員6.給管理員一個刪除教師與學生所選課程的權限Grant up

10、date on 課程 to 管理員9代碼附錄if exists(select 1 from sys.sysforeignkey where role='FK_分配 _分配 _學生 ') thenalter table分配delete foreign key FK_分配 _分配 _學生end if;if exists(select 1 from sys.sysforeignkey where role='FK_學生 _屬于 _班級 ') thenalter table學生delete foreign key FK_學生 _屬于 _班級end if;if exist

11、s(select 1 from sys.sysforeignkey where role='FK_學生 _所在 _專業 ') thenalter table學生delete foreign key FK_學生 _所在 _專業end if;if exists(select 1 from sys.sysforeignkey where role='FK_學生 _所屬 _學院 ') thenalter table學生delete foreign key FK_學生 _所屬 _學院end if;if exists(select 1 from sys.sysforeign

12、key where role='FK_選擇 _選擇 _學生 ') thenalter table選擇delete foreign key FK_選擇 _選擇 _學生end if;10drop 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)

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

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

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

16、oreign key FK_學生 _屬于 _班級end if;if exists(select 1 from sys.sysforeignkey where role='FK_班級 _包含 _專業 ') thenalter table班級delete foreign key FK_班級 _包含 _專業end if;drop index if exists班級 . 包含 _FK;drop index if exists班級 . 班級 _PK;drop table if exists班級 ;13/*=*/* Table:班級*/*=*/create table班級(班級代碼varc

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

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

19、able學生delete foreign key FK_學生 _所在 _專業end if;if exists(select 1 from sys.sysforeignkey where role='FK_班級 _包含 _專業 ') thenalter table班級delete foreign key FK_班級 _包含 _專業end if;drop index if exists專業 . 所屬 _FK;drop index if exists專業 . 專業 _PK;drop table if exists專業 ;/*=*/* Table:專業*/*=*/create tabl

20、e專業15(專業代碼varchar(10)not null,學院代碼varchar(10)not null,專業名varchar(8)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_專業 _含有 _學院 foreign key (學院代碼 )ref

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

22、ign key FK_課程 _開設 _學院end if;if exists(select 1 from sys.sysforeignkey where role='FK_選擇 _選擇 2_課程 ') thenalter 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

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

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

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

26、K_課程 _開設 _學院end if;drop index if exists學院 . 學院 _PK;drop table if exists學院 ;/*=*/* Table:學院*/*=*/create table學院(學院代碼varchar(10)not null,學院名varchar(8)null,學院人數integernull,constraint PK_學院 primary key (學院代碼 );/*=*/* Index:學院 _PK*/19/*=*/create unique index學院 _PK on 學院 (學院代碼ASC); if exists(select 1 from

27、 sys.sysforeignkey where role='FK_安排 _安排 4_管理員 ') thenalter 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)null,const

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

29、;FK_安排 _安排 2_教師 ') thenalter 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_教師 primary key (教工號 );/*=*/* Ind

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

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

32、xists(select 1 from sys.sysforeignkey where role='FK_選擇 _選擇 _學生 ') thenalter table選擇delete foreign key FK_選擇 _選擇 _學生end if;if exists(select 1 from sys.sysforeignkey where role='FK_選擇 _選擇 2_課程 ') thenalter table選擇delete foreign key FK_選擇 _選擇 2_課程end if;drop index if exists選擇 . 選擇 2_FK

33、;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 (學號 ,課程代碼 )23);/*=*/* 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 restricton delete restrict;24alter table選

溫馨提示

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

評論

0/150

提交評論