资源描述:
《2019高级数据库系统习题解答 课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、高级数据库系统习题解答(1)第一次作业7.2解:第三句有问题,左边为string类型,右边是City类型。CityOfLA.name:=cityOfLA.mayor.spouse.livesIn;第一次作业7.4解:前一种的输出结果为:DonaldDuckMickeyMouse后一种的输出结果为:6060因为前一种是引用语义,而后一种是复制语义。第一次作业7.9解:(1),(2)从引用语义考虑,(3),(4)从复制语义考虑。(1)(2)执行完毕后,mary.chilaren=joe.children={littleJoe}第一次作业7.9解:(3)(4)执行完毕后,b
2、etty.children={jimbo},jim.children={}。第二次作业8.8解:surface:计算表面积。scale:按比例放大/缩小Cuboid的尺寸。center:返回Cuboid的中心坐标。diagonal:计算对角线长度。minDistance:计算Vector参数到Cuboid的最短距离。第二次作业8.8解:persistenttypeCuboidispubliclength,width,height,surface,volume,weight,translate,scale,rotate,certer,diagonal,minDistan
3、ce;body[v1,v2,v3,v4,v5,v6,v7,v8:Vetex;mat:Material;value:float;]operations…declaresurface:float;declarescale:VertexvoidcodescaleCuboid;declarecenter:Vertex;declarediagonal:float;declareminDistance:VertexfloatcodeminDistanceCode;…第二次作业8.8解:implementation…definesurfaceisreturn2.0*(se
4、lf.length*self.width+self.length*self.height+self.width*self.height);definescaleCuboid(s)isbeginself.v1.scale(s);…self.v8.scale(s);enddefinescaleCuboid;第二次作业8.8解:definecenterisvarc:Vertex;beginc.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.v
5、7.z);returnc;enddefinecerter;definediagonalisreturnself.v1.distance(self.v7);第二次作业8.8解:defineminDistanceCode(v)isvarv0;begin//将长方体的6个面无限延伸,可将整个空间分为27个区域if(v在长方体内部或表面上)return0;elsebegin根据v所在区域,可简单判断出长方体上距v最近的点v0所在的面/棱/顶点,进而求出v0;returnv.distance(v0);endelseenddeineminDistanceCode;…endtype
6、Cuboid;第二次作业9.1解:(1)方法一采用1:1关系表示1:N关系,存在较多冗余;不考虑索引,已知left查询对应的right集时,方法二效果明显好于方法一;已知right查询对应的left时,方法一效果好于方法二。当插入新关系时,两种方法都无法保证一致性,即原关系1:N的语义约束可能被违反,需要对insert操作做修改,保证每一个Tright实例仅有至多一个对应的Tleft实例。删除关系时,方法一中直接删除对应的TR实例,方法二中只需修改right集合,直到right集合为空时,才需要删除对应的TR实例。更新操作由插入删除操作组合而成,不
7、再讨论。(2)方法一、二的insert操作均需修改,以保证一致性,方法二的delete操作也需要修改。修改思想上边已说明,具体算法不再给出。第二次作业9.7解:在对象内部使用计数器对于专用对象,生成实例,置为1,被引用,置为0;对于依赖对象,引用+1,不再引用-1,为0时删除对象。第三次作业10.5解:合法的重定义要求:操作名不变,参数个数不变;操作的接受者类型是原操作中接受者类型的子类;操作的返回值类型是原操作返回值的子类;操作的参数类型是原操作参数类型的超类。题中的重定义仅满足(1)(2)(3),但违反(4)。ConicalPipe是Pipe的子