第1章数据库设计.docx

上传人:夺命阿水 文档编号:563814 上传时间:2023-08-27 格式:DOCX 页数:10 大小:93.25KB
返回 下载 相关 举报
第1章数据库设计.docx_第1页
第1页 / 共10页
第1章数据库设计.docx_第2页
第2页 / 共10页
第1章数据库设计.docx_第3页
第3页 / 共10页
第1章数据库设计.docx_第4页
第4页 / 共10页
第1章数据库设计.docx_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《第1章数据库设计.docx》由会员分享,可在线阅读,更多相关《第1章数据库设计.docx(10页珍藏版)》请在课桌文档上搜索。

1、第1章数据库设计本章提示数据库设计是建立数据库及其应用系统的第一步,是开发信息系统最重要的一部分。数据库设计中的一个核心问题,就是如何设计一个能够满足用户当前与可预见的未来的各项应用要求、性能良好的数据库。数据库设计是否合理会极大影响系统的使用性能。数据库设计就是从用户的数据需求、处理要求及建立数据库的环境条件(软、硬件特性以及其他限制)出发,运用数据库的理论知识,把给定的应用环境(现实世界)存在的数据加以合理地组织起来,逐步抽象成已经选定的某个数据库管理系统能够定义和描述的具体的数据结构,构造性能最优的数据库模式,建立数据库及其应用系统,使之能够有效地存取数据,满足各种用户的应用需求。具体地

2、说,数据库设计包括了解用户需求、确定系统范围,选择开发方法,准备开发环境,制定开发计划,设计各子系统的功能和接口,设计安全性策略、需求和实现方法,制定详细的工作流和数据流,设计数据模型、物理结构,并编写外部设计文档。本章根据大纲的要求,全面介绍了用户需求分析、系统功能设计、数据库设计、编写外部设计文档等方面的主要知识点。在详细的典型例题分析之后,还给出了适量的练习题,以帮助读者加深对这些内容的理解和掌握。如图1-1所示是本章的知识框图。理解系统需求说明了解用户需求、确定系统范围,新旧系统 的关系系统开发的准备选择开发方法,准备开发环境,制定开发 计划数据库设计设计系统功能设计各子系统的功能和接

3、口,安全性策 略、需求和实现方法数据库设计设计数据模型,物理结构设计,数据库实 施与维护,数据库的保护编写外部设计文档编写系统说明书,设计系统测试要求设计评审信息系统的评价,系统评价指标图1-1数据库设计知识框图1.1 理解系统需求说明理解系统需求说明新系统的需求说明书了解用户需求、确定系统范围确定应用系统数据库的各种关系理解系统需求是数据库设计的第一步。理解系统需求包括了解用户需求、确定系统范围,确定应用系统数据库的各种关系,现有环境与新系统环境的关系,还要确定新系统中的数据项、数据字典、数据流。如图1-2所示是本节的知识框图。新系统中的数据项、数据字典、数据流图1-2理解系统需求说明知识框

4、图1 .知识点提炼(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】需求分析需要完成哪些工作?【解析】首先调查组织机构情况。包括了解该组织的部门组成情况,各部门的职能等,为分析信息流程做准备。然后调查各部门的业务活动情况。包括了解各个部门输入和使用什么数据,如何加工处理这些数据,输出什么信息,输出到什么部门,输出结果的格式是什么。协助用户明确对新系统的各种要求。包括信息要求、处理要求、完全性与完整性要求。确定新系统的边界。确定哪些功能由计算机完成或将来准备让计算机完成,哪些活动由人工完成。由计算机完成的功

17、能就是新系统应该实现的功能。【例题12】阅读以下有关信息系统需求分析的叙述,回答问题。在设计开发某省的一个户籍管理系统时,数据库设计人员与户籍管理处的相关人员进行了沟通,了解到如下的情况:该省所有人的户籍信息都可以通过该系统查询到。户籍信息包括了户籍管理所需要的所有信息,如姓名、住址、性别、出生日期、身份证号码、照片、户主、与户主的关系等内容。【问题)根据以上描述提出需求分析阶段中需要了解的更多信息(不能多于5项,以提问的方式,选择最重要的项目)。【解析】需求分析阶段中需要了解的更多信息还有如下几个方面。系统的最终用和和客户是谁,如何访问数据?户籍数据的来源?系统将要达到的安全保密的程度如何?

