要求實(shí)現(xiàn)功能:
(1)學(xué)生、課程、教師等信息的錄入和維護(hù),一門課只由一位教師上,一位教師可上多門課
(2)學(xué)生進(jìn)行選課,一學(xué)期約20學(xué)分
(3)教師在每門課結(jié)束后給出學(xué)生成績(jī),不及格則補(bǔ)考后記錄補(bǔ)考成績(jī)
(4)能明細(xì)查詢某學(xué)生的選課情況及某課程的選修學(xué)生情況
(5)能統(tǒng)計(jì)查詢出某學(xué)生的成績(jī)單(總成績(jī)、平均成績(jī)、不及格門數(shù)等)及某門課的選課人數(shù)、最高分、最低分、平均成績(jī)等統(tǒng)計(jì)信息
目錄
一、引言
1.1課題背景
1.2課程設(shè)計(jì)目的
1.3課程設(shè)計(jì)任務(wù)
二、需求分析
三、統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)
3.1 概念結(jié)構(gòu)設(shè)計(jì)
3.1.1學(xué)生E-R圖
3.1.2教師E-R圖
3.1.3課程E-R圖
3.1.4選課E-R圖
3.1.5整體E-R圖
3.2 邏輯結(jié)構(gòu)設(shè)計(jì)
3.2.1 將總體概念結(jié)構(gòu)E-R圖轉(zhuǎn)化成關(guān)系模型
3.2.2數(shù)據(jù)模型的優(yōu)化
3.3 物理結(jié)構(gòu)設(shè)計(jì)
四、數(shù)據(jù)庫(kù)實(shí)現(xiàn)
4.1創(chuàng)建數(shù)據(jù)庫(kù)
4.2數(shù)據(jù)庫(kù)表的創(chuàng)建
4.2.1創(chuàng)建學(xué)生信息表
4.2.2創(chuàng)建教師信息表
4.2.3創(chuàng)建課程信息表
4.2.4創(chuàng)建選課信息表
4.3關(guān)系圖如下
4.4插入數(shù)據(jù)
4.5數(shù)據(jù)更新
4.5.1向?qū)W生表添加一個(gè)學(xué)生信息
4.5.2修改陳暢的手機(jī)號(hào)
4.5.3刪除陳暢的個(gè)人信息
4.6數(shù)據(jù)查詢
4.6.1簡(jiǎn)單查詢
4.6.2嵌套查詢
4.6.3模糊查詢
4.6.4連接查詢
4.6.5分組查詢
4.6.6查詢的排序
4.6.7聚合函數(shù)
4.7視圖
4.7.1 創(chuàng)建一個(gè)關(guān)于補(bǔ)考信息的成績(jī)表,包含所有列
4.7.2 創(chuàng)建一個(gè)僅包含專業(yè)基礎(chǔ)課的課程信息表
五、總結(jié)
一、引言
1.1課題背景
????隨著信息化時(shí)代的到來(lái),計(jì)算機(jī)技術(shù)也得到了廣泛應(yīng)用,為高等院校的管理提供了更加先進(jìn)、方便和高效的方法。針對(duì)大學(xué)教務(wù)管理的問題,開發(fā)一個(gè)學(xué)生信息管理系統(tǒng)已經(jīng)成為一項(xiàng)十分重要和必要的工作。而數(shù)據(jù)庫(kù)實(shí)驗(yàn)學(xué)生信息管理系統(tǒng)就是基于數(shù)據(jù)庫(kù)技術(shù)開發(fā)的一種高校管理軟件。
???該系統(tǒng)的主要目的是管理學(xué)生的基本信息、課程信息、成績(jī)信息、選課信息等。在學(xué)生信息管理系統(tǒng)中,可以對(duì)學(xué)生基本信息進(jìn)行統(tǒng)一管理,如姓名、學(xué)號(hào)、性別、出生日期、籍貫、聯(lián)系方式等,以及學(xué)生成績(jī)和選課情況的管理。同時(shí),該系統(tǒng)具備權(quán)限控制功能,能夠有效防止信息被盜取或修改。通過(guò)該系統(tǒng),可實(shí)現(xiàn)對(duì)學(xué)生進(jìn)行全面細(xì)致的管理,大大提高了工作效率,減少了人力資源的投入。
1.2課程設(shè)計(jì)目的
(1)實(shí)踐使用數(shù)據(jù)庫(kù)技術(shù):學(xué)生信息管理系統(tǒng)作為一個(gè)基礎(chǔ)型數(shù)據(jù)庫(kù)應(yīng)用,操作基本,涉及的表和字段不多,但是很實(shí)用,讓學(xué)生能夠快速上手操作數(shù)據(jù)庫(kù)軟件,了解數(shù)據(jù)庫(kù)的常見概念和基本功能。
(2)學(xué)習(xí)數(shù)據(jù)庫(kù)的設(shè)計(jì)與實(shí)現(xiàn):學(xué)生信息管理系統(tǒng)涉及多張關(guān)聯(lián)表的設(shè)計(jì),通過(guò)學(xué)習(xí)系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn),使學(xué)生了解到數(shù)據(jù)庫(kù)設(shè)計(jì)的方法和技巧,包括實(shí)體和關(guān)系建模、表的設(shè)計(jì)、屬性的定義、索引的設(shè)置以及語(yǔ)法的使用等。
(3)培養(yǎng)學(xué)生信息管理能力:學(xué)生信息管理系統(tǒng)的功能比較全面,可以使學(xué)生通過(guò)信息的錄入、查詢、管理等方面,學(xué)習(xí)信息管理的基本方法和技巧,提高信息管理能力。
(4)提高學(xué)生綜合應(yīng)用能力:學(xué)生信息管理系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)需要涉及到多個(gè)學(xué)科的知識(shí),如數(shù)據(jù)結(jié)構(gòu)、算法、數(shù)據(jù)庫(kù)技術(shù)等,通過(guò)實(shí)踐能夠提高學(xué)生的綜合應(yīng)用能力。
1.3課程設(shè)計(jì)任務(wù)
1. 需求分析:明確學(xué)生信息管理系統(tǒng)的使用、功能、性能和質(zhì)量等方面的需求,制定相應(yīng)的產(chǎn)品需求規(guī)格說(shuō)明書。
2. 概念設(shè)計(jì):根據(jù)需求規(guī)格說(shuō)明書,進(jìn)行實(shí)體和關(guān)系的建模,設(shè)計(jì)ER圖和表結(jié)構(gòu),明確數(shù)據(jù)庫(kù)的存儲(chǔ)要求。
3. 邏輯設(shè)計(jì):設(shè)計(jì)系統(tǒng)的邏輯架構(gòu),包括數(shù)據(jù)庫(kù)的建模、SQL語(yǔ)句和數(shù)據(jù)字典的編寫等。
4. 物理設(shè)計(jì):設(shè)計(jì)系統(tǒng)的物理架構(gòu),包括數(shù)據(jù)庫(kù)、表和索引的創(chuàng)建、存儲(chǔ)和管理等。
5. 實(shí)現(xiàn)與測(cè)試:根據(jù)設(shè)計(jì)要求,實(shí)現(xiàn)并測(cè)試學(xué)生信息管理系統(tǒng)的各項(xiàng)功能,包括記錄的增加、修改、刪除、查詢以及數(shù)據(jù)的統(tǒng)計(jì)和報(bào)表分析等。
二、需求分析
本系統(tǒng)的用戶是學(xué)生公寓管理人員和負(fù)責(zé)老師,他們?cè)谌粘9⒐芾淼闹饕ぷ饔校喝胱W(xué)生信息的查詢與管理、寢室分配及調(diào)整、來(lái)訪登記等。根據(jù)上述需求進(jìn)行分析,本系統(tǒng)在實(shí)現(xiàn)上應(yīng)該具有如下功能:
◎ 學(xué)生基本信息管理:學(xué)生基本信息添加、修改、查詢、刪除;
◎ 教師基本信息管理:教師基本信息添加、修改、查詢、刪除;
◎ 課程基本信息管理:課程基本信息添加、修改、查詢、刪除;
◎ 選課成績(jī)基本信息管理:選課信息和成績(jī)的添加、修改、查詢、刪除,以及補(bǔ)考成績(jī)錄入。
根據(jù)上述分析,可以設(shè)計(jì)出此系統(tǒng)的系統(tǒng)體系結(jié)構(gòu)圖
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖2.1學(xué)生信息費(fèi)管理系統(tǒng)功能模塊示意圖
三、統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)
3.1 概念結(jié)構(gòu)設(shè)計(jì)
根據(jù)需求分析抽象出信息結(jié)構(gòu),可得該系統(tǒng)的E-R圖。
部分E-R圖
3.1.1學(xué)生E-R圖
?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖3.11學(xué)生E-R圖
3.1.2教師E-R圖
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖3.1.2教師E-R圖
3.1.3課程E-R圖
?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖 3.1.3課程E-R圖
3.1.4選課E-R圖
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖3.1.4選課E-R圖
3.1.5整體E-R圖
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖3.1.5整體E-R圖
3.2 邏輯結(jié)構(gòu)設(shè)計(jì)
3.2.1 將總體概念結(jié)構(gòu)E-R圖轉(zhuǎn)化成關(guān)系模型
關(guān)系模型:
學(xué)生(學(xué)號(hào)#,姓名,性別,聯(lián)系方式)
教師(教師編號(hào)#,姓名,性別,聯(lián)系方式)
課程(課程號(hào)#,教師編號(hào),課程名,學(xué)分)
選課(課程編號(hào)#,學(xué)號(hào)#,成績(jī)類型#,成績(jī))
3.2.2數(shù)據(jù)模型的優(yōu)化
- ?確定數(shù)據(jù)依賴
1. 學(xué)生(學(xué)號(hào)#,姓名,性別,聯(lián)系方式)
第三范式:學(xué)號(hào) ->(姓名,性別,聯(lián)系方式)
2. 教師(教師編號(hào)#,姓名,性別,聯(lián)系方式)
第三范式:教師編號(hào)->(姓名,性別,聯(lián)系方式)
3.?課程(課程號(hào)#,教師編號(hào),課程名,學(xué)分)
第三范式:課程號(hào)->(教師編號(hào),課程名,學(xué)分)
4.?選課(課程編號(hào)#,學(xué)號(hào)#,成績(jī)類型#,成績(jī))
第三范式:(課程編號(hào),學(xué)號(hào),成績(jī)類型)->(成績(jī))
- 各關(guān)系模式間數(shù)據(jù)依賴進(jìn)行極小化處理,消除冗余
通過(guò)分析發(fā)現(xiàn)其關(guān)系中都沒有數(shù)據(jù)的冗余:學(xué)生關(guān)系中學(xué)號(hào)Sno決定學(xué)生的信息;教師關(guān)系中教師編號(hào)作為主鍵;課程關(guān)系中課程號(hào)作為主鍵;選課關(guān)系中,需要用(課程編號(hào),學(xué)號(hào),成績(jī)類型)共同作為主鍵來(lái)唯一確定一個(gè)考試成績(jī),因?yàn)榇嬖谘a(bǔ)考,所以需要使用成績(jī)類型加以區(qū)分,成績(jī)類習(xí)慣可選為正?;蜓a(bǔ)考。
3.3 物理結(jié)構(gòu)設(shè)計(jì)
3.3.1學(xué)生信息表的結(jié)構(gòu)
編號(hào) |
字符名稱 |
數(shù)據(jù)類型 |
長(zhǎng)度 |
說(shuō)明 |
1 |
學(xué)號(hào) |
char |
10 |
學(xué)生學(xué)號(hào),主鍵 |
2 |
姓名 |
varchar |
20 |
不允許空 |
3 |
性別 |
char |
2 |
不允許空 check約束 |
4 |
聯(lián)系方式 |
char |
11 |
允許空 |
5 |
生日 |
Date |
允許空 |
3.3.2教師信息表的結(jié)構(gòu)
編號(hào) |
字符名稱 |
數(shù)據(jù)類型 |
長(zhǎng)度 |
說(shuō)明 |
1 |
教師編號(hào) |
char |
10 |
教師編號(hào),主鍵 |
2 |
姓名 |
varchar |
20 |
不允許空 |
3 |
性別 |
char |
2 |
不允許空 check約束 |
4 |
聯(lián)系方式 |
char |
11 |
允許空 |
3.3.3課程信息表的結(jié)構(gòu)
編號(hào) |
字段名稱 |
數(shù)據(jù)類型 |
長(zhǎng)度 |
說(shuō)明 |
1 |
課程號(hào) |
char |
10 |
主鍵 |
2 |
課程名 |
varchar |
20 |
不允許空 |
3 |
教師編號(hào) |
char |
10 |
教師編號(hào),外鍵 |
4 |
學(xué)分 |
tinyint |
非空 Check約束 |
3.3.4選課成績(jī)信息表的結(jié)構(gòu)
?編號(hào) |
字段名稱 |
數(shù)據(jù)類型 |
長(zhǎng)度 |
說(shuō)明 |
1 |
學(xué)號(hào) |
char |
10 |
主鍵,外鍵 |
2 |
課程號(hào) |
char |
10 |
主鍵,外鍵 |
3 |
成績(jī)類型 |
char |
2 |
主鍵 Check約束 |
4 |
分?jǐn)?shù) |
tinyint |
非空 Check約束 |
四、數(shù)據(jù)庫(kù)實(shí)現(xiàn)
4.1創(chuàng)建數(shù)據(jù)庫(kù)
create database sms
on primary
(
name=sms,
filename='D:\SQLSERVER_DB\sms.mdf',
size=20MB,
MAXsize=unlimited,
filegrowth=10MB
)
??log on
(
name=sms_log,
filename='D:\SQLSERVER_DB\sms_log.ldf',
size=2mb,
maxsize=10mb,
filegrowth=10%
)
4.2數(shù)據(jù)庫(kù)表的創(chuàng)建
4.2.1創(chuàng)建學(xué)生信息表
create table student(
sno char(10) primary key,
[name] varchar(20) not null,
sex char(2) not null check(sex='男' or sex='女'),
tel char(11)
)
4.2.2創(chuàng)建教師信息表
create table teacher(
sno char(10) primary key,
[name] varchar(20) not null,
sex char(2) not null check(sex='男' or sex='女'),
tel char(11)
)
4.2.3創(chuàng)建課程信息表
create table course(
cno char(10) primary key,
[cname] varchar(20) not null,
tno char(10),
credit tinyint check(credit between 1 and 2), --學(xué)分
constraint FK_teacher_tno foreign key(tno) references teacher(tno)
)
4.2.4創(chuàng)建選課信息表
create table grade(
cno char(10),
sno char(10),
gtype char(2) check(gtype in ('zc','bk')), --成績(jī)類型,zc正常,bk補(bǔ)考
credit tinyint check(credit between 0 and 100),--成績(jī)分?jǐn)?shù)
constraint PK_cno_tno_gtype primary key(cno,sno,gtype),--聯(lián)合主鍵
constraint FK_course_cno foreign key(cno) references course(cno), --外鍵
constraint FK_student_sno foreign key(sno) references student(sno) --外鍵
)
4.3關(guān)系圖如下
4.4插入數(shù)據(jù)
--插入學(xué)生信息
insert into student values('1932101101','趙慶','男','15170000001','2000-11-10');
insert into student values('1932101102','尹遙','男','15170000002','2001-10-10');
insert into student values('1932101103','余軍','男','15170000003','2002-06-10');
insert into student values('1932101104','輝夜','女','15170000004','2003-11-10');
insert into student values('1932101105','晨晨','女','15170000005','2004-11-10');
--插入教師信息
insert into teacher values('1000000001','王欣','女','19170000001');
insert into teacher values('1000000002','鄧丁','男','19170000002');
insert into teacher values('1000000003','李濤','男','19170000003');
--插入課程信息
insert into course values('zyjc000001','數(shù)據(jù)庫(kù)原理','1000000001',2);
insert into course values('zyjc000002','Java程序設(shè)計(jì)','1000000001',2);
insert into course values('zyhx000003','操作系統(tǒng)','1000000002',1);
insert into course values('zyhx000004','計(jì)算機(jī)網(wǎng)絡(luò)','1000000002',2);
insert into course values('zyjc000005','計(jì)算機(jī)組成原理','1000000003',1);
insert into course values('zyjc000006','高等數(shù)學(xué)','1000000003',2);
--插入選課信息
insert into grade values('zyjc000001','1932101101','zc',85);
insert into grade values('zyjc000001','1932101102','zc',75);
insert into grade values('zyjc000001','1932101103','zc',65);
insert into grade values('zyjc000001','1932101104','zc',95);
insert into grade values('zyjc000001','1932101105','zc',70);
insert into grade values('zyjc000002','1932101101','zc',85);
insert into grade values('zyjc000002','1932101102','zc',80);
insert into grade values('zyjc000002','1932101103','zc',70);
insert into grade values('zyhx000003','1932101101','zc',85);
insert into grade values('zyhx000003','1932101102','zc',80);
insert into grade values('zyhx000003','1932101103','zc',75);
insert into grade values('zyhx000003','1932101104','zc',70);
insert into grade values('zyhx000003','1932101105','zc',65);
insert into grade values('zyhx000004','1932101101','zc',85);
insert into grade values('zyhx000004','1932101102','zc',70);
insert into grade values('zyhx000004','1932101103','zc',60);
insert into grade values('zyhx000003','1932101104','bk',99);
insert into grade values('zyhx000003','1932101105','bk',94);
4.5數(shù)據(jù)更新
4.5.1向?qū)W生表添加一個(gè)學(xué)生信息
insert into student
values('1932101106','陳暢','女','15170000006');
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?數(shù)據(jù)的插入
4.5.2修改陳暢的手機(jī)號(hào)
update student set tel='15170000016' where sno='1932101106';
? ?數(shù)據(jù)的修改
4.5.3刪除陳暢的個(gè)人信息
delete from student where sno='1932101106';
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?數(shù)據(jù)的刪除
4.6數(shù)據(jù)查詢
4.6.1簡(jiǎn)單查詢
查詢學(xué)生表信息
select * from student;
?4.6.2嵌套查詢
查詢年齡最大的學(xué)生信息
select * from student where birth=(select min(birth) from student);
4.6.3模糊查詢
查詢所有姓輝的學(xué)生的信息
select * from student where sname like '輝%';
4.6.4連接查詢
查詢課程名和教授的老師
select c.cname,t.tname
from course c,teacher t
where c.tno=t.tno;
查詢學(xué)號(hào)為1932101104選課情況
select * from grade g
left join course c on c.cno=g.cno
where g.sno='1932101104';
4.6.5分組查詢
查詢每個(gè)老師教授課程數(shù)量
select COUNT(*) as count,tno from course group by tno;
查詢某課程的選修學(xué)生的人數(shù)情況
select COUNT(*) as count,c.cno
from course c
left join grade g on c.cno=g.cno
group by c.cno
having c.cno='zyhx000004'
4.6.6查詢的排序
按照成績(jī)由大到小查詢課程號(hào)為zyjc000001的成績(jī)信息
select * from grade
where cno='zyjc000001'
order by credit desc;
?
4.6.7聚合函數(shù)
統(tǒng)計(jì)某學(xué)生的成績(jī)單(總成績(jī),平均成績(jī),不及格門數(shù))
select
sno,
SUM(credit) sum,
AVG(credit) avg,
COUNT(CASE WHEN credit<60 THEN 1 END) as count
from grade
where sno='1932101104'
group by sno;
統(tǒng)計(jì)某門課的選課人數(shù)、最高分、最低分、平均成績(jī)
select
c.cno,
COUNT(g.sno) count,
MAX(g.credit) max,
MIN(g.credit) min,
AVG(g.credit) avg
from course c
left join grade g on g.cno=c.cno
where c.cno='zyhx000003'
group by c.cno;
4.7視圖
4.7.1 創(chuàng)建一個(gè)關(guān)于補(bǔ)考信息的成績(jī)表,包含所有列
create view v_grade_bk
as
select * from grade where gtype='bk';
select * from v_grade_bk;
4.7.2 創(chuàng)建一個(gè)僅包含專業(yè)基礎(chǔ)課的課程信息表
create view v_course_zyjc
as
select * from course where cno like 'zyjc%';
select * from v_course_zyjc;
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-770403.html
五、總結(jié)
本次數(shù)據(jù)庫(kù)課程設(shè)計(jì)學(xué)生信息管理系統(tǒng)的實(shí)驗(yàn),讓我更加深入地了解了數(shù)據(jù)庫(kù)的概念和應(yīng)用。在實(shí)驗(yàn)過(guò)程中,我通過(guò)設(shè)計(jì)和實(shí)現(xiàn)一個(gè)學(xué)生信息管理系統(tǒng),了解到了數(shù)據(jù)庫(kù)的具體操作,并且明確了數(shù)據(jù)庫(kù)的優(yōu)缺點(diǎn)和應(yīng)用場(chǎng)景。同時(shí),我也發(fā)現(xiàn)在實(shí)驗(yàn)中出現(xiàn)了很多問題,包括數(shù)據(jù)庫(kù)設(shè)計(jì)的不夠合理、應(yīng)用場(chǎng)景不夠清晰等方面,需要在今后的學(xué)習(xí)和實(shí)踐中繼續(xù)完善。在概念設(shè)計(jì)、邏輯設(shè)計(jì)和物理設(shè)計(jì)等各個(gè)方面都有了實(shí)際操作和實(shí)踐。在實(shí)驗(yàn)過(guò)程中,我遇到了很多困難和問題,如表的設(shè)計(jì)不夠合理、索引的設(shè)置不夠合理,SQL語(yǔ)句的編寫不夠熟練、索引的設(shè)計(jì)不夠準(zhǔn)確等,但是通過(guò)一步一步的解決,我最終設(shè)計(jì)實(shí)現(xiàn)了一個(gè)穩(wěn)定、高效的學(xué)生信息管理系統(tǒng)。讓我更加深入了解了數(shù)據(jù)庫(kù)在信息管理與應(yīng)用中的重要性和必要性,同時(shí)也提高了我在實(shí)際操作中的能力和技巧。在接下來(lái)的學(xué)習(xí)和實(shí)踐中,我將會(huì)繼續(xù)提升我的數(shù)據(jù)庫(kù)技能,不斷改進(jìn)和挑戰(zhàn)自己。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-770403.html
到了這里,關(guān)于學(xué)生信息管理系統(tǒng)(數(shù)據(jù)庫(kù))的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!