数据字典的概念 
      还记得我们在手工建库的时候,运行的两个脚本文件。一个是catalog.sql,另一个是catproc.sql。catalog.sql是用来创建数据库的内部字典表的。catproc.sql是用来创建数据库的内建的存储过程。
       数据字典是Oracle数据库中的一系列只读的参考表和视图。它与数据库内的其他数据相同,也是以标及视图的形式组织的。一个数据库的全部数据字典表与数据字典视图都物理地存储在该数据库的SYSTEM表空间内。它由两个部分组成:数据字典基本表(也叫基表base table)、数据字典视图(也叫用户访问视图)。
       当创建数据库时数据字典也被创建。为了实时、准确地反映数据库的状态,用户对Oracle数据库进行操作时,数据字典将会被实时的自动更新。数据库依赖数据字典来记录、验证、管理正在进行的工作。
数据字典的重要性
       数据字典是整个Oracle数据库的核心之一,描述了数据库自身的信息,以及数据库里记录对象的信息。比如说我们要对一个数据库中的一个表进行一个添加记录的操作。则需要定位到这个表位于哪个数据文件里,这个表的结构是什么等等才能够完成我们操作。数据字典就是记录着这样的信息(是以表的形式记录的)。

数据字典基本表与数据字典视图的区别
Structure of the Data Dictionary 
    The data dictionary consists of the following:
       Base Tables(基本/数据字典基本表)   
  The underlying tables that store information about the associated database. Only          Oracle should write to and read these tables. Users rarely access them directly           because they are normalized, and most of the data is stored in a cryptic format.
        基表存储的是一些与数据库相关的信息。只有Oracle才可以读写这些表。用户很少直接访问它们        。因为它们都是规范化的,而且大部分数据都是用一种保护的格式存储的。(只有Oracle才看得        懂,用户是无法看懂里面的信息的)
  
        User-Accessible Views(用户访问视图/数据字典视图) 
        The views that summarize and display the information stored in the base tables of         the data dictionary. These views decode the base table data into useful                   information, such as user or table names, using joins and WHERE clauses to                simplify the information. Most users are given access to the views rather than            the base tables.
        这个视图是对存储在数据字典的基表中的数据的总结与展示。通过用连接和where字句去简化信息        的方法,把这些视图将基表中的数据编码成有用的信息(所谓有用,就是用户可以看懂,理解的        形式),比如用户,表名等,而这种将数据编码是通过用连接和where字句与简化信息。很多用        户都被赋予了访问视图的权限,而没有访问基表的权限。

这是Oracle Conceptes中对数据字典组成的介绍。简单地说:数据字典基本表就是给Oracle看的,而数据字典视图是为了方便用户而将基本表简化出来的(内容应该是一样的)。
         所有这些数据字典基本表与数据字典视图的所有者都是sys(oracle数据库的超级用户)。其他Oracle用户只可以查看,而不能用DML语句(update,delete,insert)去修改这些数据字典表(可能会带来不可恢复的损害)。
         为了方便其他用户访问这些视图,Oracle为所有的数据字典视图创建了公共的同名词(public synonym)。所谓的同名词就是别名。这样数据库里的任何用户都通过别名来访问有权查看的视图了。这些视图与同名词就是通过catalog.sql脚本创建的。

数据字典视图分为三个层面:DBA视图(所有用户schema内的对象)、ALL视图(用户可访问的对象)、USER视图(用户schema内的对象)。
       DBA视图表示以DBA_开头的视图,包括了整个数据库范围的数据。dba_table表示整个数据库里所有表的信息。用户需要一定的授权才能访问DBA层面的视图。
       ALL视图表示以ALL_开头的视图,包含了当前登录用户有权限看到的数据。all_tables记录了当前登录用户有权限访问的所有表的信息。
       USER视图表示以USER_开头的视图,包含了当前登录用户所拥有的所有表的信息。
       三个视图的关系是DBA包含了ALL包含了USER
       dictionary视图记录了所有数据字典视图的名称。它的别名是dict。可以通过它来查看数据库中的视图。


动态性能视图(动态性能表/Dynamic Performance Tables)

       除了用具体表存放数据字典外,还有一个数据字典,叫做动态性能视图。用于记录数据库的当前状态,是将内存里的数据或控制文件的数据以表的形式展现出来,是一种虚拟表(virtual table)。所有动态性能视图的名称都存放在v$fixed_table里。而这些动态性能视图都是以v_$开头,属主是用户sys。Oracle为每个动态性能视图都创建了同名词,同名词是将中间的“_”去掉了,都是以v$开头。
 动态性能表并不是真正的表,大多数用户不应访问其中的信息。但是数据库管理员可以对其进行查询,或在其上创建视图并将访问权限授予其他用户。这些视图有时被称为固定视图(fixed view),因为数据库管理员不能将其修改或移除。