18、是否有与其他系统如身份证系统的接口?已故人员户籍数据是否有特殊的保存和访问方式?【例题13】为什么说面向对象的需求分析较传统需求分析更有优势?结合自己的项目经验谈谈。【解析】软件的需求分析的主要目的是:通过与用户广泛的交流得出所要完成的目标系统必须具备哪些功能,应该为用户完成些什么工作,即确定“目标系统必须做什么?”。需求分析相当于从用户到软件工程人员之间架设了一道桥梁,软件工程人员通过需求分析得到用户的需求,成为软件编制所实现的目标。需求分析的好坏直接关系到软件的成功与否,是软件生命周期中的关键-环。一般来说,用户对计算机技术了解并不多,计算机工程人员又对用户的问题不很了解,这就阻碍了用户与

19、计算机工程人员之间的交流,使计算机工程人员不能很好地理解问题域,用户又对目标系统存在好多不清楚的地方。传统的数据流分析法,功能分析法等对这个问题并不能有效地解决。面向对象方法的出现,正好为此问题提供了一个较好的解决方案。因为人类自然地趋向于用“对象”的观点或“方法”来认识问题、分析问题以及解决问题,用基于“对象”的概念模型来建立问题域模型,自然成为系统分析员与用户交流的有效工具。用面向对象的方法进行需求分析,其根本要点在于利用“对象”的概念模型建立一个针对于问题域的模型,用户和软件工程师通过该模型进行交流。通过在这么一个基于“对象”的问题域模型的基础上形成需求规格说明书。【例题1-4阅读以下某

20、项目数据字典的叙述,按照问题1和问题2的提示,完成该数据字典的定义工作。数据字典是关于数据库中数据的描述,即元数据,而不是数据本身。数据本身将存放在物理数据库中,由数据库管理系统管理。数据字典有助于这些数据的进一步管理和控制,为设计人员和数据库管理员在数据库设计、实现和运行阶段控制有关数据提供依据。在某学校选课系统中,要求根据各学期所开设的课程(教学任务),由不同的院(系)教学秘书为本院(系)各年级的学生选择必修课,由学生自主选择选修课,在课程学完之后,由教师进行成绩的录入。另外,教学任务应来自于各院(系)的教学计划。【问题1该系统涉及很多数据项,其中“学号”数据项可以如下描述:“学号”是每一

21、个学生的唯一标志,一共7位,前3位标志年级号,中间2位标志班号,末尾2位按顺序编号。请按照GB标准写出该数据项的定义。【解析】数据项:学号含义说明:唯一标识每个学生别名:学生编号类型:字符型长度:7取值范围:至取值含义:前3位标志年级号,中间2位标志班号,末尾2位按顺序编号【问题2“学生”是该学校选课系统中的一个核心数据结构,请按照GB标准写出该数据结构的定义。【解析】数据结构:学生含义说明:定义了一个学生的有关个人信息组成:学号,姓名,系别,年级,年龄【例题15】阅读以下某数据需求分析的叙述,回答问题。某公司在进行项目管理时有如下的规定:项目需要技术人员支持时首先由销售人员提出申请,商务人员

22、对销售人员的技术支持申请进行审核,检查客户是否按合同付款,如果己经按合同付款,则通过审核并提交给技术部经理进行技术审核,技术部经理接收到提交的申请后如果认为技术所需要的技术服务在合同条款内则通过审核,通过后提交到销售人员的部门经理进行综合审核,通过后则提交给技术部经理,由技术部经理指派相应的技术人员提供服务。在每一步,相关人员(商务、技术部经理、部门经理)没有通过技术支持申请,则该技术服务申请中止。【问题】按以上的描述画出数据流图DFD。【解析】数据流图如图1-3所示。图1-3数据流图DFD1.2系统开发的准备系统开发前期要做些准备工作,如在多种可行的开发方法中综合考虑各种因素选择最优的开发方

23、法,准备开发系统所需要的软硬件环境,制定详细的开发计划以督促和保证系统能够保质保量地如期完成。如图1-4所示是本节的知识框图。1 .知识点提炼(I)选择开发方法常用的软件开发方法有3种:结构化方法、面向对象方法和原型法。结构化方法是结构化分析和结构化设计的总称。结构化方法的特点是有一套严格的开发程序,各开发阶段都要求有完整的文档记录。开发计划开发方法结构化方法、面向对象方法和原型法图14系统开发的准备知识框图面向对象方法也包含面向对象的分析和面向对象的设计。面向对象方法的特点是从现实世界中客观存在的事物出发来构造软件系统。软件系统使用的业务范围称做软件的问题领域,把问题领域中事物的特征抽象地描

24、述成类,由类建立的对象做为系统的基本构成单位,它们的内部属性与服务描述了客观存在的事物的静态特征和动态特征。对象类之间的继承关系、聚集关系、消息和关联反映了问题域中事物之间实际存在的各种关系。原型化方法的特点是:先获得一组基本的需求后,快速地加以“实现”;随着用户或开发人员对系统理解的加深而不断地对这些需求进行补充和细化,系统的定义是在逐步发展的过程中进行的,而不是一开始就预见一切。原型化方法是确定需求的策略,对用户的需求进行抽取、描述和求精。它快速地迭代并建立最终系统的工作模型,它对问题的定义采用启发的方式,并由用户做出响应。原型化方法特别适用于最初不能严格定义用户需求或需求经常发生变化的系

