第09章补充资料1类的优化例子(图书订单),可用于数据库规范化

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

•规范的类将满足三级规范要求。一级规范要求在类中不存在重复的属性项;二级规范是在满足一级规范的基础上,类中不存在对主键属性部分依赖的属性;三级规范则要求在满足二级规范的基础上,在类中不存在传递依赖关系。下面我们分三步对由图7.39“图书订单”所产生的“图书订单”类(见图7.40)进行优化。图7.39书店信息系统的图书订单图书订单订单号:100001填订日期:2002.4出版社名称:清华大学出版社联系人:赵正电话:010账号:计划单编号:2002003地址:北京清华大学学研大厦邮政编码:100084计划单序号书号计划到货日期实际到货日期0019787302038061C程序设计9787302046507信息组织Java2实用教程Jbuilder5实用教程信息经济学教程9787302034179IDEF建模分析和设计方法合计:35000元运费:500元税费:218元管理费:200元其它费用:100元总计:36010元采购员:李明到货地点:西安市北大街23号出版社编号:0100111002003004005006978730202801797873020472309797302052073书名谭浩强马张华耿跃平张焱陈禹陈禹六作者1001030203010数量200206200205200210200211200210200210……订价262829.8261728…1.一级规范一级规范要求在类中不存在重复的属性。在类中如果存在重复的属性,则需要把所有重复的属性从类中抽取出来,构成一个新类。在图7.40“图书订单”类中,从“计划单序号”到“实际到货日期”8个属性都是重复的。为了符合一级规范的要求,需要把这些属性从“图书订单”类中提取出来,形成新的“订单图书”类(见图7.41)。订单图书是本订单所订购的图书,它是图书订单的有机构成部分,因此,“订单图书”类与“图书订单”类是组成关系。在一个订单中最多可以有20种图书,多重性标为1...20。图7.40初步的“图书订单”类图书订单订单号订单日期出版社编号出版社名称联系人地址电话邮政编码账号计划单号计划单序号书号书名作者单价册数计划到货日期实际到货日期合计运费税费管理费其它费用总计采购员到货地点1…20图书订单订单号订单日期出版社编号出版社名称联系人地址电话邮政编码账号计划单号合计运费税费管理费其它费用总计采购员到货地点订单图书订单号书号书名作者单价册数计划到货日期实际到货日期计划单序号图7.41一级规范后的“图书订单”类•2.二级规范•二级规范要求在类中不存在部分依赖关系的属性,要把不完全依赖关键属性的非关键属性从类中提取出来。在图7.41中,“订单图书”类的关键属性是“订单号”和“书号”,但是“书名”、“作者”、“单价”三个属性则仅依赖“书号”关键属性,存在部分依赖关系,所以需要进行优化。二级规范后的“图书订单”类见图7.42。•3.三级规范•三级规范要求消除在类的属性中存在的传递依赖关系。在“图书订单”类中,“出版社编号”依赖“订单号”,但是从“出版社名称”到“账号”6个属性仅依赖“出版社编号”,并不直接依赖“订单号”,这是典型的传递依赖关系,需要消除。三级规范之后的“图书订单”类见图7.43。图7.42二级规范后的“图书订单”类*11…20图书书号书名作者单价图书订单订单号订单日期出版社编号出版社名称联系人地址电话邮政编码账号计划单号合计运费税费管理费其它费用总计采购员到货地点订单图书订单号书号册数计划到货日期实际到货日期计划单序号图7.43三级规范后的“图书订单”类1…20*图书订单订单号订单日期计划单号合计运费税费管理费其它费用总计采购员到货地点出版社出版社编号出版社名称联系人地址电话邮政编码账号1订单图书订单号书号册数计划到货日期实际到货日期计划单序号1*图书书号书名作者单价•4.进一步优化•图7.43中“图书订单”的属性仍然偏多,并且“合计”和“总计”两个属性属于派生属性,可以去掉。可以把几个费用属性独立出来形成一个新的“订单费用”类,作为“图书订单”类的部分类。这样优化之后的类图见图7.44。图7.44“图书订单”优化类图1*1…20*1图书订单订单号订单日期计划单号采购员到货地点订单图书订单号书号册数计划到货日期实际到货日期计划单序号订单费用订单号运费税费管理费其它费用出版社出版社编号出版社名称联系人地址电话邮政编码账号图书书号书名作者单价

1 / 11
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功