数据库设计步骤与系统开发阶段的关系

数据库设计步骤与系统开发阶段的关系,第1张

一般一个面向对象的系统,开发阶段:需求确认——概要设计——详细设计——编码——单元测试——集成测试——系统测试——维护 。数据设计步骤:需求分析,概念设计,逻辑设计,物理设计,数据库实施与维护。我们知道,系统开发的软件是让人使用的,为使用者提供一种可视化可 *** 作的界面,而使用者使用这个系统是为了查询或者 *** 作数据,一个没有数据库的系统是死系统,没有意义。 数据库设计的第一个阶段需求分析是在系统开发之前考虑的,也考虑用户需要知道什么数据,需要 *** 作那些数据,第二阶段概念设计到第四阶段都是围绕第一阶段设计考虑的。 与系统开发阶段相关的是第一阶段需求分析和最后的实施维护,数据库设计和系统开发相辅相成,系统开发的需求是为了了解用户能看到(前台)哪些界面,拥有哪些 *** 作。而界面中显示的信息, *** 作的数据结果是数据库(后台)设计的。 打个比方,如一个游戏系统,比如《热血传奇》,双击游戏图标跳出界面,里面有区选择框,这个界面有多大,有多少按钮,这是系统开发需求的设计,而界面里显示哪些新闻公告,显示几个区,是数据库设计的。游戏版本升级,新功能是系统开发编码实现,新功能显示的新数据是数据库实现。游戏测试如果有BUG,数据错误是数据库出错,按钮无效则是前台功能无效。修复BUG,修复数据是数据库维护,修复按钮功能是单元维护。 整个游戏测试就是系统测试。

第13章 数据库应用系统设计概述

131 数据库设计概述

1311 数据库系统设计内容

数据库设计包含两方面的内容。

1 结构特性设计

结构特性设计通常是指数据库模式或数据库结构设计,它应该具有最小冗余的、能满足不同用户数据需求的、能实现数据共享的系统。数据库结构特性是静态的,应留有扩充余地,使系统容易改变。

2 行为特性设计

行为特性设计是指应用程序、事物处理的设计。

1312 数据库设计特点

数据库设计是一项综合性技术。“三分技术,七分管理,十二分基础数据”是数据库建设的基本规律。数据库设计的特点是:

硬件、软件和管理界面相结合。

结构设计和行为设计相结合。

132 数据库设计步骤

见图。

133 数据库结构设计

1331 需求分析

需求分析的目标是准确了解系统的应用环境,了解并分析用户对数据及数据处理的需求。

1 收集需求信息

一般来讲,用户对数据库的要求如下:

(1)信息需求

(2)处理需求

(3)安全性与完整性要求

2 分析整理

分析的过程是对所收集到的数据进行抽象的过程。下面是“高校收费管理系统”的用户需求分析:

每年新生入学时学费基本信息的输入

每年老生离校时学生基本信息的删除

查询、打印学生的交费情况

查询、打印降级生的交费情况

进入学费管理系统的安全性条件设计

3 数据流图

数据库设计中采用数据流图(DFD:Data Flow Diagram)来描述系统的功能。DFD一般由下面图素构成。

:数据及其流动方向,直线上方标明数据流名称

:数据处理,圆圈内标明处理名称

:数据流的终点和源点,方框内标明相应的名称

:文件和数据存储,在其内标明相应名称

例如:高校收费管理系统

4.数据字典

数据字典(DD:Data Dictionary)用于记载系统中的各种数据、数据元素以及它们的名字、性质、意义及各类约束条件,记录系统中用到的常量、变量、数组及其他数据单位,是系统开发与维护中不可缺少的重要文件。数据字典是关于数据库中数据的一种描述,而不是数据本身。数据字典是在需求分析阶段建立,在数据库设计过程中不断修改、充实、完善的。

数据字典产生于数据流图,是对数据流图中的四个成分(数据流、数据项、文件和处理)描述的结果。其中:

数据流描述:定义数据流的组成,一般包含若干数据项,通常在数据流图的下方通过“说明”定义。

文件描述:定义文件的组成以及文件的组织方式,如学生交费数据可用下面方法描述:

交费数据=学号+姓名+收费标准+应交学费+待交学费+本次交款

数据项描述:定义数据项,一般包括名称、类型长度、允许范围等。如学生交费数据文件中的数据项。

数据项名称 类型 长度(字节) 范围

学号 字符 8 H、G和数字

