oracle之数据字典概述

来源:互联网 发布:seo服务 编辑:程序博客网 时间:2024/05/21 11:20

 

oracle之数据字典概述

 

数据字典(data dictionary)是 Oracle 数据库的一个重要组成部分,这是一组用于记录数据库信息的只读(read-only)表。


数据字典中包 含: 

数据库中所有方案对象(schema object)的定义(包括表,视图,索引,簇,同义词,序列,过程,函数,包,触发器等等) 

数据库为一个方案对象分配了多少空间,以及该对象当前使用了多少空间 

列的默认值 

完整性约束(integrity constraint)信息 

数据库用户名 

每个用户被授予(grant)的权限(privilege)与角色(role) 

监控(audit)信息,例如哪个用户对某个方案对象进行了访问或更新操作 

数据库中的其他概要信息 

 

数据字典由以下两种结构组成:

基表:用于存储相关的数据库信息。只有 Oracle 才能读写这些表。用户很少直接访问她们,因为这些表是规范化的

用户访问视图:对数据字典基表内存储的数据进行汇总与展示。这些视图利用连接(join)及 WHERE 子句简化基表中的数据,将其解码(decode)为用户可理解的信息。

 

 

数据字典有三个主要用途: 

Oracle 利用数据字典来获取关于用户,方案对象,及存储结构(storage structure)的信息。 

每当数据库中执行了 DDL 语句后,Oracle 将对数据字典进行修改。 

所有 Oracle 用户都可以使用数据字典来获取关于数据库的信息。

 

 

数据字典的同义词:Oracle 为许多数据字典视图创建了公共同义词(public synonym),以便用户能够方便地对其进行访问。

 

数据字典缓存:由于 Oracle 在数据库运行中需要不断地访问数据字典来验证用户权限及方案对象状态,大量的数据字典信息将被缓存到 SGA 的数据字典缓存(dictionary cache)内。

 

 

--------------------------------------------------------------------------------

 

前缀                  覆盖范围 

 

--------------------------------------------------------------------------------

 

USER              用户视图(用户方案(schema)内的对象)

 

ALL               扩展的用户视图(用户可访问的对象)

 

DBA               DBA 视图 (所有用户方案内的对象)

 

 

DBA型的数据字典:以 DBA 为前缀的视图能够展现整个数据库的全部内容。不应在这些视图上创建同义词,因为以 DBA 为前缀的视图只应由管理员查询。因此在查询 DBA 视图时,管理员必须在视图名之前加上其拥有者的前缀 SYS


DUAL表:名为 DUAL 的表是数据字典内的一个小表,Oracle 及用户程序可以使用此表来获得一个确定的值。此表只有一列名为 DUMMY;只有一行数据,值为 X。

 

 

在数据库运行过程中,Oracle 将维护一组虚拟表(virtual table)用于记录数据库的当前状态。这组表被称为动态性能表(dynamic performance table)。


动态性能表并不是真正的表,大多数用户不应访问其中的信息。但是数据库管理员可以对其进行查询,或在其上创建视图并将访问权限授予其他用户。这些视图有时被称为固定视图(fixed view),因为数据库管理员不能将其修改或移除。

动态性能表由 SYS 用户所拥有;她们的名字都以 V_$ 开头。这些表上创建有视图,而视图上创建有公共同义词。这些公共同义词的名字都以 V$ 开头。

 

原创粉丝点击