25、统。(2)准备开发环境,制定开发计划在具体研究需求分析之前,先了解一下软件工程这个概念。软件工程分为3个层次:过程层、方法层、工具层。在最基础的过程层,最重要的就是一组被称为关键过程区域(KPAs)的框架(KPA的概念在讨论CMM的书中有详细的概念说明)。关键过程区域构成了软件项目管理控制的基础,并且确立了上下文各区域的关系,其中规定了技术方法的采用,工程产品的模型、文档、数据、报告、表格等的产生,里程碑的建立,质量的保证及变化的适当管理。方法层主要是过程在技术上的实现,它解决的问题是如何做。软件工程方法涵盖了一系列的任务:需求分析、设计、编程、测试、维护,同时它还包括了一组基本原则,控制了每

26、一个的关键过程区域。工具层就很好理解了,它对过程层和方法层提供了自动和半自动的支持。这些辅助工具就称为CASE。2 .难点分析软件开发环境是指支持软件产品开发的软件系统,它由软件工具集和环境集成机制构成。用来辅助软件开发、运行、维护、管理、支持等过程中的活动的软件称为软件工具,工具集应包括支持软件开发相关过程、活动、任务的软件工具,以对软件开发提供全面的支持。软件工具按照软件过程的活动可以划分为支持软件开发过程的工具、支持软件维护过程的工具、支持软件管理过程和支持过程的工具等。用户应该根据费用、功能、易用性、稳健性、硬件要求和性能、服务支持等标准来综合选择软件开发工具。软件开发环境是支持软件产

27、品开发的软件系统。它由软件工具集和环境集成机制构成,前者用来支持软件开发的相关过程、活动;后者为工具集成和软件开发、维护和管理提供统一的支持,它通常包括数据集成、控制集成和界面集成。通过环境集成机制,各工具用统一的数据接口规范存储或访问环境信息库;各工具采用统一的界面形式,保证各工具界面的i致性,同时为各工具或开发活动之间的通信、切换、调度和协同工作提供支持。在软件开发环境中进行软件开发,可以使用环境中提供的各种工具,同时在环境信息库的支持下,一个工具所产生的结果信息可以被其他工具利用,使得软件开发的各项活动得到连续的支持。3 .典型例题【例题1-6目前大型数据库管理系统有多种,请根据自己的项

28、目经验,从总体上评价目前主流的大型数据库。【解析】这里主要引用SQLSerVer、DB2OracleSybaSe4种数据库,Informix也是非常不错的数据库,现己经与DB2合为一体。无论是从性能、技术、安全上考虑,Oracle都是不错的选择,适用于各种级别的应用。DB2紧跟其后,但是市场份额方面,主要在大型机上占绝对优势。性价比方面SQLSerVer还不错,可用性和易用性是最好的,但是安全性不够理想。在考虑多平台时,SybaSe是SQLSerVer的很好的替代品。开源数据库中,MySQL和PoStgreSQL都非常优秀,虽然在事务处理方面,各自都有些缺陷,但是使用成本却是最低的。【例题就开

29、放性、可伸缩性、并行性、性能、易用性、使用风险等方面,列举采购微软公司SQLSerVer数据库时的注意点。【解析】SQLServer只能在WindOWS上运行,没有丝亳的开放性,操作系统的系统的稳定对数据库是十分重要的;WindOWs9X系列产品是偏重于桌面应用,NTSerVer只适合中小型企业;而且Windows平台的可靠性、安全性和伸缩性是非常有限的;它不像UNIX那样久经考验,尤其是在处理大数据量的关键业务时;并行实施和共存模型并不成熟;很难处理日益增多的用户数和数据卷,伸缩性有限;SQLSerVer还没有获得任何安全证书,安全性不够理想。相对其他大型商业数据库,SQLSerVer在多用户并发时性能不佳;操作简单,但只有图形界面;并不十分兼容早期产品;使用需要冒一定风险。【例题1-8就开放性、可伸缩性、并行性、性能、易用性、使用风险等方面,列举采购Oracle数据库时的注意点。【解析】OraCIe能在所有主流平台上运行;完全支持所有的工业标准;采用完全开放策略;可以使客户选择最适合的解决方案;对开发商全力支持;特别是OraCle并行服务器通过使一组结点共享同一簇中的工作来扩展WindowsNT的能力,提供高可用性和高伸缩性的簇的解决方案;如果WirId。WSNT不能满足需要,用户可以把数据库移到UNIX中;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号