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

2023-11-05

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

区块链与分布式数据库的区别 的相关文章

随机推荐

  • 一次因调用文件方法错误导致run.py调用不了test的过程

    我的项目中需要在一个 py中调用另一个文件夹的 py 最开始用的方法是 导入sys包 然后使用sys path append 存储路径 import unittest 导包 from selenium import webdriver fr
  • LeeCode学习记录:20. 有效的括号

    题目及代码 class Solution public boolean isValid String s 1 有效字符串的长度一定为偶数 2 遇到的左括号要先闭合 考虑用栈将这个左括号放入栈顶 3 当右括号时 可以取出栈顶的左括号并判断它们
  • 【EDA软件互转】PADS转Allegro

    1 使用pads软件打开PCB文件 然后执行菜单命令 File gt Export gt 弹出的对话框中点击 保存 然后按下图设置后点击 OK 按钮 会在当前目录下生成一个前面保存的asc文件 如果点击OK后有弹出其它提示就点击 确定 就好
  • 1980-2010年道路数据shp、2020年GRIP Global Roadsshp、2018年全国道路数据集shp、OSM数据shp

    道路数据集 一 NASA道路数据 1 数据来源 NASA 2 时间跨度 1980 2010 取决于国家 3 区域范围 亚洲 4 指标说明 数据格式 shp矢量数据 平面坐标系 WGS 84 全球公路开放获取数据集 1980 2010 第一版
  • 设计模式(十四)责任链模式

    前面讨论了创建型模式 结构型模式 今天我们来讨论一下行为型模式 责任链模式 就是我们讨论的第一种行为型模式 责任链模式具体不容易说出来 但是如果看一看责任链模式的实际例子就很容易明白了 最典型的例子就是Java EE Servlet中的过滤
  • 新代数控系统参数说明书_台湾新代宏程序编程书

    点击右上角关注公众号 每天更新 其实说起来宏就是用公式来加工零件的 比如说椭圆 如果没有宏的话 我们要逐点算出曲线上的点 然后慢慢来用直线逼近 如果是个光洁度要求很高的工件的话 那么需要计算很多的点 可是应用了宏后 我们把椭圆公式输入到系统
  • Vue form表单input框 手动赋值 提交时 表单input值没有生效 验证仍然是空

    1 问题 input 赋值后表单提交却为空 代码如下
  • ECCV 2022

    论文 https arxiv org abs 2207 08134 https github com HaoruiSong622 Editing Out of Domain Editing Out of domain GAN Inversi
  • 云计算习题

    云计算 一 单选题 二 多选题 三 实操题 单选题 多选题 实操题 一 单选题 下面哪个是软件代码版本控制软件 B A project B SVN C notepad D Xshell 为满足金融业务的监管和安全要求 平台不需要考虑下列哪个
  • 百度PaddleOCR文字识别库下载安装保姆级教程

    文字目录 1 PaddleOCR是什么 2 特性 3 安装总流程 安装步骤在第四单元 1 首先安装PaddlePaddle库 深度学习框架 2 安装shapely库 依赖的库 3 安装PaddleOCR 要使用的库 4 安装步骤 win o
  • 十进制转二进制的方法

    import java util Scanner public class Demo01 public static void main String args Scanner input new Scanner System in Sys
  • 帮我生成一个 Python 爬虫code,浏览知乎上的浏览量,并将结果保存在CSV文件中...

    我可以为你提供一个简单的 Python 爬虫程序 可以用来浏览知乎上的浏览量 并将结果保存在 CSV 文件中 程序的代码如下 import requests import csv 定义知乎的 API 接口 url https www zhi
  • 【Linux】常见基本指令

    目录 1 ls指令 1 1 ls 1 2 ls l或 ll 1 3 ls a 1 4 ls d 1 5 ls i 1 6 ls n 1 7 ls F 1 8 ls R 2 pwd指令 3 cd指令 4 touch指令 5 mkdir 指令
  • onnxruntime 运行过程报错“onnxruntime::Model::Model Unknown model file format version“

    背景 这几天在玩一下yolov6 使用的是paddle框架训练的yolov6 然后使用paddl 转成onnx 再用onnxruntime来去预测模型 由于是在linux服务器上转出来 的onnx模型 并在本地的windows电脑上去使用
  • 希尔(Shell)排序 C++

    希尔排序是一个很有意思的排序算法 就是在选择不同的增量序列时算法的效率会有显著的不同 更有意思的是它和Dijkstra算法都有相似之后 就是刚发明的时候并不知道有那么厉害 特别是Dijkstra 自己都不知道自己发明的这个算法有没有用 希尔
  • 运算放大器分类及运算放大器参数说明

    运算放大器 我们在大部分情况下只了解运放简单的电路模型 而在很多场景中 并不是任何放大器都可以被直接拿过来应用 而是需要更加深入的了解运放的性能 那什么是性能呢 就是运放本身的参数 只有选择符合要求的运放 我们才能放大我们想要的信号 滤除我
  • 生命在于折腾——Obsidian笔记软件折腾记录(一)

    一 开端 我使用过很多笔记软件 OneNote 语雀 Notability GoodNotes 印象笔记 有道云笔记 不得不说 我一直想拥有一款满足以下条件的笔记软件 买断制 符合以下所有条件我考虑订阅 ipad可手写 icloud可同步
  • Cocos2dx——戏如人生(1)

    建立工程 cocos new game3 1 com cn wang l cpp d project 本人用的是cocos2dx 3 6 运行工程 Hello world helloworldscene h ifndef HELLOWORL
  • 使用DVWA进行XSS漏洞实战

    使用DVWA进行XSS漏洞实战 本文记录使用DVWA进行XSS漏洞实战的过程 跨站脚本 Cross Site Scripting XSS 是一种经常出现在 WEB 应用程序中的计算机安全漏洞 是由于 WEB 应用程序对用户的输入过滤不足而产
  • 区块链与分布式数据库的区别

    1 来源 分布式数据库 应对互联网条件下大规模数据的增删改查需求 解决传统数据库面临的通信开销大 性能差 容量可扩展性差和可靠性低的问题 通信开销大 假设只有一个数据库 并且放在北京 那么纽约的用户就需要等待网络从纽约到北京的往返通信延迟