关系型数据库是以行和列的形式存储数据,并以表的形式组成了数据库,其数据查询是用query来检索的。
NoSQL(Not Only SQL),非关系数据库,顾名思义,则不或者不完全遵循该形式。
随着大数据对数据量存储和检索速度的要求越来越高,传统的关系型数据库在应付大规模和高并发的SNS(社交网络服务)类型和web2.0纯动态网站显得很吃力。NoSQL数据库在解决大规模数据和多重数据等方面的问题日益常见。
NoSQL数据库的适用要根据具体项目需求进行考虑。
NoSQL数据库的四大分类:
1.键值(Key-Value)存储数据库
常使用Hash表(key/value)进行存储,简单易部署,但当DBA对部分值查询或者更新时,效率低下。
例:Redis、Oracle BDB、Voldemort
2.列存储数据库
这部分数据库通常用来用来应对分布式存储的海量数据,一个key对应对个列,这些列使用过列家族来安排的。
例:HBase、Riak
3.文档型数据库
与键值存储类似,数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如json。文档型数据库是键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高。如:MongDb、CouchDB。国内SequoiaDB
4.图形(Graph)数据库
图形结构的数据库是使用灵活的图形模型,并且能够拓展到多个服务器上。图形数据库查询没有标准的查询语言,因此进行查询需要制定数据模型。许多图形数据库都有Rest式的数据接口或者查询API。例:Neo4J、InfoGrid、Infinite Graph
NoSQL数据库的特征:
NoSQL数据库并没有一个统一的架构,两种NoSQL数据库之间的不同,甚至远远超过两种关系型数据库的不同。可以说,NoSQL各有所长,成功的NoSQL必然特别适用于某些场合或者某些应用,在这些场合中会远远胜过关系型数据库和其他的NoSQL。