技术开发 频道

初窥NoSQL世界 开源CouchDB新手入门

  【IT168 技术】NoSQL现在已经变成在IT界中十分热门的话题了,在本文中,将为你介绍NoSQL中的一员CouchDB的基本知识,带你开始走入NoSQL丰富多彩的世界。

初窥NoSQL世界 开源CouchDB新手入门

  什么是NoSQL

  NoSQL(是not only SQL的缩写,也有说法认为是non-relational,即非关系型数据库)其实是不使用传统的关系数据库模型,而是使用如key-value存储、文档型的、列存储、图型数据库、xml等方式存储数据的模型统称。之所以不使用传统的范式,主要是在于它们存储数据的方式发生了变化。例如,当你需要存储发票的数据时,在传统的关系数据模型中,需要设计表的结构,然后使用服务器端语言将其转化为实体对象,再传递到用户端(这就是所谓的ORM对象关系映射),而在NoSQL中,你只要保存发票数据就可以了。 NoSQL不需要预先设计表和结构就可以储存新的数值。当然,请记住,NoSQL不是银弹。如果你的项目中要保存的数据的确需要关系型数据库模型才能完成,那么应该坚持使用关系型数据库。

  NoSQL的特点

  NoSQL的出现主要是为了解决数据库读写性能的问题,随着越来越庞大的Web应用系统的出现,如SNS,微博等应用需要大量对数据进行读和写,并且要求进行分布式的部署,而传统的关系数据模型在大数据访问量和分布式环境下,由于关系模型中经常要对多表进行连接操作,因此性能有时会有所降低,所以NoSQL的强调的是“非关系型”数据,NoSQL 数据存储不需要固定的表结构,通常也不存在连接 操作。在大数据存取上具备关系型数据库无法比拟的性能优势。

  在http://nosql-database.org/中,对NoSQL的描述是:非关系的,分布式的,开源的而且可以垂直扩展的。并且大多数NoSQL数据库具有以下特点:Schema-free,方便的支持数据冗余,简单的API,基于最终一致性(eventually consistent)和BASE原则(而非ACID原则)。目前,Google 的 BigTable 与 Amazon 的 Dynamo 是非常成功的商业 NoSQL 实现。一些开源的 NoSQL 体系,如Facebook 的 Cassandra , Apache 的 HBase ,也得到了广泛认同。

  CouchDB介绍

  CouchDB是Apache组织发布的一款NoSQL开源数据库项目,是面向文档类型的Nosql。它由Erlang编写而成,使用JSON格式去保存数据。所谓文档数据库,并不是说它只能存储文本。CouchDB的字段只有三个:文档ID、文档版本号和内容。内容字段可以看到是一个text类型的文本,里面可以随意定义数据,而不用关注数据类型,但数据必须以json的形式表示并存放。CouchDB以RESTful API的格式提供服务,可以很方便地开发各种语言的客户端。

  而CouchDB目前的优势在于:它的数据存储格式是JSON,而JSON为广大程序员所熟悉,便于学习,而且CouchDB还可以移值到移动设备上去,当用户不能联网时,可以在客户端保存数据,当能联网时,可以自动把数据同步到各个分布式结点上去;CouchDB还支持分布式结点的精确复制同步,可以在一个庞大的应用中,随意增加分布式的CouchDB结点,以支持数据的均衡。

  作为初学者,本文指导在Windows下安装和初步使用CouchDB。因此本文并没有选择以Apache组织下的CouchDB作为介绍,因为该版本的CouchDB比较适合在Linux下进行编译安装,步骤比较复杂,因此本文选择了使用CouchOne

  (http://www.couchone.com/)发布的CouchDB服务器社区版本。CouchOne公司今年与同样从事NoSQL产品的Membase公司合拼,推出了CouchBase产品(分为社区免费版和商业版),将结合Membase、Memcached和CouchDB。并实现高性能缓存,弹性集群和数据库功能等技术。而我们发现,couchone的社区版更适合于我们初学者学习。

 

初窥NoSQL世界 开源CouchDB新手入门

0
相关文章