1 / 15

5.3.1 将用户视图表示为一些表的集合 5.3.2 判断实体之间的关系 5.3.3 列出所有表的关键字 5.3.4 数据库图示化表示方法 ( 选择仓库管理进行设计 )

5 . 3 数据库设计举例. 5.3.1 将用户视图表示为一些表的集合 5.3.2 判断实体之间的关系 5.3.3 列出所有表的关键字 5.3.4 数据库图示化表示方法 ( 选择仓库管理进行设计 ). 5 . 3 . 1 将用户视图表示为一些表的集合. 1. 仓库保管员用户视图 仓库保管员需要随时掌握仓库的入库情况、出库情况、库存情况。仓库保管员的需求就是物资基本情况表( wzbmb )、物资入库表( wzrkb )、物资出库表( wzlkb )、物资库存表 (wzkcb) 、用料单位表( dwbmb )等的集合。

monifa
Download Presentation

5.3.1 将用户视图表示为一些表的集合 5.3.2 判断实体之间的关系 5.3.3 列出所有表的关键字 5.3.4 数据库图示化表示方法 ( 选择仓库管理进行设计 )

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 5.3 数据库设计举例 • 5.3.1 将用户视图表示为一些表的集合 • 5.3.2 判断实体之间的关系 • 5.3.3 列出所有表的关键字 • 5.3.4 数据库图示化表示方法 • (选择仓库管理进行设计)

  2. 5.3.1 将用户视图表示为一些表的集合 • 1. 仓库保管员用户视图 • 仓库保管员需要随时掌握仓库的入库情况、出库情况、库存情况。仓库保管员的需求就是物资基本情况表(wzbmb)、物资入库表(wzrkb)、物资出库表(wzlkb)、物资库存表(wzkcb)、用料单位表(dwbmb)等的集合。 • (1)判断用户视图所包含的实体,并为每个实体建立一个表。 • wzbmb( • wzrkb( • wzlkb( • wzkcb( • dwbmb(

  3. 5.3.1 将用户视图表示为一些表的集合 • (2)判断每个表的关键字。关键字可能是一个或多个属性组合,先选择关键字,其他属性在后面的步骤中再填入。主关键字是一个唯一的标识符,通过它来区分不同的对象。物资基本情况表(wzbmb)的主关键字是物资编码,物资入库表(wzrkb)的主关键字是日期与入库单编号,物资出库表(wzlkb)的主关键字是日期与出库单编号,物资库存表(wzkcb) 的主关键字是物资编码和日期,单位编码表(dwbmb)的主关键字是单位编码,现将主关键字加入对应的表中。 wzbmb(wzbm, • wzrkb(rq,rkh, • wzlkb(rq,lkh, • wzkcb (wzbm,rq, • dwbmb(dwbm,

  4. 5.3.1 将用户视图表示为一些表的集合 • (3)判断每种实体的性质。根据用户需求来确定所需实体的其他属性。 • wzbmb(wzbm,wzmc,xhgg,jldw,price)。 • wzrkb(rkh,rq,wzbm,cgl,sssl,price,ysr)。 • wzlkb(lkh,rq,dwbm,wzbm,qls,sfs,price)。 • wzkcb (wzbm,rq,price,wzkcl )。 • dwbmb(dwbm,dwmc)。

  5. 5.3.1 将用户视图表示为一些表的集合 • 2.仓库主管用户视图 • 因为每个单位有多个仓库,每个仓库有多种物资,仓库主管需要随时了解每个仓库的库存量、资金总额,每个仓库存放哪些物资。既要保证生产,又不积压物资,以保证流动资金的周转。仓库主管的需求包括:仓库情况、库存情况、各单位用料情况等。 • (1)判断用户视图所包含的实体,并为每个实体建立一个表。 • 这里有仓库情况表(wzckbmb)、库存情况表(wzkcb)、各单位用料情况表(wzhyb): • wzckbmb( • wzkcb( • wzhyb(

  6. 5.3.1 将用户视图表示为一些表的集合 • (2)判断每个表的关键字,其他属性在后面的步骤中再填入。仓库情况表(wzckbmb)的主关键字是仓库编码(wzckbm),库存情况表(wzkcb)的主关键字是物资编码和日期,各单位用料情况表(wzhyb) 的主关键字是单位编码和物资编码,现将主关键字加入对应的表中。 • wzckbmb(wzckbm, • wzkcb(wzbm,rq, • wzhyb(dwbm,wzbm,

  7. 5.3.1 将用户视图表示为一些表的集合 • (3)判断每种实体的性质。 • 仓库情况表(wzckbmb)除主关键字仓库编码(wzckbm)外,还包括仓库名称(wzckmc)。 • 库存情况表(wzkcb)除主关键字物资编码与日期(wzbm,rq)外,还应包括价格(price),库存量(wzkcl)。 • 各单位用料情况表(wzhyb) 除主关键字单位编码(dwbm)和物资编码(wzbm)外,还应包括汇总期(rq),总金额(zje)。 • wzckbmb(wzckbm,wzckmc) • wzkcb(wzbm,rq,price,wzkcl) • wzhyb(dwbm,wzbm,rq,zje)

  8. 5.3.1 将用户视图表示为一些表的集合 • 3.物资用户的用户视图 • 每个使用物资的用户需要随时了解哪个仓库存放哪些物资,库存量是多少,能否满足生产需要,即需要掌握仓库库存情况、本单位用料情况等。 • (1)判断用户视图所包含的实体,并为每个实体建立一个表。 • 这里有库存情况表(wzkcb)(该表在前面已设计)、本单位用料情况表(dwylhyb)。 • (2)判断每个表的关键字,其他属性在后面的步骤中再填入。本单位用料情况表(dwylhyb) 的主关键字是单位编码和物资编码,现将主关键字加入对应的表中。 • dwylhyb(dwbm,wzbm, • (3)判断每种实体的性质。本单位用料情况表(dwylhyb) 除主关键字单位编码(dwbm)和物资编码(wzbm)外,还应包括汇总期(rq),总金额(zje): dwylhyb(dwbm,wzbm,rq,zje)。

  9. 5.3.2 判断实体之间的关系 • (1)1:N的联系,应将“1”表的主关键字加入到“N”表中作为外部关键字。 • 在上述用户视图中,仓库情况表wzckbmb (wzckbm,wzckmc)与库存情况表wzkcb(wzbm,rq,price,wzkcl)就是1:N的联系。因为每个仓库可以存放多种物资,所以应将仓库情况表wzckbmb表中的wzckbm加入到库存情况表wzkcb表中作外部关键字。 • wzkcb(wzbm,rq,price,wzkcl,wzckbm)

  10. 5.3.2 判断实体之间的关系 • (2)M:N的联系,应建立一个新表,新表的关键字是原始表中多个关键字的组合。 • 在上述用户视图中,用料单位与物资是M:N的联系,即每个用料单位可以领用仓库中的任何一种物资,反之每一种物资可被任一单位领用。 • 物资出库表(wzlkb)就是用料单位与物资基本情况表(wzbmb)之间加入的表,如果出库单是一单多料制即一张领料单填写多种物资,物资出库表(wzlkb)的关键字就必须包括出库日期(领料日期)和物资编码。

  11. 5.3.3 列出所有表的关键字 • (1)主关键字:所有表的关键字均在前面列出。但是要根据实际需求,进行调整,如果各个仓库允许存放相同物资的话,那么库存情况表wzkcb中的(wzckbm)也必须包含在主关键字组合中。同样,wzckbm也应包含在物资入库表wzrkb和物资出库表wzlkb的主关键字组合中。 • (2)可选关键字:可选关键字可以作为主关键字的属性或者属性的组合,但它不是主关键字。可选关键字并不常见,在上述表中不存在。 • (3)第二关键字:第二关键字是指与检索数据紧密相关的属性。如果系统中有第二关键字则可在这一步明确。 • (4)外部关键字:第2章已指出,它是指一个表的属性或属性的集合,必须与另一个表某行的主关键字相匹配。

  12. 5.3.4 数据库图示化表示方法

  13. 5.3.5 汇总各用户视图的设计结果 • 1.合并表 • 检查各用户视图表,看是否有重复表或主关键字相同的表,如果有则进行合并处理。 • 例如:本单位用料情况表(dwylhyb)和各单位用料情况表(wzhyb)的主关键字相同,且dwylhyb是wzhyb的一个子集,所以可将二者合并为一个表wzhyb,取消dwylhyb表。

  14. 5.3.5 汇总各用户视图的设计结果 • 2. 检查属性命名是否冲突 • (1)wzkcb、wzlkb、wzrkb三表中的wzckbm属性名相同,代表的内容不相同。在wzckbmb表中表示具体仓库的库存量,在wzlkb表中表示出库物资由哪个仓库发出,在wzrkb表中表示物资存储在哪个仓库。三表对应才能结算出正确的库存量。 • (2)wzkcb、wzckb、wzrkb三表中的rq属性名相同,但代表的内容不相同。在wzkcb表中表示计算结存时的日期,在wzrkb表中表示物资入库的日期,在wzlkb表中表示出库时的日期。 • (3)解决方法1。wzkcb表中的wzckbm不变,将物资入库表wzrkb中的wzckbm改为rkckbm,物资出库表wzlkb中的wzckbm改为ckckbh。将wzkcb表中的rq改为jsrq, 将wzlkb表中的rq改为ckrq, 将wzrkb表中的rq改为rkrq。 • (4)解决方法2。可以不作任何处理,即省去(3)。上述属性的命名冲突只是一个假象,实际上没有冲突,因为属性的部分含义已在表名上体现。尽管wzkcb、wzlkb、wzrkb三表中的rq属性名相同, 但与它们所在表相联系, 各自代表的内容已十分清楚,但它们的类型及长度必须一致。在此提出冲突问题,目的是告诉读者,在实际设计数据库时检查冲突是必不可少的工作。

  15. 5.3.5 汇总各用户视图的设计结果 • 3.列出所有的表组成一个数据库。 • 为了将主关键字排列在一起,可以重新调整属性的顺序。 • wzbmb(wzbm ,wzmc,xhgg, jldw, price) • wzrkb(rkh,rq, wzckbm,wzbm, cgl ,sssl ,price, ysr) • wzlkb(lkh,rq,wzckbm, wzbm,dwbm,qls,sfs,price) • wzkcb(wzbm,rq,wzckbm,price,wzkcl) • dwbmb(dwbm,dwmc) • wzckbmb(wzcbm,wzckmc)

More Related