《高校成绩管理系统数据库设计与实现实验报告书30622.pdf》由会员分享,可在线阅读,更多相关《高校成绩管理系统数据库设计与实现实验报告书30622.pdf(48页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、高校成绩管理系统数据库的设计与实现 目录:-1.需求分析 1.1 数据要求说明 1.2 系统功能要求 1.3 其他性能要求-2.概念结构设计 2.1 绘制局部 ER 图;2.2 合并成全局 ER 图;-三、逻辑结构设计 3.1 关系模式设计 3.2 数据类型定义-4.物理结构设计 4.1 集群设计 4.2 索引设计 4.3 分区设计-5.数据库实现 5.1 基本建表 5.2 数据输入 5.3 视图创建 5.4 索引创建 5.5 触发器建立 5.6 创建存储过程-6.应用系统开发及测试运行 6.1 开发平台和开发环境介绍。6.2 前端接口与后端数据库的连接描述及代码实现。6.3 系统各功能设计及
2、操作界面截图。-七、实验总结 7.1 遇到的问题及解决方法 7.2 系统设计的不足 7.3 进一步完善思路和经验 1、需求分析 大学成绩管理系统是记录大学生成绩的系统。它的出现使查询、更新和插入变得简单高效,成本也大大降低。使用计算机管理等级信息具有人工管理无法比拟的优势:信息存储和时间、检索快速、检索方便、可靠性高、存储容量大、性能好、寿命长、成本低等。这些优点可以大大提高提高学生成绩管理的效率,也是规范大学成绩管理的重要途径。根据实际工作需要,提出以下数据和业务处理要求:学生信息至少应包含学号、性别、年龄、学生来源地、修读总学分等数据项;课程信息表必须至少包含课程编号、课程名称、教师、开学
3、学期、学分、考试或考试、学分等数据项,按班级开设课程。教师信息至少应包含教师编号、性别、年龄、职称、联系方式等数据项;学生成绩至少需要学号、学期、课程名称、成绩、教师等数据项;班级信息至少需要班级号、设置的课程号、教师等数据项;需要实现以下业务处理和查询功能:学生成绩按每学年成绩计算 学生成绩排名 每门课程的平均成绩统计 学生修读的课程和学分统计 查询学生总学分 教师课堂查询 课程提供查询 硬件环境:LENOVO-G470 软件环境:Windows 7 旗舰版 微软 SQL 服务器 2008 微软视觉工作室 2010 1.1 资料要求说明 顶层数据流图 详细数据流程图 1.2 系统功能要求(一
4、)学生成绩按每学年成绩计算;(二)学生成绩排名;(3)各门课程平均成绩统计;(4)学生修读的课程和学分统计;(5)输入每个学生的成绩时,将自动生成学生所学的总学分;(6)学生成绩查询;(7)查询教师课程;(8)课堂课程提供查询;班级信息 学生信息 课程信息 教师信息 1.1 1.2 1.3 1.4 2.1 2.2 2.3 2.4 2.5 成绩查询 课程查询 按成绩排名 按学年成绩统计 按课程成绩查询 教师所授课程查询 所学课程学分统计 已修学分查询 班级所设课程查询 管理人员 教师 学生 高 校 成 绩管 理 系 统数据库 学生信息 教师信息 课程信息 查询 登入 登入 查询 处理 系统功能图
5、 1.3 其他性能要求(1)可以多人同时使用。(2)当用户输入错误时,有错误提示。(3)高安全性。(4)存储要求的描述。(5)响应时间 2.概念结构设计 2.1 局部 ER 图:成 绩 管 理 系 统 信息维护 系统登入退出 成绩查询 学生所学课程学分查询 班级设置课程信息查询 教师任信息查询 调用存储过程 2.2 合并成全局 ER 图:3.逻辑结构设计 3.1 关系模式设计 教师 wmq(教师编号 wmq,教师 wmq,教师性别 wmq,教师年龄 wmq,职称wmq,联系 wmq)班级 wmq(教师号 wmq,班级号 wmq)教学 wmq(教师号 wmq,课程号 wmq)课程 wmq(课程号
6、 wmq、课程名称 wmq、教师 wmq、开学期 wmq、课时 wmq、考核方式 wmq、学分 wmq)学习 wmq(学号 wmq,课程号 wmq,学期 wmq,年级 wmq,老师 wmq)学生 wmq(学号 wmq,wmq,性别 wmq,年龄 wmq,学生所在地 wmq,总学分 wmq,班级号 wmq)打开 wmq(课程号 wmq,班级号 wmq)类 wmq(类号 wmq,类名 wmq,专业号 wmq)专业 wmq(专业编号 wmq,专业名称 wmq)登录 wmq(用户名 wmq,密码 wmq,权限 wmq)3.2 数据类型定义(一)wmq 老师 数据项名称 数据类型 长度 完整性约束 教师
7、 ID wmq 字符 5 首要的关键 wmq 老师 字符 10 教师性别 wmq 字符 5 教师年龄 wmq 整数 5 标题 wmq 字符 10 联系 wmq 字符 20 (2)类 wmq 数据项名称 数据类型 长度 完整性约束 教师 ID wmq 字符 5 首要的关键 外键 班级编号 wmq 字符 5 外键 (3)教学 wmq 数据项名称 数据类型 长度 完整性约束 教师 ID wmq 字符 5 首要的关键 外键 课程号 wmq 字符 5 外键 (4)课程 wmq 数据项名称 数据类型 长度 完整性约束 课程号 wmq 字符 5 首要的关键 课程名称 wmq 字符 10 wmq 老师 字符
8、10 开始时间 wmq 字符 20 课程时间 wmq 整数 10 0 评估方法 wmq 字符 5 学分 wmq 整数 5 0 (5)学习 wmq 数据项名称 数据类型 长度 完整性约束 学生证 wmq 字符 5 首要的关键 外键 课程号 wmq 字符 5 外键 学期 wmq 字符 10 等级 wmq 整数 10 wmq 老师 字符 10 (6)学生 wmq 数据项名称 数据类型 长度 完整性约束 学生证 wmq 字符 5 首要的关键 wmq 字符 10 性 wmq 字符 5 年龄 wmq 整数 5 学生来源 wmq 的位置 字符_ 20 总学分 wmq 整数 5 班级编号 wmq 字符 5 外
9、键 (7)打开 wmq 数据项名称 数据类型 长度 完整性约束 课程号 wmq 字符 5 首要的关键 外键 班级编号 wmq 字符 5 外键 (8)类 wmq 数据项名称 数据类型 长度 完整性约束 班级编号 wmq 字符 5 首要的关键 类名 wmq 字符 10 专业号码 wmq 字符 5 外键 (9)专业的 wmq 数据项名称 数据类型 长度 完整性约束 专业号码 wmq 字符 5 首要的关键 专业名称 字符 10 wmq(10)登录 wmq 数据项名称 数据类型 长度 完整性约束 用户名 wmq 字符 20 首要的关键 密码 wmq 字符 20 权限 wmq 字符 10 4.物理结构设计
10、 4.1 集群设计 老师 wmq(老师号 wmq)课程 wmq(课程号 wmq)学生 wmq(学生号 wmq,班级号 wmq)类 wmq(类号 wmq)之所以设计这些集群,是因为这些表都是实体表,集群中的属性是主键或外键,被访问的概率很高,而其他表或这些表上的其他属性被访问。概率相对较低。4.2 索引设计 索引的一般规则:(1)主键属性列和外键属性列通常可以分开索引,这样不仅有助于唯一性检查和完整性检查,还可以加快连接查询的速度。(2)基于查询的关系可以建立尽可能多的索引。(3)点对点连接,但满足条件的元组较少的查询可以考虑建立索引。(4)如果查询可以直接从索引中获取结果而无需访问关系,则它可
11、以被索引。因此,在高分管理数据库中建立索引如下:老师 wmq(老师号 wmq)课程 wmq(课程号 wmq)学生 wmq(学生号 wmq,班级号 wmq)类 wmq(类号 wmq)学习 wmq(学号 wmq,课程号 wmq)4.3 分区设计 涉及数据库文件和日志文件的分区问题。磁盘分区设计的一般原则:(1)减少访问冲突并提高 I/O 并发性。当多个事务同时访问同一个磁盘时,会发生磁盘访问冲突,导致效率低下。如果事务访问数据可以分布在不同的磁盘上,I/O 可以并发执行,从而提高数据库访问速度。(2)分散热点数据,平衡 I/O 负担。数据库中数据访问的频率是不均匀的,那些经常访问的数据成为热点数据
12、。这样的数据应该分散在不同的磁盘上,以平衡每个磁盘的负载,充分发挥多磁盘并行运行的优势。.(3)确保快速访问关键数据,缓解系统瓶颈。数据库中的一些数据,例如数据字典,被频繁访问。为了保证对它的访问不直接影响整个系统的效率,可以将它存储在一个固定的磁盘上,以保证快速访问。由于这个成绩管理系统程序很小,所以没有进行分区设计。5.数据库实现 数据库创建:5.1 基本建表(1)教师 wmq 表建立:(2)课程 wmq 表建立:(3)专业的 wmq 建表:(4)类 wmq 表建立:(5)学生 wmq 表建立:(6)类中 wmq 表的创建:(7)教学用 wmq 表的创建:(8)学习 wmq 表的建立:(9
13、)打开 wmq 建表:(10)登录创建 wmq 表:5.2 数据输入 (1)专业的表格数据插入:(2)类表数据插入:(3)学生表数据插入:(4)教师表插入:(5)课程数据插入:(6)插入课表的数据:(7)学习表数据插入:(8)开表数据插入:(9)类表数据插入:(10)登录表数据插入:5.3 视图创建(一)学生成绩统计:(2)每门课程的平均成绩统计:(3)学生所修课程及学分统计 (4)教师教学查询:(五)班课开课查询:(6)原产地平均分查询 5.4 索引创建 因为每张表都创建好了,SSMS 会自动生成聚集索引,所以不需要手动创建聚集索引。以下指标按 4.2 设计:(1)教师编号 wmq:(2)专
14、业号 w mq:(3)班号 wmq,专业号 wmq:(4)课程号 wmq:(5)学生证wmq,班级证wmq:(6)学生证wmq,课程证wmq:5.5 触发器建立(一)信用统计wmq 当用户插入新成绩且成绩=60 分时,将添加相应的学分 (2)删除老师wmq 在删除 teacher 表中的教师号 wmq 记录时,需要相应地删除课表和课表中的教师号 wmq,所以在 teacher 表上创建触发器 (3)更新老师wmq 在更新 teacher 表中的教师号 wmq 记录时,需要相应地更新课表和课表中的教师号 wmq,所以在 teacher 表上创建触发器 5.6 创建存储过程(1)创建一个向学生表中
15、插入信息的存储过程:(2)建立输入成绩并自动生成总学分的存储过程:6、应用系统开发及试运行 6.1 开发平台和开发环境介绍。开发平台:Microsoft Visual Studio 2010 开发环境:Visual Studio 是微软公司推出的开发环境。是最流行的 Windows 平台应用程序开发环境。Visual Studio 2010 版本于 2010 年 4 月 12 日推出,其集成开发环境(IDE)的界面经过重新设计和组织,更加简单明了。Visual Studio 2010 还带来了 NET Framework 4.0、Microsoft Visual Studio 2010 CTP
16、(Community Technology Preview-CTP),支持 Windows 7 的应用开发。除了Microsoft SQL Server,还支持 IBM DB2 和 Oracle 数据库。同时,微软还推出了一种新语言 C#,这是一种用于编写基于 C+和 Java 的.NET 框架的现代语言。6.2 前台接口与后台数据库连接说明,代码实现:使用系统;使用System.Collections.Generic;使用System.Linq;使用System.Text;使用System.Data;使用System.Data.SqlClient;使用System.Windows.Forms
17、;命名空间D 01王敏倩 类sqlConnect 公共SqlConnection浣熊=null;公共sqlConnect()如果(浣熊=空)coon=new SqlConnection(数据源=(local);Integrated Security=SSPI;+初始目录=D 01 wangminqian );if(coon.State=ConnectionState.Closed)coon.Open();公共无效关闭连接()if(coon.State=ConnectionState.Open)coon.Close();公共数据集Getds(字符串sql)if(coon.State=Connec
18、tionState.Closed)coon.Open();数据集ds=新数据集();SqlDataAdapter da=new SqlDataAdapter(sql,coon);da.填充(ds);浣熊.Close();返回ds;publicint OperateData(字符串sql)if(coon.State=ConnectionState.Closed)coon.Open();SqlCommand sqlcom=new SqlCommand();sqlcom mandText=sql;sqlcom mandType=CommandType.Text;sqlcom.Connection=浣
19、熊;int x=sqlcom.ExecuteNonQuery();浣熊.Close();返回x;公共数据集BinDataGriView(DataGridView dgv,字符串sql)if(coon.State=ConnectionState.Closed)coon.Open();SqlDataAdapter da=new SqlDataAdapter(sql,coon);数据集ds=新数据集();da.填充(ds);dgv.DataSource=ds.Tables0;返回ds;6.3 系统各功能设计及操作界面截图。登录系统各功能流程图:(一)登录界面:登陆 管理员 教师 学生 管理员操作主界
20、面 教师操作主界面 学生操作主界面 教务安排 信息管理 信息转储 信息查询 成绩录入 信息查询 教师 安排 班 级信 息管理 课 程信 息管理 学 生信 息管理 信 息转储 成 绩录入 学 生信息 教 师任课 已 修学分 教 师任课 班 级开课 学 生成绩 生 源地 不同的用户类型进入不同的界面:(2)管理员界面:(3)教师界面:(4)学生界面:(5)管理员进入界面后,主要操作是安排教务,管理教师、班级和学生的信息。操作界面如下:(6)教师进入界面后,主要操作为教师教学、学生信息查询、成绩输入。操作界面如下:(7)学生进入界面后,主要操作为学生来源平均分查询、教师班级查询、开课查询、成绩及所学
21、学分:7.实验总结 7.1 遇到的问题及解决方法(1)概念结构设计 系统需求分析完成后,在根据用户需求设计概念结构时,遇到了数据冗余等各种问题。慢慢分解关系后,终于得到了一个比较完整的概念结构,用 ER 图来表示。.(2)数据插入 在插入大学成绩管理数据库时,我犯了很多错误。后来查了一下,发现主要的错误是数据的类型、大小和约束,导致有些插入是不可能的。在删除和重建基本表的时候会发现完整性约束阻止了基本表被删除,所以我使用修改基本表的ALTER来进行修改。(3)触发器和存储过程 一开始不知道这两个的作用是什么,怎么设计。最后通过查阅书籍和网络资料弄明白了这两个概念,并设计了触发器和存储过程。现在
22、触发器和存储过程的概念如下:触发器:触发器(trigger)是一种特殊的存储过程,其执行不被程序调用。它不是手动启动的,而是由事件触发的,例如当对表执行操作(insert、delete、update)时,它会被激活执行。触发器通常用于强制执行数据完整性约束和业务规则。触发器可以在DBA_TRIGGERS、USER_TRIGGERS数据字典中找到。存储过程:存储过程是一组执行特定功能的 SQL 语句集是SQL Server 提供的用Transact-SQL语言编写的程序。编译 然后存入数据库。存储过程是数据库中的一个重要对象。用户通过指定存储过程 过程的名称并给出参数(如果存储过程有参数)来执行
23、它。存储过程由流控制控制 过程被编译和优化并存储在数据库服务器中。存储过程可以由应用程序一次调用执行,并允许用户声明变量。同时,存储过程可以接收和输出参数,返回执行存储过程的状态值,嵌套调用。(4)连接数据库 一开始打开microsoft visual studio,在创建C#项目的时候,发现项目选项里根本没有visual c#。咨询了同学后,我知道我的visual studio可能没有完全安装,所以我再次下载软件安装了它。,由于网速的各种原因,这个过程确实消耗了我很多时间。后来我终于安装了,然后通过看书上的连接步骤和代码,终于连接成功了。(5)接口代码编写 在调试接口代码的过程中,我也遇到了
24、很多错误。因为是第一次接触C#语言,不是很熟练,很多错误都不知道怎么改。后来也查阅了很多网络知识,和同学们一起咨询。刚刚解决。7.2 系统设计的不足(1)在系统功能方面,学生和教师的两次登录权限重叠,系统的实用性还存在很大缺陷。(2)学生成绩排名时,只能显示排名结果,不能显示排名。(3)整个系统的稳定性不足。如果添加其他功能,很可能会导致系统崩溃。(4)隐私和安全性不足。也就是说,其他人也可以查看我的信息。7.3 进一步完善思路和经验 改进思路:首先,我觉得各种操作的实现代码在以后的研究中可以进一步完善,让应用系统更加稳定,不容易崩溃。那么,数据库的实现功能也可以增加,控制权限应该更好的保护用户的隐私。经验:可以说,这是我第一次体验自己完成一个应用程序。虽然过程真的很辛苦,但是完成后的喜悦真的是难以理解。我以前没有太多接触过 C#。第一次接触真的很棘手。我不得不在各个方面向其他人征求意见。到最后,我也不好意思打扰诸神了。只能靠百度默默完成。也许别人的一个简单的问题,要在这里经过一番曲折才能解决。但是,这个实验给我带来了很多收获。至少我学会了一门新的语言。以后的实践,我会继续巩固;此外,我还学会了如何独立、坚定地完成一门语言。程序。