第6部分-概要设计_第1页
第6部分-概要设计_第2页
第6部分-概要设计_第3页
第6部分-概要设计_第4页
第6部分-概要设计_第5页
已阅读5页,还剩89页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2026/5/131第3章

概要设计3.1概要设计的概念概要设计在软件工程中处于上流作业的设计工程的位置,概要设计是软件设计工程中的一个非常重要的作业步骤。概要设计和详细设计构成了设计工程。

2026/5/1323.1.1设计工程的概念

设计工程就是把需求分析过程中确定下来的用户需求定义书(What=做什么)变为能够进行实际操作的设计说明书(How=怎样做)的工程。设计工程是一个将系统的需求规格转换成软件系统的说明过程。从多个可能的思路中找到最佳的解决方案。其任务包括构建系统框架,设计系统功能,描述系统流程,建立系统的数据模型、接口模型及界面模型,形成系统的逻辑结构,告诉程序员软件系统应该“怎样做”。2026/5/133

设计工程又被分为外部设计和内部设计的两大类。与用户的接口设计和与外部系统的接口相关的设计称为外部设计(从用户的角度看得到的)采用什么样的结构和方法去实现外部设计书的功能的设计称为内部设计(从开发者的角度看得到的)。长期以来,人们通常把外部设计称为概要设计,把内部设计称为详细设计。概要设计和详细设计在软件开发的过程中处于上流工程作业的位置。

2026/5/134总体设计:对整个系统的结构做的广泛设计,也叫概念设计。细节设计:底层设计,包括具体的程序细节的设计。2026/5/135系统设计的目标

系统分析:解决“做什么”

系统设计:解决“怎么做”系统设计的目标和任务2026/5/136系统设计的任务

问题结构(系统需求)

系统结构从系统分析说明书出发,形成系统的具体设计方案。系统设计的目标和任务映射2026/5/137软件设计的目标和任务根据用信息域表示的软件需求,以及功能和性能需求,进行

数据设计系统结构设计过程设计2026/5/138数据设计侧重于数据结构的定义。系统结构设计定义软件系统各主要成份之间的关系。过程设计则是把结构成分转换成软件的过程性描述。在编码步骤,根据这种过程性描述,生成源程序代码,然后通过测试最终得到完整有效的软件。2026/5/139数据字典数据流图E-R图加工小说明流程描述处理描述数据对描述象数据设计模块结构设计接口设计过程设计分析模型设计模型平台设计系统设计模型2026/5/1310软件设计任务从工程管理的角度来看,软件设计分两步完成。

概要设计,即总体设计。将软件需求转化为数据结构和软件的系统结构。

详细设计,即过程设计。通过对结构表示进行细化,得到软件的详细的数据结构和算法。2026/5/13112026/5/13123.1.2概要设计的内容和设计过程

1、概要设计的任务系统结构设计功能模块和子系统划分用户界面和接口设计数据库设计安全性设计作出新系统的功能说明书系统移植设计运用/故障处理设计调整开发计划验收确认2026/5/1313作业项目作业内容主要的结果资料系统结构设计系统体系结构的设计和硬件、网络环境设备的配置软件开发平台的选定系统体系结构的设计说明,系统环境(硬件、网络)设备配置和使用软件开发平台的说明功能模块和子系统划分功能模块的划分和大规模的系统开发时,可以分解为几个子系统系统的结构和功能定义新物理DFD(数据流程图)用户界面和接口设计窗体操作和窗体设计、报表设计、与他系统的接口设计窗体关联图、窗体设计式样,报表设计式样、接口设计说明书、外部编码设计数据库设计逻辑数据库设计ER图,数据库一览表数据库表定义书

安全性设计从安全性、保密性、可操作性考虑,设计出必要的安全措施系统安全设计说明书作成新系统的功能说明书作出新系统的功能说明书把新物理DFD展开为业务处理流程系统概要说明书业务处理流程图系统移植设计向新系统移植的软硬件内容的讨论,移植方案设计系统移植方案设计书(移植数据对象,移植方针)运用/故障处理设计系统运用和故障处理的基本方案设计运用基本方案设计书故障处理基本方案设计书调整开发计划全系统开发计划的调整,作出内部设计之后的各工程的工作计划开发计划表验收确认把概要设计书提交给用户验收确认概要设计书(修改后)2026/5/13143.2系统结构的设计

3.2.1体系结构设计原则

⑴合适性⑵结构稳定性⑶模块可扩展性⑷代码可复用性

