版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、高級數(shù)據(jù)庫系統(tǒng)作業(yè)答疑,2007.1,第一次作業(yè),已知有如下兩種段分配: A R1在Site1, R2在Site2, R3在Site3. B R1和R2在Site1, R2和R3在Site3. 另已知有如下應(yīng)用(所有應(yīng)用的頻率相同) A1: 在Site1上發(fā)出, 讀5個(gè) R1記錄, 5個(gè) R2記錄 A2: 在Site3上發(fā)出, 讀5個(gè)R3記錄 , 5個(gè)R2記錄 A3: 在Site2上發(fā)出, 讀10個(gè)R2記錄. 問: 1. 如果以本地應(yīng)用為主要設(shè)計(jì)目標(biāo), 那個(gè)分配較優(yōu)? 2. 假定A3改為要修改10個(gè)R2記錄, 并仍以本地應(yīng)用為其設(shè)計(jì)目標(biāo), 則那個(gè)分配方案較優(yōu)?,第一次作業(yè),解:首先完善模型如下
2、: 假定:B方案中Site1上的R2和Site3上的R2是完全相同的,即冗余;本地讀寫的代價(jià)可忽略不計(jì);所有異地讀操作的單位記錄代價(jià)均相等,記為1;所有異地寫操作的單位記錄代價(jià)均相等,記為1。 1 A方案 B方案 2 A方案 B方案 A1代價(jià) 5 0 5 0 A2代價(jià) 5 0 5 0 A3代價(jià) 0 10 0 10+10+10 故可知,第1個(gè)問題,A、B兩種分配方案代價(jià)相等。 第2個(gè)問題,A分配方案較優(yōu)。,第二次作業(yè),習(xí)題: 假定全局關(guān)系和分段模式如下: 全局關(guān)系 Doctor (D#, Name, Dept) Patient (P#, Name, Dept, Treat, D#) Care (
3、P#, Drug, QTY) 分段模式 Doctor1 = SLDEPT=Surgery(Doctor) Doctor2 = SLDEPT=Pediatrics(Doctor) Doctor3 = SLDEPT Surgery and DEPT Pediatrics(Doctor) Patient1 = SLDEPT=Surgery and treat=intensing(Patient) Patient2 = SLDEPT=Surgery and treat intensing(Patient) Patient3 = SLDEPT Surgery (Patient) Care1 = Care
4、 SJ p#=p# Patient1 Care2 = Care SJ p#=p# Patient2 Care3 = Care SJ p#=p# Patient3 使用變換準(zhǔn)則,將下面的全局查詢變化為分段查詢,并對它們加以簡化。當(dāng)需要時(shí) 用限定關(guān)系代數(shù)消除查詢中不用的段。 (a) 列出在Care中使用Aspirin的Patient 名字; (b) 列出給病人開出接受精細(xì)護(hù)理的醫(yī)生名字。,第二次作業(yè),(a),第二次作業(yè),(a),第二次作業(yè),(a),第二次作業(yè),(b),第三次作業(yè),對R的另一個(gè)簡化程序: R=R SJ S, T = T SJ R, S = S SJ T 計(jì)算到R不再變化為止,第三次作
5、業(yè),在如下R, S的概貌上計(jì)算R JNA=B S Size(R)=50, Card(R)=100, Val(AR)=50, Size(A)=3 Size(S)=5, Card(S)=50, Val(BS)=50, Size(B)=3 R SJA=B S 的選擇度 = 0.2 S SJA=B R 的選擇度 = 0.8 問: 1. 使用 SJ簡化程序在R得站點(diǎn)執(zhí)行JN 2. 使用 SJ簡化程序在S得站點(diǎn)執(zhí)行JN 3. 使用直接連接在R站點(diǎn)執(zhí)行JN 4. 使用直接連接在S站點(diǎn)執(zhí)行JN 那種方案較優(yōu)?,第三次作業(yè),解: 1.COST1 = 2C0 + C1( Size(A)Val(AR) + Size
6、(S)Card(S)S SJ R ) = 2C0 + C1( 350 + 5500.8 ) = 2C0 + 350C1 2.COST2 = 2C0 + C1( Size(B)Val(BS) + Size(R)Card(R)R SJ S ) = 2C0 + C1( 350 + 501000.2 ) = 2C0 + 1150C1 3.COST3 = C0 + C1Size(S)Card(S) = C0 + C1550 = C0 + 250C1 4.COST4 = C0 + C1Size(R)Card(R) = C0 + C150100 = C0 + 5000C1 所以第三種方案最優(yōu)。,第四次作業(yè),
7、7.2 解:第三句有問題,左邊為string類型,右邊是City類型。 cityOfLA.name := cityOfLA.mayor.spouse.livesIn; 7.4 解:前一種的輸出結(jié)果為: Donald Duck Mickey Mouse 后一種的輸出結(jié)果為: 60 60 因?yàn)榍耙环N是引用語義,而后一種是復(fù)制語義。,第四次作業(yè),7.7 解: 引用:someMaterial := id88; 隱式引用:myCuboid.mat := someMaterial; someMaterial.create; 重引用:w := myCuboid.mat.specWeight; 隱式重引用:a
8、notherMaterial := myCuboid.mat; myCuboid.mat.create;,第四次作業(yè),7.9 解: (1)(2)執(zhí)行完畢后,mary.chilaren = joe.children = littleJoe,第四次作業(yè),(3)(4)執(zhí)行完畢后, betty.children = jimbo jim.children = ,第五次作業(yè),8.8 persistent type Cuboid is public length, width, height, surface, volume, weight, translate, scale, rotate, center
9、, 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; ,第五次作業(yè),imp
10、lementation 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;,第五次作業(yè),define center is var c : Vertex; begin c.create; c.x = 0.5 * (self.v1.x + self.v7.x
11、); 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);,第五次作業(yè),define minDistanceCode(v) is var v0; begin /將長方體的6個(gè)面無限延伸,可將整個(gè)空間分為27個(gè)區(qū)域 if (v在長方體內(nèi)部或表面上) return 0; else begin 根據(jù)v所在區(qū)域,可簡單判斷出長方體上距v最近的點(diǎn)v0
12、所在 的面/棱/頂點(diǎn),進(jìn)而求出v0; return v.distance(v0); end else end deine minDistanceCode; end type Cuboid;,第五次作業(yè),9.1 答: (1)方法一采用1:1關(guān)系表示1:N關(guān)系,存在較多冗余; 不考慮索引,已知left查詢對應(yīng)的right集時(shí),方法二效果明顯好 于方法一;已知right查詢對應(yīng)的left時(shí),方法一效果好于方法二。 當(dāng)插入新關(guān)系時(shí),兩種方法都無法保證一致性,即原關(guān)系 1:N的語義約束可能被違反,需要對insert操作做修改,保證每一 個(gè)Tright實(shí)例僅有至多一個(gè)對應(yīng)的Tleft實(shí)例。 刪除關(guān)系時(shí),方
13、法一中直接刪除對應(yīng)的TR實(shí)例,方法二中 只需修改right集合,直到right集合為空時(shí),才需要?jiǎng)h除對應(yīng)的TR 實(shí)例。 更新操作由插入刪除操作組合而成,不再討論。 (2)方法一、二的insert操作均需修改,以保證一致性,方法二的 delete操作也需要修改。修改思想上邊已說明,具體算法不再給 出。,第六次作業(yè),10.5 解: declare connect : Pipe | Pipe void; refine connect : ConicalPipe | ConicalPipe void; 一個(gè)合法的重定義要求: 操作名不變,參數(shù)個(gè)數(shù)不變; 操作的接收者類型是原操作中接收者類型的子類; 操
14、作的返回值類型是原操作返回值的子類; 操作的參數(shù)類型是原操作參數(shù)類型的超類。 題中的重定義僅滿足(1)(2)(3),但違反(4)。ConicalPipe是Pipe 的子類而非超類,故不合法。 考慮下面的程序段: var aPipe, anotherPipe : Pipe; aConicalPipe : ConicalPipe; anotherPipe := aConicalPipe; /可替換性,合法 anotherPipe.connect(aPipe); /編譯通過,執(zhí)行時(shí)由于動(dòng)態(tài)綁定,出錯(cuò),第六次作業(yè),10.6 解: 繼承屬性的類型是不能重定義的,必須保持原類型。 (1) 子類中繼承屬性的
15、類型不能是該類型的子類,即特化不合法。 特化舉例: 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; ,第六次作業(yè),程序段: var anEmp : Employee; aMgr : Manager; aMgr.boss := anEmp; /語法錯(cuò)誤 anEmp.boss := aMgr; /可替換性,合法 anEm
16、p.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
17、:= anEmp; /語法錯(cuò)誤,第六次作業(yè),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;,第六次作業(yè),(2) Polymorph declare nthmember (ListType ) : ListType | int Ele
18、mType; 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;,第六次作業(yè),(3) Polymorph declare substitute (ListType ) : ListType | ElemType, ElemType void; define subst
19、itute(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;,第六次作業(yè),(4) Polymorph declare sublist(ListType ) : ListType | int, int ListType; define sublist(m, n) is var newlist : ListType; item
20、 : ElemType; i : int; begin i := 0; if (i = 1 ,第七次作業(yè),13.5 Assume a Swiss Knife consists of a blade of a certain length that is able to cut different kind of material. A small scissor that is able to cut paper and a screwdriver are also provided. Last but not least a corkscrew completes it. Every too
21、l has a certain length and provides a certain capability. Model a Swiss knife using multiple inheritance. Try an alternative modeling with single inheritance only where the Swiss knife solely is-a knife, which additionally consists of the other tools. What is the difference? 答案略,第七次作業(yè),14.8 Retrieve
22、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;,第七次作業(yè),14.9 Retrieve all Managers of the R,第七次作業(yè),14.10 List the name and salary of managers who manage more than 10 employees. se
23、lect , m.salary from m in Manager, e in EMP where e.worksin.mgr = m group by having count() 10;,第八次作業(yè),1.假設(shè)兩個(gè)事務(wù)T 和 U 的 log 記錄如下所示: , 如果系統(tǒng)故障時(shí), 磁盤上記錄的Log記錄如下, 請描述數(shù)據(jù)庫恢復(fù)管理器的動(dòng)作. a) b) c) d) ,第八次作業(yè),1 (a)undo T, undo U (b)undo T, redo U (c)undo T, redo U (d)redo T, redo U,第八次作業(yè),2.寫出線形式2PC
24、的實(shí)現(xiàn)代碼 參見 線形式2PC的實(shí)現(xiàn)代碼.doc,第九次作業(yè),1. 指出下面的沖突等價(jià)調(diào)度(忽略提交C和夭折A動(dòng)作) S1= W2(x),W1(x),R3(x),R1(x),C1,W2(y), R3(z),C3,R2(x),C2 S2= R3(z),R3(y),W2(y),R2(z),W1(x),R3(x),W1(x),R1(x),C1,C2,C3 S3= R3(z),W2(x),W2(y),R1(x),R3(x),R2(z),R3(y),C3,W1(x),C2,C1 S4= R3(z),W2(x),W2(y),C2,W1(x),R1(x),A1,R3(x),R3(z),R3(y),C3,第九
25、次作業(yè),沖突等價(jià)調(diào)度如下: S1 = W2(x),W1(x),R1(x),R3(x),C1,W2(y),R3(z),C3,R2(x),C2 S2 = R3(z),R2(z),R3(y),W2(y),W1(x),R3(x),W1(x),R1(x),C1,C2,C3 S3 = W2(x),W2(y),R2(z),C2,R3(z),R3(x),R3(y),C3,R1(x),W1(x),C1 S4 = W2(x),W2(y),C2,W1(x),R1(x),A1,R3(z),R3(x),R3(z),R3(y),C3,第九次作業(yè),2. 上題S1-S4中, 哪個(gè)是可串調(diào)度? S3和S4為可串調(diào)度 S1:T1等待T2,T2等待T1(W2(x),W1(x),R2(x)) S2:T3等待T1,T1等待T3(W1(x),R3(x),W1(x) ),
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 翻罐工安全理論能力考核試卷含答案
- 金屬玩具制作工安全宣教考核試卷含答案
- 拍賣運(yùn)營師班組管理考核試卷含答案
- 重冶濕法冶煉工崗前流程考核試卷含答案
- 重冶浸出工安全綜合競賽考核試卷含答案
- 海乘禮儀培訓(xùn)課件
- 酒店員工績效考核與薪酬調(diào)整制度
- 酒店客房鑰匙卡使用指導(dǎo)制度
- 超市員工績效考核及獎(jiǎng)懲標(biāo)準(zhǔn)制度
- 濟(jì)南市中區(qū)培訓(xùn)
- 安全目標(biāo)管理制度煤廠(3篇)
- 云南省玉溪市2025-2026學(xué)年八年級上學(xué)期1月期末物理試題(原卷版+解析版)
- 車輛駕駛員崗前培訓(xùn)制度
- 2026年哈爾濱通河縣第一批公益性崗位招聘62人考試參考試題及答案解析
- 就業(yè)協(xié)議書解約函模板
- 頭部護(hù)理與頭皮健康維護(hù)
- 2026屆天一大聯(lián)考高一上數(shù)學(xué)期末教學(xué)質(zhì)量檢測模擬試題含解析
- 2026年山東城市服務(wù)職業(yè)學(xué)院單招職業(yè)技能考試題庫附答案詳解
- 創(chuàng)面換藥清潔課件
- 研發(fā)部門員工加班管理細(xì)則
- 鋼結(jié)構(gòu)橋梁施工監(jiān)測方案
評論
0/150
提交評論