阶段。索引、视图、触发器和存储过程都在数据库服务器上运行,所以划分到 数据库物理设计之中。 2.4.1数据库需求分析
需求分析都是从业务流程开始,这是因为:用户只能从业务流程上提出要
求,而将功能、性能和接口置于业务流程之中。软件开发的目标也是为了满足 用户的业务流程需求,并在流程中体现出功能、性能和接口需求。数据库设计
的需求分析也是从业务流程开始的。在需求分析时,“一定要满足用户需要的功
能和性能,尽量回避用户想要的功能和性能”。因为需要是必须的,想要是无止 境的,常常会使问题扩大化,使数据库越来越大,使项目长期不能收尾。 用户的需要时从原始单据的录入、统计、查询、报表的输出开始的,中间
可能有数据处理、传输和转换问题,这些需要都应满足。数据库需求分析的步 骤是:收集系统所有的原始单据(信息源产生的数据)和统计报表,弄清楚两 者之间的关系,写明输出数据项中的数据来源和算法。若原始单据覆盖了所有 需要的业务内容,并且能满足所有统计报表的输出数据要求,则需求分析完 毕。反之继续分析。
图书销售系统的数据库设计过程中需求分析要从图书采购单、书店供货 单、客户购货单、客户退货单、单日销售款单据等数据源入手,分析相关报 表、各种业务查询之间的数据处理关系。 2.4.2数据库概念设计
数据库概念设计是指设计出数据库的概念数据模型(即E.R图)和相应的 数据字典(DD),如实体字典、属性字典、关系字典。数据库概念设计与具体 的数据库管理系统和网络系统无关,相当于数据库的逻辑设计。在图书销售系
7
.Net环境下图书销售系统的设计与开发
统的数据库概念设计中,采用数据库设计工具Power Designer给出系统数据库 的概念数据模型。
2.4.3数据库物理设计
数据库物理设计是指设计出数据库的物理数据模型,即数据库服务器物理
空间上的表、字段、索引、表空间、视图、储存过程、触发器,以及相应的数 据字典。数据库物理设计与具体数据库管理系统和网络系统有关。 数据库物理设计的方法如下:
·确定关系数据库管理系统平台,即选定具体的RDBMS。
·利用数据库提供的命令和语句,建立表、索引、触发器、存储过程、视图
在盘 号乎o
·列出表与功能模块之间的关系矩阵,便于详细设计。
在图书销售系统的数据库物理设计中,采用数据库设计工具Power Designer给出了系统数据库的物理数据模型。 2.4.4数据库设计步骤
综合数据库设计的三个主要内容需求分析、概念设计和物理设计,可以给 出数据库设计的步骤,如下表2.1所示:
表2-1数据库设计的步骤
2.5数据库设计的理论和方法
l、原始单据与实体之间的关系
数据库概念数据模型的建立依靠实体关系,也就是给出系统的E-R图。原
始单据与实体之间关系是一对一、一对多、多对多的关系。在一般情况下,它 们是一对一的关系,即一张原始单据对应且只对应一个实体。在特殊情况下, 它们可能是一对多或多对一的关系,即一张原始单据对应多个实体,或多张原
始单据对应一个实体,这里的实体可以理解为基本表。 2、主键和外键
一个实体不能既无主键(PK),又无外键(FK)。在E.R图中,处于叶子
部位的实体可以定义为主键,也可以不定义主键,但必须要有外键。主键和外 键配对表示实体之间的连接:主键表示主表,外键表示主表与从表之间的连 接。
3、范式理论
在概念数据模型设计时遵守第三范式,实现实体、属性、主键的原子化。
数据库设计的规范化理论的实质就是引导并帮助设计人员实现“实体、属性、主 键的原子化”。没有冗余的数据库设计可以做到,但是,没有冗余的数据库设计 未必是最好的数据库,有时为了提高运行效率,就必须降低范式标准,适当保 留冗余数据,这是用空间换时间的做法。在概念数据模型设计时遵守第三范 式,降低范式的标准的工作放到物理数据模型设计时考虑。降低范式就是增加
字段、允许冗余。
4、数据库设计的两大窍门【ll】
窍门之一:如果存在两个实体或者多个实体之间的关系非常复杂,存在多
对多的关系。为了方便数据库概念数据模型设计,必须消除这种关系。消除办 法为在两者之间增加第三个实体,把原来一个多对多的关系变为两个一对多的 关系,另外再把原来两个实体的共同属性分配到第三个实体中去,还要将原来
两个实体的主键当做第三个实体的外键。 窍门之二:“以不变应万变”的设计技巧建立稳定的数据模型,这个技巧是 “列变行”.所谓“列变行”,就是将第一个表中的某些列变为第二个表中的某些 行,这样就把原来设计不科学的一个表变为设计很科学的两个表。一般情况下 应用在当一个表中的列数较多时,而且多到不可能控制在一个固定的范围内时,才考虑运用此技巧,将原来一个表分解为两个表,其中一个为主表,另一
个为从表,通过主键与外键,两表进行连接,共同完成相关的操作。
5、西瓜理论和西瓜方法
所谓西瓜理论,就是在数据库分析时,如果将属性比作芝麻,将主要实体
比做大西瓜,将次要实体比做小西瓜,那么芝麻必须围绕西瓜转,小西瓜必须 围绕大西瓜转。
所谓西瓜方法,就是在数据库设计时,如果将属性比作芝麻,将主要实体
比做大西瓜,将次要实体比做小西瓜,那么在用CASE工具设计E.R图时,应
先画出大西瓜,后画出小西瓜,用西瓜包住芝麻,用大西瓜统帅小西瓜。
“西瓜理论和西瓜方法”除了继承“实体主导型方法”的实体统帅属性的思想
外,还进一步提出:
·在数据库需求分析和设计时,一方面要以实体去统帅属性,另一方面要以
主要实体去统帅次要实体。
·不但要使属性围绕实体转,而且要使次要实体围绕主要实体转。
:在任何信息系统的全局E.R图中,其主要实体的数目都是有限的,数据库 分析与设计的任务就是善于发现、捕获次要实体,并用主要实体去组织、规
划、设计全局E.R图。 6、完整性约束
实体完整性:每个实体必须有唯一性标志,用于区分不同的实体,这个唯 一性标志是用实体主键来实现。
参照完整性:就是主表到从表的方向是参照关系,由从表到主表的方向是 依赖关系。这样的参照和依赖关系通过主键(PK)、外键(PK)和触发器来加 以实现。
用户定义完整性:是用户单位规定的一些业务规则,这些业务规则有时用 存储过程实现,有时用触发器来实现,有时用定义域(对字段的取值范围进行 定义)的完整性来实现。
在图书销售系统的数据库设计过程中选择性的采用了以上方法,完善了数
据库的概念数据模型、优化了表结构、提高了数据库系统的运行效率。第3章图书销售系
统需求分析
图书销售是书店日常经营管理中十分重要的一个组成部分,传统的手工管
理方式呈现出越来越多的弊端。在手工管理模式下,统计、汇总处理时的工作 量极其繁重,处理效率非常低,书店经营者也无法及时了解企业资金占用的实 际状况。通过图书销售系统,企业可以直观分析书店售书情况,作出更好的决
策。
3.1需求分析
需求分析是整个软件生命周期的关键阶段,通过它可以了解系统的业务流
程和数据流程,达到与客户共同确定业务模型、功能模型、性能模型、接口模 型的目标。通过实际调查,图书销售系统具有以下功能: 口要有良好的人机界面。
口支持多人操作,要求有较好的权限分配功能。 口
在进货、退货时存在一对多的关系,要求支持多行录入功能。 对于每种商品要求编号惟一,编号需要自动生成。
口方便的数据查询,支持多条件查询。 口
口在相应的权限下,可方便地删除数据。
口支持账目的详细内容浏览。
口分析商品进货、商品销售情况。
数据计算自动完成,尽量减少人工干预。
口系统支持良好的数据备份操作,有效保护数据,以减少企业损失。 3.2系统结构设计
在图书销售系统的开发中,采用基于C/S架构的开发方式,实现的系统具 有界面美观、操作简单、开发系统容易升级、系统开发周期短、成本低等优 点。在项目的研发中,从体系结构上将本系统设计为4层结构【12l。
口
图3-l系统的体系结构
(1)数据存储层:该层表现为数据库服务器。在本项目中采用SQL
Server。在数据库中存储本项目的业务数据和管理数据。另外,为了提高系统的 性能、效率和安全,本项目在对系统进行分析时,着重分析对数据表的常用操 作;在数据库中创建大量的存储过程。在系统中不允许应用程序直接对数据表 进行操作,而是通过存储过程完成对数据表的访问。这样一方面能提高系统的
性能和效率,另一方面能确保数据的安全。
(2)数据存取层:该层通过ADO.Net对数据存储层中的数据进行操作。
在外部形式上表现为一些类。在这些类中对ADO.Net的数据访问进行封装。主 要是对数据存储层中的存储过程进行调用。
(3)业务逻辑层。该层主要由一些实现业务逻辑的业务类来构成。在实现 上,业务逻辑类完成对数据存取层中数据存取类的调用和封装。 (4)表示层。该层主要是C/S架构的Windows应用程序,该层通过对业 务逻辑层中的业务类进行调用,从而实现相应的功能。 3.3项目规划
图书销售系统的设计与开发是一个典型的数据库应用程序,由登录模块、
主界面、采购入库和销售管理模块、库存管理模块、实用工具模块、信息发送 模块、测试影碟模块、系统设置模块、帮助模块等组成。特规划功能模块如
下:
口采购入库模块
采购入库模块主要管理书店图书进货信息,支持多行录入以及采购查询功
能。
口销售管理模块销售管理模块主要管理书店图书的销售及退货信息,支持多行录入以及销 售信息查询,而且通过分析报表可以清晰看到各操作员的销售业绩。 口库存管理模块
库存管理模块主要实现库存货品浏览、今日盘点、库存查询等功能。 口实用工具模块
实用工具模块主要实现切换操作员,更改用户密码,备份数据库,更改用 户信息等功能。
口信息发送模块
信息发送模块主要实现将某日的销售状况发送到数据库中,以便今后的汇
总。
口测试影碟模块
测试影碟模块主要实现对影碟的性能进行测试等功能。 口系统设置模块
系统设置模块主要实现系统基本数据的录入,相关基本数据为:供货商信
息管理、客户信息管理、用户信息管理。
口帮助模块
帮助模块主要实现对本书店的介绍以及退出功能。 3.4系统业务模型
3.4.1系统总体业务流程图
图书销售系统的业务流程图给出了系统的业务操作的流水步骤,分别为系
统操作员登陆、信息核对、权限分配、执行相关子操作业务等。图书销售系统 的业务流程图如图3.2所示。