数据库课程设计学生学籍管理系统Word文档格式.docx
《数据库课程设计学生学籍管理系统Word文档格式.docx》由会员分享,可在线阅读,更多相关《数据库课程设计学生学籍管理系统Word文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
班级编号
课程表
Courseid
课程编号
Name
课程名称
Credit
学分
学生基本信息表
Studentid
学号
姓名
Sex
性别
Birthday
出生年月
教学计划表
Nature
课程性质
Term
课程开设学期
教师授课表(假设教师无重名)
Teacher
教师名称
学生成绩表
Score
分数
2.功能需求:
(1)录入一位学生,包含学号、姓名、性别、出生年月、班级等信息
(2)按学号、姓名、专业三种方式查询学生基本信息
(3)录入一学生成绩
(4)查询一位学生所修的课程、性质(必修或选修)、学期、学分及成绩
(5)查询一位学生的必修课平均成绩、所有课程平均成绩(平均成绩应按学分加权)
(6)查询一位学生被哪些教师教过课
(7)查询快要被开除的学生(距被开除差3学分之内)
二.数据库设计
1.概念结构设计
局部ER图
整体的ER图
2.逻辑结构设计
(1)ER图转换为关系模型
由ER图可见:
图中有五个实体:
专业,课程,班级,教师和学生;
五个关系:
专业和班级的1:
n二元关系、专业和课程的1:
n二元关系,学生和班级的1:
n二元关系、教师、课程和班级的三元关系、学生和课程的1:
n二元关系。
由于每个实体必须构造表,所以可以先得到五个实体的信息表,实体的码就是关系的码,实体的属性即关系模型的属性:
(有下划线的属性为主码,斜体的属性为外码)
学生信息表:
S(sno,sname,ssex,sbirth)
课程信息表:
C(cno,cname,cnature,cterm,ccredit)
专业信息表:
M(mno,mname)
教师信息表:
T(tno,tname)
班级信息表:
L(lno)
对应的属性分别为:
学号,姓名,性别,出生日期
课程编号,课程名,课程性质,课程学期,课程学分
专业编号,专业名
教师编号,教师名
班级编号
对于一个1:
n联系,可以转换为一个独立的关系模式,与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。
以上ER图中学生和班级的关系、学生和课程的关系、专业和班级的关系、专业和课程的关系为1:
n关系,所以转换的关系模式为:
学生分班表:
SL(sno,lno)
专业分班表:
LM(lno,mno)
专业教学表:
MC(mno,cno)
学生选课表:
SC(sno,cno,score)
对于3个或3个以上实体间的一个多元关系可以转换为一个关系模式。
与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。
以上ER图中专业、班级和课程的关系以及教师、课程与班级的关系均为多元关系,所以转换的关系模式为:
教师授课表:
TL(tno,lno,cno)
(2)关系模式的优化:
学生信息表S(sno,sname,ssex,sbirth)
该关系模式的码为sno,由于只有一个码,所以不存在非主属性对码的部分函数依赖,可以达到2NCF。
另外,该关系模式的函数依赖为:
sno->
sname,sno->
ssex,sno->
sbirth,其间不存在传递依赖,故学生信息表可达到3NCF.
课程信息表C(cno,cname,cnature,cterm,ccredit)
该关系模式的码为cno,由于只有一个码,所以不存在非主属性对码的部分函数依赖,可以达到2NCF。
cno->
cname,cno->
cnature,cno->
cterm,
cno->
ccredit,其间不存在传递依赖,故课程信息表可达到3NCF.
专业信息表M(mno,mname)
该关系模式的码为mno,由于只有一个码,所以不存在非主属性对码的部分函数依赖,可以达到2NCF。
mno->
mname,其间不存在传递依赖,故课程信息表可达到3NCF.
教师信息表M(tno,tname)
该关系模式的码为tno,由于只有一个码,所以不存在非主属性对码的部分函数依赖,可以达到2NCF。
tno->
tname,其间不存在传递依赖,故课程信息表可达到3NCF.
班级信息表M(lno)
显然课程信息表可达到3NCF.
lno,其间不存在传递依赖,故课程信息表可达到3NCF.
该关系模式的码为lno,由于只有一个码,所以不存在非主属性对码的部分函数依赖,可以达到2NCF。
lno->
mno,其间不存在传递依赖,故课程信息表可达到3NCF.
cno,其间不存在传递依赖,故课程信息表可达到3NCF.
该关系模式的码为sno,cno且(so,cno)->
score,所以不存在非主属性对码的部分函数依赖,可以达到2NCF。
另外,该关系模式的函数依赖不存在传递依赖,故课程信息表可达到3NCF.
该关系模式的码为tno,lno且(tno,lno)->
cno,所以不存在非主属性对码的部分函数依赖,可以达到2NCF。
3.物理结构设计
(1)基本表
学生信息表S
列名
主码
候选码
外码
被参照表
允许空
数据类型
约束条件
sno
是
否
无
Char(10)
sname
Char(20)
ssex
Char
(2)
只可取男或女
sbirth
课程信息表C
cno
cname
cnature
五
cterm
ccredit
Int
ccredit>
专业信息表M
mno
mname
教师信息表T
tno
tname
班级信息表L
lno
学生分班表SL
S
L
专业分班表LM
M
专业教学表MC
C
学生选课表SC
score
smallint
score>
=0
教师授课表TL
T
(2)视图,索引
a.索引:
本数据库中的表除了主键本身生成的主索引外,没有定义其他的索引。
在查询时即引用主索引即可。
表S的主索引列为:
表C的主索引列为:
表M的主索引列为:
表T的主索引列为:
表L的主索引列为:
表SL的主索引列为:
表LM的主索引列为:
表MC的主索引列为:
表SC的主索引列为:
(sno,cno)
表TL的主索引列为:
(tno,lno)
b.视图:
虽然关系数据模型分析的结果表示该数据库需要定义不同的用户视图,但考虑到数据库与前台开发程序的连接比较复杂,所以该数据库中没有单独定义用户视图,不同的用户视图被有选择性的的select语句的结果集取.
三.系统功能设计
成绩维护
添加
更新
删除
基本信息维护
四.系统实现
数据库实现的环境为MYSQL,后台为PHP,前端为HTML+CSS+JS,以下将对结果进行演示
五.应用程序开发
应用程序为一WEB网站,前端由HTML+CSS+JS实现,后台由PHP实现,数据库由MYSQL实现,项目结构如下图所示
六.遇到的主要问题及解决方法
基本没有遇到较大的问题,设计中存在的一些问题主要集中在前端的页面呈现方面,由于对于CSS的使用不熟练,造成在页面美化时出现了一些与设计思路不一致的情况,这些问题也大多在之后陆续解决。
在数据库设计方面并没有遇到什么问题。
七.总结
通过这次的实验,我对数据库在生活中的广泛应用有了更深的体会,同时也加深了对MYSQL、PHP、JS、HTML、CSS的认识。
整个项目从前端页面到后台服务器再到后台数据库,全部由我一个人独立设计完成,可以说是整合了我大学三年以来所学到的网页编程知识。
原本在看到这次的数据库大作业时,虽然老师已说明对于界面美观不做要求,但是抱着学习的态度,我仍然尽我所能将页面做的美观起来。
其中不乏使用了诸多CSS3以及HTML5提供的新技术,以及jquery库的支持,其中在对于输入检查方面还采用了正则表达式技术。
此次大作业历时一个月,可以说是我在大三上学期最用心做的作品之一,并将完成的网站发布在了自己的个人网页上。
整个设计过程下来,自己在网页设计方面的技术已经有了一个明显的提高,可以说是大有裨益的。