浅谈Nosql数据库.docx
- 文档编号:5703694
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:7
- 大小:20.19KB
浅谈Nosql数据库.docx
《浅谈Nosql数据库.docx》由会员分享,可在线阅读,更多相关《浅谈Nosql数据库.docx(7页珍藏版)》请在冰豆网上搜索。
浅谈Nosql数据库
浅谈NoSQL数据库
一、绪论
自2004年“Web2.0”的概念被提出,互联网网站则更注重用户的交互作用,用户既是网站内容的浏览者,也是网站内容的制造者。
由此,数据库存储数据的重心逐渐从企业数据向用户数据转移。
据数据统计,互联网数据以每年50%的速率在增长,按照Gartner预测,到2020年,全球数据量将达到35ZB,等于80亿块4TB硬盘。
数据结构变化给存储系统带来新的挑战,非结构化数据在存储系统中所占据比例已接近80%。
面对如此大的非结构化数据,传统的关系型数据库显得力不从心。
同时,NoSQL数据库的出现打破了传统的关系模型,以一种模式自由的方式存储数据,提供了新型的访问接口,并克服了传统关系型数据库的缺点。
NoSQL数据库可部署在廉价的硬件之上,支持分布式存储,能透明地扩展节点。
本文介绍了NoSQL数据库的基本特点,列举了NoSQL的主要理论和成果,分析了其优缺点及发展前景。
二、NoSQL介绍及发展历史
(一)NoSQL介绍
NoSQL字面上常被理解为NotOnlySql的简写,即不仅仅是数据库,这样的解释从逻辑上很通。
但经过分析来看,NoSQL实际上是两个词的组合:
No和SQL,它暗示了NoSQL技术与SQL之间的对立性,这个可能也归结于创始人和早期使用者都是NoRDBMS。
后来有人提议用NonReligious来代替NoSQL,不过因为NoSQL的发音更好听,最终选择了这个词。
不管字面意思如何,今天NoSQL泛指这样一类数据库和数据存储,它们不遵循经典RDBMS原理,且常与Web规模的大型数据集有关。
换句话说,NoSQL并不单指一个产品或一种技术,而是指那些非关系性的、非结构化的数据、定义不是很明确的数据存储形式。
(二)NoSQL发展历史
最近几年,NoSQL这一概念倍受追捧,但通过查询了解到,NoSQL其实不是一个新概念。
经过考证NoSQL这个词最早出现在1998年,是在CarloStrozzi开发的一个基于文件的数据库系统中被提出来的。
但是他开发的这个数据库系统还是一个关系型数据库,只是没有面向SQL语言的接口而已。
推测他起名为NoSQL的原因无非是他的数据库系统是无需SQL接口的SQL数据库而已。
较真的说,CarloStrozzi的数据库系统并不能算作现在NoSQL的起源。
在2009年,NoSQL被EricEvans再次引用,用于描述不依赖于SQL技术的数据存储,这也是我们目前对NoSQL概念的普通认识。
其实,非关系型数据库技术及应用的发展还可以追溯到更早。
下面表1展示了非关系型数据库的发展过程。
数据库名称
发行年代
发行商
特点
备注
DBM
1979年
AT&T
基于文件
hash的数据库
TDBM
20世纪80年代
AT&T
支持原子性事务操作
NDMB
20世纪80年代
AT&T
支持同时打开多个数据库
SDBM-DBM
20世纪80年代
AT&T
为了解决DBM的发行版问题
GT.M
20世纪80年代
提供高效的事务处理
真正意义上的key-value存储
BerkeleyDB
20世纪80年代
Sleepycat
4.3BSD、4.4BSD的过渡版本
被Oracle收购
LotusNotes
1989年
IBM
真正意义上的文档数据库系统
已经完全演化成了一个办公协作套件
Mnesia
20世纪90年代
Ericsson
不支持SQL查询而是依赖于自身的Erlang语言
一个软实时的数据库系统,并被于用电信行业
Neo4j
2000年
一个高性能的图引擎
开始启动
db4o
2000年
面向java和.net的对象数据库系统
开始启动
QDBM
2000年
MikioHirabayashi
DBM的又一个实现版本,他比QDBM更高效
Memcached
2003年
Danga
内在式存储
用于支持Livejournal
Memcachedb
2003年
Danga
支持文件存储
Memcached的更新版本
BigTable
2004年
分布式数据存储系统
2006年发布了其研究文章
Infogrid
2005年
一个post关系web应用程序的平台
2008年开源
JackRabbit
2006年
Apache
基于JSR170和283的实现
TokyoCabinet
2006年
MikioHirabayashi
QDBM的一个成功典范
Dynamo
2007年
Amazon
一款可用的分布式Key-Value存储系统
2007年发行研究文章
CouchDB
2008年
Erlang
一个文档数据库系统
核心思想来源LotusNotes
Voldemort
2008年
一个分布式数据库系统,他能有效的防止并点故障
Dynomite
2009年
Erlang
Dynamo的实现
Terrastore
2009年
一个扩展性很强的文档存储系统
Redis
2009年
VMware
一个基于key-value的存储系统
Riak
2009年
Erlang
支持多节点构建的系统
HBase
2009年
BigTable的克隆版本
被用在Hadoop分布式文件系统的实现中
Hypertable
2009年
一个开源、高性能、可伸缩BigTable类型的数据库
Vertexdb
2009年
一个graph数据库系统
表1
三、NoSQL发展现状及分类
(一)NoSQL发展现状
随着Web2.0的不断发展,各种和用户互动的应用层出不穷,特别是在这个大数据、云计算时代,迫使对数据存储和检索技术提出了更高的要求。
虽然关系型数据库已经在数据存储方面占据不可动摇的地位,但是由于其存在扩展困难、读写慢、成本高、有限的支撑容量等瓶颈,使其很难满足现阶段和未来爆炸式数据量和快速的存储、检索等需求。
NoSQL数据库的出现迎合了上面提出的几个需求,在设计上,NoSQL非常关注对数据高并发地读写和对海量数据的存储等,与关系型数据库相比,他们在架构和数据模型方面做了一些删减,而在扩展和并发等方面做了补充。
云计算和大数据时代的计算机体系结构在数据存储方面要求具备庞大的水平扩展性,而NoSQL致力于改变这一现状。
现在国内外致命的互联网公司都在大量应用NoSQL,例如:
Google应用的是BigTable;Amazon应用的是Dynamo;新浪应用的是Redis;淘宝应用的是Oceanbase等。
(二)NOSQL分类
目前,NoSQL经过多年的发展,可以将众多的NoSQL数据库按照内部的数据组织形式进行如下分类:
面向列的NoSQL数据库:
Accumulo,Cassandra,Druid,Hbase。
面向文档的NoSQL数据库:
Clusterpoint,ApacheCouchDB,Couchbase,MarkLogic,MongoDB。
Key/Value的NoSQL数据库:
Dynamo,FoundationDB,MemcacheDB,Redis,Riak,FairComc-treeACE,Aerospike。
面向图的NoSQL数据库:
Allegro,Neo4J,InfiniteGraph,OrientDB,Virtuoso,Stardog。
四、NoSQL发展前景
(一)NoSQL的优点
1、灵活的数据模型
传统的关系型数据库,在存储数据库前必须对数据进行分析,建立数据表,并且确定表里的各个字段类型等。
但是往往一个应用随着时问的推移,需求有可能发生改变,即数据模型将发生改变。
然而,在一个成熟的应用且数据量庞大的数据库更改数据模型是令人头疼的事情。
可能仅仅是为了增加一个字段,或者修改一个字段的类型,都需要付出停机或者降低服务级别的代价。
NoSQL数据库从设计上打破了这种数据模型的限制。
在NoSQL数据库中,数据单元一般没有模型的限制,所以允许在一个数据单元中存入其想要的任何结构的数据。
2、弹性扩展
随着数据库的负载增加,关系型数据库的管理员一般采用向上扩展的方式提高性能。
即购买性能更好的服务器代替旧服务器,这针对负载缓慢增加的情况是较有效的。
然而负载可能一直增加,不可能每次都更换服务器。
这样,水平扩展的思想被提出来,把负载均衡的分到小同的主机上。
关系型数据库提供了水平扩展的功能,但对程序来说是半透明的,在水平扩展的时候,会大量的修改程序,甚至会停服。
NoSQL数据库在设计之初就考虑到了水平扩展,它对程序来说是透明的,可以随时添加节点,删除节点。
3、经济性
传统的关系型数据库通常被部署在价格比较高昂的高性能机器上,甚至是专用硬件上。
在云计算和大数据时代,数据量成爆炸式指数增长,采用关系型数据库的云提供商为了提供可靠的服务不得不大量采购昂贵的机器。
而NoSQL数据库通常使用廉价服务器集群来管理暴增的数据与事务规模。
廉价服务器集群的方案,相对高性能机器的RDBMS的集群有更多的数据节点,提供了更廉价、更可靠、更多备份的服务。
(二)NoSQL的缺点
1、不提供对SQL的支持
传统的关系型数据库已经存在了30多年了,经过实践的证明,关系型数据库满足了过去30年来的软件需求。
现阶段大部分企业仍以关系型数据库为存储工具,而NoSQL数据不支持SQL,造成企业从关系型数据库转向NoSQL数据过程中代价和所冒的风险太大。
2、缺乏商业支持
关系型数据库有着强大的商业支持。
Oracle、Microsoft和IBM等世界级的数据库厂商提供了完善的服务。
相比而言,大部分的NoSQL数据库都是开源项目,虽然也有一些商业公司的支持,但支持的效果小可预计。
如果出现故障,通常只能自己解决。
(三)NoSQL的未来
NoSQL数据库的崛起标志唯关系型数据库独大时代即将终结,但是关系型数据库依然会生存下去。
正如当今世界中美关系一样,虽然中国的经济总量正在逐渐地超过美国在不远的未来成为世界第一,但不可能成为新时期的霸主,而是要不断的和美国加强合作。
在大数据和云计算盛行的新时代,NoSQL数据库俨然成为了数据库领域中不可或缺的一部分,它正在弥补着关系型数据库在某些应用中的不足,但是他也并非万能,只有进一步和关系型数据库相结合使用,互相弥补短板,才能发挥出更高的效能。
五、参考文献
[1]卢冬海,何先波,浅谈NoSQL数据库,西华师范大学计算机学院,四川南充637002。
[2]李莉莎,关于NoSQL的思考,中国传媒科技前沿,2010年第4期。
[3]高源,NosQL非关系型数据库的发展和应用研究,武汉职业技术学院计算机学院。
[4]企业软件,NoSQL难以接受的七个真相,网络世界,2012年8第042版。
[5]谢然,中国有哪些公司在做大数据,联网周刊,2014年。
[6]NoSQL诞生的原因和优缺点,CSDN博客,
[7]NoSQL数据库渐入佳境国内应用案例盘点,IT168技术开发,
[8]NoSQL,维基百科,http:
//zh.wikipedia.org/zh/NoSQL。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 浅谈 Nosql 数据库
![提示](https://static.bdocx.com/images/bang_tan.gif)