首页
首 页 论文定制 论文发表 全程服务 支付方式 免费论文 期刊目录
    热烈祝贺本站启用新域名 www.lunwenwangzhan.com ,欢迎大家访问,多提宝贵意见和建议!  [admin  2007年8月22日]         今天是:  
您现在的位置: 易起论文网 >> 论 文 >> 自科 >> 计算机 >> 正文
17net.net baidu
 栏目导航
 经济论文
货币金融 | 宏观经济 | 财政税收 | 行业经济
贸易物流 | 电子商务 | 经济相关
 管理论文
工商管理 | 行政管理 | 人力资源 | 旅游管理
会计审计 | 市场营销 | 财务管理 | 管理相关
 教育论文
教育研究 | 基础教育 | 中等教育 | 高等教育
学科教育 | 职业教育 | 教育相关
 自然科学
工 学 | 理 学 | 医 学 | 农 学 | 计算机
互联网 | 图书馆学 | 自科相关
 社会科学
法律学 | 保险保障 | 新闻传播 | 党建行政
政治外交 | 社科相关
 图片推荐
 频道推荐
固顶论文本站提供全程论文服务!
固顶论文学术论文全程发表操作!
固顶论文科技经济国家级期刊征稿
固顶论文易起论文网论文中介服务咨询!
固顶论文本站网上在线支付方式
固顶论文本站提供各类文稿/论文写作服务!
固顶论文学术论文本站推荐发表!
固顶论文代理论文推荐发表服务!
推荐论文祝贺本站被评为“支付宝互联网信任商家”
推荐论文目前有少量高教类核心期刊版面可发!
 联系方式
易起论文网竭诚为您提供专业的论文服务!
服务QQ:8651658 7729303
服务热线:15867125111 13957092437
邮箱:best365@gmail.com lunwen888@gmail.com
电话/传真:0571-88312951
 本站优势
  1.易起论文网创办于2003年,是业内有序经营时间最长的综合性老牌论文网站之一,拥有丰富的服务经验和社会资源。
2.本站签约作者均为有丰富实践经验的高学历专业人才,保证文稿的质量与版权。
3.本站的合作期刊均经过我们仔细遴选的合作刊物,均为中国期刊网来源期刊,杜绝非法期刊损害您的利益。本站合作期刊优先录用本站征稿稿源,部分刊物本站独家荐稿,为您的论文发表开通绿色通道。
4.本站率先支持支付宝,并有完善退款机制,保证您的资金安全。


服务指南:
如需论文咨询服务您需提供如下信息:
·论文题目(可由本站拟定)例:浅谈激励机制在企业管理中的应用。
·论文专业(或给出论文的研究方向)例:会计专业
·论文字数(或给出一个范围) 例: 10000-12000字
·论文用途(写作,发表,代写代发)例:省级CN刊物推荐发表
·论文时间(论文完成的最低时限) 例: 2周内交稿
 
  ※ 对象模型的关系投影研究         ★★★  
对象模型的关系投影研究
作者:佚名 文章来源:网络 点击数: 更新时间:2007-9-19 下午 07:22:21

 

摘要  本文在分析对象模型与关系模型区别的基础上,介绍了将对象模型投影成关系模型的投影原理,并结合实例详细论述了对象之间不同引用关系的不同投影方法以及继承实体的三种不同投影方法。

关键词  面向对象  数据模型  关系模型  投影

0 引言
     随着我国软件开发水平的提高,越来越多的软件开发自觉地遵循软件工程开发方法。在数据库应用的开发中采用了很多软件建模或数据建模工具,如Rational Rose、PowerDesigner等。这些建模工具在需求分析、系统分析以及设计,直至最终物理代码的生成都提供了强大的功能,带给数据库开发人员很大的便利。同时由于面向对象的方法能比较直观地描述现实系统,便于建立企业的业务模型,便于开发过程中的交流,因此开发人员使用这些工具进行需求分析、系统分析和设计的时候,一般也都建立对象模型。
建立起来的概念上的对象模型,其物理实现可以有两种,一种是对象数据库,一种是关系数据库。由于关系数据库更加成熟,并且占主导地位,所以大多开发人员会选择用关系数据库来实现设计出的对象模型。这样,在用对象模型分析与设计完成后,开发人员不得不将对象模型转换成关系模型[1];而在此数据库之上的数据操作也不得不改为针对关系模型,而不是概念层上的对象模型,这就使得设计与实现形成了一条鸿沟。为了填平这条鸿沟,使数据库上层开发人员还能够针对对象模型进行数据操作,就需要开发一个转换层,用来屏蔽掉对象模型与关系数据库之间的这种转换,该层的实现就称为对象模型的关系实现。
     对象模型的关系实现包括两方面的内容:一个是模型上的转换,称为“模型投影”,即将对象模型转换成关系模型;另一个是数据操作接口的转换,即定义一个接口负责把对对象模型的操作转换成对投影生成的关系模型的操作。本文重点介绍模型的投影方法,通过分析对象模型与关系模型的特点,提出了一套对象模型在关系型数据库上投影的具体方案。

