一、資料庫管理系統的層次結構之資料存取層
資料存取介于語言處理層和資料存儲層之間。它向上提供單元組接口,即導航式的一次一個元組的存取操作;向下則以系統緩沖區的存儲器接口作為實作基礎。接口關系如下:
資料存儲層所涉及的主要資料結構為邏輯資料記錄、邏輯塊、邏輯存取路徑。
存取層的任務主要包括:
提供一次一個元組的查找、插入、删除、修改的等基本操作。
提供元組查找所循的存取路徑以及對存取路徑的維護操作,如對索引記錄的增删改查。若索引是采用B+樹的建立、查找、插入、删除、修改等功能。
對記錄和存取路徑的封鎖、解鎖操作。
日志檔案的登記和存取操作。
其他輔助操作(掃描、合并/排序),其操作對象有關系、有序表、索引等。
1、 資料存取層的系統結構
在實際的關系資料庫管理系統中由多個功能子系統來完成資料存取層中的許多功能。資料存取層的系統結構如下:
這些子系統互相配合、緊密聯系,構成了一個完整的資料存取系統。
2、資料存取層的功能子系統
記錄存取、事務管理子系統
資料存取層不涉及存儲配置設定、存儲結構及有關參數,隻在資料的邏輯結構上操作,因而可以把各種實體實作形态隐蔽起來。
記錄存取子系統提供按某個屬性值直接取一個元組和順序取一個元組的存取原語。這種存取運算是按已標明的某個邏輯存取路徑進行的。
事務管理子系統提供定義和控制事務的操作。資料庫中事務是并發控制和恢複的機關,事務管理子系統提供的這些操作将登記進日志檔案中。
日志登記子系統
日志等級子系統和事務管理子系統緊密配合,完成關系資料庫管理系統對事務和資料庫的恢複任務,它把事務的開始、復原、送出,對元組的插入、删除、修改,以及對索引記錄的插入、删除、修改等每一個操作作為一個日志記錄存入日志檔案中。當事務或系統軟硬體發生故障時利用日志檔案執行恢複。
寫日志檔案的有關操作:
寫日志記錄(WIRTELOG)
讀日志記錄(READLOG)
掃描日志檔案(SCANLOG)
撤銷尚未結束的事務(UNDO)
重做已經結束的事務(REDI)
控制資訊管理子產品
該子產品利用專門的資料區(記憶體中)等級不同記錄類型以及不同存取路徑的說明資訊(取自字典)和控制資訊,這些資訊是存取元組和管理事務的依據。該子產品和事務管理、記錄存取子系統一起保證事務的正常運作,提供對資料字典中說明資訊的讀取、增加、删除和修改操作。
排序/合并子系統
在語言處理層中,描述性語言表達的集合級操作被轉換成一系列對資料存取層所提供的存取原語的調用。為了得到使用者鎖要求的有序輸出,為了加速關系運算的中間步驟,常常需要對關系元組重新排序,這一工作由排序/合并子系統來完成。
排序操作的若幹主要用途:
1)輸出有序結果
2)資料預處理
對于并、交、差、分組聚集、連接配接、取消重複值、屬于、不屬于等關系運算,當參與運算的關系無法全部放入記憶體時,先對其進行排序預處理,再在有序表上執行相應操作的做法是降低處理代價的常用手段。
3)支援動态建立索引結構
B+樹是資料庫中常用的索引結構。B+樹的葉頁索引記錄形式(碼值,TID),其中TID為元組辨別符。TID可用元組邏輯記錄号、主碼值或資料塊加位移等來表示。索引記錄在B+樹的葉頁上是順序存儲的,是以在初建B+樹索引時首先要對(碼值,TID)排序。
4)減少資料塊的存取次數
通過B+樹索引存取元組時,首先得到(碼值,DIT)集合,然後根據TID存取相應的元組。當TID是用資料塊号加位移來表示時,可首先對TID排序,使相同或臨近塊号的TID聚集在一起,然後按資料塊号順序存取實體資料塊,避免無序狀态下重複讀塊的情況,減少資料塊的存取次數。
排序操作是資料存取子系統和存取路徑維護子系統都要經常調用的操作,它對提高系統效率具有關鍵的作用。
存取路徑維護子系統
對資料庫執行插入、删除、修改操作的同時,要對相應的存取路徑進行維護。
封鎖子系統
封鎖子系統完成并發控制功能。
1)在作業系統中也有并發控制問題,資料庫與作業系統的封鎖技術比較:
2)資料庫管理系統中封鎖子系統設計的難點不急在于技術複雜,而且其實作手段依賴于作業系統提供的環境。
二、資料庫管理系統的層次結構之緩沖區管理
資料存取層的下面是資料存儲層。該層主要是存儲管理,包括緩沖區管理、内外存交換、外存管理等。
資料存儲層向資料存取層提供的接口是由定長頁面組成的系統緩沖區。
系統緩沖區的設立的原因:
它把資料存儲層以上各系統成分和實際的外存裝置隔離,外存裝置的變更不會影響其他系統成分,使關系資料庫管理系統具有裝置獨立性。
提供存取效率。
關系資料庫管理系統利用系統緩沖區緩存資料,當資料存取層需要讀取資料時,資料存儲子系統首先到系統緩沖區中查找。隻有當緩沖區不存在該資料時才真正從外存讀入該資料所在的頁面。當資料存取層寫回一進制組到資料庫中時,存儲子系統并不把它立即寫回外存,僅把該元組所在的緩沖區頁面作一标志,表示可以釋放。隻有當該使用者事務結束或緩沖區已滿需要調入新頁時,才按一定的淘汰政策把緩沖區中已有釋放标志的頁面寫回外存。這樣可以減少内外存交換的次數,提高存取效率。
系統緩沖區可由記憶體或虛存組成。由于記憶體空間緊張,緩沖區的大小、緩沖區記憶體和虛存部分的比例要精心設計,針對不同應用和環境按一定的模型進行調整。既不能讓緩沖區占據太大的記憶體空間,也不能因其空間太小而頻頻缺頁、調頁,造成“抖動”,影響效率。
資料庫緩沖區及上下接口:
緩沖區由控制資訊和若幹定長頁面組成。緩沖區管理子產品向上層提供的操作是緩沖區的讀(READBUF)、寫(WRITEBUF)。緩沖區内部的管理操作有查找頁、申請頁、淘汰頁。緩沖區管理調用作業系統的操作有讀(READBUF)、寫(WRITEBUF)。
緩沖區管理示意圖:
緩沖區管理中主要算法是淘汰算法和查找算法。作業系統中的淘汰算法:FIFO(先進先出算法)、LRU等。查找算法用來确定所請求的頁是否在記憶體,可采用順序掃描、折半查找、hash查找算法等。
————————————————
2019年阿裡雲雙11活動熱門型号價格表 隻要是新使用者,就可以直接購買,無需拼團,沒有任何門檻。(
https://www.aliyun.com/1111/2019/group-buying-share?spm=a2c4e.11153940.0.0.59e85d407TbQ62&ptCode=4F3EAAA24826E82EB0B79C1A87FF53FE647C88CF896EF535&userCode=btodw2md&share_source=copy_link)(需要的同學可以考慮來一個确實便宜最低86元一年錯過真要再等一年)(學生黨學習建議入手)