您好,欢迎访问三七文档
11第2章数据库设计数据库设计是系统开发的重要组成部分,要设计并实现信息系统中用来存储、管理数据的数据库,满足用户对信息系统的信息需求。根据本书目标,本章不介绍系统开发的完整过程,而是结合案例,依照结构化设计方法重点介绍数据库设计中数据模型的设计。2.1数据库设计概述数据库设计定义:针对给定的应用环境,设计构造面向全系统的、最优的数据库结构,建立数据库及其处理系统,使之能有效存储数据,对数据进行管理和操作,以满足用户的需求。按照结构化设计方法,数据库设计过程主要步骤包括:需求调查与分析、概念设计、逻辑设计、物理设计、实施与测试、运行维护等几个阶段。需求调查与分析阶段,从业务入手,调查现有系统情况,了解用户对新系统的信息、功能等方面的需求,完整收集系统要处理的数据,利用各种分析工具,表达系统的数据和数据存储组织、对数据的处理要求及处理过程,写出详细的需求分析报告。概念设计基于需求分析,设计面向用户、面向全系统的概念数据模型。该模型既能清晰反映系统内数据及其联系,又很方便向计算机支持的数据模型转化。常用实体联系模型。逻辑设计将概念模型转化为DBMS支持的逻辑数据模型,但逻辑模型并不依赖于特定的DBMS。目前最重要的数据模型是关系模型。物理设计是将逻辑数据模型与指定的DBMS结合,设计出能在计算机上实现的数据库模式。本书基于SQLServer2008系统进行物理设计。本章结合案例分析,重点探讨数据库设计中,采用实体联系模型描述需求分析中获得的数据对象的基本方法,以及将实体联系模型转换为关系模型及数据库模式的基本思想,这是数据库设计的核心内容。本章案例是针对专业家电企业库存、销售管理业务进行数据库模型设计,此设计能反映企业“进、销、存”业务,具有典型性。依此建立的数据库作为贯穿全书的实例基础。2.2需求调查与分析概述需求调查分析是系统开发的重要环节,其目的是通过调查分析,弄清用户对新系统的信息需求和功能需求。若需求分析不正确或不完整,则最终的系统就不能达到开发目标。222.2.1系统调查基本方法需求分析通常是和系统调查结合在一起,通过调查收集资料,然后进行分析。系统调查的基本方法有:①收集企业资料。如企业组织机构、管理模式、部门职责与业务流程、业务规划、各种报表和单证等。②个别访谈。主要针对企业特定人员,如高层主管、业务骨干等,目的是了解信息系统开发背景、目标,企业发展及对信息系统的要求等涉及系统全局性的信息。③填写调查表。对所有参与信息系统处理和未来系统的使用者,调查他们当前对信息处理和使用的方法以及对未来系统的要求等信息。④跟班参与和观察。对于一些关键环节、或无法了解清楚的处理环节和管理岗位,系统开发人员通过跟班体验、亲自参与和观察,来准确了解所需要的信息。⑤开调查会:举行由开发人员、部门经理和业务管理人员代表等参加的会议,了解当前的信息处理模式和信息需求。必须准确了解并清晰表达系统开发所需的全部信息。不可能通过一次调查就把所有需求弄清楚,需要综合使用各种方法进行多次调查。但无论采用何种方法,调查前都要认真准备,事先有调查提纲或设计调查表,调查后仔细分析调查结果,撰写调查报告。系统调查是一个和信息系统未来用户沟通的过程,涉及不同部门、不同层次的业务人员和管理者。调查者需要具备良好的与他人特别是非专业人员沟通的能力。系统开发围绕企业业务展开,而企业业务都依附于一定的组织机构,所以调查一般从组织结构开始,采用自顶向下方式进行。根据企业组织结构,明确企业的层次关系和职能分配、管理模式,以及不同部门之间信息的应用、处理和传递关系。调查结果可用“组织结构图”和“信息关联图”来描述。信息关联图描述各部门产生的各种文档、报表、凭证等,以表达部门之间信息的使用、传递和归档情况。在对企业有了全面宏观的了解后,即可展开详细的业务流程调查,业务调查是系统调查的核心,应该由上到下逐步细化。可使用“业务流程图”描述业务流程。企业组织以及业务流程都和信息有关,系统调查要获取当前系统的完整信息、信息处理流程及处理方法,主要表现在作为信息载体的各种凭证和报表等文件的产生及流动。包括:原始凭证、票据、台账、各种报表(如明细报表、汇总表等),以及文件的传递过程和方式,相关的文件如规划、预测、管理制度等。对系统调查获得的各种资料信息,可以编制详细的汇总清单,并和用户一道对信息的准确性和完整性进行审核。2.2.2需求分析概述在系统调查基础上展开分析,弄清用户需求,并用规范方法表达,形成需求分析报告。用户基本需求分为功能需求和信息需求,与信息需求相关的主要工具包括数据流图(DFD,DataFlowDiagram)和数据字典(DataDictionary)。(1)数据流图33DFD基于业务流程图,采用图形符号和文字,以数据为主线,描述数据的产生、随着业务处理过程流动和变换、数据的存储、以及数据的最终去向。DFD基本构成元素和对应图符有4种:外部实体、处理逻辑、数据存储和数据流。外部实体即数据的来源和最终去向。处理逻辑针对业务,描述数据从产生到最后到达目的地的全过程中的处理环节。数据流是在一个处理环节流向下一个处理环节时,伴随的数据集合。体现了数据的流动过程和格式或构成的变化。数据存储表达在数据流动过程中需要存储的环节,并描述要存储的数据的结构。DFD采用自顶向下、逐层分解的绘制方法。DFD是系统开发过程中最常用和最重要的工具之一。绘制出信息系统的DFD是需求分析的主要成果。本书不介绍DFD的具体内容,读者可参阅相关书籍。(2)数据字典数据字典被称为“关于数据的数据”,其作用是对信息系统开发涉及的各种类型数据元素进行定义,保证在整个系统开发和运行过程中(如在数据流图、数据库及处理程序、生成的报表等)数据元素定义的一致性和惟一性。数据字典有设计时数据字典和运行时数据字典之分。需求分析与系统设计阶段,数据字典用来统一数据流图各部分的描述和定义,同时作为数据库实现的依据。在数据库运行阶段,数据字典成为数据库的一部分,一般保存在系统数据库和系统表中,用来保障数据库的正常运行。两类数据字典内容、结构和形态不同,但有内在的逻辑关联和一致性。作为需求分析的数据字典,由对各种类型数据元素的唯一规范的定义组成。数据元素是指DFD中用到的数据流、数据存储、数据处理逻辑和外部实体等对象,以及构成这些对象的数据项和数据结构。数据字典包括的项目如下。①数据项。数据项是数据的最小单位,是信息系统中其他类型数据元素的组成部分。如员工号、姓名、商品名等都是数据项。数据项可以由字符、数值或其他符号组成。数据项的描述包括数据项名称、编号、类型、取值范围和长度等内容。②数据结构。数据结构是有关联的数据项的集合,主要用以描述数据流、数据存储等对象的逻辑构成。数据结构的描述包括数据结构的名称、编号,描述该数据结构包括的所有数据项,并指出涉及的数据流和数据存储的编号。③数据流。用来定义DFD中的数据流,包括数据流的名称、编号、来源、去向、所包含的数据结构的名称、传输的频率和流量等。④数据存储。指系统中需要保存的数据集合。字典中定义数据存储的结构和内容,包括数据存储的名称、编号、所包含的数据结构、数据记录等。⑤处理逻辑。描述DFD中数据处理逻辑的过程,包括处理逻辑的名称、编号、输入数据流、处理逻辑的算法、输出数据流等。⑥外部实体。外部实体是信息系统的数据源和数据的归宿,具有各自的数据属性,包括的内容有外部实体名称、编号、输入数据流和输出数据流等。数据字典要对信息系统中使用到的所有的数据进行定义,必须符合以下要求:唯一性,即不能有多次定义。一致性,即所有的数据元素应保持应用上的一致,无二义性。完整性,即必须包括系统中所有数据元素的定义。44规范性,即数据元素的定义应严格、规范。简单性,即表达和描述应尽量简单。生成数据字典,可由开发者手工整理、编辑生成纸质或电子数据字典,也可借助系统开发平台或CASE(ComputE-RAidedSoftwareEngineE-Ring)工具生成电子数据字典。需求分析阶段的数据字典,是由用户认可的对数据的详尽、完整和唯一的定义,并作为后续系统开发工作,包括系统设计、实现、维护和管理等工作的主要依据。2.3概念模型设计概念设计是在需求分析的基础上来设计概念数据模型。实体联系(E-R,EntityRelationship)模型是常用的设计工具。2.3.1E-R模型基本概念E-R模型主要包括实体、属性、域、实体集、实体标识符以及实体联系等概念。1.实体、属性及域实体(Entity)指现实世界中任何可相互区别的事物。人们通过描述实体的特征即属性来描述实体。在建立DBAS的概念模型时,实体就是系统关注的对象。属性(Attribute)指实体某一方面的特性。一个实体由若干个属性来描述。通过给属性取值,可以确定具体的实体。每个属性都有一个名称,称为属性名。每个属性都有一个确定的取值范围,称为域(Domain)。域是值的集合。2.实体型、实体集与实体码实体型(EntityType)描述同类实体的属性结构。包括实体名及其属性名集合。每个实体的具体取值就是实体值。型描述实体属性结构,值是每个个体的具体内容。同型实体的集合称为实体集(EntitySet)。例如,全体员工实体构成员工实体集。实体集中每个实体都可识别和区分,用来唯一确定或区分实体集中每个实体的属性或属性集称为实体码(EntityKey)。实体码具有最小性,即不能去掉其中的任何部分。实体码对于数据处理非常重要,每个实体集中都存在实体码。当有多个属性(集)可作为实体码时,选择实体码的通常原则如下。选择属性长度最短的实体码。尽量选择单个属性构成的码,而不是复合实体码。选择在数据库系统生命周期内属性值最少变化的实体码。选择在数据库系统生命周期内更可能包含唯一值的实体码。553.实体集与实体集的联系和联系集不同实体间常常发生联系,这种联系反映了事物的关联性。实体集之间的联系构成联系集。参与联系集的实体集的数目称为联系集的度。多数联系发生在两个实体集之间,度数为2,称为二元联系;发生在一个实体集内部的联系称为一元联系或递归联系,如球队集的比赛联系。同时在三个或更多个实体集之间发生的联系称为多元联系,如家电销售是同时发生在员工、商品、顾客实体集之间的多元联系。一个实体集中的一个实体通过一个联系集能同时与另一个实体集相联系的实体数目称为映射基数。共有3种类型的映射基数:一对一(1:1)、一对多(1:n)或多对一(m:1)和多对多(m:n)。设二元联系集R是实体集A和B之间的联系,其可能的映射基数定义如下。①一对一:A中的一个实体至多同B中的一个实体相联系,B中的一个实体也至多同A中的一个实体相联系。②一对多:A中的一个实体可以同B中的任意数目(≥0)的实体联系,而B中一个实体至多同A中的1个(可以为0)实体相联系。也可称B与A是多对一联系。③多对多:A中的一个实体可以同B中任意数目(≥0)的实体相联系,而B中的一个实体也可以同A中任意数目(≥0)的实体相联系。例如,机场航班管理系统中,乘客集与飞机机票集的持有联系是1:1联系;航班与乘客的乘载联系是1:m联系等。再如销售管理中,员工与商品的销售关系是m:n。当一个联系发生时,在联系集中可能会产生一些新的属性。例如销售发生时会出现销售数量、金额等属于销售的属性值。联系集也有码,一对一联系集的码可以使用参与联系集中的任何一方实体集的实体码;一对多(多对一)联系集由“多”方实体集的码组成;多对多联系集由参与联系集中所有实体集的码组成。4.参与约束如果实体集A中的每个实体都参与到联系集R上的至少一个联系中,则称实体集A全部参与联系集R。如果允许实体集A中有部分实体可不参与到联系集R的联系中,则称实体集A部分参与联系集R。5.实体联系图一般采用实体联系(E-R)图来表示实体联系模型。E-R图中用几种图符分别表示实体型及其属性、实体间的联系等。基本的图符如图2.1所示。图2.1表示实体型、属性和联系的图符画E-R图时,在矩形框内写上实体名表示实体型,在椭圆框内写上属性名表示实体或联系的
本文标题:第02章数据库设计
链接地址:https://www.777doc.com/doc-2240824 .html