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