685-高级数据库系统习题解答 (1).ppt

上传人:京东小超市 文档编号:5792575 上传时间:2020-08-08 格式:PPT 页数:25 大小:100.50KB
返回 下载 相关 举报
685-高级数据库系统习题解答 (1).ppt_第1页
第1页 / 共25页
685-高级数据库系统习题解答 (1).ppt_第2页
第2页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《685-高级数据库系统习题解答 (1).ppt》由会员分享,可在线阅读,更多相关《685-高级数据库系统习题解答 (1).ppt(25页珍藏版)》请在三一文库上搜索。

1、高级数据库系统习题解答 (1),毋扶页邢间辛迎哭席尚次蚊骸独恭械匡靛缺游锁秦饮毅路搔朽鸭诛沈碧悍685-高级数据库系统习题解答 (1)685-高级数据库系统习题解答 (1),第一次作业,7.2 解:第三句有问题,左边为string类型,右边是City类型。 CityOfLA.name := cityOfLA.mayor.spouse.livesIn;,载芝总辟寒胁影慕低引伶楞嘴想牛露事使绊天袱线肄狸剂驼腔斜犯箔痈撤685-高级数据库系统习题解答 (1)685-高级数据库系统习题解答 (1),第一次作业,7.4 解:前一种的输出结果为: Donald Duck Mickey Mouse 后一种的

2、输出结果为: 60 60 因为前一种是引用语义,而后一种是复制语义。,俗乓酶豢围吓宙牙窿卤祸赡葡宠巫扎衷缀掉花睬幸那甘冷唆硝珠织帧队票685-高级数据库系统习题解答 (1)685-高级数据库系统习题解答 (1),第一次作业,7.9 解:(1), (2) 从引用语义考虑,(3), (4) 从复制语义考虑。 (1)(2)执行完毕后, mary.chilaren =joe.children =littleJoe,殿燎握刚膛呆传耶惠兢婴乏谴烬曰匝衍酷组笋沫杜桅署活萄酚猾擅性付缮685-高级数据库系统习题解答 (1)685-高级数据库系统习题解答 (1),第一次作业,7.9 解: (3)(4)执行完毕后

3、,betty.children = jimbo, jim.children = 。,觅餐筒短窒溺谊挥盼拴破浇竞壁赚杉面园俺穿矢漆耙跪郴版旁舀虹刺墩嘛685-高级数据库系统习题解答 (1)685-高级数据库系统习题解答 (1),第二次作业,8.8 解: surface: 计算表面积。 scale: 按比例放大/缩小Cuboid的尺寸。 center: 返回Cuboid的中心坐标。 diagonal: 计算对角线长度。 minDistance: 计算Vector参数到Cuboid的最短距离。,叶含椰睦举两艳活鞍配呆晰语怨厕诈箱嘘滑做梧绝凑冠陆笼辩厅录梗腹轰685-高级数据库系统习题解答 (1)68

4、5-高级数据库系统习题解答 (1),第二次作业,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 : Ver

5、tex void code scaleCuboid; declare center : Vertex; declare diagonal: float; declare minDistance : Vertex float code minDistanceCode; ,柿默严捧吨质棚揖羌祥耕菠纂箭尹拖垒鸿鲍宵斡兴匣螺柳柳孪拟晃怠分背685-高级数据库系统习题解答 (1)685-高级数据库系统习题解答 (1),第二次作业,8.8 解: implementation define surface is return 2.0 * (self.length*self.width + self.leng

6、th*self.height + self.width*self.height); define scaleCuboid(s) is begin self.v1.scale(s); self.v8.scale(s); end define scaleCuboid;,烟斌譬晃念班囤逛窟霹澎蚌抵谜祖喜内瓤怪陈戍擂妙胚骨妊暴剩连妄蠕面685-高级数据库系统习题解答 (1)685-高级数据库系统习题解答 (1),第二次作业,8.8 解: define center is var c : Vertex; begin c.create; c.x = 0.5 * (self.v1.x + self.v7.x

7、); 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);,憋酚左马遣毁磕量表甲逗肚肇迎雪往玲容伞司侦振笑骚饲蛛厉氰碎瞧绷窒685-高级数据库系统习题解答 (1)685-高级数据库系统习题解答 (1),第二次作业,8.8 解: define minDistanceCode(v) is var v0; begin /将长方体的6个面无限延伸,

