◆第四章 工程数据库设计
◇ 课前索引
内容简介:
工程数据库系统设计和传统数据库系统设计一样,包括工程数据库管理系统和工程数据库设计两方面的内容.在前面章节我们已经介绍了工程数据库管理系统的设计。本章主要讲解面向应用的工程数据库设计。工程数据库设计的主要任务是在工程数据库管理系统的支持下,按照应用的要求,为某一类或某个工程项目设计一个结构合理、使用方便、效率较高的工程数据库及其应用系统.工程数据库设计得好,可以使整个应用系统效率高、维护简单、使用容易。即使是最佳的应用程序,也无法弥补数据库设计时的某些缺陷。有关这数据库设计的研究包括工程数据库设计方法和辅助设计工具两个方面。本章就工程数据库设计中的一些问题进行讨论,阐述了工程数据库设计的基本概念和内容,结合某个工程应用领域中数据库设计,讨论分析工程数据库设计的过程、相关的方法与工具。
学习目标:
工程数据库设计在本课程中处于核心位置。一个工程数据库设计人员必须具备专业领域方面的知识(便于与客户沟通,进行需求分析),又必须具备计算机领域方面的知识(引导用户按规范化的方法表达他们的需求,并进行设计)。工程设计的对象和过程很复杂,基于手工的分析和设计方法已不能满足现代工程数据库应用的要求,需要掌握一些方法并运用一些工具才能解决这些复杂的应用。所以,本章需要学生掌握以下内容:
1、 工程数据库设计的基本步骤与内容。
2、 需求分析方法,包括IDEF0分析方法和数据流图分析方法,结合销售业务管理我们分别通过对数据和功能具体的分析掌握这两种工具。另外,课后同学们还应该看看面向对象的分析方法,课堂上不讲解这些内容。
3、 工程数据库设计方法:主要掌握实体-关系图分析方法。理解数据流图分析方法和实体-关系图设计方法之间的联系与区别。当然,也希望课后同学们看看在工程界认可的IDEF1X和新型的面向对象的数据库设计方法。
4、 数据库逻辑模式的设计:即如何的将实体-关系概念模型转化为DBMS的关系数据模型,并运用关系代数对其进行优化,设计数据库的外模式等。
5、 工程应用的功能设计,包括界面的设计、功能逻辑的设计、业务逻辑的划分、实现方法的选择等。
6、 数据库系统的实施、运行和维护。
学生要求:
1、 学生必须学完传统的数据模型(层次、网状、关系、对象)
2、 掌握SQL语言、数据库管理系统。
3、 对销售管理有基本的背景知识。
学习要求:
通过本章的学习,学生要掌握工程数据库应用系统的开发过程、相关的方法及工具。
学习安排:
总共九学时。
◇ 第一节 引言
通过前面工程应用、数据模型、数据库管理系统等章节的介绍,我们已经掌握了工程数据库系统的基本概念。但如何的运用这些概念去设计分析某个工程应用,采用什么方法与工具、遵循什么步骤,是数据库设计的问题。
数据库设计的基本任务与第三章的数据库管理系统的设计不同:它根据某个单位的信息需求、处理需求和数据库的支撑环境(包括DBMS、操作系统和硬件),设计出满足该单位应用需求的数据模式(包括外模式、逻辑(概念)模式和内模式)以及典型的应用程序。所以数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。数据库模式的设计是数据库在应用领域的主要研究课题。因此数据库设计的成果以两种方法表示:一是满足应用需求的数据模式,二是在此数据模式并在某个DBMS的支持下开发的应用程序。
例如在企业信息化中,销售业务管理是一个很重要的模块。某企业想借助于计算机工具实现销售业务信息化管理,有关销售系统信息化的需求描述如下:
通过对经营销售活动各个环节产生数据的处理,为企业领导和生产经营各部门提供有关的销售目标、资源情况、订货情况、合同执行情况、销售成果、用户拖欠款、成品库存等动态信息。通过对这些信息的统计分析,准确及时地掌握市场情况,及早发现企业销售管理、订货服务、产品发运、回款等各环节发生的问题。跟踪市场的变化情况,使销售部门根据所发现的问题,采取相应的措施,最终使企业在市场竞争中获得最大的经济效益。
根据用户的需求,数据库设计人员就要从销售部门的组织结构、管理流程和相关业务出发,分析企业目前的销售经营情况,并运用营销的一些理论,设计一个销售管理系统应该具备的功能模块(目前的及以后可能需要的)及相应的数据库结构,并开发相应的应用程序。
目前数据库设计可有两种不同的方法:一种是以信息需求为主,兼顾处理需求,这种称为面向数据的设计方法;另一种是以处理需求为主,兼顾信息需求,这种方法称为面向过程的设计方法。第一章我们介绍的从工程界发展起来的数据库应用设计方法IDEF0功能分析设计方法属于第二种方法。本章我们主要介绍另一种从信息领域发展的以信息为主的数据库分析设计方法:数据流图和实体-关系图分析设计方法。
从数据库设计的过程来看,数据库设计也是一个软件开发,是一个把用户需要通过需求分析转化为软件需求(包括需求规格说明书、初步用户手册、确认测试计划等),把软件需求转化为软件设计(包括概要设计说明、数据库设计说明书、详细设计说明书、组装测试计划等),根据设计文档选择某个数据库管理系统和数据库开发工具来实现软件设计(包括用户界面、程序框图、事务处理等),对软件代码进行测试,并签署确认它可以投入运行使用的过程(如图4-1)。
图4-1软件开发的迭代模型
在实际开发过程中,软件开发并不是从第一步进行到最后一步,而是在任何阶段,在进入下一阶段前一般都有一步或几步的回溯。在软件开发中,重复经常出现。
例如,在测试过程中的问题可能要求修改设计,在使用过程重,根据系统的实施情况用户可能会提出一些需要修改需求说明书的新要求,等等。
软件开发的方法很多。当前在工程数据库设计中主要采用的软件开发方法有结构化方法、面向对象方法。结构化方法是一种围绕应用的功能来组织软件系统的方法。在这种方法中,系统的基本构成要素是模块,它是一种实现系统某一功能的程序单元。模块具有输入、输出、内部数据和过程等基本特性。输入和输出分别是模块需要的和产生的数据,内部数据是仅供模块本身引用的数据,过程则是对模块具体处理细节的描述和表示。输入和输出是模块的外部特性,内部数据和过程是模块的内部特性。因此结构化方法是通过按功能将问题分解抽象成模块、建立模块和模块之间的调用关系来进行软件开发的。
面向对象方法是一种围绕真实世界中的事物来组织软件系统的全新方法。在这种方法中,系统的基本构成要素是对象。从软件开发人员的角度来看,对象是一种将数据和处理这些数据的操作合并在一起的程序单元;从用户的角度来看,对象是一种具有某些属性和行为的事物。因此面向对象方法是通过将存在于现实世界中(问题空间范围内)的事物抽象成对象、建立对象和对象之间的通讯联系来进行软件开发的。
本章我们主要使用结构化的方法,并结合上面的应用介绍数据库设计的主要流程,相关的方法及其工具。
有关对象分析方法以及在软件开发方法中使用的专家系统的方法,感兴趣的同学请参看相关的资料。
◇ 第二节 数据库设计方法简述
设计方法和理论是指使用什么方法来设计数据库。为了使数据库设计的方法走向完备,人们研究了各种方法及其数据库的规范化理论,指导我们设计规范的数据库。
选择设计方法时应该考虑如下一些问题:
- 那些工具有助于设计?
- 开发时间的紧迫性?
- 开发人员的技术背景?
- 项目是否需要额外条件?
- 项目现有资源状况等。
另外大型数据库的设计和开发是一项庞大的工程,是涉及多学科的综合性技术。其开发周期长,耗资多、失败的风险也大。必需把软件工程的原理和方法应用到数据库建设中来。对于从事数据库设计的专业人员来讲,应该具备应用领域、数据库、系统分析与设计等多方面的技术和知识。
由于信息结构复杂,应用环境多样,在相当长的一段时期内数据库设计主要采用手工试凑法。使用这种方法与设计人员的经验和水平有直接关系,数据库设计成为一种技艺而不是工程技术,缺乏科学理论和工程方法的支持,工程的质量难以保证,常常是数据库运行一段时间后又不同程度地发现各种问题,增加了系统维护的代价。八十年代后期,随着关系数据库数据库产品的成熟和软件工程技术的支持,人们努力探索,提出了各种数据库设计方法,这些方法运用软件工程的思想和方法,提出了各种满足软件工程技术的数据库设计准则和规程,都属于规范设计法。
在数据库规范设计法中比较著名的有新奥尔良(New Orleans)方法。他将数据库设计分为四个阶段:需求分析(分析用户要求)、概念设计(信息分析和定义)、逻辑设计(设计实现)和物理设计(物理数据库设计)。其后,S.B.Yao等又对此方法进行扩充,将数据库设计分为五个步骤。另外,I.R.Palmer等认为应当把数据库设计当成一步接一步的过程,并在每一步需要采用一些辅助手段实现每一过程。所以规范设计法从本质上看仍然是遵循手工设计方法的步骤,所不同的是在一定的理论和方法指导下和计算机辅助工具的支持下,通过过程迭代和逐步求精逐步得到规划化的数据模式和应用系统的功能。
早期的数据库设计方法,如基于E-R模型的数据库设计方法,基于3NF(第三范式)的设计方法,基于抽象语法规范的设计方法等,都是致力于数据模型和建模方法的研究,研究在数据库设计的不同阶段上支持实现的具体技术和方法,而忽略了对行为的设计。也就说比较注重在给定的应用环境下,采用什么原则、方法来构造数据库的结构,而没有考虑应用环境要求和数据库结构的关系,因此结构设计和行为设计是分离的(如图4-2)。
图4-2 结构和行为分离的设计
随着面向对象技术的成熟、对象数据库和对象关系数据库管理系统的出现,如何将应用系统的结构特性(数据模型)和行为特性(功能模型)结合起来,在设计数据库结构的同时完成系统功能的设计。面向对象的分析和设计提供了很好的方法。本章主要介绍传统的数据库设计方法、过程及其工具。
数据库工作者和数据库厂商一直在研究和开发数据库设计工具。经过十多年的努力,数据库设计工具已经实用化和产品化。例如ORACLE公司推出的Design
2000、SYBASE公司推出的Power-Designer、Rational公司推出的ROSE、Microsoft 公司推出的Visio等都是数据库分析设计工具软件。这些工具软件可以自动的或辅助设计人员完成数据库设计过程中的很多任务。人们已经越来越认识到自动数据库设计工具的重要性。特别是大型数据库的设计需要自动设计工具的支持。人们也日益认识到数据库设计和应用设计应该同时进行,目前许多计算机辅助软件工程(Computer
Aided Software Engineering,简称CASE)工具都强调这两个方面。
目前市场上有各种各样的数据库辅助设计工具,提供的厂商既包括数据库管理系统厂商,也包括程序设计语言厂商,还有各种各样的CASE工具提供商等。但综合分析这些CASE的功能,它们主要分为以下几个功能:
- IDEF分析与建模工具
- 数据流图建模与分析工具
- 实体-关系图建模与设计工具
- 对象分析与建模工具等。
IDEF分析与建模方法我们在第一章已经讨论。面向对象的建模与分析方法我们在第三章工程数据模型中也简单介绍过。本章的后续章节主要介绍另外两种方法和工具。
◇ 第三节 数据库设计的基本步骤
按照规范设计的方法,考虑数据库及其应用系统开发全过程,将数据库设计分为以下六个阶段(如图4-3所示):
1. 需求分析阶段
进行数据库设计首先必须准确了解与分析用户需求(包括数据与处理)。需求分析是整个设计过程的基础,是最困难、最耗费时间的一步。作为基础的需求分析是否做的充分与准确,决定了在其上构建数据库大厦的速度与质量。需求分析做得不好,甚至会导致整个数据库设计返工重做。
2. 概念结构设计阶段
概念结构设计是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的数据库应用概念模型。
3. 逻辑结构设计阶段
逻辑结构设计是将概念结构转换为某个DBMS所支持的数据模型,并对其进行优化。
4.数据库物理设计阶段
数据库物理设计是为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。
5.数据库实施阶段
在数据库实施阶段,设计人员运用DBMS提供的数据语言及其开发工具,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。
6.数据库运行和维护阶段
数据库应用系统经过试运行后即可投入正式运行。在数据库系统运行过程中必须不断地对其进行评价、调整与修改。
在这六个阶段之前,有时还加入"规划阶段"以进行系统的必要性和可行性分析,确定本子系统在整个应用中的地位。
数据库设计开始之前,首先必须选定参加设计的人员,包括系统分析人员、数据库设计人员和程序员、用户和数据库管理员。系统分析和数据库设计人员是数据库设计的核心人员,他们将自始至终参与数据库设计,他们的水平决定了数据库系统的质量。用户和数据库管理员在数据库设计中也是举足轻重的,他们主要参加需求分析和数据库的运行维护,他们的积极参与不但能加速数据库设计,而且也是决定数据库设计的质量的重要因素。程序员则在系统实施阶段参与进来,分别负责编制程序和准备软硬件环境。
4-3数据库设计步骤
如果所设计的数据库应用系统比较复杂,还应该考虑是否需要使用数据库设计工具和CASE工具以提高数据库设计质量并减少设计工作量,以及选用何种工具。
设计一个完善的数据库应用系统是不可能一蹴而就的,它往往是上述六个阶段的不断反复。
需要指出的是,上述设计步骤既是数据库设计的过程,也包括了数据库应用系统的设计过程。在设计过程中把数据库的设计和对数据库中数据处理的设计紧密结合起来,将这两个方面的需求分析、抽象、设计、实现在各个阶段同时进行,相互参照,相互补充,以完善两方面的设计。事实上,如果不了解应用环境对数据的处理要求,或没有考虑如何去实现这些处理要求,是不可能设计一个良好的数据库结构的。按照这个原则,设计过程各个阶段的设计描述,可用图4-4概括的给出。
图4-4 数据库结构设计阶段
按照这样的设计过程,数据库结构设计的不同阶段形成数据库的各级模式。需求分析阶段,综合各个用户的应用需求,并以某种模型如IDEF0图或数据流图表示出来;在概念设计阶段形成独立于机器特点,独立于各个DBMS产品的概念模式(如实体-关系图);在逻辑设计阶段将E-R图转换成具体的数据库产品支持的数据模型,如关系模型,形成数据库逻辑模式;然后根据用户处理的要求、安全性的考虑,在基本表的基础上在建立必要的视图(View),形成数据的外模式;在物理设计阶段,根据DBMS特点和处理的需要,进行物理存储安排,建立索引,形成数据库内模式;在系统实施阶段主要包括应用程序的设计和数据库数据的装入与功能测试,在这个阶段需要运用数据库开发工具、遵循通用的程序设计规则等;系统的运行维护是数据库应用的一个重要方面,是检验数据库设计好坏的一个重要阶段。
本章以销售管理业务系统的设计为例,详细的说明在这几个不同的数据库设计阶段的内容,所用的设计方法及相关工具。
◇ 第九节 系统的实现(功能设计)
完成数据库的物理设计之后,设计人员就要用RDBMS提供的数据定义语言和其他实用程序将数据库逻辑设计和物理设计结果严格描述出来,在此基础上我们就可进行应用系统的功能设计与实现。这就是数据库功能设计。
所以功能设计主要指在设计好的数据库模式上面建立的应用程序结构设计。程序结构描述了整个程序或软件的模块划分,以及模块间的相互关系,反映出了程序控制的层次关系,但没有反映出程序控制的顺序和选择等关系,也没有考虑如何具体实现模块功能。
程序过程则是对程序结构中模块的具体处理细节的描述,包括执行顺序,选择判断点,重复操作等等。简单地说,程序过程是对程序结构的细化。图4-37和图4-38分别说明了程序过程和模块、程序过程和程序结构之间的关系。
1.程序设计过程的基本控制
2.程序过程表示方法
3.程序过程设计
4.用户界面的设计
图4-37 在一个模块内的程序过程
图4-38 程序过程和程序结构的关系
1.程序设计过程的基本控制
程序过程基本控制结构分为三种基本类型:
1) 顺序型
2) 赋值语句、读语句、写语句,含有多个连续的加工步骤。
3)选择型
条件块、选择块,由某个逻辑条件式的取值决定选择两个或多个加工中的一个。
4)迭代型
循环块,在控制条件满足的情况下,重复执行特定的加工。
2.程序过程表示方法
程序过程设计是软件详细设计中的重要内容,程序流程图是我们大家熟悉的过程表示工具。除此之外,还有N-S图、PAD图、PDL语言、HIPO图等程序过程表达工具。根据应用的特点可选择不同的表示方法。例如问题分析图(Problem
Analysis Diagram, 简称PAD) 是从程序流程图演化而来的,它针对程序流程图的某些特点,进行了适当的改进。它把程序过程控制结构表示成二维树的图形(如图4-39)。
图4-39 用问题分析图表示的程序过程基本控制结构
3.程序过程设计
1)结构化程序过程及其设计原则
结构化程序过程是一种只使用单入口和单出口控制结构的程序过程,在设计过程中它主要要求 :
(1)只使用顺序型、条件型、当循环型、直到循环型和选择型等五种基本控制结构,避免使用可能降低程序结构性的GOTO语句。已经有人证明,任何程序过程都可以用上述几种基
本控制结构构造出来;
(2)采用自顶向下和逐步细化的方法和原则进行。
结构化程序过程设计的目标,是提供一种严格定义的,简明的程序过程设计方法,这种方法应比那些随意设计的方法更容易理解,评价和修改。
2)结构化程序过程设计技术
结构化程序过程设计的主要技术是自顶向下逐步细化方法。该方法把整个程序过程设计的过程分出层次来,逐步加以解决。每一步是在前一步的基础上进行的,是前一步设计的细化和具体化。一般细化到可以立刻进行程序代码编写设计就可以了。
3)结构化程序过程设计的优缺点
程序设计的主要费用和困难在于问题的复杂性,以及向其他人解释设计思想的工作。而结构化程序过程设计最重要的优点就是它的清晰性,它明确地提出了程序过程的控制结构,同时采用了自顶向下逐步细化的程序过程设计技术。清晰性增加的直接效果,就是使程序过程设计的生产率有较大的提高,同时使设计和维护费用减少。
结构化程序过程设计限制了程序设计人员的风格,有人视为缺点,认为不应当对此加以限制。但是使一种工程技术标准化却是一项巨大的成就。目前世界上对标准化越来越重视,什么东西都要标准化,这样生产率、维护性都将得到提高。在程序过程设计中增加符合工程要求的份量,是人们所追求的。所以限定风格是有益的。
4.用户界面的设计
用户界面的设计是程序设计的一个重要模块。在图形化的用户界面设计程序语言中提供了了很多方法来设计用户界面。用户界面的设计应遵循下列原则
1) 用户需求原则:友好、实用、简单等;
2) 系统开发规则:遵循Windows图形用户界面设计规则、开发工具提供的控件等;
3) 用户界面的定制:通过对图形用户界面控件和业务逻辑的封装让用户自己定义合适的用户界面。这是比较成熟的用户界面的设计。
当然用户界面的设计也是一种艺术。例如在销售系统中,客户管理界面初始设计,如根据用户的需求,往往希望以下列卡片的形式输入、修改客户信息:
图4-40 客户信息卡片管理界面
但为了管理方面,用户往往在客户卡片上面加装目录,以卡片形式管理这些页面(不同的企业有不同的管理模式,对话框左下角用户用户定制自己的卡片目录管理模式):
图4-41 客户信息页面管理界面一
客户信息的卡片管理模式虽然很多,但对某个企业常用的只有一种模式,所以,我们可以将卡片的管理模式放到系统参数设置模块,这样,经过程序设计的优化,我们可以将客户管理用户界面简化成:
图4-42 客户信息页面管理界面二
客户信息的输出可采用微软的Office工具,结合Office的模版管理和VB编程实现用户自定义的打印输出功能。
从上面的例子可以看出,用户界面的设计必须利用Windows图形界面的一些技术,根据用户的需求,遵循一定的规则,与用户交互完成。另外还要考虑系统的可扩展性。例如,上面的用户界面是固定的。如我们支持定制的用户界面,那么,我们必须建立用户界面定制数据库,用于描述客户数据项在用户界面的那个页面,什么地方,以什么方式(编辑、列表、选择等)方式显示。
用户界面设计的另外一个重要模块是用户界面控制功能和数据库交互等的设计。例如对于下列的合同管理界面:
图4-43 客户合同管理界面
在控制控制方面需要包括以下的功能:
图4-44 客户合同管理界面要包括的功能
而对于合同录入功能,我们又需要细化,它可能包括下列流程:
图4-45 客户合同管理界面录入功能与流程
如果用户界面操纵功能设计得比较详细,我们还可以对上面的用户界面功能进行细化,例如系统显示相关客户档案信息功能细化后如下图所示:
图4-46 客户合同管理界面客户信息录入功能
从上面的功能程序设计和用户界面设计可以看出,数据库模式的设计可能还需要修改才能满足要求。所以一个好的数据库应用设计必须有效的将功能和数据库模式结合起来。例如数据库物理模式的确定需要充分考虑系统的查询与统计报表的功能(数据的使用频率)
◇ 本章小结
本章主要讨论了数据库设计的过程,设计过程中使用的各种方法,并结合销售业务数据库应用系统的设计解释了这些方法。
需求分析是数据库设计的第一个阶段。任务是收集和分析用户对数据库应用系统的使用要求,是数据库设计的基础。用户的要求包括:
(1)对数据对象种类和类型的要求,数据之间关系的要求。
(2)对数据操纵的要求,数据操纵方式的要求。
(3)对数据对象的限定要求和数据完整性要求。需求分析就是要了解用户需要什么样的数据库,干什么用的数据库。
(4)对系统功能及其权限的控制与管理等。
需求分析阶段有三项工作:
(1)理解和表达用户需求,明确未来软件"做什么"。对于工程应用软件来说,就是详细定义未来软件的功能、性能、外部接口、有关属性、设计限制和数据库需求的过程,并确认支持性的硬件、软件环境和辅助软件。
(2)使用自顶向下逐层分解的系统分析方法,把整个软件系统分解成若干个子系统或软件成分,把整个软件的外部需求,分别赋予软件的各个功能成分,详细地定义每个成分的外部功能,并严格标定它们之间的接口。
(3)编写软件"需求分析说明"。它是测试验收阶段对软件进行确认和验收的基准,是以后软件开发的基础。
在数据库应用的需求分析中使用最多的是数据流图。数据流图描绘系统的逻辑模型,图中没有任何具体的物理元素,只是描绘信息在系统中流动和处理的情况。因为数据流图是逻辑系统的图形表示,即使不是专业的计算机技术人员也容易理解,所以是极好的通信工具。此外,设计数据流图只需考虑系统必须完成的基本逻辑功能,完全不需要考虑如何具体地实现这些功能,所以它也是数据库设计的很好的出发点。
画数据流图的基本目的是利用它作为交流信息的工具。分析员把他对现有系统的认识或对目标系统的设想用数据流图描绘出来,供有关人员审查确认。
数据流图的另一个主要用途是作为分析和设计的工具。分析员在研究现有的系统时常用系统流程图表达他对这个系统的认识,这种描绘方法形象具体,比较容易验证它的正确性;但是,开发工程的目标往往不是完全复制现有的系统,而是创造一个能够完成相同的或类似的功能的新系统。用系统流程图描绘一个系统时,系统的功能和实现每个功能的具体方案是混在一起的。因此,分析员希望以另一种方式进一步总结现有的系统,这种方式应该着重描绘系统所完成的功能而不是系统的物理实现方案。数据流图是实现这个目标的极好手段。
在完成了用户的需求分析后就开始数据库的概念设计。在数据库设计中最常用的表示概念性数据模型的方法,是实体一联系方法(ER图)。这种方法用ER图描述现实世界中的实体,而不涉及这些实体在系统中的实现方法。用这种方法表示的概念性数据模型又称为ER模型。ER模型比较接近人的习惯思维方式。此外,ER模型使用简单的图形符号表达系统分析员对问题域的理解,不熟悉计算机技术的用户也能理解它,因此,ER模型可以作为用户与分析员之间有效的交流工具。
那么,数据流图和实体-关系图之间有什么关系?如何的将数据流图转化为实体-关系图呢?作为系统设计的开始,要分析系统有哪些数据需求,分析的结果将得到数据流程图(DFD)和数据字典(DD);在此基础上就可以开始作ER图了,其过程简介如下:
1).作初步的ER图
首先要构造实体。可以有3条获得实体的途径:
(1)根据DFD和DD中提供的情况,将一些对应于客观存在的事物(可以是具体的或者是抽象的事物、概念、事物联系或某一事件等)的数据项汇集成一个实体,数据项构成该实体的属性(或特性);
(2)将剩下的数据项用1对多的分析方法再确定出一批实体。某数据项苦与其它多个数据项之间存在1:N的对应关系,那么这个数据项就可以作为一个实体,而其它多个数据项作为它的属性;
(3)采用数据元素图法分析最后一些数据项之间的紧密程度,又可以确定一批实体。如果某些数据项完全函数依赖于另一些数据项,那么所有这些数据项可以作为一个实体,而后者数据项可以作为此实体的键。
经过上面三步,如果在DFD和DD中还有剩余的数据项,那么这些数据项一般是实体间联系的属性,在分析实体问联系时要把它们考虑进去。得到实体后,要确定实体间的联系。通过确定联系,就得到了初步的ER图。
2).求得基本ER图
在上面得到的多个子ER图基础上,对它们进行合并,便得到全局的ER固。由初步ER图求基本ER图的过程,主要是消除冗余数据和冗余联系的过程。首先实施消除冗余数据,可能在这一步,有些联系也将消失;而冗余联系的消除是基于关系理论中Armstron8公理的演绎算法。
在得到了系统完整的概念模型后就可设计数据库系统的逻辑模式及相应的数据库结构,开始应用程序的编程、调试,系统的实施与运行维护等。数据库应用系统的实现部分本章没有讨论,这就是下章我们将要讨论的应用程序的开发内容。
◇ 课后习题
问答题
4.1
- 什么是数据库设计?
- 什么是软件开发?它包括那些步骤?
- 数据库设计的成果是什么?
4.2
- 概述数据库设计方法和数据库设计方法的分类。
- 举例说明你熟悉的某种数据库设计工具的特点和功能。
4.3
- 简述数据库设计的几个阶段及其内容。
- 简述数据库设计过程中涉及的几个术语。
4.4
- 什么是数据库应用的规划?它包括那些功能?
- 销售业务系统的主要功能有哪些?它与营销有什么关系?
- 简述你对销售业务流程的理解。
4.5
- 需求分析的基本任务是什么?
- 需求分析有那些步骤?需要采用那些方法?
- 试述结构化分析的工作内容和步骤。
- 什么是数据流图?它包括那些元素?各元素的功能是什么?
- 画数据流图时应注意那些事项?
- 什么是数据字典?它包括那些内容?
- 简述销售业务流程的数据流程?
4.6
- 简述概念模型的特点、概念模型设计的方法和步骤。
- 简述实体-关系模型的基本概念及其组成。
- 实体之间有哪些关系?在实体-关系模型中怎么表示?
- 简述销售业务系统中的实体及其属性。
- 仿照企业销售管理系统的实体-关系方法,画出采购合同的实体-关系模型。
4.7
- 简述逻辑结构设计的内容和步骤。
- 简述实体-关系概念模型向逻辑数据库模型(关系模式)转化的方法。
- 什么叫数据模型的优化?简述相关的方法?
- 简述用户模式的特点和设计的理由。
- 设计销售业务中发票管理的数据库模式。
4.8
- 简述物理结构设计的主要问题。
- 简述销售订单的物理结构设计
- 简述你熟悉的数据库管理系统提供的物理结构设计的功能。
4.9
- 什么是系统的功能设计?功能设计和数据库模式设计之间有什么关系?
- 简述客户销售合同评审的功能及程序设计内容。
4.10
- 简述数据库的实施与维护内容。
- 为什么数据库的运行维护很重要?
|