王英奎 朱鹏飞 郭洪亮
摘 要:高校计算机机房的排课系统对合理、高效地使用计算机机房具有十分重要的意义。本文基于.NET框架开发了一套针对我校计算机机房的排课管理系统,该系统不仅支持自动对机房进行排课,还支持人员、课程的管理。
关键词:排课系统 计算机机房 .NET
中图分类号:TP39 文献标识码:A 文章编号:1003-9082(2018)07-000-01
一、系统开发背景
1.高校计算机机房管理现状
随着整个社会信息化的快速发展,高校中的各个学科都趋向于和信息学、计算机学科交叉发展。教学中对机房的使用变得越来越迫切,对机房管理人员而言,如何合理有效地分配机房资源具有重要的意义。
我校计算机中心共有五个机房,每个机房的计算机数量和配置(硬件配置、软件配置)都不相同。目前,对机房的排课都是靠手工进行,在得到相关课程的预约信息后,我们要根据课程要求的上课时间、上课学生数、需要的软件、需要的系统进行统一分配,分配方法是手工制作Excel表格,逐个将所有课程安排妥当。
这种手工排课方式有很多缺陷,首先,工作效率极低,每学期有几十门课程需要安排,因此,需要不停的调整才能满足要求;其次,分配机房容易出错,很难保证所有课程不产生冲突;最后,安排课程时,如果预约的课程有问题,需要及时和相关教师联系,但我们只能通过电话联系,对上课时间、地点、要求等内容的沟通容易出错。
1.1机房管理系统开发现状
目前,针对高校计算机机房管理、课程预约和排课系统已有大量的研究工作[1,2]。早期的机房预约管理系统基于CS架构,随着.NET框架的流行,基于BS架构的系统逐渐流行起来,本文实现的机房课程预约系统也是基于BS架构的[3]。在功能上,已有的系统大多只是实现课程排课功能,不能满足特定单位的特殊要求[4],本文所实现的系统针对我校计算机机房的特有情况,在基本的排课预约基础上,又增加了对机房计算机和任课教师的管理。
二、系统实现
1.系统架构
本系统采用.NET框架,使用C#和Asp.net实现。整体架构采用经典的三层模式:表现层,业务逻辑层,数据访问层,其中表现层采用Asp.net呈现,业务逻辑层采用C#编码,编写了专业的数据访问层,后台数据库采用SqlServer2008。
2.代码结构
2.1名字空间CEEI.DAO为业务逻辑层,主要类包括:
a) 类clsDBOpenAPI
名字空间 CEEI.DAO中主要的类clsDBOpenAPI定义了系统中所有的逻辑操作,例如:
public Dictionary
public DataTable GetClassByDate(string date) 获取某一天的课表信息
public int InitClassArrangement(clsReservation Reservation) 初始化课程安排
public int InitSemester(clsSemester Semester) 初始化学期信息
public DataTable QueryClassByRoonumClassnum(string claarrangeid, string roomid) 根据第几节和房间号获得课表信息
b)类clsInitParameters,该类中定义了系统使用的相关参数:学期周数,第几周,星期几,日期。
c) 类clsReservation,該类定义了预约信息。
2.2名字空间CEEI.DataAccess,该空间为数据访问层。
a)类clsDataProvider,该类为数据访问层的关键类,实现对数据库数据的添加、查询、修改。它的实现方式是通过clsMetaParser类分析meta目录下的meta.xml文件,获得sql存储过程的代码,进而执行。
b)类clsMetaFunction,该类分析执行sql函数。
c)类clsMetaGet,该类分析执行sql存储过程,查询数据表。
d)类clsMetaParser,该类分析meta.xml。
3.具体功能实现
3.1课程预约页面
课程预约页面:reservation.aspx为本系统的核心功能,,操作方法:每添加一门课程后,点击submit,点此按钮后,课程安排会存放到数据库中“classarrangementtemp”表中,此时表中记录数量较大,把所有课程都添加完成后,最后点击Generate,会生成记录数较小的表classarrangement。
3.2其它主要功能模块
lmain.aspx 主页面,其主要内容是课程查询显示,课表显示矩阵:能够根据本学期上课周数、按日期查询上课情况,绿色图标表示当前时间机房空闲,红色表示机房被占用,将鼠标移到红色图标上方将弹出当前上课的情况,包括上课名称、专业、班级。
三、总结
针对我校计算机机房预约排课的难点,本文实现了一个计算机机房预约排课系统。该系统不仅能够自动对预约的课程进行合理高效的排课,还具有机房管理、人员管理的功能。经我校老师的实际应用,证明该系统具有较高的实用性。
参考文献
[1]张薇.高校计算机机房管理经验浅谈[J].电脑知识与技术:学术交流,2006(12X):229-230.
[2]章斐,陈明星,潘伟.实验室机时预约及信息管理系统的开发与应用[J]. 实验技术与管理,2008(01):90-93.
[3]张文增,孙振国,赵冬斌.基于B/S结构的实验室管理信息系统开发方案[J].计算机工程与应用,2002(11):233-234.
[4]潘伟,章斐,刘鹏.公共仪器实验室仪器使用机时网上预约系统的设计和运用[J]. 实验技术与管理,2004(01):159-162.
计算机软件数据库设计原则与价值解读
何 清
(济宁学院,山东 曲阜 273155)
摘 要:计算机软件数据库作为存储用户数据的基本形式,具有统一管理、结构化存储以及集中控制的优势,加强数据库的设计有助于提升用户数据的管理有效性,对于提高系统安全性也是极其关键的。本文从数据库介绍、数据库价值分析以及数据库安全设计原则等内容进行简要的分析和介绍,为更好的利用计算机软件数据库提供参考。
关键词:计算机 软件 数据库 设计
中图分类号:TP311 文献标识码:A 文章编号:1003-9082(2018)07-000-01
一、数据库简介
数据库(database)是按照一定的数据结构和组织形式存储于计算机系统的数据文件。数据库按照基本的机构层次可划分为三种类型,即物理层、概念层以及用户层,其中物理层是指计算机系统中各种数据的实际存储形式,物理层又称为内模式,通常物理层数据的维护由数据库管理系统完成,用户参与的情况较少;概念层则是数据库的逻辑表示,是数据库表定义以及字段定义的逻辑形式,用来存储数据集合,同时逻辑层还定义了数据表之间的逻辑关系,使之具有一定的联系,概念层由数据库管理员进行设计和定义的;用户层对应了数据的视图层,供特定的用户使用,用户层作为最外层的数据结构,是供用户直接使用的和展示。从数据的结构层次来看,数据库是通过层层映射来进行系统实现的。从实际的数据库应用来看,目前绝大多数的数据库以关系型为基本的实现形式,所谓的关系型数据库都是基于二维的表结构进行实现的,如常见的Oracle数据库、MS SQLserver数据库、MySQL等都是关系型数据,近年来大数据云计算的发展,Nosql数据库也同样迅速成长起来。下面主要以常见的关系型数据为例进行介绍和论述。
二、计算机软件中数据库设计的价值性分析
1.通过数据库接口实现数据共享
数据共享是数据库中数据应用的主要形式,通过对不同类型的用户赋予相关权限,用户可实现数据库中表数据的访问控制,按照访问权限对于数据的控制类型最为常见的就是进行读写控制,为了避免数据“脏”读或写以及一致性的问题,数据库设计人员还实现的事务(Transaction)以及锁机制,提供不同用户进行同时访问的机制,提高数據库访问中数据的可靠性访问,避免了由于不当读写引发的数据库问题。数据库数据共享主要是通过结构化的访问语句进行实现。
2.通过数据库减少数据冗余
数据的管理先后经历的人工管理、文件系统管理和数据库管理等阶段,数据库管理较之人工管理以及文件系统管理的最大优势即在数据的冗余度大大减少,另外为了进一步的提升数据库冗余度的问题,设计人员还进行的范式的设计,一共包括五个级别(第一范式、第二范式、第三范式、第四范式以及第五范式)来降低应用数据库系统的数据冗余度,主要是通过优化表字段设计,生成中间表等方式进行实现。数据冗余的降低对于高效的数据管理有着十分重要的意义,也是提高数据运行效率的管理。
三、计算机软件数据库设计的基本原则
1.保障基本功能的可用性
基本功能的可用性,即对用户事件操作作出相应的正确响应,对应于数据库操作同样以结构化的操作语言进行实现的。数据库功能的可用性设计是数据库基本的设计要求,必须满足用户对软件操作后的数据持久化操作功能。通常在软件分层设计过程中,从用户角度向内依次可划分为UI层(界面层)、业务逻辑层(Business层)以及持久化层(DAO层次),而数据库的设计即集中体现持久化的设计中。无论是用户调用业务逻辑层代码,访问数据库操作,还是通过业务逻辑层抓取数据库中数据都应满足用户的业务功能。
2.不断提升数据库的性能
有了基本的可用性保障,对于数据库性能的提升也是极其关键的,衡量数据库性能性能指标通常以延时(硬件的突发处理能力)和带宽(硬件持续处理能力)来衡量的。性能的提升主要通过优化表结构设计、增加冗余字段等进行实现的,以增加冗余字段为例,其典型的应用——增加索引,通过对数据表建立索引,设计者应在表空间和运行效率之间做好权衡,不断提升系统运行效率。另外,对于一些高并发的情况,设计人员应通过及时释放链接、对于经常操作的数据延长驻留内存时间等方式进行。总之,不断提升系统运行效率对于提高数据库的可用性也是极其关键的,在进行数据库设计的时候应重点考虑。
3.加强数据库可拓展性设计
随着用户需求的不断增长,对于数据库拓展性的设计也是极其关键的,数据库拓展性设计可以通过增加中间表、增加字段以及设计临时表达方式进行是实现。中间表是通过在相应几张表之间通过抽取相关字段(增加字段)的方式来实现的,中间表的可以拓展表功能,并且灵活度较高,对于原始系统的侵入性低,而通过增加字段的方式对原有表具有较大的侵入性,同时一些原始数据往往由于不存字段值需进行大量的数据修改,表内容不高的条件下容易实现,表内容较多的条件下则修改复杂度就需要消耗大量的精力去重新设计;临时表与增加中间表的思路基本一致,也是常见的一种方式。建议设计人员进行合理的选择,以提高数据库系统拓展性功能。
4.注重数据库安全性设计
数据库安全性作为数据库安全性设计的重要方面应引起重视,对于安全性设计首先是对用户权限分配的设计,对于不同用户应分配不同的权限,建议采取最小权限设计的方式方式进行设计,避免权限分配过大或过小引起的权限问题;其次是表字段数据的安全设计问题,对于关键词段应进行加密涉及,建议采取MD5等方式进行加密,即便恶意用户对数据进行了窃取,其仍然无法对数据进行操作,这是极其关键的;再次则是表视图的问题,可以通过视图等操作暴露出相关字段,相较而言,通过视图可以隐藏原始表字段和数据,提高数据的安全性;除此之外,临时表可以进行安全性操作,通过构建临时表对数据进行临时展示,操作结束以后恢复数据,同样具有安全保护能力。另外,基于存储过程、函数可以对外暴露接口,而隐藏内部操作,提升数据访问安全性。
综上所述,数据库的设计应从数据库功能性、性能性、可拓展性以及安全性等方面进行设计,为更加有效的利用数据库提供参考,为软件功能的实现提供数据管理支撑。
参考文献
[1]熊辉.软件开发中数据库设计理论的实践探究[J].无线互联科技,2017(22):58-59
[2]杨中书,刘臣宇.基于E-R模型的关系数据库设计方法[J].价值工程,2014,33(30):242-243.
[3]韦耿.数据库设计在网站管理系统中的应用[J].数字技术与应用,2013(09):67-68.