【教学课件】第九章联系的实现.ppt
《【教学课件】第九章联系的实现.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第九章联系的实现.ppt(48页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第九章 联系的实现对象类型间通过属性的引用建立了对象实例间的联系本章重点研究对象间联系的语义及其实现方法对象间的联系可以是n元联系(n2)n个对象间通过一个联系进行联接其中最简单,常用的是二元联系(n=2)二元联系中,二个对象间的联系语义有1:1,1:N,N:1,N:M9.1 没有属性的二元联系一个二元联系本身没有任何属性,它只表达了二个对象类型间的联系联系的实现:通过设置进入点entry point来完成1.进入点设在Tleft处:Tleft类型增加一个引用对象Tright的属性,Tright类型无需增加属性2.进入点设在Tright处3.增加一个对象类型Rbin,它仅有二个元组属性,分别是
2、Tleft类型和Tright类型,这种方法可以加载Rbin本身独特的属性TleftRbinTright1:1的二元联系的实现(一)无冗余的表达方式一个联系仅在一个对象属性中表达采用(或者)方法应当从查询需求入手,选择查询频度高的一方作为进入点问题:1)反向查询速度极慢:对一个特定的Tright实例,查其相应的Tleft实例时需要查过所有的Tleft实例集合2)即使正向查询,若存在联系的偶对集合很小,那么仍然费时采用方法定义一个Rbin类型,Tr并由系统维护Tr集合,适用于Tr相对Tleft(Tright)较小时问题:1)需要二次查找才能定位2)当Tr集合仍然庞大是,寻找一组特定的偶对效率仍然很
3、低需要建立索引TleftRTright11type Tleft is body R:Tright;end type Tleft;type Tright body R-1:Tleft;end type Tright;type TR is with extension is body left:Tleft;right:Tright;end type TR;1:1的二元联系的实现(续)(二)冗余的表达方式1二个进入点在Tleft中建立R属性类型为Tright在Tright中建立R-1属性类型为Tleft优点:提高反向查询效率问题:当两个对象实例间的联系发生变更时,容易产生修改异常,生成对象库状态的一
4、致性受到破坏解决方法:重新定义R属性的值接受操作refine R:Tright code setR;define setR(oright)isbegin oright.R-1:=self;self.R:=oright;end define setR;由此,确保了R属性与.R-1属性的同步修改必须利用封装技术来控制不会单独修改.R-1(.R-1只读)总结1.利用封装技术重新定义关联属性的状态的修改2.特别注意不能在同一时间,以同样的方式修改类型Tright的.R-1的值接受操作,否则导致递归操作的无限循环即:重写Tleft,R的值接受操作隐藏Tright,.R-1 的值接受操作,使其为只读类型(
5、三)冗余表达方式2采用显式的冗余方式用TR作为中间联系方法将二者显式相连查询为二次查询,但管理方便对R,R-1 的修改自然要遵照异常处理方式重定义VCO和做相应的隐藏type Tleft is body R:TR;end type Tleft;type TR is with extension is body left:Tleft;right:Tright;end type TR;type Tright body R-1:TR;end type Tright;1:N 的二元 联系的实现type Tleft is type Tright is type TR body body with ext
6、ension is body R:Tright;R-1:Tleft;left:Tleft;right:Tright;end type Tleft;end type Tright;end type TR;方式(1)方式(2)方式(3)TleftTrightR1N其中唯有方式(2)能确保一致性约束,R-是单值的。方式(1)(3)均不能确保两对象间1:N的约束。对(1),必须重新定义R属性的值接受操作对(3),必须对TR的对象实例库进行一致性维护,即TR的insert操作进行一致性维护N:M的二元联系的实现type Tleft is type Tright is type TR body body
7、with extension is body R:Tright;R-1:Tleft;left:Tleft;right:Tright;end type Tleft;end type Tright;end type TR;方式(1)方式(2)方式(3)采用原则:以最大查询频率为依据选择入口点可以采用组合冗余方法,但需要进行状态一致性维护TleftTrightRNM具有K个属性的二元联系的实现1:1的联系:仍然可以采用方式(1)或(2),K个属性寄放在Tleft或Tright1:N的联系只能放在单值属性的对象类型方N:M的联系寄存在那一方均不合适,只能采用方式(3),定义此属性的类型TR,TR具有K
8、+2个元组属性Tlefta1TrightRakType TRwith extension isBodyleft:Tleft;right:Tright;a1:T1R;ak:TkR;operationsdeclare TR:Tleft,Tright,T1R,TkR -TR code initTR;implementationdefine initTR(Oleft,Oright,O1,Ok)isbegin self.left:=Oleft;self.right:=Oright;self.a1:=O1;self.ak:=Ok;end define initTRend type TRN元联系的实现只能采
9、用方式(3)建立TR类型处理对初始化进行重定义,以保证约束的一致性。为了检索高效率,需要考虑受控的冗余建模。T1T2a1akTnRtype TRwith extension isBodyentitiy1:T1;entitiyn:Tn;a1:T1R;ak:TkR;operationsdeclare TR:T1,Tn,T1R,TkR -TRimplementationend type TR示例分析(一)1-1联系实例:工程师与他所占办公室的联系处理约束条件:一个工程师一间办公室type Engineer is type Office is bodybody resideIn:Office;isOc
10、cupied:Engineer;end type Engineer;end type Office;先有工程师,再分 经常查询某办公室的工程师是谁配房间EngineersOfficesresidesIn11用方式(1)和(2)组合建模下冗余的一致性维护联系更新时一般的方式(1)If(thePenthouse.isOccupiedby!=NULL):=NULL;(2)If(leonardo.residesIn!=NULL)leonardo.residesIn.isOccupiedby:=NULL;(3)leonardo.residesIn:=thePenthouse;(4)thePenthous
11、eis.Occupiedby:=leonardo;设计操作moveToOffice来维护一致性状态define moveToOffice(newResidence)isbegin if(newResidence.isOccupiedBy!=NULL):=NULL;if(self.residesIn!=NULL)self.residesIn.isOccupiedBy:=NULL;self.residesIn :=newResidence;newResidence.isOccupiedBy:=self;end define moveToOffice;示例分析(二)工程师与部门间的1:N的联系typ
12、e Engineer is type Division is body body worksfor:Division;employs:EngineerSet;end type Engineer;end type Division;type EngineerSet is body Engineer end type EngineerSet;EngineersDivisionsworksForN1控制类型冗余模型的两个操作hiredefine hire(newEng)isBeginself.employs.insert(newEng);newEng.worksFor:=self;end defin
13、e hire;Firedefine fire(badEng)isBeginself.employs.remove(badEng);badEng.worksFor:=NULL;end define hire;聘用和辞退两个操作可以保持DB的完整性约束。递归的1:N的关系产品与产品间具有递归的组合联系E-R图的展开可以有两种描述模式productscompositionN1SubSuperA:通过Super属性表达了is.part-of的语义关系:即:一个产品属于上层产品的一个部件type Product is body super:Product;end type Product;适用范围:查找
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件 教学 课件 第九 联系 实现
限制150内