數(shù)據(jù)庫筆記(數(shù)據(jù)庫實現(xiàn))

數(shù)據(jù)庫系統(tǒng)實現(xiàn)

存儲管理

存儲管理模塊為底層數(shù)據(jù)與查詢語句之間提供交互的接口之众。該模塊與操作系統(tǒng)的文件系統(tǒng)進行交互。它將各種DML語句翻譯成底層的文件系統(tǒng)的指令蝇率。它的職責在于數(shù)據(jù)庫的存儲迟杂、查詢與更新。存儲管理模塊有以下幾個部件組成:

  • 權(quán)限與一致性管理器:該模塊用于檢查數(shù)據(jù)一致性約束以及用戶的權(quán)限本慕。
  • 事務管理器:該模塊用于保證數(shù)據(jù)庫的一致狀態(tài)排拷。它確保數(shù)據(jù)庫的數(shù)據(jù)在系統(tǒng)崩潰時依然能保持一致性,還要確保并發(fā)的事務同時執(zhí)行時不會發(fā)生沖突锅尘。
  • 文件管理器:該模塊用于管理磁盤空間的分配以及存儲在磁盤上的监氢,用于表示信息的數(shù)據(jù)結(jié)構(gòu)。
  • 緩沖管理器:該模塊用于將磁盤上的數(shù)據(jù)讀入內(nèi)存并決定那些數(shù)據(jù)要讀入到內(nèi)存中藤违。它是數(shù)據(jù)庫的關(guān)鍵模塊浪腐,因為它能讓數(shù)據(jù)庫管理比內(nèi)存容量還要多的數(shù)據(jù)。

存儲管理器使用了以下幾種數(shù)據(jù)結(jié)構(gòu)來完成系統(tǒng)的物理實現(xiàn):

  • 數(shù)據(jù)文件:用于存儲數(shù)據(jù)庫本身
  • 數(shù)據(jù)字典:用于存儲元數(shù)據(jù)
  • 索引:用于為數(shù)據(jù)項提供快速訪問顿乒,類似于書中的目錄议街。

查詢處理

查詢處理模塊包括:

  • DDL解釋器:用于解釋DDL語句以及記錄數(shù)據(jù)字典中的定義
  • DML編譯器:用于將DML語句翻譯為查詢求值引擎可以理解的底層指令。一個查詢語句通常會被翻譯為多種可以得出同樣結(jié)果的求值計劃璧榄,DML編譯器會選擇效率最高的計劃特漩,這項操作被稱為查詢優(yōu)化吧雹。
  • 查詢求值引擎:用于執(zhí)行DML編譯器生成的底層指令。

事務管理

事務特性:

  • 原子性:若數(shù)據(jù)庫中一個事務中的多個步驟只允許同時操作成功或不操作的特性稱為事務的原子性拾稳。
  • 一致性:數(shù)據(jù)庫中的的不同數(shù)據(jù)在描述相同的實體要求這些數(shù)據(jù)需要正確描述這個實體吮炕,這種數(shù)據(jù)的正確性被稱為一致性
  • 持久性:在一次事務的進行中涉及的所有數(shù)據(jù)要求保持一致,即使事務出現(xiàn)了錯誤访得,涉及的所有數(shù)據(jù)也必須一致。這種要求稱作持久性陕凹。

事務管理模塊:

  • 恢復管理器:該模塊負責檢測系統(tǒng)錯誤并將數(shù)據(jù)庫恢復到錯誤發(fā)生之前的狀態(tài)悍抑。
  • 并發(fā)控制模塊:該模塊負責通過控制同時發(fā)生的事務,保證這些事務不會導致數(shù)據(jù)庫的不一致性杜耙。

數(shù)據(jù)庫架構(gòu)

