工业数据分析 | 范式建模和维度建模,你pick谁?
来源: | 作者:pmod6d781 | 发布时间: 2022-03-04 | 702 次浏览 | 分享到:


关系(Relationships)指实体和实体之间由于某种业务规则而产生的联系和互动。关系就像胶水一样,把原本独立的实体信息整合在一起。例如,一台设备上有多个传感器、多个传感器可能会度量同一个逻辑测点(传感器冗余)、一个车间包含多条产线、一条产线包含多个工段等等。


关系的定义也需要依照业务规则进行,如果我们识别到两个实体之间会产生一个关系,我们要进一步识别以下几方面的内容:

1)关系的基数,即一对一、一对多、还是多对多;

2)关系的强弱,即产生关系的两个实体生命周期是否受关系的影响;

3)关系的附加属性;

4)关系双方在这个关系中的角色名称。


举个例子,假设我们对一个金属铸造的过程进行数据建模。模具需要安装到铸造机台上进行铸造使用,假设业务目标是要找出不同的铸造机台是否会对铸造质量产生影响,那么机台和模具之间的关系可以由下图表示:



在上图中,机台和模具的关系基数是一对一,因为一个机台最多绑定一个模具,同时一个模具也不可能安装到多个机台上;关系的强弱是强关系,因为铸造是由机台和模具共同完成的,在当前定义的问题中,没有必要把他们分开看,如果从系统中把一个铸造机台记录删除,那么上面安装的模具记录也可以一并删除;关系上也无需附加任何额外属性;双方的角色名只有在数据访问的时候才会用到,目前暂不讨论。


之后,我们从业务专家那里了解到,我们忽略了一条重要的业务规则,即“铸造机台和模具之间虽然在一段时间内是一对一的绑定关系,但是每隔一段时间,都会把模具从机台上拆卸下来换上新的模具,拆下的模具会被清洗保存,直到下次安装到其他(不确定是哪台)的机台上使用,如此循环”。基于上述新的业务知识,我们修改关系如下:



在版本2中,关系的基数变成了多对多,因为任何一个机台都可能安装任意一个模具,反过来,一个模具也有可能被安装到任意一个机台上;关系的强弱变成了弱关系,因为模具不再依赖于机台的存在,因为模具会被单独清洗保管,有可能没有安装在任何一个机台上。我们还需要一个关系附加属性来表达“在什么情况下,一个特定的机台会和一个特定的模具绑定在一起”。业务专家反馈说:“换模具是在换批次的间歇进行的,换批次的时候可能换模具,也可能不换,取决于模具是否需要清洗,但是在一个铸造批次执行过程中不可能换模具”,因此我们得知,只要在关系额外属性上记录批次号,机台和模具的绑定关系就完整了。


通过上面的例子,我们体会到数据模型中关系的定义是如何反映实际的业务规则的。假设业务专家说:“换模具的时间没有特定规则,就是班组长觉得需要换了就换,即使在一个批次生产过程中。但是换模具的时候我们有记录,因为工人会扫码”,感兴趣的读者可以思考,在上述规则下,机台和模具的关系应该怎么建。