數據庫大型實驗-實驗報告_第1頁
數據庫大型實驗-實驗報告_第2頁
數據庫大型實驗-實驗報告_第3頁
數據庫大型實驗-實驗報告_第4頁
數據庫大型實驗-實驗報告_第5頁
已閱讀5頁,還剩31頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、高校成績管理系統數據庫設計與實現專業班級: 機自1001班 學 號: 201026811803 學生姓名: 胡紹利 1、 需求分析 1.1系統開發意義 隨著學校規模的不斷擴大,專業,班級,學生的數量急劇增加,有關學生選課的各種信息量也成倍增長,而目前許多高校的學生選課管理荏苒停留在復雜的人工操作上,重復工作較多,工作量大,效率地,因此,迫切需要開發基于互聯網的學生信息管系統來提高管理工作的效率。基于這種學生信息管理系統在學生選課的規范管理,科學統計和快速查詢方面具有較大的實用意義。它提高了信息的開發性,達到地改善了學生,教師對其最新信息查詢的準確性。學生成績管理系統是一個教育單位不可或缺的部分

2、,它的內容對于學校的決策者和管理者來說都是至關重要的,所以學生成績管理系統應該能夠為用戶提供充足的信息和快捷的查詢手段,對學生來說可以輕松地查閱自己在校的成績已經信息等。但是一直以來人們都是靠傳統人工的方式管理學生成績,這種管理方式存在著許多缺點,效率低,保密性差,另外時間一長,將產生大量的文件和數據,這對于查找,更新和維護都帶來了不是困難。因此,開發這樣的一套成績管理系統成為很必要的事情。學生成績管理系統提供了強大學生成績管理功能,方便系統管理員對學生成績等信息的添加,修改,刪除,查詢等操作,同時也方便學生對自己各科成績的查詢學習的必要性。1.2 功能需求 學生成績管理系統主要提供學生成績的

3、查詢、維護,方便管理的網上的信息查閱平臺,學生可以通過該系統查閱與自己相關信息。教師可以通過成績管理系統查閱學生信息,教師信息、以及自己所執教課程學生成績的錄入。系統管理員可以實現以上的所以功能,還有對學生信息的添加,刪除,修改;教師信息的添加,刪除,修改;課程信息的添加,刪除,修改。具體功能如下:a,管理員模塊 主要功能是對每學期課課程信息的添加,修改,刪除;教師信息的添加,刪除,修改;學生信息的添加,修改,刪除;還可以對全體學生信息,教師信息的查詢,學生成績的查詢以及自己登陸密碼的修改等。b,教師模塊 主要功能是對自己教課程進行成績的錄入,還有對全體學生信息,教師部分信息的查詢,學生成績的

4、查詢以及自己登陸密碼的修改等。c,學生模塊 主要功能是對自己信息的查詢,每學期成績的查詢,自己已修課程和學分的查詢,登陸密碼修改等。1.3 環境配置需求 系統運行環境: (1)硬件環境:鍵盤、鼠標、顯示器 (2)軟件環境:windows操作系統, Microsoft SQL sever 2008 , iis6.0 , Macromedia Dreamweaver 8 b.適合用戶: 適合各類中等學校對中學生成績事務管理。 c.系統模塊化設計: 本系統遵循了“自頂向下,逐層展開”結構化時間原則,系統功能按模塊化實現,各模塊之間既關聯又相互獨立,每個模塊執行特定的功能,系統設計操作簡單,可讀性強。

5、 d.系統實用性: 為了提高系統效率,系統提供了多種形式的對話框,并在設計過程中考慮盡量減少用戶的輸入。為了提高查詢效率,系統提供了多種組合查詢。 e.系統安全性: 為了防止非法人員進入系統,造成意外破壞,在進入本系統之前,需經過密碼認證,同時,系統管理員對每個用戶的使用權限進行設置,使不至于越權操作。 學生成績管理系統1.4 數據需求描述 登錄管理員模塊教師模塊學生模塊已修學分及課程查詢密碼修改成績查詢課程信息維護密碼修改公共查詢教師課程查詢學生成績維護教師信息維護學生信息維護公共查詢密碼修改教師授課信息查詢全體學生成績查詢按地區學生成績查詢以上各模塊的作用分別是:1) 對于學生用戶,通過登

