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