*數(shù)據(jù)字典是Oracle數(shù)據(jù)庫中重要的邏輯結(jié)構(gòu)之一,它是由一些只讀的基礎(chǔ)表和視圖組成。在這些基礎(chǔ)表中,保存著Oracle服務(wù)器所有的信
1.數(shù)據(jù)字典的概念
*數(shù)據(jù)字典是Oracle數(shù)據(jù)庫中重要的邏輯結(jié)構(gòu)之一,它是由一些只讀的基礎(chǔ)表和視圖組成。在這些基礎(chǔ)表中,保存著Oracle服務(wù)器所有的信息。這些信息主要包括:
*數(shù)據(jù)庫物理結(jié)構(gòu)和邏輯結(jié)構(gòu)的定義,主要包括服務(wù)器中數(shù)據(jù)文件,控制文件和重做日志文件,以及表,視圖,索引,同義詞,序列,存儲過程,程序包,觸發(fā)器等所有的模式對象。
*數(shù)據(jù)庫存儲空間的分配信息,比如當(dāng)前Oracle為某一對象分配了多少空間,已經(jīng)使用了其中的多少。
*數(shù)據(jù)的完整性約束信息。
*數(shù)據(jù)庫的安全信息,包括用戶信息,授予用戶的權(quán)限和角色信息。
*審計信息,如吉林某個用戶訪問或修改了那些數(shù)據(jù)庫對象。
*數(shù)據(jù)庫運(yùn)行時的性能和統(tǒng)計信息。
*其他關(guān)于數(shù)據(jù)庫的基本信息。
相關(guān)閱讀:
Oracle體系概述-數(shù)據(jù)字典
Oracle體系概述--實(shí)例
Oracle體系概述--內(nèi)存結(jié)構(gòu)
Oracle服務(wù)器體系結(jié)構(gòu)概述
數(shù)據(jù)字典的數(shù)據(jù)是以表和視圖的形式進(jìn)行組織的,這些數(shù)據(jù)反映了Oracle體系結(jié)構(gòu)中的各個組成的基本信息,以及Oracle的運(yùn)行過程中的各個狀態(tài)的信息,是Oracle管理和控制自身正常運(yùn)行的數(shù)據(jù)集合。
數(shù)據(jù)字典是Oracle的核心數(shù)據(jù),被保存在系統(tǒng)表空間中,只有Oracle才能對數(shù)據(jù)字典中的這些表和視圖進(jìn)行管理和維護(hù),任何數(shù)據(jù)庫用戶,包括DBA都只能讀取數(shù)據(jù)字典中的數(shù)據(jù),但無權(quán)修改其數(shù)據(jù)。
2.數(shù)據(jù)字典的結(jié)構(gòu)
數(shù)據(jù)字典是一種邏輯結(jié)構(gòu),主要由兩部分組成:
(1)基礎(chǔ)表。數(shù)據(jù)字典中的數(shù)據(jù)都是保存在基礎(chǔ)表中。只有Oracle才能修改基礎(chǔ)表,Oracle用戶不能直接訪問基礎(chǔ)表,更不能修改和刪除其中的數(shù)據(jù)?;A(chǔ)表中的數(shù)據(jù)存儲一般是經(jīng)過加密處理的。
(2)用戶視圖。用戶視圖是Oracle服務(wù)器提供給用戶使用的視圖。Oracle服務(wù)器根據(jù)用戶的查詢需要,將基礎(chǔ)表通過表連接和條件形成了不同的視圖共用戶使用。視圖中的數(shù)據(jù)是經(jīng)過解密處理的基礎(chǔ)表中的數(shù)據(jù)。
3.數(shù)據(jù)字典的用途
數(shù)據(jù)字典通常是安裝數(shù)據(jù)庫時被創(chuàng)建的,其中的數(shù)據(jù)時在Oracle響應(yīng)某些特定操作時被Oracle更新的。如用戶對Oracle數(shù)據(jù)庫中的模式對象進(jìn)行了增加,修改,刪除等操作,這些操作都對Oracle服務(wù)器的組成進(jìn)行了修改,這時Oracle就將改動后的模式對象的結(jié)構(gòu)信息記錄在數(shù)據(jù)字典中。一般在每次執(zhí)行DDL語句之后,Oracle要對數(shù)據(jù)字典中的相關(guān)的信息進(jìn)行修改。數(shù)據(jù)字典對服務(wù)器運(yùn)行極為重要,服務(wù)器依靠數(shù)據(jù)字典來保持,檢驗(yàn)和處理正在進(jìn)行的操作。
用戶可以通過SELECT語句查詢用戶視圖獲得基礎(chǔ)表中的數(shù)據(jù),從而獲得Oracle服務(wù)器的各種信息。對用戶來說,數(shù)據(jù)字典就像Oracle服務(wù)器的參考手冊,所有關(guān)于Oracle服務(wù)器的信息都可以通過查詢數(shù)據(jù)字段獲得。
數(shù)據(jù)字典的主要用途如下:
*Oracle通過訪問數(shù)據(jù)字典獲取有關(guān)用戶,模式對象和其他存儲結(jié)構(gòu)的信息,從而控制和管理服務(wù)器工作。
*任何數(shù)據(jù)庫用戶都可以從數(shù)據(jù)字典中獲取關(guān)于數(shù)據(jù)庫的信息,從而對數(shù)據(jù)庫進(jìn)行相關(guān)的開發(fā),修改和維護(hù)操作。
*DBA可以從數(shù)據(jù)字典中獲取數(shù)據(jù)庫的各種參數(shù)信息和運(yùn)行狀態(tài)信息,從而進(jìn)行有效的數(shù)據(jù)庫管理。
4.用戶視圖
用戶視圖也叫靜態(tài)視圖,因?yàn)橐晥D中的內(nèi)容是基礎(chǔ)表中的數(shù)據(jù),只有基礎(chǔ)表改變后,視圖的內(nèi)容才隨之改變。
Oracle 通過SELECT語句可以訪問用戶視圖獲得數(shù)據(jù)字典中的數(shù)據(jù)。但由于數(shù)據(jù)庫的安全性考慮,并不是每個用戶都能夠訪問數(shù)據(jù)字典中的任何數(shù)據(jù),一般用戶只能查詢同自己相關(guān)的數(shù)據(jù)信息,只有DBA或具有SELECT ANYTABLE權(quán)限的用戶才能查詢數(shù)據(jù)字典中的所有數(shù)據(jù)信息。
用戶視圖大致可以分為三類,每一類的視圖通過不同的前綴加以區(qū)別,如表1-1所示
表1-1
5動態(tài)性能表
Oracle服務(wù)器在運(yùn)行過程中,會將當(dāng)前服務(wù)器的運(yùn)行狀態(tài)記錄在內(nèi)存中的一些“虛擬”表中,這些“虛擬”表稱之為動態(tài)性能表。這些動態(tài)性能表只能存在于內(nèi)存當(dāng)中,,隨著Oracle實(shí)例的啟動而被創(chuàng)建,在Oracle關(guān)閉時,這些表同時被刪除。
動態(tài)性能表屬于SYS用戶,只有SYS和具有SYSDBA角色用戶才能查詢。動態(tài)性能表通常以V$為前綴。
最為常用的動態(tài)性能視圖如表1-2所示:
表1-2
除了上述用戶視圖和動態(tài)性能視圖外,Oracle數(shù)據(jù)字典還有很多用戶視圖和動態(tài)性能視圖。作為DBA必須對于Oracle體系結(jié)構(gòu)有非常深刻的理解,通過查詢數(shù)據(jù)字段來獲取Oracle服務(wù)器的組織結(jié)構(gòu)和運(yùn)行狀況,如數(shù)據(jù)庫的剩余情況,SGA情況,用戶的權(quán)限以及緩沖區(qū)的使用狀況等。
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com