⑴ 簡要說明資料庫的基本概念
資料庫是長期儲存在計算機內,有組織,可共享的數據集合。
資料庫特性:冗餘度小,數據獨立性高,易擴展。
資料庫系統(DBS):在計算機系統中引入資料庫後的系統構成。
資料庫系統的構成:資料庫,資料庫管理系統(及其開發工具),應用系統,資料庫管理員。數據模型就是現實世界的模擬。
數據模式要素:數據結構,
數據操作,
完整性約束條件。
定義屬性值間的相互關連(主要體現於值的相等與否),這就是數據依賴,它是資料庫模式設計的關鍵
。
函數依賴:設R(U)是一個屬性集U上的關系模式,X和Y是U的子集。
若對於R(U)的任意一個可能的關系r,r中不可能存在兩個元組在X上的屬性值相等, 而在Y上的屬性值不等, 則稱 「X函數確定Y」 或
「Y函數依賴於X」,記作X→Y。
封鎖就是事務T在對某個數據對象(例如表、記錄等)操作之前,先向系統發出請求,對其加鎖
。
兩段鎖協議:指所有事務必須分兩個階段對數據項加鎖和解鎖
在對任何數據進行讀、寫操作之前,事務首先要獲得對該數據的封鎖
⑵ 什麼是數據鎖有什麼作用
SQL中的數據鎖,主要有排它鎖、共享鎖兩種
排它鎖可以保證數據的准確性,避免用戶讀取一些臟數據,比如在我使用update一張表的時候,就有一個排它鎖,我在沒有更新完是不可以讀取這張表的數據
共享鎖是可以一起使用,如我可以兩個用戶同時查詢一張表
還有一種是由於排它鎖可能造成死鎖,比如,A過程現在使用著a資源,但是A這個過程又請求b資源,但是b資源又被B過程佔用著,而B過程剛好是需要a資源才能完成,這樣A和B就永遠都完成不了,所以就形成了死鎖,但是資料庫會根據鎖的優先順序會把一個過程給殺掉,然後釋放出資源
http://www.it-school.cn/html/Windows-SDK-API/200611/123963.html
⑶ 資料庫鎖表是什麼意思
1、資料庫鎖表的意思:因為在資料庫里,同一個數據可能有多個人來讀取或更改,為了防止我更改的時候別人也同時更改,這是一般要鎖住表不讓別人改。
2、舉個簡單例子:在更新資料庫記錄的過程中,我是不希望別人也來更新我的這些記錄的,像庫存,做出庫的時候,原數量100,我出了20,我就需要把數量更新到80;
在更新的過程中,別人又做了30的出庫,如果在我更新的時候,別人先把庫存更新到70,然後我又更新80,那數量就錯誤了。所以我更新的時候,我就需要鎖定這條記錄。這是數據行鎖,排他鎖。
(3)什麼是資料庫封鎖擴展閱讀:
資料庫鎖表的必要條件:
1)互斥條件:指進程對所分配到的資源進行排它性使用,即在一段時間內某資源只由一個進程佔用。如果此時還有其它進程請求資源,則請求者只能等待,直至佔有資源的進程用畢釋放。
2)請求和保持條件:指進程已經保持至少一個資源,但又提出了新的資源請求,而該資源已被其它進程佔有,此時請求進程阻塞,但又對自己已獲得的其它資源保持不放。
3)不剝奪條件:指進程已獲得的資源,在未使用完之前,不能被剝奪,只能在使用完時由自己釋放。
4)環路等待條件:指在發生死鎖時,必然存在一個進程——資源的環形鏈,即進程集合{P0,P1,P2,···,Pn}中的P0正在等待一個P1佔用的資源;P1正在等待P2佔用的資源,……,Pn正在等待已被P0佔用的資源。
⑷ 一個完整的資料庫包含哪些資料庫文件,其中哪些是在一個資料庫中必須存在的
分為「主要文件,次要文件,事物日誌文件」,其中「主要文件和事物日誌文件」是必須存在的。
⑸ 資料庫中x封鎖與s封鎖有什麼區別
資料庫中X封鎖和S封鎖的區別如下:
1、兩種封鎖共享上的區別:
排它鎖(記為X鎖),又叫寫鎖;共享鎖(記為S鎖),又叫讀鎖。讀鎖是共享的,或者說是相互不阻塞的。寫鎖是排他的,一個寫鎖會阻塞其他的寫鎖和讀鎖。
2、讀取許可權上的區別:
若事務T對數據對象A加上X鎖,事務T可以讀A也可以修改A,其他事務不能再對A加任何鎖,直到T釋放A上的鎖。這保證了其他事務在T釋放A上的鎖之前不能再讀取和修改A。
3、修改許可權上的區別
若事務T對數據對象A加上S鎖,則事務T可以讀A但不能修改A,其他事務只能再對A加S鎖,而不能加X鎖,直到T釋放A上的S鎖。這保證了其他事務可以讀A,但在T釋放A上的S鎖之前不能對A做任何修改。
(5)什麼是資料庫封鎖擴展閱讀:
資料庫中封鎖的對象:
封鎖是實現並發控制的一個非常重要的技術。DBMS通常提供了多種類型的封鎖。一個事務對某個數據對象加鎖後究竟擁有什麼樣的控制是由封鎖的類型決定的。
封鎖的對象可以是邏輯單元,也可以是物理單元。邏輯單元: 屬性值、屬性值集合、元組、關系、索引項、整個索引、整個資料庫等;物理單元:頁(數據頁或索引頁)、塊等。
封鎖對象可以很大也可以很小,例如對整個資料庫加鎖、對某個屬性值加鎖。封鎖對象的大小稱為封鎖的粒度。封鎖的粒度越大,系統中能夠被封鎖的對象就越少,並發度也就越小,但系統開銷也越小;封鎖的粒度越小,並發度越高,但開銷也就越大。
參考資料來源:網路-封鎖
⑹ 資料庫中的封鎖機制是什麼的主要方法
可分為如下三類:
1、內部級封鎖
內部級封鎖是用於保護ORACLE內部結構,由系統內部實現,用戶不能訪問,因此我們不必對此做過多的了解。
2、DDL級封鎖(字典/語法分析封鎖)
DDL級封鎖也是由ORACLERDBMS來控制,它用於保護數據字典和數據定義改變時的一致性和完整性。它是系統在對SQL定義語句作語法分析時自動地加鎖,無需用戶干予。字典/語法分析封鎖共分三類:
(1)、字典操作鎖:用於對字典操作時,鎖住數據字典,此封鎖是獨占的,從而保護任何一個時刻僅能對一個字典操作。
(2)、字典定義鎖:用於防止在進行字典操作時又進行語法分析,這樣可以避免在查詢字典的同時改動某個表的結構。
(3)、表定義鎖:用於一個SQL語句正當訪問某個表時,防止字典中與該表有關的項目被修改。
3、DML級封鎖
DML級封鎖用於控制並發事務中的數據操縱,保證數據的一致性和完整性,其封鎖對象可以是表或行。
對用戶的數據操縱,Oracle可以自動為操縱的數據進行封鎖,但如果有操縱授權,則為滿足並發操縱的需要另外實施封鎖。DML封鎖可由一個用戶進程以顯式的方式加鎖,也可通過某些SQL語句隱含方式實現。
DML鎖有如下三種封鎖方式:
(1)、共享封鎖方式(SHARE)
(2)、獨占封鎖方式(EXCLUSIVE)
(3)、共享更新封鎖(SHARE UPDATE)
其中SHARE,EXCLUSIVE用於表封鎖,SHARE UPDATE用於行封鎖。
⑺ 資料庫中封鎖協議名詞解釋
一級封鎖協議: 事務T在修改數據R之前必須先對其加X鎖, 直到事務結束才釋放。
但是如果只是讀數據,不需加鎖,因此會造成讀臟數據的情況
二級封鎖協議: 一級封鎖協議加上事務T在讀取數據R之前必須先對其加S鎖, 讀完後即可釋放²可防止讀臟數據, 丟失修改不能保證可重復讀!
⑻ 怎麼理解資料庫的鎖 一般鎖分別哪幾種
資料庫是一個多用戶使用的共享資源。當多個用戶並發地存取數據時,在資料庫中就會產生多個事務同時存取同一數據的情況。若對並發操作不加控制就可能會讀取和存儲不正確的數據,破壞資料庫的一致性。
加鎖是實現資料庫並發控制的一個非常重要的技術。當事務在對某個數據對象進行操作前,先向系統發出請求,對其加鎖。加鎖後事務就對該數據對象有了一定的控制,在該事務釋放鎖之前,其他的事務不能對此數據對象進行更新操作。
在資料庫中有兩種基本的鎖類型:排它鎖(Exclusive Locks,即X鎖)和共享鎖(Share Locks,即S鎖)。當數據對象被加上排它鎖時,其他的事務不能對它讀取和修改。加了共享鎖的數據對象可以被其他事務讀取,但不能修改。資料庫利用這兩種基本的鎖類型來對資料庫的事務進行並發控制。
(8)什麼是資料庫封鎖擴展閱讀:
排它鎖和共享鎖的不同之處:
1、共享鎖(S鎖):如果事務T對數據A加上共享鎖後,則其他事務只能對A再加共享鎖,不能加排他鎖。獲准共享鎖的事務只能讀數據,不能修改數據。
排他鎖(X鎖):如果事務T對數據A加上排他鎖後,則其他事務不能再對A加任任何類型的封鎖。獲准排他鎖的事務既能讀數據,又能修改數據。
2、共享鎖下其它用戶可以並發讀取,查詢數據。但不能修改,增加,刪除數據,資源共享。
3、共享鎖又稱為讀鎖(Share lock,簡記為S鎖),若事務T對數據對象A加上S鎖,則其它事務只能再對A加S鎖,而不能加X鎖,直到T釋放A上的S鎖。