死鎖:
如何避免死鎖?
有序資源分配法、銀行家算法
死鎖預防:打破四大條件
可能造成死鎖的條件:互斥、環(huán)路等待、不剝奪、保持和等待
銀行家算法:
是一種防止死鎖的常用算法,由Dijkstra 提出的,將死鎖的問題演示為一個銀行家貸款的模型。一個銀行家向一群客戶發(fā)放信用卡,每個客戶有不同的信用額度,每個客戶可以
提出額度內(nèi)的任意額度請求,直到額度用完后再一次性還款。
銀行家可以掛起某個額度請求較大的客戶的請求,優(yōu)先滿足小額度的請求,等小額度的請求還款后,再處理掛起的請求。這樣資金就能夠永遠疏通。如果銀行家的額度小于所有客戶的
限額,便會發(fā)生死鎖。
存儲管理:
段頁式存儲:空間浪費小,可以共享。但是增加軟件的復雜度,開銷??毂硎且粔K小容量的相聯(lián)存儲器。
?關(guān)系數(shù)據(jù)庫規(guī)范化理論:
更新異常:只更新了局部的信息,導致數(shù)據(jù)不一致性
插入異常:無法插入異常(無主鍵或主鍵重復)
刪除異常:刪除多余的信息
函數(shù)依賴:
從性值上分為:完全函數(shù)依賴、部分函數(shù)依賴、傳遞函數(shù)依賴
范式:
第一范式:每個屬性都是不可再分割的原子屬性
第二范式:滿足第一范式,非主屬性完全依賴于主鍵,不存在部分依賴(單屬性主鍵,不存在部分函數(shù)依賴)
第三范式:滿足第二范式,沒有非主關(guān)鍵字的傳遞依賴,消除非主關(guān)鍵字傳遞依賴
BCNF:在第三范式的基礎(chǔ)上,消除主屬性的傳遞依賴
?