Oracle数据字典

内置(Built-In)数据库对象

  • 与数据库一起创建的内置对象:
    数据字典
    性能表
    PL/SQL 软件包
    数据库事件触发器

数据字典简介

  • 数据字典(Data Dictionary)
    是每个数据库的中心
    包括了只读的系统表和视图
    描述了数据库和数据库对象的信息
    由 Oracle 服务器来创建和维护
    存储在SYSTEM 表空间中
    其所有者为 SYS用户
    可利用SELECT语句来访问
  • 基表(Base tables)
    存储数据库的描述
    Oracle服务器在数据库创建时通过运行sql.bsq来自动生成
    在任何数据库中,基表永远是被最先创建的对象
  • 数据字典视图(Data dictionary views)
    用来简化基表中的信息
    通过公共同义词来访问
    通过运行catalog.sql 脚本文件创建的

创建数据字典

在这里插入图片描述
这些脚本文件存储在$ORACLE_HOME\RDBMS\ADMIN目录下。

数据字典的内容

  • 数据字典提供了与下面有关的信息:
    数据库的逻辑结构和物理结构
    数据库对象定义和磁盘空间分配的信息
    Oracle用户
    每个用户所授予的权限和角色
    完整性约束的信息
    列的默认值
    审计信息等

如何使用数据字典

  • Oracle服务器通过访问基表可获得如用户(Users)、模式对象(Schema objects)和存储结构(Storage
    structures)等方面的信息,并利用这些信息进行所需的数据库的管理和维护。

  • 在Oracle数据库运行期间,如果数据库的结构发生了变化,Oracle服务器会及时修改相应的数据字典以记录这种变化。

  • 能引起Oracle服务器修改数据字典的SQL语句包括:
    DDL语句
    DCL语句
    某些DML语句,如引起表的磁盘存储空间扩展的插入(insert)或修改(update)语句

如何使用数据字典

  • 通常只有Oracle服务器可以修改数据字典中的数据。
  • 任何用户包括数据库管理员(DBA)都不能直接使用DML语句修改数据字典中的内容。
  • 所有用户和数据管理员(DBA)只能使用SELECT语句从数据字典(视图)中得到数据库的相关信息。

数据字典视图

  • 数据字典视图包括:
    (静态)数据字典视图
    动态性能表(视图)
--以SYSTEM用户登录,查看所有数据字典视图。
	select * from dictionary;

静态数据字典视图

  • 静态数据字典视图:
    提供用户对于数据字典信息的访问
    在创建数据库时由$ORACLE_HOME\RDBMS\ADMIN\category.sql脚本创建
    当数据库发生变化时,Oracle服务器并不及时地刷新这些视图中的信息
    只有当执行了Oracle的ANALYZE命令后才会被刷新,也可以通过运行DBMS_STATS软件包来刷新
  • 分为三大类,用前缀来区别:
    USER_:有关用户所拥有的对象的信息
    ALL_
    :有关用户可以访问的对象的信息
    DBA_*:有关整个数据库中的对象的信息(必须以DBA用户连接数据库才可以访问)
  • 静态数据字典视图包含了以下信息:
    对象的属主(在USER_*视图中没有OWNER列)
    用户所拥有的权限
    对象的创建时间
    对象存储参数的设置
    对象存储空间的使用情况等
  • 以SCOTT用户登录数据库
--查看当前用户拥有哪些表。
	SELECT table_name FROM user_tables;
	
--查看当前用户有哪些表可用。
	select table_name, owner from all_tables;
  • 以SYSTEM用户登录数据库
--查看整个数据库中有哪些表。
	select table_name, owner from dba_tables;

--查看当前用户所拥有对象名称和类型。
	select * from user_catalog;

常用的数据字典视图

  • 通用概要类型: DICTIONARY、 DICT_COLUMNS

  • 模式对象: DBA_TABLES、 DBA_INDEXES、DBA_TAB_COLUMNS、DBA_CONSTRAINTS

  • 磁盘空间分配: DBA_SEGMENTS、DBA_EXTENTS

  • 数据库的结构: DBA_TABLESPACES、DBA_DATA_FILES

动态性能表(视图)

  • 动态性能表:
    是一组虚表(Virtual tables)
    其信息来自内存和控制文件
    记录了当前数据库的活动
    实时反映了数据库运行的状态
    通常用于监督和调优数据库
    其拥有者是SYS用户
    名字以V$开头
  • 利用动态性能表可以获得如下信息:
    会话活动的信息
    对象打开或关闭的信息
    对象在线或离线的信息等
  • V$FIXED_TABLE
    存储Oracle的基表
    只列出所有动态数据字典(系统表)的信息
    包含4个字段:name、object_id、type、table_num
--查看所有动态性能表的名称和类型等信息。
	select * from v$fixed_table;

常用的动态性能表

  • 关于数据库、实例等:V D A T A B A S E 、 V DATABASE、V DATABASEVINSTANCE、V V E R S I O N 、 V VERSION、V VERSIONVPARAMETER、V S P P A R A M E T E R 、 V SPPARAMETER、V SPPARAMETERVSESSION、V P R O C E S S 、 V PROCESS、V PROCESSVSGA
  • 关于磁盘文件等:V C O N T R O L F I L E 、 V CONTROLFILE、V CONTROLFILEVDATAFILE、V L O G F I L E 、 V LOGFILE、V LOGFILEVTABLESPACE

管理脚本的命名惯例

在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值