1第一章销售管理数据库的规划技能目标了解设计数据库的基本步骤;学会设计数据库的基本方法;按照用户的需求设计销售管理数据库。知识目标掌握数据库的基本概念;了解数据库设计的基本步骤;掌握数据库的需求分析、概念结构设计、逻辑结构设计和物理结构设计等;掌握利用E-R图描述数据库的概念模型;掌握利用E-R图转化为关系模型;掌握数据库规范化理论。1.1数据库概述1.1.1基本概念1、数据描述事物的符号称为数据。数据有多种表现形式,可以是数字,也可以是文字、图形、图像、声音、语言等。2、信息通俗地说,信息是就指对结果进行加工处理,并对人类社会实践和生产活动产生决策影响的数据。信息就是数据中所包含的意义。未经过加工的数据只是一种原始材料,它的价值在于记录了客观世界的事实。3、数据库数据库是指长期存储在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。4、数据库系统数据库系统(DBS)是有组织地、动态地存储大量关联数据、方便多用户访问的计算机硬件、软件和数据资源组成的系统。一般由计算机硬件、操作系统、数据库、数据库管理系统以及开发工具和各种人员(如数据库管理员、用户等)构成。5、数据库管理系统数据库管理系统(DBMS)是数据库系统的核心软件之一,是位于用户与操作系统之间的一层数据管理软件。它的主要功能包括以下几个方面:数据定义功能、数据操作功能、数据库的运行管理、数据库的建立和维护功能。目前较为流行的数据库管理系统有VisualFoxPro、Access、SQLServer、Oracle、DB2和Sybase等。1.1.2数据描述如果要把现实世界的事物以数据的形式存储到计算机中,要经历现实世界、信息世界和机器世界三个阶段,具体的过程如图1-1所示。首先将现实世界中客观存在的事物和它们所具有的特征抽象为信息世界的实体和属性;然后抽象化到信息世界,利用实体-联系方法(E-R方法)反映事物与机器世界之间的相互关系;最后用实体-联系方法表达的概念模型2转化为机器世界的数据模型。图1-1数据处理3个阶段1.2数据库设计的步骤设计数据库的目的就是确定一个合适的数据模型,该模型应当满足以下3个要求:(1)符合用户的需求。即能包含用户所需要处理的所有数据,又支持用户提出的所有处理功能的实现。(2)能被现有的某个数据库管理系统所接受,如SQLServer、Oracle和DB2等。(3)具有较高的质量。如易于理解、便于维护、结构合理、使用方便、效率较高等。设计数据库可以分为需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施和数据库运行、维护6个阶段,如图1-2所示。图1-2数据库设计的步骤31、需求分析在此阶段,数据库设计人员调查用户的各种需求,包括数据库应用部分。比如,公司详细运作情况;然后对各种数据和信息进行分析,与用户进行深入沟通,确定用户的需求;并把需求转化成用户和数据库设计人员都可接受的文档;最终与用户沟通对系统的信息需求和处理需求达成一致的意见。2、概念结构设计概念结构设计阶段是在需求分析的基础上,依照需求分析中确定的信息需求,对用户信息加以分类、聚集和概括,建立一个与具体计算机和数据库管理系统独立的概念模型。通常的方法为E-R方法(即采用E-R图来描述概念模型)。3、逻辑结构设计逻辑结构设计阶段的任务就是在概念结构设计结果E-R图的基础上,导出某个数据库管理系统所支持的数据模型。从概念模型到逻辑结构的转化就是将E-R图转换为关系模型;然后从功能和性能上,对关系模式进行评价,如果达不到用户要求,还要反复修正或重新设计。4、物理结构设计数据库在物理结构上的存储结构和存取方法的设计称为物理结构设计。物理结构设计的内容就是根据数据库管理系统的特点和处理的需要,为逻辑模型选取一个最适合应用环境的物理结构,包括存储结构和存取方法。5、数据库实施数据库的实施阶段是建立数据库的实质性阶段。在此阶段,设计人员运用数据库管理系统提供的数据语言及其宿主语言,根据逻辑结构设计和物理结构设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。6、数据库运行数据库系统设计完成并试运行成功后,就可以正式投入运行了。数据库的运行与维护阶段是整个数据库生存期中最长的阶段。在该阶段,设计人员需要收集和记录数据库运行的相关情况,并要根据系统运行中产生的问题及用户的新需求不断完善系统功能和提高系统的性能,以延长数据库使用时间。一个性能优良的数据库是不可能一次性完成的,需要经过多次的、反复的设计。在进行数据库设计时,每完成一个阶段,都要进行设计分析,评价一些重要的设计指标,产生文档组织评审,与用户进行交流。如果设计的数据库不符合要求,则要进行修改,重复多次,以实现最后设计出的数据库能够交精确地模拟现实世界,满足用户的需求。1.3销售管理数据库的需求分析需求分析结果的准确性将直接影响到后期各个阶段设计。需求分析是整个数据库设计过程的起点和基础,也是最困难、最耗费时间的阶段。1.3.1需求分析的任务需求分析的任务就是对现实世界要处理的对象(组织、部门、企业等)详细调查和分析;收集支持系统目标的基础数据和处理方法;明确用户对数据库的具体要求。在此基础上确定数据库系统的功能。具体的步骤如下。(1)调查组织机构情况4了解该组织的部门组成情况、各部门的职责等,为分析信息流程作准备。(2)调查各部门的业务活动情况。包括各部门要输入和使用什么数据;如何加工处理这些数据;输出什么信息;输出到什么部门;输出结果的格式等。这一步骤是调查的重点。(3)明确对新系统的要求在熟悉业务活动的基础上,协助用户明确对新系统的各种要求。包括信息要求、处理要求、完全性要求与完整性要求。(4)初步的分析调查的结果对前面调查的结果进行初步的分析。包括确定新系统的边界;确定哪些功能有计算机完成或将来准备让计算机完成;确定哪些活动由人工完成。(5)建立相关的文档用户单位的组织机构图、业务关系图、数据流图、数据字典。1.3.2常用的需求调查方法在调查过程中,根据不同的问题和条件,可采用不同的调查方法,常用的调查方法有以下几种。(1)跟班作业。是指数据库设计人员亲自参加业务工作,深入了解业务活动情况,比较准确地理解用户的需求。(2)开调查会。通过与用户座谈的方式来了解业务活动情况及用户需求。(3)请专人介绍。可请业务熟练的专家或用户介绍业务专业知识和业务活动情况。(4)询问。对某些调查中的问题,可以找专人询问。(5)设计调查表请用户填写。如果调查表设计得合理,则有效,也易于为用户接受。(6)查阅记录。查阅与原系统相关的数据记录,包括账本、档案或文献等。1.3.3编写需求分析说明书需求分析说明书是在需求分析活动后建立的文档资料,通常又称为需求规范说明书,它是对开发项目需求分析的全面的描述,是对需求分析阶段的一个总结。需求分析说明书应包括以下内容。(1)系统概况、系统的目标、范围、背景、历史和现状。(2)系统的原理和技术,对原系统的改善。(3)系统总体结构与子系统结构说明。(4)系统功能说明。(5)数据处理概要、工程体制和操作上的可行性。(6)系统方案及技术、经济、功能和操作上的可行性。通常需求分析说明书还应包括下列附件:分析过程中得到的数据流图、数据字典、功能模块图及系统的硬件、软件支持环境的选择和规格要求。1.3.4销售管理数据库的需求分析【例1.1】为某公司设计一个商品销售管理信息系统的需求分析。该公司主要从事商品零售贸易业务。即从供应商手中采购商品,并把这些商品销售到需要的客户手里,以商品服务费赚取利润,即商品。商品销售管理信息系统是一个用来管理商品销售信息的数据库系统。本系统将利用现代化的计算机技术结合传统的销售管理工作,按照公司方提供的业务流程设计完成。销售管5理信息系统的需求分析的主要内容如下。(1)公司的业务流图各供应商为该公司提供商品;客户根据该公司提供的商品表订购商品。公司向供应商采购商品。主要业务流程如图1-1所示,其中实线表示物流,虚线表示信息流。图1-3销售的业务流图(2)用户对该系统的功能需求对给定代号或姓名员工的基本情况进行查询,包括员工的姓名、性别、出生年月、聘任日期、所在部门、部门主管和其接受订单的情况。对给定代号或名称的商品基本情况进行查询,包括商品的名称、价格、库存量和已销售量,并形成统计表。管理给定代号或名称的商品信息,包括对增加、删除和修改商品信息对给定代号或名称的客户基本情况进行查询,包括客户名称、地址、联系人姓名、联系电话、E-Mail;订购商品信息包括商品名称、商品的价格、订购数量,并形成统计表对给定代号或名称的供应商的基本情况进行查询,包括供应商名称、地址、联系人姓名、联系电话、E-Mail;包括提供的商品信息包括商品名称、商品的价格、订购数量,并形成统计表管理客户和供应商信息,包括可以查询、浏览、增加、删除、修改客户信息管理客户订单信息,包括客户可以增加、删除、修改销售订单管理销售商品订单,包括查询、浏览、增加、删除、修改销售订单管理采购商品订单,包括查询、浏览、增加、删除、修改采购订单(3)数据需求本系统需要处理的主要信息:销售订单=商品信息+客户信息+订购时间+订购数量采购订单=商品信息+供应商信息+订购时间+订购数量供应商信息=公司名称+地址+联系人姓名+联系电话+E-Mail商品信息=名称+单价+库存量+已销售量客户信息=客户名称+联系人姓名+联系电话+公司地址+E-Mail员工信息=姓名+性别+出生年月+聘任时间+工资+奖金+工作部门1.4销售管理数据库的概念结构设计1.4.1概念结构设计的任务概念结构设计的任务就在需求分析的结果上,抽象化后成为概念模型。概念模型通常利用E-R图来表达。61.4.2实体与联系1、实体现实世界中的客观存在的并可区分识别的事物称为实体。实体可以指人和物,如员工、商品、仓库等;它可以指能触及的客观对象;可以指抽象的事件;还可以指事物与事物之间的联系,如客户订货、商品采购等。在销售管理系统中,每种商品都是一个实体。每种商品实体的取值就是具体的实体值,同型实体的集合称为实体集。2、属性每个实体具有一定的特征,才能来区分一个个实体。例如,员工的个人特征:姓名、性别、出生年月等。实体的特征称为属性。一个实体可以有若干个属性来描述。每个属性都有特定的取值范围,即值域,值域的类型可以是整数型、实数型、字符型等。例如性别属性的值域为(男,女),部门名称的值域为(销售部,采购部,人事部)等。由此可见,属性是变量。属性值是变量所取的值,而值域是变量的变化范围。【例1.2】使用哪些属性来描述公司的员工特征?公司员工使用员工号、姓名、性别、出生年月、雇佣日期、工资等来属性来描述。3、实体间的联系现实世界的各事物之间是有联系的,这些联系在信息世界中反映为实体内部的联系和实体之间的联系。实体内部的联系主要表现在组成实体的属性之间的联系。比如,一个公司有多个部门,一个部门有多位员工;一个公司可以销售多种商品。实体之间的联系主要表现在不同实体集之间的联系,实体间的联系是指一个实体集中可能出现的每一个实体与另一实体集中多少个具体存在联系。两个实体之间的联系有三种,分别是一对一联系、一对多联系、多对多联系。(1)一对一联系(1:1)如果对于实体集A中的每一个实体,在实体集B中至多有一个实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系,记为1:1。例如,一个部门只有一个主管,一个主管也只能任职于一个部门,则部门与主管之间的联系即为一对一联系。(2)一对多联系(1:m)如果对于实体集A中的每一个实体,实体集B中有m个实体(m0)与之联系;反过来,对于实体集B中的每一个实体,实体集A中却至多有一个实体与之联系,则称实体集A与实体集B具有一对多联系,记为1:m。例如,一个部门可以有多个员工,但一个员工只能属于一个部门,所以部门与员工之间是一对多的联系。(3)多对多联系(m:n)对于实体集A中的每一个实体,实体