NoSQL

NoSQL是一个易于误解的名词,其在技术社区是全称not only sql的缩写。
它主要是来源于人们对于下一代数据库的发展和定位思想:non-relational,distributed,open-source,horizontal scalable。这场全新的数据库革命运动在2009年告诉增长,同时希望具备更多特性:schema-free,easy replication support,simple API,eventulally consistent/BASE。
NoSQL的整体架构主要可被分为四层(原图来源):
<图已遗失>

  1. 接口层(Interfaces):这层主要是为应用层次或者客户层提供API接口,主要包括:REST,Map Reduce,Get/Put,Thrift和语言特定的API等。
  2. 逻辑数据模型层(Logical Data Model):这层主要是提供数据的逻辑表现形式,其逻辑模型主要有:Key-Value,列式,文档形式和图式等。
  3. 数据分布模型层(Data Distribution Model):这层主要是实现了数据分布功能,主要有:CAP支持,多数据中心支持和动态部署支持等多种形式。
  4. 数据持久化层(Data Persitence):这层主要是定义了数据的存储/持久化形式,主要有四种形式:基于内存,基于硬盘,内存和硬盘兼容存储等。
    NoSQL在市场上的产品可以按其提供的逻辑数据模型来划分,主要分为:
    Wid Column Store/Column Families
    Document Store
    Key Value/Tuple Store
    Eventually Consistent Key Value StoreGraph Databases
    Object Databases
    Grid Database Solutions
    XML Dababases
    others等等。
    不同的逻辑数据模型的产品,也会适用于不同的行业业务,具体的NoSQL系统请参考http://nosql-databases.org/

参考:
http://www.infoq.com/articles/nosql-in-the-enterprise
http://nosql-databases.org/