规范化数据模型是传统关系型数据库设计的核心,它为如何管理关系型数据提供了最佳设计理念,但同时也限制了数据查询的灵活性和高效率。

在云计算、大数据等新技术的带动下,越来越多的企业需要对结构化的数据进行查询、分析、处理和更新。同时,随着创新业务的不断增加,业务的复杂及庞大的体量必然会产生错综复杂且规模巨大的结构化数据,这些都必然迫使企业对数据库的需求指向大规模、高可靠、高扩展及高性能。

什么是数据去中心化

数据去中心化过程也就是数据拆分的过程。依据服务划分数据,将数据从主体数据剥离出来。

为什么需要数据去中心化

规范化数据模型是传统关系型数据库设计的核心,即通过三大范式实现数据的有效存储,并为开发人员提供一整套对数据的操作方式。规范化数据模型有利有弊,它为如何管理关系型数据提供了最佳的设计理念,但同时也限制了数据查询的灵活性和高效性,特别是当查询涉及多关联场景时,会导致查询性能严重低下。

规范化数据模型的另一个问题在于中心化思想,即把数据统一存储在一个中央数据库中。当大量数据存在于同一个数据库时会容易造成数据库访问瓶颈,从而影响数据访问性能,并为系统可用性埋下隐患。

数据去中心化场景

跨表查询场景

单库跨表查询相对于来说场景比较简单,不同业务共享几张数据表,通过关联查询获取需要是数据。应对这种查询是将关联查询拆分为多个单表查询,然后将结果数据进行动态重组,从而形成业务所需要的数据。

跨库查询场景

跨库查询说明不同数据库之间的表也存在着连接查询操作。针对该场景,基本的解决思路有两种:

静态数据

针对一些修改频率不高、相对静态的数据而言,可以采取数据复制的方式达到同一份数据在两个数据库中同时存在的效果,从而将跨库查询转变为同一库中的表查询。

动态数据

对实时性要求比较高的数据,可以通过开放接口的方式实现两个数据库之间的数据集成效果。

技术耦合场景

技术耦合场景表现在使用了特定某种数据存储容器相关的技术体系。对于关系型数据库而言,存储过程、触发器等就是典型的数据库工具级别的特有技术。由于每种数据存储容器对这些具体技术的实现和支持方式都有所不同,所以在原则上我们的业务功能都不应该使用这些技术进行数据处理。如果有,那就坚决去掉。采用的方式也是将这些存储过程、触发器中所涉及的业务逻辑全部用代码重新实现一遍即可。

数据去中心化流程

数据去中心化的步骤:

代码分离

想要对数据库进行拆分,首先要把操作数据库的代码拆分出来。即把原本在单块系统中的代码拆分成几个组成部分。

重复数据库模式

代码拆分完之后,对数据的访问会形成两种模式。一种是数据能够随着代码完成拆分,即这些数据不存在多个系统共同访问的情况,那简单把数据迁移出去供单个系统访问即可。但是很多情况下,代码中充斥着跨表查询,跨库查询和技术耦合场景,不能简单进行数据拆分,所以作为一个过渡环节,我们可以把几个系统公用的数据进行冗余处理。

迁移数据读写操作

完成数据冗余之后,将针对数据库写入和读取操作做单独抽离。一般写入操作比较好抽离,因为插入只涉及单表。难度最大的为读取的抽离,在没有专门的数据拆分之前,同一份数据可能通过各种方式被很多业务所共享,会出现大量跨表查询、跨库查询和技术耦合场景。

抽取服务化接口

在完成数据读写操作的迁移、去除数据定时同步机制之后,我们就可以对单块系统中的代码进行拆分,从而实现服务化。所有的数据访问通过服务化的接口进行。

参考资料

微服务设计原理与架构 郑天民/著(本文部分内容摘录此书,分享知识,尊重作者)

Scott W Ambler, Pramod J Sadalage. 数据库重构[M]. 王海鹏等译

转载于:https://www.cnblogs.com/bndong/p/9504490.html

