大学生义工管理系统数据库的设计与分析
作者:卢峰 林沣
来源:《广西教育·C版》2021年第05期
        【摘 要】本文针对计算机网络技术成熟发展的现状,指出大学生义工信息管理系统应立足于大学生义工的实际需求,后台数据库开发工具采用SQL Server 2008系统,优化处理数据库的各项信息,使该系统具有相对稳定、便于维护和更新等优点。
        【关键词】大学生义工 管理系统 优化数据库 存储方式
        在管理义工的过程中,准确把握义工的特点和能力、活动信息等,在数据量日益增多的信息化时代,要求也越来越高。采用互联网手段,对大学生义工活动进行数字化管理已是必然,这样做既能从根本上解决义工管理上的疏漏,又能大大提高工作效率,增加数据的安全性和可维护性。使用义工管理系统中的数据还能对其数据进行系统的分析,减少义工重复工作和完成质量低的问题,改进义工管理业务的处理效率。同时,发挥互联网快速便捷、存储分布式、数据安全性高的优势,提高管理效率。
        一、数据初始化
        大学生义工管理系统的数据库用户和功能因组织而异,但总体上来说管理项目是大体类似的,主要涉及以下三方面的数据。
        (一)义工信息数据
        义工信息数据可以从分特征去定义,一个是义工的专业特征,另一个是义工个人的擅长领域。尽可能地设计更多的字段去记录义工的信息,这样就能在后期数据分析和派遣上有所
倾向。
        (二)义工项目数据
        义工项目数据中主要是对项目的分类和活动的分派等进行记录。项目分类主要依据是劳动的类型,体力劳动如打扫场地、搬运物件;脑力劳动如整理文件、录入数据,这里就存在着对义工能力特征的需求类型不一,要求数据库中项目的分类与义工的能力特征关联。数据初始化过后,在运行一段时间,组织者记录每一次活动的情况,数据库可以对数据进行整理,以便能在以后的活动中形成准确的关联。当然,也会存在一些小问题,例如项目分类被修改、项目分类不明确,但通过调整,直到相对完善。
        (三)评价管理数据
        评价是客观反映义工完成效果,完成质量的记录,也需要与项目数据和义工信息数据建立联系。在评价体系中,项目的难易和义工的能力是需要平衡的,必须通过优化,尽可能地让项目难易度与义工能力匹配度一致,保证高标准高要求完成。
        二、数据库模型
        在系统开发的过程中,要提高系统的实际性能,降低客户端和服务器端的编程和维护的难度,所以设计一个合理的数据库模型就显得尤为重要。
        数据库模型采用多对多的关联关系,用工部门可以发布多个义工项目,每个义工可以对应多个项目,每个项目也可以对应多个义工,通过分析构建大学生义工管理系统实体类关系图,如图1所示。
        三、数据库设计
        数据库管理员和数据库设计师都很熟悉的技术就是对数据库进行分区设计,分区设计具备了可以减少特定SQL操作中数据的读写总量,减少响应时间等多种效果。
        分区跟分表一样,就是按特定的规则对数据库进行分解。主要的区别在于分表是用若干个实体表代替一个达标,分区则是分散在多个位置存储数据。既可以是在同一个物理磁盘内,也可以是在其他的机器中。进行分区过后,数据虽然分散存储在不同的位置上,但实际上是通过数据库系统自动组织分区的数据去操作一张表,在数据库进行读写的时候跟一张大表没有区别。
        当表中的数据变得非常大时,读取数据和查询数据的效率就会非常低。但是如果进行分表保存数据又会使得操作上会变得复杂,这其中的原因是在做CRUD操作时,所涉及的表增多,要进行跨表操作。如果使用分区就能较好地避免这种情况的出现。因为分区是将表的数据按设定的规则保存在不同的分区中,这样既可以保障数据的范围相对统一地划在同一区域中,又可以避免跨表的查询,操作起来就相对容易,并且具备数据量少、运算速度快和方法简单等特点,对程序透明,程序不需要做任何修改。
        大学生义工管理系统数据库初始规模约为40M,之后要考虑每年2GB的数据增长量。因此必须对数据库服务器进行合理的配置规划。首先,在一般情况下系统盘不作为数据库存储盘,这样系统数据和数据库数据互不受影响。其次,数据库的事务日志文件要与数据文件分开保存在不同的盘中,这样做的原因主要是可以避免在服务器出现硬件故障的时候导致数据丢失,有利于数据的恢复。最后,每年的数据增长率,如果在不考虑辅助数据文件的情况下,可以略微缩减,如果考虑辅助数据文件,那需要另外存储。这样将主文件、事务日志文件和辅助文件独立存储在三个不同的盘或者磁盘阵列上,数据库的读取性能、稳定性和安全性都将大大地提高。
        四、数据表的设计
        数据表在进行设计的时候要考虑具体的问题。(1)数据行的长度是有限制的,长度过长会造成数据存储的碎片产生,降低查询的效率。(2)编号和等采用数字字段存储,因为数字的比较会比字符串的比较简单(数字是一次比较,字符串是逐个比较),这样既能提高查询和链接的性能,又能减少存储的开销。(3)在存储字符类型时,对可变字符类型varchar和不可变字符类型char从查询速度、存储空间和灵活度上来说也是有较大区别的,用户名、密码这类长度、规则相对固定的可以采用char存储,评价内容等变化较大的文本可以选择varchar。(4)名称相对较短的字段名也能提高查询的效率,同时在建立索引时也能有效地减少计算资源的损耗。(5)第三范式是数据库设计应遵循的最佳规则,但是往往在设计基本表及其字段的关系时,会出现不能完全满足的情况,此时为了让数据库更高效地运行,适当地使用低标准的范式,即使增加了数据冗余,但是效率上可以弥补。(6)数据表有一个特点是可以处理多对多的关系,但是不容易识别多对多的关系,尽可能地在表与表之间避免多对多的关系是在设计表的时候要考虑的,这里采用的方法是在两个表之间增加第三个表来消除。通过这样的操作可以用两个一对多的关系去代替一个多对多的关系,并且用三个表来表示的属性也比原有的两个表要分配得更合理一些。(7)主键作为表与表之间的连接工具,它的取值也是要在设计时考虑的,因为它既可以是没有任何联系和意义的通过
