教你如何成為Oracle 10g OCP - 第三章 資料字典學習

tolywang發表於2009-06-03


1. 插入資料的時候,Oracle需要知道物理上這個table位於哪個資料檔案裡,哪個表,表有哪些列,每個列型別等
   儲存這些資訊的表叫做資料字典表 。

2. 資料字典的兩部分:  資料字典表及資料字典檢視

3. 資料字典基本表是在create database 的時候由Oracle自動建立的(呼叫$ORACLE_HOME/rdbms/admin/sql.bsq),

tab$     /* table table */
clu$     /* cluster table */

create table fet$                                       /* free extent table */
( ts#           number not null,        /* tablespace containing free extent */
  file#         number not null,              /* file containing free extent */
  block#        number not null,              /* starting dba of free extent */
  length        number not null           /* length in blocks of free extent */
)


create table uet$                                       /* used extent table */
( segfile#      number not null,               /* segment header file number */
  segblock#     number not null,              /* segment header block number */
  ext#          number not null,         /* extent number within the segment */
  ts#           number not null,        /* tablespace containing this extent */
  file#         number not null,              /* file containing this extent */
  block#        number not null,              /* starting dba of this extent */
  length        number not null           /* length in blocks of this extent */
)

 

seg$      /* segment table */
undo$     /* undo segment table */
ts$       /* tablespace table */
file$     /* file table */
obj$      /* object table */
ind$       /* index table */
icol$      /* index column table */
col$      /* column table */
user$     /* user table */
con$      /* constraint table */
ccol$     /* constraint column table */
tsq$      /* tablespace quota table */
syn$      /* synonym table */
trigger$   /* trigger table */


4.  資料字典表存放在sys使用者下,system表空間中,使用者只能讀取資料字典表,不能DML或DDL
修改,不要試圖修改其中的記錄,基本表之間關係複雜,修改可能導致DB崩潰。

5.  資料字典基本表關係過於複雜,不便於查詢,Oracle提供資料字典檢視來簡化資料字典,他們
隱藏了資料字典基本表之間的複雜關係,而且View列名含義清晰.

6.  資料字典檢視及同義詞透過指令碼catalog.sql建立, cataproc.sql 用來建立資料庫內建的
儲存過程、包等PL/SQL物件,建庫的時候這兩個指令碼一定要執行,DBCA會自動呼叫。

7.  資料字典檢視: DBA_, ALL_, USER_ , DBA_檢視包含整個庫的資料,ALL_ 當前登陸使用者有許可權看到的
資料, USER_ 記錄了當前登陸使用者擁有的所有表的資訊 。

8.  dictionary 檢視記錄了所有檢視的註釋,它的同義詞 dict 。

9.  Oracle資料字典檢視: 先基於資料字典基本表建立檢視,然後為檢視建立一個同名的同義詞,並
將同義詞賦給Public , 使所有使用者可以透過同義詞檢視資料字典的資訊。

10. 動態效能檢視: 另外一種資料字典,是將記憶體中的資料或控制檔案中的資料以表的形式展現出來。他們
實際都是虛擬表,資料庫執行過程中,會不斷更新動態效能檢視中的資料,一旦關閉,資料將丟失,重新啟動
後資料重新開始計算。

11. 所有動態效能檢視的名稱都存放在 v$fixed_table中,檢視名稱為  v_$開頭,建立同義詞後刪除了”_“,也有例外,
gv$session 檢視, v$session是基於gv$session建立的, v$session不是一個同義詞,v_$session 是基於v$session的。

12. v$fixed_view_definition 記錄所有動態效能檢視的定義資訊。    

13. x$ 表:動態效能檢視的基表,是記憶體表,不是存放在資料檔案中的。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-611736/,如需轉載,請註明出處,否則將追究法律責任。

相關文章