参考资料:
https://zhuanlan.zhihu.com/p/33381916
https://www.zuozuovera.com/archives/1062/
东南大学D&Intel Lab相关ppt
有了数据库是干什么,大概实现的逻辑,特点,才能引申出对当今这些新技术的对比、适应和发展。
基本概念:结构化的语义知识库,用于迅速描述物理世界中的概念及其相互关系,通过将数据粒度从document级别降到data级别,聚合大量知识,从而实现知识的快速响应和推理。
上面的概念比较抽象,实质就是把现实世界中的一堆概念联系起来,构成一个知识的关系网,原来一般数据都存在各种各样的表里,一堆表集合起来表示所有数据,现在就是一张大网,粒度就是这些个实体和简单关系(下面说的三元组),构建这个的目的是为了根据一个东西找跟他相关的各种东西,或者推理下谁跟谁关系大之类的,这就是所谓快速响应和推理。
结构:如果两个节点之间存在关系,他们就会被一条无向边连接在一起,那么这个节点,我们就称为实体(Entity),它们之间的这条边,我们就称为关系(Relationship)。
基本单位——三元组:“实体(Entity)-关系(Relationship)-实体(Entity)”构成的三元组,这也是知识图谱的核心。
构建的步骤:一般三步。信息抽取,信息融合,信息加工。简单介绍一下通俗的理解。
关系数据库 vs 知识图谱:
我个人感觉术业有专攻,没必要往上靠,但是老师ppt里说了这个。。。
总结一下:
共识不是个什么高大上的新东西,新华词典上的解释是:指一个社会不同阶层、不同利益的人所寻求的共同认识、价值、理想。
在区块链里,“共识”的意思是参与者就某一区块链状态达成共同的认识。
那区块链为什么存在“共识”?为什么支付宝啊,网银啊,从来没听说过这个名词?
因为区块链是去中心化的,而支付宝是中心化的,支付宝的一切都是马云爸爸说了算,马云爸爸从来不需要和别人达成“共识”,你爱玩不玩,没你说话的份。你不能跟马云爸爸说,我不同意我支付宝这笔交易的余额,马云不理你的。
但区块链是去中心化的,所谓的去中心化的一个含义就是没有某一个人,或某一个机构处于权力领导地位,没有谁能一个人说了算。任何“决策/状态/改变等”都要大家参与者一起使用某种机制来达成相同的认识,这就是区块链的共识。
区块链里的共识具体内容有哪些呢,有很多,比如对哪笔交易是否有效,需要达成共识。
一种是针对交易的有效性达成共识,这是区块链最核心的功能之一。这几乎是所有区块链产品都要做到的“共识内容”。在比特币系统,本质上是一种交易顺序共识。就是哪笔交易最先被确认就有效的。
区块链共识的具体内容还有一个极端重要的是整个参与者需要对最新的高度区块达成共识。就比如如果有两个矿工同时挖出一个区块,哪谁的是有效的,谁的算是孤立块。就也需要某种机制让大家都接受最终的答案,不允许出现分歧。
李开复曾经创立过一种共识机制:夫妻意见一样时听丈夫的,夫妻意见不同时听太太的。据说这种共识机制可实现生活100%容错,远胜过任何区块链共识算法。
严格来说应该叫分散信任,区块链并没有在实际上消除信任。它们做的事情是最小化系统中任意一个行动者所要求的信任的数量。他们是通过在系统中的不同的行动者之间分散信任来做这件事的。
有一个机制使得系统中的所有参与者都可以对什么是一贯的事实形成一个共识。权力和信任在网络的股东(例如:开发者、矿工、消费者)之间是分布式的(或者说:被共享的),而不是集中在单个个体或说实体(例如:银行、政府、或者金融机构)上的。
区块链的系统建立在分散化信任的基础上:我们是在信任集合中的每一个人。
去中心化
区块链的优点:传统的数据库需要一定的访问权限去管理,也就是说你必须依赖人为的管理,一旦访问权限被黑或者管理员作恶,数据就有很大的危险性,或者存在被人篡改的可能性,区块链用数据加密学和工作量证明以及节点的共识的机制来保证数据的安全。
健壮性
区块链的优点:区块链的另外一个优点就是高容错,因为它内在的冗余机制,每个节点对于整个区块链网络而言,都是必不可少的,节点之间相互通信,即使一些节点因为一些原因出错,也不会导致整个网络垮掉,同时失败的节点,重启之后也总是能正确同步新的交互。
性能
中心数据库的优点:区块链比传统的数据库要慢,并不是因为区块链技术本来就慢,而是因为区块链本身就是新生事物,依然处于早期阶段,性能优化仍然有一定的空间,同时因为区块链除了像传统数据库那样运行,还要做额外的负载:1、签名机制2、共识机制3、冗余性4、透明性(在区块链的交易都是透明的)
区块链在以下场景应该会更擅长:a、公司内部审计b、来源追踪c、轻金融系统
区块链的共识性就是一种去中心、去信任的数据一致性
保持数据一致性是系统实现基本要求:
一是逻辑一致性:关系依赖的数据保证某种约束条件,用一些约束、断言。
二是多副本的一致性:数据的多个副本保持一致性。
随着互联网技术进一步发展,互联网的去中心化宗旨逐渐得到重现。在去中心化,数据的一致性有重新的定义和诠释,需要在参与主体间保持数据的一致性形成共识,这就需要解决故障攻击外的恶意攻击,即拜占庭协议和sybil攻击。从形式上看,数据的共识性要求更多副本的一致性,从而在参与主体上实现存在性证明,而这种证明可以应用于数字货币和交易以及支付等具有价值属性的人类活动。这是目前比较成功的应用案例。
数据的一致性和共识性是在去中心化环境下对数据一致性的不同语义,目前多共识性的基本实现方法通过在每个节点的完全冗余备份实现数据的共识性,也有一种实现方法是在通过paxos协议实现备份的一致性,再通过拜占庭协议实现共识性,就可以回归到分布式数据存储系统上实现共识性,从而实现数据共识性,这个过程实现从数据一致性到数据共识性。
因此也就解释了数据库遇到区块链要解决的根本问题是:将中心化环境中的数据一致性拓展到去中心化环境中的数据共识性,从数据库发展的历史中,当前数据库遇到区块链:
一方面,数据库需要解决的问题是从一致性拓展到共识性的技术方法;
另一方面,数据的技术方法可以促进当前的区块链技术发展,数据对共识性的理解是对一致性的拓展,一是副本数目的飙升和恶意攻击;二是要扩充区块链中仅仅关于存在性共识的语义,需要实现在关系模型语义下的一致性、共识性,这种思路有希望解决通过完全冗余副本来实现存在性共识的低效机制。
打个比方,上图VB手拿最新以太坊区块链高度和地址,再配以他的图片很好的证明了他于区块生成后的那个时点的存活证明,其实这并不新鲜,以往我们很多时候用的是发行量大的报纸和真人照片进行存在性证明。
其实区块链和报纸在存在性证明上有很多相似之处,主要有三点:
首先是数据篡改困难,如果把当日的报纸看成一个节点,那么区块链和报纸一样有着巨大的数量,如果要篡改需要重新发行巨大的数量的节点(这点和修改所有节点区块数据一样具有很大的难度);
其次,报纸和区块链一样具有天然的时序性,报纸都会有当天的发行时间,区块链一样具有时序性,区块的生成时间会被记录;
第三,具有公开验证方式,你可以买一张当日的报纸进行时间验证,区块链可以通过浏览区块信息进行验证。
本质上一个神经网络就是一个大的函数,给输入得输出,是用一层又一层的简单函数对高维复杂函数的精简逼近,对高维不确定性依赖关系的表示。
特点:高维、不确定、隐式结构。
应用:深度学习。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发发现数据的分布式特征表示。
深度学习对数据库中的数据进行分析,可以更好的发现哪些数据更重要,哪些数据的作用没有特别大,这样对于数据库的进一步优化会起到十分关键的作用。
具体对于数据库中的某些非确定性问题,如知识融合,众包,查询推导等可能优化的较好。比如:
大量的训练集和数据模型提高了深度学习的准确性,但是副作用却是训练过程的代价的增大。正因如此数据库社区累积的大量的系统优化的经验可以用于深度学习训练集的优化。
例如分布式的计算和存储在深度学习的应用,
优化调度:通过优化数据库的事务执行和查询方法,来提高深度学习中相互独立问题的计算速度。例如数据库通过代价模型来评估查询计划的好坏。我们也可以建立一个深度学习代价模型来查找最优的计算次序。
储存管理:深度学习需要大量的存储空间,可以通过优化页面和cache来优化调度;通过添加数据库日志取代静态的进行深度学习的运行分析,通过垃圾回收机制来优化GPU存储管理。
并发性和一致性:数据库技术可以提供灵活的一致性用于深度学习的分布式训练。