图914二级规范后的“图书订单”类 图9.14二级规范后的“图书订单”类 级规范 一级规范要求在类中不存在重复的属性项。在类中如果存在重复的属性,则需要把所 有重复的属性从类中抽取出来,构成一个新类。在图912“图书订单”类中,从“书号” 到“实际到货日期”9个属性都是可分解的。为了符合一级规范的要求,需要把这些属性 从“图书订单”类中提取出来,形成新的“订单图书”类。见图9.13。订单图书是本订单 所订购的图书,它是图书订单的有机构成部分,因此,“订单图书”类与“图书订单”类是 组成关系。在一个订单中可以有多种图书,多重性标为1.*。 2.二级规范 级规范要求在类中不存在部分依赖关系的属性,要把不完全依赖关键属性的非关键 属性从类中提取出来。在图913中,“订单图书”类的主键属性是“订单编号”和“书号”, 但是“ISBN”“书名”“作者”、“出版日期”、“版次”、“定价”等六个属性则仅依赖“书 号”属性,存在部分依赖关系。所以需要进行优化,独立出来一个单独的“图书”类,“讠 单图书”类继承“图书”类,分解之后见图9.14
3.三级规范 级规范要求消除在类的属性中存在的传递依赖关系。在“图书订单”类中,“出版 社编号”依赖“订单编号”,但是从“岀版社名称”到“账号”8个属性仅依赖“出版社编 弓”,并不直接依赖“订单编号”,这是典型的传递依赖关系,需要消除。规范之后的类图 见图 图915三级规范后的“图书订单”类 图916“图书订单”优化类图 12