姓名 字符 8 任何字母

收费标准 正整数 5 0-99999

应交学费 正整数 5 0-99999

待交学费 正整数 5 0-99999

本次交款 正整数 5 0-99999

数据处理的描述:说明数据处理的逻辑关系,即输入与输出之间的逻辑关系。同时,也要说明数据处理的触发条件、错误处理等问题。

1332 概念结构设计

概念结构的目标是将需求分析得到的用户需求抽象为数据库的概念结构,即概念模式。概念结构设计形成一个独立于具体DBMS的概念模型。描述概念模式的是E―R图。

1 局部E-R模型设计

局部E―R模型设计是从数据流图出发确定实体和属性,并根据数据流图中表示的对数据的处理、确定实体之间的联系。

2 总体E-R模型设计

将各个局部E―R图加以综合,使同一个实体只出现一次,便可产生总体E―R图。

1333 逻辑结构设计

数据库的逻辑结构设计的目标就是将概念结构转换成特定的DBMS所支持的数据模型,并对其优化的过程。逻辑设计阶段一般分三个过程进行:

将概念结构转换为一般的关系、网状、层次模型;

将由概念结构转换来的模型向所选用DBMS支持的数据模型转换;

对数据模型进行优化

1334 物理设计

数据库的物理设计目标是在选定的DBMS上建立起逻辑设计结构确立的数据库的结构。这项工作一般由系统程序员完成。数据库的物理设计通常分为两步进行。

1 确定数据库的物理结构

在关系数据库中,确定数据库的物理结构主要指确定数据存放位置和存储结构,包括确定关系、索引、日志、备份等数据的存储分配合存储结构,确定系统配置等工作。

2 对所确定的物理结构进行评价

134 应用程序设计

数据库的应用程序设计和一般的应用程序设计方法基本相同。

应用程序的设计方法可以采用一般的程序设计方法。

135 运行和维护

1351 数据载入数据库

1352 数据库系统试运行

在试运行阶段应当注意:

1 数据的加载过程应先输入小部分数据进行试运行

2 应注意数据库的转储和恢复工作

1353 数据库系统的运行和维护

在数据库系统正式运行阶段,对数据库的经常性维护工作是由DBA来实施的,他的工作主要包括:

1 数据库的转储和恢复

2 数据库的安全性和完整性控制

3 数据库性能的监督、分析和改造

4 数据库的重组与重构

(1)数据库的重组

(2)数据库的重构

136 小结

本章通过高校收费管理系统数据库的构建与设计过程的详细描述,学习了数据库设计的基本方法,数据库设计的基本流程,E-R图的建立和到关系模式的转换,学习了软件工程的基本思想,为后续课程数据库开发技术打好基础。

