收藏 分销(赏)

2015版--第14章--数据接口部分的设计.ppt

上传人:精**** 文档编号:1809827 上传时间:2024-05-09 格式:PPT 页数:53 大小:1.40MB
下载 相关 举报
2015版--第14章--数据接口部分的设计.ppt_第1页
第1页 / 共53页
2015版--第14章--数据接口部分的设计.ppt_第2页
第2页 / 共53页
2015版--第14章--数据接口部分的设计.ppt_第3页
第3页 / 共53页
2015版--第14章--数据接口部分的设计.ppt_第4页
第4页 / 共53页
2015版--第14章--数据接口部分的设计.ppt_第5页
第5页 / 共53页
点击查看更多>>
资源描述

1、软件建模与分析软件建模与分析软件建模与分析软件建模与分析 2015.9-2015.102015.9-2015.10计算机科学与技术专业与软件工程专业计算机科学与技术专业与软件工程专业第三部分:设计篇第三部分:设计篇软件建模与分析软件建模与分析吉林省优秀课程 长春工业大学精品课程:软件建模与分析 CCUTSE 20123数据接口部分是数据接口部分是OOD模型中负责与具体的数据管理系统衔模型中负责与具体的数据管理系统衔接的外围组成部分,它为系统中需要长久存储的对象提供接的外围组成部分,它为系统中需要长久存储的对象提供了在选定的数据管理系统中进行数据存储与恢复的功能。了在选定的数据管理系统中进行数据

2、存储与恢复的功能。问题范围:问题范围:对象在永久性存储介质上的存储对象在永久性存储介质上的存储只须存储对象的属性部分只须存储对象的属性部分可能只有一部分对象需要长久存储可能只有一部分对象需要长久存储11.1 什么是数据接口部分什么是数据接口部分大部分实用的系统都要处理数据的持久存储问题大部分实用的系统都要处理数据的持久存储问题 数据保存于永久性存储介质数据保存于永久性存储介质在数据管理系统的支持下实现其存储、检索和维护在数据管理系统的支持下实现其存储、检索和维护 在面向对象的系统中,数据的存储表现为对象存储在面向对象的系统中,数据的存储表现为对象存储 吉林省优秀课程 长春工业大学精品课程:软件

3、建模与分析 CCUTSE 20124不同的数据管理系统:不同的数据管理系统:文件系统文件系统关系型数据库管理系统关系型数据库管理系统面向对象的数据库管理系统面向对象的数据库管理系统各有不同的数据定义方式和数据操纵方式各有不同的数据定义方式和数据操纵方式针对不同的数据管理系统,需要做不同设计针对不同的数据管理系统,需要做不同设计 根据所选用的数据管理系统特点,设计一些专门处理其它根据所选用的数据管理系统特点,设计一些专门处理其它对象的持久存储问题的对象对象的持久存储问题的对象组织成一个独立的组成部分组织成一个独立的组成部分 数据接口部分数据接口部分吉林省优秀课程 长春工业大学精品课程:软件建模与

4、分析 CCUTSE 20125优点:优点:集中解决对象存储问题集中解决对象存储问题隔离数据管理系统对其它部分的影响隔离数据管理系统对其它部分的影响选用不同的数据管理系统时,问题域部分变化较少选用不同的数据管理系统时,问题域部分变化较少人人机机交交互互部部分分控制驱动部分控制驱动部分问题域问题域部分部分数数据据接接口口部部分分文件系统文件系统数数据据接接口口部部分分文件系统文件系统数数据据接接口口部部分分关系型关系型DBMS数数据据接接口口部部分分OO-DBMS吉林省优秀课程 长春工业大学精品课程:软件建模与分析 CCUTSE 2012614.2 数据管理系统及其选择数据管理系统及其选择数据管理

5、系统数据管理系统实现数据存储、检索、管理与维护的系统实现数据存储、检索、管理与维护的系统包括文件系统和数据库管理系统两大类包括文件系统和数据库管理系统两大类文件系统文件系统 file system 关系型数据库管理系统关系型数据库管理系统 RDBMS面向对象的数据库管理系统面向对象的数据库管理系统 OODBMS吉林省优秀课程 长春工业大学精品课程:软件建模与分析 CCUTSE 20127(一)文件系统(一)文件系统 通常是操作系统的一部分通常是操作系统的一部分管理外存空间的文件数据管理外存空间的文件数据提供存储、检索、更新、共享和保护等功能提供存储、检索、更新、共享和保护等功能文件结构文件结构