1 投影原理分析
首先,我们比较一下对象模型和关系模型的主要概念。
     表1给出了对象模型与关系模型基本概念的对照。从中可以看出对象模型与关系模型有较大的区别,对象模型许多概念在关系模型中没有对应的概念,即使有对应的概念在实际投影时并不能简单地一一对应[2]。例如,一个实体并不能简单地投影成一个关系表,因为关系模型中没有实体之间的继承关系,所以一个实体的定义可能被投影成多个表,也可能没有关系表与之对应,如抽象实体。属性也不能直接对应,当对象模型中具有复杂数据类型时,一个属性可能被投影成多个列。
对象模型中实体之间的联系与关系模型中表之间的联系也有本质的区别。在对象模型中实体之间联系使用“引用”方式在实体与实体之间建立比较紧密的耦合关系和比较自然的导航关系。例如,要指出某人所在单位领导的姓名,可以用person.department.master.name这种简洁的方式直接获得,但在关系模型中则要通过一组复杂的表之间的关联查询(利用外部键)才能得到。
对象模型向关系模型的投影有三个关键要素:
(1)      对象模型的描述规范
(2)      关系模型的描述规范
(3)      对象模型向关系模型投影的规则
我们在此不从语法上来定义对象模型,只给出对象模型的主要概念。在我们的对象模型中将应用以下几个概念:(1)实体、(2)属性、(3)主标识、(4)对象引用、(5)实例、(6)继承、(7)方法、(8)对象标识、(9)聚集、(10)类型定义、(11)唯一性规则、(12)Where规则。
关系模型中将应用以下几个概念:(1)表、(2)列、(3)行、(4)主键、(5)外部键
为了按对象进行操作,需要建立一个数据字典,也称为投影字典。投影字典由一组关系表构成,在投影字典中要保存对象模型的完整描述。
2、基本内容的投影
基本的投影包括简单的对象模型向关系模型的转换。具体有以下几种:
(1)实体  一般投影成表。但只有一个独立的实体,既没有超类,也没有子类,才投影成一个表。具有继承关系的实体投影,将在第4节中介绍。由于投影规则选择不同,当一个实体投影成多个表时,不能保证可以用一个关系视图来描述一个实体。
(2)属性  对具有基本数据类型的属性,投影成列。这需要在对象模型与关系模型的各种数据类型之间建立对应关系。基本数据类型指整型、实型、字符串、日期、时间、布尔。如果对象模型采用枚举类型需要在关系模型中对列进行取值范围限定。其它复杂数据类型如聚集、结构类型则需要采用专门的处理方法。
(3)主标识、对象标识。对象标识在对象模型中并不需要明确地表示成对象的一个属性,采用的方式是在每一个与实体对应的关系表中都增加一个列,并把该列作为主键,数据类型为字符串,对象标识的格式为:实体名+表中唯一序列号。之所以把对象标识作为主键,是因为要把实体之间的引用采用以对象标识作为主键/外部键来实现的。这样原来的主标识就不能投影成主键了。在有的关系数据库中允许使用辅助键,如果没有辅助建则只能对原来的主标识投影成的列加上唯一性约束规则。
(4)实例   实例不属于模型投影的内容,但与投影的操作有密切关系。如果一个实体投影成多个表,则一个实例将由多个关系表的行构成。这些行必须具有相同的对象标识。
(5)聚集  如果聚集的元素类型是基本数据类型,可以考虑投影成二进制类型。如果元素类型是实体类型,这实际上构成了该实体与元素所指向实体之间多对多的引用关系,具体可参照第3节。
(6)类型定义  主要指自定义结构类型,需要将结构的域投影成单个的列。
(7)唯一性规则。转换为关系表的唯一性约束规则,当唯一性规则中包括的属性投影成多列时,注意要将多个列均包括在关系表的唯一性约束定义中。
(8)Where规则  转换成关系表的条件约束规则。
(9)名字转换规则  实体名转换成表名,属性名转换为列名,数据类型的域展开为列时,需要有一套名字转换规则。
3、对象之间引用关系的投影[3]
如果从纯粹的建模技术角度来看,对象之间的关系有以下几种:
      一对多关系
      多对多关系
      一对一关系
