- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据库在面向对象设计中的应用
1 实体管理模型
类是具有相同属性和服务的一组对象的抽象定义。它为所有对象提供了统一的描述,并给出了属于该对象的抽象定义,对象是相对于该定义的对象。
少量的对象实体处理较简单,当系统中某个类的对象实体数量很多时,管理(增加、修改、删除、查询)这些实体是系统必须解决的问题。所以,系统建立的对象模型,必须为管理已有对象实体而建,它可用于增加、修改、删除、查询已有对象的实体,称为实体管理模型。实体管理模型在面向对象的分析设计中也是一个类,这个类在建模时容易被忽略。在纯粹的面向对象的程序设计中,一般使用一个管理对象的类来进行多个对象的管理。
本文用一个人通信录的处理实例,建立一个传统实体管理模型。通信录是一个对象,它所包含的每一个其他人的情况也是一个对象。
OBJclass的对象是一个通信录里的人,对整个通信录的管理,不能直接放在该类中实现,而应该是通信录类提供的操作。
2 属性属性型
数据库可以用来保存系统中已实例化的一些对象特征,如属性。但数据库不能直接将整个对象存贮起来(至少不能直接存贮对象的服务),即数据库不能直接作为永久对象的保留媒介,解决此问题有以下两种思路:
1 中小型企业设计
把对象、类等不能直接保留在数据库中的部分(如服务),以数据库的概念及方法间接地保留在数据库中,再从数据库中取出后还原。由此建立了属性-方法的对应关系,每一个独立的联合记录就构成了一个完整的对象。
2 模式2:数据库仅为双重对象
数据库仅记录对象的属性,完成属性的增加、修改、查找、删除功能,至于对象中的“服务”等,不放入数据库中,而在面向对象的分析及设计以至最终的实现中解决,故数据库仅是永久对象属性的保留,而不是整个永久对象的保留。
第一种思路破坏了面向对象概念的完整性,保留在数据库中间接部分及其转换的过程在面向对象的分析及设计时的建模,无论在设计还是实现上,都存在很大的复杂性,而第二种思路实现则非常容易,可以充分发挥数据库与面向对象语言的长处,且绝大多数的OO语言都支持。基于第二种思路,将数据库与对象的属性联系起来必须解决从对象到数据库的存贮及从数据库到对象的恢复,解决的方法如下:
1 录入性的改变
对象属性的改变方式可以划分为录入性的改变和程序触发性两种,无论哪种方式都必须把这个改变永久性地记录到数据库中。对于录入性的改变,直接设计一个录入界面并将录入的属性存盘即可。对于程序触发性的属性改变,在属性所在的类模型(类)中设计改变这些属性的服务。
2 发送符合属性的实例
在永久属性所在的模型中设计“取出”服务,该服务首先根据属性所在的类,实例化出一个空对象(所有属性值均为初始值的对象),再根据取出的条件,从数据库中取出符合条件的对象属性值,并将具体的属性值赋予该实例的对应属性,最终返回对象实体。当“取出”服务根据属性所在的类实例化出一个对象时,这个空对象已经具有了该类所有的一切服务。
3 数据库设计原则
数据库中只记录对象的属性值,不处理对象的服务,对象的服务是面向对象的分析、设计以至最终实现中解决的问题。因此,类的关系中数据库只需解决属性的关系。
数据库是对象属性的永久保留,而对象所在的类可能存在继承关系,属性是从其他类继承而来的,因此,类的继承关系必须在数据库中得到体现。
类之间不仅仅存在继承关系,还有其他的关系。同样,所有关系在数据库设计中都必须得到体现。不考虑这些关系,将破坏面向对象分析设计或数据库理论的完整性、统一性,不能正确将面向对象的分析设计与数据库理论真正结合起来。
3.1 类与类的关系
类与类之间的关系可以分为三种:整体-部分结构、一般-特殊结构和实例连接关系。
1 整体-部分关系说
整体-部分结构的定义如下:如果对象A是对象B的一个组成部分,则称B为A的整体对象,A为B的部分对象,并把B和A之间的关系称作整体-部分关系。整体-部分结构表现为“a part of”的关系,如发动机与轿车、电脑与CPU等。
2 般-特殊类
一般-特殊结构的定义如下:如果类A具有类B的全部属性和全部服务,而且具有自己特有的某些属性或服务,则A称为B的特殊类,B称A的一般类。一般-特殊结构表现为“is_a”或“a kind of”的关系,即继承关系,如蝴蝶与昆虫、卡车与轿车、人与学生等。
一般-特殊结构使特殊类通过继承而拥有一般类的特征,整体-部分结构使整体对象通过组装而拥有部分对象的特征。尽管途径不同,但结果却一致,即一些对象拥有另一些对象的特征。
3 对象的依赖关系
实例连接用于表达对象之间的静态联系,是指最终可通过对象属性来表示的一个对象对另一个对象的依赖关系。如上级与下级间、教师与学生的授课关系等。
3.2 嵌入部分对象
整体-部分结构有两种实现方式:一是用部分对象的类作为数据类型,静态地说明整体对象中代表部分对象
文档评论(0)