《软件系统开发技术》课件第8章.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《软件系统开发技术》课件第8章.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件系统开发技术 软件 系统 开发 技术 课件
- 资源描述:
-
1、第八章数据库设计方法8.1 数据库设计过程8.2 实体联系法(ER方法)8.3 逻辑记录存取法(LRA方法)习题八第八章数据库设计方法 一个软件系统必定包括两方面的问题:“数据”以及对数据进行的“加工”。这两个问题贯串整个开发过程(图8.1):在需求分析阶段既要分析用户的“数据要求”(系统中需维持哪些数据、数据之间有什么联系、数据本身有什么性质等)SL要分析用户的“加工要求”(对数据作什么加工、每个加工的逻辑要求等);在设计阶段要设计数据的结构也要设计程序模块的结构;在编程阶段也要考虑数据和算法等。当然这两方面不是相互独立的,其间有着密切的联系。8.1数据库设计过程数据库设计过程第八章数据库设
2、计方法 第三章介绍的sA方法在分析和描述“数据要求”方面是不够的,第四章介绍的SD方法只考虑程序模块结构的设计,而不考虑数据结构的设计,所以在开发实际系统时,仅用SA、SD方法是不够的,还需结合一些数据库和数据结构的设计方法。70年代以来,数据库技术已被广泛接受,许多大型数据处理系统中的数据都组织成数据库的形式,所以本章专门讨论为用户建立数据库的方法,作为对第三、四章的补充。第八章数据库设计方法图8.1第八章数据库设计方法图8.2第八章数据库设计方法下面的介绍假定读者已具备数据库系统的基础知识(如参考文献1)。某个用户的数据库系统(如银行的数据处理系统)由模式、子模式、应用程序、数据库和数据库
3、管理系统(DBMS)等几部分组成(图8.2),其中模式、子模式、应用程序等必须根据用户的具体要求进行分析和设计,这项工作称为“数据库设计”,它的核心问题是如何建立一个数据模式,使其满足下面几个条件:第八章数据库设计方法(1)符合用户的要求,即能正确地反映用户的现实环境,它应包含用户需处理的所有“数据”,并能支持用户需进行的所有“加工”。(2)能被某个现有的数据库管理系统所接受。(3)具有较高的质量,如易于维护、易于理解、效率较高等。第八章数据库设计方法 用“软件生命期”的观点来看待数据库设计的全过程,则可相应地把它分成4个阶段:(1)分析用户要求。(2)建立概念性数据模型。(3)逻辑设计。(4
4、)物理设计。前面两个阶段是面向“问题”的,后面两个阶段是面向“解答”的;前两个阶段对应于软件生命期中的分析阶段,后两个阶段对应于设计阶段。第八章数据库设计方法 第(1)阶段是收集和分析用户的要求。用户要求包括数据要求、加工要求和种种限制条件等。第(2)阶段是用一个“概念性数据模型”将用户的数据要求明确地表达出来,这一步与软件生命期中建立“系统说明书”相对应。概念性数据模型是一种面向问题的数据模型,它描写了从用户角度看到的数据库,也反映了用户的现实环境,但与数据库将怎么实现无关。概念性数据模型在用户和设计人员之间起到了桥梁作用,一方面它是明确地表达用户要求的一个模型,另一方面这个模型是设计数据结
5、构的基础。第八章数据库设计方法 建立概念性数据模型是数据库设计过程中的一个关键,70年代后期陆续出现了一些适合作概念性数据模型的所谓第二代数据模型,其中ER模型就是一个典型的代表,它们”比第一代数据模型(如网型、层次型、关系型等)更高级,语义表达能力更强。第(3)、(4)阶段考虑数据库将怎样实现。第(3)阶段逻辑设计是设计数据的结构,它可以同软件生命期中设计阶段的“总体设计”相对应。在这一阶段,我们首先要根据用户要求的特点选购合适的数据库管理系统(DBMS),然后根据概念性数据模型以及选购的数据库管理系统的具体特点设计出这个管理系统能够接受的数据模式。本章将着重讨论数据库管理系统是DBTG,型
6、的情况。第八章数据库设计方法 第(4)阶段进一步设计数据模式的一些物理细节,如文件的基本结构、存取方式、索引的建立等。这一阶段可同软件生命期中设计阶段的“详细设计”相对应。这阶段考虑的主要问题是如何使数据库系统具有较高的效率,所采用的技术与选购的数据库管理系统的具体特点密切有关。为一个大型的数据处理系统建立数据库是相当艰巨的任务,用户环境中包含的数据项相当多,数据之间又有复杂的关系,设计人员不仅要理解用户的要求,还要了解数据库管理系统的一些特点,所以这一工作必须有一定的方法来指导,7 0年代以来,随着数据库技术和软件工程技术的发展,出现了不少设计数据库的方法和工具,其中具有代表性的有:ER方法
7、、LRA方法和DBDA系统等,本章8.2介绍ER方法,8.3介绍LRA方法。第八章数据库设计方法8.2.1 基本思想基本思想ER方法由P.Chen提出,它适用于设计数据库的第(1)、(2)、(3)阶段。为一个企业(如银行或工厂)设计数据库的本质是将企业中的有关数据组织成一种具体的形式,这种形式必须同所使用的数据库管理系统的数据模式相符。目前常用的数据库管理系统有关系型、网型和层次型三大类。8.2 实体联系法实体联系法(ER方法方法)第八章数据库设计方法早期的数据库设计方法是直接将企业中的数据设计成关系型、网型、层次型的用户模式(图8.3(a),这样得到的用户模式并不纯粹是现实世界的描述,而是混
8、入了许多其他的因素,因为:设计人员受到具体某个DBMS表达能力的限制,例如有的DBMS很难直接表示多对多的联系;设计人员必须考虑存贮结构、存取方式等具体问题;为了使系统具有较高的效率,用户模式并不直接与现实相对应,例如现实中“职员”这个对象在用户模式中,可能是用两个记录类型表示的。第八章数据库设计方法所以早期的设计方法存在以下两个问题:用户模式难以理解和修改;设计人员必须同时考虑许多问题,如用户环境、DBMS的表达能力、存贮结构、效率等,这就使得数据库设计工作难以进行。第八章数据库设计方法图8.3第八章数据库设计方法 图8.4(b)表示职员和项目之间存在两类联系,“负责”是一个一对多的联系,即
9、每个项目只由一个职员负责,而每个职员可以负责几个项目;“参加”是多对多的联系,即每个职员可以参加多个项目,每个项目可以有多个职员参加。图8.4(c)表示同一实体类型“零件”中存在着一种联系“装配”,这个联系是多对多的。联系也可能存在于三个以上的实体之间,图8.4(应)中的“供应”是存在于商店、设备、项目三个实体类型之间的联系。第八章数据库设计方法图8.4第八章数据库设计方法 3.属性属性 实体或联系的性质就是属性,例如职员有工号、姓名、职称、子女名等属性。属性具有值,ER图中可以用圆表示值类型,用实体与值类型间的连线表示属性(图8.5(a)。有的属性可能是多值的,如图8.5(a)中子女名就是多
10、值的属性,因为一个职员可能有多个子女。ER图中在表示属性的连线边上注出N表示多值属性,图8.5(a)说明工号、姓名、职称是职员的单值属性,而子女名是职员的多值属性。第八章数据库设计方法 我们可以用某些属性来标识一个实体,例如每个职员的工号是各不相同的,所以就可用工号这个属性来唯一地标识职员。同样,我们可把属性学号作为实体学生的标识码。联系也可能有属性,例如学生修某门课程所取得的成绩,成绩既不是学生的属性,也不是课程的属性,因为它依赖于某个特定的学生又依赖于某门特定的课程,所以它是学生与课程之间的联系“修”的属性(图8.5(b)。又如某个职员每周有几天参加某个项目的工作是联系“参加”的属性,而不
11、是职员的属性,也不是项目的属性(图8.5(c)。第八章数据库设计方法图 8.5第八章数据库设计方法“联系的属性”这个概念对理解数据的语义是非常重要的。联系可用有关实体的标识码来标识,例如学生的标识码是学号,课程的标识码是课程号,这两个实体间的联系“修”就可用学号和课程号两个属性来标识。由于人们通常就是用实体、联系和属性这三个概念来理解现实问题的,所以ER模型非常接近人的思维方式。又因为ER模型采用简单的图形来表达人们对现实的理解,所以不熟悉计算机技术的用户都能够接受它,ER模型目前已成为一种使用较广的概念性数据模型。第八章数据库设计方法8.2.3 从从ER模型导出数据模式模型导出数据模式参照下
12、面几条基本规则,可以从描述用户要求的ER图导出DBTG数据库管理系统上的数据模式。1)两仑实体类型之间一对多的联系:图8.6(a)转换成图8.6(b),这里,ER图中的实体类型“部门和“职员转换成DBTG数据结构图中的记录类型,而联系“从属,转换成DBTG中的系。同样图8.6(c)转换成图8.6(z)。.第八章数据库设计方法 2)两个实体类型之间多对多的联系:图8.7(a)转换成图8.7(b),这里,ER图中的实体类型“职员”和“项目”转换成DBTG中的记录类型,联系“参加”不是转换成系,而是转换成一个记录类型,这种记录类型不是实体记录类型(如前面的职员、项目等)而是联系记录类型。同样图8.7
13、(c)转换成图8.7(d)。第八章数据库设计方法图8.6第八章数据库设计方法图8.7第八章数据库设计方法 3)K(K3)个实体类型之间的联系:图8.4(d)转换成图8.8,这里可不必考虑联系的类型。4)一个实体类型上的联系:图8.9(a)转换成图8.9(b)。应注意的是:上述转换规则是通常所使用的,但并不是唯一的规则,从同一ER图可以导出几种不同的DBTG模式。从ER图也很容易导出关系型数据模式:只须将ER图中的每一个实体和联系都转换成关系型模式中的一个关系就可以了。.第八章数据库设计方法图8.8第八章数据库设计方法图8.9第八章数据库设计方法 8.2.4 步骤步骤 用ER方法设计数据库的基本
14、步骤是:(1)确定实体类型。(2)确定联系类型。(3)画ER图。(4)确定属性。(5)从ER图导出数据结构图。(6)设计记录格式。第八章数据库设计方法 下面以一个工厂管理系统的数据库为例,说明这。一过程。1.确定实体类型确定实体类型 通过调查了解到该工厂中需要管理的实体类型有零件、商店、项目、职员、部门、仓库等等。2.确定联系类型确定联系类型 在这个系统中,以下这些联系是同管理有关的:部门和职员之间有个联系“从属”,它是一对多的;项目和职员之间有个联系“负责”,它是一对多的;项目和职员之间还有个联系“参加”,它是多对多的;第八章数据库设计方法 项目、商店和零件之间有个三元联系“供应”,它是多对
15、多的;零件和商店之间有个联系“将供应”,它是多对多的;零件和仓库之间有个联系“存贮”,它是多对多的;零件这个实体类型上有个联系“装配”,它是多对多的。第八章数据库设计方法 3.画画ER图图 对于比较复杂的例子,ER.图可以采用简化的形式,即用方框表示实体,用方框之间的直线段表示联系,属性则不在图中画出而另用文字(或表格)作出说明。本例中用这种简化的表达方式将前两步确定的实体和联系画出则得图8.10(a)。第八章数据库设计方法4.确定属性确定属性 经调查了解到:部门有部门号、今年预算、去年预算等3个属性;职员有工号、姓名、职称、工龄4个属性;项目有编号、项目名、预算3个属性;。又了解到:联系“供
16、应”有供应号、地点、数量等属性;“存贮”有数量这个属性;“从属”有“进入本部门日期”、“参加”有“每周工作几天”等属性。第八章数据库设计方法 上述实体和联系的属性可用表8.1的表格说明,表格中还应指出每个属性的值类型,为简单起见,表8.1中省略了这一部分。至此为止,我们获得了描述工厂管理这一用户环境的概念性数据模型。5.从从ER图导出图导出DBTG数据结构数据结构 参照8.2.3的4条基本规则,从图8.10(a)的ER图导出图8.10(6)的数据结构图。第八章数据库设计方法 6.设计记录格式设计记录格式 设计记录格式时可以参考以下几条原则:1)将一个实体的所有属性放在同一记录类型中,例如部门的
17、所有属性(部门号、今年预算、去年预算)都处理成部门这个记录类型中的数据项(图8.11)。2)如果联系是一对多的,则联系的属性处理成系的成员记录类型中的数据项,如部门和职员间的联系“从属”是一对多的,所以“从属”的属性“进入本部门日期”处理成职员记录类型中的数据项(图8.11)。第八章数据库设计方法第八章数据库设计方法图8.10第八章数据库设计方法图8.11第八章数据库设计方法3)如果某个联系转换成一个联系记录类型,则联系的属性处理成这个记录类型中的数据项,如职员和项目之间的联系“参加”转换成一个记录类型,所以“参加”的属性“每周工作几天”处理成记录类型“参加”中的数据项(图8.1 1)。这样,
展开阅读全文