本节书摘来自华章社区《DBA修炼之道:数据库管理员的第一本书》一书中的第3章,第3.8节其他数据建模问题,作者(美)Craig S. Mullins,更多章节内容可以访问云栖社区“华章社区”公众号查看
3.8 其他数据建模问题
请记住,本章的目的是为DBA广泛地概述数据建模的概念。在那些真正将数据视作企业资产的企业里,数据建模可以是全职工作的。本章的内容应该足以让DBA在创建数据库之前首先创建合适的数据模型。然而,企业进行数据库管理将需要解决更高级的数据建模问题,如下:
子类型该如何处理?当单个实体的属性仅适用于某些实体实例时,子类型才可以创建。例如,PART-TIME EMPLOYEE和FULL-TIME EMPLOYEE可以是EMPLOYEE这个父类型实体的子类型。如果子类型存在不同的关联或有足够数量的属性仅适用于一个子类型时,子类型才是必需的。
逻辑数据模型如何对待派生数据?如果从其他数据派生而来,还有必要建模或记录吗?
域应在何时成为实体?例如,美国的业务用户通常都知道各州的缩写,因此,一般不需要创建实体作为州的名字及其缩写的映射。但并非所有的决定都如此简单。
如果时间是数据的一个决定性因素,在数据模型中该如何处理呢?例如,或许一名CUSTOMER一次只能购买一个BASKET的货物,但随着时间的推移,该CUSTOMER会购买许多BASKET的货物,因为每次都会购买一个新的BASKET的货物。
什么时候允许有一对一的关联?处于一对一关联中的实体可以更好地收缩到一个实体中,但其他问题如其他实体之间的关联可能就不适用该做法。
在以数据为中心的先进企业中,这些问题与其他可能出现的问题都需要数据建模师和DA去研究和学习。