6、錄進入到管理系統,學生界面有密碼修改,成績查詢三個選項等。點擊修改密碼,則進入修改密碼界面,該界面上已有學生的用戶名和舊密碼,學生只需輸入新密碼,點擊修改,則可修改成功。點擊成績查詢,則可進入成績查詢界面,通過輸入學期,則可查詢該學期的各門課程成績情況。學生的選課是通過班級課程的安排設置的,所以沒有特別的選擇,即可認為學生的選課由班級決定,這在管理員基本功能中實現。2) 對于教師用戶,通過登錄進入到管理系統,教師界面有密碼修改,學生成績的維護,教師課程查詢,公共查詢頁面。密碼修改功能與學生用戶一樣。點擊進入學生成績的維護界面,教師可以通過添加按鈕,修改按鈕,刪除按鈕對學生成績進行基本的添加,修

7、改和刪除。點擊進入教師課程查詢,教師可以查詢到自己所教學生的成績以及成績的基本統計;對于公共查詢,教師可以對學生基本信息,教師基本信息的查詢。教師還可以通過在按地區查詢學生信息界面輸入地區名字查詢該地區的學生信息。3) 對于管理員用戶,通過登錄進入到管理系統。管理員界面也設置了三個選擇方向,基本功能有密碼修改,學生信息的維護,教師信息的維護,公共查詢,課程信息的維護。密碼修改同前兩種用戶一致。三種信息的維護則是通過添加按鈕輸入相應的新的信息,修改按鈕修改已有選中信息,以及刪除按鈕刪除選擇信息。公共查詢與教師界面的公共查詢一樣。2、 概念結構設計2.1、設計各個局部E-R圖 班級編號學號學生姓名

8、年齡出生地性別已修學分教師編號教師姓名教師性別職稱教師年齡教師電話教師課程編號課程姓名開課學期學分教師編號課程類型課程學時學生成績學生學號學期課程名稱成績教師編號班級班級編號班級名稱專業 2.2、合并出統一的全局E-R 班級編號學生課程班級教師學生成績學號學生姓名學生性別學生年齡生源所在地已修學分學號學期課程編號成績教師編號課程編號教師編號課程名稱開課學期課程類型學分教授屬于開設上課班級編號班級名稱所屬院校所屬專業教師編號教師姓名教師性別教師年齡職稱教師電話1nnmmnnmmn 3、邏輯結構設計3.1、E-R圖向關系模式轉換,定義實體型和屬性及其聯系。 課程(課程編號,課程名稱,教師編號,開課

9、學期,學時,課程類型,學分)教師(教師編號,教師姓名,性別,年齡,職稱,電話)學生(學號,姓名,班級編號,性別,年齡,生源地,已修學分)學生成績(學號,課程號,學期,成績,教師編號)班級(班級編號,名稱,所屬專業)3.2、數據字典描述A數據字典是系統中各類數據描述的集合,是進行詳細的數據收集和數據分析所獲得的主要成果,數據字典是對系統所用到的所有表結構的描述,學生成績管理系統的主要數據見下表。班級信息表序號字段別名數據類型長度約束條件主鍵1班級編號HSL班級號Char20Y2班級名稱HSL班級名稱Char20N3專業HSL專業Char20N學生信息表序號字段別名數據類型長度約束條件主鍵1學號H

10、SL學號Char20Y2姓名HSL姓名Char 20N3性別HSL性別Char 2男 or 女N4年齡HSL年齡Int >0And<100N5出生地HSL出生地Char20N6已修學分HSL已修學分Int> 0N7班級編號HSL班級編號Char 20N教師信息表序號字段別名數據類型長度約束條件主鍵1教師編號HSL教師編號Char20Y2教師姓名HSL教師姓名Char20N3教師性別HSL教師性別Char2男 or 女N4教師年齡HSL教師年齡Char20 >0And<100N5教師職稱HSL教師職稱Char20N6教師電話HSL教師電話Char20N課程信息表序號

11、字段別名數據類型長度約束條件主鍵1課程編號HSL課程編號Char20Y2課程名稱HSL課程名稱Char20N3教師編號HSL教師編號Char20N4開課學期HSL開課學期Char 20N5學分HSL學分Int>0N6課程類型HSL課程類型Char20考查 or 考試N7學時HSL學時Int>0N學生成績信息表序號字段別名數據類型長度約束條件主鍵1學生學號HSL學生學號Char20Y2課程編號HSL課程編號Char20Y3學期HSL學期CHAR20N4成績HSL成績Int>0N5教師編號HSL教師編號Char20NB 數據結構數據結構反映了數據之間的組合關系。一個數據結構可以由

