ORACLE数据字典

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ORACLE数据字典
(一)数据字典概念
Oracle数据字典由表和视图组成,其中存储了一些与数据库结构信息相关的数据库对象。

数据字典描述了实际数据的组织方式。

例如,表的创建者信息、创建时间信息、表空
间信息、用户访问权限信息等。

它们可以像其他数据库表或视图一样进行查询,但不能修改。

它们存储在系统表空间中。

当用户在操作数据库中的数据时遇到困难,他们可以访问
数据字典来查看详细信息。

数据字典不仅是数据库的核心,也是所有用户,包括最终用户、程序员和数据库管理员的重要工具。

因为数据字典是只读的,所以我们只能对其表或视图
使用SQL查询语句。

oracle数据库字典通常是在创建和安装数据库时被创建的,oracle数据字典是
oracle数据库系统工作的基础,没有数据字典的支持,oracle数据库系统就不能进行任
何工作。

数据字典中的表是不能直接被访问的,但是可以访问数据字典中的视图。

数据字
典内容包括:
1.数据库中所有模式对象的信息,如表、视图、集群、索引、集群、同义词、序列、
过程、方法、包、触发器等。

2,分配多少空间,当前使用了多少空间等。

3,列的缺省值。

4.约束信息的完整性。

5.Oracle用户的名称。

6,用户及角色被授予的权限。

7,用户访问或使用的审计信息。

8,其它产生的数据库信息。

(二)数据字典分类
数据字典按照存在的形式分为数据字典表和数据字典视图。

2.1数据字典表
数据字典表里的数据是oracle系统存放的系统数据,而普通表存放的是用户的数据。

为了方便的区别这些表,这些表的名字都是用\结尾,这些表属于sys用户。

数据字典表由$oracle_uuhome/rdbms/admin/sql创建。

创建BSQ脚本,并在此脚本中调用其他脚本来创建这些数据字典表。

在这些创建脚本中使用基表创建SQL。

只有Oracle
可以读取和写入这些数据字典表。

基表是存储数据库信息的基础表。

基表是在任何Oracle 数据库中创建的第一个对象。

使用“创建数据库”创建数据库时,只要Oracle server运
行SQL BSQ脚本,就会自动创建这些对象。

只有Oracle server可以写入这些基表。

用户
很少直接访问基表,因为基表中的大多数数据都以隐式格式存储。

不要使用DML命令直接
更新基本表,AUD$表除外。

例如,ind$表是包含相关数据的基表
库中的索引的信息。

sys users下的这些数据字典表存储在系统表空间下,表名以\结尾。

为了方便用户查询数据字典表,Oracle分别为这些数据字典建立了用户视图,这样便于记忆并隐藏了数据字典表之间的关系。

Oracle针对这些对象的范围,它们是:DBA:所有方案中的视图(您可以在所有数据字典中看到信息)
all:用户可以访问的视图(可以看到所有这个用户可以看到的信息)user:用户方
案中的视图(仅仅是这个用户拥有的信息)三者直接的关系:
为了汇总数据字典表的信息,Oracle将所有数据字典收集到字典表中。

通过查询这个表,我们可以很容易地找到数据库提供的数据字典。

sql>descdictionary
sql>select*fromdictionarywheretable_name='user_tables';
2.2数据字典视图
数据字典视图是基表的汇总,可以更有效地显示基表信息。

例如,在数据字典视图中,除了显示对象编号外还会使用对象名。

数据字典视图是在运行createdatabase命令之后
使用脚本:$oracle_home/rdbms/admin/catalog.sql创建,该脚本也只是一个总的调用,在该脚本里由调用了其他的脚本。

在那些脚本里,可以看到视图的创建sql。

这是因为该脚本将创建一个动态视图,所以在升级dB时,您还需要执行该脚本来重
新创建视图。

数据字典视图分2类:静态数据字典(静态性能视图)和动态数据字典(动态性能视图)
2.2.1静态性能视图
静态性能视图也称为静态数据字典。

主要是在用户访问数据字典时不会发生改变的,
这类数据字典主要是由表和视图组成。

数据字典中的表是不能直接被访问的,但是可以访
问数据字典中的视图。

在静态视图中,它们按前缀分为三类:user_xxx、all_xxx、dba_xxx。

user_xxx:此
视图存储当前用户拥有的对象的信息。

(即此用户模式下的所有对象)all_uxxx:此尝试
存储有关当前用户可以访问的对象的信息,而不是当前用户拥有的对象。

(与用户_xxx相比,所有_xxx不需要拥有该对象,只需要访问该对象)DBA_xxx:该视图存储数据库中所
有对象的信息。

(前提是当前用户拥有访问这些数据库的权限。

一般来说,他必须拥有管
理员权限)
这些视图由sys用户创建的,所以使用需要加上sys,为了方便,oracle为每个数据
字典表的视图头建立了同名字的公共同义词(publicsynonyms).这样简单的处理就省去了
写sys.的麻烦。

用户表空间:表空间使用状态
sql>selecttablespace_name,statusfromuser_tablespaces;
用户空闲空间:查看用户表空间的剩余空间
sql>selecttablespace_name,sum(bytes)/(1024*1024),sum(blocks)/(1024*1024)2fromu ser_free_spacegroupbytablespace_name;
用户TS配额:您可以查看用户表空间的份额
dba_data_files:数据文件数据字典sql>setline60
sql>从DBA数据文件中选择文件名;
2.2.1.1用户
用户\用户:主要描述当前用户的信息,包括当前用户名、账号ID、账号状态、默认表空间、创建时间等。

sql>colusernamefora10
sql>coldefault_uu表空间15
sql>selectusername,default_tablespace,createdfromuser_users;
用户角色:查看当前用户的角色。

sql>select*fromuser\uRole\uPrivs
比如下面是sys的角色
sql>select*fromuser\uRole\uPrivs;部分截图
user_sys_privs:查看当前用户的系统权限和表级权限
sql>select*fromuser_sys_privs;
user_ysprivs:以下是sys user SQL>select*from user_ysprivs的系统权限和表级权限;部分截图。

相关文档
最新文档