nosql
not only sql,非关系型数据库,是对不同于关系型数据库的数据库管理系统的统称,用来超大规模数据的存储
分布式
distributed system:由多台计算机和通信组件-----通过计算机网络连接(局域网或广域网)组成,
它建立在网络之上的软件系统,具有高度的
内
聚
性
内聚性
内聚性和
透
明
性
透明性
透明性
因此,网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统),而不是硬件。
分布式系统可以应用在不同的平台上如:Pc、局域网、广域网
分布式计算的优点
高可靠性 :
容错性,一台服务器的系统崩溃不影响到其他服务器。
高可扩展性:
在系统中可以根据需要增加其他的机器节点。
数据共享性,:各节点数据共享
灵活性、更快的速度
更高的性能:相较于集中式计算机网络集群可以提供更高的性能
分布式计算的缺点
- 故障排除和诊断困难
- 更少的软件支持
- 网络基础设施的问题较为复杂
- 安全性:数据安全性问题
RDBMS vs NoSQL
RDBMS
- 结构化数据
- 结构化查询语言SQL
- 数据和关系都存储在单独的表中
- 数据操纵语言(CRUD),数据定义语言(建库建表)
- 完整性、一致性
- 支持事务
NoSQL
键 - 值对存储,列存储,文档存储,图形数据库
最终一致性,而非ACID属性
非结构化和不可预知的数据
CAP定理
高性能,高可用性和可伸缩性
CAP定理
在计算机科学中, CAP定理(CAP theorem), 又被称作 布鲁尔定理(Brewer’s theorem), 即对于一个分布式计算系统来说,不可能同时满足以下三点:
一致性(Consistency) ,所有节点在同一时间具有相同的数据
可用性(Availability) ,保证每个请求不管成功或者失败都有响应,
分隔容忍(Partition tolerance) ,系统中任意信息的丢失不会影响系统的运行
CAP理论的核心:最多只能同时较好的满足两个。
根据 CAP 原理将 NoSQL 数据库分成了满足 CA 原则、满足 CP 原则和满足 AP 原则三 大类:
CA - 单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强大。
CP - 满足一致性,分区容忍性的系统,通常性能不是特别高。
AP - 满足可用性,分区容忍性的系统,通常可能对一致性要求低一些。
BASE
BASE:Basically Available, Soft-state, Eventually Consistent。 由 Eric Brewer 定义。
BASE是NoSQL数据库通常对可用性及一致性的弱要求原则:
Basically Available --基本可用
Soft-state --软状态/柔性事务。 “Soft state” 可以理解为"无连接"的, 而 “Hard state” 是"面向连接"的
Eventually Consistency – 最终一致性
nosql数据库
列存储,HBase
文档存储 mongodb
key-value存储,redis
图存储,Neo4j
mongodb
- 分布式、存于磁盘、非关系数据库
- db>collection>json 文档型数据库
- C++编写,为web应用 提供高性能、高可扩展性的数据存储方案
- 非关系db中,功能最丰富、最像关系db的