12、若干個數據項組成,也可以由若干個數據結構組成,或若干個數據項和數據結構混合組成。經過數據項和用戶需求的分析,我對本系統一共分了5個組,具體如下表所示:數據結構名含義說明組成部分學生基本信息這是學生成績管理系統的主要數據結構,定義一個學生的基本信息學號,姓名,班級,性別,年齡,生源地,已修學分教師基本信息這是學生成績管理系統的主要數據結構,定義一個老師的基本信息教師編號,姓名,性別,年齡,職稱,電話課程基本信息這是學生成績管理系統的主要數據結構,描述課程的相關信息,老師的授課信息,以及班級學生的選課信息課程編號,課程名稱,教師編號,開課學期,學分,課程類型,學時學生成績管理描述學生相關課程的成績

13、情況學生學號,課程編號,學期,教師編號,成績3.3 關系模式的優化:規范化處理,模式的評價與修正優化全局E-R模式的幾個原則:1) 實體型的合并。這里的合并不是指"公共實體型"的局部E-R模式合并,而是指兩個有聯系的實體型的合并。2) 冗余屬性的消除。通常在各個局部E-R模式中式不允許冗余屬性存在的,但在合并為全局E-R模式后,可能產生全局范圍內的冗余屬性。3) 冗余聯系的消除。由于上述關系模式都為BCNF,因此不需要對他們進行規范化了。4、物理結構設計4.1 聚簇設計聚簇是將有關的數據元組集中存放于一個物理塊內或若干相鄰物理塊內或同一柱面內,以提高查詢效率的數據存儲結構。

14、聚簇設計就是根據用戶需求確定每個關系是否需要建立聚簇,如果需要,則應確定在該關系的哪些屬性列上建立聚簇。一般在遇到以下一些特定情況時才考慮對一個關系建立聚簇:a,當對一個關系的某些屬性列的訪問時該關系的主要應用,而對其他屬性的訪問很少或是次要應用時,可以考慮對該關系在這些屬性列上建立聚簇b,如果一個關系在某些屬性列上的值重復率很高,則可以考慮對該關系在這些組屬性列上建立聚簇。c,如果一個關系一旦裝入數據,某些屬性列的值很少修改,也很少增加或刪除元組,則可以考慮對該關系對該關系在這些組屬性列上建立聚簇。基于以上要求,該成績管理系統可建立的聚簇索引有:學生(學生號)教師(教師號)課程(課程號)事實

15、上,SQL在建表的過程中已經相應地在各個表中建立了聚簇索引。4.2 索引設計索引也是按照關系的某些屬性列建立的,它與聚簇的不同之處在于,當索引屬性列發生變化,或增加,刪除元組時,只有索引發生變化,而關系中原先得元組的存放位置不受影響。此外,每個關系只能建立一個聚簇,但卻可以同時建立多個索引。對于一個確定的關系,通常在下列情況下可以考慮建立索引:a,在在主屬性列和外鍵屬性列上通常都可以分別建立索引,不僅有助于唯一性檢測和完整性檢查,而且可以加快連接查詢的速度b,以查詢為主的關系可以建立盡可能多的索引。c,對等值連接,但滿足條件的元組較少的查詢可考慮建立索引。d,如果查詢可以從索引直接得到結果而不

16、必訪問關系,則對此種查詢可建立索引。例如,為查詢某個屬性的MIN,MAX,AVG,SUM,COUNT等函數值,可在該屬性列上建立索引。根據以上要求,本關系的課程表,學生表,教師表分別按照課程號,學號,教師編號的升序建立索引。4.3 分區設計磁盤分區設計的一般原則:(1) 減少訪問沖突,提高I/O并發性。多個事物并發訪問同一磁盤時,會產生磁盤訪問沖突而導致效率低下,如果事務訪問數據均能分布于不同磁盤上,則I/O可并發執行,從而提高數據庫訪問速度。(2) 分散熱點數據,均衡I/O負擔。在數據庫中數據訪問的頻率是不均勻的,那些經常被訪問的數據成為熱點數據,此類數據宜分散存在于不同的磁盤上,以均衡各個

17、磁盤的負荷,充分發揮多磁盤的并行操作的優勢。(3) 保證關鍵數據快速訪問,緩解系統瓶頸。在數據庫中有些數據如數據字典等的訪問頻率很高,為保證對它的訪問不直接影響整個系統的效率,可以將其存放在某一固定磁盤上,以保證其快速訪問。該成績管理系統由于程序較小,所以不進行分區設計。統一儲存在F盤:/數據庫大型實驗。5、 數據庫實施5.1基本表的建立數據庫D01hushaoli的建立基本表 班級HSL 的建立create table 班級HSL(班級編號HSL CHAR(20) PRIMARY KEY,班級名稱HSL CHAR(20) NOT NULL,專業HSL CHAR(20) NOT NULL)基本

