- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
对象模型的关系投影研究的论文.doc
对象模型的关系投影研究的论文
摘要 本文在分析对象模型与关系模型区别的基础上,介绍了将对象模型投影成关系模型的投影原理,并结合实例详细论述了对象之间不同引用关系的不同投影方法以及继承实体的三种不同投影方法。
关键词 面向对象 数据模型 关系模型 投影
0 引言
随着我国软件开发水平的提高,越来越多的软件开发自觉地遵循软件工程开发方法。在数据库应用的开发中采用了很多软件建模或数据建模工具,如rational rose、poent.master.name这种简洁的方式直接获得,但在关系模型中则要通过一组复杂的表之间的关联查询(利用外部键)才能得到。
对象模型向关系模型的投影有三个关键要素:
(1) 对象模型的描述规范
(2) 关系模型的描述规范
(3) 对象模型向关系模型投影的规则
我们在此不从语法上来定义对象模型,只给出对象模型的主要概念。在我们的对象模型中将应用以下几个概念:(1)实体、(2)属性、(3)主标识、(4)对象引用、(5)实例、(6)继承、(7)方法、(8)对象标识、(9)聚集、(10)类型定义、(11)唯一性规则、(12)ent)里有多个人(学生或老师),两个实体间用实线连接表示引用关系,实心圆圈表示多的一端。一个系可以开设多门课(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 结束语
本文介绍的对象模型的关系投影原理已经用于多个项目的对象数据平台的开发上,简洁实用。
您可能关注的文档
- 对建立健全惩治和预防腐败体系工作几个问题的思考的论文.doc
- 对建筑施工管理问题的分析的论文.doc
- 对建设“节约型校园”的思考的论文.doc
- 对建设投资项目前期阶段的审计研究的论文.doc
- 对建设银行管理会计建设的思考的论文.doc
- 对当代中国行政道德失范的理性审视的论文.doc
- 对当前IP网络路由技术研讨的论文.doc
- 对当前世界经济形势的若干思考的论文.doc
- 对当前会计主体的研究的论文.doc
- 对当前医院管理会计的研究的论文.doc
- 盘州市腾隆矿业有限公司建筑石料用灰岩矿(扩建)项目环评报告.docx
- 兰田河天柱县中寨至小沟溪段治理工程环评报告.docx
- 广西宁铁物资工业有限公司中石化宁铁加油站环评报告.docx
- 柳州市弘华得贸易有限公司煤堆场建设项目 报告表.docx
- 广西锦鹿福建材有限公司年产15万方沙子的沙场项目环评报告.docx
- 贵州仁怀市九重天酒业有限公司锅炉改造项目环评报告.docx
- 盘州市腾鑫矿业有限公司盘州市大山镇大地头村建筑石料用灰岩矿零星区块(扩建)项目环评报告.docx
- 凯里经济开发区贵繁节能建材有限公司涂料生产扩建项目环评报告.docx
- 柳州市友拓石料加工有限公司石渣、石粉生产加工项目环境影响报告表.docx
- 广西柳州装配式建筑现代化产业园—环保型商品混凝土搅拌站3号线环评报告.docx
最近下载
- DB3208_T 220-2024电子政务云平台运行维护管理规范 .docx VIP
- 2025杭州电力设备制造有限公司招聘70人(第二批)笔试备考试题及答案解析.docx VIP
- 兽医生物制品学兽用疫苗生产和质量控制培训ppt课件.pptx VIP
- 2025杭州电力设备制造有限公司招聘70人(第二批)笔试模拟试题及答案解析.docx VIP
- 专题16 三角函数与解三角形解答题综合(六大考点,65题)(原卷版)十年(2016-2025)高考数学真题分类汇编.docx
- 2025江苏南京农业大学新校区建设指挥部、基本建设处人员招聘10人考试模拟试题及答案解析.docx VIP
- 2025杭州电力设备制造有限公司招聘70人(第二批)笔试参考题库附答案解析.docx VIP
- 供水工程监测方案(3篇).docx VIP
- 苏教版四年级数学上册第二章 两、三位数除以两位数复习(课件).pptx VIP
- EPC工程总承包项目设计实施要点.docx VIP
文档评论(0)