2022年非关系型数据库数据逻辑存储层关系及设计模式探究 .pdf
-
资源ID:31705359
资源大小:86.03KB
全文页数:4页
- 资源格式: PDF
下载积分:4.3金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
2022年非关系型数据库数据逻辑存储层关系及设计模式探究 .pdf
辽宁工程技术大学测绘学院非关系型数据库数据逻辑存储层关系及设计模式探究(彭玉泉辽宁工程技术大学)摘要:近年来,随着人们对网络环境交互性能力的追求日益提高,传统关系型数据库的不足之处也日趋明显, 在此背景下非关系型数据库应运而生并得到迅速发展。本文分析了非关系数据库的发展历程以及在行业应用中体现出的优势,以MongoDB为例对非关系型数据库的数据逻辑存储层关系做了探讨,并提出一种非关系数据库的设计模式。关键词: NoSQL MongoDB 非关系数据库模式设计Abstract:In recent years,asthepursuit of the interactability with the networkenvironment increased day after day, the deficiencies of the traditional relationaldatabaseare becoming more and more clearly,andthen the non-relational databasedeveloped rapidly.Thispaper analyzesthe development processof the non-relationaldatabasesand give out its advantagesin the industry , and propose a non-relationaldatabasedesignpatterns.Keywords:NoSQL MongoDBNon-relational Databases DesignPatterns1 非关系型数据库的发展非关系型数据库已经不是一个新的概念 , 早 在 1991 年 便 发 布 了 第 一版BerkeleyDB ,这是一个Key/Value类型的 Hush数据库,适用于数据库类型相对简单却需要极高的插入和读取速度的环境。随着计算机在数据管理领域的应用普及和互联网技术的快速发展,人们对数据共享和联机时时处理的要求也越来越强,尤其是近年来Web2.0 网站的蓬勃兴起,更促进了人们对数据库产品的依赖1。传统的关系型数据库在 Web2.0 网络环境下,面对高并发的数据读写请求已经显得力不从心,这时非关系型数据库又被重新重视起来。从 2007 年开始,世界上先后出现了十多种非关系数据库产品。为了方便,人们将这一类型数据库产品统称为 NoSQL型数据库。 2009年起,我国的NoSQL研究也如火如荼的展开了,并产生出诸如BeansDB 、Nuclear、TCDatabase 等一系列非关系型数据库产品。2 NoSQL在行业应用中的优点自从超大规模和高并发的SNS(SocialNetworking Service)类型的社区网站出现后,网站大多需要根据用户的个性化信息来实时生成动态页面和提供动态信息,传统的动态页面静态化技术基本无用武之地。此时数据库的并发操作往往会非常高,比如像腾讯、盛大这样拥有数亿用户的网络运营商,每时每刻都要应对庞大的SQL读写请求。这种情况下非关系型数据库的优点便显露出来了。非关系型数据库数据库的要点是非关系的、分布式的、水平可扩展的,具有模式自由、支持简易复制、简单的 API、最终一致性、大容量数据等特性。现在应用最多的是Key/Value存储型数据库,除此之外还有文档型、列存储型、图形数据库、 XML数据库等。相对关系型数据库,NoSQL具有以下优点:1)数据存储非结构化。非关系型数据库以键值对存储,它的结构不固定,每一个元组可以有不一样的字段,每个元组可以根据需要增加自己的键值对,这样可以构造不固定的结构,从而减少时间和空间的开销。2)能够运行在便宜的PC服务器集群上,可以通过物理性PC集群数据库服务器节点的扩充实现数据库水平拓展,使数据库拥有良好的横向和纵向扩展能力。3)能够适应现代网络对数据库高名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 4 页 - - - - - - - - - 辽宁工程技术大学测绘学院并发读写请求以及对海量数据的高速访问能力 3。3 测试 NoSQL的数据逻辑存储关系NoSQL作为主要应对网络应用的数据库,具备增删查改、主从复制、备份、恢复、数据切片、分布式查询等基本数据处理能力。下面以流行的MongoDB为例探讨一下非关系型数据库的数据逻辑存储关系。3.1 逻辑存储关系测试MongoDB是一种文档型数据库 1,数据通过键值以 Document 方式存放,采用集合(Collection)的方式进行管理。下面我们通过程序测试一下MongoDB中 Database、 Collection 和 Document之间的逻辑关系,从而了解MongoDB数据存储的模式。首 先 , 我 们 通 过 下 面 的 方 法 连 接MongoDB数据库:VoidConnectDatabase(stringdbName,stringcollectionName)stringconnectionString=mongodb:/localhost;/ 连接字符串stringmyDBName=dbName;/ 定义要连接的数据库string myCollectionName=collectionName;/ 定义要连接的集合Mongomongo=newMongo(connectionString);MongoDatabasemongoDatabase=mongo.GetDatabase(myDBName)asMongoDatabase;MongoCollectionmongoCollection=mongoDatabase.GetCollection(myCollectionName)asMongoCollection;mongo.Connect();方法中的第一个参数为Database的名称,第二个参数为Collection 的名称。文档对象的创建方法为:Document doc=newDocument();Doc“ID”=1;/设置键值Doc“Msg ”= ”测试内容 ”; / 设置键值文档插入集合的方法为:mongoCollection.Insert(doc);读取指定文档信息的方法:DocumentdocFind=mongoCollection.FindOne(newDocument(“ID”,1);StringgetContent=Convert.Tostring(docFing“Msg ”);通过上面给出的方法,我们可以依次进 行 如 下 逻 辑 组 合 的 测 试 : 一 个Collection 下创建多个 Document对象、Document下创建子级 Document对象、Database下创建多个 Collection 对象、Collection 下创建子级Collection 对象等等。通过对读取到的结果对逻辑关系的正确性进行判断。经过 测试,得出文档 型数据库MongoDB 的逻辑存储结构如图一所示:图一MongoDB 逻辑存储树状图从上面测试得出的逻辑结构可以看出, MongoDB 的数据存储方式是十分灵活的。类比一下的话,MongoDB的 Collection 相 当 于 关 系 数 据 库 的Table ,Document 可以看作关系数据库的一条记录。不同的是,存入集合的文档对象还可以嵌入子文档,集合里面也允许子集合的创建,它们最终都DatabaseCollectionCollectionCollectionKey/ValueKey/ValueDocumentDocumentDocument名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 4 页 - - - - - - - - - 辽宁工程技术大学测绘学院可以用类似 BJSON 的格式描述。4 NoSQL的一种设计模式参考上面对 NoSQL的理解和测试得出的 MongoDB逻辑存储关系, 下面提出一种文档型数据库的设计模式。4.1 树形结构的非关系型存储模式树形结构数据的存储在日常应用中十分普遍,至今也已产生了许多解决方案。一个好的非关系型树形结构存储模式,不仅要能够很好的描述各个节点之间的关系,易于获取各个节点信息,还要能够方便的执行插入修改查询等数据操作,并能够支持大规模的并发操作。以下面这个树形图为例(图二):图二 树形结构数据示例对于这种树形结构,我们可以采用族谱式方式进行存储 2:Data: childrenSound,Img ;Sound: children.mp3 ;Img : children.jpg,.gif ;.mp3: ;.jpg:;.gif :;这种方式看上去结构简单,而且易于查找子节点,但对于父节点查找会比较麻烦,而且不易于数据操作。为 了 能 够 充 分 利 用 文 档 型 存 储 的Schema-free优点,下面给出一种类Xml 格式存储模式。类 Xml格式存储模式在表达上有点像 Xml 的数据组织方式,每个树形结构分两部分进行存储,Part1只存储节点间的逻辑关系, Part2存储各个节点信息。其中 Part2 是根据 Part1自动生成的。还是以图二为例,则它的存储模式可做如下表示:其中键值 _id 是由系统自动生成的,用来标识节点所从属的逻辑层次,用户在存储时可以添加其他键值,比如创建索引等。 Part1 和 Part2 可以分别存储在两个文件中。这种存储方式可以把结构上的操作和数据上的操作分开来,从而提高操作的便易性。4.2 数据切片的存储与调用文档是我们存放数据的地方,所以文档结构的设计尤为重要。为了能够实现模式自由的特性,我们采用BJSON 格式组织文档结构,这样每个文件就可以以二进制格式数据直接存到文档中了。这里的问题是, 每个 BJSON的大小被系统限制为不超过4M,所以对存入文档中的大型数据我们要采取切片处理,即把一个大的数据切割成若干个小的二进制数据块分别存储。而如何保持切割后的数据的完整性是我们研究的关键。本文中采用分部的方式进行数据存储,即每个存储数据由两个文件集合组成,一个文件集合存放文件名和其他相关信息,每个文件名有唯一标DataSoundImg.mp3.jpg.gif名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 4 页 - - - - - - - - - 辽宁工程技术大学测绘学院识符_id;另一个集合存放二进制数据块,每个数据块拥有两个键值,一个_id 来标注文件的来源,一个 _order 来标注数据块的顺序。这样,我们在读取数据的时候就可以按照存储顺序把同源数据块合并起来读到缓存中,以供各种应用。5 小结在 web2.0 环境下,非关系数据库体现出了它独特的优势,并受到越来越多 的CIO(Chief Information Officer) 人 士重视4,他们直接推动NoSQL技术的进步。相信在不久的将来,随着非关系数据库技术的日臻成熟,它将会成为新一代数据库的中流砥柱。参考文献:1从 MySQL到 MongoDB视觉中国的No SQL之路.潘凡 .程序员 2010(6):79-81。2数据结构( C 语言版) .严蔚敏、吴伟民. 清华大学出版社2007.03.01。3 NoSQL Databases Prof.Walter KrihaHochschule derMedien,Stuttgart(StuttgartMedia University) 。4 TheCIOsGuide to NoSQL -White PaperJune2011.byDanMcCreary,President,Kelly-McCreary&Associates&WilliamMcKnight,President,McknightConsultingGroup。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 4 页 - - - - - - - - -