数据库应用系统的开发是一项软件工程。一般可分为以下几个阶段:1规划2需求分析3概念模型设计4逻辑设计5物理设计6程序编制及调试7运行及维护。这些阶段的划分目前尚无统一的标准,各阶段间相互联接,而且常常需要回溯修正。在数据库应用系统的开发过程中,每个阶段的工作成果就是写出相应的文档。每个阶段都是在上一阶段工作成果的基础上继续进行,整个开发工程是有依据、有组织、有计划、有条不紊地展开工作。1规划规划的主要任务就是作必要性及可行性分析。在收集整理有关资料的基础上,要确定将建立的数据库应用系统与周边的关系,要对应用系统定位,其规模的大小、所处的地位、应起的作用均须作全面的分析和论证。明确应用系统的基本功能,划分数据库支持的范围。分析数据来源、数据采集的方式和范围,研究数据结构的特点,估算数据量的大小,确立数据处理的基本要求和业务的规范标准。规划人力资源调配。对参与研制和以后维护系统运作的管理人员、技术人员的技术业务水平提出要求,对最终用户、 *** 作员的素质作出评估。拟定设备配置方案。论证计算机、网络和其他设备在时间、空间两方面的处理能力,要有足够的内外存容量,系统的响应速度、网络传输和输入输出能力应满足应用需求并留有余量。要选择合适的os,dbms和其它软件。设备配置方案要在使用要求、系统性能、购置成本和维护代价各方面综合权衡。对系统的开发、运行、维护的成本作出估算。预测系统效益的期望值。拟定开发进度计划,还要对现行工作模式如何向新系统过渡作出具体安排。规划阶段的工作成果是写出详尽的可行性分析报告和数据库应用系统规划书。内容应包括:系统的定位及其功能、数据资源及数据处理能力、人力资源调配、设备配置方案、开发成本估算、开发进度计划等。可行性分析报告和数据库应用系统规划书经审定立项后,成为后续开发工作的总纲。数据库应用系统的开发是一项软件工程,本文介绍了数据库应用系统的开发步骤2需求分析需求分析大致可分成三步来完成。(1)需求信息的收集,需求信息的收集一般以机构设置和业务活动为主干线,从高层中层到低层逐步展开(2)需求信息的分析整理,对收集到的信息要做分析整理工作。数据流图(dfd,dataflowdiagram)是业务流程及业务中数据联系的形式描述。图41是一个简单的dfd示例。数据字典(dd,datadictionary)详细描述系统中的全部数据。数据字典包含以下几个部分。·数据项:是数据的原子单位。·数据组项:由若干数据项组成。·数据流:表示某一数据加工过程的输入/输出数据。·数据存储:是处理过程中要存取的数据。·数据加工过程数据加工过程的描述包括:数据加工过程名、说明、输入、输出、加工处理工作摘要、加工处理频度、加工处理的数据量、响应时间要求等。数据流图既是需求分析的工具,也是需求分析的成果之一。数据字典是进行数据收集和数据分析的主要成果。(3)需求信息的评审开发过程中的每一个阶段都要经过评审,确认任务是否全部完成,避免或纠正工作中出现的错误和疏漏。聘请项目外的专家参与评审,可保证评审的质量和客观性。评审可能导致开发过程回溯,甚至会反复多次。但是,一定要使全部的预期目标都达到才能让需求分析阶段的工作暂告一个段落需求分析阶段的工作成果是写出一份既切合实际又具有预见的需求说明书,并且附以一整套详尽的数据流图和数据字典。3概念模型设计概念模型不依赖于具体的计算机系统,他是纯粹反映信息需求的概念结构。建模是在需求分析结果的基础上展开,常常要对数据进行抽象处理。常用的数据抽象方法是‘聚集’和‘概括’。er方法是设计概念模型时常用的方法。用设计好的er图再附以相应的说明书可作为阶段成果概念模型设计可分三步完成。(1)设计局部概念模型①确定局部概念模型的范围②定义实体③定义联系④确定属性⑤逐一画出所有的局部er图,并附以相应的说明文件数据库应用系统的开发是一项软件工程,本文介绍了数据库应用系统的开发步骤(2)设计全局概念模型建立全局er图的步骤如下:①确定公共实体类型②合并局部er图③消除不一致因素④优化全局er图⑤画出全局er图,并附以相应的说明文件。(3)概念模型的评审概念模型的评审分两部分进行第一部分是用户评审。第二部分是开发人员评审。4逻辑设计逻辑设计阶段的主要目标是把概念模型转换为具体计算机上dbms所支持的结构数据模型。逻辑设计的输入要素包括:概念模式、用户需求、约束条件、选用的dbms的特性。逻辑设计的输出信息包括:dbms可处理的模式和子模式、应用程序设计指南、物理设计指南。(1)设计模式与子模式关系数据库的模式设计可分四步完成。①建立初始关系模式②规范化处理③模式评价④修正模式经过多次的模式评价和模式修正,确定最终的模式和子模式。写出逻辑数据库结构说明书。数据库应用系统的开发是一项软件工程,本文介绍了数据库应用系统的开发步骤(2)编写应用程序设计指南根据设计好的模式和应用需求,规划应用程序的架构,设计应用程序的草图,指定每个应用程序的数据存取功能和数据处理功能梗概,提供程序上的逻辑接口。编写出应用程序设计指南。(3)编写物理设计指南。根据设计好的模式和应用需求,整理出物理设计阶段所需的一些重要数据和文档。例如,数据库的数据容量、各个关系(文件)的数据容量、应用处理频率、 *** 作顺序、响应速度、各个应用的lra和tv、程序访问路径建议,等等。这些数据和要求将直接用于物理数据库的设计。编写出物理设计指南。5物理设计物理设计是对给定的逻辑数据模型配置一个最适合应用环境的物理结构。物理设计的输入要素包括:模式和子模式、物理设计指南、硬件特性、os和dbms的约束、运行要求等。物理设计的输出信息主要是物理数据库结构说明书。其内容包括物理数据库结构、存储记录格式、存储记录位置分配及访问方法等。物理设计的步骤如下:(1)存储记录结构设计综合分析数据存储要求和应用需求,设计存储记录格式。(2)存储空间分配存储空间分配有两个原则:①存取频度高的数据尽量安排在快速、随机设备上,存取频度低的数据则安排在速度较慢的设备上。②相互依赖性强的数据尽量存储在同一台设备上,且尽量安排在邻近的存储空间上。从提高系统性能方面考虑,应将设计好的存储记录作为一个整体合理地分配物理存储区域。尽可能充分利用物理顺序特点,把不同类型的存储记录指派到不同的物理群中。(3)访问方法的设计一个访问方法包括存储结构和检索机构两部分。存储结构限定了访问存储记录时可以使用的访问路径;检索机构定义了每个应用实际使用的访问路径。数据库应用系统的开发是一项软件工程,本文介绍了数据库应用系统的开发步骤(4)物理设计的性能评价①查询响应时间从查询开始到有结果显示之间所经历的时间称为查询响应时间。查询响应时间可进一步细分为服务时间、等待时间和延迟时间。在物理设计过程中,要对系统的性能进行评价。性能评价包括时间、空间、效率、开销等各个方面。⊙cpu服务时间和i/o服务时间的长短取决于应用程序设计。⊙cpu队列等待时间和i/o队列等待时间的长短受计算机系统作业的影响。⊙设计者可以有限度地控制分布式数据库系统的通信延迟时间。②存储空间存储空间存放程序和数据。程序包括运行的应用程序、dbms子程序、os子程序等。数据包括用户工作区、dbms工作区、os工作区、索引缓冲区、数据缓冲区等。存储空间分为主存空间和辅存空间。设计者只能有限度地控制主存空间,例如可指定缓冲区的分配等。但设计者能够有效地控制辅存空间。③开销与效率设计中还要考虑以下各种开销,开销增大,系统效率将下降。⊙事务开销指从事务开始到事务结束所耗用的时间。更新事务要修改索引、重写物理块、进行写校验等 *** 作,增加了额外的开销。更新频度应列为设计的考虑因素。⊙报告生成开销指从数据输入到有结果输出这段时间。报告生成占用cpu及i/o的服务时间较长。设计中要进行筛选,除去不必要的报告生成。⊙对数据库的重组也是一项大的开销。设计中应考虑数据量和处理频度这两个因数,做到避免或尽量减少重组数据库。在物理设计阶段,设计、评价、修改这个过程可能要反复多次,最终得到较为完善的物理数据库结构说明书。建立数据库时,dba依据物理数据库结构说明书,使用dbms提供的工具可以进行数据库配置。在数据库运行时,dba监察数据库的各项性能,根据依据物理数据库结构说明书的准则,及时进行修正和优化 *** 作,保证数据库系统能够保持高效率地运行。6程序编制及调试在逻辑数据库结构确定以后,应用程序设计的编制就可以和物理设计并行地展开程序模块代码通常先在模拟的环境下通过初步调试,然后再进行联合调试。联合调试的工作主要有以下几点:数据库应用系统的开发是一项软件工程,本文介绍了数据库应用系统的开发步骤(1)建立数据库结构根据逻辑设计和物理设计的结果,用dbms提供的数据语言(ddl)编写出数据库的源模式,经编译得到目标模式,执行目标模式即可建立实际的数据库结构。(2)调试运行数据库结构建立后,装入试验数据,使数据库进入调试运行阶段。运行应用程序,测试(3)装入实际的初始数据在数据库正式投入运行之前,还要做好以下几项工作:(1)制定数据库重新组织的可行方案。(2)制定故障恢复规范(3)制定系统的安全规范7运行和维护数据库正式投入运行后,运行维护阶段的主要工作是:(1)维护数据库的安全性与完整性。按照制定的安全规范和故障恢复规范,在系统的安全出现问题时,及时调整授权和更改密码。及时发现系统运行时出现的错误,迅速修改,确保系统正常运行。把数据库的备份和转储作为日常的工作,一旦发生故障,立即使用数据库的最新备份予以恢复。(2)监察系统的性能。运用dbms提供的性能监察与分析工具,不断地监控着系统的运行情况。当数据库的存储空间或响应时间等性能下降时,立即进行分析研究找出原因,并及时采取措施改进。例如,可通修改某些参数、整理碎片、调整存储结构或重新组织数据库等方法,使数据库系统保持高效率地正常运作。(3)扩充系统的功能在维持原有系统功能和性能的基础上,适应环境和需求的变化,采纳用户的合理意见,对原有系统进行扩充,增加新的功能。