6、物理结构物理结构文件数据在存储空间的存放方法和组织关系文件数据在存储空间的存放方法和组织关系 逻辑结构逻辑结构呈现给用户的文件结构呈现给用户的文件结构如流式结构、记录式结构如流式结构、记录式结构 等等文件系统提供的支持文件系统提供的支持在人机界面上进行操作的系统命令在人机界面上进行操作的系统命令在程序中使用的广义指令在程序中使用的广义指令创建、删除、打开、关闭、读、写、控制等创建、删除、打开、关闭、读、写、控制等 编程语言可以提供更方便的文件定义与使用方式编程语言可以提供更方便的文件定义与使用方式 吉林省优秀课程 长春工业大学精品课程:软件建模与分析 CCUTSE 20128优点:优点:廉价,

7、容易学习和掌握,廉价,容易学习和掌握,对数据类型没有限制对数据类型没有限制 缺点:缺点:功能贫乏、低级功能贫乏、低级不容易体现数据之间的关系不容易体现数据之间的关系只能按地址或者记录读写,只能按地址或者记录读写,不能按属性进行数据检索与更新不能按属性进行数据检索与更新缺少数据完整性支持缺少数据完整性支持数据共享支持薄弱数据共享支持薄弱文件系统的优缺点文件系统的优缺点 吉林省优秀课程 长春工业大学精品课程:软件建模与分析 CCUTSE 20129(二)数据库管理系统(二)数据库管理系统数据库:数据库:长期存储在计算机内、有组织、可共享的数据集合。其中的长期存储在计算机内、有组织、可共享的数据集合

8、。其中的数据按一定的数据按一定的数据模型数据模型组织、描述和储存,具有较小的冗余度,较高组织、描述和储存,具有较小的冗余度,较高的数据独立性和易扩展性,并可为各种用户共享。的数据独立性和易扩展性,并可为各种用户共享。数据库管理系统(数据库管理系统(DBMS):用于建立、使用和维护数据库的软件。:用于建立、使用和维护数据库的软件。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性数据模型:数据模型:描述如何在数据库中定义数据及其操作,内容包括:描述如何在数据库中定义数据及其操作,内容包括:实体及实体间联系的数据结构描述,对数据

9、的操作,完整性约束实体及实体间联系的数据结构描述,对数据的操作,完整性约束不同的数据库基于不同的数据模型不同的数据库基于不同的数据模型网状网状数据库数据库关系型关系型数据库数据库面向对象面向对象的数据库的数据库层次层次数据库数据库基于网状数据模型基于层次数据模型基于关系数据模型基于面向对象数据模型吉林省优秀课程 长春工业大学精品课程:软件建模与分析 CCUTSE 2012101、关系数据库管理系统、关系数据库管理系统 RDBMS关系模型关系模型给定一组域D1,D2,Dn其笛卡尔积D1D2Dn的一个子集就是一个关系关系,又称二维表二维表基本要求:关系的每个属性必须是原子的基本要求:关系的每个属性

10、必须是原子的数据的组织:用二维表组织各类数据数据的组织:用二维表组织各类数据既可存放描述实体自身特征的数据既可存放描述实体自身特征的数据也可存放描述实体之间联系的数据也可存放描述实体之间联系的数据每一列称作一个每一列称作一个属性属性每一行称作一个每一行称作一个元组元组数据的运算:数据的运算:提供并、交、差等集合运算提供并、交、差等集合运算.以及选取、投影、联结等操作以及选取、投影、联结等操作吉林省优秀课程 长春工业大学精品课程:软件建模与分析 CCUTSE 201211关系数据库术语对照关系数据库术语对照数据库专业术语数据库专业术语开发者的习惯术语开发者的习惯术语用户习惯术语用户习惯术语关系关

11、系relation文件文件file表表table元组元组tuple记录记录record行行row属性属性attribute字段,域字段,域field列列column吉林省优秀课程 长春工业大学精品课程:软件建模与分析 CCUTSE 2012122、面向对象数据库管理系统、面向对象数据库管理系统 OODBMS采用面向对象数据模型的数据库管理系统采用面向对象数据模型的数据库管理系统 背景:背景:越来越多的系统用越来越多的系统用OO技术开发(采用技术开发(采用OO数据模型)数据模型)RDBMS的局限性(采用关系数据模型)的局限性(采用关系数据模型)不能直接、有效地组织和存储对象数据,需要对数据模式进

12、行转不能直接、有效地组织和存储对象数据,需要对数据模式进行转换,并提供相应的接口换,并提供相应的接口因此出现了面向对象数据库管理系统因此出现了面向对象数据库管理系统OODBMSOODBMS的特征:的特征:是面向对象的:是面向对象的:支持对象、类、对象标识、对象的属性与操作、封装、继承、聚支持对象、类、对象标识、对象的属性与操作、封装、继承、聚合、关联、多态等合、关联、多态等OO概念。概念。具有数据库管理系统的功能:具有数据库管理系统的功能:数据定义与操纵语言、完整性保障、安全机制,并发控制、故障数据定义与操纵语言、完整性保障、安全机制,并发控制、故障恢复、事务运行管理、可扩充恢复、事务运行管理

13、、可扩充吉林省优秀课程 长春工业大学精品课程:软件建模与分析 CCUTSE 201213三种类型的三种类型的OODBMS产品产品1)在)在OOPL基础上增加数据库管理系统的功能基础上增加数据库管理系统的功能例如:例如:GemStone 和和 ObjectStore2)对)对RDBMS进行扩充,使之支持面向对象数据模型进行扩充,使之支持面向对象数据模型并向用户提供面向对象的应用程序接口并向用户提供面向对象的应用程序接口例如:例如:Iris 和和 POSTGRES3)“全新的全新的”OODBMS即按照面向对象数据模型进行全新的设计即按照面向对象数据模型进行全新的设计 例如:例如:O2 和和 DAM