oracle数据字典视图的更多相关文章

  1. Oracle 数据字典视图(V$,GV$,X$)

    常用的几个数据字典: user_objects : 记录了用户的所有对象,包含表.索引.过程.视图等信息,以及创建时间,状态是否有效等信息,是非DBA用户的大本营.想知道自己有哪些对象,往这里查. u ...

  2. 十三、oracle 数据字典和动态性能视图

    一.概念数据字典是oracle数据库中最重要的组成部分,它提供了数据库的一些系统信息.动态性能视图记载了例程启动后的相关信息. 二.数据字典1).数据字典记录了数据库的系统信息,它是只读表和视图的集合 ...

  3. oracle 数据字典和动态性能视图

    一.概念数据字典是oracle数据库中最重要的组成部分,它提供了数据库的一些系统信息.动态性能视图记载了例程启动后的相关信息. 二.数据字典1).数据字典记录了数据库的系统信息,它是只读表和视图的集合 ...

  4. Oracle数据字典

    数据字典-简介 Oracle数据字典的名称由前缀和后缀组成,使用下划线"_"连接,其代表的含义如下: ● DBA_:包含数据库实例的所有对象信息. ● V$_:当前实例的动态视图, ...

  5. oracle数据字典-权限-角色

    每个数据库都提供了各自的数据字典的方案,虽然形式不同,但是目的和作用是一样的,比如在mysql里数据字典是在information_schema 里表现的,sqlserver则是在sys这个系统sch ...

  6. Oracle数据字典详解

    学习笔记:oracle数据字典详解 --- 本文为TTT学习笔记,首先介绍数据字典及查看方法,然后分类总结各类数据字典的表和视图.然后列出一些附例.   数据字典系统表,保存在system表空间中. ...

  7. 详解Oracle数据字典

    Oracle通过数据字典来管理和展现数据库信息,数据字典通常储存数据库的元数据,是数据库的“数据库”.通常说的数据字典由4部分组成:内部RDBMS(X$)表.数据字典表.动态性能视图(V$)和(静态) ...

  8. oracle数据字典-权限-角色-参数

    每个数据库都提供了各自的数据字典的方案,虽然形式不同,但是目的和作用是一样的,比如在mysql里数据字典是在information_schema 里表现的,sqlserver则是在sys这个系统sch ...

  9. Oracle_高级功能(7) 数据字典视图和动态性能视图

    oracle数据字典 1.概念数据字典是oracle数据库用来存储数据库结构信息的地方.数据字典是用来描述数据库数据的组织方式的,由表和视图组成.数据字典基表是在任何 Oracle 数据库中创建的第一 ...

随机推荐

  1. web开发规范文档二

    头部        header\hd 内容块      content\con\bd text txt title 尾部        footer 导航        nav\menu sub-n ...

  2. 【LeetCode】451-根据字符出现频率排序

    题目描述 给定一个字符串,请将字符串里的字符按照出现的频率降序排列. 示例 1: 输入: "tree" 输出: "eert" 解释: 'e'出现两次,'r'和' ...

  3. VMware Tools按钮变灰色,无法安装的解决方法

    参考博客: https://blog.csdn.net/weixin_30639719/article/details/94846851 https://jingyan.baidu.com/artic ...

  4. 关于css阴影和浮动

    盒子阴影box-shadow box-shadow:0 0 1px #000 inset; 水平  垂直   模糊  颜色 : [1] inset代表框内阴影,不加inset代表框外阴影 [2]第1个 ...

  5. Flink SQL 如何实现数据流的 Join?

    无论在 OLAP 还是 OLTP 领域,Join 都是业务常会涉及到且优化规则比较复杂的 SQL 语句.对于离线计算而言,经过数据库领域多年的积累,Join 语义以及实现已经十分成熟,然而对于近年来刚 ...

  6. List集合遍历的三种方法

    测试数据: List<String> list = new ArrayList<String>(); list.add("java"); list.add( ...

  7. hdu 1051 wooden sticks (贪心+巧妙转化)

    #include <iostream>#include<stdio.h>#include<cmath>#include<algorithm>using ...

  8. [HG]腿部挂件 题解

    前言 暴力跑的比正解快. 以下暴力(循环展开+fread读入输出优化) #include<cstdio> #pragma GCC optimize(3, "Ofast" ...

  9. Python黑科技神奇去除马赛克

    图片修复程序-可用于水印去除 在现实的生活中,我们可能会遇到一些美好的或是珍贵的图片被噪声干扰,比如旧照片的折痕,比如镜头上的灰尘或污渍,更或者是某些我们想为我所用但有讨厌水印,那么有没有一种办法可以 ...

  10. CodeForces451E Devu and Flowers

    题目链接 问题分析 没有想到母函数的做法-- 其实直接看题思路挺简单的.发现如果每种花都有无限多的话,问题变得十分简单,答案就是\(s+n-1\choose n - 1\).然后发现\(n\)只有\( ...