NoSQL简介

来源:互联网 发布:淘宝返现规则 编辑:程序博客网 时间:2024/06/16 04:31

NoSQL-Not Only SQL,不仅仅是sql

关系型数据库,针对数据建模和应用程序编程更加简单,适合于客户服务器编程,是结构化数据存储在网络和商务应用的主导技术

NoSQL很早就被提出,但是到2009年之后才被越发重视,是一项全新的数据库存储方式,NoSQL用于超大规模数据的存储。比如用户的个人信息,社交网络,地理位置,用户生成的数据和用户操作日志已经成倍的增加,这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展

关系型数据库存在:原子性,一致性,独立性,持久型,也就是ACID特性

关系数据库和nosql对比

RDBMS

高度结构化数据

结构化查询语言(SQL)

严格的一致性

事务

NoSQL

没有声明性查询语言

没有预定义模式

键值对存储,列存储,文档存储,图形数据库

最终一致性,非ACID属性

非结构化不可预知数据

CAP定理

高性能,高可用,可伸缩性


分布式系统

分布式系统--distributed system 由多台计算机和通信的软件组件通过计算机网络(本地或者广域网)组成。分布式系统是建在网络之上的软件系统。他可以应用于不同的平台上,如PC,工作站,局域网,广域网等

分布式计算优点

可靠性--容错:一台服务器系统崩溃不影响到其它服务器

可扩展性:灵活增加增多的机器

资源共享:银行,预定系统必不可少

灵活性:很容易安装,实施,调试

更快速度:更多的服务器,就有更快的处理速度

开放系统:本地或者远程都可以访问该服务

分布式计算缺点

故障排除

软件:更少的软件支持

网络

安全性

CAP理论

计算机科学中,CAP定理,乘坐时布鲁尔定理,它指出对于一个分布式计算系统来说,不可能同时满足以下三点:

一致性(Consistency)所有节点在同一时间具有相同的数据

可用性(Availability)保证每个请求不管成功或失败都有响应

分割容忍(Partition tolerance)系统中任意信息的丢失或者失败不会影响系统的运行

CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,最多只能同时较好的满足两个。

所以可以分为三类

CA:单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强,RDBMS

CP:满足一致性,分区容错性的系统,通常性能不是特别高,比如Mongodb,HBase,Redis等

AP:满足可用性,分区容错性的系统,通常对一致性要求不高,比如CouchDB

NoSQL数据库分类


类型

部分代表

特点

  

列存储

Hbase
Cassandra
Hypertable

顾名思义,是按列存储数据的。最大的特点是方便存储结构化和半结构化数据,方便做数据压缩,对针对某一列或者某几列的查询有非常大的IO优势。

 

文档存储

MongoDB
CouchDB

文档存储一般用类似json的格式存储,存储的内容是文档型的。这样也就有有机会对某些字段建立索引,实现关系数据库的某些功能。

 

key-value存储

Tokyo Cabinet / Tyrant
Berkeley DB
MemcacheDB
Redis

可以通过key快速查询到其value。一般来说,存储不管value的格式,照单全收。(Redis包含了其他功能)

  

图存储

Neo4J
FlockDB

图形关系的最佳存储。使用传统关系数据库来解决的话性能低下,而且设计使用不方便。

 

对象存储

db4o
Versant

通过类似面向对象语言的语法操作数据库,通过对象的方式存取数据。

 

xml数据库

Berkeley DB XML
BaseX

高效的存储XML数据,并支持XML的内部查询语法,比如XQuery,Xpath。

 
原创粉丝点击