14、OKLES 目前状况:理论和技术上都有待完善目前状况:理论和技术上都有待完善吉林省优秀课程 长春工业大学精品课程:软件建模与分析 CCUTSE 201214(三)数据管理系统的选择(三)数据管理系统的选择理论上理论上OODBMS最适合用最适合用OO方法开发的系统方法开发的系统实际上要权衡技术和非技术两方面的因素实际上要权衡技术和非技术两方面的因素非技术因素非技术因素与项目的成本、工期、风险、宏观计划有关的问题与项目的成本、工期、风险、宏观计划有关的问题产品的成熟性和先进性产品的成熟性和先进性价格价格开发队伍的技术背景开发队伍的技术背景与其它系统的关系与其它系统的关系吉林省优秀课程 长春工业大学

15、精品课程:软件建模与分析 CCUTSE 201215技术因素技术因素考虑各种数据管理系统适应哪些情况,不适应哪些情况考虑各种数据管理系统适应哪些情况,不适应哪些情况文件系统的适应性文件系统的适应性优点:优点:可储任何类型的数据,包括具有复杂内部结构的可储任何类型的数据,包括具有复杂内部结构的数据和图形、图象、视频、音频等多媒体数据。以类和数据和图形、图象、视频、音频等多媒体数据。以类和对象的形式定义的数据都可以用文件存储对象的形式定义的数据都可以用文件存储适应:适应:数据类型复杂,但对数据存取、数据共享、数据数据类型复杂,但对数据存取、数据共享、数据完整性维护、故障恢复、事务处理等功能要求不高

16、的应完整性维护、故障恢复、事务处理等功能要求不高的应用系统;用系统;缺点:缺点:操作低级;数据操纵功能贫乏;缺少数据完整性操作低级;数据操纵功能贫乏;缺少数据完整性支持;缺少多用户及多应用共享、故障恢复、事务处理支持;缺少多用户及多应用共享、故障恢复、事务处理等功能等功能不适应:不适应:数据操纵复杂、多样,数据共享及数完整性维数据操纵复杂、多样,数据共享及数完整性维护要求较高的系统。护要求较高的系统。吉林省优秀课程 长春工业大学精品课程:软件建模与分析 CCUTSE 201216关系数据库管理系统的适应性关系数据库管理系统的适应性优点:优点:对数据存取、数据共享、数据完整性维护、故障对数据存取

17、、数据共享、数据完整性维护、故障恢复、事务处理等功能提供强有力的支持恢复、事务处理等功能提供强有力的支持适应:适应:对这些功能要求较高的应用系统,以及需大量保对这些功能要求较高的应用系统,以及需大量保存和管理各类实体之间关系信息的应用系统存和管理各类实体之间关系信息的应用系统问题:问题:关系数据模型对数据模式的限制较多关系数据模型对数据模式的限制较多 当对象的内部结构较为复杂时,就不能直接地与关当对象的内部结构较为复杂时,就不能直接地与关系数据库的数据模式相匹配,需要经过转换系数据库的数据模式相匹配,需要经过转换更不适合更不适合图形、图象、音频、视频等多媒体数据图形、图象、音频、视频等多媒体数

18、据 和和 经过压缩处理的数据经过压缩处理的数据 文件系统和文件系统和RDBMS的优点和缺点形成了明显对照的优点和缺点形成了明显对照但是对二者的选择却未必互相排斥,有时它们是互补的。但是对二者的选择却未必互相排斥,有时它们是互补的。某些应用系统可能同时采用某些应用系统可能同时采用RDBMS和文件系统,分别存和文件系统,分别存储各自所适合的数据。储各自所适合的数据。吉林省优秀课程 长春工业大学精品课程:软件建模与分析 CCUTSE 201217面向对象数据库管理系统的适应性面向对象数据库管理系统的适应性从纯技术的角度看,对用从纯技术的角度看,对用OO方法开发的系统采用方法开发的系统采用OODBMS

