文档介绍:浅谈NoSQL数据库
一、绪论
自2004年“Web ”的概念被提出,互联网网站则更注重用户的交互作用,用户既是网站内容的浏览者,也是网站内容的制造者。由此,数据库存储数据的重心逐渐从企业数据向用户数据转移。据数据统计,互联网数据以每年50%的速率在增长,按照Gartner预测,到2020年,全球数据量将达到35ZB,等于80亿块4TB硬盘。数据结构变化给存储系统带来新的挑战,非结构化数据在存储系统中所占据比例已接近80%。面对如此大的非结构化数据,传统的关系型数据库显得力不从心。同时,NoSQL数据库的出现打破了传统的关系模型,以一种模式自由的方式存储数据,提供了新型的访问接口,并克服了传统关系型数据库的缺点。NoSQL数据库可部署在廉价的硬件之上,支持分布式存储,能透明地扩展节点。本文介绍了NoSQL数据库的基本特点,列举了NoSQL的主要理论和成果,分析了其优缺点及发展前景。
二、NoSQL介绍及发展历史
(一)NoSQL介绍
NoSQL字面上常被理解为Not Only Sql的简写,即不仅仅是数据库,这样的解释从逻辑上很通。但经过分析来看, NoSQL实际上是两个词的组合:No和SQL,它暗示了NoSQL技术与SQL之间的对立性,这个可能也归结于创始人和早期使用者都是No RDBMS。后来有人提议用NonReligious来代替NoSQL,不过因为NoSQL的发音更好听,最终选择了这个词。不管字面意思如何,今天NoSQL泛指这样一类数据库和数据存储,它们不遵循经典RDBMS原理,且常与Web规模的大型数据集有关。换句话说,NoSQL并不单指一个产品或一种技术,而是指那些非关系性的、非结构化的数据、定义不是很明确的数据存储形式。
(二)NoSQL发展历史
最近几年,NoSQL这一概念倍受追捧,但通过查询了解到, NoSQL其实不是一个新概念。经过考证NoSQL这个词最早出现在1998年,是在Carlo Strozzi开发的一个基于文件的数据库系统中被提出来的。但是他开发的这个数据库系统还是一个关系型数据库,只是没有面向SQL语言的接口而已。推测他起名为NoSQL的原因无非是他的数据库系统是无需SQL接口的SQL数据库而已。较真的说,Carlo Strozzi的数据库系统并不能算作现在NoSQL的起源。在2009年,NoSQL被Eric Evans再次引用,用于描述不依赖于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的发行版问题
20世纪80年代
提供高效的事务处理
真正意义上的key-value存储
BerkeleyDB
20世纪80年代
Sleepycat
、
被Oracle收购
Lotus Notes
1989年
I