主要讲述数据库中一些只读的表和视图
数据词典主要是Oracle中一些只读表和视图的集合,这些表主要描述了数据库的信息,主要包括以下信息
1 数据库中各schema(tables, views, indexes, clusters, synonyms, sequences, procedures, functions, packages, triggers等等)的定义信息
2 各schema对象已经分配的,已经使用的空间
3 各列的默认值
4 oralce数据库的用户名列表
5 各用户所有的priviledge 和role
6 审计信息,例如谁何时在哪个schema对象上做过什么操作
7 其他的一些数据库信息
数据词典的结构
基表 - 存储一些数据库的信息,一般只有oracle进程读写,用户很少使用,这些表的存储格式和其他表不同。
用户访问的视图 -- 建立在基表基础上,供用户访问查询
SYS用户是这些表和视图的OWNER
一般用在下面三个情况
1 Oracle用来查询
2 Oracle改变这些信息,当DDL发生后
3 用户查询
当数据库版本变化时,Oracle提供了package来改动data dictionary的值
在用户进行数据库操作时,Oracle会查询数据词典确定语句的正确性,如是否存在sql使用的对象,用户是否有权限
Oracle为这些视图和表创建了很多的public synonyms
为了增加访问的性能,大部分的数据词典被保存在SGA的dictionary cache中
Parsing information is typically kept in the caches. The COMMENTS
columns describing the tables and their columns are not cached unless they are accessed frequently. (不懂)
注:数据词典存在于system的表空间
数据词典前缀的含义
user 用户schema中的内容
all 用户的访问权限
dba 所有用户的schema
所有V_$开头的表都被称为动作性能表(dynamic performance table),Oracle也为这些表创建了synonyms,开头为v$.
Package DBMS_METADATA可以用来导出数据库信息。