19、是最合理的选择,几乎没有不适合的情况。是最合理的选择,几乎没有不适合的情况。如果某些项目不适合,主要是由于非技术因素,而不是技如果某些项目不适合,主要是由于非技术因素,而不是技术因素术因素 各种各种OODBMS采用的对象模型多少有些差异,与用户选采用的对象模型多少有些差异,与用户选用的用的OOA&D方法及方法及OOPL中的匹配程度不尽一致,功能中的匹配程度不尽一致,功能也各有区别,对不同的应用系统有不同的适应性也各有区别,对不同的应用系统有不同的适应性 吉林省优秀课程 长春工业大学精品课程:软件建模与分析 CCUTSE 20121814.3 对象存储方案和数据接口的设计策略对象存储方案和数据接

20、口的设计策略 针对三种针对三种数据管理系统数据管理系统文件系统文件系统RDBMSOODBMS对象存储方案对象存储方案如何把对象映射到数如何把对象映射到数据管理系统据管理系统数据接口部分的设计策略数据接口部分的设计策略如何设计数据接口部如何设计数据接口部分的对象类分的对象类分分别别讨讨论论如何对问题域部分如何对问题域部分做必要的修改做必要的修改吉林省优秀课程 长春工业大学精品课程:软件建模与分析 CCUTSE 201219(一)针对文件系统的设计(一)针对文件系统的设计应用系统应用系统数据接口数据接口文件系统文件系统对对象象对对象象对对象象1、对象在内存空间和文件空间的映像、对象在内存空间和文件

21、空间的映像如何看待用文件系统存储对象如何看待用文件系统存储对象应用系统仍然是面向对象的只是用文件系统存储对象的数据吉林省优秀课程 长春工业大学精品课程:软件建模与分析 CCUTSE 201220从应用系统的对象到文件记录的不同映射方式从应用系统的对象到文件记录的不同映射方式类类A A对对象象1 1数据接口数据接口实例化记记录录1 1记记录录2 2记记录录n n对对象象2 2对对象象n n内内存存空空间间文文件件系系统统文件文件A A一一对应的一一对应的映射方式映射方式类类A A数据接口数据接口实例化记记录录1 1记记录录2 2记记录录n n对对象象内内存存空空间间文文件件系系统统文件文件A A

22、非一一对应非一一对应的映射方式的映射方式吉林省优秀课程 长春工业大学精品课程:软件建模与分析 CCUTSE 2012212、对象在文件中的存放策略、对象在文件中的存放策略 1 1)基本策略)基本策略把由每个类直接定义、需把由每个类直接定义、需要持久存储的全部对象实要持久存储的全部对象实例存放在一个文件中;例存放在一个文件中;每个对象实例的全部属性每个对象实例的全部属性作为一个存储单元,占用作为一个存储单元,占用该文件的一个记录。该文件的一个记录。如何理解如何理解“由一个类直接由一个类直接定义的定义的”对象实例对象实例另一种策略另一种策略一个结构用一个文件一个结构用一个文件浪费空间浪费空间模糊了

23、对象分类关系模糊了对象分类关系使操作复杂化使操作复杂化 人员人员姓名姓名教职工教职工职称职称专业专业研究生研究生学号学号班级班级专业专业在职研究生在职研究生在职单位在职单位 例例:吉林省优秀课程 长春工业大学精品课程:软件建模与分析 CCUTSE 2012222 2)提高检索效率)提高检索效率 在对象和文件记录之间建立有规律的映射关系在对象和文件记录之间建立有规律的映射关系对象名或关键字呈线性规律对象名或关键字呈线性规律 按对象名或关键字的顺序形成文件记录按对象名或关键字的顺序形成文件记录给出对象名称或关键字,快速地计算出它的存放位置给出对象名称或关键字,快速地计算出它的存放位置 对象名称或关

24、键字可以比较和排序对象名称或关键字可以比较和排序 按关键字顺序安排记录,检索时采用折半查找法按关键字顺序安排记录,检索时采用折半查找法建立按对象名称或者按关键字排序的索引表,通过该建立按对象名称或者按关键字排序的索引表,通过该表中的记录指针找到相应的记录表中的记录指针找到相应的记录其他措施其他措施如散列表、倒排表、二叉排序树等等如散列表、倒排表、二叉排序树等等吉林省优秀课程 长春工业大学精品课程:软件建模与分析 CCUTSE 2012233、设计数据接口部分的对象类、设计数据接口部分的对象类 对象存取器对象存取器对象存储对象存储对象恢复对象恢复类名类名-文件名文件名对照表对照表 负责对象的负责

