Re: [問題] 103年地特 三等資料庫
您好:
從你的應答中發現幾個觀念偏差的地方
處理交易時,若只能循序處理,會造成資源浪費。
例如:
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
→
03/23 10:20, , 1F
03/23 10:20, 1F
→
03/23 10:31, , 2F
03/23 10:31, 2F
→
03/23 12:10, , 3F
03/23 12:10, 3F
推
03/23 16:14, , 4F
03/23 16:14, 4F
推
03/23 16:26, , 5F
03/23 16:26, 5F
malowda 大,先謝謝您在版上的付出。還有其它願意提點後輩的高手,
不一一具名了。
本來我也是只會拿,不會給。只顧著下載,不會幫忙按廣告的網路鄉民。
最後是被願意熱心幫忙的人感動,漸漸會去推文回答別人疑惑,花時間打字解釋。
談到 103 年地特三等資料庫
先說我拿到考卷看到第一題,心中出現的第一句話:
「這圖在表達啥小啊,都怪自己 EERD 沒讀熟,現在報應來了」
前幾天複習完 EERD 後再回頭一看,突然靈光一閃。
「不對吧,這圖有問題!」
第一、方形叫「實體」、橢圓形叫「屬性」,它把屬性寫在實體裡面。
所以我可以假裝看錯嗎? 我可以把它當作實體啊!誰叫你寫在方形裡。
如果是這樣,整張圖都沒有屬性!
第二、特殊化沒有半圓形的箭頭。(錯的明顯)
第三、烏鴉腳少掉「最少」的基數,這種烏鴉腳畫法,不及格。
第四、這點我不太確定。多值屬性能不能身兼複合屬性。
這時,突然晃然大悟,如果它圖畫的標準些,當時答題就不會答的那麼痛苦。
其實我們這些資訊人,都有「容錯能力」當時還是硬把它看到懂,知道他想表
達屬性。
當然我不太敢在版上提出來,也是怕說不定會被打臉,等一下有人跳出來說:
「有啊,這是 john & tom (沒聽過的外國人名字) 提出來的畫法」
這就死了。(一人對多人,是在找死)
我在想,怎麼沒有人去考選部申訴呢? 假如申訴了,他們會認錯嗎?
(在心裡排演劇情)
說不定,這只是出題老師不會用電腦繪圖軟體罷了,不得已只好用這種表示方式。
這從第三題他畫的 ERD 可以看的更清楚,他的屬性都是寫成文字,沒圖。
我在想,若角色對調,題目叫我們畫 EERD 然後我們畫成這樣,改考卷的人
會怎麼改? 連看都不看,0 分下一張?
想到這,心裡就不平衡了 ...
※ 編輯: fcouple (211.76.33.33), 03/23/2015 19:17:01
→
03/23 19:23, , 6F
03/23 19:23, 6F
→
03/23 19:29, , 7F
03/23 19:29, 7F
→
03/23 19:30, , 8F
03/23 19:30, 8F
→
03/23 19:33, , 9F
03/23 19:33, 9F
→
03/23 19:37, , 10F
03/23 19:37, 10F
→
03/23 19:38, , 11F
03/23 19:38, 11F
謝謝 mal 大。
→
03/23 23:02, , 12F
03/23 23:02, 12F
→
03/23 23:04, , 13F
03/23 23:04, 13F
→
03/23 23:04, , 14F
03/23 23:04, 14F
grandoph 您好,由於文字數量太多,我已在版上另外回文答覆,請參閱。
謝謝。
※ 編輯: fcouple (211.76.33.33), 03/24/2015 11:49:06
討論串 (同標題文章)
完整討論串 (本文為第 2 之 3 篇):
問題
2
24