概念
- 在数据库创建的过程中创建
- 对于所有的用户(包括DBA) ,都是只读
- 只有Oracle系统才可以对数据字典进行管理与维护
- 所有数据字典表和视图都属于SYS模式,存储于SYSTEM表空间中
保存信息
- 各种数据库对象的定义信息,包括表、视图、索引、同义词、序列、存储过程、函数、包、触发器及其他各种对象
- 数据库存储空间分配信息
- 数据库安全信息
- 数据库运行时的性能和统计信息
- 其他数据库本身的基本信息
用途
Oracle通过访问数据字典获取用户、模式对象、数据库对象定义与存储等信息,以判断用户权限的合法性、模式对象的存在性及存储空间的可用性等;
使用DDL语句修改数据库对象后,Oracle 将在数据字典中记录所做的修改;
任何数据库用户都可以从数据字典只读视图中获取各种数据库对象信息;
DBA可以从数据字典动态性能视图中获取数据库的运行状态,作为进行性能调整的依据。
分类
- 数据字典结构分为:
- 数据字典表
- 数据字典视图
- 根据数据字典对象的虚实性分为:
- 静态数据字典:数据库创建过程自动运行 sql.bsq脚本创建,加密
- 动态数据字典:实例运行时Oracle动态创建和维护,实例关闭时被释放
查看
数据字典名称 | 说明 | 数据字典名称 | 说明 |
---|---|---|---|
dba_ tablespaces | 关于表空间的信息 | dba_constraints | 所有用户表的约束信息 |
dba_ ts_ quotas | 所有用户表空间限额 | dba_indexs | 数据表中所有索引的描述 |
dba_ free_ space | 所有表空间中的自由分区 | dba_ind _columns | 所有表及簇上压缩索引的列 |
dba_ segments | 描述数据库中所有段的存储空间 | dba_ triggers | 所有用户的触发器信息 |
dba_ extents | 数据库中所有分区的信息 | dba_ source | 所有用户存储过程信息 |
dba_ tables | 数据库中所有数据表的描述 | dba_ data_ files | 查询关于数据库文件的信息 |
dba_ tab_ columns | 所有表、视图以及簇的列 | dba_tab_grants/privs | 查询关于对象授权的信息 |
dba_ views | 数据库中所有视图的信息 | dba_objects | 数据库所有对象 |
dba_ synonyms | 关于同义词的信息 | dba_users | 数据库中所有用户的信息 |
dba_ sequences | 所有用户序列信息 |
dba_前缀:是静态数据字典视图的一类,包含所有数据对象信息,只有具有DBA角色的用户可访问
-
查询表dictionary,可以获得全部可以访问的数据字典表或数据字典视图的名称和解释;
- SELECT * FROM dictionary;
-
查询表dict columns ,可以获得全部可以访问的数据字典表或数据字典视图中的字段名称和解释。
- SELECT * FROM dict_ columns WHERE TABLE_ NAME=' USER_ TABLES' ;