25、对象的存储与恢复存储与恢复换算型换算型对象存取器对象存取器*对象存储对象存储*对象恢复对象恢复查找型查找型对象存取器对象存取器*对象存储对象存储*对象恢复对象恢复索引型索引型对象存取器对象存取器*对象存储对象存储*对象恢复对象恢复索引表索引表查记录指针查记录指针文件记录索引文件记录索引特殊类提供不同特殊类提供不同的查找功能的查找功能吉林省优秀课程 长春工业大学精品课程:软件建模与分析 CCUTSE 2012244、问题域部分的修改、问题域部分的修改 类类B类类D问题域部分问题域部分数据接口部分数据接口部分类类A类类C对象存取器对象存取器每个持久对象类每个持久对象类都要增加请求存都要增加请求存储

26、和恢复所需的储和恢复所需的属性和操作,以属性和操作,以便向数据接口部便向数据接口部分发出请求分发出请求类名类名请求保存请求保存请求恢复请求恢复类名类名请求保存请求保存请求恢复请求恢复类名类名请求保存请求保存请求恢复请求恢复持久对象持久对象请求保存请求保存请求恢复请求恢复类名类名增加一个一般类增加一个一般类来定义它们,作来定义它们,作为共同协议,供为共同协议,供所有的持久对象所有的持久对象类继承类继承吉林省优秀课程 长春工业大学精品课程:软件建模与分析 CCUTSE 201225(二)针对(二)针对RDBMS的设计的设计 应用系统应用系统数据接口数据接口RDBMS对对象象对对象象对对象象1、对象

27、及其对数据库的使用、对象及其对数据库的使用如何看待用如何看待用 RDBMS存储对象存储对象应用系统仍然是面向对象的只是用关系数据库存储对象的数据关系数据库关系数据库吉林省优秀课程 长春工业大学精品课程:软件建模与分析 CCUTSE 201226从应用系统的对象到数据库表元组的不同映射方式从应用系统的对象到数据库表元组的不同映射方式类类A A对对象象1 1实例化元元组组1 1元元组组2 2元元组组n n对对象象2 2对对象象n n内内存存空空间间数数据据库库表表A A一一对应的一一对应的映射方式映射方式数据接口数据接口RDBMS类类A A数据接口数据接口实例化元元组组1 1元元组组2 2元元组组

28、n n对对象象内内存存空空间间数数据据库库表表A A非一一对应非一一对应的映射方式的映射方式RDBMS吉林省优秀课程 长春工业大学精品课程:软件建模与分析 CCUTSE 201227使用使用RDBMS和使用文件系统的不同和使用文件系统的不同(1)系统以不同方式使用数据库中的数据)系统以不同方式使用数据库中的数据存储对象存储对象或或使用其普通数据使用其普通数据原因:数据库的共享性原因:数据库的共享性(2)可能需要数据格式转换)可能需要数据格式转换原因:关系数据库对规范化的要求原因:关系数据库对规范化的要求对象从数据库获得其他数据对象从数据库获得其他数据关系数据库关系数据库应用系统应用系统对对象象

