区块链与分布式数据库的区别

1、来源

  • 分布式数据库

应对互联网条件下大规模数据的增删改查需求,解决传统数据库面临的通信开销大、性能差、容量可扩展性差和可靠性低的问题

通信开销大:假设只有一个数据库,并且放在北京,那么纽约的用户就需要等待网络从纽约到北京的往返通信延迟

性能差:查不了——用户太多,大家都要查询数据库,自然性能就跟不上了

容量可扩展性差:存不下——数据太多,一台机子放不下,升级设备又太贵

可靠性低:丢不起——一个数据库挂掉,那么系统就宕了

  • 区块链

在假设大部分成员可信的情况下,构建去中心化的可避免双花的数字货币

比特币是区块链的原型,最开始就是想构建一个去中心化的数字货币

2、数据体系架构

2.1、数据分配

------分割分配 每个节点只保存部分数据

------全复制分配 每个节点都保存所有数据(分布式数据库)

------混合结构 有分割,有冗余,一般都用这种

区块链:全复制分配

2.2、数据分片

------水平分片 对表按行拆分,每个分片都有完整字段

------垂直分片 对表按列拆分,每个分片都有某字段完整数据(分布式数据库)

------混合结构 有水平,有垂直

区块链:无分片,所有节点都是完整数据

3、组件

------全局数据字典 记录哪些数据存在哪个节点

------全局数据库管理系统 控制总入口,管理各局部数据库(分布式数据库)

------局部数据库管理系统 管理单个节点的数据库

------共识机制 协调各节点更新区块链

------局部数据库管理系统 管理单个节点的数据库查询操作(区块链)(?)

4、查询操作

  • 分布式数据库:查询由全局数据库管理系统下发到各节点,结合各节点数据并计算
  • 区块链:任何单点(全节点)均可独立完成查询

5、更新操作

在数据库中,对数据的一系列操作在逻辑上可以看成一个整体的操作,这个整体的操作就叫事务。更新操作即可以理解为由事务构成。

事务需要满足ACID特性,即Atomicity(原子性)Consistency(一致性)Isolation(隔离性)Durability(持久性)

为避免理解混乱,这里简单介绍一下其定义

  • Atomicity(原子性)

原子性要求每个事务中的所有操作要么全部完成,要么就像全部没有发生一样

  • Consistency(一致性)

单点数据库的一致性:一致性确保了任何事务都会使数据库从一种合法的状态变为另一种合法的状态。

分布式数据库的一致性:在分布式系统中的所有数据备份,在同一时刻是否同样的值

  • Isolation(隔离性)

隔离性保证了并发执行多个事务对系统的状态的影响和串行化执行多个事务对系统的状态的影响是一样的。

  • Durability(持久性)

持久性保证了一个事务一旦被提交以后,其对系统的影响是永久的。

  • Atomicity(原子性)

分布式数据库:由全局数据库管理系统控制,保证所有节点均完成或均失败

区块链:由共识机制、分叉理论和最长链原则共同控制。

共识机制尽可能保证所有节点数据的原子性,但也会因为网络延迟和节点作恶导致部分节点更新失败。

如果出现有的节点更新数据成功,有的节点更新数据失败的情况,则发生分叉,各节点根据最长链原则更新自己的数据

  • Consistency(一致性)

分布式数据库:由业务层或全局数据库管理系统控制

区块链:共识机制控制各节点在一定时间窗口内“同步”更新,更新不成功即分叉

  • Isolation(隔离性)

分布式数据库:全局管理系统中维护事务序列号,根据序列号判定执行顺序

区块链:不存在隔离性问题。在共识机制控制下,单个时间点只有一个主体完成对区块链的更新操作,因此不存在并发事务操作。

  • Durability(持久性)

分布式数据库与区块链的单点都是传统的数据库,因此能保证持久性

6、篡改

  • 分布式数据库:

单个节点能独立管理自己存储的数据;

已经提交的数据可以被修改或抹除,但修改或抹除会留下可删除的日志

  • 区块链:

单个节点无法独立管理数据,如果任意更新的话即成为“恶意节点”,此类节点可以通过与其他节点的数据比对发现

不可篡改,已经提交的数据会被永久保留,无法被修改或抹除

7、中心化控制程度

  • 分布式数据库:由全局数据库管理系统统一控制,DBA(数据库管理员)有“生杀大权”;
  • 区块链:去中心化,不存在DBA的角色

8、节点间关系

  • 分布式数据库各节点之间的关系是:信任,协作。
  • 区块链各节点之间的关系是:怀疑,制约。

9、特性比较

10、三种结构比较

  • 中心化结构中,数据存储于数据处理中心服务器上,如果数据处理中心出现故障,会导致整个系统出现问题;
  • 分布式结构中,将不同地点和功能的多个节点相连接,由控制中心统一协调管理,共同完成任务的调度,如果分布式控制节点出现故障,控制节点下的子节点也会失效。
  • 去中心化结构由多个地位平等的节点连接在一起,是一种开放平等的系统结构。去中心化结构没有控制节点,每个节点都是平等的关系,数据基于P2P 协议同步,没有中心控制系统,允许单个节点出现故障,单个节点的失效对系统全局不会产生实质性影响。

转载自:https://zhuanlan.zhihu.com/p/33995237

猜你喜欢

转载自blog.csdn.net/Black_BearB/article/details/81942483
今日推荐