中国地热资源数据库建设工作必须按照其数据组成及属性表规定的数据格式的具体要求,在对相关数据资料进行整理的基础上,按照制定的数据卡片逐项填写内容。并在建立健全检查制度的基础上,确保数据卡片的内容详实、准确。再在Aess系统中完成属性数据的录入,并进行校核。图形的数字处理在MapGIS系统中完成(图2-5)。

图2-5中国地热资源数据库建设数据流程

就我个人的经验来说,数据库虽然在设计上确实需要有一定的经验,但是它并不是最难的。

对于数据的设计其实是对于现实中业务的一种抽象。

就我的习惯的话,我会先对于现实中的业务场景、业务的角色进行分析。

就拿一般的进销存系统来举例吧。

我有一个对于物料管理的仓库,我需要对我的物料的进销存进行管理。

那么我们就需要分析,没有系统的时候,人与人之间的业务是怎么流转的,他们都是通过哪些表单来进行流转的,上下级之间的消息传递和反馈都是怎么进行的。

当知道了业务以后,我们的数据库无非就是对于现实中的业务的一种具现。

对于业务的设计完成以后,就是针对角色的了。

例如:业务的传递都是在业务人员之间的,我们已经整理表单的传递,那角色其实就已经在这些传递中存在了。

但是,业务的角色是业务的角色,我们还要包括财务的角色,那对于财务来说,他需要在哪些环节看到这些业务的单据?并且需要怎么处理?财务的处理结果又包括哪些?不同的处理结果对于下一步的 *** 作又有什么影响。

