These underlying tables store information about the database. Only Oracle Database should write to and read these tables. Users rarely access the base tables directly because they are normalized and most data is stored in a cryptic format.
Throughout its operation, Oracle Database maintains a set of virtual tables that record current database activity. These views are calleddynamic performance views because they are continuously updated while a database is open and in use. The views, also sometimes calledV$ views。
資料字典在需求分析階段被建立。
資料字典是一個預留空間,一個數據庫,這是用來儲存資訊資料庫本身。
資料字典可能包含的資訊,例如:
資料庫設計資料
儲存的SQL程式
使用者許可權
使用者統計
資料庫的過程中的資訊
資料庫增長統計
資料庫效能統計
資料字典則是系統中各類資料描述的集合,是進行詳細的資料收集和資料分析所獲得的主要成果。
資料字典通常包括資料項\資料結構\資料流\資料儲存和處理過程五個部分。
其中資料項是資料的最小組成單位若干個資料項可以組成一個數據結構資料字典透過對資料項和資料結構的 定義來描述資料流、資料儲存的邏輯內容。
資料字典是關於資料的資訊的集合,也就是對資料流圖中包含的所有元素的定義的集合.
資料字典還有另一種含義,是在資料庫設計時用到的一種工具,用來描述資料庫中基本表的設計,主要包括欄位名、資料型別、主鍵、外來鍵等描述表的屬性的內容。
以Oracle資料庫字典為例:資料字典分為資料字典表和資料字典檢視
Oracle資料庫字典通常是在建立和安裝資料庫時被建立的,Oracle資料字典是Oracle資料庫系統工作的基礎,沒有資料字典的支援,Oracle資料庫系統就不能進行任何工作。資料字典中的表是不能直接被訪問的,但是可以訪問資料字典中的檢視。
資料字典表裡的資料是Oracle系統存放的系統資料,而普通表存放的是使用者的資料。為了方便的區別這些表,這些表的名字都是用$結尾,這些表屬於SYS使用者。
資料字典表由$ORACLE_HOME/rdbms/admin/sql.bsq 指令碼建立, 這個腳本里又呼叫了其他的指令碼來建立這些資料字典表。 在那些建立腳本里有基表的建立SQL。
Oracle 對資料字典表的說明:
These underlying tables store information about the database. Only Oracle Database should write to and read these tables. Users rarely access the base tables directly because they are normalized and most data is stored in a cryptic format.
這些資料字典表,只有Oracle 能夠進行讀寫。
SYS使用者下的這些資料字典表,存放在system 表空間下面,表名都用$結尾,為了便於使用者對資料字典表的查詢, Oracle對這些資料字典都分別建立了使用者檢視,這樣即容易記住,還隱藏了資料字典表表之間的關係,Oracle針對這些物件的範圍,分別把檢視命名為DBA_XXXX, ALL_XXXX和USER_XXXX。
資料字典檢視分2類:靜態資料字典(靜態效能檢視) 和 動態資料字典(動態效能檢視)。
靜態資料字典中的檢視分為三類,它們分別由三個字首構成:user_*、 all_*、 dba_*。
user_*:該檢視儲存了關於當前使用者所擁有的物件的資訊。(即所有在該使用者模式下的物件)
all_*:該試圖儲存了當前使用者能夠訪問的物件的資訊, 而不是當前使用者擁有的物件。(與user_*相比,all_* 並不需要擁有該物件,只需要具有訪問該物件的許可權即可)
dba_*:該檢視儲存了資料庫中所有物件的資訊。(前提是當前使用者具有訪問這些資料庫的許可權,一般來說必須具有管理員許可權)
這些檢視由SYS使用者建立的,所以使用需要加上SYS,為了方便, Oracle為每個資料字典表的檢視頭建立了同名字的公共同義詞(public synonyms). 這樣簡單的處理就省去了寫sys.的麻煩。
除了靜態資料字典中三類檢視,其他的字典檢視中主要的是V$檢視,之所以這樣叫是因為他們都是以V$或GV$開頭的。這些檢視會不斷的進行更新,從而提供了關於記憶體和磁碟的執行情況,所以我們只能對其進行只讀訪問而不能修改它們。
Throughout its operation, Oracle Database maintains a set of virtual tables that record current database activity. These views are calleddynamic performance views because they are continuously updated while a database is open and in use. The views, also sometimes calledV$ views。
V$檢視是基於X$虛擬檢視的。V$檢視是SYS使用者所擁有的,在預設狀況下,只有SYS使用者和擁有DBA系統許可權的使用者可以看到所有的檢視,沒有DBA許可權的使用者可以看到USER_和ALL_檢視,但不能看到DBA_檢視。與DBA_,ALL,和USER_檢視中面向資料庫資訊相反,這些檢視可視的給出了面向例項的資訊。
動態效能表用於記錄當前資料庫的活動,只存於資料庫執行期間,實際的資訊都取自記憶體和控制檔案。 DBA可以使用動態檢視來監視和調節資料。