数据去中心化的场景与流程相关推荐

  1. DeFIL赋能应用场景升级,创去中心化金融新时代

    2020年,DeFi.流动性挖矿已经成为整个区块链行业最具有吸引力的故事. 迄今为止,关于DeFi的新鲜资讯从不缺席,最近也是频频登上各大知名媒体热搜.这也让资本市场注意到DeFi市场原来也是这么有投 ...

  2. CESS 过去的三年,坚持去中心化存储基建一路前行

    CESS 自 2019 年开始研发,团队坚定去中心化存储的方向,从波卡黑客松的冠军到赞助方,活跃的脚步从东亚到拉美遍布全球,三年间吸引了越来越多的关注和肯定.进入 2023 的 CESS,即将迎来万众 ...

  3. 基于以太坊的去中心化宠物商店构建教程

    策划|Tina编辑|盖磊区块链前哨导语:作为一款以区块链和以太坊为基础建立起来的游戏,"链养猫"游戏<谜恋猫>(CryptoKitties)去年 11 月发布至今,已经 ...

  4. 聊聊ADAMoracle去中心化预言机网络服务介绍

    聊聊ADAMoracle去中心化预言机网络服务介绍. 去中心化的预言机将让开发者有能力使用任意数量的预言机为智能合约提供服务,可以避免单点故障,以及降低中心化预言机作恶带来的损失.因此,可靠的去中心化 ...

  5. 为什么说“去中心化”是互联网的未来?

    作为2020年代的人,我们都有权去畅想,我们期待的互联网是什么样子的? 近些年万维网的发展将人们渐渐的奴化,人们对万维网的理解也产生了深刻的转变.比如有越来越多的人理解万维网上的一切都是"满 ...

  6. 什么是 Web 3.0:面向未来的去中心化互联网

    前言 Web 3.0 可能是基于公共区块链的未来互联网模式,公共区块链是一种用以促进加密货币交易的记录保存系统. Web 3.0 的最重要的地方在于它是去中心化的,这意味着用户不是通过腾讯.阿里.百度 ...

  7. J9数字平台科普:Web3支柱:去中心化存储全面解析

    如果我们要为互联网的去中心化铺平道路,我们最终会集中在三个支柱上:共识.存储和计算.如果人类成功地将这三者去中心化,我们将完全实现互联网的下一个迭代:Web3. 存储是第二个支柱,它正在迅速成熟,出现 ...

  8. 区块链应用(去中心化应用)是什么样的?

    EOS 的技术白皮书给出了应用所需的六个条件(如下所示),而 EOS 的软件设计的确是对应这些条件而设计的.本节我们将重点讨论 EOS 的其中三个为应用而做的特别设计:用户免费.账户体系.存储. 区块 ...

  9. 什么是 Web 3.0?:未来去中心化互联网————初学者指南

    目录 Web 3.0 解释 网络的演变 什么是 Web 1.0? 什么是 Web 2.0? 什么是 Web 3.0? 什么是加密货币中的 Web 3.0? Web 2.0 与 Web 3.0 Web ...

最新文章

  1. 大厂围城:千辛万苦杀进来,为何他们选择出逃?
  2. DockOne微信分享( 九十):猎豹移动基于CoreOS在AWS上的项目实践
  3. Redis 主从复制(replication)
  4. spring是如何管理 事务的
  5. 苹果mac闪退_自从Mac有了WPS,从此和双系统说再见!
  6. SpringCloud学习笔记014---可以使用json对rabbitmq进行封装,方便数据传输
  7. Linux下的网络配置与连接
  8. adb工具下载及安装
  9. 导入JasperReports坐标时无法下载com.lowagie:itext:jar:2.1.7.js6
  10. 从零开始的数模学习(5):TOPSIS法(评价类模型)
  11. 我国计算机科学技术的成就,计算机科学技术百科全书
  12. 在VMware16虚拟机安装Ubuntu详细教程
  13. 为什么哪些90后程序员年薪50万+,他们经历了啥?
  14. 东南亚电商lazadashopee平台怎么开店,需要什么条件?
  15. 2021年百度账号批量取消绑定手机号教程
  16. Affinity Photo2022比PS更好用的图像编辑软件
  17. 蘑菇街服务器信息,蘑菇街开放平台
  18. 计算机文字转表格,Word怎么把文字转换成表格 30秒搞定
  19. Sqlite出现database is locked
  20. ssh服务器(自己的一点心得和操作总结)

热门文章

  1. canvas rotate 累加旋转_【教研动态】音乐活动中,使用材料累加情境的适宜性
  2. java常用注解及功能_SpringBoot 中常用注解及各种注解作用
  3. 获取当前经纬度php腾讯地图,PHP腾讯地图经纬度转百度地图经纬度
  4. python三级联动菜单_详解element-ui级联菜单(城市三级联动菜单)和回显问题
  5. 图像传感器与信号处理——详解CCD与CMOS图像传感器
  6. 裸辞,迎接2019年的春天
  7. 全球及中国工业金刚石微米粉行业十四五规划研究与发展战略分析报告2021年版
  8. 关于项目进度慢的思考----如何提高整体开发效率
  9. 基于VC++的GDI常用坐标系统及应用
  10. 使用 PHPMAILER 发送邮件实例