數據字典是oracle數據庫的最重要的部分之一,是由一組只讀的表及其視圖所組成。它提供有關該數據庫的信息,可提供的信息如下:
oracle用戶的名字;
每一個用戶所授的特權和角色;
模式對象的名字(表、視圖、快照、索引、聚集、同義詞、序列、過程、函數、包及觸發器等);
關於完整性約束的信息;
列的缺省值;
有關數據庫中對象的空間分佈及當前使用情況;
審計信息(如誰存取或修改各種對象);
其它一般的數據庫信息。
可用sql存取數據字典,由於數據字典爲只讀,允許查詢。
1. 數據字典的結構
數據庫數據字典是由基本表和用戶可存取的視圖組成。
基本表:數據字典的基礎是一組基本表組成,存儲相關的數據庫的信息。這些信息僅由oracle讀和寫,它們很少被oracle用戶直接存取。
用戶可存取視圖:數據字典包含用戶可存取視圖,可概括地方便地顯示數據字典的基本表的信息。視圖將基本表中信息解碼成可用信息。
2. 數據字典的使用
當數據庫打開時,數據字典總是可用,它駐留在system表空間中。數據字典包含視圖集,在許多情況下,每一視圖集有三種視圖包含有類似信息,彼此以 前綴 相區別,前綴 user、all和dba。
前綴爲user的視圖,爲用 視圖,是在用戶的模式內。
前綴爲all的視圖,爲擴展的用戶視圖(爲用戶可存取的視圖)。
前綴爲dba的視圖爲dba的視圖(爲全部用戶可存取的視圖)。
在數據庫中oracle還維護了一組虛表記錄當前數據庫的活動,這些表稱爲動態性能表。動態性能表不是真正的表,許多用戶不能存取,dba可查詢這些表,可以建立視圖,給其它用戶授予存取視圖權。
動態性能表
用於記錄當前數據庫的活動,只存於數據庫運行期間,實際的信息都取自內存和控制文件。
DBA可以使用動態視圖來監視和調節數據。
動態視圖屬於SYS用戶。
下面是一些例子:
SQL> select * from dictionary;
SQL> select instance_name,version,database_status from v$instance;
INSTANCE_NAME VERSION DATABASE_STATUS
---------------- ----------------- -----------------
test 9.2.0.4.0 ACTIVE