1、1第第6 6章章 关系数据库设计实例关系数据库设计实例2目目 录录确定联系集及确定联系集及E-RE-R图图 6.5需求描述和系统边界需求描述和系统边界 6.1需求分析需求分析 6.2确定实体集及属性确定实体集及属性 6.4检查是否满足需求检查是否满足需求 6.6逻辑数据库设计逻辑数据库设计 6.7模式求精模式求精6.8主要业务的概念建模分析主要业务的概念建模分析 6.33基于基于B2CB2C的网上书店系统需求描述的网上书店系统需求描述 n 该系统支持该系统支持4 4类用户:类用户:游客游客、会员会员、职员职员( (书店工作书店工作人员人员) )和和系统管理员系统管理员。n 游客游客可以随意浏览
2、图书及网站信息,但只有在注册可以随意浏览图书及网站信息,但只有在注册为网站会员后才能在线购书。游客注册成功后即为为网站会员后才能在线购书。游客注册成功后即为普通会员,当其普通会员,当其购书金额达到一定数量时可升级为购书金额达到一定数量时可升级为不同等级的不同等级的VIPVIP会员会员,以享受相应的优惠折扣。,以享受相应的优惠折扣。n 会员会员登录系统后,可通过不同方式登录系统后,可通过不同方式( (如书名、作者如书名、作者、出版社等、出版社等) )搜索图书信息、网上订书、在线支付、订搜索图书信息、网上订书、在线支付、订单查询与修改单查询与修改,发布留言发布留言等。等。4基于基于B2CB2C的网
3、上书店系统需求描述的网上书店系统需求描述 n 书店工作人员书店工作人员以职员身份注册登录后,可以职员身份注册登录后,可维护与发布图书维护与发布图书信息、审核订单、安排图书配送、办理收款、处理退货信息、审核订单、安排图书配送、办理收款、处理退货,并进行并进行图书采购、库存管理、会员管理、留言回复图书采购、库存管理、会员管理、留言回复等。等。n 系统管理员系统管理员的主要职责是的主要职责是维护已注册维护已注册会员会员、职员职员信息信息。n 请为该网上书店设计数据库请为该网上书店设计数据库E-RE-R图和关系模式。要求保存图和关系模式。要求保存所需全部信息,并高效地支持上述各种应用。所需全部信息,并
4、高效地支持上述各种应用。n 由于网上书店功能比较复杂,由于网上书店功能比较复杂,本设计不考虑本设计不考虑网上支付网上支付和和退退货货等等功能功能 。 确定系统边界确定系统边界5目目 录录确定联系集及确定联系集及E-RE-R图图 6.5需求描述和系统边界需求描述和系统边界 6.1需求分析需求分析 6.2确定实体集及属性确定实体集及属性 6.4检查是否满足需求检查是否满足需求 6.6逻辑数据库设计逻辑数据库设计 6.7模式求精模式求精6.8主要业务的概念建模分析主要业务的概念建模分析 6.36业务需求及处理流程业务需求及处理流程 n 业务需求分析业务需求分析是是根据现实世界对象需求,描述应用根据现
5、实世界对象需求,描述应用的具体的具体业务处理流程业务处理流程,并分析哪些业务是计算机可,并分析哪些业务是计算机可以完成的,而哪些业务是不能由计算机完成的以完成的,而哪些业务是不能由计算机完成的。n 网上书店网上书店主要业务主要业务包括:包括:图书信息发布与查询图书信息发布与查询、订订购图书购图书、处理订单处理订单,并通知配送公司进行,并通知配送公司进行图书配送图书配送等。本节只给出网上书店的核心业务等。本节只给出网上书店的核心业务“订单生成订单生成”及及“订单受理订单受理”处理流程。处理流程。 n 常见的网上书店一般包括哪些业务功能?常见的网上书店一般包括哪些业务功能?7会员登录会员登录选择图
6、书选择图书放入购物车放入购物车填写配送信息填写配送信息选择支付方式选择支付方式订单生成订单生成财务结算财务结算选购结束选购结束?在线支付在线支付? YN开始开始结束结束N Y(a) 订单生成订单生成图图6.1 6.1 网上书店的网上书店的 主要业务主要业务流程流程 N职员登录职员登录生成配送单生成配送单订单审核订单审核生成发票生成发票开始开始Y结束结束正确正确?N退回订单退回订单(b) 订单受理订单受理有订单有订单? Y有库存有库存? Y通知进货通知进货 N8功能需求及数据需求分析功能需求及数据需求分析 n 注册管理注册管理l会员注册会员注册。会员会员注册时要求填写会员基本信息,包括注册时要求
7、填写会员基本信息,包括姓名、登录密码、性别、出生日期、电话、地址、邮姓名、登录密码、性别、出生日期、电话、地址、邮政编码、电子邮箱、单位政编码、电子邮箱、单位等信息。系统检查所有信息等信息。系统检查所有信息填写正确后提示会员注册成功,并返回填写正确后提示会员注册成功,并返回会员编号会员编号。l职员注册职员注册。职员职员注册时要填写基本信息,包括注册时要填写基本信息,包括姓名、姓名、登录密码、性别、出生日期、部门、薪水、住址、电登录密码、性别、出生日期、部门、薪水、住址、电话、电子邮箱话、电子邮箱等信息。系统检查所有信息填写正确后等信息。系统检查所有信息填写正确后提示注册成功,并返回提示注册成功
8、,并返回职员编号职员编号。9功能需求及数据需求分析功能需求及数据需求分析 n 图书管理图书管理l图书信息维护图书信息维护。图书图书:ISBNISBN、书名、作者、版次、类别、书名、作者、版次、类别、出版社、出版年份、库存数量、定价、图书折扣、内容简出版社、出版年份、库存数量、定价、图书折扣、内容简介、目录介、目录等信息。等信息。l图书采购图书采购。当库存数量不足或出版社出版新书,书店职员。当库存数量不足或出版社出版新书,书店职员负责图书采购。负责图书采购。采购单采购单:采购单号、出版社、采购日期、采购单号、出版社、采购日期、采购人、采购人、采购明细采购明细( (ISBNISBN、书名、采购数量
9、、单价、书名、采购数量、单价) )等。等。l图书入库图书入库。当订购的图书到货后办理图书入库,并增加新。当订购的图书到货后办理图书入库,并增加新图书信息、更新图书库存数量。图书信息、更新图书库存数量。入库单入库单:入库单号、出版入库单号、出版社、入库日期、入库人、收货人、社、入库日期、入库人、收货人、入库明细入库明细( (ISBNISBN、书名、书名、入库数量入库数量) )等。等。l图书发布图书发布。书店职员负责及时在网上发布新书信息、图书。书店职员负责及时在网上发布新书信息、图书推荐信息、促销信息等,并及时更新、删除旧信息。推荐信息、促销信息等,并及时更新、删除旧信息。 10功能需求及数据需
10、求分析功能需求及数据需求分析n 在线订书在线订书l 会员登录后,选购图书放入会员登录后,选购图书放入购物车购物车中,并填写中,并填写购买数量购买数量。购物。购物车中的图书可增加、删除和修改,并自动统计车中的图书可增加、删除和修改,并自动统计图书总价格图书总价格。l 选书完成后,会员填写选书完成后,会员填写配送信息配送信息、发票单位及选择支付方式。、发票单位及选择支付方式。配送信息默认为会员注册时填写的基本信息,也可重新填写。配送信息默认为会员注册时填写的基本信息,也可重新填写。l 确认所填信息后,提交生成确认所填信息后,提交生成订单订单。每张订单记录:。每张订单记录:订单号、订订单号、订购日期
11、、应收总金额、会员折扣、实收总金额、付款方式、订购日期、应收总金额、会员折扣、实收总金额、付款方式、订单状态、单状态、订单明细订单明细( (ISBNISBN、书名、订购数量、定价、应收金额、书名、订购数量、定价、应收金额、图书折扣、实收金额、配送状态图书折扣、实收金额、配送状态) )和和发票信息发票信息( (如如发票单位发票单位等等) )。l 如果选择在线支付方式,则还需进行网上结算。若余额不足,如果选择在线支付方式,则还需进行网上结算。若余额不足,则取消订单(则取消订单(本设计不作考虑本设计不作考虑)。)。11功能需求及数据需求分析功能需求及数据需求分析n 配送管理配送管理l假设一张订单所订
12、购的图书假设一张订单所订购的图书可拆分成不同的配送单发货可拆分成不同的配送单发货,但一个配送单但一个配送单不能包含不同订单的图书不能包含不同订单的图书。l会员在生成订单之后需要进一步进行会员在生成订单之后需要进一步进行配送设置配送设置,包括填写,包括填写配送信息配送信息( (收货人、送货地址、邮政编码、联系电话收货人、送货地址、邮政编码、联系电话等等) ) ,定义,定义配送明细配送明细( (ISBNISBN、书名、配送数量、书名、配送数量等等) ) 。l同时还需要选择:如果一个配送单中的所有图书不是同时同时还需要选择:如果一个配送单中的所有图书不是同时有货,有货,是否需要自动拆送是否需要自动拆
13、送。l每张每张配送单配送单要求记录:要求记录:配送单号、配送日期、是否拆送、配送单号、配送日期、是否拆送、发票编号、配送状态、发票编号、配送状态、配送信息配送信息和和配送明细配送明细。l配送状态配送状态用于记录该配送单的当前配送状态用于记录该配送单的当前配送状态:未发货未发货、已已发货发货、已送到已送到等。等。12功能需求及数据需求分析功能需求及数据需求分析n 订单管理订单管理l订单查询订单查询。订单提交后,会员可查询。订单提交后,会员可查询订单状态订单状态:未审核、未审核、退回、已审核、已部分配送、已全部配送、已处理结束退回、已审核、已部分配送、已全部配送、已处理结束。l订单更新订单更新。订
14、单未审核前,允许会员修改、取消订单。订单未审核前,允许会员修改、取消订单。l订单受理订单受理。订单生成后,职员对订单进行审核。如发现订。订单生成后,职员对订单进行审核。如发现订单及配送单信息填写不正确,则单及配送单信息填写不正确,则退回退回客户重新填写。客户重新填写。如果通过审核,则如果通过审核,则检查所订购图书是否有库存检查所订购图书是否有库存。如一个如一个配送单配送单中所购图书均库存,则生成该配送单的发票,中所购图书均库存,则生成该配送单的发票,更新库存数量,安排配送。更新库存数量,安排配送。 如一个如一个配送单配送单中的部分图书库存不足中的部分图书库存不足( (通知尽快进货通知尽快进货)
15、 ),且,且会会员员选择选择是否拆送是否拆送为为“Y”Y”,则系统自动对该,则系统自动对该配送单配送单进行进行拆分拆分配送配送( (先配送有库存的图书先配送有库存的图书) ),生成拆分的配送单及发票,更,生成拆分的配送单及发票,更新库存数量,安排配送。新库存数量,安排配送。 13功能需求及数据需求分析功能需求及数据需求分析n 出版社管理出版社管理l网上书店直接从出版社采购图书。要求保存和维护网上书店直接从出版社采购图书。要求保存和维护出出版社版社信息:信息:出版社编号、出版社名称、出版社地址、出版社编号、出版社名称、出版社地址、邮政编码、联系人、电话、传真、电子邮箱邮政编码、联系人、电话、传真
16、、电子邮箱等。等。n 配送公司管理配送公司管理l网上书店通过配送公司将图书送到会员手中。要求保网上书店通过配送公司将图书送到会员手中。要求保存和维护存和维护配送公司配送公司信息:信息:公司编号、公司名称、公司公司编号、公司名称、公司地址、邮政编码、联系人、电话、传真、电子邮箱地址、邮政编码、联系人、电话、传真、电子邮箱等等14功能需求及数据需求分析功能需求及数据需求分析n 留言管理留言管理l发布留言。发布留言。会员可在网站发表留言或评论。会员可在网站发表留言或评论。留言留言需记录:需记录:留言人、留言内容、发布时间留言人、留言内容、发布时间等。等。l回复留言。回复留言。书店职员可回复留言,并记
17、录:书店职员可回复留言,并记录:回复人、回复回复人、回复时间、回复内容时间、回复内容等。等。n 用户管理用户管理l会员升级。会员升级。系统可对会员进行分级,即当会员订书总金额系统可对会员进行分级,即当会员订书总金额到达一定数额后成为不同级别的用户,以享受相应的优惠到达一定数额后成为不同级别的用户,以享受相应的优惠折扣。折扣。l会员信息维护。会员信息维护。系统管理员及会员可修改、删除和更新会系统管理员及会员可修改、删除和更新会员信息。员信息。l职员信息维护。职员信息维护。系统管理员及职员可修改、删除和更新职系统管理员及职员可修改、删除和更新职员信息。员信息。15业务规则分析业务规则分析 n 业务
18、规则分析业务规则分析主要是主要是分析分析数据之间的约束数据之间的约束以及以及数据库约束数据库约束。n 网上书店业务规则如下:网上书店业务规则如下:l 游客均可搜索图书信息,但游客均可搜索图书信息,但只有只有注册会员注册会员才能提交订单才能提交订单;只只有有注册职员注册职员才能维护图书信息及受理订单才能维护图书信息及受理订单。l 会员编号会员编号唯一标识唯一标识会员会员,会员编号会员编号由系统按时间顺序生成。由系统按时间顺序生成。l 职员编号职员编号唯一标识唯一标识职员职员,职员编号职员编号由系统按时间顺序生成。由系统按时间顺序生成。l 会员等级分类:会员等级分类:购书总额购书总额达到达到 10
19、00010000元,元,三级三级VIPVIP会员会员,享受售价,享受售价 9.5 9.5 折优惠折优惠;购书总额购书总额达到达到 2000020000元,元,二级二级VIPVIP会员会员,享受售价,享受售价 9 9 折优惠;折优惠;购书总额购书总额达到达到 3000030000元,元,一级一级VIPVIP客户客户,享受售价,享受售价 8.5 8.5 折优惠折优惠。16业务规则分析业务规则分析l ISBNISBN唯一标识一种唯一标识一种图书图书。系统记录每种图书的当前。系统记录每种图书的当前库存数量库存数量,当某图书的当某图书的库存数量库存数量低于某一阈值时,则通知该图书补货。低于某一阈值时,则
20、通知该图书补货。l 选购的图书选购的图书必须放入必须放入购物车购物车后才能生成订单后才能生成订单。l 订单受理前允许会员删除所选图书,修改购书数量、配送信息订单受理前允许会员删除所选图书,修改购书数量、配送信息和发票单位,甚至取消订单。但是和发票单位,甚至取消订单。但是订单审核通过后,则不允许订单审核通过后,则不允许再做任何修改。再做任何修改。l 订单编号订单编号唯一标识唯一标识订单订单。订单编号订单编号由系统按时间顺序生成。由系统按时间顺序生成。l 同一订单可订购多种图书,且同一订单可订购多种图书,且订购数量订购数量可以不同可以不同。因此,一张。因此,一张订单订单的的订单明细订单明细包括:包
21、括:ISBNISBN、图书名称、订购数量、定价、应、图书名称、订购数量、定价、应收金额、图书折扣、实收金额、配送状态收金额、图书折扣、实收金额、配送状态。l 每种图书的每种图书的实收金额实收金额= =订购数量订购数量* *定价定价* *图书折扣图书折扣* *会员折扣会员折扣。17业务规则分析业务规则分析l 每个每个订单订单可分多个可分多个配送单配送单进行配送,进行配送,配送单配送单的的配送明细配送明细信息由信息由会员设置。会员设置。配送单编号配送单编号唯一标识唯一标识配送单配送单。每个每个订单订单的的配送单编配送单编号号由由订单编号订单编号加上系统按时间顺序生成的加上系统按时间顺序生成的配送单
22、流水号配送单流水号组成组成。l 假设一张假设一张订单订单的每一个的每一个配送单配送单对应开一张对应开一张发票发票,但一张,但一张订单订单的的所有所有发票发票的的发票单位发票单位都相同。都相同。发票发票用用发票编号发票编号唯一标识。唯一标识。 l 配送单配送单中的中的图书图书采取采取先到先发货先到先发货原则进行配送。原则进行配送。若一个若一个配送单配送单中的中的图书图书未同时有货,且未同时有货,且会员会员选择可以拆送选择可以拆送,则系统会自动则系统会自动拆拆分成不同分成不同配送单配送单发货发货;但是,一个;但是,一个配送单配送单中的某种中的某种图书图书只有库只有库存足够时才能安排配送。存足够时才
23、能安排配送。l 一个一个配送单配送单只能由一个只能由一个配送公司配送公司进行配送进行配送( (不同配送单可以由不同配送单可以由不同配送公司配送不同配送公司配送) );一个配送公司可以承接多次配送业务。;一个配送公司可以承接多次配送业务。18业务规则分析业务规则分析l 配送单配送单的的配送状态配送状态记录了该记录了该配送单配送单的当前配送情况:的当前配送情况:未发货、未发货、已发货、已送到已发货、已送到等。等。 l 订单订单中的中的订单状态订单状态记录了该记录了该订单订单的当前处理情况:的当前处理情况:未审核、退未审核、退回、已审核、已部分配送、已全部配送、已处理结束回、已审核、已部分配送、已全
24、部配送、已处理结束等。等。 l 订单明细订单明细的的配送状态配送状态记录了该记录了该图书图书的当前配送情况:的当前配送情况:未配送、未配送、已部分配送、已全部配送已部分配送、已全部配送等。等。l 当当订单订单中的某种中的某种图书图书全部送到后,则更新该全部送到后,则更新该图书图书的的配送状态配送状态为为“已全部送到已全部送到”。当。当订单订单内全部内全部图书图书的的配送状态配送状态为为“已全部送已全部送到到”时,则更新该时,则更新该订单订单的的订单状态订单状态为为“已处理结束已处理结束”。 l 一种一种图书图书由一个由一个出版社出版社出版,而一个出版,而一个出版社出版社可出版多种可出版多种图书
25、图书。 l 一个一个会员会员可发表多条可发表多条留言留言,一个,一个职员职员可回复多条可回复多条留言留言,但假设,但假设一条一条会员会员发布的发布的留言留言至多只回复一次。至多只回复一次。 19目目 录录确定联系集及确定联系集及E-RE-R图图 6.5需求描述和系统边界需求描述和系统边界 6.1需求分析需求分析 6.2确定实体集及属性确定实体集及属性 6.4检查是否满足需求检查是否满足需求 6.6逻辑数据库设计逻辑数据库设计 6.7模式求精模式求精6.8主要业务的概念建模分析主要业务的概念建模分析 6.320订单生成与订单审核订单生成与订单审核 n 订单生成订单生成涉及涉及会员会员、图书图书等
26、基本实体集,并会伴随着生等基本实体集,并会伴随着生成成订单订单和和订单明细订单明细。n 根据根据4.6.24.6.2节的分析可知,伴随着节的分析可知,伴随着“订购订购”业务而形成的业务而形成的订单订单需要单独建模为需要单独建模为依赖实体集依赖实体集,它的属性有,它的属性有订单号、订单号、订购日期、应收总金额、实收总金额、付款方式、订单订购日期、应收总金额、实收总金额、付款方式、订单状态、会员折扣、发票单位状态、会员折扣、发票单位等。等。n 订单订单实体集与实体集与图书图书实体集之间存在实体集之间存在多对多多对多的的图书订购图书订购( (即即订单明细订单明细) )联系集,联系属性有联系集,联系属
27、性有订购数量、定价、应收金订购数量、定价、应收金额、图书折扣、实收金额、配送状态额、图书折扣、实收金额、配送状态等。等。n 订单订单实体集与实体集与会员会员、职员职员实体集之间分别存在着实体集之间分别存在着多对一多对一的的订购订购、审核审核联系集。联系集。 21订单订单订单号订单号订购日期ISBN书名订购订购会员会员职员职员审核审核订购数量图书图书图书订购图书订购配送状态订单状态图图6-2 6-2 订单生成与订单审核业务的建模订单生成与订单审核业务的建模 n 订单订单:应收总金额、实收总金额应收总金额、实收总金额为为派生属性派生属性,通过,通过图书订购图书订购汇总得汇总得到;到;会员折扣会员折
28、扣也是也是派生属性派生属性,它的值取自,它的值取自会员会员实体集中该会员对应实体集中该会员对应属性;属性;发票单位发票单位属性的值默认取自属性的值默认取自会员会员的的单位属性单位属性,可修改。,可修改。 n 图书订购图书订购:应收金额、实收金额应收金额、实收金额为为派生属性派生属性,可通过,可通过订购数量、定订购数量、定价、会员折扣、图书折扣价、会员折扣、图书折扣等属性计算得到;等属性计算得到;定价、图书折扣定价、图书折扣也是也是派派生属性生属性,它们的值分别取自,它们的值分别取自图书图书实体集中该图书对应属性。实体集中该图书对应属性。 说明:为了不使说明:为了不使E-RE-R图过于复杂,并未
29、将实图过于复杂,并未将实体集、联系集的所有属性在图中画出来。体集、联系集的所有属性在图中画出来。22配送设置与图书配送配送设置与图书配送 n 伴随着伴随着配送设置配送设置会生成会生成配送单配送单和和配送明细配送明细。n 配送单配送单是依附于是依附于订单订单的,因此可将的,因此可将配送单配送单建模为建模为订单订单的的弱实弱实体集体集,属性有,属性有配送单号、收货人、送货地址、邮政编码、联配送单号、收货人、送货地址、邮政编码、联系电话、发票编号、是否拆送系电话、发票编号、是否拆送等,等,配送单号配送单号为为部分码部分码。n 一方面,一方面,订单订单实体集与实体集与配送单配送单弱实体集之间存在弱实体
30、集之间存在一对多一对多的的包包含含标识联系集。标识联系集。n 另一方面,另一方面,配送单配送单弱实体集与弱实体集与图书图书实体集之间存在实体集之间存在多对多多对多的的图书配送图书配送( (即即配送明细配送明细) )联系集,联系属性有联系集,联系属性有配送数量配送数量。n 在在会员会员设置的设置的配送单配送单基础上,由基础上,由职员职员根据库存情况进行调整根据库存情况进行调整和确认和确认,并分派给,并分派给配送公司配送公司进行进行配送配送。n 因此,在因此,在配送单配送单弱实体集与弱实体集与职员职员实体集之间存在实体集之间存在多对一多对一的的分分派派联系集;在联系集;在配送单配送单弱实体集与弱实
31、体集与配送公司配送公司实体集之间存在实体集之间存在多多对一对一的的配送配送联系集,联系属性有联系集,联系属性有配送日期、配送状态配送日期、配送状态。 23图图6-3 6-3 配送设置与图书配送业务的建模配送设置与图书配送业务的建模 订单订单ISBNISBN书名订购订购会员会员职员职员审核审核图书图书图书订购图书订购订购数量配送状态订购日期订单状态已配送数量订单号订单号职员职员配送公司配送公司配送日期分派分派配送配送配送状态配送单号配送单号收货人配送单配送单送货地址发票编号包含包含图书配送图书配送配送数量n 图书配送图书配送联系集反映的是联系集反映的是配送明细配送明细信息,即一个信息,即一个配送
32、单配送单中需要配送哪些中需要配送哪些图图书书?每一种?每一种图书图书的的配送数量配送数量是多少?是多少?n 为了为了“核对核对”一个一个订单订单所订购的所有所订购的所有图书图书是否已经配送完毕,需在是否已经配送完毕,需在图书配图书配送送联系集与联系集与图书订购图书订购联系集之间进行联系集之间进行“配送核对配送核对”,它是多对一的,它是多对一的汇总核汇总核对对。n 可在可在图书订购图书订购( (即即订单明细订单明细) )联系集中增加一个派生属性联系集中增加一个派生属性已配送数量已配送数量,它可,它可在在图书配送图书配送( (即即配送明细配送明细) )联系集中按联系集中按订单号、图书编号订单号、图
33、书编号汇总得到。汇总得到。24图图6-3 6-3 配送设置与图书配送业务的建模配送设置与图书配送业务的建模 订单订单ISBNISBN书名订购订购会员会员职员职员审核审核图书图书图书订购图书订购订购数量配送状态订购日期订单状态已配送数量订单号订单号职员职员配送公司配送公司配送日期分派分派配送配送配送状态配送单号配送单号收货人配送单配送单送货地址发票编号包含包含图书配送图书配送配送数量n 图书配送图书配送联系集反映的是联系集反映的是配送明细配送明细信息,即一个信息,即一个配送单配送单中需要配送哪些图中需要配送哪些图书?每一种书?每一种图书图书的配送数量是多少?的配送数量是多少?n 为了为了“核对核
34、对”一个一个订单订单所订购的所有所订购的所有图书图书是否已经配送完毕,需在是否已经配送完毕,需在图书配图书配送送联系集与联系集与图书订购图书订购联系集之间进行联系集之间进行“配送核对配送核对”,它是多对一的,它是多对一的汇总核汇总核对对。n 可在可在图书订购图书订购( (即即订单明细订单明细) )联系集中增加一个派生属性联系集中增加一个派生属性已配送数量已配送数量,它可,它可在在图书配送图书配送( (即即配送明细配送明细) )联系集中按联系集中按订单号、图书编号订单号、图书编号汇总得到。汇总得到。n 如果一个如果一个订单明细订单明细的的已配送数量已配送数量与与订购数量订购数量的值相同,则可将该
35、的值相同,则可将该订单明细订单明细的的配送状态配送状态置为置为“已全部配送已全部配送”。n 如果同一个如果同一个订单订单的所有的所有订单明细订单明细的的配送状态配送状态都为都为“已全部配送已全部配送”,则可将,则可将该该订单订单的的订单状态订单状态置为置为“已全部配送已全部配送”。n 如果一个如果一个订单订单的所有的所有配送单配送单的的配送状态配送状态都为都为“已送到已送到”,则可将该,则可将该订单订单的的订单状态订单状态置为置为“已处理结束已处理结束”。 25图图6-4 6-4 配送设置与图书配送业务的另一种建模方案配送设置与图书配送业务的另一种建模方案 订单订单ISBNISBN书名订购订购
36、会员会员职员职员审核审核图书图书图书订购图书订购订购数量配送状态订购日期订单状态已配送数量订单号订单号职员职员配送公司配送公司配送日期分派分派配送配送配送状态图书配送图书配送配送数量配送地址配送单配送单收货人配送单号配送单号发票编号另一种建模方案:另一种建模方案:将将配送单配送单建模为强建模为强实体集,而实体集,而图书配图书配送送建模为实体集建模为实体集配配送单送单与联系实体集与联系实体集图书订购图书订购( (即即联系联系实体集实体集) )之间的之间的多多对多对多联系集。联系集。 26图书采购与图书入库图书采购与图书入库 n 图书采购图书采购涉及涉及职员职员( (采购员采购员) )、出版社出版
37、社、图书图书等基本实体集,等基本实体集,并会伴随着生成并会伴随着生成采购单采购单和和采购明细采购明细。n 根据根据4.6.24.6.2节的分析可知,伴随着节的分析可知,伴随着“采购采购”业务而形成的业务而形成的采采购单购单需要单独建模为需要单独建模为依赖实体集依赖实体集,它的属性有,它的属性有采购单号、采采购单号、采购日期、采购总金额购日期、采购总金额等,其中等,其中采购总金额采购总金额为为派生属性派生属性,可通,可通过过图书采购图书采购( (即即采购明细采购明细) )联系集汇总得到。联系集汇总得到。n 采购单采购单实体集与实体集与图书图书实体集之间存在多对多的实体集之间存在多对多的图书采购图
38、书采购联系联系集,联系属性有集,联系属性有采购数量、采购单价、采购金额采购数量、采购单价、采购金额等,其中等,其中采采购金额购金额为为派生属性派生属性。n 采购单采购单实体集与实体集与职员职员实体集之间存在多对一的实体集之间存在多对一的采购采购联系集;联系集;采购单采购单实体集与实体集与出版社出版社实体集之间存在多对一的实体集之间存在多对一的供应供应联系集联系集27图图6-5 6-5 图书采购业务的建模图书采购业务的建模 n 图书采购图书采购联系集反映的就是联系集反映的就是采购明细采购明细,即一个,即一个采购单采购单中采购了哪些中采购了哪些图书图书?每一种每一种图书图书的的采购数量、单价采购数
39、量、单价分别是多少?显然在一个分别是多少?显然在一个采购单采购单的的采购明细采购明细中,每一种中,每一种图书图书只能出现一次只能出现一次。n 假设同一种假设同一种图书图书允许在一个允许在一个采购单采购单的的采购明细采购明细中中出现多次出现多次,即,即图书采购图书采购是是多值联系多值联系,则可以将,则可以将图书采购图书采购联系集建模为联系集建模为采购明细采购明细弱实体集弱实体集( (序号序号为为部分部分码码) ),它依赖于,它依赖于采购单采购单实体集而存在。实体集而存在。n 这样在一个这样在一个采购单采购单中可以方便地表示同一种中可以方便地表示同一种图书图书以不同价格采购的情况以不同价格采购的情
40、况。 采购单采购单图书图书图书采购图书采购采购采购职员职员出版社出版社供应供应采购单号采购单号采购日期ISBN采购数量采购单价书名采购单编采购单编号号图书编号图书编号采购时间采购时间采购数量采购数量Cg1Ts12016-4-2140Cg1Ts12016-4-216028图图6-5 6-5 图书采购业务的建模图书采购业务的建模 n 图书采购图书采购联系集反映的就是联系集反映的就是采购明细采购明细,即一个,即一个采购单采购单中采购了哪些中采购了哪些图书图书?每一种每一种图书图书的的采购数量、单价采购数量、单价分别是多少?显然在一个分别是多少?显然在一个采购单采购单的的采购明细采购明细中,每一种中,
41、每一种图书图书只能出现一次只能出现一次。n 假设同一种假设同一种图书图书允许在一个允许在一个采购单采购单的的采购明细采购明细中中出现多次出现多次,即,即图书采购图书采购是是多值联系多值联系,则可以将,则可以将图书采购图书采购联系集建模为联系集建模为采购明细采购明细弱实体集弱实体集( (序号序号为为部分部分码码) ),它依赖于,它依赖于采购单采购单实体集而存在。实体集而存在。n 这样在一个这样在一个采购单采购单中可以方便地表示同一种中可以方便地表示同一种图书图书以不同价格采购的情况以不同价格采购的情况。 采购单采购单图书图书图书采购图书采购采购采购职员职员出版社出版社供应供应采购单号采购单号采购
42、日期ISBN采购数量采购单价书名采购单采购单图书图书采购采购职员职员出版社出版社供应供应采购单号采购单号采购日期采购明细采购明细参照参照ISBN书名组成组成采购单价序号序号采购数量图图6-6 图书采购业务的改进建模图书采购业务的改进建模 29图书采购与图书入库图书采购与图书入库 n 图书采购图书采购到货后需要办理到货后需要办理图书入库图书入库手续。手续。n 入库单入库单是依附于是依附于采购单采购单的,因此将的,因此将入库单入库单建模为建模为采购单采购单的弱的弱实体集,属性有实体集,属性有入库单号、入库日期入库单号、入库日期,入库单号入库单号为为部分码部分码。n 一方面,一方面,采购单采购单实体
43、集与实体集与入库单入库单弱实体集之间存在弱实体集之间存在一对多一对多的的拥有拥有标识联系集。标识联系集。n 另一方面,另一方面,图书图书入库会涉及到入库会涉及到职员职员( (采购员和仓库保管员采购员和仓库保管员) )、图书图书等基本实体集,等基本实体集,入库单入库单弱实体集与弱实体集与图书图书实体集之间存在实体集之间存在多对多多对多的的图书入库图书入库联系集,联系属性有联系集,联系属性有入库数量入库数量。n 入库单入库单弱实体集与弱实体集与职员职员( (采购员采购员) )实体集之间存在实体集之间存在多对一多对一的的入入库库联系集;联系集;入库单入库单弱实体集与弱实体集与职员职员( (仓库保管员
44、仓库保管员) )实体集之间实体集之间存在存在多对一多对一的的验收验收联系集。联系集。 30图图6-7 6-7 图书采购与图书入库业务的建模图书采购与图书入库业务的建模 采购单采购单采购采购职员职员出版社出版社供应供应采购日期采购明细采购明细组成组成入库入库验收验收职员职员参照参照图书图书ISBNISBN书名图书入库图书入库入库数量是否入库采购单号采购单号入库日期入库单号入库单号入库单入库单拥有拥有采购单价序号序号采购数量n 一个一个采购单采购单采购的采购的图书图书可能可能分多次到货入库分多次到货入库,因此,在,因此,在图书入库图书入库联系集与联系集与采购明细采购明细弱实体集之间需要进行弱实体集
45、之间需要进行“入库核对入库核对”。n (1) (1) 一笔一笔采购明细采购明细可能可能分多次入库分多次入库;(2) (2) 虽然一笔虽然一笔图书入库图书入库只能来自于一只能来自于一个个采购单采购单的的采购明细采购明细,但由于在一个,但由于在一个采购单采购单中同一种中同一种图书图书可能在可能在采购明细采购明细中中出现多次出现多次,导致在,导致在图书入库图书入库中同一种中同一种图书图书的多个的多个采购明细采购明细可能需可能需合并入合并入库库n 因此,因此,图书入库图书入库联系集与联系集与采购明细采购明细弱实体集之间的弱实体集之间的“入库核对入库核对”是是多对多多对多的的31图图6-7 6-7 图书
46、采购与图书入库业务的建模图书采购与图书入库业务的建模 采购单采购单采购采购职员职员出版社出版社供应供应采购日期采购明细采购明细组成组成入库入库验收验收职员职员参照参照图书图书ISBNISBN书名图书入库图书入库入库数量是否入库采购单号采购单号入库日期入库单号入库单号入库单入库单拥有拥有采购单价序号序号采购数量n “入库核对入库核对”的方法:首先对的方法:首先对采购明细采购明细弱实体集按弱实体集按采购单号、图书编号采购单号、图书编号汇汇总总采购数量采购数量;然后对图书入库联系集按;然后对图书入库联系集按采购单号、图书编号采购单号、图书编号汇总汇总入库数量入库数量,如果一个,如果一个入库单入库单中
47、所有中所有图书图书的的汇总采购数量汇总采购数量都等于都等于汇总入库数量汇总入库数量,则表,则表示该示该采购单采购单已已入库完毕入库完毕。 n 可在可在采购单采购单实体集中增加一个实体集中增加一个是否入库是否入库属性。如果同一个属性。如果同一个采购单采购单中每一种中每一种图书图书都已入库,则可将都已入库,则可将采购单采购单实体集中对应实体的实体集中对应实体的是否入库是否入库置为置为“Y”Y”。 32目目 录录确定联系集及确定联系集及E-RE-R图图 6.5需求描述和系统边界需求描述和系统边界 6.1需求分析需求分析 6.2确定实体集及属性确定实体集及属性 6.4检查是否满足需求检查是否满足需求
48、6.6逻辑数据库设计逻辑数据库设计 6.7模式求精模式求精6.8主要业务的概念建模分析主要业务的概念建模分析 6.333发现实体集的步骤发现实体集的步骤n 实体集是具有相同类型及相同性质实体集是具有相同类型及相同性质( (或属性或属性) )的实的实体集合。通常,体集合。通常,一个实体对应一个一个实体对应一个事物事物,是,是名词名词。n 发现实体集的步骤可归纳为:发现实体集的步骤可归纳为:l找出需求分析中出现的具有一组属性的找出需求分析中出现的具有一组属性的“名词名词”;l分析这些分析这些“名词名词”信息是否需要存储。对于不需要存储信息是否需要存储。对于不需要存储的的“名词名词”不必建模为实体集
49、;不必建模为实体集;l分析这些分析这些“名词名词”是否依赖于其它对象存在。如果是,是否依赖于其它对象存在。如果是,可考虑建模为可考虑建模为依赖实体集依赖实体集、弱实体集弱实体集或或联系集联系集。34发现实体集发现实体集n 网上书店系统中的网上书店系统中的“名词名词”主要有:主要有:会员会员、职员职员、图书图书、出版出版社社、配送公司配送公司、订单订单、配送单配送单、采购单采购单、入库单入库单、订单明细订单明细、采购明细采购明细、入库明细入库明细、购物车购物车、留言留言和和发票发票等。等。n 显然,显然,会员会员、职员职员、图书图书、出版社出版社、配送公司配送公司等都是对应为等都是对应为有有形的
50、人、物或单位形的人、物或单位,且都具有一组属性且部分属性能唯一标识,且都具有一组属性且部分属性能唯一标识每个实体,而且它们需要存储到数据库中供查询用,因此可直每个实体,而且它们需要存储到数据库中供查询用,因此可直接建模为实体集。接建模为实体集。 n 购物车购物车用于临时存放购书信息,包括选购图书的用于临时存放购书信息,包括选购图书的ISBNISBN、图书名、图书名称、订购数量、订购价格称、订购数量、订购价格。订单成功提交后,购物车中的信息。订单成功提交后,购物车中的信息将全部存放到订单中去。将全部存放到订单中去。故故购物车购物车不必建模为一个实体集。不必建模为一个实体集。35发现实体集发现实体