当我们把这一切的逻辑整理完成后,我们对于数据库的功能上就已经满足了。

接下来的就是抽象数据的分类了。

例如:我们需要对不同的表进行一个分类,我个人喜欢把表分成三种,一种是基础数据表,一种是过程表,一种是结果表。

怎么解释呢?

基础数据表:顾名思义,就是对于基础数据的维护,哪些可以成为基础数据呢?就是我们的业务发生的各个过程中,这些数据都是可以参与其中的,这就是基础数据。

例如:货物的信息,客户的信息。

过程表:就是仅仅在一个过程中使用的表,当这个过程结束了,这个表就没用了。

例如:订单表,付款单表。他们表示的仅仅是订单从下单到最后关闭的这个过程,关闭以后,这个订单表其实我们就不会再去使用它了。

结果表:这个表的数据有一个特点,只允许添加,不允许删除和修改,这个表的数据本身就是对于一种最终结果的表现。

例如:日志表、账单表。

那我们在进行数据库设计的时候,就需要将这些使用情况考虑进去,将不同功能的表进行分离,尽量降低耦合,让相互表的修改不会影响使用。

例如:收款单,我们需要收一笔款的时候,就会生成这个收款单,当款收到后,这个收款单的功能就结束了。

但现实的情况中,可能财务收到了这笔钱,结束了收款单流程后,他发现填错了,本来应该收100,结果收款单写的110。

但是,收款单表示的是过程,当这个过程结束了,我们就不会再需要上一个收款单了,所以,按照我们业务的处理流程,我们应该先生成一笔冲抵的收款单,例如收到-110,然后再生成新的100的收款单。

我们每个月还会有财务统计报表,财务报表因为和现实中的财务账有关,是绝对不允许变动的,因此,这个财务报表就是一个结果表,我们会按月通过批处理程序,将收款单的明细和统计数据放到另一张表中,感觉好像比较冗余,但是这个确实非常必要的。

因为我曾经就遇到过一个情况,我们直接用过程表来进行数据的统计,然后11月30日有一笔收款已经完成了,结果发现收错了,就重新做了个收款单,结果本来已经出了11月结果的账单发生了变化,导致财务实际的处理出现了问题。

因此,数据的冗余有时候是有必要的,我们需要根据不同表的类型进行一些冗余的设计。

对于数据库设计的考虑点还有很多,可能一时半会儿也说不完,大家如果有什么好的思路,也可以在下方评论或关注我给我留言。

以上就是关于数据库设计步骤与系统开发阶段的关系全部的内容,包括:数据库设计步骤与系统开发阶段的关系、如何设计开发数据库应用系统、简述数据库应用系统开发的一般过程等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/10194528.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存