论文部分内容阅读
随着信息技术的急速发展,特别是web2.0的发展,人类进入了大数据时代,互联网上的数据总量迅速膨胀。早在2011年,根据IDC的调查研究,全世界数据就已达到1.8ZB或1.8亿GB。根据IDC的预计,全世界的数据总量到2020年将增长到约900亿GB,堪称海量数据。这些数据有一部分是结构化的数据,有一部分是半结构化的数据,还有一部分是非结构化的数据。目前用于存储大量数据的主流数据库主要有传统的关系型数据库和新兴起的非关系型数据库两种。关系数据库已有较长的历史,技术较为成熟,应用也非常广泛,主要用于结构化数据的存储。而非关系型数据库虽然历史不长,但NoSQL运动却如火如荼,不断有IT业界巨头加入其阵营中,相继发布和推广NoSQL相关产品。这两种数据存储技术各有自己的优点和不足,如何在一个系统中成功地把两者完美地结合起来,并充分利用他们的优点,是非常值得研究的课题。本论文重点研究了NoSQL采用的主要理论,包括CAP理论、BASE理论以及几种主要的数据模型,结合在实验室参与的项目“面向网构的中小企业CRM云平台的研究与实现”,创新性地提出在数据存储时采用关系数据库MySQL和非关系数据库MongoDB的组合方案。该方案中,我们把结构化的数据存储到MySQL数据库中,半结构化的数据和非结构化的数据存储到MongoDB中,也可以把结构化数据同时存储在两个数据库中。方案设计了一个存储中间件,它主要包含配置模块、数据关联模块、读写模块、查询模块、删除模块和数据迁移模块这几部分,每一个模块都实现其相对应的功能。通过这个中间件,可以很好的完成数据的存储。配置模块用于完成MySQL数据库和MongoDB数据库的配置;数据关联模块用于自定义数据关联的规则,保证数据的相关性和一致性;读写模块需要完成把数据写入数据库以及从数据库中读取数据;查询模块用于数据的查询;删除模块完成数据在MySQL和MongoDB上的删除;数据迁移模块则需要完成数据在MySQL和MongoDB之间的传输。该方案对于研究关系数据库和非关系数据库结合使用具有一定的借鉴意义。