lawpalyer logo

資訊處理 109 年高等資料庫設計考古題

民國 109 年(2020)資訊處理「高等資料庫設計」考試題目,共 4 題 | 資料來源:考選部

0 題選擇題 + 4 題申論題

某航空公司的一趟飛機(Airplane)飛行(Fly)會有多個機組員(Crew) 以不同角色(Role)參與,飛行記錄有起飛地點名(Origin)、起飛時間 (DepTime)、到達時間(ArrTime)、到達目的地(Destination)、里程 (Miles)。時間均精確到「秒」。機組員團隊有不同的編號(CID)、姓名 (CName),飛機有不同的編號(ANO)、型號(Model)。下圖是某設計 師所繪製的實體關係圖(ER 圖,Entity-Relationship Diagram),其中每一 實體(矩形)鄰近某關係(菱形)間均有一對(min,max)的限制,代表 該實體參與該關係之min(至少)、max(至多)次數限制,*代表沒有限 制。屬性劃實底線者(有CID、ANO、DepTime)為Primary Key(主鍵) 的一部分。 下面答題,除了原圖中所示的英文屬性外,不得再假設任何其他屬性。 要求: 請先寫出上面敘述所隱含的所有功能相依(Functional Dependency)。 (2分) 請將此ER 圖轉化成關聯式資料庫綱要(Schema)。(6分) 上述的Schema,若不是在第三正規化(3rd Normal Form),請將其 轉為符合第三正規化關聯式資料庫綱要。(6分) 請評估此設計師的ER 圖是否正確?如不是,請說明其問題,並請另 繪出你建議的ER 圖。(10分) 請將上述的你自己「建議的ER 圖」轉為符合第三正規化關聯式資 料庫綱要。並與所得到的答案相比較。(6分) ArrTime Origin
下圖是某實體關係圖(Entity-Relationship Diagram),其中每一實體(矩 形)或弱實體(雙矩形)鄰近某關係(菱形)間均有一對(min,max)的 限制,代表該實體參與該關係之min(至少)、max(至多)次數限制, *代表沒有限制。屬性劃實底線者(如FK)為Primary Key(主鍵)的一 部分、劃虛底線者(如GK)為Partial Key。箭頭is-a 代表某實體(如S) 為另一實體(如H)的特殊化(Specialization)。請在同時兼顧日後運作 效率與語意正確的原則,寫出其對應的關聯(Relation)式資料庫綱要 (Schema): 做為下一子題的草稿,請以「關聯(屬性1, 屬性2,…)」方式先寫出應 有的所有關聯表格;同時,必須標示出每個關聯的主鍵。(16分) 進一步,請針對實體關係圖中G、H、S、R5四者應有的關聯表格,以 SQL 語法寫出其綱要,欄位的資料型態均假設為固定字串,長度可自 行假設。但重點是:每一關聯均需以SQL 語法註明其主鍵、所有的候 選鍵(Candidate Key),以及標註應有的參考完整性限制(Referential Integrity Constraints),為求簡化,違反參考完整性限制時行動均假設 為RESTRICT。(14分) F G E R1 R2 (0,*) (1,1) (1,*) (1,*) FK GK R5 (1,*) (0,*) EK D R3 H S is-a HK SK B C A (0,*) (1,1) A1 J is-a
當設計資料庫管理軟體(DBMS)時,同時接取的管理(Concurrency Control)是重要議題。假設某段期間,資料庫運作環境只有T1、T2兩個 交易,他們遵守basic two-phrase locking(基本的兩階段鎖定協定)。下 圖表示若從頭到尾執行結束時,T1、T2原先想完成的operation。 T1原預定交易內容 T2原預定交易內容 read_lock( β ); read_item( β ); write_lock( γ ); read_item( γ ); γ: = 110β-101001; write_item( γ ); write_lock( α ); read_item( α ); α: = α+105γ; read_lock( α ); read_item( α ); write_lock( β ); β: = α+β; write_item( β ); unlock( α ); unlock( β ); commit; write_item( α ); unlock( α ); unlock( β ); unlock( γ ); commit; 隨著時間軸往下,兩交易前面一些operation 的進行交織如下: T1 T2 read_lock( β ); read_item( β ); write_lock( γ ); read_item( γ ); γ: = 110β-101001; write_item( γ ); write_lock( α ); … … read_lock( α ); read_item( α ); write_lock( β ); … … 若DBMS 的deadlock 預防機制分別如下,會發生什麼情況?請分別說 明(a)在該機制下,兩個交易中間因某些operation 的衝突狀況,以及(b)整 體而言,隨著時間的進行,兩個交易最後的狀況;尤其說明還會有 deadlock 嗎?(每小題10分,共20分) deadlock 預防機制採Wait-die deadlock 預防機制採Wound-wait 時 間 進 行
假設我們要設計關聯式資料庫,採用由下而上的合成法的設計作法,其 Universal Relation 綱要包含10個屬性為R(A,B,C,D,E,F,G,H,I,J)。已知的 功能相依為: {I,J}H {I,G}{E,F} {G,J}{C,D} {G,J}A JB CA 請以功能相依的推導、封閉(Closure)的概念,找出R 所有的候選鍵 (請呈現你的功能相依推導)。(6分) 請分解R 為滿足第三正規化的關聯資料庫綱要。(14分)