面向对象数据库答案

上传人:t****d 文档编号:243023342 上传时间:2024-09-14 格式:PPT 页数:25 大小:63.50KB
返回 下载 相关 举报
面向对象数据库答案_第1页
第1页 / 共25页
面向对象数据库答案_第2页
第2页 / 共25页
面向对象数据库答案_第3页
第3页 / 共25页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,高级数据库系统习题解答,(1),1,第一次作业,7.2,解:第三句有问题,左边为,string,类型,右边是,City,类型。,CityOfLA.name := cityOfLA.mayor.spouse.livesIn;,lll,2,第一次作业,7.4,解:前一种的输出结果为:,Donald Duck,Mickey Mouse,后一种的输出结果为:,60,60,因为前一种是引用语义,而后一种是复制语义。,3,第一次作业,7.9,解:,(1), (2),从引用语义考虑,,(3), (4),从复制语义考虑。,(1)(2),执行完毕后,,mary.chilaren,=joe.children,=littleJoe,4,第一次作业,7.9,解:,(3)(4),执行完毕后,,betty.children = jimbo, jim.children = ,。,5,第二次作业,8.8,解:,surface:,计算表面积。,scale:,按比例放大,/,缩小,Cuboid,的尺寸。,center:,返回,Cuboid,的中心坐标。,diagonal:,计算对角线长度。,minDistance:,计算,Vector,参数到,Cuboid,的最短距离。,6,第二次作业,8.8,解:,persistent type Cuboid is,public length, width, height, surface, volume, weight, translate, scale, rotate, certer, diagonal, minDistance;,body v1, v2, v3, v4, v5, v6, v7, v8 : Vetex; mat : Material; value : float;,operations,declare surface :,float;,declare scale : Vertex,void,code scaleCuboid;,declare center :,Vertex;,declare diagonal:,float;,declare minDistance : Vertex,float,code minDistanceCode;,7,第二次作业,8.8,解:,implementation,define surface is,return 2.0 * (self.length*self.width + self.length*self.height + self.width*self.height);,define scaleCuboid(s) is,begin,self.v1.scale(s);,self.v8.scale(s);,end define scaleCuboid;,8,第二次作业,8.8,解:,define center is,var c : Vertex;,begin,c.create;,c.x = 0.5 * (self.v1.x + self.v7.x);,c.y = 0.5 * (self.v1.y + self.v7.y);,c.z = 0.5 * (self.v1.z + self.v7.z);,return c;,end define certer;,define diagonal is,return self.v1.distance(self.v7);,9,第二次作业,8.8,解:,define minDistanceCode(v) is,var v0;,begin,/,将长方体的,6,个面无限延伸,可将整个空间分为,27,个区域,if (v,在长方体内部或表面上,),return 0;,else begin,根据,v,所在区域,可简单判断出长方体上距,v,最近的点,v0,所在 的面,/,棱,/,顶点,进而求出,v0;,return v.distance(v0);,end else,end deine minDistanceCode;,end type Cuboid;,10,第二次作业,9.1,解:,(,1,)方法一采用,1:1,关系表示,1:N,关系,存在较多冗余;,不考虑索引,已知,left,查询对应的,right,集时,方法二效果明显好于方法一;已知,right,查询对应的,left,时,方法一效果好于方法二。,当插入新关系,时,两种方法都无法保证一致性,即原关系,1:N,的语义约束可能被违反,需要对,insert,操作做修改,保证每一个,Tright,实例仅有至多一个对应的,Tleft,实例。,删除关系,时,方法一中直接删除对应的,TR,实例,方法二中只需修改,right,集合,直到,right,集合为空时,才需要删除对应的,TR,实例。,更新操作由插入删除操作组合而成,不再讨论。,(,2,)方法一、二的,insert,操作均需修改,以保证一致性,方法二的,delete,操作也需要修改。修改思想上边已说明,具体算法不再给出。,11,第二次作业,9.7,解:,在对象内部使用计数器,对于专用对象,生成实例,置为,1,,被引用,置为,0,;,对于依赖对象,引用,+1,,不再引用,-1,,为,0,时删除对象。,lll,12,第三次作业,10.5,解:,合法的重定义要求:,操作名不变,参数个数不变;,操作的接受者类型是原操作中接受者类型的子类;,操作的返回值类型是原操作返回值的子类;,操作的参数类型是原操作参数类型的超类。,题中的重定义仅满足(,1,)(,2,)(,3,),但违反(,4,)。,ConicalPipe,是,Pipe,的子类而非超类,故不合法。,考虑程序段:,var aPipe, anotherPipe : Pipe;,aConicalPipe : ConicalPipe;,anotherPipe := aConicalPipe; /,可替换性,合法,anotherPipe.connect(aPipe); /,编译通过,执行时动态绑定错误。,13,第三次作业,10.6,解:继承属性的类型是不能重定义的,必须保持原类型。,(1),子类中继承属性的类型不能是该类型的子类,即特化不合法。,特化举例:,type Person is,body name : string;,age : int;,type Employee supertype Person is,body boss : Employee;,type Manager supertype Employee is,body refine boss : Manager;,14,第三次作业,10.6,解:,程序段:,var anEmp : Employee;,aMgr : Manager;,aMgr.boss := anEmp; /,语法错误,anEmp.boss := aMgr; /,可替换性,合法,anEmp.boss.boss := anEmp; /,语法检查合法,但有潜在问题,(2),子类中继承属性的类型不能是该类型的超类,即泛化不合法。,Person,和,Employee,的类型定义同上,,Manager,类型定义如下:,type Manager supertype Employee is,body refine boss : Person;,程序段:,var aPerson : Person;,anEmp : Employee;,aMgr : Manager;,anEmp.boss := anEmp; /,合法,aMgr.boss := anEmp; /,可替换性,合法,aMgr.boss.boss := anEmp; /,语法错误,15,第三次作业,10.11,解:略,16,第三次作业,12.3,解:,(1),Polymorph declare member (ListType ) : ListType | ElemType,bool;,define member (t) is,var item : ElemType;,begin,foreach (item in self),if (item = t),return true;,return false;,end define member;,17,第三次作业,12.3,解:,(2),Polymorph declare nthmember (ListType ) :,ListType | int,ElemType;,define nthmember (n) is,var i : int;,item : ElemType;,Begin,if (n self.length | n = 1 & i = k & k = m ,endfor,endif,return newlist;,end define substitute;,20,第四次作业,13.5,解:多继承不能很好的表示瑞士军刀的例子,多继承缺点:,IS-A,语义不清,方法需要重定义以避免冲突,某个部件不能作为单独的部件使用,单继承多置换:,单独的部件可以作为整个对象来使用,使用灵活,21,第四次作业,14.8,解:,Retrieve all Emps who earn more than their Manager. But note that Managers ara also Emps and may work in their own Dept.,select e,from e in EMP,where e.salary e.worksin.mgr.salary;,22,第四次作业,14.9,解:,Retrieve all Managers of the R&D department(s), who supervise Emps located in the Building called “E1”.,select m,from m in Manager, e in EMP,where m = e.worksin.mgr,and m.worksin.name = R&D,and e.office.building = E1;,23,第四次作业,18.1,解:,schema C is,subsschema F;,subsschema G;,end schema C;,schema E is,subsschema H;,subsschema I;,end schema E;,schema A is,subsschema B;,subsschema C;,end schema A;,schema B is,subsschema D;,subsschema E;,end schema B;,lll,24,第四次作业,18.2,解:,schema B is,public S,interface,type S is ;,implementation,type T is;,end schema B;,25,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!