关于数据库及计算机及高校教学改革方面的免费优秀学术论文范文,关于数据库相关专科毕业论文,关于NoSQL技术在数字资源共享平台中的应用相关论文范文集,对写作数据库论文范文课题研究的大学硕士、本科毕业论文开题报告范文和文献综述及职称论文参考文献资料下载有帮助。
摘 要 本文分析了云计算环境下现有数字资源共享平台的现状,提出了NoSQL技术的解决方案,并使用MongoDB来替代传统的关系型数据库进行数据库的设计.在对系统需求分析的基础上,介绍了系统部分关键功能的实现,并通过对基本插入和查询处理的测试,比较了MongoDB和 MySQL两种数据库在性能上的差别.
【关 键 词 】云计算 NoSQL技术 MongoDB MySQL
1.云计算环境下数据管理技术存在的问题
网络教学作为一种重要的教学改革手段,在高校教学改革中越来越受到重视.随着教学工作的不断改进,各种数字化的教学资源出现在网络课件、网络实验平台、课程教学网站、数字媒体资源系统中,它们为学生的自主学习提供巨大的支持和帮助.随着云计算技术的广泛使用,用户需要通过如计算机、笔记本、手机等多种不同的手段来访问数字化的教学资源,加上数据量的增长,现有的系统暴露出了一些问题:
1.1 系统扩展问题
现有系统的数据存储层大多建立在诸如MySQL之类的关系型数据库上.由于关系型数据库在设计时需要满足一致性和可用性,所以它很难实现系统的水平扩展,这使得关系型数据库难以满足云计算环境中数据存储和管理的要求.
1.2 数据存储问题
现有系统数据采用关系模式进行建模.关系模式下数据之间的关联关系对查询的高效性存在着一定的制约,特别是关系模式数据库对多媒体信息的处理能力比较弱.当数据量快速增长是,难以满足数据的更新和查询性能上的需求.
1.3 系统可靠性问题
现有系统的数据主要存储单个服务器上.数据的备份、恢复和管理工作往往需要人工进行干预.当服务器出现故障时,造成数据的丢失或损坏的几率较大.
2.基于NOSQL技术的系统特征
NOSQL是非关系型数据库的统称,它不使用SQL语言作为基本的询语言.此外,NoSQL中的数据存储没有表结构,具有强大的水平扩展性.数字化教学资源一般包括文字、图片、音频、视频等形式,在实现资源的浏览和查询时并没有复杂的多表连接操作.NoSQL系统通常能支持很好的水平扩展性,当数据增长到一定规模时,可以通过简单的添加硬件或服务节点的方式来对系统进行扩展,这弥补了关系型数据库在扩展性上的不足.特别是NoSQL采用大规模集群的方式进行工作,系统可以运行在廉价的PC机上,并且允许单个或多个节点的故障,NoSQL系统可以使用复制的功能来实现数据的冗余和系统的容灾.由于NoSQL存在以上特性,因此它更适用于云计算环境下的数据管理.
3.NOSQL数据管理技术在数字资源共享平台中的应用
3.1 需求分析
设计一个云计算环境下的数字资源共享平台,将各种数字媒体资源共享给不同的用户,为学生的学习提供足够的帮助,为教师的授课提供支持,为企业与学校的合作提供渠道.数字资源共享平台下对数字资源的管理需要提供以下功能模块:资源浏览、资源检索、资源上传、资源下载、资源增删等.平台面向普通学生、教师、系统管理员、企业导师4种不同的用户,系统用例图如图1所示.
3.2 MongoDB数据库建模
MongoDB是一种面向文档的NoSQL数据库,它具有高可用性和高扩展性.针对现有资源管理系统存在的问题,使用MongoDB来替代传统的关系型数据库进行数据库的设计,能够有效地解决上述问题,并且为系统迁移到云计算环境奠定了基础.
根据需求分析,数字资源共享平台中的实体主要有资源source和用户user,内嵌文档是资源类型Type和内容来源Content.资源类型主要包含文本、图片和视频.内容来源与知识点、上传对象对应,便于检索[4].具体设计如表1所示.
表1资源集合Source描述
字段 类型 说明
S_id String 唯一id
S_name String 资源名称(索引字段)
S_Provider 引用 资源提供者
S_Time long 资源创建时间
S_Count long 资源被访问的次数
S_Content 内嵌文档 文档资源内容
3.3 关键功能的实现
在系统的各个功能模块中,资源的上传和查询功能最为重要.由于文档资源数量众多且类型不同,资源写入和查询的效率对用户体验影响较大.现将资源上传和查询功能作为关键功能来处理.
3.3.1 资源上传功能
GridFS f等于getGridFS();
try{
GridFS File mongofile等于f.createFile(in, source_1_1);
mongofile.put("S_id",document.getS_id());
mongofile.put("S_name",document.getS_name());
mongofile.put("S_Provider",document.getS_Provider());
mongofile.put("S_Time"Jdocument.getS_Date());
mongofile.put("S_Type",document.getS_Type());
mongofile.se();
}catch(Exception e){
e.print StackTrace();
3.3.2 资源查询功能
BasicDBObject query等于new BasicObject(); query.putAll(map);
List
list等于getGridFS().find(query);
3.4 基本的插入和查询处理的测试
假定保存用户ID和某个其他的数据,并通过用户ID读取这个数据.此时,需要创建user_id和value两个字段,读取数据的时候通过user_id进行查询,取得value值.若以每次完成20000次处理为标准进行比较,MySQL分别采用InnoDB和MyISAM两种类型的数据库引擎,处理的性能如下表2所示.
表2:三种数据库类型处理性能比较
插入处理性能 查询处理性能(未使用索引) 查询处理性能(使用索引)
InnoDB 46.545858 120.249837 10.034787
MyISAM 27.768782 73.425936 13.362680
MongoDB 11.360583 109.835533 16.645584
通过比较可以发现,采用不同的两种数据库进行处理时,MongoDB插入处理的能力要高于MySQL,大约是MySQL的2~3倍.查询处理时,MongoDB和MySQL均能获得非常高的处理速度,性能相当.
4.结束语
随着云数据管理技术的不断发展,NoSQL作为一项全新的数据库技术,在数字资源共享平台的使用上能弥补传统关系型数据库的不足.基于MongoDB数据库的解决方案,为系统的扩展提供便利,为系统迁移到云计算环境奠定了基础.