学生选课大数据库设计.docx
- 文档编号:16311246
- 上传时间:2023-07-12
- 格式:DOCX
- 页数:15
- 大小:76.21KB
学生选课大数据库设计.docx
《学生选课大数据库设计.docx》由会员分享,可在线阅读,更多相关《学生选课大数据库设计.docx(15页珍藏版)》请在冰点文库上搜索。
学生选课大数据库设计
《数据库系统概论》
学生选课数据库设计
实
验
报
告
系别:
专业:
班级:
学号:
:
日期:
201
第一章设计容与目标
1.1设计容
我设计的是学生选课管理系统,选课管理系统是学校教务系统中很庞大、很复杂的一个数据库系统,在这里我将其简化,只粗略的列举了比较直观的关系模式。
此系统涉及学生信息、教师信息、课程信息、选课信息、还有成绩管理及查询。
1.2设计目标
所实现的功能有:
能记录、学生、教师以及课程的基本情况,能记录学生所选的课程以及相应的成绩和授课教师。
为了简化,每个教师最多教授一门课程,每个学生最多可选一门课程或者不选,每个学生选修的每门课程有一个成绩记载,学生在系统中可以有查询成绩的权限,管理员有修改成绩的权限。
第二章需求分析
2.1需求背景
随着信息时代科技不断提高,学校规模不断扩大,教学质量不断提高,大学期间有许多选修课,以往的选修课方法是课堂报名或者纸上填写方式报名,这种方法虽然直接,但是造成选课的盲目性,而且学生选过课程后不好在更改查看,一方面浪费大量的人力,物力资源,另一方面浪费时间以及在认为统计过程中不可避免的出现差错的情况。
这给广大的老师和学生带来诸多的不便,管理起来也相当困难。
使用网上选课系统可以提前进行网上选课,并且选课以后学生还可以在查看和更改,随意选择各个老师的课程,老师管理起来也比较方便。
鉴于它的重要性,这就迫切需要研制开发一款功能强大,操作简单,具有人性化的网上选课系统。
2.2选课分析
根据分析,本系统的实体有学生、教师、课程和选课信息。
描述学生的属性有:
学号、、性别、年龄、专业。
描述教师的属性有:
教师编号、、性别、职称、专业。
描述课程的属性有:
课程编号、课程名称、课程类型、学时、学分。
描述选课信息的属性有:
学号、课程编号、考试成绩。
每个学生只能属于一个院系,每个学生最多可选一门课程或者不选,每个教师教授最多一门课程。
学生进入查询系统后只能有查询功能,管理员进入则可以有修改成绩的权限。
用户登录时需要有一个用户名和密码。
第三章概要设计
3.1各属性E-R图
3.2总E-R图
数据库的E-R图:
第四章逻辑设计及规化
4.1关系模型
登陆(用户名、密码)
学生(学号、、性别、年龄、专业、班级)
教师(教师编号、、性别、职称、专业)
课程(课程编号、课程名称、课程类型、学时、学分)
选课信息(学号、课程编号、考试成绩)
4.2关系数据表
Register
属性名
数据类型
可否为空
含义
完整性约束条件
UserSID
Char(10)
否
用户名
password
Char(10)
否
密码
STUDENT
属性名
数据类型
可否为空
含义
完整性约束
SID
int
否
学号
主码
SID
char(10)
否
SEX
char
(2)
是
性别
AGE
Int
是
年龄
MAJOR
char(20)
是
专业
YX
char(10)
是
已选
TEACHER
属性名
数据类型
可否为空
含义
完整性约束
TID
int
否
教师编号
主码
TSID
char(10)
否
TSEX
char
(2)
否
性别
ZC
char(10)
否
职称
MAJOR
char(20)
否
专业
COURSE
属性名
数据类型
可否为空
含义
完整性约束
ID
Int
否
课程编号
主码
SID
char(10)
否
课程名称
TYPE
char(10)
否
课程类型
GRADE
Int
可以
学分
PEROID
Int
可以
学时
XK
属性名
数据类型
可否为空
含义
完整性约束
SID
int
否
学号
主码
ID
int
否
课程编号
GRADE
int
是
成绩
JS
属性名
数据类型
可否为空
含义
完整性约束
ID
int
否
课程编号
主码
TID
int
否
教师编号
TTIME
datetime
是
上课时间
第五章数据库对象设计
5.1SQL物理结构设计
1.新建数据库
CreatedatabaseSCdatabase
2.新建用户名和密码表
Createtableregister
(userSIDchar(10),
password2char(10)
);
3.新建学生表
CreatetableSTUDENT
(
SIDintNOTNULLprimarykey,
NAMEchar(10)NOTNULL,
SEXchar
(2)NOTNULLdefault'男'check(SEX='男'orSEX='女'),
AGEintNOTNULL,
MAJORchar(20)NOTNULL,
YXchar(10)NOTNULL,
)
insertintoSTUDENT
values('2014213108','','男','21','','')
insertintoSTUDENT
values('2014213113','','男','21','','')
insertintoSTUDENT
values('2014213138','','女','23','','')
insertintoSTUDENT
values('2014213141','','男','22','','')
insertintoSTUDENT
values('2014213149','','男','22','','')
insertintoSTUDENT
4.新建教师表
CreatetableTEACHER
(
TIDintNOTNULLprimarykey,
TNAMEchar(10)NOTNULL,
TSEXchar
(2)NOTNULLdefault'男'check(TSEX='男'orTSEX='女'),
ZCchar(10)NOTNULL,
MAJORchar(20)NOTNULL
)
insertintoTEACHER
values('1','','男','博士','')
insertintoTEACHER
values('2','','女','博士','')
insertintoTEACHER
values('3','','男','博士','')
insertintoTEACHER
values('4','','女','博士','')
insertintoTEACHER
values('5','','男','博士','')
5.新建课程表
CreatetableCOURSE
(
IDintNOTNULLprimarykey,
NAMEchar(10)NOTNULL,
TYPEchar(10)NOTNULL,
GRADEintNOTNULL,
PREOIDint(10),
);
insertintoCOURSE
values('1','','必修课','3','40',)
insertintoCOURSE
values('2','','选修课','2','30',)
insertintoCOURSE
values('3','','必修课','3','40','JD201')
insertintoCOURSE
values('4','','选修课','2','30')
insertintoCOURSE
values('5','','选修课','2','30')
insertintoCOURSE
select*fromCOURSE
6.新建选课表
CreatetableXK
(
IDint,
SIDint,
GRADEInt,
Primarykey(ID,SID),
Foreignkey(SID)referencesSTUDENT(SID),
Foreignkey(ID)referencesCOURSE(ID)
)
insertintoXK
values('1','2','80')
insertintoXK
values('2','3','85')
insertintoXK
values('3','4','79')
insertintoXK
values('4','20','86')
insertintoXK
values('5','201','88')
select*fromXK
7.新建讲授表
CreatetableJS
(
IDint,
TIDint,
TTIMEdatatime,
Primarykey(ID,TID),
)
insertintoJS
values('1','1','2016-09-0108:
00:
00.000')
insertintoJS
values('2','2','2016-09-0500:
00:
00.000')
insertintoJS
values('3','3','2016-10-0100:
00:
00.000')
insertintoJS
values('4','4','2016-09-0100:
00:
00.000')
insertintoJS
values('5','5','2016-09-0100:
00:
00.000')
select*fromJS
5.2主要查询功能sql语句
1登陆管理
利用用户和密码登陆检验用户名和密码是否存在和正确
select*fromregisterwhereuserSID='abc'andpassword2='123456'
2学生信息管理
1)删除学生信息
deletefromSTUDENTwhereSID=''
2)修改学生信息
updateSTUDENTsetSID='',stucollege='',NAME='',SEX='',
stubirth='',AGE='',MAJOR='',YX=''wheresnum='';
3)增加学生信息
insertintoSTUDENT
values('','','','','','','','')
3课程管理
1)增加课程
insertintoCOURSE
values('','','','','','','','')
2)课程修改
updateCOURSE
setID='',NAME='',CTEACHER='',TYPE='',GRADE='',PREOID='',Chours='',Ccredit=''whereID=''
4查询管理
1)学生查询
(1)按学号查询
select*fromSTUDENTwhereSID=''
(2)按查询
select*fromSTUDENTwhereNAME=''
(3)按性别查询
select*fromSTUDENTwhereSEX=''
(4)按专业查询
select*fromSTUDENTwhereMAJOR=''
2)课程查询
(1)按课程号查询
select*fromXK,COURSE
whereXK.SID=''andXK.ID=COURSE.ID
(2)按授课教师查询
select*fromXK,TEACHER
whereXK.GRADE=''andTEACHER.TID=''
3)成绩查询
select*fromXK,COURSE,STUDENT
whereXK.SID=''andXK.ID=COURSE.IDandXK.SID=STUDENT.SID
5.3选课系统设计要求容
(1)在选课数据库中,统计出选修课程超过门以上的学生信息。
select*fromSTUDENT
whereSTUDENT.SID=(
selectSID
fromXK
groupbySIDhavingcount(SID)!
<4
)
(2)检索出成绩及格的、姓王的女同学信息。
select*fromSTUDENT
whereSTUDENT.SIDin(
selectXK.SID
fromXK
whereXK.GRADE!
<60andSTUDENT.NAMElike'王%'andSTUDENT.SEX='女')
(3)统计出平均分在80分以上的学生的信息,并将结果按平均分升序排列。
selectSID,avg(GRADE)as平均分into#avgtfromXK
groupbySIDhavingavg(GRADE)>=80
selectSTUDENT.*,平均分fromSTUDENTjoin#avgtonSTUDENT.SID=#avgt.SID
orderby平均分asc
(4)统计出至少有三名学生选修的课程的平均分,统计项包含课程编号和平均分。
selectID,avg(GRADE)as平均分fromXK
groupbyIDhavingcount(SID)>=3
(5)为每个实体表和关系表创建合适的索引(聚簇索引、复合索引)、主码、外码
CreateuniqueindexSIDOnSTUDENT(SID);
CreateuniqueindexIDONCOURSE(ID);
CreateuniqueindexTIDONTEACHER(TID);
(10)建立包括选课学生的学号,,系别,所选课程号,课程名,和成绩的视图:
createview选课学生的视图
as
selectS.SID,S.NAME,
S.Stucollege,C.ID,C.NAME,SE.GRADEfromSTUDENTSjoinXKSEonS.SID=SE.SIDjoinCOURSEConC.ID=SE.ID
SELECT*FROM选课学生的视图
第六章心得体会
通过本次课程实验设计,我对SQLServer2008有了更深的了解,数据库和表是SQLServer2008用于组织和管理数据的基本对象,用户使用SQLServer2008设计和实现查询信息,首要的任务是实现数据库的数据的表示和存储,即创建数据库和表。
同时感谢本学期中老师传授的知识和给与的帮助。
在设计过程中,对整个系统的设计特别是行为特性设计有很多的心得,也遇到很多问题,但最终都得到解决。
这次设计的过程涉及之前基础课和专业课的很多的理论知识,但是在实际应用方面涉及很少,而数据库系统设计是需要把这些知识贯通起来,综合运用,所以通过这次设计我的认识问题、分析问题、解决问题的能力都有了很大的提高。
同时自己在动手能力上也有了很大的进步。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 选课 数据库 设计