数据字典是什么 干什么的 !!

数据字典
    是元数据的集合,从逻辑上和物理上描述了数据库及内容,存储于SYSTEM与SYSAUX表空间内的若干段。
    SYS用户拥有所有的数据字典表,数据字典基本一般以$结尾,如col$,tab$等,这些数据字典存放在system表空间中。
   
数据字典的形成
    在数据库创建阶段创建,在使用阶段维护和更新
    无法通过DML操作来修改,只能通过相关的命令修改系统,来达到间接修改数据字典。
 
数据字典的特点
    每个Oracle数据库的中枢
    描述数据库和它的对象
    包含只读的表和视图
    存储在SYSTEM表空间中
    拥有者是SYS用户
    由Oracle服务器自己维护
    用SELECT访问
 
数据字典内容:
    数据字典提供下列信息:
       逻辑和物理的数据库结构
       对象的定义和空间分配
       一致性限制
       用户
       角色
       权限
       审计
 
数据字典的主要用途:
    Oracle服务器用它查找下列信息:
       用户
       对象
       存储结构
       Oracle服务器修改数据字典当DDL语句执行的时候.
       用户和管理员们利用它了解数据库的信息.
          
基础表和数据字典视图:  
    数据字典包括两个部分:
       基础表
              存储数据库的描述
              CREATE DATABASE命令创建(sql.bsq)
 
       数据字典视图
              用于简化基础表的信息
              通过PUBLIC同义词访问
              由脚本catalog.sql创建
          
           数据字典基表中的数据很难看懂。因此,很少人直接访问这些基表。取而代之的是数据字典视图。
           数据字典视图分为类,它们以前辍来区分,前辍分别为:USER、ALL、DBA
 
           USER_* 用户所拥有的对象信息
           ALL_*  用户能访问的对象信息
           DBA_*  整个数据库中的对象信息
   
创建数据字典视图:
    建库后,运行以下脚本创建的
    $ORACLE_HOME/rdbms/admin/catalog.sql  创建常用的数据字典和同义词
    $ORACLE_HOME/rdbms/admin/catproc.sql  创建内建的存储过程、包等pl/sql对象
 
    DBCA建库时会自动运行这两个脚本,但如果手动建库的话,需手动运行。
 
常用的数据字典:
    一般的概况: TAB,DICTIONARY, DICT_COLUMNS
    对象: DBA_TABLES, DBA_INDEXES, DBA_TAB_COLUMNS, DBA_CONSTRAINTS --->user_ ,all_
    空间分配: DBA_SEGMENTS, DBA_EXTENTS
    数据库结构: DBA_TABLESPACES, DBA_DATA_FILES
   
动态性能视图:
    是将内存里的数据或控制文件里的数据以表的形式展现出来,它们实际都是虚拟表,并不是真正的表
    只要数据库在运行,就会不断更新动态性能视图
    一旦数据库关闭或崩溃,则动态性能视图里的数据就丢失,当数据库重新启动后,数据将会被更新
    所有的动态性能视图名称都存放在v$fixed_table里。这些动态性能视图都是以V_$开头,属主是sys  
    oracle为每个动态性能视图都创建了同义词,同义词将中间的“_”去掉了,形成以v$开头

常用的数据字典视图、动态性能视图:
    dba_objects
    dba_tables
    dba_users
    dba_tablespaces
   
    V$CONTROLFILE 控制文件信息
    V$DATABASE    数据库信息
    V$DATAFILE    数据文件信息
    V$INSTANCE    实例信息
    V$PARAMETER       参数信息
    V$SESSION     会话信息
    V$SGA         SGA信息
    V$SGAINFO     SGA信息
    V$TABLESPACE  表空间信息
    V$THREAD     
    V$VERSION    
    V$option
 
    v$parameter显示的是session级的参数,也就是当前session的参数信息。
    如果没有使用alter session单独设置当前session的参数值,那么默认和system级的参数应该是一样的。
 
    v$system_parameter显示的是system级的参数,保存的是使用alter system修改的值(scope=both或者scope=memory)。
 
    上面两个都是当前已经生效的参数值。对于使用spfile的库,也可以暂时只修改spfile中的
    值。v$spparameter显示的就是保存在spfile中的参数值(scope=spfile)。


你可能感兴趣的:(oracle,数据库,服务器,System,干什么)