高校成绩管理系统数据库设计与实现实验报告书_第1页
高校成绩管理系统数据库设计与实现实验报告书_第2页
高校成绩管理系统数据库设计与实现实验报告书_第3页
高校成绩管理系统数据库设计与实现实验报告书_第4页
高校成绩管理系统数据库设计与实现实验报告书_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

高校成绩管理系统数据库的设计与实现目录:------------------------------------------------------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系统各功能设计及操作界面截图。-------------------------七、实验总结7.1遇到的问题及解决方法7.2系统设计的不足7.3进一步完善思路和经验需求分析大学成绩管理系统是记录大学生成绩的系统。它的出现使查询、更新和插入变得简单高效,成本也大大降低。使用计算机管理等级信息具有人工管理无法比拟的优势:信息存储和时间、检索快速、检索方便、可靠性高、存储容量大、性能好、寿命长、成本低等。这些优点可以大大提高提高学生成绩管理的效率,也是规范大学成绩管理的重要途径。根据实际工作需要,提出以下数据和业务处理要求:◆学生信息至少应包含学号、性别、年龄、学生来源地、修读总学分等数据项;◆课程信息表必须至少包含课程编号、课程名称、教师、开学学期、学分、考试或考试、学分等数据项,按班级开设课程。◆教师信息至少应包含教师编号、性别、年龄、职称、联系方式等数据项;◆学生成绩至少需要学号、学期、课程名称、成绩、教师等数据项;◆班级信息至少需要班级号、设置的课程号、教师等数据项;◆需要实现以下业务处理和查询功能: 学生成绩按每学年成绩计算 学生成绩排名 每门课程的平均成绩统计 学生修读的课程和学分统计 查询学生总学分 教师课堂查询 课程提供查询◆硬件环境:LENOVO-G470◆软件环境:Windows7旗舰版微软SQL服务器2008微软视觉工作室2010教师资料要求说明教师登入处理查询登入处理查询登入教师信息学生信息管理人员高校成绩管理系统数据库学生登入教师信息学生信息管理人员高校成绩管理系统数据库学生查询课程信息查询课程信息顶层数据流图班级信息学生信息班级信息学生信息课程信息教师信息成绩查询课程查询按成绩排名按学年成绩统计按课程成绩查询教师所授课程查询所学课程学分统计已修学分查询班级所设课程查询1.2系统功能要求(一)学生成绩按每学年成绩计算;(二)学生成绩排名;(3)各门课程平均成绩统计;学生修读的课程和学分统计;输入每个学生的成绩时,将自动生成学生所学的总学分;学生成绩查询;查询教师课程;课堂课程提供查询;成成绩管理系统信息维护系统登入退出成绩查询学生所学课程学分查询班级设置课程信息查询教师任信息查询调用存储过程系统功能图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(课程号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老师数据项名称数据类型长度完整性约束教师IDwmq字符5首要的关键wmq老师字符10教师性别wmq字符5教师年龄wmq整数5标题wmq字符10联系wmq字符20(2)类wmq数据项名称数据类型长度完整性约束教师IDwmq字符5首要的关键外键班级编号wmq字符5外键(3)教学wmq数据项名称数据类型长度完整性约束教师IDwmq字符5首要的关键外键课程号wmq字符5外键(4)课程wmq数据项名称数据类型长度完整性约束课程号wmq字符5首要的关键课程名称wmq字符10wmq老师字符10开始时间wmq字符20课程时间wmq整数10>0评估方法wmq字符5学分wmq整数5>0(5)学习wmq数据项名称数据类型长度完整性约束学生证wmq字符5首要的关键外键课程号wmq字符5外键学期wmq字符10等级wmq整数10wmq老师字符10(6)学生wmq数据项名称数据类型长度完整性约束学生证wmq字符5首要的关键wmq字符10性wmq字符5年龄wmq整数5学生来源wmq的位置字符_20总学分wmq整数5班级编号wmq字符5外键(7)打开wmq数据项名称数据类型长度完整性约束课程号wmq字符5首要的关键外键班级编号wmq字符5外键(8)类wmq数据项名称数据类型长度完整性约束班级编号wmq字符5首要的关键类名wmq字符10专业号码wmq字符5外键(9)专业的wmq数据项名称数据类型长度完整性约束专业号码wmq字符5首要的关键专业名称wmq字符10(10)登录wmq数据项名称数据类型长度完整性约束用户名wmq字符20首要的关键密码wmq字符20权限wmq字符104.物理结构设计4.1集群设计老师wmq(老师号wmq)课程wmq(课程号wmq)学生wmq(学生号wmq,班级号wmq)类wmq(类号wmq)之所以设计这些集群,是因为这些表都是实体表,集群中的属性是主键或外键,被访问的概率很高,而其他表或这些表上的其他属性被访问。概率相对较低。4.2索引设计索引的一般规则:主键属性列和外键属性列通常可以分开索引,这样不仅有助于唯一性检查和完整性检查,还可以加快连接查询的速度。基于查询的关系可以建立尽可能多的索引。点对点连接,但满足条件的元组较少的查询可以考虑建立索引。如果查询可以直接从索引中获取结果而无需访问关系,则它可以被索引。因此,在高分管理数据库中建立索引如下:老师wmq(老师号wmq)课程wmq(课程号wmq)学生wmq(学生号wmq,班级号wmq)类wmq(类号wmq)学习wmq(学号wmq,课程号wmq)4.3分区设计涉及数据库文件和日志文件的分区问题。磁盘分区设计的一般原则:减少访问冲突并提高I/O并发性。当多个事务同时访问同一个磁盘时,会发生磁盘访问冲突,导致效率低下。如果事务访问数据可以分布在不同的磁盘上,I/O可以并发执行,从而提高数据库访问速度。分散热点数据,平衡I/O负担。数据库中数据访问的频率是不均匀的,那些经常访问的数据成为热点数据。这样的数据应该分散在不同的磁盘上,以平衡每个磁盘的负载,充分发挥多磁盘并行运行的优势。.确保快速访问关键数据,缓解系统瓶颈。数据库中的一些数据,例如数据字典,被频繁访问。为了保证对它的访问不直接影响整个系统的效率,可以将它存储在一个固定的磁盘上,以保证快速访问。由于这个成绩管理系统程序很小,所以没有进行分区设计。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视图创建(一)学生成绩统计:(2)每门课程的平均成绩统计:(3)学生所修课程及学分统计(4)教师教学查询:(五)班课开课查询:(6)原产地平均分查询5.4索引创建因为每张表都创建好了,SSMS会自动生成聚集索引,所以不需要手动创建聚集索引。以下指标按4.2设计:(1)教师编号wmq:(2)专业号wmq:(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)创建一个向学生表中插入信息的存储过程:(2)建立输入成绩并自动生成总学分的存储过程:6、应用系统开发及试运行6.1开发平台和开发环境介绍。开发平台:MicrosoftVisualStudio2010开发环境:VisualStudio是微软公司推出的开发环境。是最流行的Windows平台应用程序开发环境。VisualStudio2010版本于2010年4月12日推出,其集成开发环境(IDE)的界面经过重新设计和组织,更加简单明了。VisualStudio2010还带来了NETFramework4.0、MicrosoftVisualStudio2010CTP(CommunityTechnologyPreview--CTP),支持Windows7的应用开发。除了MicrosoftSQLServer,还支持IBMDB2和Oracle数据库。同时,微软还推出了一种新语言C#,这是一种用于编写基于C++和Java的.NET框架的现代语言。6.2前台接口与后台数据库连接说明,代码实现:使用系统;使用System.Collections.Generic;使用System.Linq;使用System.Text;使用System.Data;使用System.Data.SqlClient;使用System.Windows.Forms;命名空间D01王敏倩{类sqlConnect{公共SqlConnection浣熊=null;公共sqlConnect(){如果(浣熊==空){coon=newSqlConnection("数据源=(local);IntegratedSecurity=SSPI;"+"初始目录=D01wangminqian");if(coon.State==ConnectionState.Closed)coon.Open();}}公共无效关闭连接(){if(coon.State==ConnectionState.Open)coon.Close();}公共数据集Getds(字符串sql){if(coon.State==ConnectionState.Closed)coon.Open();数据集ds=新数据集();SqlDataAdapterda=newSqlDataAdapter(sql,coon);da.填充(ds);浣熊.Close();返回ds;}publicintOperateData(字符串sql){if(coon.State==ConnectionState.Closed)coon.Open();SqlCommandsqlcom=newSqlCommand();sqlcommandText=sql;sqlcommandType=CommandType.Text;sqlcom.Connection=浣熊;intx=sqlcom.ExecuteNonQuery();浣熊.Close();返回x;}公共数据集BinDataGriView(DataGridViewdgv,字符串sql){if(coon.State==ConnectionState.Closed)coon.Open();SqlDataAdapterda=newSqlDataAdapter(sql,coon);数据集ds=新数据集();da.填充(ds);dgv.DataSource=ds.Tables[0];返回ds;}}}6.3系统各功能设计及操作界面截图。登录系统各功能流程图:登陆登陆管理员教师学生管理员操作主界面教师操作主界面学生操作主界面教务安排信息管理信息转储信息查询成绩录入信息查询教师安排班级信息管理课程信息管理学生信息管理信息转储成绩录入学生信息教师任课已修学分教师任课班级开课学生成绩生源地(一)登录界面:不同的用户类型进入不同的界面:(2)管理员界面:(3)教师界面:(4)学生界面:(5)管理员进入界面后,主要操作是安排教务,管理教师、班级和学生的信息。操作界面如下:(6)教师进入界面后,主要操作为教师教学、学生信息查询、成绩输入。操作界面如下:(7)学生进入界面后,主要操作为学生来源平均分查询、教师班级查询、开课查询、成绩及所学学分:7.实验总结7.1遇到的问题及解决方法(1)概念结构设计系统需求分析完成后,在根据用户需求设计概念结构时,遇到了数据冗余等各种问题。慢慢分解关系后,终于得到了一个比较完整的概念结构,用ER图来表示。.(2)数据插入在插入大学成绩管理数据库时,我犯了很多错误。后来查了一下,发现主要的错误是数据的类型、大小和约束,导致有些插入是不可能的。在删除和重建基本表的时候会发现完整性约束阻止了基本表被删除,所以我使用修改基本表的ALTER来进行修改。(3)触发器和存储过程一开始不知道这两个的作用是什么,怎么设计。最后通过查阅书籍和网络资料弄明白了这两个概念,并设计了触发器和存储过程。现在触发器和存储过程的概念如下:触发器:触发器(trigger)是一种特殊的存储过程,其执行不被程序调用。它不是手动启动的,而是由事件触发的,例如当对表执行操作(insert、delete、update)时,它会被激活执行。触发器通常用于强制执行数据完整性约束和业务规则。触发器可以在DBA_TRIGGERS、USER_TRIGGERS数据字典中找到。存储过程:存储过程是一组执行特定功能的SQL语句集是SQLServer提供的用Transact-SQL语言编写的程序。编译然后存入数据库。存储过程是数据库中的一个重要对象。用户通过指定存储过程过程的名称并给出参数(如果存储过程有参数)来执行它。存储过程由流控制控制过程被编译和优化并存储在数据库服务器中。存储过程可以由应用程序一次调用执行,并允许用户声明变量。同

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论