學(xué)生成績管理系統(tǒng) 數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告
《學(xué)生成績管理系統(tǒng) 數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告》由會員分享,可在線閱讀,更多相關(guān)《學(xué)生成績管理系統(tǒng) 數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告(10頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、學(xué)生成績管理系統(tǒng) 數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告 1需求分析 1.1 用戶需求概述 本系統(tǒng)為學(xué)生成績管理系統(tǒng),該系統(tǒng)開發(fā)的主要目的是使得學(xué)生的成績管理工作更加清晰、條理化、自動化,實(shí)現(xiàn)對學(xué)生成績的集中統(tǒng)一的管理。具體完成通過用戶名和密碼登錄系統(tǒng),查詢課程基本資料,學(xué)生所選課程成績,修改用戶密碼等功能。本系統(tǒng)主要實(shí)現(xiàn)對學(xué)生成績的管理,需要完成的主要功能有: (1)通過用戶名和密碼登錄系統(tǒng),查詢課程基本資料,學(xué)生所選課程成績,修改用戶密碼等功能,容易地完成學(xué)生信息的查詢操作。 (2)設(shè)計(jì)人機(jī)友好界面,功能安排合理,操作使用方便,并且進(jìn)一步考慮系統(tǒng)在安全性,完整性,并發(fā)控制,備份和恢復(fù)等方面的功能要
2、求. 1.2 數(shù)據(jù)需求 Student表: sno Char(8) 不允許為空 sname Char(10) 不允許為空 Ssex Char(2) 不允許為空 sbirth Datetime(8) 允許為空 class Char(4) 不允許為空 type Char(7) 允許為空 score表結(jié)構(gòu): sno Char(8) 不允許為空 cno Char(5) 不允許為空 degree Float(8) 不允許為空 Course表: cno(主鍵) Char(5) 不允許為空 cname varchar(10) 不允許
3、為空 tno char(3) 不允許為空 Teacher表 tno char(5) 不允許為空 tname varchar(10) 不允許為空 depart varchar(8) 不允許為空 Tsex char(2) 不允許為空 Tbirth datetime , 允許為空 prof char(6) 允許為空 2概念設(shè)計(jì)內(nèi)容 2。1 概念設(shè)計(jì)綜述 由需求分析的結(jié)果可知,本系統(tǒng)設(shè)計(jì)的實(shí)體包括: (1)學(xué)生基本信息:學(xué)號,姓名,性別,地址,年齡,專業(yè)。 (2)課程基本信息: 課程名,課程號,分?jǐn)?shù),學(xué)時(shí),學(xué)分. 這些實(shí)體間的聯(lián)系包括: (1
4、)學(xué)生(學(xué)號,姓名,性別,年齡,地址,系別),其主關(guān)鍵字為學(xué)號; (2)課程(課程名,課程號,學(xué)時(shí),學(xué)分),其中主關(guān)鍵字為課程號; (3)成績(課程號,學(xué)號,分?jǐn)?shù))其中主關(guān)鍵字為學(xué)號和課程號.可以與學(xué)生關(guān)系模式合并為:學(xué)生(學(xué)號,姓名,性別,年齡,地址,系別,成績,課程號)。 2.2 E—R模型如下: 3規(guī)范化設(shè)計(jì) 1.范式的判斷條件: 第一范式:如果一個(gè)關(guān)系模式R的所有屬性域都是原子的,我們稱關(guān)系模式R屬于第一范式; 第二范式:若關(guān)系模式R滿足第一范式,且每一個(gè)非主屬性完全函數(shù)依賴于碼,則關(guān)系模式R滿足第二范式; BC范式:對于R中所有的函數(shù)依賴,下面
5、至少有一個(gè)成立(α->β是平凡的,α是模式R的一個(gè)超碼); 第三范式:在BC范式的判斷條件上加多一個(gè)條件:β-α中每個(gè)屬性A都包含在R的一個(gè)候選碼中。 2.本關(guān)系模型的判斷: A、對于我設(shè)計(jì)的關(guān)系模式中所有實(shí)體集和關(guān)系集,每一個(gè)屬性的屬性域都是不可再分的,都具有原子性,因此由該關(guān)系模式轉(zhuǎn)換而來的關(guān)系模型符合第一范式的要求。 B、對于由關(guān)系模式中的聯(lián)系集轉(zhuǎn)換而來的關(guān)系模型,因?yàn)樗鼈兊膶傩远际菂⒓雨P(guān)系的實(shí)體集的主碼,都完全依賴于對應(yīng)關(guān)系集的主碼且都是非平凡的函數(shù)依賴,因此這些關(guān)系模型滿足2NF,3NF,BCNF; 4數(shù)據(jù)庫邏輯設(shè)計(jì) 4.1 關(guān)系模型 與設(shè)計(jì)的關(guān)系模式相對應(yīng)的S
6、QL語句如下: 4。2。1創(chuàng)建數(shù)據(jù)庫: create database ssh on ( name=ssh, filename=’e:\database\ssh.mdf’, size=1) log on ( name=ssh1, filename=’e:\database\ssh1.ldf', size=1) 4.2。2創(chuàng)建數(shù)據(jù)表 (1) student表 use ssh create table student ( sno char(8) primary key, sname char(10) not null, Ssex char(2) not
7、null, Sbirth datetime, class char(4) not null semail varchar(20)) (2) score表 create table score (sno char(8) not null, cno char(4) not null, degree float not null) (3) course表 create table course (cno char(5) not null primary key, cname varchar(10) not null, tno char(3) not null )
8、 (4) teacher表 create table teacher (tno char(5) not null primary key, tname varchar(10) not null, depart varchar(8) not null, Tsex char(2) not null, Tbirth datetime , prof char(6) ) 4。2 編程性結(jié)構(gòu) 4.2。1創(chuàng)建存儲過程 (1) 創(chuàng)建一個(gè)存儲過程. 用來顯示成績表中的課程號在課程表中并且所任教師性別為男、所在部門是計(jì)算機(jī)系的成績表中的列 create pro
9、c student_11 as select * from score where cno in (select cno from course ,teacher where course.tno=teacher.tno and depart='計(jì)算機(jī)系' and tsex=’男’) 調(diào)用此存儲過程 Exec student_11 (2) 創(chuàng)建一個(gè)帶輸入?yún)?shù)的存儲過程。 調(diào)用此存儲過程時(shí),給出一個(gè)學(xué)生名,顯示出此學(xué)生的學(xué)號,姓名,所學(xué)課程號,課程名稱和對應(yīng)的成績 create proc student_name @sname varchar(10) as selec
10、t student.sno,sname,o,degree cname from student,score,course where student.sno=score。sno and score。cno=o and sname=@sname 調(diào)用此存儲過程,(此例是輸出姓名為歷史的學(xué)生的信息) exec student_name ’歷史' (3) 創(chuàng)建一個(gè)存儲過程,傳遞一個(gè)學(xué)生姓名. 先判斷此學(xué)生是否有郵箱,如果有,則顯示此學(xué)生的姓名,郵箱地址,學(xué)號,班級;如果沒有的話,輸出此句話'the semail is empty' create proc student_email
11、@sname varchar(10) as begin if (select semail from student where sname=@sname) is null begin print'the semail is empty' end else select sname,semail,sno,class from student where sname=@sname end 調(diào)用此存儲過程 exec student_email 'super’ 當(dāng)給出姓名的那個(gè)學(xué)生沒有郵箱地址時(shí),則會顯示如下內(nèi)容。 exec student_email dfdf’ 4.
12、2。2觸發(fā)器 (1) 創(chuàng)建一個(gè)觸發(fā)器。 來檢查學(xué)生的郵箱地址是否相同,如果相同,輸出'inserting fail’,并且回滾事務(wù);如果不相同,則插入成功。 create trigger studentinsert on student after insert as if (select semail from inserted where semail in (select semail from student)) is not null begin print 'inserting fail’ rollback transaction end else
13、 print’insering succeed’ 向?qū)W生信息表中插入一條記錄,檢驗(yàn)是否成功插入 insert into student values(’114','lengbing’,’女’,’1985-12-12’,'11',’lengbingssh@',’一般' ) (2) 在成績表中建立一個(gè)觸發(fā)器, 當(dāng)向表中添加記錄時(shí),此學(xué)生的成績都乘以1.2 create trigger scoreupdate on score after insert as update score set degree=degree*1。2 from score where sno in (s
14、elect sno from inserted ) 向表中插入一條記錄,檢驗(yàn)觸發(fā)器是否有用。 insert into score values('108','01',’56’) 4。2。3自定義函數(shù) (1) 創(chuàng)建一個(gè)用戶自定義函數(shù),輸出與指定的學(xué)生同班的學(xué)生個(gè)數(shù) create function studentcount(@sno char(5))returns int begin declare @counter int select @counter=count(*) from student where class=(select class from student w
15、here sno=@sno) return @counter end 調(diào)用此自定義函數(shù)(本例是查找與學(xué)號102同班的學(xué)生個(gè)數(shù)) declare @a int set @a=dbo。studentcount('102’) print convert(char(3),@a) (2) 創(chuàng)建一個(gè)用戶自定義函數(shù),用于輸出同一個(gè)班級中的學(xué)生信息 create function studentclass (@class char(5)) returns table return(select * from student where class=@class) 調(diào)用自定義函數(shù)(本例是
16、輸出12班的學(xué)生信息) select * from studentclass('12') 4.3數(shù)據(jù)操作 4。3.1 插入 (1)向?qū)W生表插入信息 insert into student values(’101','生活',’女','1983—09-18’,'11’) insert into student values('102’,'風(fēng)塵','男',’1984—01-01’,'11') insert into student values(’103’,'離開','男’,'1984-01—01',’11') insert into student values(’104’,’
17、流浪',’女’,’1984—11-11',’11’) insert into student values('105',’生命',’男’,'1984-12—05’,'13') insert into student values(’106’,’無悔’,'女',’1984-11—01',’13’) insert into student values('107',’歷史’,’女’,'1984-10-01’,’12') insert into student values(’108','風(fēng)塵’,’男',’1985—9-08','11’) insert into student value
18、s(’109’,’活著',’男','1985—12—12','12’) insert into student values(’110’,’傻瓜’,'女’,'1985—08—28’,'12’) 查看記錄 Select * from student (2)向成績表中添加 insert into score values(’101','01’,88) insert into score values('101’,’02',85) insert into score values('102',’02’,80) insert into score values(’101’,’03
19、’,88) insert into score values('102',’02’,85) insert into score values(’102’,'03’,80) insert into score values(’103',’01',83) insert into score values('103',’02',85) insert into score values('103’,’03’,90) insert into score values(’104','01',60) 查看記錄 Select * from score (3)向教師表中添加數(shù)據(jù) inser
20、t into course values('01’,'計(jì)算機(jī)’,’11') insert into course values('02’,’網(wǎng)絡(luò)管理','12’) insert into course values(’03’,’專業(yè)英語','13') insert into course values(’04’,’軟件工程','14') 查看記錄 Select * from course (4)向課程表中添加數(shù)據(jù) insert into teacher values('11’,'無意',’計(jì)算機(jī)系’,'男',’1973—4-5’,'教授') insert into teac
21、her values(’12',’生活’,’計(jì)算機(jī)系’,’女’,'1975—12—1’,’副教授’) insert into teacher values('13',’沒有’,'管理系’,’女',’1975-3—3','副教授') insert into teacher values(’14',’離開',’英語系','男’,’1973—5—5','教授') 查看記錄 Select * from teacher 4.3.2查詢 (1) 查詢成績大于學(xué)號為101的學(xué)生的課程為02的成績的所有列。 select * from score where degree>(select
22、degree from score where sno=’101' and cno=’02’) (2) 查詢課程號01大于課程號02的最大值、并以分?jǐn)?shù)降序排序的成績表中所有列 select * from score s where o='01’ and s.degree〉=(select max(degree) from score y where o=’02' ) order by degree desc go select max(degree) as "02max" from score where cno=’02’ (3) 查詢性別為男的學(xué)號,姓名,班級,課程號和成績的學(xué)生
23、 select student.sno,student.sname,student.class,score。cno,score。degree from student,score where student.sno=score.sno and ssex='男' (4) 查詢成績在60到80之間的所有列 select * from score where degree between 60 and 80 (5) 查詢score表中至少有5名學(xué)生選修的并以0開頭的課程的平均分 select avg(degree) as "平均分”,cno from score where cno lik
24、e ’0%’ group by cno having count(*)〉=5 4.3。3創(chuàng)建數(shù)據(jù)類型 創(chuàng)建一個(gè)email自定義數(shù)據(jù)類型 exec sp_addtype email, ’varchar(20)' , 'null’ 修改student表中的semail數(shù)據(jù)類型為email類型 alter table student alter column semail email 4.3.4向表中添加字段 向student表添加type,semail,,b并且郵件地址有check約束 alter table student add type char(7) alter
25、table student add semail varchar(20) null constraint ck_sem check (semail like ’%@%’) alter table teacher add tel varchar(15) 4.3.5創(chuàng)建視圖 (1) 創(chuàng)建所有11班的學(xué)生信息的視圖 create view student11 as select * from student where class=’11’ 查看視圖中的記錄 select * from student11 (2) 創(chuàng)建視圖course_degree 其中的內(nèi)容是選修計(jì)算機(jī)課程
26、的學(xué)生信息,包括(sno,sname,cno,cname,degree),創(chuàng)建時(shí)加上with check option create view course_degree(sno,sname,cno,cname,degree) as select score。sno,sname,o,cname,degree from course ,student, score where o=o and student。sno=score.sno and cname='計(jì)算機(jī)’ with check option 查看視圖中的記錄 select * from course_degree
27、 (3) 創(chuàng)建一個(gè)視圖,其中的內(nèi)容是成績表中每門課程的 create view average as select avg(degree) as '平均分' from score group by cno 查看視圖中的記錄 select * from average (4) 創(chuàng)建視圖其中的內(nèi)容是所有男教師和男學(xué)生的name,sex,birth create view man as select sname as name,ssex as sex,sbirth as birth from student where ssex='男' union select t
28、name,tsex,tbirth from teacher where tsex='男' 查看視圖中的記錄 select * from man 5實(shí)驗(yàn)總結(jié)與感想。 通過這次的課程設(shè)計(jì),使我了解了更多數(shù)據(jù)庫系統(tǒng)概念這門課程,對以前不太理解和熟悉的內(nèi)容有更多的掌握.在我設(shè)計(jì)的學(xué)生成績管理系統(tǒng)中,雖然一開始我對這個(gè)系統(tǒng)怎樣設(shè)計(jì)完完全全沒有概念,但是如果仔細(xì)的想一下,還是可以找到出發(fā)點(diǎn)的。首先要建立一個(gè)完整的管理系統(tǒng),就必須明白這個(gè)系統(tǒng)所包含的基本內(nèi)容、處理一些怎樣的信息等.最主要的是畫出他們的E-R圖,便可直觀的看出他們關(guān)系。在設(shè)計(jì)的時(shí)候,有時(shí)候也會感到?jīng)]有思路了,或許是只有一點(diǎn)點(diǎn)的頭緒,可經(jīng)過對圖的分析和認(rèn)真觀察他們的關(guān)系后,便有了新的思路和閃光點(diǎn)。最后根據(jù)自己的整理資料將每一步都運(yùn)用SQL語言執(zhí)行出來,并且看以下是否符合結(jié)果要求。我想經(jīng)過這次課程設(shè)計(jì)可以更好的將所學(xué)知識運(yùn)用到實(shí)際中去,也讓我加深了對數(shù)據(jù)庫知識的認(rèn)識和了解。在這次實(shí)踐設(shè)計(jì)過程中,我懂得了如何將所學(xué)的理論知識運(yùn)用到實(shí)際中去,使得所學(xué)的知識能夠融會貫通.同時(shí),在課程設(shè)計(jì)過程中,我懂得了許多知識,增加了我對數(shù)據(jù)庫的興趣 ,今后一定努力的學(xué)習(xí),在實(shí)踐中增加自己的學(xué)習(xí)樂趣,讓自己更加充實(shí)。 最后,感謝老師一學(xué)期來對我們的辛勤教導(dǎo)。
- 溫馨提示:
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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識競賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識測試題庫及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測工種技術(shù)比武題庫含解析
- 1 礦山應(yīng)急救援安全知識競賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案