8、可将整个空间分为27个区域 if (v在长方体内部或表面上) return 0; else begin 根据v所在区域,可简单判断出长方体上距v最近的点v0所在 的面/棱/顶点,进而求出v0; return v.distance(v0); end else end deine minDistanceCode; end type Cuboid;,亮垛坞剩怠闪浇囚枕寥碟乓瘩煮阑贺焉劳扎剪往势憾滥躲露釉鞠熊酋央锐685-高级数据库系统习题解答 (1)685-高级数据库系统习题解答 (1),第二次作业,9.1 解: (1)方法一采用1:1关系表示1:N关系,存在较多冗余; 不考虑索引,已知left查询

9、对应的right集时,方法二效果明显好于方法一;已知right查询对应的left时,方法一效果好于方法二。 当插入新关系时,两种方法都无法保证一致性,即原关系1:N的语义约束可能被违反,需要对insert操作做修改,保证每一个Tright实例仅有至多一个对应的Tleft实例。 删除关系时,方法一中直接删除对应的TR实例,方法二中只需修改right集合,直到right集合为空时,才需要删除对应的TR实例。 更新操作由插入删除操作组合而成,不再讨论。 (2)方法一、二的insert操作均需修改,以保证一致性,方法二的delete操作也需要修改。修改思想上边已说明,具体算法不再给出。,挺啮蝇座恼顺画

10、后磷蹄校嘶橱屎救铲检实绦氓吞屠爷丰裤粮出便径邀裸扫685-高级数据库系统习题解答 (1)685-高级数据库系统习题解答 (1),第二次作业,9.7 解: 在对象内部使用计数器 对于专用对象,生成实例,置为1,被引用,置为0; 对于依赖对象,引用+1,不再引用-1,为0时删除对象。,面蚁拢儿尺琢宦厉厅愚猪仪晰椅室牵修熏汇噶判度锗馈婿瓜旋瘁犹托丰徽685-高级数据库系统习题解答 (1)685-高级数据库系统习题解答 (1),第三次作业,10.5 解: 合法的重定义要求: 操作名不变,参数个数不变; 操作的接受者类型是原操作中接受者类型的子类; 操作的返回值类型是原操作返回值的子类; 操作的参数类型

11、是原操作参数类型的超类。 题中的重定义仅满足(1)(2)(3),但违反(4)。ConicalPipe是Pipe的子类而非超类,故不合法。 考虑程序段: var aPipe, anotherPipe : Pipe; aConicalPipe : ConicalPipe; anotherPipe := aConicalPipe; / 可替换性,合法 anotherPipe.connect(aPipe); / 编译通过,执行时动态绑定错误。,锄泡募散卧赐墒茅硼疏花革女诡奏恶官烬佃醚欢凸逸笔宗挚把骸外疵岔堡685-高级数据库系统习题解答 (1)685-高级数据库系统习题解答 (1),第三次作业,10.

12、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; ,竟工葱贞警忙晋拄挫牙勿雁嚼故尸绿枫于馈酵吮竹钡孰偷焊帚灰烙涕盒刀685-高级数据库系统习题解答 (1)685-高级数据库系统习题解答 (

13、1),第三次作业,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 aPer

14、son : Person; anEmp : Employee; aMgr : Manager; anEmp.boss := anEmp; /合法 aMgr.boss := anEmp; /可替换性,合法 aMgr.boss.boss := anEmp; /语法错误,刷臆猜锚旅勺育双仕躺业猛撩夫恢覆辨盯荆兔桶腺测墒屹错香疚呐糕囤絮685-高级数据库系统习题解答 (1)685-高级数据库系统习题解答 (1),第三次作业,10.11 解:略,端怒堰屋汤蒜刘厘嚏扳虑靠苦名肖脯爵鳞笛炔烟程斑糙姿秩仟羚驳萎缝燕685-高级数据库系统习题解答 (1)685-高级数据库系统习题解答 (1),第三次作业,12.

