在奖学金评比过程中,学生综合测评是学校普遍采用的评比手段。对学生实施综合素质测评的目的在于正确评价学生的综合素质,为评奖学金提供依据,实现学生教育管理工作的标准化、制度化和科学化,引导和促进学生德、智、体、美全面发展。
目前我国普遍高校学生奖学金评比还停留在纸质的阶段,许多工作需要传统的手工操作,这不仅浪费了大量的人力物力资源,而且由于人工管理存在着许多不可控因素,导致学生奖学金评比操作不规范,测评结果不全面,不能客观准确地反应学生的综合素质。因此,建立一套基于计算机环境的技术先进、高效稳定、安全可靠的奖学金测评系统是完全有必要的。
奖学金评比系统的目的是自动分析、计算、统计、管理学生综合测评数据,减少人工干预,降低计算失误,提高工作效率,将辅导员、班主任、班委从繁重的综合测评及日常管理中解放出来,使学校的综合测评工作系统化、规范化、自动化。
与传统的纸质评比相比,计算机管理不但能发挥计算机方便、快捷的功能,而且可以节省大量的资源费用等,更方便灵活操作,而且方便管理,增加奖学金评比的公平性、透明性,有效防止奖学金评比的弊端,使学生奖学金评比更加合理、更趋于成熟。这些都能够极大地提高工作效率,特别是校园网应用发展迅速的今天,利用网络进行信息的查询、修改和发布已成为学校现代化管理的象征之一,也是学校科学化和正规化管理的重要条件。因此开发一套比较成熟的学生奖学金评比系统很有必要。
软件是程序以及开发、使用和维护所需要的所存文档,也就是说软件不仅仅是程序。完整的软件产品应包括计算机程序以及在软件开发、使用和维护阶段所需要的各种文档。评价软件质量的好坏,不仅要看软件是否能按照既定的要求进行工作,在性能和速度方面是否都符合设计要求;软件的结构是否良好;还要看软件的文档是否齐全。
软件生命周期可分为开发期(计划、分析、设计、实施)和维护期(软件维护阶段)。在开发期,每一个阶段的文档资料是以后各个阶段工作的基础,又是对前面各阶段工作的复审;在维护期,需要不断地修改源程序,开发新的程序模块等等,这些都需要很好地阅读、理解源程序,而要真正地读懂、理解源程序,必须借助有关源程序的各种说明文件,即文档。所以文档的编制工作是软件开发作业的主要组成部分,文档的编制必须标准化。
利用文档可以详尽地罗列出本实验小组的程序设计的思路,来为我们精细而又顺畅的期间工作做好铺垫,同时也为了更好、更深入地向用户介绍我们的程序设计结果,达到我们预想的双重目的。
本文档适用于项目开发的设计阶段,在项目开发阶段可按照本文档检验数据库的实施情况。
本文档的描述范围包括文档的基本信息介绍、程序的需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据保护设计以及运行管理与维护说明等相关内容。文档明确说明系统开发的详细步骤及未来相关维护工作,以辅助系统相关者更好地阅读和理解程序内容。
奖学金评比系统(Scholarship Rating System)开发为的是自动分析、计算、统计、管理学生综合测评数据,减少人工干预,降低计算失误,提高工作效率,将辅导员、学生、班委从繁重的综合测评及日常管理中解放出来,使学校的综合测评工作系统化、规范化、自动化。
计算机管理不但能发挥计算机方便、快捷的功能,而且可以大量节省了资源、费用等,更方便灵活操作,而且方便管理,增加综合测评的公平性、透明性,有效防止综合测评的弊端,使学生综合测评更加合理、更趋于成熟。这些都能够极大地提高工作效率,特别是校园网应用发展迅速的今天,利用网络进行信息的查询、修改和发布已成为学校现代化管理的象征之一,也是学校科学化和正规化管理的重要条件。
对于这篇《奖学金评比系统(Scholarship Rating System)》的理解需要对Delphi工程项目或者SQLServer-数据库代码示例进行了解,但这也并不是必要条件。
《奖学金评比系统(Scholarship Rating System)》的读者对象包括从事DBMS、面向对象编程、高校教务人员行业的工作者,高校中信息专业、计算机专业、管理专业、软件工程专业等有数据库课程的本科生、硕士生,深入学习SQLServer-数据库的读者,深入学习对象-关系数据库的读者,也可以作为数据库课程的参考资料。
本文档面向具有数据库开发使用经验的开发者中那些希望获得锻炼和提升的人。
[1]张海藩.软件工程导论[M].北京:清华大学出版社.1998年
[2]郑人杰,殷人昆.软件工程概论[M].北京:清华大学出版社.2001年
[3]Katharine Whitehead.基于组件开发[M].北京:人民邮电出版社.2003年
[4]熊春荣,学校学生信息管理系统的设计与实现[J].玉林师范学院学报,2006年
[5]萨师煊,王珊.数据库系统概论(第三版)[M],高等教育出版社,2000年
[6]邵维忠,杨芙清著.面向对象的系统分析.北京:清华大学出版社,1998年
[7]张友生等编著.《软件体系结构》.北京:清华大学出版社,2006年
[8]吴洁明,袁山龙编著.软件工程应用实践教程.北京:清华大学出版社,2003年
缩写、术语 | 解 释 |
---|---|
SPP | 精简并行过程,Simplified Parallel Process |
SD | 系统设计,System Design |
1:1联系 | 如果实体集E1中的每个实体最多只能和实体集E2中的一个实体有联系,反之亦然,好么实体集E1对E2的联系称为"一对一联系",记为"1:1" |
1:N联系 | 如果实体集E1中每个实体与实体集E2中任意个(零个或多个)实体有联系,而E2中每个实体至多和E1中的一个实体有联系,那么E1对E2的联系是"一对多联系",记为"1:N" |
M:N联系 | 如果实体集E1中每个实体与实体集E2中任意个(零个或多个)实体有联系,反之亦然,那么E1对E2的联系是"多对多联系",记为"M:N" |
SQL数据库 | SQL(Structured Query Language),即'结构式查询语言',采用英语单词表示和结构式的语法规则。一个SQL数据库是表的汇集,它用一个或多个SQL模式定义 |
DD | 数据字典(Data Dictionary),数据库系统中存放三级结构定义的数据库称为数据字典。(通常DD还存放数据库运行时的统计信息) |
集中式DBS | 是指数据库中的数据集中存储在一台计算机上,数据的处理集中在一台计算机上完成 |
函数依赖 | FD(function dependency),设有关系模式R(U),X,Y是U的子集,r是R的任一具体关系,如果对r的任意两个元组t1,t2,由t1[X]=t2[X] 导致t1[Y]=t2[Y],则称X函数决定Y,或Y函数依赖于X,记为X→Y。X→Y为模式R的一个函数依赖 |
1NF | 第一范式。如果关系模式R的所有属性的值域中每一个值都是不可再分解的值,则称R是属于第一范式模式。如果某个数据库模式都是第一范式的,则称该数据库存模式属于第一范式的数据库模式 |
2NF | 第二范式。如果关系模式R为第一范式,并且R中每一个非主属性完全函数依赖于R的某个候选键,则称是第二范式模式;如果某个数据库模式中每个关系模式都是第二范式的,则称该数据库模式属于第二范式的数据库模式。(注:如果A是关系模式R的候选键的一个属性,则称A是R的主属性,否则称A是R的非主属性。) |
3NF | 第三范式。如果关系模式R是第二范式,且每个非主属性都不传递依赖于R的候选键,则称R是第三范式的模式。如果某个数据库模式中的每个关系模式都是第三范式,则称为3NF的数据库模式 |
数据库服务器选择Lenovo,操作系统使用windows7,数据库选用SQLServer。
系统的硬件要求为微型计算机,8M以上的内存,500M以上的外存。
程序设计语言为Delphi 7。Delphi是全新的可视化编程环境,为我们提供了一种方便、快捷的Windows应用程序开发工具。它使用了Microsoft Windows图形用户界面的许多先进特性和设计思想,采用了弹性可重复利用的完整的面向对象程序语(Object-Oriented Language),当今世界上最快的编辑器和最为领先的数据库技术。
本次课程设计是以Microsoft SQL Server 2005数据库软件为基础,利用该软件进行数据库的设计和数据的导入。建立的数据库名称是goodsmanager,并在该数据库中建立登录用户信息表、供应商信息表、顾客信息表等多张数据表来存放不同的信息,为Delphi软件的设计提供有力的支持。数据库的概念模式设计阶段的ER图,则是利用Microsoft Office Visio 2003软件进行编辑设计,以此清晰设计的基本结构。在明确设计的基本架构和需求之后,程序最后在Delphi软件上,利用ADOConnection、ADOQuery等控件来调用数据库中建立的数据,DBGrid控件来显示数据,通过设计、编译、修改、运行,最后得到一个完整功能的系统。
系统环境的详细配置过程:
①利用Microsoft Office Visio 2003建立系统ERD,明确系统整体结构;
②利用Microsoft SQL Server 2005创建数据库及相关表格,为之后的设计提供相关数据;
③利用Delphi编程软件进行系统的设计与编写,并连接数据库以实现相关功能;
本系统主要进行学生的奖学金评比综合成绩考核和班委对学生情况的管理记相关的活动。主要包含如下功能模块:
(1)表的命名:以名词和名词短语; (2)列的命名:采用有意义的命名,能表达其表示的内容的名词短语; (3)视图与存储均与表的命名类似。 数据库涉及字符规则 采用26个英文字母(区分大小写)和0 -9这十个自然数,加上下划线_组成,共63个字符。不能出现其他字符(注释除外)。 数据库对象命名规则 数据库对象包括表、视图(查询)、存储过程(参数查询)、函数、约束。对象名字由前缀和实际名字组成,长度不超过30。 前缀:使用小写字母。如: 表 tb 视图 vi 存储过程 sp 函数 fn 实际名字 实际名字尽量描述实体的内容,由单词或单词组合,每个单词的首字母大写,其他字母小写,不以数字和_开头。因此,如合法的对象名字类似如下。 表 tbUser_Info、tbMessage_Detail 视图 vi_MessageList 存储过程 sp_MessageAdd 数据库表命名规则 字段由前缀和实际名字组成。实际名字中首单词一个系统尽量采取同一单词。 前缀:使用小写字母tb,如表示表。 例如:tbMember tbMember_Info t bForum_Board tbForum_Thread1 字段命名规则 数字、字符、日期/时间、lob(大对象)、杂项,字段由表的简称、下划线,实际名字加后缀组成。 后缀:使用小写字母,代表该字段的属性。 例如: User_Idint User_Namestr User_RegDatedtm 视图命名规则 字段由前缀和实际名字组成,中间用下划线连接。 前缀:如使用小写字母vi,表示视图。 例如:vi_User vi_UserInfo 存储过程命名规则 字段由前缀和实际名字组成,中间用下划线连接。 前缀:如使用小写字母sp,表示存储过程。 例如:sp_User SQL语句规则 所有SQL语句的关键词全部大写或首字母大写,比SELECT,UPDATE,FROM, ORDER,BY等。
概念结构设计即建立ERD,利用实体、联系和属性来表示数据库基本表内部属性以及表与表之间的关系。ERD设计不仅是用图形方便、直接地表达应用中的各种语义知识,而且形式简单、清晰,易于用户理解。 数据库设计人员根据需求文档,创建与数据库相关的那部分实体关系图(ERD)。如果采用面向对象方法(OOAD),这里实体相当于类(class)。
6 逻辑结构设计 1.从E-R图向关系模式转化 数据库的逻辑设计主要是将概念模型转换成一般的关系模式,也就是将E-R图中的实体、实体的属性以及实体之间的联系转化为关系模式。在转化过程中会遇到如下问题: ①命名问题:命名问题可以采用原名,也可以另行命名,但要注意避免重名。 ②非原子属性问题:非原子属性问题可将其进行纵向和横行展开。 ③联系转换问题:联系可用关系表示。 2.数据模型的优化 数据库逻辑设计的结果不是唯一的。为了进一步提高数据库应用系统的性能,还应该适当修改数据模型的结构,提高查询的速度。 3.关系视图设计 关系视图的设计又称为外模式的设计,也叫用户模式设计,是用户可直接访问的数据模式。同一系统中,不同用户可有不同的关系视图。关系视图来自逻辑模式,但在结构和形式上可能不同于逻辑模式,所以它不是逻辑模式的简单子集。 表Basic (Number,Points,Ranking)
表Comprehensive (Number,Points,Ranking)
表Course (CNumber,CName,Ccredit,Ctype)
表Extra (EName,EGrade,EType)
表Login (Number,UserNum)外键:UserNum
表Mindandbody (Number,Body,Mind,Points,Ranking)
表Morality (Number,Self,Student,Instructor,Record,Points,Ranking)
表Prize (Number,C1,C2,C3,NL,StudyWell,XXJB,SHGZ,WTYX,XXYX)
表SC (Number,Course,Grade)外键:Number ,Course
表SE (Number,EName)外键:Number,EName
表Specialty (Number,Points,Ranking)
表Student (Number,Name,Sex,Password,Type)
顶层DFD
第一层DFD
第二层DPD
(1)主要是设计表结构。一般地,实体对应于表,实体的属性对应于表的列,实体之间的关系成为表的约束。逻辑设计中的实体大部分可以转换成物理设计中的表,但是它们并不一定是一一对应的。 (2)对表结构进行规范化处理(第三范式)。
表名 功能说明 Basic 记录学生基本项分数与排名 Comprehensive 记录学生的综合测评 Course 记录课程名,课程编号,学分,课程性质 Extra 记录获奖证书,加分情况和证书性质 Login 记录最近三个登陆用户的学号 Mindandbody 记录学生的体质成绩和排名 Morality 记录学生的道德测评情况 Prize 记录学生的获奖情况 SC 记录学生的选课信息及课程成绩 SE 记录学生的加分项信息 Specialty 记录学生的专业素质成绩和排名 Student 记录学生的学号姓名,性别,密码信息和类型
表名 Basic 列名 数据类型(精度范围) 空/非空 约束条件 Number Nvarchar(255) 非空 主键 Points Float 可以为空 无 Ranking Folat 可以为空 无 补充说明 记录学生基本项分数与排名
表名 Comprehensive 列名 数据类型(精度范围) 空/非空 约束条件 Number Nvarchar(255) 非空 主键 Points Float 可以为空 无 Ranking Folat 可以为空 无 补充说明 记录学生的综合测评
表名 Course 列名 数据类型(精度范围) 空/非空 约束条件 CNumber Float 非空 主键 CName Nvarchar(255) 非空 无 Ccredit Float 可以为空 无 Ctype Nvarchar(255) 可以为空 无 补充说明 记录课程名,课程编号,学分,课程性质
表名 Extra 列名 数据类型(精度范围) 空/非空 约束条件 EName Nvarchar(50) 非空 主键 EGrade Float 可以为空 无 EType Nvarchar(255) 可以为空 无 补充说明 记录获奖证书,加分情况和证书性质
表名 Login 列名 数据类型(精度范围) 空/非空 约束条件 Number Nvarchar(50) 非空 主键 UserNum Nvarchar(50) 非空 主键 补充说明 记录最近三个登陆用户的学号
表名 Mindandbody 列名 数据类型(精度范围) 空/非空 约束条件 Number Nvarchar(255) 非空 主键 Body Float 可以为空 无 Mind Float 可以为空 无 Points Float 可以为空 无 Ranking Float 可以为空 无 补充说明 记录学生的体质成绩和排名
表名 Morality 列名 数据类型(精度范围) 空/非空 约束条件 Number Nvarchar(255) 非空 主键 Self Float 可以为空 无 Student Float 可以为空 无 Instructor Float 可以为空 无 Record Float 可以为空 无 Points Float 可以为空 无 Ranking Float 可以为空 无 补充说明 记录学生的道德测评情况
表名 Prize 列名 数据类型(精度范围) 空/非空 约束条件 Number NVARCHAR(255) 非空 主键 C1 Float 可以为空 无 C2 Float 可以为空 无 C3 Float 可以为空 无 NL Float 可以为空 无 StudyWell Float 可以为空 无 XXJB Float 可以为空 无 SHGZ Float 可以为空 无 WTYX Float 可以为空 无 XXYX Float 可以为空 无 补充说明 记录学生的获奖情况
表名 SC 列名 数据类型(精度范围) 空/非空 约束条件 Number Nvarchar(255) 非空 主键 Course Float 非空 主键 Grade Float 可以为空 无 补充说明 记录学生的选课信息及课程成绩
表名 SE 列名 数据类型(精度范围) 空/非空 约束条件 Number Nvarchar(255) 非空 主键 EName Nvarchar(255) 非空 主键 补充说明 记录学生的加分项信息
表名 Specialty 列名 数据类型(精度范围) 空/非空 约束条件 Number Nvarchar(255) 非空 主键 Points Float 可以为空 无 Ranking float 可以为空 无 补充说明 记录学生的专业素质成绩和排名
表名 Student 列名 数据类型(精度范围) 空/非空 约束条件 Number Nvarchar(255) 非空 主键 Name Nvarchar(255) 非空 无 Sex Nvarchar(255) 非空 无 Password Nvarchar(255) 非空 无 Type float 非空 无 补充说明 记录学生的学号姓名,性别,密码信息和类型
提高软件系统的安全性应当从"管理"和"设计"两方面着手。这里仅考虑数据库的安全性设计。
该系统用户帐号全部由系统管理员管理,在数据库中,对组和用户访问数据库权限的设置工作,只能通过管理员完成。设置的权限包括:"打开/运行",读取设计、修改设计、管理、读取数据,更新数据、插入数据和删除数据用户只能用通过认证的帐号登陆到应用软件,通过应用软件访问数据库,而没有其他途径操作数据库,且用户的操作权限有限,不能任意修改数据库中的关键数据,只能对数据进行读取和输入等常规操作,因能能很好的保护数据库的数据。 1.用户权限控制 给每个用户角色限制权限,不同的角色拥有不同的权限,用户只能行使自己权限范围内的权限,如普通用户只能查看自己的借阅记录不能任意修改,而管理员和超级管理员则可以修改用户的借阅记录,通过角色,权限等的一系列授予和回收操作可以有效的进行用户的权限控制,从而防止用户恶意操作、篡改数据库信息。 2.数据库登录设密 给数据库设置登录账号和密码,只有拥有直接访问数据库权限的用户在键入正确的账号和密码后才能通过软件登录到数据库进行操作,可防止用户恶意操作数据库。 3.限制操作系统存取权限 使用数据库系统是依存在操作系统之上的,如果操作系统被人侵入,那么通过修改配置文件等一系列方法,数据库的安全性也将荡然无存,所以对于安全性高的数据库,可以通过限制操作系统的存取权限来提高数据库的安全性。
使用MD5加密方法对用户账号密码进行加密。 MD5方法采用单项加密的加密方法,即只能对数据进行加密,而不能对加密后的数据进行解密,这样经过MD5算法处理的账号和秘密存储在数据库中即使被人恶意获取到,也不可能知道密码的具体数据,即做到了对账号密码的更强的保护。 对用户密码的加密方法:以"*"代替用户输入密码显示在界面上。即在Delphi设计时,将Edit控件的Passwordchar属性设置为"*",以保证用户密码的安全性。
确定每个角色对数据库表的操作权限,如创建、检索、更新、删除等。每个角色拥有刚好能够完成任务的权限,不多也不少。在应用时再为用户分配角色,则每个用户的权限等于他所兼角色的权限之和。 角色 可以访问的表与列 操作权限 学生 Basic、Comprehensive、Course、Mindandbody、Morality、Prize、Specialty 查 班委 所有表及列 增删改查
在数据库的设计过程中经常要添加、删除数据库对象,这会使数据库内部留有许多碎片,不能有效地利用磁盘空间,文件会逐渐增大。这有点象文件系统经过多次的增删操作,会导致文件碎片,浪费磁盘空间,而且读写效率降低。可以用压缩数据库,它将重新安排数据库文件在磁盘中保存的位置,并释放磁盘空间,通常文件的容量会缩小成原来的几分。 分析并优化数据库的"时-空"效率,尽可能地"提高处理速度"并且"降低数据占用空间"。 (1)分析"时-空"效率的瓶颈,找出优化对象(目标),并确定优先级。 (2)当优化对象(目标)之间存在对抗时,给出折衷方案。 (3)给出优化的具体措施,例如优化数据库环境参数,对表格进行反规范化处理等。 优先级 优化对象(目标) 措施 高 数据库索引 根据查询条件,建立索引,优化索引、优化访问方式,限制结果集的数据量 高 数据库碎片 定期整理数据库产生的碎片,提高数据库的性能 高 数据库缓存 优化数据库缓存方案 高 数据库对象 优化数据库对象的放置策略,尽量让数据库对象均匀地把数据分布在系统的磁盘中,平衡I/O访问,避免I/O瓶颈。
DBA(即本系统的管理员)要针对不公的应用要求制定不同的转储计划,定期对数据库和日志文件进行备份,以保证数据库中数据在遭到破坏后能及时进行恢复。
DBA应采取有效的措施保护数据不受非法盗用和遭到任何破坏
DBA需要随时观察数据库的动态变化,并在数据库出现错误、故障或产生不适应情况时能够随时采取有效措施保护数据库
数据库备份方案 添加任务计划,定期定时运行备份批处理命令,实现自动备份。 设计一个物理备份和逻辑备份相结合的数据库备份方案,以保证数据的完整性和0损失恢复。 逻辑备份: 星期一 完全备份 在00:00时备份 星期二 增量备份 在00:00时备份 星期三 增量备份 在00:00时备份 星期四 增量备份 在00:00时备份 星期五 累积备份 在00:00时备份 星期六 增量备份 在00:00时备份 星期日 增量备份 在00:00时备份 分析:每天在00:00时备份是因为在这个时段的访问量相对很少,星期一完全备份可以将数据库中的信息全部备份,而之后的几天采用增量备份可以减少备份量,加快备份速度。在在星期五选择累计备份,是考虑到数据库出错时恢复的考虑,当数据库在某一周有错误时,可以直接恢复到星期五的数据,而不用一天一天的按增量备份的数据恢复。 物理备份: 备份方法 备份频率 备份时间 备份目的 本地热备 1次/天 00:00 保留最近一周的备份数据 本地冷备 1次/一月 每周星期五下午 保留数据库全部数据 异地导出备份 1次/天 12:00 保留最近一周的备份数据