2026/5/13153.2.2体系结构设计的步骤

系统体系结构设计的主要过程包括设计准备、设计策划、需求再确认、文档编写以及设计评审五个关键环节。其中策划设计方案包括界定设计约束条件、确定设计策略、分解设计任务三个主要环节,如图所示。

2026/5/1316系统设计准备界定约束条件确定设计策略分解设计任务需求再确认编写设计文档系统设计评审策划设计方案2026/5/13171、设计准备设计准备阶段的工作主要包括以下几方面内容:⑴制定设计小组在设计过程中应该共同遵守的标准和规范;⑵体系结构设计人员首先应仔细阅读需求文档,明确设计工作的范围和任务;⑶根据设计目标确定最适合的设计方案、方法和工具;⑷编制设计工程的阶段性开发计划。

2026/5/13182、界定影响系统设计的约束边界

⑴本系统需要遵循的相关标准或规范;⑵系统实现所依赖的软硬件环境的约束;⑶本系统与其他系统间的接口要求;⑷系统采用通讯协议方面的约束;⑸用户界面的约束;⑹软件质量的约束2026/5/13193、系统策划与组织

⑴设计模式,根据本产品的功能性需求和非功能性需求,确定体系结构设计模式。设计模式的确定是结构设计中最重要的环节,一个好的模式能为系统的扩充、复用等策略提供良好的支持。⑵系统设计模板的确定,就像写书时首先应确定大纲内容一样,编写系统设计文档之前也应首先确定系统的内容及其组织编排方式,这主要从结构、功能、性能、接口、信息模块以及进度、经费等方面着重考虑。2026/5/13204、分解系统设计任务

⑴按照确定的体系结构设计模式,将一个复杂的系统分解成为若干子系统,确定每个子系统的功能,建立并确定与软件需求间的对应关系以及各个子系统之间的关系,绘制系统的总体结构图。⑵将子系统分解成若干个模块,确定每个模块完成的功能以及模块之间的调用关系,并确定模块间的调用接口。

2026/5/13213.2.3系统平台的选择

