名词解释:
TRDB->传统数据库
Nosql->not not sql (不只是sql)
1.nosql主要解决是大数据下存取速度过慢。(通过分布式)
2.传统关系型数据库不能解决的可以考虑引入nosql
帽子定理(CAP Theorem)
证明:在分布式处理情况下,发生故障节点,三种期望,一致性,可用性,分区容错性最多只能满足两个。
1.一致性(Consistency):同一时刻 ,任何客户端在每个节点都能读到最新写入的数据。
2.可用性(Availability):运行的节点在合理的时间内总能响应更新请求,不会发生错误或超时。
3分区容错性 (Partition Tolerance): 当网络发生故障,系统仍能继续保持响应客户读请求的能力。
理解为在出现故障的情况下,复制,更新,读数据三者的合理平衡问题。
解决:
1.出错自适应功能,Master故障能马上切换到备份Master.
2.具备分布式性能监控功能。
事务对比
ACID:原子性,一致性,隔离性,持久性(TRDB)
(1) 原子性:一个事务不可分割,要么都成功,要么都失败。
(2)一致性: 事务必须是使数据库从一个一致性变成另一个一致性
(3)隔离性:事务之间互相隔离
(4)持久性:事务被提交就应该是永久的.
BASE:基本可用,软状态,最终一致性(Nosql)
(1) 基本可用(Basically Available) (故障允许继续部分访问,TRDB不可以)
(2) 软状态(Soft State)(允许数据在处理过程不一致,通过纠错处理,最终一致。
(3)最终一致性(Eventually Consistent): 允许暂时不一致,处理后一致。
基本数据操作方式
键值对
Put
Get
Delete
优点:
简单
快速
高效计算
分布式处理
缺点:
对值进行多值查找功能弱
缺少约束
不容易建立复杂关系
key:value
key:value
文档数据库存储结构基本要素
1.基本键值对
key:id
带结构键值对
{key:id,key:string,
{key:array,key:{key:value}}
多形式键值对
{key:id,key:string,
{key:array,key:{key:value}}
{key:id,key:array,
{key:array,key:{key:value}}
2.文档
由键值对构成的有序集合.
{
{“id”:1,“name”:1,“sex”:1}
{“id”:2,“name”:2,“sex”:1}
}
MongoDB
docker 安装