29、数据接口对对象象RDBMS对对象象对象保存与恢复对象保存与恢复吉林省优秀课程 长春工业大学精品课程:软件建模与分析 CCUTSE 2012282、对象在数据库中的存放策略、对象在数据库中的存放策略对象数据的规范化对象数据的规范化修改类图修改类图确定关键字确定关键字从类图映射到数据库表从类图映射到数据库表类类表表类的属性类的属性表的属性表的属性对象实例对象实例行行对一般对一般-特殊结构、整体特殊结构、整体-部分结构、关联等部分结构、关联等OO概念的处理概念的处理吉林省优秀课程 长春工业大学精品课程:软件建模与分析 CCUTSE 201229第一范式(第一范式(1NF):关系(表)的每个属性都必须

30、:关系(表)的每个属性都必须是原子的。就是说,关系的每个属性都是单值的,是原子的。就是说,关系的每个属性都是单值的,它不再包含内部的数据结构。它不再包含内部的数据结构。第二范式(第二范式(2NF):如果一个关系的所有非关键字:如果一个关系的所有非关键字属性都只能依赖整个关键字(而不是依赖关键字的属性都只能依赖整个关键字(而不是依赖关键字的一部分属性),则该关系在第二范式中。一部分属性),则该关系在第二范式中。第三范式(第三范式(3NF):如果一个关系在第二范式中,:如果一个关系在第二范式中,而且没有传递依赖,则该关系在第三范式中。而且没有传递依赖,则该关系在第三范式中。Boyce-Codd范式

31、(范式(BCNF):如果一个关系的每个:如果一个关系的每个决定因素都是候选关键字,则该关系在决定因素都是候选关键字,则该关系在BCNF中。中。第四范式(第四范式(4NF):如果一个关系在:如果一个关系在BCNF中,而中,而且没有多值依赖,则该关系在第四范式中。且没有多值依赖,则该关系在第四范式中。1)对象数据的规范化)对象数据的规范化关系数据库要求存入其中的数据符合一定的规范,并且用关系数据库要求存入其中的数据符合一定的规范,并且用范范式式衡量规范化程度的高低。衡量规范化程度的高低。是由关系数据模型决是由关系数据模型决定的,是对一个关系定的,是对一个关系的起码要求的起码要求主要为了解决关系中主

32、要为了解决关系中的函数依赖带来的更的函数依赖带来的更新异常问题。新异常问题。也可以减少数据冗余,也可以减少数据冗余,但更新异常问题更为但更新异常问题更为重要重要主要为了减少数据冗主要为了减少数据冗余余吉林省优秀课程 长春工业大学精品课程:软件建模与分析 CCUTSE 201230未必规范化程度越高越好未必规范化程度越高越好规范化的代价规范化的代价影影响系统的可理解性,增加了多表查询和连接操作响系统的可理解性,增加了多表查询和连接操作面向对象方法与关系数据库的规范化目标面向对象方法与关系数据库的规范化目标既有相违的一面,又有相符的一面既有相违的一面,又有相符的一面 以对象为中心组织数据与以对象为

33、中心组织数据与操作,恰恰有助于达到第操作,恰恰有助于达到第2NF、3NF、BCNF和和4NF要求的条件要求的条件对象的数据结对象的数据结构常常连构常常连1NF的要求都不能的要求都不能满足满足例如例如“通信地址通信地址”属性属性吉林省优秀课程 长春工业大学精品课程:软件建模与分析 CCUTSE 201231HOUSING(SID,Building,Fee)Key:SIDFunctionalDependencies:BuildingFeeSIDBuildingFee100Randolph1200150Ingersoll1100200Randolph1200250Pitkin1100300Rando

34、lph1200SIDBuildingFee例例1:一个不满足:一个不满足3NF的关系及其规范化的关系及其规范化STU-HOUSING(SID,Building)Key:SIDSIDBuilding100Randolph150Ingersoll200Randolph250Pitkin300RandolphBLDG-FEE(Building,Fee)Key:BuildingBuildingFeeRandolph1200Ingersoll1100Pitkin1100从面向对象的观点看应该定从面向对象的观点看应该定义义“学生学生”和和“建筑物建筑物”两两个类个类恰好与规范化要求吻合恰好与规范化要求吻合

35、学生学生住所住所建筑物建筑物房费房费分析原因:分析原因:把描述不同事物把描述不同事物的数据组织在一起的数据组织在一起摘自:施伯乐等摘自:施伯乐等译,译,美美DavidM.Kroenke著著.数数据库处理据库处理.北京:电子工业出版社,北京:电子工业出版社,1998吉林省优秀课程 长春工业大学精品课程:软件建模与分析 CCUTSE 201232例例2:一个不满足:一个不满足4NF的关系及其规范化的关系及其规范化STUDENT(SID,Major,Activity)Key:(SID,Major,Activity)SIDMajorActivity100MusicSwimming100Accounti

36、ngSwimming100MusicTennis100AccountingTennis150MathJoggingSTU-MAJOR(SID,Major)Key:(SID,Major)SIDMajor100Music100Accounting150MathSTU-ACT(SID,Activity)Key:(SID,Activity)SIDActivity100Skiing100Swimming100Tennis150Jogging吉林省优秀课程 长春工业大学精品课程:软件建模与分析 CCUTSE 201233SIDMajor1111*课程学生活动学生-课程学生-活动SIDActivity*课程

37、学生活动用面向对象方法得到的分类用面向对象方法得到的分类有三类对象有三类对象化解多对多关联之后的结果化解多对多关联之后的结果为什么多出来为什么多出来3个类?个类?吉林省优秀课程 长春工业大学精品课程:软件建模与分析 CCUTSE 201234用面向对象方法未能避免函数依赖的例子用面向对象方法未能避免函数依赖的例子职工职工职工编号职工编号月工资月工资所得税所得税可以不通过规范化解决问题可以不通过规范化解决问题讨论为什么讨论为什么吉林省优秀课程 长春工业大学精品课程:软件建模与分析 CCUTSE 201235规范化的两种策略规范化的两种策略保持类图,对表规范化保持类图,对表规范化缺点是对象的存储与

38、恢复必须经过数据格式的转换缺点是对象的存储与恢复必须经过数据格式的转换修改类图修改类图对问题域的映射对问题域的映射可能可能不像规范化之前那么直接。但不像规范化之前那么直接。但是这个问题并不严重是这个问题并不严重利大于弊利大于弊采用第二种策略采用第二种策略按规范化的要求修改类图中的类按规范化的要求修改类图中的类作为问题域部分的设计内容之一作为问题域部分的设计内容之一2)修改类图)修改类图吉林省优秀课程 长春工业大学精品课程:软件建模与分析 CCUTSE 2012363 3)确定关键字)确定关键字 用较少的属性作关键字,将为含关键字的操作带来方便用较少的属性作关键字,将为含关键字的操作带来方便 常

