第02章数据基本理论 联系客服

发布时间 : 星期一 文章第02章数据基本理论更新完毕开始阅读ed274f9c59eef8c75fbfb3c1

(2)售书业务。销售人员根据读者所购图书填写售书单。同时,修改相应图书库存数据。

如图2.7所示,是某书店售书单小票的样式。售书单的前面是“销售单号、日期”数据,中间是本单的售书明细,后面是“应收金额、业务员”等数据。

本项业务涉及和产生的数据单据有:售书单(包括售书明细),以及书库账本。

图2.7 售书单样式

(3)图书查询服务业务。根据读者需要,提供本书店特定的图书及库存信息。 本项业务涉及的主要数据是书库账本。

(4)综合管理业务。包括进书、销售、库存数据的查询、汇总和报表输出等。 本项业务涉及所有的进书数据、销售数据和库存数据等。

3.系统数据分析

上面的分析将系统业务归纳为4项。在业务分析的基础上,应该画出系统的数据流图。在此基础上就可以建立系统的数据字典。所谓数据流图和数据字典是需求分析所使用的工具,本书不讨论数据流图和数据字典的完整概念和应用,仅对最后建立数据库所需要的数据进行分析说明。

在上述4项业务中涉及到的业务数据包括:进书数据、库存数据、销售数据。在这些数据中包含有图书数据、员工数据等,而图书数据与出版社有关,员工与部门有关。

这样,将所有数据进行归类分析,书店销售管理信息系统要处理的数据应该包括: 部门数据(组成:部门编号、部门名、办公电话);

员工数据(组成:工号、姓名、性别、生日、职务、所属部门、薪金);

出版社数据(组成:出版社编号、出版社名称、地址、联系电话、联系人);

基本图书数据(组成:图书编号、ISBN、书名、作者、出版社、版次、出版日期、定价、图书类别);

售书单及明细(组成:售书单号、日期、{售书明细}、金额、业务员); 书库账本(组成:图书编号、库存数量、平均进价折扣、备注)。

这些需要处理的数据对象,每种对象由括号内的属性来描述。这些属性有的是基本数据项,有的是数据项集合(由“{、}”括起来),数据项集合要做进一步的说明。

例如,{售书明细}由“序号、图书编号、售价、折扣、数量、金额”等属性组成。

38 38

当所有数据对象都归纳完毕,就可以编制数据字典了。在数据字典中,要对所有这些数据项、数据项集合等的命名、取值方式和范围、作用等进行明确而无异义说明。

4.处理功能分析

(1)进书功能。当进书业务发生时,将所进图书存入书库,然后录入进书数据,并根据进书单修改库存数据。新进的图书可能是以前有库存的,也可能是以前库存没有的。

对于以前库存没有的图书,需添加新图书的库存记录。对于已有图书,则修改库存的数量。

(2)售书功能。有图书销售业务发生,要打印销售单,同时,修改图书库存数据。 (3)图书查询服务功能。为读者提供查询平台。

(4)综合管理功能。管理人员需要定期或不定期汇总统计或查询进书数据、销售数据、库存数据,并按照管理要求制作业务报表。

上述内容是对需求分析报告及数据字典主要内容的概述。数据字典是数据库设计最重要的成果和基础。只有数据字典编制的正确,才能保证数据库设计符合用户要求。 进书业务与售书业务的数据特征很相似,为简化设计,以下的设计省略进书管理部分。读者可根据售书管理的分析自行设计和添加。

(说明:进销存是复杂的企业业务。为突出重点,便于教学,这里进行了大量简化,略去许多相关业务和细节分析,但核心的数据处理功能基本上得到完整体现。本书主要目的是介绍数据模型设计。若读者需要更专业和全面的需求分析文档,可参阅其他资料。)

2.5.2 概念设计与逻辑设计

1.概念模型设计

在完成需求分析基础上,下一步进行概念模型设计。 【例2-14】分析并设计图书销售管理数据库的ER图。 (1)首先识别初始实体,确定实体的属性,标明实体码。

