MongoDB是由10gen公司开发管理、进行文护的,开源免费的Nosql数据库。用C++语言编写的,基于分布式文件存储。MongoDB的目标是提供一种便于扩展,性能较高的数据保存解决方案,是最适合取代Mysql的Nosql数据库[1]。
作为传统数据库,SQL数据库有了很广泛的使用,生命力非常旺盛。然而随着大规模网络应用软件的出现,传统数据库遇到了一些设计上的缺陷,例如:SQL不能灵活的对表进行应用,横向扩展较为困难,很多特性没有用武之地(在很多场景下,及时存取并不是必要的,也没有特别多的事务需求),而这些额外的特性消耗着SQL数据库的性能。因此NoSql数据库应运而生,被称为“Not Only SQL”的NoSql数据库,虽然是这样,但绝大多数NoSql数据库都放弃了对Sql语言的支持。虽然NoSql数据库的种类很多,但是MongoDB有自己极为鲜明的特性[1][2]。
面对高并发读写的需求,传统的数据库读写并不能满足,硬盘IO也无法承受压力。在面对海量数据时,数据库的存储记录量是有限的,SQL查询效率不高,水平扩展困难,无法通过服务器节点的快速增长来实现,再加上系统的文护和升级造成了服务不可用。10gen是一家专门处理海量数据的自主创业公司,MongoDB是其主推产品,采用文档形式存储的MongoDB数据库,易扩展,数据与数据之间无关系,较为灵活的数据模型,自定义的数据格式能够随时存储,这些都为广大用户提供了极大的方便。
1.2 相关领域研究现状
现在很多开发团队将MongoDB作为他们的第一选择,更多的业内公司也愿意将MongoDB这一数据库投入到了现实的开发情境中,从而创造出非常多的移动互联网应用。
1.2.1 国内成功案例
1.2.2 国外成功案例
1.3 课题主要内容及章节结构
本文主要向读者呈现了以MongoDB作为后台数据库的档案管理系统的整体设计情况。
第一章初步地向大家介绍了关于研究课题的背景及相关领域研究现状。第二章描述了整个档案管理系统的后台数据库存储设计和前台使用的.NET三层架构。第三章则是对档案管理系统进行了系统分析和设计,其中包括可行性分析,需求分析和功能模块设计。第四章为大家呈现了档案管理系统的实现,包括开发环境,MongoDB数据库的配置,数据库的连接和系统的结构。第五章是对档案管理系统的运行调试,确认系统完成的质量以及是否达到期望的目标。第优尔章是总结和展望,包括对毕业设计报告的总结和对能够更好地完善档案管理系统的展望。
第2章 基于MongoDB的档案管理系统
2.1 基于MongoDB的数据库存储设计
2.1.1 MongoDB的技术特征
MongoDB是开放源代码,用C++开发,主要是为了解决数据访问量过大时的效率问题。传统的数据库对每张表都要定义它的表结构,如果有新的存储需求,往往需要添加新的字段,更改表结构,在一些场景下,会显得很不方便。而这些对于MongoDB来说,都不是问题。它是面向集合(Collection)存储,没有表的概念,便于存储对象类型。将相同命名空间的数据划分成不同的Extent(范围),在每个范围里,每一行数据的保存都是由双向链接连接起来的。每一行的数据存储空间不仅包括存储数据的占用空间,还包括其他一部分额外附加空间,所以即使在数据变大更新后,也可以不需转移位置。
MongoDB支持动态查询,查询表达式支持更加丰富。使用查询指令,文件中数组及嵌入的对象可以很轻松的被查询。MongoDB中还包含了对数据库的操作性能分析的一系列监视工具。
MongoDB支持完全索引。比如Redis内存数据库,作为键值数据库,只提供了一种查询方式,按键查询,灵活性、适用范围和易用性上受到了一些影响;再比如hbase,写入速度很快,但是同样查询受限,二级索引需要自己构建。而MongoDB的查询优化器通过分析,从而产生一个高效率的查询计划。所以说MongoDB是功能非常完善的NoSql数据库,也被称为最接近Sql数据库的NoSql数据库。 基于MongoDB的档案管理系统设计与实现 (2):http://www.youerw.com/zidonghua/lunwen_40617.html