数据字典是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