18、表 學生HSL的建立create table 學生HSL(學號HSL char(20) PRIMARY KEY,姓名HSL char(20) NOT NULL,性別HSL char(2) check (性別hsl = '男' or 性別hsl = '女') NOT NULL,年齡HSL int check(年齡hsl > 0 and 年齡hsl < 100),出生地HSL char(20) NOT NULL,已修學分HSL int,班級編號HSL char(20),constraint FK_班級_學生 foreign key (班級編號HSL) r

19、eferences 班級HSL)基本表 教師HSL 的建立create table 教師HSL(教師編號HSL CHAR(20) PRIMARY KEY,教師姓名HSL CHAR(20) NOT NULL,教師性別HSL CHAR(2) CHECK(教師性別HSL= '男' or 教師性別HSL = '女') NOT NULL,教師年齡HSL INT CHECK(教師年齡HSL > 0 AND 教師年齡HSL <100),教師職稱HSL CHAR(20),教師電話HSL char(20)基本表 課程HSL 的建立create table 課程HSL(

20、課程編號HSL CHAR(20) PRIMARY KEY,課程名稱HSL CHAR(20) NOT NULL,教師編號HSL CHAR(20) NOT NULL,開課學期HSL CHAR(20) NOT NULL,課程類型HSL CHAR(20) CHECK(課程類型HSL = '考試' or 課程類型HSL = '考查') NOT NULL,學分HSL INT ,CONSTRAINT FK_老師_課程 foreign key (教師編號HSL) REFERENCES 教師HSL)基本表 學生成績HSL 的建立CREATE TABLE 學生成績HSL(學生學號H

21、SL CHAR(20) NOT NULL,課程編號HSL CHAR(20) NOT NULL,學期HSL CHAR(20) NOT NULL,成績HSL FLOAT ,教師編號HSL CHAR(20) NOT NULL,PRIMARY KEY (學生學號HSL,課程編號HSL),CONSTRAINT FK_學生成績_課程 FOREIGN KEY (課程編號HSL) REFERENCES 課程HSL,CONSTRAINT FK_學生成績_學生 FOREIGN KEY (學生學號HSL) REFERENCES 學生HSL,CONSTRAINT FK_學生成績_教師 FOREIGN KEY (教師編

22、號HSL) REFERENCES 教師HSL)基本表 開課HSL 的建立create table 開課HSL(班級編號HSL CHAR(20),課程編號HSL CHAR(20) PRIMARY KEY,CONSTRAINT FK_開課_班級 FOREIGN KEY(班級編號HSL) REFERENCES 班級HSL,CONSTRAINT FK_開課_課程 FOREIGN KEY(課程編號HSL) REFERENCES 課程HSL)5.2視圖的建立 視圖 學生成績統計HSL 的創建create view學生成績統計HSLAS SELECT 學生HSL.學號HSL,學生HSL.姓名HSL,課程HS

23、L.課程編號HSL,課程HSL.課程名稱HSL,學生成績HSL.學期HSL,學生成績HSL.成績HSLFROM 學生HSL,課程HSL,學生成績HSLWHERE 學生HSL.學號HSL = 學生成績HSL.學生學號HSL AND 課程HSL.課程編號HSL =學生成績HSL.課程編號HSL視圖 每門課平均成績統計HSL 的創建create view 課程平均成績HSLAS SELECT 學生成績HSL.課程編號HSL,AVG(學生成績HSL.成績HSL) 平均成績HSLFROM 學生成績HSLGROUP BY 學生成績HSL.課程編號HSL視圖 學生所學課程及學分統計HSL 的創建create

24、 view 學生所學課程及學分統計HSLasselect 學生成績HSL.學生學號HSL,學生成績HSL.課程編號HSL,課程HSL.學分HSLFROM 學生成績HSL,課程HSLWHERE 學生成績HSL.課程編號HSL = 課程HSL.課程編號HSL教師任課查詢HSL的建立CREATE VIEW 教師任課查詢HSLASSELECT 教師HSL.教師編號HSL,教師HSL.教師姓名HSL,課程HSL.課程名稱HSL,課程HSL.開課學期HSL,課程HSL.課程類型HSLFROM 教師HSL,課程HSLWHERE 教師HSL.教師編號HSL = 課程HSL.教師編號HSL視圖 班級開設課程 的

25、建立create view 班級開設課程HSLasselect 班級HSL.班級編號HSL,班級HSL.班級名稱HSL,課程HSL.課程名稱HSLFROM 開課HSL,課程HSL,班級HSLWHERE 班級HSL.班級編號HSL = 開課HSL.班級編號HSL and 開課HSL.課程編號HSL = 課程HSL.課程名稱HSL5.3索引的建立CREATE UNIQUE INDEX 學生HSL_學號HSL ON 學生HSL(學號HSL)CREATE UNIQUE INDEX 教師HSL_教師編號HSL ON 教師HSL(教師編號HSL)CREATE UNIQUE INDEX 班級HSL_班級編號

26、HSL ON 班級HSL(班級編號HSL)CREATE UNIQUE INDEX 課程HSL_課程編號HSL ON 課程HSL(課程編號HSL)5.4觸發器的建立1使用自定義完整性實驗中的學生成績HSL表。為此表建立觸發器UPD_學生成績HSL,當插入或使更新表中的數據時,保證所操作的紀錄的學生成績成績HSL值為0到100之間的數。CREATE TRIGGER UPD_學生成績HSL ON 學生成績HSLFOR INSERT,UPDATE AS IF( SELECT 成績HSL FROM INSERTED) < 0 OR(SELECT 成績HSL FROM INSERTED) >

27、100BEGIN PRINT '學生成績必須是零到一百之間的數!操作失敗'ROLLBACK TRANSACTIONEND2.使用自定義完整性實驗中的課程表。為此表建立觸發器學分HSL,當插入或使更新表中的數據時,保證所操作的紀錄的學生成績課程 學分HSL 大于0的數。CREATE TRIGGER 學分HSL ON 課程HSLFOR INSERT,UPDATE AS IF( SELECT 學分HSL FROM INSERTED) < 0 BEGIN PRINT '學分必須大于零的數!操作失敗'ROLLBACK TRANSACTIONEND5.5存儲過程的建立

28、創建一個存儲過程(insertResult)添加學生成績,要求輸入(學號,課程名,分數) 如果輸入的學號不存在,則提示“學生基本信息表中不存在此學號,請檢查后重新輸入”,如果輸入的課程不存在,則提示“還沒有這門課程,請檢查后重新輸入”,最后添加成績,若成功,則顯示"成績添加成功"。建立存儲過程如下:CREATE PROCEDURE InsertResult(學號HSL char(20), 課程編號HSL char(20), 學生成績HSL float )ASSET NOCOUNT ONDECLARE nCount int SET nCount=0DECLARE nCours

29、e int SET nCourse=0DECLARE nExistAchievement int SET nExistAchievement=0SELECT nCount=COUNT(學號HSL)FROM 學生HSLWHERE 學生HSL.學號HSL=學號HSLIF nCount<1BEGINPRINT'學生基本信息表中不存在此學號,請檢查后重新輸入'RETURNENDSELECT nCourse=COUNT(課程編號HSL)FROM 課程HSLWHERE 課程HSL.課程編號HSL=課程編號HSLIF nCourse<1BEGINPRINT'還沒有這門課程

30、,請檢查后重新輸入'RETURNENDUPDATE學生成績HSLSET 學生成績HSL.成績HSL=學生成績HSLWHERE 學生成績HSL.學生學號HSL=學號HSLPRINT'成績添加成功'5.6數據維護6、 應用系統開發與試運行 6.1開發平臺和開發環境介紹(1)硬件環境:鍵盤、鼠標、顯示器、打印機(2)軟件環境:windows操作系統、 Microsoft SQL Sever2008 iis6.0 , Macromedia Dreamweaver 86.2前臺界面與后臺數據庫連接說明,代碼實現 <%'=' File: conn.asp

31、9; Script Written by 胡紹利'=Dim conn,db,PE_True, PE_False, PE_NowDim SqlDatabaseName, SqlPassword, SqlUsername, SqlHostIPConst SystemVersion = 0Const SystemDatabaseType = "SQL"Call OpenConnSub OpenConn() On Error Resume Next Dim ConnStr If SystemDatabaseType = "SQL" Then'Co

32、nnStr = "driver=SQL Server;server=" & SqlHostIP & "database=" & SqlDatabaseName & "uid=" & SqlUsername & "pwd=" & SqlPasswordConnStr="Provider=SQLOLEDB.1;server=(local);uid=sa;pwd=123456;database=D01hushaoli;" Else ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(db) End If Set conn = Server.CreateObject("ADODB.Connection") conn.open ConnStr If Err Then Err.Clear

溫馨提示

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

評論

0/150

提交評論