39、用的技巧常用的技巧引入编号引入编号最终效果:最终效果:经过必要的规范化处理和关键字处理之后,得到一个符经过必要的规范化处理和关键字处理之后,得到一个符合数据库设计要求的类图,其中每个需要映射到数据库合数据库设计要求的类图,其中每个需要映射到数据库表的类,都满足如下条件:表的类,都满足如下条件:至少满足第一范式至少满足第一范式满足所期望的更高范式满足所期望的更高范式有一组属性被确定为关键字有一组属性被确定为关键字吉林省优秀课程 长春工业大学精品课程:软件建模与分析 CCUTSE 2012374 4)从类图到数据库的映射)从类图到数据库的映射(1 1)映射策略概要)映射策略概要对每个要在数据库中存

40、储对象实例的类,都建立一对每个要在数据库中存储对象实例的类,都建立一个数据库表个数据库表类的每个属性(包括从所有祖先继承来的属性)都类的每个属性(包括从所有祖先继承来的属性)都对应表的一个属性(列)对应表的一个属性(列)名称、数据类型完全相同名称、数据类型完全相同其中一组属性被确定为关键字其中一组属性被确定为关键字类的每个对象实例将对应表的一个元组(行)类的每个对象实例将对应表的一个元组(行)吉林省优秀课程 长春工业大学精品课程:软件建模与分析 CCUTSE 201238(2)对)对OO概念的处理概念的处理对一般对一般-特殊结构的处理特殊结构的处理抽象类不对应数据库表抽象类不对应数据库表特殊类