由于當今的數(shù)據(jù)庫的用戶一般不會在數(shù)據(jù)庫所在的地方使用數(shù)據(jù)庫搜骡,而是通過網(wǎng)絡遠程連接數(shù)據(jù)庫,數(shù)據(jù)庫會將客戶端與服務端分離佑女。
數(shù)據(jù)庫架構(gòu)一般可分為兩部分或三部分:

  • 雙層架構(gòu):客戶端部分在客戶端機器上记靡,用戶通過查詢語句來使用在服務端機器上的數(shù)據(jù)庫系統(tǒng)。
  • 三層架構(gòu):客戶端機器僅僅是一個前端部分团驱,并不提供直接的數(shù)據(jù)庫調(diào)用摸吠。它僅僅有通過一些表單與處在服務端機器的應用服務器進行通訊的職責。而應用的事務邏輯才是負責與數(shù)據(jù)庫系統(tǒng)的直接訪問嚎花。此時寸痢,應用的事務邏輯則在應用服務器一處,而不是分散在多個客戶端機器中紊选。這種應用更適合在大型應用和互聯(lián)網(wǎng)應用中啼止。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市兵罢,隨后出現(xiàn)的幾起案子献烦,更是在濱河造成了極大的恐慌,老刑警劉巖卖词,帶你破解...
    沈念sama閱讀 222,807評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件巩那,死亡現(xiàn)場離奇詭異,居然都是意外死亡坏平,警方通過查閱死者的電腦和手機拢操,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來舶替,“玉大人令境,你說我怎么就攤上這事」说桑” “怎么了舔庶?”我有些...
    開封第一講書人閱讀 169,589評論 0 363
  • 文/不壞的土叔 我叫張陵抛蚁,是天一觀的道長。 經(jīng)常有香客問我惕橙,道長瞧甩,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,188評論 1 300
  • 正文 為了忘掉前任弥鹦,我火速辦了婚禮肚逸,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘彬坏。我一直安慰自己朦促,他們只是感情好,可當我...
    茶點故事閱讀 69,185評論 6 398
  • 文/花漫 我一把揭開白布栓始。 她就那樣靜靜地躺著务冕,像睡著了一般。 火紅的嫁衣襯著肌膚如雪幻赚。 梳的紋絲不亂的頭發(fā)上禀忆,一...
    開封第一講書人閱讀 52,785評論 1 314
  • 那天,我揣著相機與錄音落恼,去河邊找鬼箩退。 笑死,一個胖子當著我的面吹牛领跛,可吹牛的內(nèi)容都是我干的乏德。 我是一名探鬼主播,決...
    沈念sama閱讀 41,220評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼吠昭,長吁一口氣:“原來是場噩夢啊……” “哼喊括!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起矢棚,我...
    開封第一講書人閱讀 40,167評論 0 277
  • 序言:老撾萬榮一對情侶失蹤郑什,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后蒲肋,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蘑拯,經(jīng)...
    沈念sama閱讀 46,698評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,767評論 3 343
  • 正文 我和宋清朗相戀三年兜粘,在試婚紗的時候發(fā)現(xiàn)自己被綠了申窘。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,912評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡孔轴,死狀恐怖剃法,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情路鹰,我是刑警寧澤贷洲,帶...
    沈念sama閱讀 36,572評論 5 351
  • 正文 年R本政府宣布收厨,位于F島的核電站,受9級特大地震影響优构,放射性物質(zhì)發(fā)生泄漏诵叁。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,254評論 3 336
  • 文/蒙蒙 一钦椭、第九天 我趴在偏房一處隱蔽的房頂上張望拧额。 院中可真熱鬧,春花似錦玉凯、人聲如沸势腮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,746評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至泪幌,卻和暖如春盲厌,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背祸泪。 一陣腳步聲響...
    開封第一講書人閱讀 33,859評論 1 274
  • 我被黑心中介騙來泰國打工吗浩, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人没隘。 一個月前我還...
    沈念sama閱讀 49,359評論 3 379
  • 正文 我出身青樓懂扼,卻偏偏與公主長得像,于是被迫代替她去往敵國和親右蒲。 傳聞我的和親對象是個殘疾皇子阀湿,可洞房花燭夜當晚...
    茶點故事閱讀 45,922評論 2 361

推薦閱讀更多精彩內(nèi)容