Oracle數據字典主要是由表與視圖組成,其主要的功能是存儲相關的Oracle數據庫結構信息的某些數據庫的對象。Oracle數據庫字典主要描述的是實際數據組織。處理它們與處理其他數據庫表或視圖一樣進行查詢,但不能進行任何修改。
Oracle數據庫字典通常是在創建和安裝數據庫時被創建的,Oracle數據字典是Oracle數據庫系統工作的基礎,沒有數據字典的支持,Oracle數據庫系統就不能進行任何工作。
在Oracle數據庫字典中,許多視圖都有三個不同的實例,它們的前綴分別為"USER_"、"ALL_"及"DBA_"。"USER_"為前綴的數據庫字典視圖通常記錄執行查詢的帳戶所擁有的對象的信息,"ALL_"為前綴的數據庫字典視圖通常記錄包括執行查詢的帳戶所擁有的對象的信息及授權至PUBLIC的帳戶用戶所擁有的對象的信息,"DBA_"為前綴的Oracle數據庫字典視圖則包含所有數據庫對象的信息,而不管其所有者。
其他的字典視圖中主要的是V$視圖,之所以這樣叫是因為他們都是以V$或GV$開頭的。V$視圖是基於X$虛擬視圖的。V$視圖是SYS用戶所擁有的,在缺省狀況下,只有SYS用戶和擁有DBA系統權限的用戶可以看到所有的視圖,沒有DBA權限的用戶可以看到USER_和ALL_視圖,但不能看到DBA_視圖。與DBA_,ALL,和USER_視圖中面向數據庫信息相反,這些視圖可視的給出了面向實例的信息。
在Oracle的絕大多數數據字典視圖中都有象DBA_TABLES,ALL_TABLES和USER_TABLES這樣的視圖家族。Oracle中有超過100個視圖家族,下表列出了最重要和最常用的視圖家族,需要注意的是每個視圖家族都有一個DBA_,一個ALL_一個USER_視圖。
視圖家族 描述
COL_PRIVS 包含了表的列權限,包括授予者、被授予者和權限
EXTENTS 數據范圍信息,比如數據文件,數據段名(segment_name)和大小
INDEXES 索引信息,比如類型、唯一性和被涉及的表
IND_COLUMNS 索引列信息,比如索引上的列的排序方式
OBJECTS 對象信息,比如狀態和DDL time
ROLE_PRIVS 角色權限,比如GRANT和ADMIN選項
SEGMENTS 表和索引的數據段信息,比如tablespace和storage
SEQUECNCES 序列信息,比如序列的cache、cycle和ast_number
SOURCE 除觸發器之外的所有內置過程、函數、包的源代碼
SYNONYMS 別名信息,比如引用的對象和Oracle數據庫鏈接db_link
SYS_PRIVS 系統權限,比如grantee、privilege、admin選項
TAB_COLUMNS 表和視圖的列信息,包括列的數據類型
TAB_PRIVS 表權限,比如授予者、被授予者和權限
TABLES 表信息,比如表空間(tablespace),存儲參數(storage parms)和數據行的數量
TRIGGERS 觸發器信息,比如類型、事件、觸發體(trigger body)
USERS 用戶信息,比如臨時的和缺省的表空間
VIEWS 視圖信息,包括視圖定義
在Oracle中還有一些不常用的數據字典表,但這些表不是真正的字典家族,他們都是一些重要的單一的視圖。這些視圖見下表:
視圖名稱 描述
USER_COL_PRIVS_MADE 用戶授予他人的列權限
USER_COL_PRIVS_RECD 用戶獲得的列權限
USER_TAB_PRIVS_MADE 用戶授予他人的表權限
USER_TAB_PRIVS_RECD 用戶獲得的表權限
以上的相關內容就是對Oracle數據庫字典的介紹,望你能有所收獲。