oracle数据字典表与视图
数据字典是数据的数据,也就是元数据。描述了数据库的物理与逻辑存储与相应的信息。模式中对象的定义信息,安全信息,完整性约束信息,和部分的性能监控信息等。数据字典表 与视图存储在system表空间中的。有一种说法是数据字典表与视图部分也存储在sysaux表空间。为了保证数据字典表与视图总是可用的,应该存储在system表空间中才对,当数据库打开以后system总是可用的,这样数据字典表与视图总是可用的。数据字典是在oracle数据库创建的时候产生的,用户不可以对其进行增删改,否则可能对数据库
造成不可挽回的损坏。出现这种情况oracle也不会管你。数据字典由oracle数据库自行维护,当数据库执行DDL操作的时候,将会插入或者更新,删除某些数据字典中的记录。数据库通过数据字典才查找用户信息,模式中对象的定义信息,和存储结构。用户可以通过一组视图来查询数据字典中的信息。当然用户也可以根据这些视图创建自己的数据字典表或者视图。
数据字典由以下两类对象组成:
基表:基表中存储着数据库的信息,只有oracle可以读写,用户很少能够直接的访问这些基表,因为这些基表中的信息是难以看懂的,并且通常情况下都被加密存储。
视图:基表主要是供oracle数据库自己用的,视图把其中的一些信息抽取解析出来供用户使用,部分视图是可以被所有数据库用户访问的,部分只供管理员使用。
这些视图大概的分成3组,通过视图前缀来标识。
前缀 用户访问 内容 注意事项
DBA_ 数据库管理员 所有对象 有些DBA_视图增加了一些额外的 列,列中存储着对数据库管理 员有用的信息
ALL_ 所有用户 用户有权限访问的对象 包括用户自己拥有的对象,这些 视图是根据用户的当前启用的角 色给出的
USER_ 所有用户 对象的拥有者 这些带USER_前缀的视图,通常没 有owner列,因为USER_已经隐含 了用户的所有者
当然并不是所有的视图集都都可以分成上述的3组,如有dba_lock但是没有all_lock.
oracle数据库系统提供的dictionary视图提供了所有数据字典视图的名字与简要描述。
SQL> select count(*) from dictionary;
COUNT(*)
----------
2542
这些数据字典视图数量庞大,是有些可怕。