不管是哪一种关系在概念模型中都两种情况,一种是依赖的,一种是独立的。
为了方便叙述,我们定义了一个简单的对象模型,图2是该模型的实体关系图(也称为类图),图中的各实体只列出了主标识中的属性。图中分别用不同的符号给出了继承关系、多对多关系、依赖的一对多关系和独立的一对多关系。
具体说明如下:实体Student和Teacher是Person的子类,继承关系用一个三角形表示。一个系(Department)里有多个人(学生或老师),两个实体间用实线连接表示引用关系,实心圆圈表示多的一端。一个系可以开设多门课(Course),一门课是依赖于系的,这就是说只知道课程名还不能确定这门课,还需要知道是哪个系开设的这门课。同样是计算方法课,数学系开设的和计算机系开设的在难度上和内容上会有很大区别。用箭头表示依赖。一门课有多个学生选修,一个学生可以选修多门课程。

实体间不同的关系进行投影方法是不同的。
(1)独立的引用关系进行投影,需要在“多”的一边要产生一个外部键。如果实体Person投影对应的表是T_Person,则表T_Person中要自动增加一个属性DptName,作为外部键,对应实体Department投影成的表T_Department的主键DptName。如果在继承关系中Person要分解到多个子类表中,则这些子类表中都要生成这个对实体Department引用的外部键
(2)依赖的引用关系进行投影,不仅需要在“多”的一边产生一个外部键,而且还要把该外部键做为辅助键。例如实体Course投影成表T_Course时,不仅要生产一个外部键DptName,而且它的辅助键由两个列组成:DptName和CourseName。注意,根据第2节对象标识的投影规则,表T_Course的主键是对象标识列。
(3)实体之间多对多的关系进行投影,需要新建一个“交叉表”,该表专门记录实体间多对多的这种联系,原来的两个实体表与新建的交叉表之间的关系是一对多的关系,这实际上把多对多关系变成两个一对多关系。实体Cource和Student之间的多对多关系投影成表T_Course_Student,它有两个列一个是Course_ID,一个是Student_ID,都是外部键,分别用来对表T_Course或T_Student进行引用。
4 继承关系的投影
继承关系的投影是模型投影中的关键问题,对该问题的不同解决方案会影响到整个模型投影的设计。一般来讲,在关系数据库中实现继承的方法可划分为三类:
(1)合并法。合并法就是将整个类层次映射为单个关系表,表中保存所有类(基类、子类)的属性。图2中实体Person、Student、Teacher映射成一个表T_Person。如图3所示,表中增加了一个属性PersonID,由于对象标识的格式是实体名+唯一序列值,通过它的前缀可以区分用一个实例属于哪一个实体。

合并法实现继承关系投影的优点是实现简单,操作方便,缺点是会产生大量的数据冗余。
(2)分解法  分解法就是将每个具体子类映射成单个关系表,超类的属性将复制到各子类中。子类对应的关系表包括自身的属性和继承的属性,每个具体的子类包含各自的对象标识。抽象的基类不参与映射。其中,Person由于是抽象类,未映射成数据库表;而Student、Teacher映射为相应的表,它们具有各自的主键。如图4所示。
     分解法的表中包含了具体子类的所有信息,操作实现简单,但超类的修改会导致相对应的表及其子类所对应表的更改,这会增加保持数据的完整性的复杂性。
(3)单表法  单表法为每一个类创建数据库表,表中包含特定于该类的属性和对象标识。图5所示,注意personID作为所有表的主键,它们之间是is-a的关系。
单表法与面向对象的概念具有一致性,支持多态,易于修改基类和增加新的类。但数据库中存在大量的关系表,加上表之间的关联较多,会降低数据访问效率。
以上三种方法各有优缺点,没有一种是绝对完美的。因此,数据库设计人员要根据模型的具体情况选择继承的投影方法。
5      结束语
本文介绍的对象模型的关系投影原理已经用于多个项目的对象数据平台的开发上,简洁实用。由于对象模型到目前为止还没有统一的标准,因此对象模型向关系模型的投影规则要根据实际模型的定义来制定。在实际的投影规则定义中,名字的转换规则、聚集的处理方式、对象之间的引用关系、继承处理方式可以根据需要确定下来,也可以设计成多种方式并存,建立可控制的投影,这需要设计一整套投影规则元模型。建立一套可描述对象模型、关系模型、投影规则的形式语言规则和语法规则在理论上和应用上具有重要意义,这也是我们目前正在研究的重点。



 

  • 上一篇论文:

  • 下一篇论文: 没有了
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     
    关于〖对象模型的关系投影研究〗的最新评论:
    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 管理登录 | 
    Copyright 2001-2005 《易起论文网》--轻松生活,一起创造! (中国老牌知名“论文网”)
    《易起论文网》提供专业的“文稿写作”、“论文发表”服务!四年成功运营,品质值得信赖!
    主要业务:论文代写,论文发表,商业策划,资料翻译,书稿出版,文书撰写等!
    本站坚持:优质、诚信、高效、安全四大原则!需要“发表论文、代写论文”请与本站联系!
    本站信箱best365@gmail.com 电话:0571-88312951
    本站法律顾问:博爱星(上海)律师事务所 黄雪松(律师
    浙ICP备05019626号