系统平台的选择对软件系统的体系结构有很大的影响。近年来,随着开放式计算机系统的发展,系统平台的选择范围变得越来越宽,系统平台的设计也增加了很多困难。为了设计出最恰当的系统平台,建立一个明确的基准显得越来越重要了。2026/5/1322“系统平台”就是确定系统部件的构成和各个部件之间的接口方法。(硬件、网络、使用的中间件/框架、数据的配置和存取方式、应用的部件(2层/3层)等。例图3.11系统设备配置概念图2026/5/13231、从业务面来看系统平台的需求事项⑴应用类型的识别

⑵信息的集中处理和分散处理的需求

系统性能的要求

⑷可靠性的要求⑸系统的生命周期⑹系统运行体制的要件2026/5/13242、从信息技术的发展动向来看系统平台的选择

⑴硬件、软件的扩展性/可靠性/开放性/性能⑵开发工具的发展动向

2026/5/1325系统结构与开发平台一般技术选型要明确以下信息:·主要硬件环境,如:数据库服务器和应用服务器采用IBM的RS/6000系列的S85。·操作系统,如:数据库服务器和应用服务器采用IBM的AIX,客户机采用WIN2000。·应用系统内的各种服务器软件,如:应用服务器采用WebSphere,数据库服务器采用DB2。·开发语言及开发工具,如:开发语言是MicrosoftVisualC++6.0.·CASE(计算机辅助设计)软件,如:PowerDesigner,Visio2026/5/1326体系的选取有如下几点关键问题:1.是单机还是客户机/服务器系统?2.是常规应用开发还是底层开发(是否有单片机系统)?3.客户机最大点数是多少?4.是否提供给第三方API接口?5.网络(或数据通信)是什么连接方式?6.客户机是胖客机还是瘦客户机?7.数据文件的保存方式(文本、本地数据库、大型数据库)?我们必须针对以上的问题的回答,进行相应系统体系的取选。在取选的过程中,很多现实大型系统实际是多种体系混合的。2026/5/1327判断基准(c)重要度(p)案1(t=p*v)案2案3评价(v)得分(t)评价(v)得分(t)评价(v)得分(t)软硬件的成能的完整性8432548324成功经验/扩展性12448224336可靠能10440550330扩充性6318536530开发成本8432324540维护成本428312416运用的简便性6212424424售后服务10220330220合计--367-383-3342026/5/13283.3功能模块和子系统的划分

在传统的软件工程学科中,模块化“功能独立,并且可以被集成”已成为一种普遍被接受的方法。系统功能的模块化设计不仅可以减少系统的复杂性,使系统便于修改,而且还容易实现一个系统不同部分的并行开发。

2026/5/13293.3.1功能模块的划分

1、模块设计的原则

《软件制造工程》中2.2.1

2、系统功能模块的设计

(1)接口定义“整体纽带”

(2)数据结构与程序流程的确定

(3)确定模块之间的组织关系

2026/5/13303.3.2子系统的划分

所谓子系统的划分,就是把开发设计的对象按适当的规模进行细化。使大规模的开发系统变为多个中小规模的子系统的集合。大规模系统开发过程中,要随时进行各个工程的人员和业务之间的调整。2026/5/1331子系统划分的有效之处有以下几个方面:⑴容易理解开发系统业务的总体概要;⑵能够减少系统设计的复杂性;⑶多个子系统的设计开发可以同步进行,以缩短开发周期。

2026/5/1332

在应用系统的开发过程中,我们首先按照需求分析阶段所得到的数据流程图DFD进行子系统划分,同时考虑业务流程,功能集合,使用者的类别,减少接口等因素进行子系统分割处理。

一般来讲,按照业务流程和处理功能集合来划分子系统,在各种业务处理的关连性不强的情况下,对于系统概要和处理功能的理解很有好处,大规模开发系统多采用这种原则。2026/5/1333有些时候,我们也需要按使用者的种类和权限或者使用时间(例如:日处理,月度处理,年度处理等)来划分子系统。

有些情况下,也要综合考虑各个方面的因素,划分出合理的子系统。子系统划分得好,能够减少窗体和数据库操作之间的接口,提高开发效率,确保开发系统的质量,提高用户的满意度。2026/5/1334当然,不论采用怎样的方式,子系统之间的接口或多或少都要存在,在系统概要设计阶段,要充分考虑好子系统之间的接口问题,做好相应的设计文档

2026/5/13353.4容易理解的用户接口设计对顾客满意度的影响很大,是概要设计过程中最重要的内容之一。用户接口设计主要包含用户界面设计、报表设计、模块之间的接口设计和模块与其他外部实体的接口设计等作业内容。以下主要介绍用户界面的窗体设计、报表设计和接口设计的基本方法。2026/5/13363.4.1用户界面窗体设计

用户认识的软件系统,就是显示在画面窗体的用户界面和打印出来的数据报表。因此,用户界面的质量直接关系到软件受用户的青睐程度,关系到软件系统的性能能否充分发挥,能否使用户高效率、轻松愉快满意地使用软件系统进行工作。是用户最能够调毛病的地方

2026/5/13371、用户界面窗体设计原则

⑴用户界面适合于软件的功能

⑵使用的简单性和易理解性

①界面中的所有元素(如菜单、工具条等)醒目无误、直观,不易让人误解;②通过向用户提供视觉或听觉的反馈,保持用户和界面的双向交流;③所有的界面元素应当提供充分而必要的提示,如当鼠标移动到工具条上的某个图标按钮时,应当在该图标旁边出现功能提示;2026/5/1338④提供上下文敏感的求助系统;⑤界面结构能够清晰地反映所处理业务的工作流程,以便用户按部就班地进行操作;⑥对于复杂的用户界面,最好提供界面“向导”,及时让用户知道自己在界面结构中所处的位置。例如对于基于Web的应用软件,应该在界面上显示“当前位置”,否则用户很容易在众多的页面中迷失方向。2026/5/1339⑶一致性原则

①在同一系统的用户界面中,所有的菜单选择、命令输入、数据显示和其他功能应始终保持同一种形式和风格;②采用统一的标号、约定俗成的缩写和预先定义好的颜色;③保证信息显示方式与数据输入方式的协调一致。

2026/5/1340⑷及时反馈信息

一个友好的用户界面应对用户的所有输入都立即做出反馈。无论系统给予用户的反馈信息多么简单,重要的是,要告诉用户要做的每一项操作。当系统进行长时间处理时,用户界面应提供用户等待信息及系统运行状态信息,避免用户对系统运行状态不了解而引起的操作失误。

2026/5/1341⑸出错处理用户在使用软件的过程中,不可避免地会出现一些错误的操作。在设计用户界面时必须考虑出错处理,常见的错误处理方式有:①提供对输入数据进行校验的功能。当用户输入错误数据时,及时提醒用户改正数据;②隐藏掉当前状态下用户不可操作的命令,以消除用户操作时的混乱;③提供撤消功能,以方便用户撤消不期望的操作;④当用户执行的是具有破坏性的操作时,应当提醒用户进行确认。

2026/5/1342⑹灵活性考虑到用户的特点、计算机应用水平,应当使用户界面能够满足不同用户的需求。对不同的用户,可提供不同的界面形式。有时,也可以让用户根据需要和自己的喜好定制和修改界面显示风格。

2026/5/13432、用户界面设计(GUI)的准备GUI(GraphicalUserInterface)设计是一个多学科的活动。

事先构造出来的“用户友好”的GUI画面设计式样

程序员根据开发环境进行一些适当的调整

注意不要为了实现某种效果而严重降低人机对话的响应时间,这样反而会影响用户的满意度。

2026/5/13442026/5/1345辅窗体采用多种形式和形状,主要有以下几种:

对话框;

标签夹;

下拉式列表;

消息框。2026/5/13462026/5/1347

类型1

进行系统设计方案的可视化效果的演示。类型2

在确定了用户接口的要件定义和设计方案的基础上,进行新的需求要件研讨和提案时进行演示版开发。类型3

确定设计式样的过程中,开发真正使用的系统的部分功能的演示版。2026/5/1348演示版制作时的注意事项:⑴使用户理解GUI的基本概念⑵不要使用纸张进行交流和确认

⑶要向用户说明演示版的功能与真正的开发系统之间的差别

⑷要确保具有决定权的用户参与

⑸尽可能在现场解决问题

⑹要向用户说明有关技术方面的评价

2026/5/13494、用户界面设计书的作成

按照标准化的设计方法,对于与画面控制紧密相关的部分作出处理流程图、窗体处理关联图等相关图形的设计书是很有实际应用效果的。教材106-113

2026/5/1350⑴窗体处理关联图

窗体处理关联图描述了应用系统中使用的所有主要画面窗体的名称、处理流程、各个窗体之间有什么样的调用关系,或者,窗体打开/关闭时的切换方法,各个窗体调用时的控制方法的描述等。为后阶段的设计和开发人员对系统整体概况的理解提供了一个很好的关联图。见书106图3.16

2026/5/1351⑵菜单画面的层次关系图描述应用系统内的各种功能中,各级菜单画面的层次结构。⑶功能控制的矩阵图

MDI等的应用开发时,决定出与菜单条的各个项目和各个对话框之间的控制关系。打开一个对话框时,要根据需要确定哪些菜单功能项目可以使用,哪些项目不能使用。

见书98页图3.162026/5/1352

5、用户界面的式样设计

⑴用户登录确认画面

⑵主菜单画面

⑶数据显示画面

⑷条件输入画面

⑸数据录入修改画面

⑹确认画面

见书100-104页2026/5/13532026/5/13543.4.2用户界面的报表式样的设计

定制式报表的设计主要是输出数据项目的内容,位置,类型和长度。一般不用设计输出项目的名称和提示信息。首先要搞清楚专用票据的样式,确保输出数据的内容被打印到指定的位置或表格中去,不能把票据上的数据项目名称和提示信息覆盖了,图3.22是一个专用票据的式样设计的例子。

2026/5/13553.4.3模块间的接口设计

模块间的接口也叫内部接口,它是由模块之间传递的数据和程序设计语言的特性共同决定的一般来说,分析模型中包含了足够的信息用于模块间的接口设计。在将数据流程图转换为软件结构图时,数据流程图中每个变换的输入和输出箭头必须映射到与该变换对应的模块接口上。内部接口的复杂度通常与模块之间的耦合度相关,内部接口的说明在程序设计详细说明书中描述。2026/5/13563.4.4模块的外部接口设计

模块与外部实体之间的接口叫做外部接口。外部接口设计起始于分析模型的数据流程图,首先分析数据流程图中的每个外部实体,外部实体的数据和控制需求确定下来以后,就可以设计外部接口了。模块的内部和外部设计接口设计必须要考虑数据验证和错误处理问题2026/5/13573.4.5用户接口的一致性和统一性

3.4.6连接其他系统的接口设计

作为系统之间的接口设计方法,有EAI(EnterpriseApplicationIntegration),它提供了进行系统之间的连接所需要的数据分类的功能,提供了在各个系统中进行数据格式变换的数据转换功能,或者把这些功能进行组合的辅助功能。见图3.272026/5/13583.4.7设计的评价和试运行系统用户接口设计,不仅有用户界面窗体设计和报表设计,还有响应时间和出错处理等重要的评价因素。关于用户界面窗体设计,如果使用开发工具,可以简单快捷地做出用户界面窗体,确认多个窗体连接运行的效果把关键部分的运行效果做出来让用户进行确认和评价,可以使用户通过概要设计阶段的成果物就能找出系统设计的遗漏事项。图3.24

2026/5/13593.5编码设计

编码设计的目的主要是为了提高系统运行效率,确保系统安全性。数据编码多用于数据存取处理时的关键字项目,编码设计是软件系统设计的重要内容。利用有效的编码体系,可以使设计开发人员更容易与用户进行交流,使设计文档资料的记述简单易懂。表3.5编码设计的方法

2026/5/13603.6安全设计

表3.6列出了信息安全的3个要素和在软件系统中的相关对策。

在软件开发过程中的信息保密保护对策,特别是对数据存取的控制处理是很重要的。

2026/5/1361信息安全的要素内容软件系统的对策保密性只允许特定的人存取信息系统。不允许由于盗听、非法存取、存放不当等原因把信息传给第三者。·数据库存取控制(密码,权限管理)·暗号编码安全保存性

确保存储数据的正确性、完整性,禁止数据被他人非法篡改和删除。·输入数据的检查·数据存取控制·数据库对策(排它控制,备份和恢复策略)·防止病毒·软件测试可靠性在特殊情况下,确保运行中的信息系统的准确性和效率。·数据库的Backup和Recovery对策·便于进行程序修改的设计文档的管理2026/5/1362对策内容技术信息保密·防止篡改密码设置公开密码键(RSA),保密密码键(DES)认证处理对象认证(callback),消息认证(RSA),数字签名等电子扫描存入静态图形,图象,声音的数字信息黑客侵入·病毒防止防火墙IP拦截,阻止黑客攻击,DMZ安全协议SSL,PGP计算机病毒防止策略杀毒软件,病毒库文件最近的安全对策2026/5/1363安全保存对策数据输入,数据库,软件的存储安全可靠性对策文件备份,重复线路设置安全对策事故防止策略,设备环境安全,安装UPS,入出门管理存取管理密码管理,使用ID·IC卡,通过人的相貌、指纹、声音等进行认证识别历来的安全对策2026/5/1364数据库的恢复管理向前恢复

磁盘等硬件故障发生时的处理方法……通过备份文件的内容和备份处理之后的日志文件的信息,恢复到故障发生之前的最新状态。回滚处理

事物处理故障(数据更新故障)发生时的处理方法……数据库文件更新过程中故障发生,更新处理没有正常结束的情况下,使用更新前的日志文件,恢复到故障发生时的状态。2026/5/1365数据库的存取控制排它控制防止由于同时存取数据库操作发生数据内容不一致或不匹配的现象的功能。存取控制规定每个使用者的数据库存取权限,允许按规定进行数据库记录存取的功能。流程控制防止经过多次数据存取的组合方式遗漏或丢失信息的功能。推论控制防止通过公开的多种信息推论出某个确切的人或集团的秘密信息密码控制对数据进行暗号加密存储,即使直接读出数据记录,也不能明白数据的含义的功能。2026/5/1366认证的种类概要方法身份认证确认是否为正确的通信对象的技术使用ID和密码认证使用回电确认(callback)功能消息认证监查消息是否被别人篡改的技术以隐藏加密键方式为基础,利用Hash函数和消息认证程序等数字签名保证文件内容的正确性,防止ID和密码被别人盗用的一种技术送信者用自己的加密键送信,收信者通过从认证机关获取的解密键进行数据识别2026/5/1367SSL

(SecureSocketLayer)对网络中传输的信息进行密码化(暗号化)处理的一种协议。与Web服务器之间的通信、使用FTP进行数据传输时采用这种方式SET(SecureElectronicTransactions)电子商务处理中,用于结帐或结算处理结果的送信。在电子商务处理中,该协议使得销售信息和结帐信息可以分开进行送信处理。PGP(PrettyGoodPrivacy)具有数字签名的功能,能够防止数据被恶意修改的一种协议。用于电子邮件处理等2026/5/13681、安全保存对策⑴输入数据的安全保存

⑵数据库的安全保存向前恢复

回滚处理排它控制存取控制流程控制推论控制密码控制2、可靠性对策3、安全对策4、存取权限管理

2026/5/13693.6.2网络安全对策

1、保护密码·防止篡改的对策

⑴暗号加密⑵认证2、黑客攻击·病毒感染

⑴防火墙⑵安全协议⑶计算机病毒防止策略

2026/5/13703.7数据库设计

数据库设计的目的为信息系统在数据库服务器上建立一个好的数据模型数据库设计的内容(数据库设计三个阶段)⑴数据库需求分析(概念模型)⑵数据库概念设计(ER、DD)(逻辑模型)⑶数据库物理设计其他因素

性能设计、存储设计、安全设计2026/5/1371新系统逻辑DFD的做成新系统物理DFD的做成概念设计逻辑设计物理设计·数据项目的决定·数据特性的分析

—使用形态,录入修改删除的频率—数据量,增加频率,更新周期·表的备用项目的选择·规范化·表的决定

—关键字项目的决定—非规范化设计的研究·视图的设计·数据死锁的回避策略·数据库的预测·故障处理的设计·数据库的空间分配·数据库的定义·表的定义·视图的定义·权限的定义·表索引的做成数据库设计的三个阶段数据库设计的流程用户开发者数据需求分析概念数据模型设计逻辑数据模型设计物理数据模型设计调查分析实体-联系模型关系模型在选定的DBMS平台上数据库文件

数据需求2026/5/1373关系数据库规范化所有非平凡数据结构分解为二维表方式并指定关键字——第一范式当关键字不止一个属性时,必须确保每个非关键字属性完全函数依赖于整个关键字——第二范式所有非关键字属性彼此独立——第三范式2026/5/1374(1)规范化形式

第一范式如果在一个数据结构中没有重复出现的数据项或空白值数据项,就称该数据结构是规范的。任何满足规范化要求的数据结构都称为第一规范形式,记为1NF。2026/5/1375例:不规范转为规范职工号姓名性别出生日期简历工作日期工作单位职务.........不规范转换职工号姓名性别出生日期工作日期工作单位职务职工基本情况职工简明表关键字:职工号2026/5/1376如果一个规范化的数据结构的所有非关键字数据项完全函数依赖于它的整个关键字,则称该数据结构是第二范式的,记为2NF。转化为第二范式的方法是:对于若干个关键字由若干个数据项组成的数据结构,必须确保所有的非关键字数据元素依赖于整个关键字。即去掉部分依赖关系,把它分解成若干个都是2NF的数据结构。

第二范式2026/5/1377部分依赖:假设ABC分别是同一个数据结构R中的三个元素或分别是R中若干个数据元素的集合。C依赖于AB的子集,则称C部分依赖于AB。否则,称为C完全依赖于AB。

AB->C,A->C则AB->C例如,(学号,课程号)->成绩(学号,课程号)->姓名

第二范式(续)ppf2026/5/1378例:第一范式转为第二范式材料供应商库存的关系如下:材料编号材料名称规格供应商名称供应商地址价格库存量库存占用资金关键字:材料编号+供应商名称材料名称、规格、供应商地址不完全依赖于关键字,不是2NF2026/5/1379例:第一范式转为第二范式分解成三个2NF的数据结构材料编号*供应商名称*价格库存量库存占用资金材料编号*材料名称规格供应商名称*供应商地址1.材料库存2.材料库存3.供应商2026/5/1380如果一个数据结构中任何一个非关键字数据项都不传递依赖于它的关键字,则称该数据结构是第三范式的,记为3NF。传递依赖:假设ABC分别是同一个数据结构R中的三个元素或分别是R中若干个数据元素的集合,如果C依赖B,而B依赖于A,那么C自然依赖于A,即称C传递依赖A。

A->B,B->C则A->(传递)C去掉传递依赖关系,就是3NF。

第三范式2026/5/1381例:第二范式转为第三范式因为价格与库存量、库存占用资金都是非关键字,但库存量依赖于价格和库存占用资金,所以非3NF.上例转为第三范式:去掉多余的“库存占用资金”,而在程序中加以解决即可。材料编号*供应商名称*价格库存量材料编号*材料名称规格供应商名称*供应商地址1.材料库存2.材料库存3.供应商2026/5/1382(2)数据结构规范化设计的步骤非规范化的数据(有重复的数据)1NF(没有重复的数据)2NF(所有的非关键字均完全依赖于整个关键字)3NF(所有的非关键字均完全依赖于整个关键字,且只依赖于整个关键字)把所有非规范化的数据结构分解成若干个二维表形式的数据结构,并指定一个或若干个关键字若

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论