oracle數據字典表與視圖
?????? 數據字典是數據的數據,也就是元數據。描述了數據庫的物理與邏輯存儲與相應的信息。模式中對象的定義信息,安全信息,完整性約束信息,和部分的性能監控信息等。數據字典表 與視圖存儲在system表空間中的。有一種說法是數據字典表與視圖部分也存儲在sysaux表空間。為了保證數據字典表與視圖總是可用的,應該存儲在system表空間中才對,當數據庫打開以后system總是可用的,這樣數據字典表與視圖總是可用的。數據字典是在oracle數據庫創建的時候產生的,用戶不可以對其進行增刪改,否則可能對數據庫
造成不可挽回的損壞。出現這種情況oracle也不會管你。數據字典由oracle數據庫自行維護,當數據庫執行DDL操作的時候,將會插入或者更新,刪除某些數據字典中的記錄。數據庫通過數據字典才查找用戶信息,模式中對象的定義信息,和存儲結構。用戶可以通過一組視圖來查詢數據字典中的信息。當然用戶也可以根據這些視圖創建自己的數據字典表或者視圖。
????? 數據字典由以下兩類對象組成:
基表:基表中存儲著數據庫的信息,只有oracle可以讀寫,用戶很少能夠直接的訪問這些基表,因為這些基表中的信息是難以看懂的,并且通常情況下都被加密存儲。
視圖:基表主要是供oracle數據庫自己用的,視圖把其中的一些信息抽取解析出來供用戶使用,部分視圖是可以被所有數據庫用戶訪問的,部分只供管理員使用。
這些視圖大概的分成3組,通過視圖前綴來標識。
前綴?????? 用戶訪問???????????? 內容??????????????? 注意事項
DBA_??? 數據庫管理員??? 所有對象???????????? 有些DBA_視圖增加了一些額外的?????????????????????????????????????????????????????????????? 列,列中存儲著對數據庫管理?????????????????????????????????????????????????????????????????? 員有用的信息
ALL_??? 所有用戶?? 用戶有權限訪問的對象?? 包括用戶自己擁有的對象,這些??????????????????????????????????????????????????????????????? 視圖是根據用戶的當前啟用的角???????????????????????????????????????????????????????????????? 色給出的
USER_?? 所有用戶???? 對象的擁有者???????? 這些帶USER_前綴的視圖,通常沒????????????????????????????????????????????????????????????? 有owner列,因為USER_已經隱含????????????????????????????????????????????????????????????? 了用戶的所有者
當然并不是所有的視圖集都都可以分成上述的3組,如有dba_lock但是沒有all_lock.
oracle數據庫系統提供的dictionary視圖提供了所有數據字典視圖的名字與簡要描述。
SQL> select count(*) from dictionary;????????????????????
? COUNT(*)
----------
????? 2542
這些數據字典視圖數量龐大,是有些可怕。