看板 Examination 關於我們 聯絡資訊
您好: 從你的應答中發現幾個觀念偏差的地方 處理交易時,若只能循序處理,會造成資源浪費。 例如: T1 若要執行 10 分鐘,在後面排隊的 T2、T3、T4 .... 每個人都要等 10 分鐘。 不符合經濟效益,所以要做「並行控制」,讓大家的交易可以穿插著執行。 但是,問題就來了: 循序處理 --> 除了浪費時間要等待,沒什麼大問題。 並行控制 --> 會發生「死結、活結、飢餓」,這很嚴重。 而且並行控制的不好,演算法太爛,還會發生: 遺失更新(Lost Update) 不一致分析(Inconsistent Analysis) 未確認相依(Uncommitted Dependency) 這二邊要分的清楚,一個是不想要循序處理所以讓交易並行。 另一個是並行的機制做的不好,引發其它問題。 要知道他們二邊有一點點不同,但事實上最後會黏在一起(後面會說明)。 這裡也不難想像,並行控制雖會引發一大堆問題,但我們還是硬要做並行控制 ,這代表它帶來的效益遠超過缺點。 為了避免發生「死結、活結、飢餓」所以我們用: wait - die wound - wait 來解決問題。 為了避免發生: 遺失更新(Lost Update) 不一致分析(Inconsistent Analysis) 未確認相依(Uncommitted Dependency) 所以我們用: 鎖定(Locking) 時間戳記(Timestamp) 多重版本並行控制(Multi-version Concurrency Control) 來解決問題。 此為第一個偏差的地方。你把他們混為一談了。 (我知道他們可以合在一起,但先分開看,後面會解釋) 再來。 當優先權與數字搞在一起,就會混淆不清: 數字:1、2、3、4、5 優先:5、4、3、2、1 這是種 First Come First Service(FCFS),就像在銀行、郵局排隊時抽號碼牌, 數字小的,優先權大。 另一種 數字:1、2、3、4、5 優先:1、2、3、4、5 這種就相反,數字小的,優先權小。 但是 Timestamp 強調的是「早、晚」的問題。 當要進行交易 Tx 時,只要去看時戳「有沒有比我晚的已經做過交易了」? 有:我要 roll back transaction 沒有:我可以進行交易,然後把時戳改成我的。 它的演算法就這麼簡單! 唐箏是這樣教的,陳士杰(高手)的講義也這麼寫,有兩位神的加持,看到其它不 同的,就別管它了吧。 細節的地方來了,當「有比我晚的已經做過交易了」,我只能一味 roll back 嗎? 這時再來談: wait - die wound - wait 但是,但是,但是!這是在實作資料庫時才用的到,我們在考試的時候,並不用在 Timestamp 裡面考慮 wait die、wound wait 我們現在在考試,不是要幫公司寫一套資料庫管理系統。 也就是說,不用考慮 wait die、wound wait,答案還是寫的出來。 此其二也。 謝謝各位,祝大家都上榜。 各位高手,承讓。 閒聊: 去年地特三的資料庫,改的很嚴,尤其第三大題。 另外,第一大題沒有人發現那裡不對勁嗎? 我站在旁邊觀察很久,版上都沒人提出來。 好吧,讀書去。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.76.33.33 ※ 文章網址: https://www.ptt.cc/bbs/Examination/M.1427076327.A.310.html
malowda: 那裡不對勁呢?可以po出來大大討論看看 03/23 10:20
malowda: 大家討論看看 03/23 10:31
APE36: 不對勁的點? 03/23 12:10
kamdog: 是不是指(二)裡的2題? 03/23 16:14
kamdog: 抱歉沒事 03/23 16:26
malowda 大,先謝謝您在版上的付出。還有其它願意提點後輩的高手, 不一一具名了。 本來我也是只會拿,不會給。只顧著下載,不會幫忙按廣告的網路鄉民。 最後是被願意熱心幫忙的人感動,漸漸會去推文回答別人疑惑,花時間打字解釋。 談到 103 年地特三等資料庫 先說我拿到考卷看到第一題,心中出現的第一句話: 「這圖在表達啥小啊,都怪自己 EERD 沒讀熟,現在報應來了」 前幾天複習完 EERD 後再回頭一看,突然靈光一閃。 「不對吧,這圖有問題!」 第一、方形叫「實體」、橢圓形叫「屬性」,它把屬性寫在實體裡面。    所以我可以假裝看錯嗎? 我可以把它當作實體啊!誰叫你寫在方形裡。 如果是這樣,整張圖都沒有屬性! 第二、特殊化沒有半圓形的箭頭。(錯的明顯) 第三、烏鴉腳少掉「最少」的基數,這種烏鴉腳畫法,不及格。 第四、這點我不太確定。多值屬性能不能身兼複合屬性。 這時,突然晃然大悟,如果它圖畫的標準些,當時答題就不會答的那麼痛苦。 其實我們這些資訊人,都有「容錯能力」當時還是硬把它看到懂,知道他想表 達屬性。 當然我不太敢在版上提出來,也是怕說不定會被打臉,等一下有人跳出來說: 「有啊,這是 john & tom (沒聽過的外國人名字) 提出來的畫法」 這就死了。(一人對多人,是在找死) 我在想,怎麼沒有人去考選部申訴呢? 假如申訴了,他們會認錯嗎? (在心裡排演劇情) 說不定,這只是出題老師不會用電腦繪圖軟體罷了,不得已只好用這種表示方式。 這從第三題他畫的 ERD 可以看的更清楚,他的屬性都是寫成文字,沒圖。 我在想,若角色對調,題目叫我們畫 EERD 然後我們畫成這樣,改考卷的人 會怎麼改? 連看都不看,0 分下一張? 想到這,心裡就不平衡了 ... ※ 編輯: fcouple (211.76.33.33), 03/23/2015 19:17:01
ko74652: 剛看一下題目也太恐怖… 03/23 19:23
malowda: 我沒考地特,不過第一次看到真的會看不懂要多看幾次,沒 03/23 19:29
malowda: 給的條件老師有說可以自己假設但要寫出來 03/23 19:30
malowda: 特殊化沒畫完整其實還好因為有d可以知道不會重複 03/23 19:33
malowda: 多值屬性有複合屬性其實也不會影響結果,都要KEY+多值屬 03/23 19:37
malowda: 性來成為另一個關聯以上是個人想法 03/23 19:38
謝謝 mal 大。
grandoph: 所以考試 直接寫roll back?? 03/23 23:02
grandoph: 「有沒有比我晚的已經做過交易了」 要roll bcak的是 03/23 23:04
grandoph: 哪個交易??優先權高的還是低的?? 03/23 23:04
grandoph 您好,由於文字數量太多,我已在版上另外回文答覆,請參閱。 謝謝。 ※ 編輯: fcouple (211.76.33.33), 03/24/2015 11:49:06