時(shí)間:2022-11-19 04:30:02 | 來(lái)源:信息時(shí)代
時(shí)間:2022-11-19 04:30:02 來(lái)源:信息時(shí)代
數(shù)據(jù)庫(kù)系統(tǒng)目錄結(jié)構(gòu) : 數(shù)據(jù)庫(kù)的元數(shù)據(jù),也稱為數(shù)據(jù)字典或名冊(cè)(dictionary或directory),它是數(shù)據(jù)庫(kù)系統(tǒng)的縮影,是數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)。例如,關(guān)系系統(tǒng)中的關(guān)系模式的定義、屬性值的分布、存取路徑信息等。所有數(shù)據(jù)庫(kù)系統(tǒng)的活動(dòng),包括外部操作,如定義數(shù)據(jù)對(duì)象和查詢、添加、刪除及修改數(shù)據(jù)對(duì)象,以及數(shù)據(jù)庫(kù)系統(tǒng)的內(nèi)部運(yùn)作,如用戶事務(wù)的編譯、授權(quán)檢查、存取數(shù)據(jù)、并發(fā)控制和故障恢復(fù)等是須臾也離不開目錄的。在整個(gè)數(shù)據(jù)庫(kù)系統(tǒng)的運(yùn)行過(guò)程中無(wú)時(shí)無(wú)刻不在和目錄打交道。
例如,用戶定義一個(gè)關(guān)系時(shí),需將所定義的關(guān)系造表,將外部名映射為內(nèi)部名,記錄屬性的類型等,這些關(guān)系的模式信息亦即元信息要存儲(chǔ)在目錄中,以后存取該關(guān)系時(shí)首先必須查詢目錄以獲得相應(yīng)的信息。在刪除一個(gè)關(guān)系時(shí),除了需將數(shù)據(jù)庫(kù)中該關(guān)系的所有元組刪除掉,還需將目錄中該關(guān)系的模式信息刪除。目錄從本質(zhì)上是和數(shù)據(jù)庫(kù)系統(tǒng)同樣復(fù)雜的,它也有定義、查詢、添加、刪除、修改等操作,以及并發(fā)控制,故障恢復(fù)等問(wèn)題。因此,目錄結(jié)構(gòu)的設(shè)計(jì)是一個(gè)十分重要的課題,不僅涉及數(shù)據(jù)庫(kù)系統(tǒng)的正確運(yùn)行,更涉及數(shù)據(jù)庫(kù)系統(tǒng)的效率。
由于目錄和數(shù)據(jù)庫(kù)十分類似,因此,在目錄結(jié)構(gòu)的設(shè)計(jì)中有相當(dāng)多的系統(tǒng)采用將目錄數(shù)據(jù)視為關(guān)系數(shù)據(jù),從而目錄的存儲(chǔ)結(jié)構(gòu)、存取結(jié)構(gòu)、并發(fā)控制、存取控制、故障恢復(fù)等機(jī)制都可以借助數(shù)據(jù)庫(kù)管理系統(tǒng)的相應(yīng)功能子系統(tǒng)來(lái)統(tǒng)一管理。這種策略的顯而易見的優(yōu)點(diǎn)是使整個(gè)系統(tǒng)整齊劃一。由于目錄的建立和管理均借用整個(gè)系統(tǒng)的相應(yīng)功能子系統(tǒng)來(lái)進(jìn)行,因而整個(gè)系統(tǒng)的設(shè)計(jì)和開發(fā)的開銷大大降低。把目錄數(shù)據(jù)和用戶數(shù)據(jù)都表示為簡(jiǎn)單的關(guān)系,這種單純和劃一的表示形式體現(xiàn)了整個(gè)系統(tǒng)的一種數(shù)學(xué)的美。
但是以上的設(shè)計(jì)考慮其缺陷也是十分明顯的,即整個(gè)系統(tǒng)的效率的低下。在數(shù)據(jù)庫(kù)系統(tǒng)的運(yùn)行過(guò)程中時(shí)時(shí)都要訪問(wèn)目錄,于是經(jīng)常要調(diào)用整個(gè)系統(tǒng)的相應(yīng)子系統(tǒng)。這種調(diào)用體現(xiàn)為一種進(jìn)程切換,而進(jìn)程切換的開銷是十分昂貴的,動(dòng)輒上萬(wàn)條指令,從而導(dǎo)致整個(gè)系統(tǒng)的效率太低,無(wú)法使用。為了讓系統(tǒng)的效率能為實(shí)際的系統(tǒng)所接受,必須對(duì)目錄結(jié)構(gòu)進(jìn)行精細(xì)的分析和設(shè)計(jì)。對(duì)目錄的訪問(wèn)可定義為一種目錄事務(wù),它與一般的用戶事務(wù)是不同的。由于目錄的登記項(xiàng)或數(shù)據(jù)項(xiàng)是一種內(nèi)部表格中的項(xiàng),它比較簡(jiǎn)單和整齊劃一,不同于用戶的數(shù)據(jù),因而易于組織和管理。它也不需要像用戶關(guān)系的并、交、差、連接和投影等那樣的操作,因而結(jié)構(gòu)大為簡(jiǎn)化,可以做得更為小巧和精致。
數(shù)據(jù)庫(kù)系統(tǒng)的整個(gè)運(yùn)行,即編譯、執(zhí)行等過(guò)程中要不斷訪問(wèn)目錄,相應(yīng)的目錄事務(wù)可以列舉如下:
(1)數(shù)據(jù)庫(kù)管理員為用戶注冊(cè),為用戶建立或更新口令。
(2)數(shù)據(jù)庫(kù)管理員為了解數(shù)據(jù)庫(kù)的狀態(tài)而對(duì)系統(tǒng)目錄中的各種信息包括統(tǒng)計(jì)信息的查詢。
(3)用戶進(jìn)入數(shù)據(jù)庫(kù)系統(tǒng)時(shí)對(duì)其注冊(cè)名及口令的核查。
(4)數(shù)據(jù)錄入前對(duì)關(guān)系模式的查詢。
(5)編譯時(shí)申請(qǐng)關(guān)系內(nèi)部名、通用存取路徑名和斷言內(nèi)部名。
(6)定義關(guān)系模式或擴(kuò)充關(guān)系。
(7)定義或刪除用戶權(quán)利矩陣。
(8)定義或刪除完整性斷言。
(9)為用戶事務(wù)查取關(guān)系模式、完整性斷言、通用存取路徑和權(quán)利矩陣等信息,建立程序狀態(tài)表。
(10)查取關(guān)系的勢(shì)(cardinality)、屬性值的分布信息和非重復(fù)屬性值的個(gè)數(shù)等信息。
(11)刪除關(guān)系。
(12)定義或刪除通用存取路徑。
(13)查詢存取路徑。
(14)查詢關(guān)系的描述信息。
(15)查詢目錄的版本號(hào)。
(16)為建立封鎖表對(duì)目錄的查詢。
為了精致化目錄設(shè)計(jì),應(yīng)對(duì)上述目錄事務(wù)進(jìn)行分類,例如第1種事務(wù)不會(huì)妨礙其他事務(wù)讀數(shù)據(jù)庫(kù),不必進(jìn)行并發(fā)控制,但兩個(gè)第1種事務(wù)需進(jìn)行并發(fā)控制,第11種事務(wù)刪除關(guān)系則要禁止其他事務(wù)訪問(wèn)數(shù)據(jù)庫(kù)。不同種類的目錄事務(wù)相互之間和自身之間具有不同的相容關(guān)系,需進(jìn)行不同的并發(fā)控制,從而減少全局封鎖的情況,提高系統(tǒng)的并發(fā)度和系統(tǒng)的效率。
客戶&案例
營(yíng)銷資訊
關(guān)于我們
客戶&案例
營(yíng)銷資訊
關(guān)于我們
微信公眾號(hào)
版權(quán)所有? 億企邦 1997-2022 保留一切法律許可權(quán)利。