实体是现实世界中独立的、确定的对象。本系统中可以确定的实体类别有:部门、员工、出版社、图书,以及书库。

部门实体的属性:部门编号、部门名称、办公电话。

员工实体的属性:工号、姓名、性别、生日。

出版社实体属性:出版社编号、名称、地址、联系电话、联系人。

图书实体属性:图书编号、书名、作者。

书库的属性应该包括“编号、地点”等。这里假定只有一个书库,这样书库的属性可以不考虑。

(2)确定初始的实体间联系及其属性。

部门与员工发生聘用联系。这里规定一个员工只能在一个部门任职,因此部门与员工是1:n联系。当联系发生时,产生职务、薪金属性。

39

39

出版社与图书发生“出版”联系。一本图书只能在一家出版社出版,这是1:n联系。当联系发生时,产生ISBN、版次、出版时间、定价、图书类别等属性。

图书与书库发生“保存”联系。如果有多个书库,就要区分某种书是保存在那个编号的书库中。这里假定只有一个书库,所以所有的图书都保存在一个地点。书库与图书是1:n的联系。“保存”联系产生“单价、数量、备注”等属性。

员工和图书发生售出联系。售书单是联系的属性。(省略购进联系的分析。)

(3)将以上的分析用初始ER图表示。 初始实体及属性如图2.8所示。

图2.8 图书进销系统的实体及属性图

图2.9所示为是“聘用”联系图,图2.10所示为“出版”联系和“保存”联系图。

图2.9 部门与员工联系图

图2.10 图书与出版社、图书与书库联系图

当员工在书店售书时,由于一个员工可以售出多种图书,一种图书可以从多名员工那里售出,因此员工与图书的“售出”联系是m:n,产生“售书单”属性。如图2.11所示是员工与图书售书联系的ER图。

图2.11 员工与图书的售出联系ER图

仔细分析“售书单”属性,可以发现,该属性与其他实体或联系的属性有很大区别。其他的属性都是不可分的、单个值的属性。而“售书单”不是一个单一的数据,它由多项

40 40

内容构成,本身是有结构的,参见图2.7。因此,该属性为“多值”、“复合”属性。 由于ER图将来要转化为关系模型,而关系中属性必须是原子的,因此必须对ER图的非原子、单值属性进行专门的处理。

对于单值的复合属性,一般将组合属性的子属性分解为独立属性即可。例如,假设“薪金”由“基本工资”和“奖金”组成,那么取消“薪金”,直接将“基本工资”和“奖金”变成独立的属性就可以了。

而对于多值属性,一般应将这个“属性”变成“实体”来对待。这样,它与原实体的关系就变成实体间的联系。

图2.11中的“售书单”是多值的组合属性,将其看做“售书单”实体,实体的属性由售书单内单值的属性组成。“售书单”实体分别与“员工”和“图书”发生联系。一名员工可负责多份售书单,而一份售书单只由一名员工负责,他们之间是1:n联系;一份售书单中可包含多种图书,一种图书可由不同的售书单售出,他们之间是m:n联系。这样,图2.11所示的ER图就设计为图2.12所示的样子。

图2.12 售书单相关联系的ER图

其中,售书单的“金额”属性是本单中所有图书销售金额的合计,即:

金额=∑(数量×定价×折扣)

这样,“金额”属性称为“导出”属性,由于可以从其他属性导出,在数据库中一般可略去。

这样,根据以上的分析,在实体属性图中增加“售书单”实体。如图2.13所示。

图2.13 进书单和售书单实体及属性图

这样,得到“图书销售”数据库的ER图。实体属性图包括图2.8和图2.13,综合图2.9、图2.10和图2.11,略去联系图中所有属性,得到如图2.14所示最终ER图。

图2.14 图书销售ER模型联系图

本示例图中省去了与“进书业务”相关的部分。

41

41