基于MongoDB的调查决策系统数据存储方案设计

2016-05-19 13:33周霞张伟男时壮
电脑知识与技术 2016年8期
关键词:数据存储数据库

周霞+张伟男+时壮

摘要:之前绝大多数调查决策系统都采用传统的关系型数据库进行数据存储;现今大数据时代来临,各类非关系型的数据库开始崭露头角,并在应用中所占比重愈来愈大。MongoDB就是其中的后起之秀。因此,尝试使用非关系型数据库MongoDB来作为调查决策系统的数据存储是非常有现实意义的。该文为大家呈现基于MongoDB这个面向文档的非关系型数据库来设计投票及所包含问题的数据存储,在详细介绍其内嵌和引用这两种解决方式基础上最终给出后台的数据存储方案。

关键词:非关系型;数据库; MongoDB;调查决策;数据存储

中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2016)08-0018-02

Abstract: before the vast majority of investigation decision system use the traditional relational database for data storage; today's big data era is coming, all kinds of non - relational database began to emerge, and in the application of accounts for the proportion is more and more. MongoDB is one of the bright younger generation. Therefore, try to use the non relational database MongoDB as the investigation decision system of data storage is of great practical significance. In this paper we present non relational database based on mongodb this document oriented to design voting and contains data storage problem, describes in detail the embedded and refer to the two solution on the basis of finally gives the background data storage scheme.

Key words: non relational database; MongoDB; survey; decision making; data storage

传统的关系型数据库技术自20世纪80年代开始成熟并至发展壮大,持续占据着绝对的市场主导地位。近年,电子商务、大数据、云计算和人工智能等应用产生的数据已经以PB或ZB来计算,信息化的社会带来了数据规模的急剧增长,大数据(Big Data)时代已经到来;大量半结构化、非结构化的数据亟待新的数据计算和处理模式,非关系型数据库(NoSQL)在此背景下应运而生,NoSQL指的是Not only SQL,它泛指一切与传统关系数据库不同的数据库技术,与传统的关系型数据库之间是互补关系。如今,多种非关系型数据库已经得到了广泛的应用,在处理大量数据的写入、提升性能和增大规模方面发挥着越来越大的作用,非常适合于网站数据的存储。

日常我们经常会接收到各种问卷调查,大学城中师生开展的各类调查更是数不胜数,原始的纸质问卷已不能满足需求,各类调查系统已经被广泛应用;但在过去的很长一段时间中,各类调研系统的后台数据库都是关系型数据库;然而,在信息技术爆炸式发展的今天,大数据已经成为了新的技术革命,关系型数据库在处理大数据量时力不从心,新的数据库解决方案崭露头角——那就是非关系型数据库。非关系型数据库拥有众多优秀特性,逐步让越来越多的企业和开发者所喜爱,MongoDB就是其中的佼佼者。它非常适合于网站数据的存储,故选择MongoDB作为调查决策系统的数据存储是较为合适的。综上所述,基于MongoDB来设计问卷调查决策系统的后台存储方案是很有现实意义的。

在关系型数据库中数据被存储在表中,而MongoDB是将数据存放在结构化的文档中,所以MongoDB被称为面向文档的数据库。关系型数据库中的表在面向文档数据库中称为集合(collection),关系型数据库中的记录在面向文档数据库中被称为文档(document)。

在关系型数据库中,我们可以通过实现参照完整性(即外键)来表达一对多关联,通过建立中间表来表达多对多关联。但在MongoDB中却没有这种机制,我们可以通过对象的引用关系来实现这种关联,也可以把关联的文档内嵌到文档当中。 那么在实际情况当中,我们该如何权衡性能,斟酌其灵活性和复杂性选择哪种存储方式呢?比较得到大家认同的规则是这样的:

首先顶层的对象必须有自己的集合;其次子对象一般应该被嵌入父对象,例如订单明细应该被嵌入订单集合;再次对于多对多关系可以使用引用方式 。读文档比较频繁时多使用内嵌方式,写文档比较多时使用引用方式;如果嵌入的对象太多过大会导致单个对象达到他的最大值(MongoDB单个文档最大16MB) ;最后需要注意,如果遇到性能问题,需选择使用嵌入方式进行存储

我们的这个问卷调查系统,前台将采用Java Web来实现,后台使用MongoDB对所有投票信息进行存储。为了更直观的查看结果,还将使用Jfreechart以图形的方式显示各投票的调查分析结果。

一次投票包含若干问题,属于一对多的关系,根据前述的选择内嵌和引用两种方式的规则,经过分析“投票”和“问题”设计采用内嵌结构;由于问题有单选题、多选题、填空题和问答题等题型;所以针对该调查决策系统的数据存储模型如下所示:

高校作为先进信息技术研究、教学的最前端,应适应当今信息技术的快速发展,与时俱进。所以本项目组在选定大学生实践创新项目时就选择了与课堂上学过的关系型数据库有密切联系但在数据模型方面又完全不同的非关系型数据库MongoDB作为调查决策系统的后台数据库。围绕着MongoDB的数据模型的设计展开了学习和研究,调查决策系统中最核心的对象就是投票和问题,一份投票包含若干问题,针对这个一对多的二元联系,经过分析最终选择了内嵌这种解决方法,并给出了详细的数据存储方案。接下来,项目组将在此方案的基础上采用Java Web技术来实现该决策系统。

参考文献:

[1] 郭远威. 大数据存储 MongoDB实战指南[M]. 人民邮电出版社,2011.

[2] (日)佐佐木达也|译者:罗勇. NoSQL数据库入门[M]. 人民邮电出版社,2010.

[3] (美)霍多罗夫. MongoDB权威指南[M]. 邓强,王明辉,译.人民邮电出版社,2011.

猜你喜欢
数据存储数据库
大数据时代档案信息建设的认识和实践