《第1章数据库设计.docx》由会员分享,可在线阅读,更多相关《第1章数据库设计.docx(10页珍藏版)》请在第一文库网上搜索。
1、第1章数据库设计本章提示数据库设计是建立数据库及其应用系统的第一步,是开发信息系统最重要的一部分。数据库设计中的一个核心问题,就是如何设计一个能够满足用户当前与可预见的未来的各项应用要求、性能良好的数据库。数据库设计是否合理会极大影响系统的使用性能。数据库设计就是从用户的数据需求、处理要求及建立数据库的环境条件(软、硬件特性以及其他限制)出发,运用数据库的理论知识,把给定的应用环境(现实世界)存在的数据加以合理地组织起来,逐步抽象成已经选定的某个数据库管理系统能够定义和描述的具体的数据结构,构造性能最优的数据库模式,建立数据库及其应用系统,使之能够有效地存取数据,满足各种用户的应用需求。具体地
2、说,数据库设计包括了解用户需求、确定系统范围,选择开发方法,准备开发环境,制定开发计划,设计各子系统的功能和接口,设计安全性策略、需求和实现方法,制定详细的工作流和数据流,设计数据模型、物理结构,并编写外部设计文档。本章根据大纲的要求,全面介绍了用户需求分析、系统功能设计、数据库设计、编写外部设计文档等方面的主要知识点。在详细的典型例题分析之后,还给出了适量的练习题,以帮助读者加深对这些内容的理解和掌握。如图1-1所示是本章的知识框图。理解系统需求说明了解用户需求、确定系统范围,新旧系统的关系系统开发的准备选择开发方法,准备开发环境,制定开发计划数据库设计设计系统功能设计各子系统的功能和接口,
3、安全性策略、需求和实现方法数据库设计设计数据模型,物理结构设计,数据库实施与维护,数据库的保护编写外部设计文档编写系统说明书,设计系统测试要求设计评审信息系统的评价,系统评价指标图1-1数据库设计知识框图1.1 理解系统需求说明理解系统需求说明新系统的需求说明书了解用户需求、确定系统范围确定应用系统数据库的各种关系理解系统需求是数据库设计的第一步。理解系统需求包括了解用户需求、确定系统范围,确定应用系统数据库的各种关系,现有环境与新系统环境的关系,还要确定新系统中的数据项、数据字典、数据流。如图1-2所示是本节的知识框图。新系统中的数据项、数据字典、数据流图1-2理解系统需求说明知识框图1 .
4、知识点提炼(1) 了解用户需求、确定系统范围了解用户需求、确定系统范围,即系统需求分析,它是在项目确定之后,用户和设计人员共同对数据库应用系统所要涉及的内容(数据)和功能(行为)的整理和描述,是从用户的角度出发来认识系统的。需求分析是后续开发的基础,以后的逻辑设计、物理设计以及应用程序的设计都会以此为依据。如果这一阶段的工作没有做好,势必会为以后的工作带来困难,要再重新回过头来作需求分析,会影响整个项目的工期,在人力、物力等方面造成浪费。需求分析的基本步骤和基本要求如下所述。了解将要在其中部署系统的组织(以下简称目标组织)的结构及机制;了解目标组织中当前存在的问题并确定改进的可能性;确保客户、
5、最终用户和开发人员就目标组织达成共识;导出支持目标组织所需的业务需求。需求分析阶段的任务是:对现实世界要处理的对象(组织、部门、企业等)进行详细调查,在了解现行系统的概况,确定新系统功能的过程中,收集支持系统目标的基础数据及处理方法。需求分析是在用户调查的基础上,通过分析,逐步明确用户对系统的需求,包括数据需求和围绕这些数据的业务处理需求,以及对数据安全性和完整性方面的要求。在需求分析的过程中,首先应当确定系统范围。在绝大多数情况下,用户并非计算机专业人员,对计算机所能处理的功能并不很了解,用户总希望所开发的系统能够尽可能多地实现他们想要的功能,而有些是目前所不可能实现的;其次,企业或部门目前
6、可能已经有现存的系统在运行,但目前不能满足用户的要求,在新的系统中,应该继承现有系统中的数据,也可能现存系统会作为新系统中的一部分继续运行,这些都必须明确;再次,用户的应用需求,随着企业的发展,对一些可预见的需求也应当加以考虑,使新系统能够有一定的灵活性和可扩充性,适应将来的部分要求,而不仅仅是满足当前的应用需求。需求分析阶段以调查和分析为主要手段,需要获取的主要内容有信息要求和处理要求。信息要求为用户需要在系统中保存哪些信息,由这些保存的信息要得到什么样的信息,这些信息以及信息间应当满足的完整性要求;处理要求为用户在系统中要实现什么样的操作功能,对保存信息的处理过程和方式,各种操作处理的频度
7、、响应时间要求、处理方式等,以及处理过程中的安全性要求和完整性要求。了解用户需求的方法就是调查。可以采取开调查会、跟班作业、查阅文献、书面填表、交流询问等方式,对用户的信息需求进行收集。收集的内容主要包括数据、业务处理的过程和依据、处理的时间和频度等。需求分析中注意的关键问题是新系统的性能指标、目标;系统性能需求清单;业务处理和业务规则清单;当前系统业务处理文档,或者是旧版本的文档。具体如下所述:数据库中存储的数据类型?所有的数据是否都是内部数据?什么数据是外部数据?数据主要被谁使用?是否存在用户级别?数据的保存时间是多长?使用什么方法来查询和修改数据?存在哪些人工处理过程?用户当前所负责的工
8、作是什么?用户通常与谁交互?应该给用户提供什么样的服务和产品?在数据被存档和删除前,数据能保存多长时间?为什么要限制某些用户对数据的修改?数据是字符型、数字型还是日期和时间型?信息是否必须唯一?如果是,为什么?数据的存在是否与其他数据有关?数据是否被其他数据引用?了解用户需求后,系统设计人员要从技术的角度分析需求可行性,在允许的成本、性能要求下,分析每项需求实施的可行性,明确与每项需求实现相联系的风险,包括与其他需求的冲突,对外界因素的依赖和技术障碍。还需要确定需求的优先级别,应用分析方法来确定使用实例、产品特性或单项需求实现的优先级别。以优先级为基础确定产品版本将包括哪些特性或哪类需求。当允
9、许需求变更时,在特定的版本中加入每一项变更,并在那个版本计划中做出需要的变更。(2)确定应用系统数据库的各种关系数据库应用系统就是使用数据库的各种系统(或者说各种应用程序)。确定应用系统和数据库的各种关系,才能保证应用系统的各个部分能够结合起来有效的运行。所以说数据库设计应该和应用系统的设计结合起来进行。(3)现有环境与新系统环境的关系现有数据库的二次设计产生的原因主要有如下儿点:最终用户对系统性能不满意;公司规模扩大;公司希望提高工作效率;数据库管理员认为数据库或应用软件的安全性不能满足需求;当前系统没有问题,管理人员希望做一些不同的事情;公司希望通过自动化降低成本;管理人员有了新的财政预算
10、等。现有数据库的二次设计时需求分析应当注意的问题如下:当前的业务处理是什么?当前的数据如何存储?系统的不足和缺陷是什么?当前使用的硬件设备和软件环境是什么?最终用户是谁?当前系统性能如何?现有缺陷可以通过什么方法改进?新的业务处理包括哪些内容?现有的系统需要在哪些方面进行改善?根据新的业务处理,应用软件需要作哪些修改?是否涉及新数据?新数据与现有数据的相互关系?如何访问新数据?根据新数据以及数据的相互关系,数据结构需要进行哪些修改?是否会有新的用户?所进行的修改是否可以提高系统的性能?等等。2 .难点分析需求分析阶段的成果是系统需求说明书,主要包括数据流图、数据字典、各种说明性表格、统计输出表
11、、系统功能结构图等。系统需求说明书是以后设计、开发、测试和验收等过程的重要依据。考生应理解和掌握数据字典和数据流图的基本概念和原理,以及它们之间的关系。数据字典是对用户信息要求的整理和描述。信息需求即定义未来信息系统用到的所有信息,用户将向数据库中输入什么信息,从数据库中要得到什么信息,各类信息的内容和结构,信息之间的联系等。数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程5个部分。数据项:数据项是数据的最小单位,对数据项的描述一般包括项名、含义说明、别名、类型、长度、取值范围及该项与其他项的逻辑关系,常以表格的形式给出。数据结构:数据结构是若干数据项有意义的集合,通常代表某一具体
12、的事物,包括数据结构名、含义、组成成分等。数据流:数据流可以是数据项,也可以是数据结构,表示某一次处理的输入/输出数据,包括数据流名、说明、数据来源、数据去向、及需要的数据项或数据结构。数据存储:加工中需要存储的数据,包括数据存储名、说明、输入数据流、输出数据流、组成成分、数据量、存取方式、存取频度等。处理过程:加工处理过程定义和说明。包括处理名称,输入数据、输出数据、数据存储、响应时间等。数据流图或称数据流程图是一种便于用户理解、分析系统数据流程的图形工具。对用户处理要求的描述采用数据流图的形式,即对数据采取什么样的加工方式和操作,得到用户需要的结果,通常是对业务处理过程的描述。数据流图描述
13、了系统的分解,但没有对图中各成分进行说明。数据字典就是为数据流图中的每个数据流、文件、加工,以及组成数据流或文件的数据项做出说明。其中对加工的描述称为“小说明”,也可以称为“加工逻辑说明”。3 .典型例题【例题1-1】阅读以下有关信息系统需求分析的叙述,回答问题1到问题4。需求分析的任务是通过详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原系统(手工系统或计算机系统)工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。新系统必须充分考虑今后可能的扩充和改变,不能仅仅按当前应用需求来设计数据库。【问题1】对于一般的信息系统,需求分析的重点是什么?【解析】需求分析的重点是调
14、查、收集与分析用户在数据管理中的信息要求、处理要求、安全性与完整性要求。信息要求是指用户需要从数据库中获得信息的内容与性质,由用户的信息要求可以导出数据要求,即在数据库中需要存储哪些数据。处理要求是指用户要求完成什么处理功能,对处理的响应时间有什么要求,处理方式是批处理还是联机处理。新系统的功能必须能够满足用户的信息要求、处理要求、安全性与完整性要求。【问题2为什么说确定用户的最终需求是一件及其困难的事,结合自己的项目经验,谈谈确定需求的具体难点,是如何解决这些问题的?【解析】确定用户的最终需求其实是一件很困难的事,这是因为一方面用户缺少计算机知识,开始时无法确定计算机究竟能为自己做什么,不能
15、做什么,因此无法一下子准确地表达自己的需求,他们所提出的需求往往不断地变化。另一方面设计人员缺少用户的专业知识,不易理解用户的真正需求,甚至误解用户的需求。此外新的硬件、软件技术的出现也会使用户需求发生变化。因此设计人员必须与用户不断深入地进行交流,才能逐步得以确定用户的实际需求。【问题3】结合自己的项目经验,常用的调查方法有哪些?【解析】跟班作业。通过亲身参加业务工作来了解业务活动的情况,这种方法可以比较准确地理解用户的需求,但比较耗费时间。开调查会。通过与用户座谈来了解业务活动情况及用户需求,座谈时,参加者之间可以相互启发。请专人介绍。询问。对某些调查中的问题,可以找专人询问。设计调查表请
16、用户填写。如果调查表设计得合理,这种方法是很有效,也很易于被用户接受的。查阅记录。即查阅与原系统有关的数据记录,包括原始单据、账簿、报表等。【问题4】需求分析需要完成哪些工作?【解析】首先调查组织机构情况。包括了解该组织的部门组成情况,各部门的职能等,为分析信息流程做准备。然后调查各部门的业务活动情况。包括了解各个部门输入和使用什么数据,如何加工处理这些数据,输出什么信息,输出到什么部门,输出结果的格式是什么。协助用户明确对新系统的各种要求。包括信息要求、处理要求、完全性与完整性要求。确定新系统的边界。确定哪些功能由计算机完成或将来准备让计算机完成,哪些活动由人工完成。由计算机完成的功能就是新系统应该实现的功能。【例题12】阅读以下有关信息系统需求分析的叙