欢迎来到天天文库
浏览记录
ID:31631801
大小:59.92 KB
页数:7页
时间:2019-01-16
《nosql技术在数字资源共享平台中应用》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、NoSQL技术在数字资源共享平台中应用摘要本文分析了云计算环境下现有数字资源共享平台的现状,提出了NoSQL技术的解决方案,并使用MongoDB来替代传统的关系型数据库进行数据库的设计。在对系统需求分析的基础上,介绍了系统部分关键功能的实现,并通过对基本插入和查询处理的测试,比较了MongoDE和MySQL两种数据库在性能上的差别。【关键词】云计算NoSQL技术MongoDBMySQL1云计算环境下数据管理技术存在的问题网络教学作为一种重要的教学改革手段,在高校教学改革中越来越受到重视。随着教学工作的不断改进,各种数字化的教学资源出现在网络课件、网络实验平台、课程教学网站、数字媒体资
2、源系统中,它们为学生的自主学习提供巨大的支持和帮助。随着云计算技术的广泛使用,用户需要通过如计算机、笔记本、手机等多种不同的手段来访问数字化的教学资源,加上数据量的增长,现有的系统暴露出了一些问题:1.1系统扩展问题现有系统的数据存储层大多建立在诸如MySQL之类的关系型数据库上。由于关系型数据库在设计时需要满足一致性和可用性,所以它很难实现系统的水平扩展,这使得关系型数据库难以满足云计算环境中数据存储和管理的要求。1.2数据存储问题现有系统数据采用关系模式进行建模。关系模式下数据之间的关联关系对查询的高效性存在着一定的制约,特别是关系模式数据库对多媒体信息的处理能力比较弱。当数据量
3、快速增长是,难以满足数据的更新和查询性能上的需求。1.3系统可靠性问题现有系统的数据主要存储单个服务器上。数据的备份、恢复和管理工作往往需要人工进行干预。当服务器出现故障时,造成数据的丢失或损坏的几率较大。2基于NOSQL技术的系统特征NOSQL是非关系型数据库的统称,它不使用SQL语言作为基本的❷询语言。此外,NoSQL中的数据存储没有表结构,具有强大的水平扩展性。数字化教学资源一般包括文字、图片、音频、视频等形式,在实现资源的浏览和查询时并没有复杂的多表连接操作。NoSQL系统通常能支持很好的水平扩展性,当数据增长到一定规模时,可以通过简单的添加硬件或服务节点的方式来对系统进行扩
4、展,这弥补了关系型数据库在扩展性上的不足。特别是NoSQL采用大规模集群的方式进行工作,系统可以运行在廉价的PC机上,并且允许单个或多个节点的故障,NoSQL系统可以使用复制的功能来实现数据的冗余和系统的容灾。由于NoSQL存在以上特性,因此它更适用于云计算环境下的数据管理。3NOSQL数据管理技术在数字资源共享平台中的应用3.1需求分析设计一个云计算环境下的数字资源共享平台,将各种数字媒体资源共享给不同的用户,为学生的学习提供足够的帮助,为教师的授课提供支持,为企业与学校的合作提供渠道。数字资源共享平台下对数字资源的管理需要提供以下功能模块:资源浏览、资源检索、资源上传、资源下载、
5、资源增删等。平台面向普通学生、教师、系统管理员、企业导师4种不同的用户,系统用例图如图1所示。3.2MongoDB数据库建模MongoDB是一种面向文档的NoSQL数据库,它具有高可用性和高扩展性。针对现有资源管理系统存在的问题,使用MongoDB来替代传统的关系型数据库进行数据库的设计,能够有效地解决上述问题,并且为系统迁移到云计算环境奠定了基础。根据需求分析,数字资源共享平台中的实体主要有资源source和用户user,内嵌文档是资源类型Type和内容来源Contento资源类型主要包含文本、图片和视频。内容来源与知识点、上传对象对应,便于检索[4]。具体设计如表1所示。表1资源
6、集合Source描述字段类型说明S_idString唯一idS_nameString资源名称(索引字段)S_Provider引用资源提供者S_Timelong资源创建时间S_Countlong资源被访问的次数S_Content内嵌文档文档资源内容3.3关键功能的实现在系统的各个功能模块中,资源的上传和查询功能最为重要。由于文档资源数量众多且类型不同,资源写入和查询的效率对用户体验影响较大。现将资源上传和查询功能作为关键功能来处理。3.3.1资源上传功能GridFSf二getGridFS();try{GridFSFilemongofile=f・createFile(in,source_
7、l_l);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(
此文档下载收益归作者所有