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

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

参与26

4同行回答

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

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

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

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

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

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

收起
银行 · 2019-03-08
浏览2928
  • 感谢分享。明白你说的,这样做的目的是为了逆向(从后超前看)或者叫多角度去看业务模型设计,是一个由结果反推前期设计的想法,去发现存在的问题之后,去培训相应的业务。同意从一开始来做更好,是更应该做的。
    2019-03-08
anikikonganikikong课题专家组数据库运维工程师中国民生银行
最近在做利用机器学习的能力提升数据库运维这样的产品。你这个问题其实挺好,我也在考虑思路。 首先把数据库的指标全部监控起来。然后对不同的系统相同的指标进行分类。也差不多就是说明这个系统的这个方面在整体数据中心里处于什么位置。同样这个味直接就是这个系统数据...显示全部

最近在做利用机器学习的能力提升数据库运维这样的产品。你这个问题其实挺好,我也在考虑思路。 首先把数据库的指标全部监控起来。然后对不同的系统相同的指标进行分类。也差不多就是说明这个系统的这个方面在整体数据中心里处于什么位置。同样这个味直接就是这个系统数据建模能力或者其他性能之类的体现。清楚系统的运行状况后,下一步就可以找到解决问题的方向,反推是应用改造还是资源升级等。

收起
银行 · 2019-03-11
浏览2634
  • 赞,是相同的思考,有机会多交流。
    2019-03-11
  • 大哥,你们行把 DB2 的所有监控指标抓出来,不会对数据库服务器本身性能产生影响吗? 你们那之前不是用BMC的监控吗?保留一个月的历史指标数据
    2019-03-27

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2019-03-08
  • 关注会员:5 人
  • 问题浏览:4548
  • 最近回答:2019-03-11
  • X社区推广