欢迎访问有用文档网!

当前位置: 有用文档网 > 心得体会 >

高校成绩管理系统数据库设计与实现实验报告

| 浏览次数:

 高校成绩管理系统数据库设计与实现 班级 计科 1201

 学号

 2012261001XX

  姓名 XXX

  目录: ------------------------------------------1 、需求分析 1、1 数据需求描述 1、2 系统功能需求

 1、3 其她性能需求 ------------------------------------------2 、概念结 构设计 2、1 画出局部 E-R 图; 2、2 合并成全局 E-R 图; ------------------------------------------3 、逻辑结构设计 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 系统各功能设计与运行界面截图。

 ------------------------------------------7 、实验总结 7、1 遇到的问题与解决的办法 7、2 系统设计的不足 7、3 进一步改进思路与体会

 1 、 需求分析 高校成绩管理系统就是一个记录了大学生成绩的系统,它的出现使得查询、更新、插入简单化,高效化,成本也随之大大减少。使用计算机对成绩信息的管理,具有手工管理所无法比拟的优点:信息存储及时,检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生成绩管理的效率,也就是高校成绩正规化管理的重要途径。根据实际工作需要,提出了以下数据与业务处理需求: ◆学生信息至少需要包含学号、姓名、性别、年龄、生源所在地、已修学分总数等数据项; ◆课程信息表至少需包含课程编号、课程名称、任课教师、开课学期、学时、考试或考查、学分等数据项,课程根据班级开设。

 ◆教师信息至少需要包含教师编号、姓名、性别、年龄、职称、联系电话等数据项; ◆学生成绩至少需要学号,学期,课程名称,成绩,任课老师等数据项; ◆班级信息至少需要班级号,所设置课程编号,任课教师等数据项; ◆需要实现以下业务处理与查询功能:

  学生成绩按每学年成绩统计

  学生成绩名次排定

  每门课程平均成绩统计

  学生所学课程及学分统计

  学生已修学分总数查询

  教师任课查询

  班级课程开设查询 ◆ 硬件环境: :LENOVO-G470

 ◆ 软件环境: :

 Windows 7 旗舰版

 Microsoft SQL Server 2008

 Microsoft Visual Studio 2010

 1.1 数据需求描述

 顶层数据流图

 详 细数据流图

 1 、2 系统功能需求

 (1)学生成绩按每学年进行成绩统计;

 (2)学生成绩名次排定;

 (3)每门课程平均成绩统计;

 (4)

 学生所学课程及学分统计;

 (5)

 输入每个学生成绩时,自动生成该学生已修总学分;

 (6)

 学生成绩查询;

 (7)

 教师任课查询;

 (8)

 班级课程开设查询;

 班级信息 学生信息 课程信息 教师信息 1、1 1、2 1、3 1、4 2、1 2、2 2、3 2、4 2、5 成绩查询 课程查询 按成绩排名 按学年成绩统计 按课程成绩查询 教师所授课程查询 所学课程学分统计 已修学分查询 班级所设课程查询 管理人员 教师 学生 高校成绩管理系统数据库 学生信息 教师信息 课程信息 查询 登入 登入 查询 处理

  系统功能图

 1 、3 其她性能需求 (1)可供多用户同时使用。

 (2)用户输入出错时,有错误提示。

 (3)安全性高。

 (4)存储需求描述。

 (5)响应时间 2 、概念结构设计 2 、1 局部 E-R 图:

 成 绩 管 理 系 统 信息维护 系统登入退出 成绩查询 学生所学课程学分查询

 班级设置课程信息查询

 教师任信息查询

 调用存储过程

 2 、2 合并成全局 E-R 图:

 3 、逻辑结构设计 3 、1 关系模式设计 教师 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) 开设 wmq(课程编号 wmq,班级编号 wmq) 班级 wmq(班级编号 wmq,班级名称 wmq,专业编号 wmq) 专业 wmq(专业编号 wmq,专业名称 wmq) 登陆 wmq(用户名 wmq,密码 wmq,权限 wmq)

 3 、2 数据类型定义

 (1)教师 wmq 数据项名 数据类型 长度 完整性约束 教师编号 wmq char 5 主键 教师姓名 wmq char 10

 教师性别 wmq char 5

 教师年龄 wmq int 5

 职称 wmq char 10

 联系电话 wmq char 20

 (2)上课 wmq 数据项名 数据类型 长度 完整性约束 教师编号 wmq char 5 主键 外键 班级编号 wmq char 5 外键 (3)授课 wmq 数据项名 数据类型 长度 完整性约束 教师编号 wmq char 5 主键 外键 课程编号 wmq char 5 外键 (4)课程 wmq 数据项名 数据类型 长度 完整性约束 课程编号 wmq char 5 主键 课程名称 wmq char 10

 教师姓名 wmq char 10

 开课时间 wmq char 20

 课程学时 wmq int 10 >0 考核方式 wmq char 5

 学分 wmq int 5 >0 (5)学习 wmq 数据项名 数据类型 长度 完整性约束 学号 wmq char 5 主键 外键 课程编号 wmq char 5 外键 学期 wmq char 10

 成绩 wmq int 10

 教师姓名 wmq char 10

 (6)学生 wmq 数据项名 数据类型 长度 完整性约束 学号 wmq char 5 主键 姓名 wmq char 10

 性别 wmq char 5

 年龄 wmq int 5

 生源所在地 wmq Char 20

 已修学分总数 wmq int 5

 班级编号 wmq char 5 外键 (7)开设 wmq 数据项名 数据类型 长度 完整性约束 课程编号 wmq char 5 主键 外键 班级编号 wmq char 5 外键 (8)班级 wmq 数据项名 数据类型 长度 完整性约束 班级编号 wmq char 5 主键 班级名称 wmq char 10

 专业编号 wmq char 5 外键 (9)专业 wmq 数据项名 数据类型 长度 完整性约束 专业编号 wmq char 5 主键 专业名称 wmq char 10

 (10)登陆 wmq 数据项名 数据类型 长度 完整性约束 用户名 wmq char 20 主键 密码 wmq char 20

 权限 wmq char 10

 4 、物理结构设计 4 、1 聚簇设计 教师 wmq(教师编号 wmq) 课程 wmq(课程编号 wmq) 学生 wmq(学号 wmq,班级编号 wmq) 班级 wmq(班级编号 wmq) 这几个聚簇设计就是因为这几张表都就是实体表,且聚簇中的属性都就是主键或就是外键,被访问的概率很高,而其她表或者这些表上的其她属性被访问的概率就相对较低。

 4 、2 索引设计 建立索引的一般规则: (1)

 在主键属性列与外键属性列上通常都可以分别建立索引,不仅有助于唯一性检查与完整性检查,而且可以加快连接查询的速度。

 (2)

 以查询为主的关系可建立尽可能多的索引。

 (3)

 对等值连接,但满足条件的元组较少的查询可以考虑建立索引。

 (4)

 如果查询可以从索引直接得到结果而不必访问关系,则对此种查询可以建立索引。

 所以在高线成绩管理数据库中建立索引如下:

 教师 wmq(教师编号 wmq) 课程 wmq(课程编号 wmq) 学生 wmq(学生学号 wmq,班级编号 wmq) 班级 wmq(班级编号 wmq) 学习 wmq(学号 wmq,课程编号 wmq) 4 、3 分区设计 涉及到数据库文件与日志文件的分区问题。

 磁盘分区设计的一般原则: (1)

 减少访问冲突,提高 I/O 并发性。多个事物并发访问同一磁盘时,会产生磁盘访问冲突而导致效率低下,如果事务访问数据均能分布于不同磁盘上,则I/O 可并发执行,从而提高数据库访问速度。

 (2)

 分散热点数据,均衡 I/O 负担。在数据库中数据访问的频率就是不均匀的,那些经常被访问的数据成为热点数据,此类数据宜分散存在于不同的磁盘上,以均衡各个磁盘的负荷,充分发挥多磁盘的并行操作的优势。

 (3)

 保证关键数据快速访问,缓解系统瓶颈。在数据库中有些数据如数据字典等的访问频率很高,为保证对它的访问不直接影响整个系统的效率,可以将其存放在某一固定磁盘上,以保证其快速访问。

 该成绩管理系统由于程序较小,所以不进行分区设计。

 5 、数据库实施 数据库的建立:

 5 、1 基本表建立 (1)教师 wmq 表建立:

  (2)课程 wmq 表建立:

  (3)专业 wmq 表建立:

 (4)班级 wmq 表建立:

  (5)学生 wmq 表建立:

 (6)上课 wmq 表建立:

  (7)授课 wmq 表建立:

 (8)学习 wmq 表建立:

  (9)开设 wmq 表建立:

 (10)登陆 wmq 表建立:

 5 、2 数据输入 (1)专业表数据插入:

 (2)班级表数据插入:

  (3)学生表数据插入:

  (4)教师表插入:

  (5)课程表数据插入:

 (6)授课表数据插入:

  (7)学习表数据插入:

 (8)开设表数据插入:

 (9)上课表数据插入:

 (10)登陆表数据插入:

  5 、3 视图的建立 (1)学生成绩统计:

  (2)每门课程平均成绩统计:

 (3)学生所学课程及学分统计

 (4)教师任课查询:

  (5)班级课程开设查询:

  (6)生源地平均成绩查询

  5 、4 索引的建立 因为每一个表建立,SSMS 会自动生成一个聚集索引,所以不需要再手动建立聚集索引。

 下面根据 4、2 来设计索引: (1)教师编号 wmq:

 (2)专业编号 wmq:

 (3)班级编号 wmq,专业编号 wmq:

  (4)课程编号 wmq:

 (5)学生学号wmq,班级编号wmq:

 (6)学生学号wmq,课程编号wmq:

  5 、5 触发器建立

 (1)学分统计wmq 当用户 insert 新的成绩且该成绩>=60 分时,增加相应学分

 (2)删除教师wmq 当删除教师表中的教师编号wmq记录时,需要相应地删除授课表与上课表里的教师编号 wmq,所以在教师表上建立触发器

 (3)更新教师wmq

 当更新教师表中的教师编号wmq记录时,需要相应地更新授课表与上课表里的教师编号 wmq,所以在教师表上建立触发器

 5 、6 建 建 存储过程 (1)建立一个对学生表插入信息的存储过程:

 (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( Community Technology Preview--CTP),并且支持开发面向Windows 7的应用程序。除了 Microsoft SQL Server,它还支持 IBM DB2 与 Oracle 数据库。

 与此同时,微软还引入了一门新的语言 C#,C#就是一门建立在 C++与 Java 基础上的编写、NET 框架的现代语言。

 6 、2 前台界面与后台数据库连接说明, 代码实现: using System; using System、Collections、Generic; using System、Linq; using System、Text; using System、Data; using System、Data、SqlClient; using System、Windows、Forms; namespace D01wangminqian {

  class sqlConnect

  {

 public SqlConnection coon = null;

  public sqlConnect()

  {

  if (coon == null)

  {

  coon = new SqlConnection("Data source =(local);Integrated Security=SSPI;" + "Initial Catalog =D01wangminqian");

  if (coon、State == ConnectionState、Closed) coon、Open();

  }

  }

  public void closeConnect()

  {

  if (coon、State == ConnectionState、Open) coon、Close();

  }

  public DataSet Getds(string sql)

  {

  if (coon、State == ConnectionState、Closed) coon、Open();

  DataSet ds = new DataSet();

  SqlDataAdapter da = new SqlDataAdapter(sql, coon);

  da、Fill(ds);

  coon、Close();

  return ds;

  }

  public int OperateData(string sql)

  {

  if (coon、State == ConnectionState、Closed) coon、Open();

  SqlCommand sqlcom = new SqlCommand();

  sqlcom、CommandText = sql;

  sqlcom、CommandType = CommandType、Text;

  sqlcom、Connection = coon;

  int x = sqlcom、ExecuteNonQuery();

  coon、Close();

  return x;

  }

  public DataSet BinDataGriView(DataGridView dgv, string sql)

  {

  if (coon、State == ConnectionState、Closed) coon、Open();

  SqlDataAdapter da = new SqlDataAdapter(sql, coon);

  DataSet ds = new DataSet();

  da、Fill(ds);

  dgv、DataSource = ds、Tables[0];

  return ds;

  }

  }

 } 6 、3 系统各功能设计与运行界面截图。

 登陆系统各功能流程图:

 (1)登陆界面: 登陆 管理员 教师 学生 管理员操作主界面 教师操作主界面 学生操作主界面 教务安排 信息管理 信息转储 信息查询 成绩录入 信息查询 教师 安排 班 级信 息管理

 课 程信 息管理

 学 生信 息管理 信 息转储 成 绩录入

 学 生信息 教 师任课 已 修学分

 教 师任课

 班 级开课 学 生成绩

 生 源地

  不同的用户类型进入的界面不同: (2)管理员界面:

 (3)教师界面:

  (4)学生界面:

 (5)管理员进入界面后,主要的操作就是教务安排,以及教师、班级、学生信息的管理操作,各操作界面如下:

 (6)教师进入界面后的主要操作就是教师任课、学生信息查询,以及成绩的录入,各操作界面如下:

 (7)学生进入界面后主要的操作就是生源地平均成绩查询、教师任课查询、班级开课查询、成绩、已修学分查询:

 7 、实验 总结 7 、1 遇到的问题与解决的办法 (1)概念结构设计

 在系统需求分析完成以后,我根据用户需求设计概念结构的时候遇到了数据冗余等多种问题,经过慢慢的分解关系最终得到了相对来说还比较完善的概念结

 构,通过 ER 图表示出来。

 (2)数据插入

  在进行高校成绩管理数据库插入时,我出现了许多错误,后来检验下来,发现主要错在数据的类型、大小以及各个约束关系上,导致一些插入无法进行。而删除、重建基本表,会发现完整性约束导致基本表不能删除,所以我利用基本表的修改ALTER来进行改动。

 (3)触发器与存储过程 开始一直搞不清楚这两个到底就是个什么作用,应该怎样设计,最后通过查阅书本以及网络资料,弄清了这两个概念,并设计了触发器与存储过程。现将触发器与存储过程的概念如下: 触发器:触发器(trigger)就是个特殊的存储过程,它的执行不就是由程序调用, 也不就是手工启动,而就是由事件来触发,比如当对一个表进行操作( insert,delete,update)时就会激活它执行。触发器经常用于加强数据的完整性约束与业务规则等。

 触发器可以从 DBA_TRIGGERS ,USER_TRIGGERS 数据字典中查到。

 存储过程:存储过程(Stored Procedure)就是一组为了完成特定功能的SQL 语句集,就是利用SQL Server 所提供的Transact-SQL 语言所编写的程序。经编译 后存储在数据库中。存储过程就是数据库中的一个重要对象,用户通过指定存储过 程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程就是由流控 制与SQL 语句书写的过程,这个过程经编译与优化后存储在数据库服务器中, 存储过程可由应用程序通过一个调用来执行,而且允许用户声明变量 。同时, 存储过程可以接收与输出参数、返回执行存储过程的状态值,也可以嵌套调用。

 (4)连接数据库 刚开始我打开microsoft visual studio ,在创建C#工程的时候发现工程选项中根本就没有visual c#这一项,通过请教同学才知道可能就是我的visual studio没有安装完整,于就是我又通过重新下载软件安装,由于网速种种原因这个过程确实消耗了我很多时间。后来总算来装上了,然后通过查瞧书本上的连接步骤与代码,总算就是顺利将它连接上了。

 (5)界面代码编写 在界面代码的调试过程中也遇到了不少错误,由于就是第一次接触c#语言,也不就是很熟练,很多错误都不知道怎么改正,后来也就是通过查阅大量的网络知识,以及请教身边同学才解决的。

 7 、2 系统设计的不足 (1)在系统功能方面,学生、老师这两种登入权限方面有交叉,所以在系统的实用性方面还存在着很大的缺陷。

 (2)在进行学生成绩排名的时候,只能显示排名结果,但就是不能显示名次。

 (3)在整个系统的稳定性方面做的不足。如果再增加其她功能很有可能导致系统奔溃。

 (4)隐私与安全性做的不够。也就就是说别人也可查询我的信息。

 7 、3 进一步改进思路与体会 改进思路: 首先,我觉得各种操作的实现代码可以经过日后的学习得到进一步的改善,使得应用系统稳定性更加好,不容易奔溃。然后对于数据库的实现功能也可以增加些,还有控制权限应该要做得更好,做到对用户隐私的保护。

 体会: 可以说这就是我第一次自己亲手去感受一个应用程序的完成过程,虽然过程真的就是很艰辛,但就是当它完成的时候那种喜悦真的旁人无法体会。以前没有怎么接触过 C#,第一次接触还真就是有些棘手,方方面面都得先请教别人,到最后都不好意思去打扰大神了,只能靠自己默默得百度完成。或许对于别人来说很简单的问题,在我这里都要经过一番波折后才能解决。不过这次实验给我带来的收获还就是挺多的,至少我学会了一种新的语言,经过日后的练习,我会继续巩固它;另外,我也学习到了自己如何独立坚定地去完成一个程序。

推荐访问:高校 实验 数据库

热门排行Top Ranking

新时代青年的奋斗精神心得体会5篇

新时代青年的奋斗精神心得体会5篇新时代青年的奋斗精神心得体会篇1为进一步弘扬爱国奋斗奉献精神,激励党

坚持总体国家安全观心得体会250字8篇

坚持总体国家安全观心得体会250字8篇坚持总体国家安全观心得体会250字篇1“安而不忘危,存而不忘亡

宣传部部长心得体会15篇

宣传部部长心得体会15篇宣传部部长心得体会篇1首先,感谢领导给我这次评选优秀员工的机会,也感谢您能在

管理信息系统案例

第一章 信息系统与管理 案例((或实例) 得讨论题及点评((或回答)) [实例]利润计划工作中得反复

大学生体育课心得体会1500字5篇

大学生体育课心得体会1500字5篇大学生体育课心得体会1500字篇1不知不觉,进入大学第一个学期的体

餐饮单位疫情防控工作汇报

餐饮单位疫情防控工作汇报根据省、市、区疫情防控指挥部统一部署,严格落实《省市场监督管理局关于进一步加

党支部党建工作年度台账-基层党建工作台账

党支部党建工作年度台账::基层党建工作台账 党支部党建工作年度台账说明为抓好党建工作,根据《党章》《

党员的时代楷模心得体会12篇

党员的时代楷模心得体会12篇党员的时代楷模心得体会篇1@党员干部“打工攻略”请查收一年一度的“双十一

公文格式国家标准

公文格式国家标准 1范围 本标准规定了党政机关公文通用的纸张要求、排版和印制装订要求、公文格式各要素

内勤辅警先进事迹材料

内勤辅警先进事迹材料3篇 内勤辅警先进事迹材料1 办公室工作室一项既辛苦、又清苦的脑力劳动,他没有惊

傅雷家书阅读心得及感悟10篇

傅雷家书阅读心得及感悟10篇傅雷家书阅读心得及感悟篇1一连几天,我都沉浸在《傅雷家书》这本书中,感受

学校留观室设置及工作方案

学校留观室设置及工作方案 根据省、市、区疫情防控要求,为确保开学后切实保障师生生命安全和身体健康,特