首页 理论教育数据结构诊断与改善:倒推模型与品质改善操作

数据结构诊断与改善:倒推模型与品质改善操作

【摘要】:图5-13Reverse对象选择为质量诊断选择包含核心业务的表进行REVERSE。现在利用倒推完成的模型尝试数据结构诊断,对其进行改善。完成倒推后,如图5-14所示,数据结构被绘制为模型。在掌握了一段程度的业务情况后,将尝试找出足以引起数据结构问题的原因。为了诊断数据结构,利用有错误的例子诊断最基础部分的数据结构,以此诊断结果为基础进行改善操作。图5-18品质是改善后的数据结构

降低数据质量的原因有很多。这其中最根本的原因可能是当初没有妥善设置数据结构。初期结构主体设计不完善就运营数据库的话,设计了新的数据结构之后,在新数据结构中使用现有数据库就可解决问题。但是这种方法有很高的费用和时间要求。所以正在运营中的数据库利用逆向方法(reverse engineering)生成理论模型,从建模的角度诊断数据结构完整性、标准化标准、平均化标准等,导出问题后才能提出改善方案。

利用DBTool Orange的ER-Viewer,通过ER模型(ER diagram)将正在运行中的数据库结构逆转。作为参考,使用ER-Viewer中IE表示法(information engineering notation)可显示对象关系。IE表示法在信息系统构建时,存在于核心的数据分析(data analysis)和数据库设计(database design)中,被广泛使用。

简单地以在线购物中心为例,试着对以顾客下单行动和其关联业务为中心的数据库进行倒推,诊断数据结构并进行改善。

所谓范式,即将数据重复降至最低,提升存储空间效率,更新(修正、删除、更新)时降低异常现象发生率,能够提升数据质量的方法。

首先选择Orange中上部菜单Tools—ER Viewer,运行ER Viewer。运行ER Viewer后选择上部菜单Action—Generate ERD,连接数据库后按如下进行即可。

图5-13中,选择作为ER Viewer中主要表的MEMBER表,MEMBER表参考的客体和参考了MEMBER表的客体由于可立即确认,只能在必要部分倒推,模型查看或许更加容易。

图5-13 Reverse对象选择

为质量诊断选择包含核心业务的表进行REVERSE。现在利用倒推完成的模型尝试数据结构诊断,对其进行改善。

完成倒推后,如图5-14所示,数据结构被绘制为模型。可以立即确认两个表的外部键(Foreign key)关系,双击表,也能够立即确认画面下部的客体描述信息(Description Information),掌握业务情况,质量诊断非常方便。观察模型,MEMBER表和ORDERED_PRODUCT表具有“1对多”的关系,ORDERED_PRODUCT表的MEMBER_ID列参考了MEMBER表作为PRIMARY KEY的MEMBER_ID列,还可视为业务上与会员订购商品有关的部分。

在掌握了一段程度的业务情况后,将尝试找出足以引起数据结构问题的原因。

图5-14 Reverse完成

可以看到,MEMBER表中PHONE属性反复出现,可以确定从第1范式开始就不满足。如表5-3所示,从制作MEMBER表的例子(样本数据)可以看出,掌握了与业务的联系后会有很大帮助。关系复杂,业务很难掌握的话,举例就只能靠推测。

表5-3 Member表举例

(www.chuimin.cn)

要满足第1范式(为了取消重复属性),如图5-15所示,将MEMBER表分为MEMBER_PHONE表和MEMBER表,变为满足第1范式的结构。

ORDERED PRODUCT表中,由于属性没有重复并有原子价,可视为满足第1范式。那么现在就来看看ORDERED PRODUCT表是否满足第2范式。这个表中有MEMBER ID属性和PRODUCT_NO属性构成的默认键(PRIMARY KEY)。剩下的一般属性中,PRODUCT NAME属性和COST属性随意一瞥也能看出是只属于默认键中PRODUCT_NO的属性,可知这里违反了第2范式。

图5-15 满足第1范式的结构

如图5-16所示,仅对从属于PRODUCT NO的属性单独分离并制作PRODUCT表。而且ORDERD PRODUCT表通过ORDERED表修正。

图5-16 满足第2范式的结构

满足了第2范式后,就要确认是否满足第3范式。通过确认ORDERED表可以看出,默认键由MEMBER_ID属性和PRODUCT_NO属性构成。但一般属性中,STORE_NAME属性和SOTRE_VALUE属性可视为非默认键STRORE_CODE属性的附属属性。所以,ORDERED表无法满足第3范式,要想满足第3范式,消除一般属性间从属的情况,只要将STRORE_CODE属性和STORE_NAME属性、SOTRE_VALUE属性分离,再制作新的表即可。

如图5-17所示,排除一般属性之间的从属。并且加上最新分离产生的SOTRE表和ORDERED表,即成为包括第3范式都能满足的数据结构。

图5-17 满足第3范式的结构

最终,如图5-18所示,加上MEMBER表和ORDERED表的参考关系,就将违背了第1范式的数据变为连第3范式都满足的能够保证质量的数据结构(要满足第3范式必须全部满足第1、2范式)。

为了诊断数据结构,利用有错误的例子诊断最基础部分的数据结构,以此诊断结果为基础进行改善操作。当然,这与实务中专家与顾问合作的标准比起来差得远,只是基础标准。但是此类基础部分可成为提升数据质量的关键要素。

图5-18 品质是改善后的数据结构