如何通过应用对数据库的设计和使用,去反推出业务在数据模型抽象方面的能力?

对于重业务的复杂的业务场景来说,业务模型抽象能力非常关键,另外数据模型的设计基本上关系到后续业务的弹性,那么从DB的来说,如何能够通过DB的使用情况,去反观业务在数据建模能力,给出一个打分或评价,大家有什么好的想法可以交流。...显示全部

对于重业务的复杂的业务场景来说,业务模型抽象能力非常关键,另外数据模型的设计基本上关系到后续业务的弹性,那么从DB的来说,如何能够通过DB的使用情况,去反观业务在数据建模能力,给出一个打分或评价,大家有什么好的想法可以交流。

收起
参与26

查看其它 3 个回答bryan的回答

bryanbryan软件架构设计师金融研发

首先,逆向思考这个问题。先从目的出发,为什么要对业务数据建模能力进行评价?评价的目的是为了什么?
一方面,如果一个系统能够满足各种业务需求,每个SQL语句响应时间很短,是不是就算作建模能力很好?一方面,从题干出发,考虑到系统的业务弹性,是不是说数据库的扩展能力呢?这个应该是在系统设计时需要考虑到的数据库容量规划。

然后,我们再正面回答这个问题
在系统架构设计时,数据架构层面需要进行容量规划,部署架构层面需要考虑系统的扩展性等非功能性需求。一般而言,如果系统出现问题中担心的一些问题,可能是与前期架构设计不到位有一定关系。

那么,可不可以逆推出数据模型呢?数据架构的设计是按照业务模型、逻辑模型和物理模型三层设计实现的。作为DBA,看到的是最终的物理模型。如果逆推模型,可以通过数据表之间的关系(外键等),反推出一定的数据关联关系,并且有些数据库有类似的软件。

最后再考虑一个问题,有没有必要这样呢?
在我接受的一个烂系统中,我们是不去逆推建模能力,就是一个原则:有问题解决问题。如果数据模型设计不到位,最终会表现为业务处理速度慢。那么我们就分析哪些业务处理慢,再去分别他们的表结构,看看有没有合理的优化方式,从而进行改进。

那么建议是什么呢?一方面在项目设计初期做好数据架构规划设计,一方面在落地实施后哪里有问题解决哪里。

银行 · 2019-03-08
浏览2869
  • 感谢分享。明白你说的,这样做的目的是为了逆向(从后超前看)或者叫多角度去看业务模型设计,是一个由结果反推前期设计的想法,去发现存在的问题之后,去培训相应的业务。同意从一开始来做更好,是更应该做的。
    2019-03-08

回答者

bryan
bryan0514
软件架构设计师金融研发
擅长领域: 云计算容器容器云

bryan 最近回答过的问题

回答状态

  • 发布时间:2019-03-08
  • 关注会员:5 人
  • 回答浏览:2869
  • X社区推广