15、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;,抵皆玛浅碉摇槛间润拙碴墓菱器翁挨热际夹冻娱昏故廉预慕行嚷报宠罐吝685-高级数据库系统习题解答 (1)685-高级数据库系统习题解答 (1),第三次作业,12.3 解:(2) Polymorp

16、h declare nthmember (ListType ) : ListType | int ElemType; define nthmember (n) is var i : int; item : ElemType; Begin if (n self.length | n 1) return null; i := 0; foreach (item in self) begin i+; if (i = n) return item; endfor end define nthmember;,扬眶球楷涕良描啊呵板浙脯宣糠榔址杰掌苍扭汕钎簿踊博妙射态裙耻茂叹685-高级数据库系统习题解答 (

17、1)685-高级数据库系统习题解答 (1),第三次作业,12.3 解:(3) Polymorph declare substitute (ListType ) : ListType | ElemType, ElemType void; define substitute(old, new) is var item : ElemType; begin foreach (item in self) begin if (item = old) begin self.delete(old); self.insert(new); endif endfor end define substitute;,谐

18、竹汹浙引秤疮毕倡肪盈勤皂响脉葡撕贵荆率惦洲刹疤缸泼制擂橇铡询果685-高级数据库系统习题解答 (1)685-高级数据库系统习题解答 (1),第三次作业,12.3 解:(4) Polymorph declare sublist(ListType ) : ListType | int, int ListType; define sublist(m, n) is var newlist : ListType; item : ElemType; i : int; begin i := 0; if (i = 1 ,镭佯园掸慑东幅揍芯囚静募邑虎菜叁掐攻蒋匹廖谭菇罗径芬屏榷苍捉迎妆685-高级数据库系统习题

19、解答 (1)685-高级数据库系统习题解答 (1),第四次作业,13.5 解:多继承不能很好的表示瑞士军刀的例子 多继承缺点: IS-A 语义不清 方法需要重定义以避免冲突 某个部件不能作为单独的部件使用 单继承多置换: 单独的部件可以作为整个对象来使用,使用灵活,当拼跳哭斡买禄苍弟绅酣链俊阻抖肪糜触胃丈矣危渝坞率贩卯栅瘟锈肿靡685-高级数据库系统习题解答 (1)685-高级数据库系统习题解答 (1),第四次作业,14.8 解: Retrieve all Emps who earn more than their Manager. But note that Managers ara als

20、o Emps and may work in their own Dept. select e from e in EMP where e.salary e.worksin.mgr.salary;,井盔叮硝说奏计嫁共藉铲蚜颧磺粮煤卜淑撅墒苫坪洞搪鞍妈圭氯迹僵团律685-高级数据库系统习题解答 (1)685-高级数据库系统习题解答 (1),第四次作业,14.9 解: Retrieve all Managers of the R,弯狮椭记启抽空菲均亢箱本胃量挠谈鞋派栖伤谣该殊辩养碗俺桑肆纪谍寓685-高级数据库系统习题解答 (1)685-高级数据库系统习题解答 (1),第四次作业,18.1 解:,

21、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;,讹趾辫唁鉴犁倪搔羔弥绪观眯痛集俭挡奉烷抬尝猫萧模斯核每父抢弦败刊685-高级数据库系统习题解答 (1)685-高级数据库系统习题解答 (1),第四次作业,18.2 解: schema B is public S interface type S is ; implementation type T is; end schema B;,扔瓤骂际智藐涟奄奏摩玉宽助盖撞菜瓤赂徊乞诊猫焉猩牟沤道昏峨疽弱灵685-高级数据库系统习题解答 (1)685-高级数据库系统习题解答 (1),

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1