1实验目的
在本次实训中,通过实际调查分析,依据需求,引导学生在SQL Server数据库管理系统中实现一个具体数据库系统的设计与开发。从而使学生更加深入理解数据库系统完整的设计与开发过程:需求分析、功能设计、概念设计、逻辑设计、物理设计。通过实践操作培养学生分析、设计及实现数据库系统的基本技能,培养从事后台数据库开发、管理、维护的职业能力。
2.实验内容
根据调查分析,完成学生成绩管理系统的需求分析,概念设计,逻辑设计以及利用SQL2000完成物理设计和数据库的试运行,最后完成实训报告。
3需求分析
3.1事物需求
3.1.1学生:只需要查询自己的单科成绩(总成绩),或者所有成绩(总成绩);
3.1.2教师:能输入教授班级的本科成绩(平时成绩,期末成绩,总成绩),查询教授班级的本科成绩(平时成绩,期末成绩,总成绩),修改自己输入的成绩(平时成绩,期末成绩,总成绩)
3.2.数据字典
3.2.1 数据项
表3-1 数学生字典
| 属性名 | 存储代码 | 类型 | 长度 | 备注 |
| 学号 | Sno | Char | 10 | 学校在校学生 |
| 姓名 | Sname | Char | 20 | |
| 班号 | Sclass | Char | 10 |
表3-2 课程数据字典
| 属性名 | 存储代码 | 类型 | 长度 | 备注 |
| 课程号 | Cno | Char | 10 | 学校开设课程的课程号 |
| 课程名1 | Cname1 | Char | 20 | 课程的中文名字 |
| 课程名2 | Cname2 | Char | 20 | 课程的英文名字 |
| 学分 | Ccredit | Smallint | 2 | 课程对应的学分 |
| 课程属性 | Cnature | Char | 10 |
| 属性名 | 存储代码 | 类型 | 长度 | 备注 |
| 课程号 | Cno | Char | 10 | 学校开设课程的课程号 |
| 学号 | Sno | Char | 10 | 学校在校学生 |
| 教师号 | Tno | Char | 10 | 教授此课程教师的教师号 |
| 平时成绩 | Cscore1 | Int | 教师给予的平时成绩 | |
| 期末成绩 | Cscore2 | Int | 学生期末考试成绩 | |
| 总成绩 | Cscore | Int | 平时成绩与期末成绩的折算总和 |
| 属性名 | 存储代码 | 类型 | 长度 | 备注 |
| 教师号 | Tno | Char | 10 | 学校任课教师的教师号 |
| 教师名 | Tname | Char | 20 | |
| 教授课程 | Cno | Char | 10 | |
| 教授班级 | Sclass | Char | 10 |
| 类别 | 组成 |
| 学生 | 学号,班级,姓名 |
| 教师 | 教师号,教师名,教授班级,教师课程 |
| 课程表 | 课程号,课程名1,课程名2,学分,课程属性 |
| 成绩表 | 课程号,学号,教师号,平时成绩,期末成绩,总成绩 |
图3.1 系统功能模块
三个子系统的功能如下:
①登陆子系统
主要功能的对权限的,不同权限用户进入的界面不一样,能进行的操作也不一样。具体包括:①教师, 可以进行录入,修改,查询;②学生,只能进行查询。
②查询子系统
主要功能就是用户通过用户登录,进入自己的相应的操作界面,可以进行相应的查询.具体包括:
⑴教师:可以查询任教班级本科目的统计成绩,以及单个学生的本科目成绩(平时成绩,期末成绩,总成绩)
⑵学生:只能查询自己个人的科目最终成绩
③管理子系统
主要功能用来对学生的成绩进行收集和修改。具体包括学生成绩录入、修改、增加、删除、查询以及成绩统计等功能,由于一些资料可以Word文档或Excel表格输入,故在此模块中增加了导入、导出数据功能。成绩录入需要分班级、以及某个时间考试的各门功课的成绩。修改要与成绩录入相对应。增加、删除是对基本表的操作。查询条件设置应该齐全,学生自己的个人查询,学校的班级查询,也可以姓名查询,学号查询等等。成绩统计则主要用来对学生的成绩以班级为单位进行处理。具体包括各班学生总成绩、平均成绩、班级排名及统计班级某分数段内的学生人数;各个学生该科成绩、班级排名及统计班级某分数段内的学生人数。各项统计仅对于某学期某次考试而言.
3.4.安全性与完整性需求
3.4.1安全性:
对每个用户都设置一个对应的用户名(唯一)和密码(自定义),不同用户因权限的不一致,所以可进行的操作也不尽相同。并且查询时采用视图机制,这样就可以避免了,学生能进行自我更改成绩的情况。
3.4.2完整性:
学生学号以及教师号、课程号要求唯一。成绩的录入中,学生的学号应参照学生档案中学生的学号,课程号应参照课程表中的课程号。
4概念设计
4.1学生实体图
图4.1 学生实体及其属性
4.2教师实体
图4.2 教师实体及其属性
4.3课程实体
图4.3 课程实体及其属性
4.4选课表实体
图4.4 选课表实体及其属性
4.5总信息E-R图
4.5 总信息E-R图
5逻辑设计
5.1数据库关系模式
学生(学号,班号,姓名)
教师(教师号,姓名,教授班级,教授课程号)
成绩表(课程号,学号,教师号,平时成绩,期末成绩,总成绩)
课程(课程号,课程名1,课程名2,学分,课程属性)
查询(学号,课程号,查询总成绩)
管理(教师号,课程号,成绩查询,成绩录入,成绩修改)
并立(课程号,课程号)
5.2 关系优化
以上各关系均以属于BCNF,已经为比较合适的关系模式,不需要在进一步优化
5.3 视图设计
5.3.1 学生查询视图(课程号,课程名1,课程名2,学分,总成绩)
图5.1 学生查询视图
5.3.2 教师查询视图1(学号,学生姓名,平时成绩,期末成绩,总成绩)
图5.2 教师查询视图
5.3.3 教师查询视图2(课程号,平均平时成绩,平均期末成绩,平均总成绩)
图5.3 平均成绩统计视图
5.3.4 教师查询视图3(课程号,学号,学生姓名,总成绩)
图5.4 总成绩排名视图
6物理设计
6.1创建学生表
图6.1 学生表
6.2创建教师表
图6.2 教师表
6.3创建课程表
图6.3 课程表
6.4创建成绩表
图6.4 成绩表
7安全性与完整性设计
7.1学生表完整性
图7.1 学生表完整性验证
7.2课程表完整性
图7.2 课程表完整性验证
7.3教师表完整性
图7.3教师表完整性验证
7.4学生权限设计
图7.4 学生权限
7.5教师权限设计
图7.5 教师权限
8数据库试运行
8.1 各表内容
8.1.1学生表
图8.1 学生表
8.1.2 教师表
图8.2 教师表
8.13成绩表
图8.3成绩表
8.1.4课程表
图8.4 课程表
8.2功能运行结果
8.2.1学生查询
图8.5 学生查询自己成绩结果
8.2.2教师查询
图8.6 教师查询统计总成绩结果
注:
除以上功能外,本系统还是实现了学生的对课程表以及对学生表的查询;教师同时还能查询课程表、平均成绩统计表、学生表,以及修改删除学生成绩等
9心得体会
在此次亲自动手完成学生成绩管理系统,发现自己许多的不足,以及知识的贫乏,使得所设计的系统无法很好的完成设定的用户辨别功能,以及数据输入利用Word或excel的导入功能,坚定了我要努力汲取更多知识的信念。通过此次实训,再一次复习巩固数据库的相关知识。并让自己对数据库设计的大致流程有了一个自我的认识。为以后工作奠定了一定的基础能力。
参考文献:·
1 网络资源 :http://community.csdn.net
2 数据库实训指导书
3 SQL SERVER 数据库应用系统开发技术。机械工业出版社
4 王珊,萨师煊著。数据库系统概论。北京:高等教育出版社,2006
5 数据库原理课程电子讲义、实验内容
6 电子图书:http://pcbook.ddvip.com下载本文