您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 设计及方案 > 数据库课程设计-学生学籍管理系统
课程设计报告科目:数据库系统设计题目:学生学籍管理系统专业:计算机科学与技术姓名:数据库设计一.需求分析1.数据需求:(1)数据字典主要涉及到以下七个表,分别为:专业参照表、班级信息表、课程表、学生基本信息表、教学计划表、教师授课表、学生成绩表。以下是数据字典:专业参照表班级信息表课程表学生基本信息表教学计划表教师授课表(假设教师无重名)学生成绩表Major专业名称Classid班级编号Major专业名称Courseid课程编号Name课程名称Credit学分Studentid学号Name姓名Sex性别Birthday出生年月Classid班级编号Major专业名称Courseid课程编号Nature课程性质Term课程开设学期Teacher教师名称Classid班级编号Courseid课程编号Studentid学号Courseid课程编号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.学生分班表:SL(sno,lno)该关系模式的码为sno,由于只有一个码,所以不存在非主属性对码的部分函数依赖,可以达到2NCF。另外,该关系模式的函数依赖为:sno-lno,其间不存在传递依赖,故课程信息表可达到3NCF.专业分班表:LM(lno,mno)该关系模式的码为lno,由于只有一个码,所以不存在非主属性对码的部分函数依赖,可以达到2NCF。另外,该关系模式的函数依赖为:lno-mno,其间不存在传递依赖,故课程信息表可达到3NCF.专业教学表:MC(mno,cno)该关系模式的码为mno,由于只有一个码,所以不存在非主属性对码的部分函数依赖,可以达到2NCF。另外,该关系模式的函数依赖为:mno-cno,其间不存在传递依赖,故课程信息表可达到3NCF.学生选课表:SC(sno,cno,score)该关系模式的码为sno,cno且(so,cno)-score,所以不存在非主属性对码的部分函数依赖,可以达到2NCF。另外,该关系模式的函数依赖不存在传递依赖,故课程信息表可达到3NCF.教师授课表:TL(tno,lno,cno)该关系模式的码为tno,lno且(tno,lno)-cno,所以不存在非主属性对码的部分函数依赖,可以达到2NCF。另外,该关系模式的函数依赖不存在传递依赖,故课程信息表可达到3NCF.3.物理结构设计(1)基本表学生信息表S列名主码候选码外码被参照表允许空数据类型约束条件sno是否否无否Char(10)sname否否否无否Char(20)ssex否否否无是Char(2)只可取男或女sbirth否否否无是Char(20)课程信息表C列名主码候选码外码被参照表允许空数据类型约束条件cno是否否无否Char(10)cname否否否无否Char(20)cnature否否否五否Char(10)cterm否否否五否Char(10)ccredit否否否五否Intccredit0专业信息表M列名主码候选码外码被参照表允许空数据类型约束条件mno是否否无否Char(10)mname否否否无否Char(20)教师信息表T列名主码候选码外码被参照表允许空数据类型约束条件tno是否否无否Char(10)tname否否否无否Char(20)班级信息表L列名主码候选码外码被参照表允许空数据类型约束条件lno是否否无否Char(10)学生分班表SL列名主码候选码外码被参照表允许空数据类型约束条件sno是否是S否Char(10)lno否否是L否Char(10)专业分班表LM列名主码候选码外码被参照表允许空数据类型约束条件lno是否是L否Char(10)mno否否是M否Char(10)专业教学表MC列名主码候选码外码被参照表允许空数据类型约束条件mno是否是M否Char(10)cno否否是C否Char(10)学生选课表SC列名主码候选码外码被参照表允许空数据类型约束条件sno是否是S否Char(10)cno是否是C否Char(10)score否否否无是smallintscore=0教师授课表TL列名主码候选码外码被参照表允许空数据类型约束条件tno是否是T否Char(10)lno是否是L否Char(10)cno否否是C否Char(10)(2)视图,索引a.索引:本数据库中的表除了主键本身生成的主索引外,没有定义其他的索引。在查询时即引用主索引即可。表S的主索引列为:sno表C的主索引列为:cno表M的主索引列为:mno表T的主索引列为:tno表L的主索引列为:lno表SL的主索引列为:sno表LM的主索引列为:lno表MC的主索引列为:mno表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库的支持,其中在对于输入检查方面还采用了正则表达式技术。此次大作业历时一个月,可以说是我在大三上学期最用心做的作品之一,并将完成的网站发布在了自己的个人网页上。整个设计过程下来,自己在网页设计方面的技术已经有了一个明显的提高,可以说是大有裨益的。
本文标题:数据库课程设计-学生学籍管理系统
链接地址:https://www.777doc.com/doc-6018456 .html