41、包括自己定义的特殊类包括自己定义的和继承来的所有属性和继承来的所有属性人员人员姓名姓名出生年月出生年月教职工教职工职称职称从事专业从事专业研究生研究生学号学号班级班级攻读专业攻读专业在职研究生在职研究生在职单位在职单位例例:5个属性个属性4个属性个属性8个属性个属性不建表不建表吉林省优秀课程 长春工业大学精品课程:软件建模与分析 CCUTSE 201239在关联连接线一端的类中定义一个(或一组)属性,表明另一端类的哪在关联连接线一端的类中定义一个(或一组)属性,表明另一端类的哪个对象实例与本端的对象实例相关联个对象实例与本端的对象实例相关联该属性(属性组)应该和另一端的关键字相同该属性(属性组

42、)应该和另一端的关键字相同如果另一端的关键字包含多个属性,本端也要定义同样的多个属性如果另一端的关键字包含多个属性,本端也要定义同样的多个属性在对应的数据库表中,一个表以该属性(或属性组)作为在对应的数据库表中,一个表以该属性(或属性组)作为外键外键,另一个,另一个表以它作为主键,使前者的元组通过其属性值指向后者的元组表以它作为主键,使前者的元组通过其属性值指向后者的元组对关联的处理对关联的处理一对一的关联一对一的关联AB0.11从从B端指向端指向A端,则端,则B表的外键对有些元组可能是空值(表的外键对有些元组可能是空值(NULL)从从A端指向端指向B端则不存在这一问题端则不存在这一问题表表A

43、表表B吉林省优秀课程 长春工业大学精品课程:软件建模与分析 CCUTSE 201240一对多的关联一对多的关联从多重性约束为从多重性约束为“m”的一端指向多重性约束为的一端指向多重性约束为“1”的一的一端端AB1*映射为数据库表后,映射为数据库表后,A表以表以B表的主键作为自己的外键表的主键作为自己的外键表表A表表B吉林省优秀课程 长春工业大学精品课程:软件建模与分析 CCUTSE 201241多对多的关联多对多的关联AB*先在类图中化为两个一对多的关联先在类图中化为两个一对多的关联AC11B*吉林省优秀课程 长春工业大学精品课程:软件建模与分析 CCUTSE 201242多对多的关联多对多的

44、关联AB*先在类图中化为两个一对多的关联先在类图中化为两个一对多的关联AC11B*C表含有两个外键,一个是表含有两个外键,一个是A的主键,一个是的主键,一个是B的主键的主键然后将每个类映射到一个数据库表然后将每个类映射到一个数据库表表表A表表B吉林省优秀课程 长春工业大学精品课程:软件建模与分析 CCUTSE 201243对象类转化为数据库表的三种情况:对象类转化为数据库表的三种情况:表中只包含描述本类事物自身特征的属性表中只包含描述本类事物自身特征的属性表中既包含描述本类事物自身特征的属性,表中既包含描述本类事物自身特征的属性,也包含作为外键指向另一个表的元组的属性也包含作为外键指向另一个表

45、的元组的属性表中只包含作为外键指向其它表的元组的属性表中只包含作为外键指向其它表的元组的属性吉林省优秀课程 长春工业大学精品课程:软件建模与分析 CCUTSE 201244对整体对整体-部分结构的处理部分结构的处理分为紧密、固定的方式分为紧密、固定的方式和和松散、灵活的方式松散、灵活的方式二者的区别将通过数据库表的设计体现出来二者的区别将通过数据库表的设计体现出来紧密、固定方式:紧密、固定方式:把部分对象类的属性合并到整体对象类中把部分对象类的属性合并到整体对象类中松散、灵活方式:松散、灵活方式:整体对象类和部分对象类分别建立一个表整体对象类和部分对象类分别建立一个表通过外键表现整体部分关系通

46、过外键表现整体部分关系吉林省优秀课程 长春工业大学精品课程:软件建模与分析 CCUTSE 201245A1B1A0.1B1A*B1A1B*A*B*(a)(b)(c)(d)(e)紧密方式:紧密方式:B的属性合并到的属性合并到A建立建立A表表松散方式:松散方式:建立建立A、B两个表两个表A指向指向B或者或者B指向指向A紧密方式:紧密方式:B的属性合并到的属性合并到A建立建立A表表还要建立还要建立B表表松散方式:松散方式:建立建立A、B两个表两个表A指向指向B松散方式:松散方式:建立建立A、B两个表两个表A指向指向B松散方式:松散方式:建立建立A、B两个表两个表B指向指向A松散方式:松散方式:参考多

47、对多关参考多对多关联解决办法联解决办法首先解决多对首先解决多对多问题多问题然后建立然后建立A、B两个表以及新两个表以及新增类的表增类的表吉林省优秀课程 长春工业大学精品课程:软件建模与分析 CCUTSE 201246例:多对多的整体例:多对多的整体-部分结构的转化部分结构的转化*运动队运动队*1学生学生运动队运动队1*队员队员学生学生吉林省优秀课程 长春工业大学精品课程:软件建模与分析 CCUTSE 2012473、数据接口部分类的设计、数据接口部分类的设计 设计一个名为设计一个名为“对象存取器对象存取器”的对象类,它提供两种操作的对象类,它提供两种操作“对象保存对象保存”将内存中一个对象保存

48、到相应的数据库表中将内存中一个对象保存到相应的数据库表中“对象恢复对象恢复”从数据库表中找到对象所对应的元组,把它恢复成内存中的对象从数据库表中找到对象所对应的元组,把它恢复成内存中的对象执行这些操作需要知道对象的下述信息:执行这些操作需要知道对象的下述信息:它在内存中是哪个对象它在内存中是哪个对象为了知道从何处取得对象数据为了知道从何处取得对象数据或者把数据恢复到何处或者把数据恢复到何处它属于哪个类它属于哪个类为了知道该对象应保存在哪个数据库表中为了知道该对象应保存在哪个数据库表中它的关键字它的关键字为了知道该对象对应数据库表的哪个元组为了知道该对象对应数据库表的哪个元组吉林省优秀课程 长春

49、工业大学精品课程:软件建模与分析 CCUTSE 201248第一种设计方案第一种设计方案对每个要求保存和恢复的对象类,分别设计一个对每个要求保存和恢复的对象类,分别设计一个“对象保对象保存存”操作和一个操作和一个“对象恢复对象恢复”操作操作对象存取器对象存取器对象保存对象保存1对象恢复对象恢复1对象保存对象保存n对象恢复对象恢复n每个操作只负责一类对象的存或取每个操作只负责一类对象的存或取因此下述信息是确定的:因此下述信息是确定的:对象存放在哪个数据库表对象存放在哪个数据库表关键字所包含的属性数目与名称关键字所包含的属性数目与名称在操作接口中只需传递如下参数:在操作接口中只需传递如下参数:内存

50、中的一个对象变量内存中的一个对象变量用来提供或接收对象数据用来提供或接收对象数据对象关键字的值对象关键字的值优点:优点:每个操作都很容易实现,通常只需要一个数据操纵语句,每个操作都很容易实现,通常只需要一个数据操纵语句,(例如静态(例如静态SQL语句)语句)缺点:缺点:操作个数太多操作个数太多很难在问题部分采用统一的消息协议很难在问题部分采用统一的消息协议吉林省优秀课程 长春工业大学精品课程:软件建模与分析 CCUTSE 201249第二种设计方案第二种设计方案只设计只设计一个一个“对象保存对象保存”操作和一个操作和一个“对象恢复对象恢复”操作操作供全系统所有要求保存和恢复的对象类共同使用供全

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服