8.    Oracle数据字典
    数据字典是元数据(metadata)的存储地点
    Oracle使用数据字典记录和管理对象信息和安全信息
    包括如下内容:
        1.    所有数据库schema对象的定义(表、视图、索引、聚族、同义词、序列、过程、函数、包、触发器等)
        2.    数据库的空间分配和使用情况
        3.    字段缺省值、完整性约束信息
        4.    用户名、角色、权限
        5.    审计信息
        6.    ...
   
    数据字典是数据库的核心,一般情况下是只读的!oracle不建议修改,因为这样可能会导致数据库紊乱而无法恢复!
    oracle对这类操作不负责任!
   
    组成:
        内部RDBMS(X$表)
        数据字典表
        动态性能视图(V$)
        数据字典视图
   
    8.1    X$是数据库的核心,加密命名,是oracle公司的技术机密
        记录oracle数据库内部信息,是数据库运行的基础,启动时由oracle应用程序动态创建
        不允许sysdba之外的用户直接访问
       
    8.2    数据字典表
        data dictionary table
        用以存储表、索引、约束以及其他数据库结构的信息,通常以$结尾
        如:tab$,obj$,ts$,在创建数据库的时候通过运行sql.gsq脚本创建
        sql.bsq包含了数据字典表的定义以及注释说明,位于$ORACLE_HOME/dbms/admin目录下,可以多阅读
    8.3    动态性能视图
        V$开头,在启动时,创建了X$之后,oracle基于x$创建了GV$和V$视图,GV$视图是global v$
        基本上每个v$都有一个GV$存在,当然也有例外
       
        GV$是为了满足ops环境,GV$是所有实例信息,而每个v$是基于GV$视图,增加了inst_id列的where条件限制
            每个v$都有where inst_id=userenv('Instance');在orc环境下,gv$和V$输出有不同
           
        随后,oracle又创建了gv_$/v_$视图,通过gv$、v$创建了gv_$/v_$视图,然后再创建公用同义词gv$/v$
        通过catalog.sql脚本创建
        创建gv_$和v_$视图是为了授权,因为授权不能直接在gv$/v$上进行
        所以我们看到的gv$/v$都不是真正的gv$/v$
        我们常用的v$ 是v_$的同义词,v_$是基于真正的视图v$,而真正的v$视图是在gv$的基础上限制inst_id得到;     
        我们常用的gv$是gv_$的同义词,gv_$基于真正的视图gv$,而真正的gv$视图基于系统表X$
       
       
    8.4    数据字典视图
        数据字典视图是建立在x$/数据字典表上创建的视图,由catalog.sql负责
       
        根据前缀不同,分为常见的三类:
        user_:包含了用户所拥有的相关对象信息
        all_:包含了用户有权限访问的所有对象信息
        dba_:包含了数据库所有对象的信息