自动增长来实现的数字串,也可以是具有某种意义的字段名或者字段名组合,但是通常第一種比第二种更利于查询。因为使用字段名或字段名组合时,容易因为字段个数的关系导致索引占用空间大,速度慢。
        此外,还要分清一个概念就是主键与外键的重复出现不属于数据冗余,数据冗余只有非键字段的重复才算,这种重复性的冗余只是单纯的字段重复出现,而不是字段的派生出现,属于低级冗余。
        根据数据库模型和字段的设计规则,大学生義工管理系统包含四个数据表,分别为义工信息表(VTS_Info):字段有学号、姓名、性别、身份证号码、、所在院系、所在班级、参与活动次数和活动类型等;义工项目表(PR_Info):字段有项目编号、项目类型、参与人员等;评价表(COM_INFO):字段有开始时间、完成时间、完成情况和存在问题等;用户信息表(US_Info):字段有用户编号、身份角和密码等。
数据库设计的意义
        五、使用存储过程代替直接操作
        存储过程是一组SQL语句在大型数据库系统中完成特定的功能,用户编写好存储过程后,
只需要根据存储过程的名称,并搭配所需参数编译一次,之后再次使用便不需要重新编译,这是大多数设计优良的数据库应用程序都使用的方法,特别是在一些操作相对复杂、使用频次比较高的逻辑业务中,采用存储过程代替复杂的SQL语句是优化数据库访问的重要手段。
        把大学生义工活动的查询操作使用系统的存储过程具备以下优点:第一,例如将项目活动的派遣设计为存储过程,创建标准组件并进行编译后,在使用时只需要调用和执行,而不需要再次去重写存储过程的SQL语句,而且数据库管理员还能在运行后对存储过程进行调整,调整的同时不会涉及后端程序编码,大大提高了存储过程的可移植性。第二,例如义工活动评价这一类需要进行复杂的连表操作,又或者是需要执行多条T-SQL语句完成的,使用存储过程就要比用批处理简单很多。第三,例如多用户同时操作数据库时,网络流量会增加,对数据对象的读写速度会慢,但是如果把这一操作用到的T-SQL语句编写成为存储过程,那么网络中不会执行所有的SQL语句,只会是传递调用CALL语句而已,这样就能降低网络的负载力,对网络的流量压力也减轻了。第四,数据库重视安全,存储过程也属于安全机制的一种,数据库管理员可以通过存储过程的权限限制数据的访问,有效地避免一些未经授权的用户去读写数据,充分地保障了数据的安全性。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。