Database 是否可以在区块链上创建具有多个表的关系数据模式?

Database 是否可以在区块链上创建具有多个表的关系数据模式?,database,database-design,blockchain,Database,Database Design,Blockchain,区块链被描述为一种数据库形式。到目前为止,大多数区块链应用程序似乎将区块链作为一个表数据库 是否可以创建具有多个表、一对多关系(如区块链上的关系数据库)的数据模式?如果没有,为什么?如果我理解你的问题,你会问,“我能像对待普通关系数据库一样对待区块链,并执行查询吗?”我假设你基本上想要一个数据库,具有“不变性”和分散性的好处。从技术上讲,答案是肯定的,但在经济上和实际情况下,还有一些事情要考虑。 只有真正实现了去中心化和强大的去中心化共识机制,才能真正实现区块链的不变性。例如,比特币是不可变的,

区块链被描述为一种数据库形式。到目前为止,大多数区块链应用程序似乎将区块链作为一个表数据库


是否可以创建具有多个表、一对多关系(如区块链上的关系数据库)的数据模式?如果没有,为什么?

如果我理解你的问题,你会问,“我能像对待普通关系数据库一样对待区块链,并执行查询吗?”我假设你基本上想要一个数据库,具有“不变性”和分散性的好处。从技术上讲,答案是肯定的,但在经济上和实际情况下,还有一些事情要考虑。
  • 只有真正实现了去中心化和强大的去中心化共识机制,才能真正实现区块链的不变性。例如,比特币是不可变的,因为全世界有很多分布式散列功能,而51%的攻击代价高昂。较小的网络,如,可能(和)受到攻击,因为它们没有足够的哈希能力抵抗攻击者。所以你需要确保你对这种情况有抵抗力
  • 如果你想将区块链用作任意存储的数据库,就必须有一个经济诱因,鼓励用户存储陌生人的数据。已经有许多著名的区块链项目尝试了这一点,但没有如先前所希望的那样采用。这在一定程度上是因为经济激励不够大。比特币用户(矿工)存储区块数据的唯一动机是确保下一个挖掘的区块有效(如果他们不存储数据,他们可能会在不知不觉中挖掘无效区块,因为他们无法正确验证交易)
  • 这项技术的实现取决于您试图实现的目标。如果您希望能够像数据库一样查询区块链(而不必存储任意数据),这些解决方案已经存在。不同的节点实现可以使用他们想要的任何语言、存储机制和操作系统,只要它们能够通信并遵循一致的规则。块数据可以存储在平面文件SQL、noSQL、whateverSQL中,节点应用程序只需能够读取、写入和验证数据。这里要优化的是速度。由于完整的tx验证需要整个区块链,因此如果数据库查找缓慢,这可能会非常缓慢

  • 区块链是作为分散共识的解决方案而发明的,并且不能真正脱离其发明的背景,这不仅需要技术实施,还需要经济上的使用激励。

    直接使用区块链结构?不 然而,区块链分类账的用途与预写日志(WAL)非常相似。引用维基百科的话:“在数据库系统中提供原子性和耐久性(两种酸性特性)的一系列技术”

    WAL和分布式账本只是记录一组顺序事件的方法,顺序很重要。主要区别在于WAL不包含事件的全部历史


    通过区块链构建SQL或任何其他类型的数据库的方法是使用分类账作为SQL指令的WAL。由于分类账包含事件的整个历史记录,因此您可以始终通过以相同的顺序执行历史记录来重建SQL数据库。

    当然,为什么不呢,这只是存储相同数据的另一种方式。但是,当你说“在区块链上”是什么意思?我的意思是将区块链用作一个数据库,其中包含多个具有一对多关系的表,如关系数据库。